{"version":3,"sources":["webpack:///./src/stories/Components/Breadcrumb/Breadcrumb.tsx","webpack:///./src/stories/Components/Swipeable/Swipeable.tsx","webpack:///./src/stories/Components/TagLozange/TagLozange.styles.ts","webpack:///./src/stories/Components/TagLozange/TagLozange.tsx","webpack:///./src/img/icons/triangle-right.svg","webpack:///./src/img/icons/triangle-left.svg","webpack:///./src/helpers/utils.ts","webpack:///./src/stories/Components/CarouselControls/CarouselControls.styles.ts","webpack:///./src/hoc/withMotion.tsx","webpack:///./src/stories/Components/QuickLinks/QuickLinks.styles.ts","webpack:///./src/stories/Components/QuickLinks/QuickLinks.tsx","webpack:///./src/img/general/apartment-detail-bg.svg","webpack:///./src/stories/Widgets/Banners/ApartmentDetailBanner/ApartmentDetailBanner.styles.ts","webpack:///./src/stories/Widgets/Banners/ApartmentDetailBanner/ApartmentDetailBanner.tsx","webpack:///./src/helpers/srOnly.ts","webpack:///./src/stories/Components/Breadcrumb/Breadcrumb.styles.ts","webpack:///./src/stories/Components/CarouselControls/CarouselProvider.tsx","webpack:///./src/img/icons/chevron-right.svg","webpack:///./src/img/icons/chevron-down.svg","webpack:///./src/helpers/image.ts","webpack:///./src/img/icons/pause.svg","webpack:///./src/stories/Components/CarouselControls/CarouselControls.tsx"],"names":["Breadcrumb","items","React","createElement","S","Container","List","map","item","Item","key","id","url","Link","href","target","accessibleText","text","as","Swipeable","children","otherProps","useSwipeable","styled","div","from","Device","Tablet","Inner","fonts","gotham","regular","brand","white","cssVar","black","rgba","Content","span","TagLozange","content","_path","_extends","Object","assign","i","arguments","length","source","prototype","hasOwnProperty","call","apply","this","SvgTriangleRight","props","xmlns","viewBox","d","fill","SvgTriangleLeft","sleep","ms","Promise","resolve","setTimeout","headerOverlap","css","headerOverlapPadding","themeOption","setCssVar","green","burgundy","lightBurgundy","SlideButton","button","ControlButton","until","ControlIcon","ControlProgressButton","ControlProgress","svg","ControlProgressCircle","m","circle","SrOnly","srOnly","withMotion","WrappedComponent","displayName","name","ComponentWithMotion","LazyMotion","features","domAnimation","strict","nav","Title","small","TabletLarge","ul","li","a","light","Icon","Text","QuickLinks","title","anchor","SvgChevronDown","SvgChevronRight","SectionWrapper","Bottom","BreadcrumbStyles","MediaWrapper","Image","img","Player","isExternal","Controls","SiteWideStyles","CarouselControlsStyles","isActive","fadeIn","animation","easeInOutCubic","svgBg","BottomInner","SiteWide","BottomLeft","BottomRight","Tag","bold","h1","HeadingStyles","H1Styles","Desktop","DesktopLarge","RichTextStyles","contentStyles","ParagraphStyles","LargeStyles","MediaType","breadcrumb","priceMessage","pricePerMonth","pricePerWeek","quickLinks","tag","autoplay","loop","refContainer","isInView","useInView","threshold","inView","activeIndex","setActiveIndex","useState","animateSlide","setAnimateSlide","activeItem","video","indexOf","useEffect","then","renderFallbackImage","undefined","fallbackImage","media","srcSet","getImageSrcSet","sizes","alt","draggable","loading","role","src","ref","flush","fullWidth","CarouselProvider","duration","max","value","onChange","index","actions","playPause","preventDefaultTouchmoveEvent","onSwipedLeft","Math","min","next","onSwipedRight","prev","handlers","AnimatePresence","mediaType","image","initial","opacity","animate","exit","Video","ReactPlayer","controls","height","width","playing","playsinline","muted","config","youtube","playerVars","rel","fallback","CarouselControls","theme","formatPrice","dangerouslySetInnerHTML","__html","imageUrl","heightratio","join","toFixed","CarouselContext","state","disabled","isPaused","useCarousel","shouldReduceMotion","useReducedMotion","setIsPaused","contextValue","Provider","stroke","strokeWidth","imageParams","imageSource","split","params","rxy","focalPoint","left","top","rmode","quality","queryString","stringify","_g","SvgPause","strokeLinecap","strokeLinejoin","circumference","PI","animationControls","useAnimation","useInterval","start","strokeDashoffset","transition","ease","type","set","Array","_","onClick","event","preventDefault","cx","cy","r","style"],"mappings":"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","file":"32-ec6072d7b44b0feeb71e.js","sourcesContent":["import React from 'react';\r\nimport S from './Breadcrumb.styles';\r\nconst Breadcrumb = ({ items }) => {\r\n return (React.createElement(S.Container, { \"aria-label\": \"Breadcrumb\" },\r\n React.createElement(S.List, null, items.map((item) => (React.createElement(S.Item, { key: item.id }, item.url ? (React.createElement(S.Link, { href: item.url, target: item.target, \"aria-label\": item.accessibleText }, item.text)) : (React.createElement(S.Link, { as: \"span\" }, item.text))))))));\r\n};\r\nexport default Breadcrumb;\r\n","import { useSwipeable, } from 'react-swipeable';\r\nconst Swipeable = ({ children, ...otherProps }) => {\r\n const handlers = useSwipeable(otherProps);\r\n return children(handlers);\r\n};\r\nexport default Swipeable;\r\n","import { cssVar } from '@helpers/cssVar';\r\nimport { rgba } from 'polished';\r\nimport { Device, from } from '@helpers/media';\r\nimport brand from '@helpers/brand';\r\nimport fonts from '@helpers/fonts';\r\nimport styled from 'styled-components';\r\nconst Container = styled.div `\r\n display: inline-block;\r\n margin: 0 0 16px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin: 0 0 25px;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n display: flex;\r\n align-items: flex-start;\r\n ${fonts.gotham.regular};\r\n \r\n padding: 3px 15px;\r\n border-radius: 400000px;\r\n background-color: ${brand.white};\r\n border: 1px solid ${cssVar('accentColor')};\r\n\r\n [data-theme='light'] &,\r\n [data-theme='beige'] &,\r\n [data-theme='lightGreen'] & {\r\n background-color: ${brand.white};\r\n border: 1px solid ${brand.black};\r\n }\r\n\r\n [data-theme='burgundy'] & {\r\n background-color: ${rgba(brand.white, 0.5)};\r\n border: 1px solid ${brand.white};\r\n }\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding: 3px 20px;\r\n }\r\n`;\r\nconst Content = styled.span `\r\n color: ${brand.black};\r\n font-size: 16px;\r\n line-height: 22px;\r\n text-transform: uppercase;\r\n text-align: center;\r\n\r\n @media ${from(Device.Tablet)} {\r\n font-size: 18px;\r\n line-height: 24px;\r\n }\r\n`;\r\nexport default {\r\n Container,\r\n Content,\r\n Inner,\r\n};\r\n","import React from 'react';\r\nimport S from './TagLozange.styles';\r\nconst TagLozange = ({ content, }) => {\r\n return (React.createElement(S.Container, null, content && (React.createElement(S.Inner, null,\r\n React.createElement(S.Content, null, content)))));\r\n};\r\nexport default TagLozange;\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgTriangleRight(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 11 15\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M9.788 6.674a1 1 0 010 1.652l-8.225 5.608A1 1 0 010 13.108V1.892a1 1 0 011.563-.826z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"triangle-right-4d86767c770b0e3fb6e407cf975044b5.svg\";\nexport { SvgTriangleRight as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgTriangleLeft(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 11 15\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.212 8.326a1 1 0 010-1.652l8.225-5.608A1 1 0 0111 1.892v11.216a1 1 0 01-1.563.826z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"triangle-left-f823db3deb4ca209af40fa248dd67b06.svg\";\nexport { SvgTriangleLeft as ReactComponent };","import { css } from 'styled-components';\r\nimport { Device, from } from './media';\r\nexport function sleep(ms) {\r\n return new Promise((resolve) => setTimeout(resolve, ms));\r\n}\r\nexport const headerOverlap = css `\r\n margin-top: -78px !important;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-top: -150px !important;\r\n }\r\n`;\r\nexport const headerOverlapPadding = css `\r\n padding-top: 78px !important;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding-top: 150px !important;\r\n }\r\n`;\r\n","import brand from '@helpers/brand';\r\nimport { cssVar, setCssVar } from '@helpers/cssVar';\r\nimport { Device, until } from '@helpers/media';\r\nimport srOnly from '@helpers/srOnly';\r\nimport { m } from 'framer-motion';\r\nimport styled, { css } from 'styled-components';\r\nconst Container = styled.div `\r\n display: flex;\r\n align-items: center;\r\n flex-direction: row;\r\n user-select: none;\r\n\r\n ${({ themeOption }) => {\r\n switch (themeOption) {\r\n case 'light':\r\n return css `\r\n ${setCssVar('accentColor', brand.green)};\r\n ${setCssVar('fgColor', brand.black)};\r\n `;\r\n case 'burgundy':\r\n return css `\r\n ${setCssVar('accentColor', brand.burgundy)};\r\n ${setCssVar('fgColor', brand.black)};\r\n `;\r\n case 'whiteBurgundy':\r\n return css `\r\n ${setCssVar('accentColor', brand.burgundy)};\r\n ${setCssVar('fgColor', brand.black)};\r\n `;\r\n case 'dark':\r\n return css `\r\n ${setCssVar('accentColor', brand.green)};\r\n ${setCssVar('fgColor', brand.white)};\r\n `;\r\n case 'darkBurgundy':\r\n return css `\r\n ${setCssVar('accentColor', brand.lightBurgundy)};\r\n ${setCssVar('fgColor', brand.white)};\r\n `;\r\n }\r\n}}\r\n`;\r\nconst SlideButton = styled.button `\r\n display: inline-flex;\r\n background: none;\r\n border: 0;\r\n color: ${cssVar('fgColor')};\r\n margin: 0;\r\n padding: 18px 0;\r\n place-content: center;\r\n place-items: center;\r\n transition: background-color 0.15s ease-out;\r\n\r\n & + & {\r\n margin: 0 0 0 8px;\r\n }\r\n\r\n &::before {\r\n content: '';\r\n background: ${cssVar('fgColor')};\r\n height: 4px;\r\n transition: background-color 0.15s ease-out;\r\n width: 40px;\r\n }\r\n\r\n &:not(:disabled) {\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n &::before {\r\n background: ${cssVar('accentColor')};\r\n }\r\n }\r\n }\r\n\r\n &:disabled {\r\n &::before {\r\n background: ${cssVar('accentColor')};\r\n }\r\n }\r\n`;\r\nconst ControlButton = styled.button `\r\n position: relative;\r\n display: inline-flex;\r\n background: none;\r\n border: 1px solid ${cssVar('fgColor')};\r\n border-radius: 50%;\r\n color: ${cssVar('fgColor')};\r\n height: 40px;\r\n margin: 0 0 0 8px;\r\n padding: 0;\r\n place-content: center;\r\n place-items: center;\r\n width: 40px;\r\n transition: border-color 0.15s ease-out, opacity 0.15s ease-out;\r\n\r\n &:not(:disabled) {\r\n &:focus {\r\n outline: none;\r\n }\r\n\r\n &:focus,\r\n &:hover {\r\n border-color: ${cssVar('accentColor')};\r\n }\r\n }\r\n\r\n &:disabled {\r\n opacity: 0.5;\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n margin: 0 8px 0 0;\r\n }\r\n`;\r\nconst ControlIcon = styled.span `\r\n color: ${cssVar('fgColor')};\r\n height: 14px;\r\n width: 14px;\r\n`;\r\nconst ControlProgressButton = styled(ControlButton) `\r\n border: 0;\r\n`;\r\nconst ControlProgress = styled.svg `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n color: ${cssVar('accentColor')};\r\n height: 100%;\r\n width: 100%;\r\n`;\r\nconst ControlProgressCircle = styled(m.circle) `\r\n stroke-dasharray: var(--circumference) var(--circumference);\r\n transform: rotate(-90deg);\r\n transform-origin: center center;\r\n`;\r\nconst SrOnly = styled.span `\r\n ${srOnly}\r\n`;\r\nexport default {\r\n Container,\r\n ControlButton,\r\n ControlIcon,\r\n ControlProgress,\r\n ControlProgressButton,\r\n ControlProgressCircle,\r\n SlideButton,\r\n SrOnly,\r\n};\r\n","import { domAnimation, LazyMotion } from 'framer-motion';\r\nimport React from 'react';\r\nexport function withMotion(WrappedComponent) {\r\n const displayName = WrappedComponent.displayName || WrappedComponent.name || 'Component';\r\n const ComponentWithMotion = (props) => {\r\n return (React.createElement(LazyMotion, { features: domAnimation, strict: true },\r\n React.createElement(WrappedComponent, { ...props })));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\r\n","import { cssVar } from '@helpers/cssVar';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav `\r\n display: block;\r\n margin: 0 0 16px;\r\n`;\r\nconst Title = styled.small `\r\n display: block;\r\n ${fonts.gotham.regular};\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n line-height: 24px;\r\n margin: 0 0 8px;\r\n opacity: 0.5;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n letter-spacing: 0.05em;\r\n line-height: 24px;\r\n margin: 0 0 16px;\r\n }\r\n`;\r\nconst List = styled.ul `\r\n columns: auto 2;\r\n`;\r\nconst Item = styled.li ``;\r\nconst Link = styled.a `\r\n display: flex;\r\n align-items: center;\r\n color: currentColor;\r\n ${fonts.gotham.light};\r\n font-size: 16px;\r\n line-height: 24px;\r\n margin: 0 0 16px;\r\n text-decoration: none;\r\n text-underline-position: under;\r\n\r\n &:focus,\r\n &:hover {\r\n text-decoration: underline;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 24px;\r\n line-height: 32px;\r\n }\r\n`;\r\nconst Icon = styled.span `\r\n display: inline-block;\r\n color: ${cssVar('accentColor')};\r\n height: 14px;\r\n margin: 0 8px 0 0;\r\n width: 14px;\r\n`;\r\nconst Text = styled.span `\r\n display: inline-block;\r\n`;\r\nexport default {\r\n Container,\r\n Icon,\r\n Item,\r\n Link,\r\n List,\r\n Text,\r\n Title,\r\n};\r\n","import { ReactComponent as SvgChevronDown } from '@img/icons/chevron-down.svg';\r\nimport { ReactComponent as SvgChevronRight } from '@img/icons/chevron-right.svg';\r\nimport React from 'react';\r\nimport S from './QuickLinks.styles';\r\nconst QuickLinks = ({ items, title }) => {\r\n return (React.createElement(S.Container, { \"aria-label\": title ?? 'Quick Links' },\r\n title && React.createElement(S.Title, null, title),\r\n React.createElement(S.List, null, items.map((item) => (React.createElement(S.Item, { key: item.id },\r\n React.createElement(S.Link, { href: item.url ?? item.anchor, target: item.target, \"aria-label\": item.accessibleText },\r\n React.createElement(S.Icon, { as: item.anchor ? SvgChevronDown : SvgChevronRight }),\r\n React.createElement(S.Text, null, item.text))))))));\r\n};\r\nexport default QuickLinks;\r\n","var _defs, _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgApartmentDetailBg(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n width: 328,\n height: 328\n }, props), _defs || (_defs = /*#__PURE__*/React.createElement(\"defs\", null, /*#__PURE__*/React.createElement(\"clipPath\", {\n id: \"apartment-detail-bg_svg__a\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Rectangle 27583\",\n transform: \"translate(1579.341 -522.659)\",\n fill: \"#fff\",\n stroke: \"#707070\",\n d: \"M0 0h328v328H0z\"\n })))), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n \"data-name\": \"Mask Group 101\",\n transform: \"rotate(180 953.67 -97.33)\",\n opacity: 0.15,\n clipPath: \"url(#apartment-detail-bg_svg__a)\"\n }, /*#__PURE__*/React.createElement(\"path\", {\n \"data-name\": \"Path 40814\",\n d: \"M1899.023-459.489a17.768 17.768 0 1023.568-8.71 17.769 17.769 0 00-23.568 8.71zm4.994 31.639a26.653 26.653 0 10-13.066-35.358 26.65 26.65 0 0013.066 35.356zm43.429-9.349a35.539 35.539 0 10-47.146 17.423 35.535 35.535 0 0047.146-17.424zm-13.708-55.211a44.423 44.423 0 1021.782 58.928 44.425 44.425 0 00-21.782-58.929zm-67 18.059a53.307 53.307 0 1070.711-26.13 53.306 53.306 0 00-70.71 26.129zm22.42 78.783a62.189 62.189 0 10-30.493-82.5 62.188 62.188 0 0030.494 82.499zm90.569-26.77a71.077 71.077 0 10-94.284 34.841 71.076 71.076 0 0094.285-34.842zm-31.126-102.356a79.961 79.961 0 1039.2 106.07 79.967 79.967 0 00-39.2-106.07zm1.464-9.07a88.805 88.805 0 102.249 1 85.732 85.732 0 00-2.249-1zm-75.769 170.478a97.729 97.729 0 10-47.91-129.641 97.722 97.722 0 0047.91 129.641zm137.711-44.191a106.614 106.614 0 10-141.426 52.261 106.659 106.659 0 00141.426-52.262zm-93.126-52.656a8.886 8.886 0 104.359 11.786 8.889 8.889 0 00-4.359-11.786zm-60.76 99.005a17.769 17.769 0 1023.568-8.71 17.77 17.77 0 00-23.573 8.71zm4.993 31.64a26.654 26.654 0 10-13.064-35.358 26.656 26.656 0 0013.059 35.358zm43.43-9.349a35.539 35.539 0 10-47.143 17.421 35.535 35.535 0 0047.139-17.421zm-13.708-55.21a44.421 44.421 0 1021.782 58.924 44.422 44.422 0 00-21.787-58.923zm-67 18.059a53.306 53.306 0 1070.713-26.132 53.3 53.3 0 00-70.715 26.133zm22.417 78.783a62.19 62.19 0 10-30.486-82.5 62.194 62.194 0 0030.484 82.501zm90.574-26.773a71.079 71.079 0 10-94.288 34.842 71.077 71.077 0 0094.286-34.841zm-31.133-102.353a79.96 79.96 0 1039.2 106.071 79.964 79.964 0 00-39.2-106.071zm1.467-9.071a88.913 88.913 0 102.25 1 87.297 87.297 0 00-2.25-1zm-75.768 170.479a97.729 97.729 0 10-47.912-129.642 97.719 97.719 0 0047.912 129.642zm137.708-44.193a106.613 106.613 0 10-141.42 52.264 106.659 106.659 0 00141.42-52.264zm-93.129-52.652a8.884 8.884 0 104.359 11.786 8.885 8.885 0 00-4.359-11.786zm-144.307 184.361a26.655 26.655 0 10-13.063-35.363 26.659 26.659 0 0013.063 35.363zm29.722-64.566a44.423 44.423 0 1021.779 58.921 44.424 44.424 0 00-21.779-58.92zm-44.578 96.846a62.191 62.191 0 10-30.49-82.5 62.193 62.193 0 0030.491 82.501zm29.716-64.567a8.885 8.885 0 104.358 11.786 8.888 8.888 0 00-4.357-11.785zm199.452-55.3a26.652 26.652 0 10-13.066-35.358 26.65 26.65 0 0013.07 35.361zm29.722-64.558a44.421 44.421 0 1021.775 58.919 44.424 44.424 0 00-21.775-58.919zm-44.583 96.842a62.191 62.191 0 10-30.489-82.5 62.195 62.195 0 0030.489 82.504zm29.723-64.564a8.884 8.884 0 104.351 11.782 8.89 8.89 0 00-4.35-11.779zm-241.684-39.538a26.652 26.652 0 10-13.063-35.357 26.655 26.655 0 0013.063 35.357zm29.726-64.558a44.421 44.421 0 1021.774 58.918 44.421 44.421 0 00-21.774-58.918zm-44.578 96.838a62.189 62.189 0 10-30.489-82.5 62.186 62.186 0 0030.484 82.501zm59.435-129.12a79.96 79.96 0 1039.2 106.066 79.959 79.959 0 00-39.2-106.066zm-74.3 161.408a97.73 97.73 0 10-47.913-129.643 97.72 97.72 0 0047.912 129.64zm44.58-96.844a8.884 8.884 0 104.356 11.785 8.888 8.888 0 00-4.356-11.787zm115 105.5a17.766 17.766 0 1023.568-8.711 17.764 17.764 0 00-23.567 8.712zm4.993 31.641a26.655 26.655 0 10-13.066-35.357 26.652 26.652 0 0013.067 35.359zm43.43-9.349a35.539 35.539 0 10-47.143 17.42 35.541 35.541 0 0047.144-17.418zm-13.707-55.214a44.425 44.425 0 1021.776 58.931 44.424 44.424 0 00-21.775-58.929zm-67 18.062a53.3 53.3 0 1070.711-26.131 53.3 53.3 0 00-70.707 26.133zm52.136 14.219a8.885 8.885 0 104.356 11.785 8.885 8.885 0 00-4.352-11.783zm-186.028-11.635a17.769 17.769 0 1023.569-8.711 17.769 17.769 0 00-23.569 8.711zm4.994 31.641a26.655 26.655 0 10-13.063-35.357 26.652 26.652 0 0013.063 35.357zm43.427-9.352a35.537 35.537 0 10-47.141 17.423 35.537 35.537 0 0047.142-17.423zm-13.7-55.21a44.423 44.423 0 1021.775 58.927 44.422 44.422 0 00-21.777-58.926zm-67 18.062a53.306 53.306 0 1070.712-26.129 53.3 53.3 0 00-70.714 26.13zm52.137 14.22a8.883 8.883 0 104.356 11.782 8.883 8.883 0 00-4.357-11.781zm-839.359-420.2a26.647 26.647 0 00-29.06 24.005 26.649 26.649 0 0024 29.059 26.65 26.65 0 0029.058-24.005 26.654 26.654 0 00-23.999-29.063zm-6.738 70.754a44.425 44.425 0 0048.437-40.007 44.426 44.426 0 00-40.014-48.438 44.425 44.425 0 00-48.433 40.014 44.416 44.416 0 0040.009 48.428zm10.108-106.129a62.191 62.191 0 00-67.809 56.015 62.191 62.191 0 0056.021 67.805 62.188 62.188 0 0067.8-56.014 62.189 62.189 0 00-56.014-67.81zm-6.738 70.754a8.883 8.883 0 009.686-8 8.883 8.883 0 00-8-9.69 8.883 8.883 0 00-9.685 8.005 8.882 8.882 0 007.997 9.682zm205.918-143.57a26.653 26.653 0 00-29.056 24.008 26.65 26.65 0 0024.007 29.059 26.655 26.655 0 0029.061-24.007 26.656 26.656 0 00-24.014-29.064zm-6.737 70.756a44.425 44.425 0 0048.433-40.014 44.423 44.423 0 00-40.012-48.437 44.422 44.422 0 00-48.433 40.017 44.422 44.422 0 0040.01 48.43zm10.107-106.136a62.19 62.19 0 00-67.809 56.022 62.191 62.191 0 0056.018 67.8 62.188 62.188 0 0067.805-56.013 62.194 62.194 0 00-56.014-67.809zm-6.739 70.754a8.885 8.885 0 009.688-8 8.883 8.883 0 00-8.005-9.685 8.883 8.883 0 00-9.686 8 8.88 8.88 0 008.003 9.685zM908.099-599.142a26.654 26.654 0 00-29.061 24.008 26.652 26.652 0 0024.007 29.059 26.654 26.654 0 0029.061-24 26.655 26.655 0 00-24.007-29.067zm-6.738 70.756a44.427 44.427 0 0048.434-40.008 44.422 44.422 0 00-40.014-48.439 44.425 44.425 0 00-48.433 40.016 44.423 44.423 0 0040.013 48.431zm10.106-106.129a62.187 62.187 0 00-67.805 56.014 62.186 62.186 0 0056.012 67.8 62.187 62.187 0 0067.807-56.009 62.188 62.188 0 00-56.014-67.806zm-13.476 141.508a79.959 79.959 0 0087.182-72.016 79.962 79.962 0 00-72.022-87.186 79.96 79.96 0 00-87.178 72.023 79.957 79.957 0 0072.018 87.179zm16.844-176.89a97.725 97.725 0 00-106.554 88.028 97.725 97.725 0 0088.02 106.551 97.732 97.732 0 00106.56-88.024 97.734 97.734 0 00-88.026-106.556zm-10.1 106.135a8.889 8.889 0 009.69-8 8.888 8.888 0 00-8.007-9.688 8.883 8.883 0 00-9.687 8 8.885 8.885 0 007.999 9.687zM945.25-457.51a17.761 17.761 0 00-16-19.371 17.768 17.768 0 00-19.372 16 17.769 17.769 0 0016 19.371 17.769 17.769 0 0019.367-16zm-15.16-28.218a26.648 26.648 0 00-29.055 24.007 26.647 26.647 0 0024 29.058 26.65 26.65 0 0029.061-24 26.649 26.649 0 00-24.015-29.065zm-37.9 23.164a35.539 35.539 0 0032.009 38.747 35.544 35.544 0 0038.75-32.009 35.541 35.541 0 00-32.012-38.746 35.534 35.534 0 00-38.756 32.008zm31.168 47.589a44.421 44.421 0 0048.423-40.007 44.425 44.425 0 00-40.009-48.438 44.431 44.431 0 00-48.44 40.014 44.421 44.421 0 0040.017 48.431zm57.278-39.164a53.308 53.308 0 00-48.015-58.123 53.311 53.311 0 00-58.132 48.01 53.3 53.3 0 0048.016 58.116 53.3 53.3 0 0058.122-48.004zm-53.912 3.789a8.888 8.888 0 009.688-8 8.886 8.886 0 00-8-9.69 8.883 8.883 0 00-9.686 8 8.885 8.885 0 007.989 9.688z\",\n fill: \"none\",\n stroke: \"#f0eee6\",\n strokeMiterlimit: 3.864,\n strokeWidth: 1.75\n }))));\n}\n\nexport default __webpack_public_path__ + \"apartment-detail-bg-0f787dc097ce998ed8ce3fdb3b4a80ad.svg\";\nexport { SvgApartmentDetailBg as ReactComponent };","import animation, { fadeIn } from '@helpers/animation';\r\nimport brand from '@helpers/brand';\r\nimport { cssVar } from '@helpers/cssVar';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { headerOverlap, headerOverlapPadding } from '@helpers/utils';\r\nimport svgBg from '@img/general/apartment-detail-bg.svg';\r\nimport BreadcrumbStyles from '@stories/Components/Breadcrumb/Breadcrumb.styles';\r\nimport CarouselControlsStyles from '@stories/Components/CarouselControls/CarouselControls.styles';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport SiteWideStyles from '@stories/Components/Global/SiteWide/SiteWide.styles';\r\nimport HeadingStyles from '@stories/Components/Global/Typography/Heading.styles';\r\nimport ParagraphStyles from '@stories/Components/Global/Typography/Paragraph.styles';\r\nimport SectionWrapper from '@stories/Components/SectionWrapper/SectionWrapper';\r\nimport { m } from 'framer-motion';\r\nimport { rgba } from 'polished';\r\nimport styled, { css } from 'styled-components';\r\nimport RichTextStyles from '../../RichText/RichText.styles';\r\nconst Container = styled(SectionWrapper) `\r\n ${headerOverlap};\r\n\r\n background: ${cssVar('bgColor')};\r\n color: ${cssVar('fgColor')};\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n ${headerOverlapPadding};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-top: 0;\r\n\r\n ${() => Bottom} {\r\n padding: 72px 0;\r\n }\r\n }\r\n\r\n ${BreadcrumbStyles.Container} {\r\n margin: 0 0 8px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin: 0 0 48px;\r\n }\r\n }\r\n`;\r\nconst Inner = styled.div ``;\r\nconst MediaWrapper = styled.div `\r\n display: none;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: relative;\r\n z-index: 1;\r\n display: block;\r\n min-height: 720px;\r\n width: 100%;\r\n overflow: hidden;\r\n background-color: ${brand.black};\r\n }\r\n`;\r\nconst Image = styled(m.img) `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n height: 100%;\r\n object-fit: cover;\r\n object-position: center center;\r\n width: 100%;\r\n background-color: ${brand.black};\r\n`;\r\nconst Player = styled(m.div) `\r\n position: absolute;\r\n top: 0;\r\n left: 0;\r\n display: block;\r\n width: 100%;\r\n height: 100%;\r\n\r\n ${({ isExternal }) => isExternal &&\r\n css `\r\n height: 100%;\r\n `};\r\n\r\n video,\r\n iframe {\r\n position: absolute;\r\n left: 0;\r\n top: 0;\r\n display: block;\r\n height: 100%;\r\n width: 100%;\r\n pointer-events: none;\r\n }\r\n\r\n video {\r\n max-height: 720px;\r\n object-fit: cover;\r\n object-position: center center;\r\n }\r\n\r\n iframe {\r\n position: absolute;\r\n top: 50%;\r\n left: 50%;\r\n width: 100vw;\r\n height: 100vh;\r\n transform: translate(-50%, -50%);\r\n\r\n @media (min-aspect-ratio: 16/9) {\r\n height: 56.25vw;\r\n }\r\n\r\n @media (max-aspect-ratio: 16/9) {\r\n width: 177.78vh;\r\n }\r\n }\r\n`;\r\nconst Controls = styled.div `\r\n position: absolute;\r\n bottom: 0;\r\n right: 0;\r\n width: 100%;\r\n height: 150px;\r\n z-index: 5;\r\n background: linear-gradient(to bottom, transparent, ${rgba(brand.black, 0.75)});\r\n\r\n ${SiteWideStyles.Container} {\r\n position: relative;\r\n display: flex;\r\n align-items: flex-end;\r\n justify-content: flex-end;\r\n height: 100%;\r\n padding-bottom: 30px;\r\n }\r\n\r\n ${CarouselControlsStyles.Container} {\r\n height: 40px;\r\n }\r\n\r\n @media ${until(Device.Tablet)} {\r\n ${CarouselControlsStyles.SlideButton} {\r\n display: none;\r\n }\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n opacity: 0;\r\n\r\n ${({ isActive }) => isActive &&\r\n css `\r\n ${fadeIn(isActive, 375, 300, animation.easeInOutCubic)};\r\n `}\r\n }\r\n`;\r\nconst Bottom = styled.div `\r\n display: block;\r\n background-image: url('${svgBg}');\r\n background-repeat: no-repeat;\r\n background-position: left center;\r\n background-size: auto 100%;\r\n padding: 72px 0;\r\n`;\r\nconst BottomInner = styled(SiteWide) `\r\n display: grid;\r\n gap: 0 20px;\r\n grid-template-columns: repeat(6, 1fr);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n gap: 0 30px;\r\n grid-template-columns: repeat(12, 1fr);\r\n }\r\n`;\r\nconst BottomLeft = styled.div `\r\n grid-column: 1 / span 6;\r\n margin: 0 0 24px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / span 7;\r\n margin: 0;\r\n }\r\n`;\r\nconst BottomRight = styled.div `\r\n grid-column: 1 / span 6;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 8 / span 5;\r\n }\r\n`;\r\nconst Tag = styled.small `\r\n display: block;\r\n ${fonts.gotham.regular};\r\n font-size: 16px;\r\n letter-spacing: normal;\r\n line-height: 24px;\r\n margin: 0 0 8px;\r\n text-transform: uppercase;\r\n\r\n strong {\r\n ${fonts.gotham.bold};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n letter-spacing: 0.05em;\r\n line-height: 24px;\r\n margin: 0 0 16px;\r\n }\r\n`;\r\nconst Title = styled.h1 `\r\n display: block;\r\n ${HeadingStyles.H1Styles};\r\n margin: 0 0 24px;\r\n max-width: 740px;\r\n text-transform: uppercase;\r\n\r\n @media ${from(Device.Desktop)} {\r\n font-size: 70px;\r\n line-height: 70px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 70px;\r\n line-height: 70px;\r\n }\r\n`;\r\nconst Content = styled.div `\r\n ${fonts.gotham.light};\r\n ${RichTextStyles.contentStyles}\r\n margin: 0;\r\n max-width: 695px;\r\n\r\n p {\r\n ${ParagraphStyles.LargeStyles};\r\n ${fonts.gotham.light};\r\n }\r\n`;\r\nexport default {\r\n Bottom,\r\n BottomInner,\r\n BottomLeft,\r\n BottomRight,\r\n Container,\r\n Content,\r\n Controls,\r\n Image,\r\n MediaWrapper,\r\n Inner,\r\n Player,\r\n Tag,\r\n Title,\r\n};\r\n","import animation from '@helpers/animation';\r\nimport { imageUrl } from '@helpers/image';\r\nimport { Device, from } from '@helpers/media';\r\nimport { sleep } from '@helpers/utils';\r\nimport { withMotion } from '@hoc/withMotion';\r\nimport { useInView } from '@hooks/useInView';\r\nimport Breadcrumb from '@stories/Components/Breadcrumb/Breadcrumb';\r\nimport CarouselControls from '@stories/Components/CarouselControls/CarouselControls';\r\nimport CarouselProvider from '@stories/Components/CarouselControls/CarouselProvider';\r\nimport SiteWide from '@stories/Components/Global/SiteWide/SiteWide';\r\nimport QuickLinks from '@stories/Components/QuickLinks/QuickLinks';\r\nimport Swipeable from '@stories/Components/Swipeable/Swipeable';\r\nimport TagLozange from '@stories/Components/TagLozange/TagLozange';\r\nimport { AnimatePresence } from 'framer-motion';\r\nimport React, { useEffect, useState } from 'react';\r\nimport ReactPlayer from 'react-player/lazy';\r\nimport S from './ApartmentDetailBanner.styles';\r\nexport var MediaType;\r\n(function (MediaType) {\r\n MediaType[MediaType[\"Image\"] = 0] = \"Image\";\r\n MediaType[MediaType[\"Video\"] = 1] = \"Video\";\r\n})(MediaType || (MediaType = {}));\r\nconst ApartmentDetailBanner = ({ breadcrumb, items, content, priceMessage, pricePerMonth, pricePerWeek, quickLinks, tag, title, autoplay = 0, loop = false, }) => {\r\n const [refContainer, isInView] = useInView({\r\n threshold: animation.inView.threshold,\r\n });\r\n const [activeIndex, setActiveIndex] = useState(0);\r\n const [animateSlide, setAnimateSlide] = useState(false);\r\n const activeItem = items[activeIndex];\r\n const isExternal = !!activeItem.video &&\r\n (activeItem.video.indexOf('youtube') > -1 || activeItem.video.indexOf('vimeo') > -1);\r\n const slideTransitionDelay = 500;\r\n useEffect(() => {\r\n sleep(slideTransitionDelay).then(() => {\r\n setAnimateSlide(false);\r\n });\r\n }, [animateSlide === true]);\r\n function prev() {\r\n if (loop && activeIndex === 0) {\r\n return setActiveIndex(items.length - 1);\r\n }\r\n setActiveIndex(Math.max(activeIndex - 1, 0));\r\n }\r\n function next() {\r\n if (loop && activeIndex === items.length - 1) {\r\n return setActiveIndex(0);\r\n }\r\n setActiveIndex(Math.min(activeIndex + 1, items.length - 1));\r\n }\r\n const renderFallbackImage = () => {\r\n if (activeItem.fallbackImage === undefined) {\r\n return undefined;\r\n }\r\n return (React.createElement(\"picture\", null,\r\n React.createElement(\"source\", { media: from(Device.TabletLarge), srcSet: getImageSrcSet(activeItem.fallbackImage), sizes: \"100vw\" }),\r\n React.createElement(S.Image, { alt: \"\", draggable: false, loading: \"eager\", role: \"presentation\", src: \"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\" })));\r\n };\r\n const renderMedia = () => {\r\n return (React.createElement(CarouselProvider, { autoplay: activeItem.duration ?? autoplay, loop: loop, max: items.length, value: activeIndex, onChange: (index) => {\r\n setAnimateSlide(true);\r\n sleep(slideTransitionDelay).then(() => {\r\n setActiveIndex(index);\r\n });\r\n } }, ({ actions: { playPause } }) => (React.createElement(Swipeable, { preventDefaultTouchmoveEvent: true, onSwipedLeft: () => {\r\n setAnimateSlide(true);\r\n sleep(slideTransitionDelay).then(() => {\r\n playPause(true);\r\n next();\r\n });\r\n }, onSwipedRight: () => {\r\n setAnimateSlide(true);\r\n sleep(slideTransitionDelay).then(() => {\r\n playPause(true);\r\n prev();\r\n });\r\n } }, (handlers) => (React.createElement(S.MediaWrapper, { ...handlers },\r\n React.createElement(AnimatePresence, null,\r\n activeItem.id && activeItem.mediaType === MediaType.Image && activeItem.image && (React.createElement(\"picture\", null,\r\n React.createElement(\"source\", { media: from(Device.TabletLarge), srcSet: getImageSrcSet(activeItem.image), sizes: \"100vw\" }),\r\n React.createElement(S.Image, { key: activeItem.id, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, alt: \"\", draggable: false, loading: \"eager\", role: \"presentation\", src: \"data:image/gif;base64,R0lGODlhAQABAIAAAP///wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==\" }))),\r\n activeItem.id && activeItem.mediaType === MediaType.Video && activeItem.video && (React.createElement(S.Player, { key: activeItem.id, initial: { opacity: 0 }, animate: { opacity: 1 }, exit: { opacity: 0 }, isExternal: isExternal },\r\n React.createElement(ReactPlayer, { url: activeItem.video, controls: false, height: \"100%\", width: \"100%\", playing: true, playsinline: true, loop: true, muted: true, config: {\r\n youtube: {\r\n playerVars: { rel: 0 },\r\n },\r\n }, fallback: renderFallbackImage() })))),\r\n items.length > 1 && (React.createElement(S.Controls, { isActive: isInView },\r\n React.createElement(SiteWide, null,\r\n React.createElement(CarouselControls, { controls: true, theme: 'darkBurgundy' }))))))))));\r\n };\r\n return (React.createElement(S.Container, { ref: refContainer, flush: \"both\", fullWidth: true, isActive: isInView, themeOption: \"darkBurgundy\" },\r\n React.createElement(S.Inner, null,\r\n renderMedia(),\r\n React.createElement(S.Bottom, null,\r\n React.createElement(S.BottomInner, null,\r\n React.createElement(S.BottomLeft, null,\r\n breadcrumb && React.createElement(Breadcrumb, { items: breadcrumb }),\r\n title && (React.createElement(S.Title, null,\r\n React.createElement(\"span\", null, title))),\r\n tag &&\r\n React.createElement(TagLozange, { content: tag }),\r\n !priceMessage ? (React.createElement(S.Tag, null,\r\n React.createElement(\"strong\", null,\r\n formatPrice(pricePerWeek),\r\n \" per week\"),\r\n React.createElement(\"span\", null,\r\n \"\\u00A0/ \",\r\n formatPrice(pricePerMonth),\r\n \" per month\"))) : (React.createElement(S.Tag, null,\r\n React.createElement(\"strong\", null, priceMessage))),\r\n content && React.createElement(S.Content, { dangerouslySetInnerHTML: { __html: content } })),\r\n React.createElement(S.BottomRight, null, quickLinks && React.createElement(QuickLinks, { ...quickLinks })))))));\r\n};\r\nexport default withMotion(ApartmentDetailBanner);\r\nfunction getImageSrcSet(image) {\r\n return [\r\n `${imageUrl(image, { width: 1024, heightratio: 720 / 1024 })} 1024w`,\r\n `${imageUrl(image, { width: 1280, heightratio: 720 / 1280 })} 1280w`,\r\n `${imageUrl(image, { width: 1440, heightratio: 720 / 1440 })} 1440w`,\r\n `${imageUrl(image, { width: 1920, heightratio: 720 / 1920 })} 1920w`,\r\n ].join(',');\r\n}\r\nfunction formatPrice(value) {\r\n return `£${value.toFixed(0)}`;\r\n}\r\n","import { css } from 'styled-components';\r\n/**\r\n * Show only for screen readers.\r\n * @description Sourced from https://gist.github.com/ffoodd/000b59f431e3e64e4ce1a24d5bb36034\r\n */\r\nconst srOnly = css `\r\n border: 0 !important;\r\n clip: rect(1px, 1px, 1px, 1px) !important;\r\n -webkit-clip-path: inset(50%) !important;\r\n clip-path: inset(50%) !important;\r\n height: 1px !important;\r\n margin: -1px !important;\r\n overflow: hidden !important;\r\n padding: 0 !important;\r\n position: absolute !important;\r\n width: 1px !important;\r\n white-space: nowrap !important;\r\n`;\r\nexport default srOnly;\r\n","import { cssVar } from '@helpers/cssVar';\r\nimport fonts from '@helpers/fonts';\r\nimport { Device, from } from '@helpers/media';\r\nimport styled from 'styled-components';\r\nconst Container = styled.nav `\r\n display: block;\r\n color: ${cssVar('fgColor')};\r\n user-select: none;\r\n`;\r\nconst List = styled.ul `\r\n display: flex;\r\n align-items: center;\r\n`;\r\nconst Item = styled.li `\r\n display: flex;\r\n align-items: center;\r\n ${fonts.gotham.regular};\r\n font-size: 12px;\r\n letter-spacing: normal;\r\n line-height: 18px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 18px;\r\n letter-spacing: 0.05em;\r\n line-height: 24px;\r\n }\r\n\r\n & + & {\r\n &::before {\r\n content: '/';\r\n color: ${cssVar('fgColor')};\r\n margin: 0 4px;\r\n }\r\n }\r\n`;\r\nconst Link = styled.a `\r\n display: block;\r\n color: currentColor;\r\n text-decoration: none;\r\n text-transform: uppercase;\r\n text-underline-position: under;\r\n\r\n a& {\r\n &:focus,\r\n &:hover {\r\n outline: none;\r\n text-decoration: underline;\r\n }\r\n }\r\n\r\n span& {\r\n ${fonts.gotham.light};\r\n cursor: default;\r\n }\r\n`;\r\nexport default {\r\n Container,\r\n Item,\r\n Link,\r\n List,\r\n};\r\n","import { useReducedMotion } from 'framer-motion';\r\nimport * as React from 'react';\r\nconst CarouselContext = React.createContext({\r\n actions: {\r\n /* eslint-disable @typescript-eslint/no-empty-function */\r\n next: () => { },\r\n playPause: () => { },\r\n prev: () => { },\r\n /* eslint-enable @typescript-eslint/no-empty-function */\r\n },\r\n state: {\r\n autoplay: 0,\r\n disabled: false,\r\n isPaused: false,\r\n loop: false,\r\n max: 0,\r\n value: 0,\r\n /* eslint-disable @typescript-eslint/no-empty-function */\r\n onChange: () => { },\r\n /* eslint-enable @typescript-eslint/no-empty-function */\r\n },\r\n});\r\nexport const useCarousel = () => React.useContext(CarouselContext);\r\nconst CarouselProvider = (props) => {\r\n const { autoplay, disabled, loop, max, value, onChange } = props;\r\n const shouldReduceMotion = useReducedMotion();\r\n const [isPaused, setIsPaused] = React.useState(shouldReduceMotion || autoplay === 0);\r\n const contextValue = {\r\n actions: {\r\n next,\r\n playPause,\r\n prev,\r\n },\r\n state: {\r\n autoplay,\r\n disabled,\r\n isPaused,\r\n loop,\r\n max,\r\n value,\r\n onChange,\r\n },\r\n };\r\n return (React.createElement(CarouselContext.Provider, { value: contextValue }, props.children(contextValue)));\r\n /** Set the autoplay state of the carousel. */\r\n function playPause(value) {\r\n setIsPaused(value);\r\n }\r\n /** Move to the previous slide, handles looping if enabled. */\r\n function prev() {\r\n if (loop && value === 0) {\r\n return onChange(max - 1);\r\n }\r\n onChange(Math.max(value - 1, 0));\r\n }\r\n /** Move to the next slide, handles looping if enabled. */\r\n function next() {\r\n if (loop && value === max - 1) {\r\n return onChange(0);\r\n }\r\n onChange(Math.min(value + 1, max - 1));\r\n }\r\n};\r\nexport default CarouselProvider;\r\n","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgChevronRight(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 8.6 14\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.5 2.5l5.3 5.4-5.3 5.4 1.6 1.6 7-7-7-7L.5 2.5z\",\n fill: \"currentColor\"\n })));\n}\n\nexport default __webpack_public_path__ + \"chevron-right-647f3e0907a27cc2985183743836516d.svg\";\nexport { SvgChevronRight as ReactComponent };","var _path;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgChevronDown(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 15.735 9.281\"\n }, props), _path || (_path = /*#__PURE__*/React.createElement(\"path\", {\n d: \"M.707.707l7.16 7.16 7.16-7.16\",\n fill: \"none\",\n stroke: \"currentColor\",\n strokeWidth: 2\n })));\n}\n\nexport default __webpack_public_path__ + \"chevron-down-67a97ff9b5bd0067c6fb56a9dd42fe63.svg\";\nexport { SvgChevronDown as ReactComponent };","import queryString from 'query-string';\r\n/**\r\n * Create an image URL for ImageSharp\r\n * @param image The image model\r\n * @param imageParams The image parameters\r\n * @returns The image URL\r\n */\r\nexport function imageUrl(image, imageParams) {\r\n if (!image || !image.src) {\r\n return '';\r\n }\r\n /**\r\n * Remove any query param string to ensure paramsString is applied correctly and\r\n * there are no double definitions (setting a param twice prevents any tranformations)\r\n */\r\n const imageSource = image.src.split('?')[0];\r\n const params = {\r\n rxy: image.focalPoint ? `${image.focalPoint.left},${image.focalPoint.top}` : undefined,\r\n rmode: 'crop',\r\n // Define default quality as 95 to ensure some reduction in size for all but the smallest images\r\n quality: imageParams.width && imageParams.width > 400 ? 95 : undefined,\r\n ...imageParams,\r\n };\r\n // Imagesharp doesn't support heightratio parameter. Convert to height parameter for compatibility.\r\n if (imageParams.heightratio !== undefined && imageParams.width !== undefined) {\r\n params.height = imageParams.width * imageParams.heightratio;\r\n }\r\n const paramsString = queryString.stringify(params);\r\n return `${imageSource}${paramsString ? `?${queryString.stringify(params)}` : ''}`;\r\n}\r\nexport function getSrcs(image, upper, lower, steps, ratio) {\r\n const sizes = getRange(upper, lower, steps);\r\n return sizes.map((size) => `${imageUrl(image, { width: size, heightratio: ratio })} ${size}w`);\r\n}\r\nexport function getRetinaSrcs(image, width, ratio) {\r\n const dprs = [1, 1.5, 2, 2.5, 3];\r\n return dprs.map((dpr) => `${imageUrl(image, { width: width * dpr, heightratio: ratio })} ${dpr}x`);\r\n}\r\nfunction getRange(upper, lower, steps) {\r\n const difference = upper - lower;\r\n const increment = difference / (steps - 1);\r\n return [\r\n lower,\r\n ...Array(steps - 2)\r\n .fill('')\r\n .map((_, index) => Math.ceil(lower + increment * (index + 1))),\r\n upper,\r\n ];\r\n}\r\n","var _g;\n\nfunction _extends() { _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; return _extends.apply(this, arguments); }\n\nimport * as React from \"react\";\n\nfunction SvgPause(props) {\n return /*#__PURE__*/React.createElement(\"svg\", _extends({\n xmlns: \"http://www.w3.org/2000/svg\",\n viewBox: \"0 0 12.085 16.478\"\n }, props), _g || (_g = /*#__PURE__*/React.createElement(\"g\", {\n fill: \"none\",\n stroke: \"currentColor\",\n strokeLinecap: \"round\",\n strokeLinejoin: \"round\",\n strokeWidth: 3\n }, /*#__PURE__*/React.createElement(\"path\", {\n d: \"M1.5 1.499v13.478M10.584 1.499v13.478\"\n }))));\n}\n\nexport default __webpack_public_path__ + \"pause-329c1f8435d11fd9b4222ada99a22cbe.svg\";\nexport { SvgPause as ReactComponent };","import { cssVar } from '@helpers/cssVar';\r\nimport { ReactComponent as SvgPause } from '@img/icons/pause.svg';\r\nimport { ReactComponent as SvgTriangleLeft } from '@img/icons/triangle-left.svg';\r\nimport { ReactComponent as SvgTriangleRight } from '@img/icons/triangle-right.svg';\r\nimport { useAnimation } from 'framer-motion';\r\nimport * as React from 'react';\r\nimport { useInterval } from 'react-use';\r\nimport S from './CarouselControls.styles';\r\nimport { useCarousel } from './CarouselProvider';\r\nconst CarouselControls = ({ controls = false, theme = 'light', }) => {\r\n const progressRadius = 18;\r\n const circumference = Math.PI * progressRadius * 2;\r\n const { actions, state } = useCarousel();\r\n const { next, playPause, prev } = actions;\r\n const { isPaused, autoplay = 0, disabled = false, loop = false, max, value, onChange } = state;\r\n const animationControls = useAnimation();\r\n useInterval(() => {\r\n next();\r\n }, isPaused ? null : autoplay);\r\n React.useEffect(() => {\r\n if (value === max - 1 && !loop) {\r\n return;\r\n }\r\n if (isPaused) {\r\n animationControls.start({\r\n strokeDashoffset: circumference,\r\n transition: { duration: 0.3, ease: 'easeOut', type: 'tween' },\r\n });\r\n return;\r\n }\r\n animationControls.set({\r\n strokeDashoffset: circumference,\r\n });\r\n animationControls.start({\r\n strokeDashoffset: 0,\r\n transition: { duration: autoplay / 1000, ease: 'linear', type: 'tween' },\r\n });\r\n }, [isPaused, value]);\r\n return (React.createElement(S.Container, { themeOption: theme },\r\n new Array(max).fill(0).map((_, index) => (React.createElement(S.SlideButton, { key: index + 1, disabled: value === index, onClick: (event) => {\r\n event.preventDefault();\r\n if (!disabled) {\r\n playPause(true);\r\n onChange(index);\r\n }\r\n } },\r\n React.createElement(S.SrOnly, null, value === index ? 'Active' : index + 1)))),\r\n autoplay > 0 && (React.createElement(S.ControlProgressButton, { onClick: (event) => {\r\n event.preventDefault();\r\n if (!isPaused) {\r\n return playPause(true);\r\n }\r\n if (!disabled) {\r\n playPause(false);\r\n next();\r\n }\r\n } },\r\n React.createElement(S.SrOnly, null, isPaused ? 'Play' : 'Pause'),\r\n React.createElement(S.ControlIcon, { as: isPaused ? SvgTriangleRight : SvgPause }),\r\n React.createElement(S.ControlProgress, { viewBox: \"0 0 40 40\" },\r\n React.createElement(\"circle\", { cx: 20, cy: 20, fill: \"none\", r: progressRadius, strokeWidth: 2, style: { stroke: cssVar('fgColor') } }),\r\n React.createElement(S.ControlProgressCircle, { animate: animationControls, cx: 20, cy: 20, fill: \"none\", r: progressRadius, strokeWidth: 2, \r\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\r\n style: { ['--circumference']: circumference, stroke: cssVar('accentColor') } })))),\r\n controls && (React.createElement(React.Fragment, null,\r\n React.createElement(S.ControlButton, { disabled: !loop && value === 0, onClick: (event) => {\r\n event.preventDefault();\r\n if (!disabled) {\r\n playPause(true);\r\n prev();\r\n }\r\n } },\r\n React.createElement(S.SrOnly, null, \"Previous\"),\r\n React.createElement(S.ControlIcon, { as: SvgTriangleLeft })),\r\n React.createElement(S.ControlButton, { disabled: !loop && value === max - 1, onClick: (event) => {\r\n event.preventDefault();\r\n if (!disabled) {\r\n playPause(true);\r\n next();\r\n }\r\n } },\r\n React.createElement(S.SrOnly, null, \"Next\"),\r\n React.createElement(S.ControlIcon, { as: SvgTriangleRight }))))));\r\n};\r\nexport default CarouselControls;\r\n"],"sourceRoot":""}