{"version":3,"sources":["webpack:///./src/helpers/media.ts","webpack:///./src/hocs/withMotion.tsx","webpack:///./src/stories/Components/Misc/SlideReveal.styles.ts","webpack:///./src/stories/Components/Media/Image/Image.tsx","webpack:///./src/core/api/services/ApiService.ts","webpack:///./src/hooks/useIntersectionObserver.ts","webpack:///./src/hooks/useInView.ts","webpack:///./src/stories/Elements/Misc/CultureFlag/CultureFlag.styles.ts","webpack:///./src/stories/Elements/Misc/CultureFlag/CultureFlag.tsx","webpack:///./src/helpers/global.ts","webpack:///./img/brand/empire.svg","webpack:///./src/stories/Elements/Forms/CTA/CTA.styles.ts","webpack:///./img/flags/rectangle/sprite.svg","webpack:///./src/helpers/accessibleHover.ts","webpack:///./src/stories/Widgets/Navigation/SiteNavigation/SiteNavigation.styles.tsx","webpack:///./img/icons/chevron-down--white.svg","webpack:///./src/stories/Widgets/Navigation/SiteNavigation/CultureSelect.tsx","webpack:///./src/stories/Elements/Forms/Burger/Burger.styles.ts","webpack:///./src/stories/Elements/Forms/Burger/Burger.tsx","webpack:///./img/icons/chevron-left.svg","webpack:///./img/icons/icon-x.svg","webpack:///./src/stories/Widgets/Navigation/SiteNavigation/SiteNavigationSearch/SiteNavigationSearch.styles.ts","webpack:///./img/icons/icon-search.svg","webpack:///./src/stories/Widgets/Navigation/SiteNavigation/SiteNavigationSearch/SiteNavigationSearch.tsx","webpack:///./img/brand/true-blue-2.svg","webpack:///./src/hooks/useBodyScrollLock.ts","webpack:///./src/stories/Widgets/Navigation/SiteNavigation/MobileNavigation.tsx","webpack:///./src/stories/Widgets/Navigation/SiteNavigation/SiteNavigation.tsx","webpack:///./src/stories/Components/Misc/SlideReveal.tsx","webpack:///./src/helpers/variants.ts","webpack:///./src/helpers/animation.ts","webpack:///./src/stories/Elements/Forms/CTA/CTAAnchor.tsx","webpack:///./src/helpers/grids.ts"],"names":["Device","from","size","until","withMotion","WrappedComponent","displayName","name","ComponentWithMotion","props","React","createElement","LazyMotion","features","domAnimation","strict","Object","assign","SlideRevealStyles","Wrapper","styled","div","Element","span","animate","order","delay","animateOnExit","slideUp","animation","easeInOutCubic","defaultSrcSetSizes","MobileSmall","Mobile","Tablet","Desktop","DesktopLarge","ActualDesktop","Image","Component","src","srcSetSizes","sizes","alt","role","loading","srcSet","map","x","ImageTransfrom","width","url","join","undefined","ApiService","request","this","getUrl","headers","Headers","Accept","isMultipartFormData","delete","requestOptions","method","mode","cache","body","getBody","files","fetch","response","status","Error","statusText","json","data","controller","slug","baseUrl","params","querystring","stringify","formData","FormData","append","JSON","length","index","file","useIntersectionObserver","callback","options","observerRef","useRef","rootRef","elementRef","useEffect","current","IntersectionObserver","root","observe","disconnect","useInView","reverse","isEditMode","useState","inView","setInView","entries","isIntersecting","CultureFlagStyles","svg","w","h","css","CultureFlag","cultureCode","height","href","FlagSpriteSheet","getFlagSpriteId","navHeight","navHeightTablet","navHeightMobile","ButtonReset","CTATheme","base","fonts","helvetica","theme","Blue","brand","blue","white","light","dark","White","Black","black","WhiteToBlack","CTAStyles","ButtonElement","button","attrs","type","AnchorElement","a","module","exports","accessibleHover","styles","Header","header","global","TabletLarge","Inner","grids","Default","Logo","Nav","nav","NavMobile","active","Items","SitePadding","ItemWrapper","Dropdown","ItemInnerWrapper","hasDetail","itemStyle","DesktopSmall","Item","ItemAsButton","NavItemIconWrapper","SearchTriggerButton","grey","MobileButtonWrapper","DesktopButtonWrapper","isOpen","DropdownBackButton","DropdownTitle","DropdownContent","DropdownItem","DropdownItemText","DropdownItemImageWrapper","DropdownItemImage","img","ContentOverlay","isActive","CultureSelect","CultureSelectActive","CultureSelectFlag","CultureSelectIcon","visible","CultureList","CultureItem","li","CultureLink","SiteNavigationStyles","xmlns","viewBox","data-name","d","fill","stroke","strokeWidth","activeCulture","availableCultures","find","documentCulture","Fragment","s","onClick","setIsOpen","ChevronDown","culture","key","id","cultureName","Button","Box","line","BurgerStyles","Burger","SiteNavigationSearchStyles","Container","m","initial","exit","variants","heightIn","verticalFadeIn","InputWrapper","Input","input","ClearButton","isHidden","SearchButton","SearchResultsContainer","SearchResults","staggerChildren","ProductCard","ProductCardImageWrapper","ProductCardDetails","ProductCardModel","ProductCardTitle","strong","ProductCardSubtitle","ViewAllButtonWrapper","strokeLinecap","strokeMiterlimit","cx","cy","r","SiteNavigationSearch","searchTerm","setSearchTerm","setResponse","getResults","debounce","term","pageContext","limit","apiResponse","console","error","AnimatePresence","isVisible","S","onKeyDown","e","toLowerCase","preventDefault","stopPropagation","window","location","searchResultsBaseUrl","placeholder","translations","autoComplete","value","onChange","currentTarget","ClearIcon","SearchIcon","products","product","modelCode","imageUrl","title","subTitle","CTAAnchor","text","useBodyScrollLock","trigger","ref","disableBodyScroll","enableBodyScroll","clearAllBodyScrollLocks","SiteNavigationIcon","MobileNavigation","isBurgerOpen","visibleCultures","activeSubMenuIndex","setActiveSubMenuIndex","renderItemText","item","icon","TRUE_BLUE","TrueBlueLogo","dangerouslySetInnerHTML","__html","links","children","SlideReveal","target","renderItem","ChevronLeftIcon","childItem","i","imageSrc","renderDropdown","threshold","elementInViewRef","isDropdownActive","setIsDropdownActive","isCultureDropdownOpen","setIsCultureDropdownOpen","isSearchOpen","setIsSearchOpen","handleTopLinkMouseEnter","link","homeLink","EmpireLogo","onMouseEnter","onMouseLeave","isFirstLoad","amount","duration","hidden","y","opacity","transition","scaleFadeIn","scale","staggerDuration","keyframes","fadeIn","easingFunc","fadeInUp","Textfit","max","baseFixed","SitePaddingBreakoutLeft","SitePaddingBreakoutRight","SitePaddingBreakout","Fixed"],"mappings":"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","file":"21-1f22fe2c1160f5c6de06.js","sourcesContent":["export var Device;\r\n(function (Device) {\r\n Device[Device[\"MobileSmall\"] = 320] = \"MobileSmall\";\r\n Device[Device[\"Mobile\"] = 375] = \"Mobile\";\r\n Device[Device[\"MobileLarge\"] = 480] = \"MobileLarge\";\r\n Device[Device[\"Tablet\"] = 768] = \"Tablet\";\r\n Device[Device[\"TabletLarge\"] = 1024] = \"TabletLarge\";\r\n Device[Device[\"DesktopSmall\"] = 1280] = \"DesktopSmall\";\r\n Device[Device[\"Desktop\"] = 1366] = \"Desktop\";\r\n Device[Device[\"DesktopLarge\"] = 1600] = \"DesktopLarge\";\r\n Device[Device[\"ActualDesktop\"] = 1920] = \"ActualDesktop\";\r\n Device[Device[\"DesktopXL\"] = 2560] = \"DesktopXL\";\r\n})(Device || (Device = {}));\r\nexport function from(size) {\r\n return `(min-width: ${size}px)`;\r\n}\r\nexport function until(size) {\r\n return `(max-width: ${size - 1}px)`;\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, Object.assign({}, props))));\r\n };\r\n ComponentWithMotion.displayName = `withMotion(${displayName})`;\r\n return ComponentWithMotion;\r\n}\r\n","import animation, { slideUp } from '@helpers/animation';\r\nimport styled from 'styled-components';\r\nconst Wrapper = styled.div `\r\n overflow: hidden;\r\n`;\r\nconst Element = styled.span `\r\n ${({ animate, order, delay, animateOnExit }) => slideUp(animate, order, delay, animation.easeInOutCubic, animateOnExit)}\r\n`;\r\nexport const SlideRevealStyles = {\r\n Wrapper,\r\n Element,\r\n};\r\n","import { Device } from '@helpers/media';\r\nimport React from 'react';\r\nimport ImageTransfrom from '@tti/image-transform';\r\nconst defaultSrcSetSizes = [Device.MobileSmall, Device.Mobile, Device.Tablet, Device.Desktop, Device.DesktopLarge, Device.ActualDesktop];\r\nconst Image = ({ Component, src, srcSetSizes = defaultSrcSetSizes, sizes, alt, role, loading = 'lazy' }) => {\r\n // Generate srcSet from all of the given sizes\r\n const srcSet = srcSetSizes.map((x) => `${new ImageTransfrom(src).width(x).url} ${x}w`).join(', ');\r\n return Component !== undefined ? (React.createElement(Component, { src: src, srcSet: srcSet, sizes: sizes, alt: alt, role: role, loading: loading })) : (React.createElement(\"img\", { src: src, srcSet: srcSet, sizes: sizes, alt: alt, role: role, loading: loading }));\r\n};\r\nexport default Image;\r\n","import querystring from 'querystring';\r\nclass ApiService {\r\n async request(request) {\r\n // Get the url\r\n const url = this.getUrl(request);\r\n // Headers\r\n const headers = new Headers({\r\n 'Content-Type': 'application/json; charset=utf-8',\r\n Accept: 'application/json',\r\n });\r\n if (request.isMultipartFormData === true) {\r\n headers.delete('Content-Type');\r\n }\r\n // construct a request\r\n const requestOptions = {\r\n method: request.method,\r\n headers,\r\n mode: 'cors',\r\n cache: 'default',\r\n body: this.getBody(request, request.files),\r\n };\r\n // await the response\r\n const response = await fetch(url, requestOptions);\r\n if (response.status === 500) {\r\n throw Error(`${response.status}: ${response.statusText}`);\r\n }\r\n const data = (await response.json());\r\n return data;\r\n }\r\n getUrl(request) {\r\n let url = `/api/${request.controller}/${request.slug}`;\r\n if (request.baseUrl) {\r\n url = `${request.baseUrl}${url}`;\r\n }\r\n if ((request.method === 'GET' || request.method === 'DELETE') && request.params) {\r\n url += '?';\r\n url += querystring.stringify({ ...request.params });\r\n }\r\n return url;\r\n }\r\n getBody(request, files) {\r\n if (request.method === 'GET') {\r\n return null;\r\n }\r\n if (request.isMultipartFormData === true) {\r\n const formData = new FormData();\r\n formData.append('params', JSON.stringify(request.params));\r\n if (files && files.length > 0) {\r\n for (let index = 0; index < files.length; index++) {\r\n const file = files[index];\r\n formData.append(`files-${index}`, file);\r\n }\r\n }\r\n return formData;\r\n }\r\n return JSON.stringify(request.params);\r\n }\r\n}\r\nexport default new ApiService();\r\n","import { useEffect, useRef } from 'react';\r\n/**\r\n * Use the IntersectionObserver to track visibility of an element in the viewport.\r\n * @param {IntersectionObserverCallback} callback\r\n * @param {IntersectionObserverInit} options\r\n * @returns {UseIntersectionObserverReturn}\r\n */\r\nfunction useIntersectionObserver(callback, options = {}) {\r\n const observerRef = useRef(null);\r\n const rootRef = useRef(null);\r\n const elementRef = useRef(null);\r\n useEffect(() => {\r\n if (!elementRef.current) {\r\n return undefined;\r\n }\r\n observerRef.current = new IntersectionObserver(callback, {\r\n root: rootRef.current,\r\n ...options,\r\n });\r\n observerRef.current.observe(elementRef.current);\r\n return () => {\r\n if (observerRef.current === null) {\r\n return;\r\n }\r\n observerRef.current.disconnect();\r\n };\r\n }, [callback, options]);\r\n return { elementRef, observerRef, rootRef };\r\n}\r\nexport default useIntersectionObserver;\r\n","import { useState } from 'react';\r\nimport useIntersectionObserver from './useIntersectionObserver';\r\nexport function useInView(options, reverse = false, isEditMode = false) {\r\n const [inView, setInView] = useState(false);\r\n const { elementRef } = useIntersectionObserver((entries) => {\r\n if (entries[0].isIntersecting) {\r\n setInView(true);\r\n }\r\n else if (reverse === true) {\r\n setInView(false);\r\n }\r\n }, options);\r\n return [elementRef, isEditMode ? true : inView];\r\n}\r\n","import styled, { css } from 'styled-components';\r\nconst Image = styled.svg `\r\n ${({ w, h }) => css `\r\n width: ${w}px;\r\n height: ${h}px;\r\n `};\r\n`;\r\nexport const CultureFlagStyles = {\r\n Image,\r\n};\r\n","import FlagSpriteSheet from '!!relative-path-loader!@img/flags/rectangle/sprite.svg';\r\nimport React from 'react';\r\nimport { CultureFlagStyles } from './CultureFlag.styles';\r\nconst CultureFlag = ({ cultureCode, width = 35, height = 23 }) => {\r\n const getFlagSpriteId = (cultureCode) => {\r\n switch (cultureCode) {\r\n case 'nl-BE':\r\n return 'fr-BE';\r\n default:\r\n return cultureCode;\r\n }\r\n };\r\n return (React.createElement(CultureFlagStyles.Image, { w: width, h: height },\r\n React.createElement(\"use\", { href: `${FlagSpriteSheet}#${getFlagSpriteId(cultureCode)}` })));\r\n};\r\nexport default CultureFlag;\r\n","import { css } from 'styled-components';\r\nexport default {\r\n navHeight: 107,\r\n navHeightTablet: 80,\r\n navHeightMobile: 59,\r\n};\r\nexport const ButtonReset = css `\r\n border: none;\r\n outline: none;\r\n padding: 0px;\r\n background: none;\r\n border-radius: 0px;\r\n`;\r\n","export default __webpack_public_path__ + \"e2f0bd2e8fd3f97dadbce21f754ae71a.svg\";","import { ButtonReset } from '@helpers/global';\r\nimport { brand, fonts } from '@tti/brand-empire';\r\nimport styled, { css } from 'styled-components';\r\nexport var CTATheme;\r\n(function (CTATheme) {\r\n CTATheme[CTATheme[\"Blue\"] = 0] = \"Blue\";\r\n CTATheme[CTATheme[\"White\"] = 1] = \"White\";\r\n CTATheme[CTATheme[\"Black\"] = 2] = \"Black\";\r\n CTATheme[CTATheme[\"WhiteToBlack\"] = 3] = \"WhiteToBlack\";\r\n})(CTATheme || (CTATheme = {}));\r\nconst base = css `\r\n padding: 11px 16px;\r\n ${fonts.helvetica['87-condensed-heavy']};\r\n font-size: 22px;\r\n display: inline-block;\r\n\r\n ${({ theme }) => {\r\n switch (theme) {\r\n default:\r\n case CTATheme.Blue: {\r\n return css `\r\n border: 1px solid ${brand.blue.base};\r\n color: ${brand.white};\r\n background: ${brand.blue.base};\r\n\r\n &:hover&:not([disabled]) {\r\n background: ${brand.blue.light};\r\n }\r\n\r\n &:active&:not([disabled]) {\r\n background: ${brand.blue.dark};\r\n }\r\n `;\r\n }\r\n case CTATheme.White: {\r\n return css `\r\n border: 1px solid transparent;\r\n color: ${brand.blue.base};\r\n background: ${brand.white};\r\n\r\n &:hover&:not([disabled]) {\r\n background: ${brand.blue.base};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active&:not([disabled]) {\r\n background: ${brand.blue.dark};\r\n }\r\n `;\r\n }\r\n case CTATheme.Black: {\r\n return css `\r\n border: 1px solid transparent;\r\n color: ${brand.white};\r\n background: ${brand.black};\r\n\r\n &:hover&:not([disabled]) {\r\n background: ${brand.black};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active&:not([disabled]) {\r\n background: ${brand.blue.dark};\r\n }\r\n `;\r\n }\r\n case CTATheme.WhiteToBlack: {\r\n return css `\r\n border: 1px solid transparent;\r\n color: ${brand.blue.base};\r\n background: ${brand.white};\r\n\r\n &:hover&:not([disabled]) {\r\n background: ${brand.black};\r\n color: ${brand.white};\r\n }\r\n\r\n &:active&:not([disabled]) {\r\n background: ${brand.blue.dark};\r\n }\r\n `;\r\n }\r\n }\r\n}}\r\n`;\r\nconst ButtonElement = styled.button.attrs({ type: 'button' }) `\r\n ${ButtonReset};\r\n ${base};\r\n max-width: 100%;\r\n height: 100%;\r\n`;\r\nconst AnchorElement = styled.a `\r\n ${ButtonReset};\r\n ${base};\r\n max-width: 100%;\r\n height: 100%;\r\n`;\r\nexport const CTAStyles = {\r\n ButtonElement,\r\n AnchorElement,\r\n};\r\n","module.exports = '/sitefiles/next-gen/dist/36fce8680591a3f4971231dc0fe3aaa6.svg';","import { css } from 'styled-components';\r\n/**\r\n * Applies the provided styles to both &:hover and &:focus-visible.\r\n * Hover styles are conditionally applied via a media query that determines whether or not the device supports such action.\r\n * This is done so touch based devices don't retain the hover styles upon interaction\r\n *\r\n * @param styles: FlattenSimpleInterpolation Css styles to be applied\r\n * @returns\r\n */\r\nexport const accessibleHover = (styles) => css `\r\n &:focus-visible {\r\n ${styles};\r\n }\r\n\r\n @media (hover: hover) or (pointer: fine) {\r\n &:hover {\r\n ${styles}\r\n }\r\n }\r\n`;\r\n","import { accessibleHover } from '@helpers/accessibleHover';\r\nimport animation from '@helpers/animation';\r\nimport global, { ButtonReset } from '@helpers/global';\r\nimport grids, { SitePadding } from '@helpers/grids';\r\nimport { Device, from, until } from '@helpers/media';\r\nimport { brand, fonts } from '@tti/brand-empire';\r\nimport styled, { css } from 'styled-components';\r\nconst Header = styled.header `\r\n min-height: ${global.navHeightMobile}px;\r\n background-color: ${brand.blue.base};\r\n z-index: 1000;\r\n position: relative;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n min-height: ${global.navHeightTablet}px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n min-height: ${global.navHeight}px;\r\n }\r\n`;\r\nconst Inner = styled.div `\r\n ${grids.Default};\r\n row-gap: 0px;\r\n height: 100%;\r\n align-content: center;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-right: 24px !important;\r\n }\r\n`;\r\nconst Logo = styled.a `\r\n grid-column: 1 / 4;\r\n display: flex;\r\n flex-direction: column;\r\n justify-content: center;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n grid-column: 1 / 3;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 1 / 4;\r\n }\r\n\r\n svg {\r\n width: 111px;\r\n height: 40px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n width: 143px;\r\n height: 55px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n width: 213px;\r\n height: 75px;\r\n }\r\n }\r\n`;\r\nconst Nav = styled.nav `\r\n display: none;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: static;\r\n grid-column: 3 / span 8;\r\n padding: 0 24px;\r\n\r\n display: flex;\r\n flex-direction: row;\r\n flex-wrap: nowrap;\r\n align-items: center;\r\n justify-content: flex-end;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n grid-column: 4 / span 7;\r\n }\r\n`;\r\nconst NavMobile = styled.nav `\r\n position: fixed;\r\n top: ${global.navHeightMobile}px;\r\n width: 100%;\r\n height: calc(100vh - ${global.navHeightMobile}px);\r\n left: 0px;\r\n background-color: ${brand.blue.base};\r\n z-index: 100;\r\n transition: transform 340ms 0ms ${animation.easeInOutCubic};\r\n overflow-y: auto;\r\n\r\n ${({ active }) => active\r\n ? css `\r\n transform: translateX(0%);\r\n `\r\n : css `\r\n transform: translateX(-100%);\r\n `}\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst Items = styled.div `\r\n display: flex;\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n ${SitePadding};\r\n padding-bottom: 50px;\r\n flex-direction: column;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n align-items: center;\r\n height: 100%;\r\n }\r\n`;\r\nconst ItemWrapper = styled.div `\r\n display: flex;\r\n align-items: center;\r\n\r\n height: ${global.navHeightMobile}px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n height: ${global.navHeightTablet}px;\r\n\r\n &:hover {\r\n ${() => Dropdown} {\r\n opacity: 1;\r\n pointer-events: all;\r\n }\r\n\r\n ${() => ItemInnerWrapper} {\r\n &::after {\r\n opacity: 1;\r\n transform: scaleY(1);\r\n }\r\n }\r\n }\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n height: ${global.navHeight}px;\r\n }\r\n`;\r\nconst ItemInnerWrapper = styled.div `\r\n height: 100%;\r\n position: relative;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n overflow: hidden;\r\n\r\n ${({ hasDetail }) => hasDetail &&\r\n css `\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n background-color: ${brand.white};\r\n height: 50px;\r\n width: 1px;\r\n left: 50%;\r\n top: 75%;\r\n pointer-events: none;\r\n transition: transform 0.25s ease;\r\n transform: scaleY(0);\r\n transform-origin: center bottom;\r\n }\r\n `}\r\n`;\r\nconst itemStyle = css `\r\n ${fonts.helvetica['57-condensed']};\r\n font-size: 20px;\r\n line-height: 1.5;\r\n color: ${brand.white};\r\n text-transform: uppercase;\r\n position: relative;\r\n padding: 20px 0px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n font-size: 16px;\r\n padding: 0px 10px;\r\n text-align: center;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n font-size: 18px;\r\n padding: 0px 16px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n font-size: 20px;\r\n padding: 0px 24px;\r\n }\r\n`;\r\nconst Item = styled.a `\r\n ${itemStyle};\r\n`;\r\nconst ItemAsButton = styled.button `\r\n ${ButtonReset};\r\n ${itemStyle};\r\n`;\r\nconst NavItemIconWrapper = styled.div `\r\n svg {\r\n color: ${brand.white};\r\n height: 23px;\r\n }\r\n`;\r\nconst SearchTriggerButton = styled.button.attrs({ type: 'button' }) `\r\n @media ${until(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n\r\n ${ButtonReset};\r\n\r\n grid-column: 11 / span 1;\r\n height: 100%;\r\n display: grid;\r\n place-items: center;\r\n background-color: transparent;\r\n color: ${brand.white};\r\n transition: color 0.2s ${animation.easeInOutCubic};\r\n\r\n svg {\r\n width: 24px;\r\n }\r\n\r\n ${accessibleHover(css `\r\n color: ${brand.grey[7]};\r\n `)}\r\n`;\r\nconst MobileButtonWrapper = styled.div `\r\n grid-column: 4 / -1;\r\n display: flex;\r\n flex-direction: row;\r\n justify-content: flex-end;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst DesktopButtonWrapper = styled.div `\r\n display: none;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: grid;\r\n grid-column: 12 / span 1;\r\n align-items: center;\r\n }\r\n`;\r\nconst Dropdown = styled.div `\r\n @media ${until(Device.TabletLarge)} {\r\n top: 0;\r\n width: 100%;\r\n min-height: calc(100vh - ${global.navHeightMobile}px);\r\n left: 0px;\r\n background-color: ${brand.white};\r\n z-index: 100;\r\n padding: 24px 0px;\r\n ${SitePadding};\r\n transition: transform 340ms 0ms ${animation.easeInOutCubic};\r\n\r\n display: flex;\r\n flex-direction: column;\r\n\r\n ${({ isOpen }) => isOpen\r\n ? css `\r\n position: relative;\r\n transform: translateX(0%);\r\n `\r\n : css `\r\n position: fixed;\r\n transform: translateX(-100%);\r\n `}\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n position: absolute;\r\n top: 100%;\r\n width: 100%;\r\n min-height: 215px;\r\n background-color: ${brand.white};\r\n left: 0px;\r\n border-bottom: 1px solid grey;\r\n opacity: 0;\r\n pointer-events: none;\r\n\r\n display: flex;\r\n align-items: stretch;\r\n justify-content: center;\r\n padding: 48px 24px;\r\n gap: 48px;\r\n\r\n transition: opacity 275ms ease;\r\n }\r\n`;\r\nconst DropdownBackButton = styled.button.attrs({ type: 'button' }) `\r\n display: flex;\r\n align-items: center;\r\n ${ButtonReset};\r\n color: ${brand.black};\r\n ${fonts.helvetica['57-condensed']};\r\n font-size: 18px;\r\n margin-bottom: 16px;\r\n width: 100%;\r\n\r\n svg {\r\n margin-right: 12px;\r\n width: 8px;\r\n color: ${brand.black};\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst DropdownTitle = styled.span `\r\n color: ${brand.blue.base};\r\n text-transform: uppercase;\r\n ${fonts.helvetica['57-condensed']};\r\n font-size: 24px;\r\n margin-bottom: 32px;\r\n width: 100%;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: none;\r\n }\r\n`;\r\nconst DropdownContent = styled.div `\r\n display: grid;\r\n width: 100%;\r\n grid-template-columns: 1fr 1fr;\r\n align-items: center;\r\n gap: 24px 16px;\r\n`;\r\nconst DropdownItem = styled.a `\r\n display: flex;\r\n flex-direction: column;\r\n align-items: center;\r\n text-align: center;\r\n\r\n &:hover {\r\n ${() => DropdownItemText} {\r\n text-decoration: underline;\r\n }\r\n }\r\n`;\r\nconst DropdownItemImageWrapper = styled.div `\r\n margin-bottom: 20px;\r\n`;\r\nconst DropdownItemImage = styled.img `\r\n max-width: 100%;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n max-width: 200px;\r\n }\r\n`;\r\nconst DropdownItemText = styled.span `\r\n ${fonts.helvetica['57-condensed']};\r\n font-size: 20px;\r\n line-height: 1.5;\r\n color: ${brand.black};\r\n text-align: center;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n min-width: 90px;\r\n inline-size: min-content;\r\n }\r\n`;\r\nconst ContentOverlay = styled.div `\r\n display: none;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: block;\r\n\r\n position: fixed;\r\n top: 0;\r\n left: 0px;\r\n width: 100vw;\r\n height: 100vh;\r\n z-index: 999;\r\n background-color: rgba(0, 0, 0, 0.6);\r\n transition: opacity 275ms ease;\r\n\r\n ${({ isActive }) => isActive\r\n ? css `\r\n opacity: 1;\r\n `\r\n : css `\r\n opacity: 0;\r\n pointer-events: none;\r\n `}\r\n }\r\n`;\r\nconst CultureSelect = styled.div `\r\n padding: 5px 10px;\r\n display: flex;\r\n align-items: center;\r\n justify-content: center;\r\n cursor: pointer;\r\n padding: 10px 0;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding: 5px 10px;\r\n }\r\n`;\r\nconst CultureSelectActive = styled.div `\r\n display: flex;\r\n align-items: center;\r\n`;\r\nconst CultureSelectFlag = styled.div `\r\n margin-right: 15px;\r\n`;\r\nconst CultureSelectIcon = styled.div `\r\n display: flex;\r\n align-items: center;\r\n transform: rotate(-90deg);\r\n\r\n ${({ visible }) => visible &&\r\n css `\r\n transform: rotate(180deg);\r\n `}\r\n\r\n svg {\r\n width: 14px;\r\n height: 7px;\r\n }\r\n`;\r\nconst CultureList = styled.div `\r\n position: absolute;\r\n right: 0;\r\n left: unset;\r\n padding: 20px;\r\n background-color: ${brand.grey[1]};\r\n opacity: 0;\r\n transform: scale(0.2);\r\n transform-origin: top right;\r\n pointer-events: none;\r\n transition: opacity 275ms ease-out, transform 275ms ease-out;\r\n display: grid;\r\n gap: 6px 16px;\r\n grid-template-columns: 1fr 1fr;\r\n flex-wrap: wrap;\r\n\r\n top: ${global.navHeightMobile}px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n top: ${global.navHeightTablet}px;\r\n }\r\n\r\n @media ${from(Device.Desktop)} {\r\n top: ${global.navHeight}px;\r\n }\r\n\r\n ${({ visible }) => visible &&\r\n css `\r\n opacity: 1;\r\n transform: scale(1);\r\n pointer-events: all;\r\n `}\r\n\r\n @media ${until(Device.TabletLarge)} {\r\n width: 100%;\r\n height: 200px;\r\n overflow-y: scroll;\r\n grid-template-columns: 1fr;\r\n }\r\n`;\r\nconst CultureItem = styled.li `\r\n display: inline-block;\r\n list-style: none;\r\n cursor: pointer;\r\n grid-column: span 1;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n min-width: 140px;\r\n }\r\n`;\r\nconst CultureLink = styled.a `\r\n display: flex;\r\n align-items: center;\r\n ${fonts.helvetica['57-condensed']};\r\n font-size: 19px;\r\n color: ${brand.black};\r\n\r\n &:hover {\r\n color: ${brand.black};\r\n text-decoration: underline;\r\n }\r\n\r\n svg {\r\n flex-shrink: 0;\r\n margin-right: 10px;\r\n }\r\n`;\r\nexport const SiteNavigationStyles = {\r\n Header,\r\n Inner,\r\n Logo,\r\n Nav,\r\n NavMobile,\r\n Items,\r\n ItemWrapper,\r\n ItemInnerWrapper,\r\n Item,\r\n ItemAsButton,\r\n SearchTriggerButton,\r\n NavItemIconWrapper,\r\n MobileButtonWrapper,\r\n DesktopButtonWrapper,\r\n Dropdown,\r\n DropdownTitle,\r\n DropdownBackButton,\r\n DropdownContent,\r\n DropdownItem,\r\n DropdownItemImageWrapper,\r\n DropdownItemImage,\r\n DropdownItemText,\r\n ContentOverlay,\r\n CultureSelect,\r\n CultureSelectActive,\r\n CultureSelectFlag,\r\n CultureSelectIcon,\r\n CultureList,\r\n CultureItem,\r\n CultureLink,\r\n};\r\n","import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => );","import React from 'react';\r\nimport { SiteNavigationStyles as s } from './SiteNavigation.styles';\r\nimport CultureFlag from '@stories/Elements/Misc/CultureFlag/CultureFlag';\r\nimport ChevronDown from '@img/icons/chevron-down--white.svg';\r\nconst CultureSelect = (props) => {\r\n const activeCulture = props.availableCultures.find((x) => x.cultureCode === props.documentCulture);\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(s.CultureSelect, { onClick: () => props.setIsOpen(!props.isOpen) },\r\n React.createElement(s.CultureSelectActive, null,\r\n React.createElement(s.CultureSelectFlag, null, activeCulture && React.createElement(CultureFlag, { cultureCode: activeCulture?.cultureCode, width: 35, height: 35 }))),\r\n React.createElement(s.CultureSelectIcon, { visible: props.isOpen },\r\n React.createElement(ChevronDown, null))),\r\n React.createElement(s.CultureList, { visible: props.isOpen }, props.availableCultures.map((culture) => (React.createElement(s.CultureItem, { key: culture.id },\r\n React.createElement(s.CultureLink, { href: culture.url },\r\n React.createElement(CultureFlag, { cultureCode: culture.cultureCode, width: 35, height: 32 }),\r\n culture.cultureName)))))));\r\n};\r\nexport default CultureSelect;\r\n","import { ButtonReset } from '@helpers/global';\r\nimport { brand } from '@tti/brand-empire';\r\nimport styled, { css } from 'styled-components';\r\nconst Button = styled.button `\r\n ${ButtonReset};\r\n font: inherit;\r\n display: inline-block;\r\n overflow: visible;\r\n margin: 0;\r\n padding: 15px;\r\n cursor: pointer;\r\n transition-timing-function: linear;\r\n transition-duration: 0.15s;\r\n transition-property: opacity, filter;\r\n text-transform: none;\r\n color: inherit;\r\n border: 0;\r\n background-color: transparent;\r\n`;\r\nconst Box = styled.div `\r\n position: relative;\r\n display: inline-block;\r\n width: 40px;\r\n height: 24px;\r\n`;\r\nconst line = css `\r\n position: absolute;\r\n width: 33px;\r\n height: 2px;\r\n transition-timing-function: ease;\r\n transition-duration: 0.15s;\r\n transition-property: transform;\r\n border-radius: 4px;\r\n background-color: ${brand.white};\r\n`;\r\nconst Inner = styled.div `\r\n top: 50%;\r\n display: block;\r\n margin-top: -2px;\r\n ${line};\r\n transition-timing-function: cubic-bezier(0.55, 0.055, 0.675, 0.19);\r\n transition-duration: 0.22s;\r\n\r\n ${({ active }) => active\r\n ? css `\r\n transition-delay: 0.12s;\r\n transition-timing-function: cubic-bezier(0.215, 0.61, 0.355, 1);\r\n transform: rotate(225deg);\r\n `\r\n : null}\r\n\r\n &:before {\r\n content: '';\r\n ${line};\r\n display: block;\r\n\r\n top: -10px;\r\n transition: top 0.1s ease-in 0.25s, opacity 0.1s ease-in;\r\n\r\n ${({ active }) => active\r\n ? css `\r\n top: 0;\r\n transition: top 0.1s ease-out, opacity 0.1s ease-out 0.12s;\r\n opacity: 0;\r\n `\r\n : null}\r\n }\r\n\r\n &:after {\r\n content: '';\r\n ${line};\r\n display: block;\r\n\r\n bottom: -10px;\r\n transition: bottom 0.1s ease-in 0.25s, transform 0.22s cubic-bezier(0.55, 0.055, 0.675, 0.19);\r\n\r\n ${({ active }) => active\r\n ? css `\r\n bottom: 0;\r\n transition: bottom 0.1s ease-out, transform 0.22s cubic-bezier(0.215, 0.61, 0.355, 1) 0.12s;\r\n transform: rotate(-90deg);\r\n `\r\n : null}\r\n }\r\n`;\r\nexport const BurgerStyles = {\r\n Button,\r\n Box,\r\n Inner,\r\n};\r\n","import React from 'react';\r\nimport { BurgerStyles } from './Burger.styles';\r\nconst Burger = (props) => {\r\n return (React.createElement(BurgerStyles.Button, { onClick: props.onClick },\r\n React.createElement(BurgerStyles.Box, null,\r\n React.createElement(BurgerStyles.Inner, { active: props.active }))));\r\n};\r\nexport default Burger;\r\n","import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => );","import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => );","import { accessibleHover } from '@helpers/accessibleHover';\r\nimport { brand, fonts } from '@tti/brand-empire';\r\nimport { ButtonReset } from '@helpers/global';\r\nimport { from, Device } from '@helpers/media';\r\nimport { heightIn, staggerChildren, verticalFadeIn } from '@helpers/variants';\r\nimport { m } from 'framer-motion';\r\nimport animation from '@helpers/animation';\r\nimport grids from '@helpers/grids';\r\nimport styled, { css } from 'styled-components';\r\nconst Wrapper = styled.div `\r\n display: block;\r\n position: relative;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n display: contents;\r\n position: static;\r\n }\r\n`;\r\nconst Container = styled(m.div).attrs({ initial: 'hidden', animate: 'visible', exit: 'hidden', variants: heightIn(0.3) }) `\r\n background-color: ${brand.blue.base};\r\n grid-column: 1 / span 12;\r\n position: relative;\r\n`;\r\nconst Inner = styled(m.div).attrs({ variants: verticalFadeIn(-30, 0.4) }) `\r\n padding: 20px 0 24px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n max-width: 760px;\r\n margin: 0 auto;\r\n padding: 12px 0 24px;\r\n }\r\n`;\r\nconst InputWrapper = styled.div `\r\n background-color: ${brand.grey[1]};\r\n width: 100%;\r\n padding: 8px;\r\n display: grid;\r\n align-items: center;\r\n grid-template-columns: auto 24px 30px;\r\n gap: 8px;\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n gap: 12px;\r\n }\r\n`;\r\nconst Input = styled.input `\r\n color: ${brand.blue.base};\r\n width: 100%;\r\n height: 100%;\r\n background-color: transparent;\r\n border: none;\r\n ${fonts.helvetica['57-condensed']};\r\n font-size: 18px;\r\n line-height: 1em;\r\n\r\n ::placeholder {\r\n color: ${brand.grey[7]};\r\n }\r\n`;\r\nconst ClearButton = styled.button.attrs({ type: 'button' }) `\r\n ${ButtonReset};\r\n display: grid;\r\n place-items: center;\r\n transition: opacity 0.2s ${animation.easeInOutCubic};\r\n height: 100%;\r\n width: 100%;\r\n\r\n svg {\r\n width: 16px;\r\n height: 16px;\r\n color: ${brand.blue.base};\r\n }\r\n\r\n ${({ isHidden }) => isHidden &&\r\n css `\r\n opacity: 0;\r\n pointer-events: none;\r\n `}\r\n`;\r\nconst SearchButton = styled.a.attrs({ type: 'button' }) `\r\n display: grid;\r\n text-decoration: none;\r\n place-items: center;\r\n color: ${brand.blue.base};\r\n padding: 4px;\r\n`;\r\nconst SearchResultsContainer = styled(m.div).attrs({\r\n initial: 'hidden',\r\n animate: 'visible',\r\n exit: 'hidden',\r\n variants: heightIn(0.3),\r\n}) `\r\n position: absolute;\r\n top: calc(100% - 22px);\r\n left: 0;\r\n width: 100%;\r\n overflow: hidden;\r\n background-color: ${brand.grey[1]};\r\n padding: 0 6px;\r\n row-gap: 16px;\r\n z-index: 1;\r\n box-shadow: 0px 0px 4px 6px rgba(0 0 0 / 10%);\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n ${grids.Default};\r\n top: 100%;\r\n }\r\n`;\r\nconst SearchResults = styled(m.div).attrs({ variants: staggerChildren(0.1) }) `\r\n grid-column: 1 / span 12;\r\n\r\n display: grid;\r\n grid-template-columns: 1fr;\r\n gap: 6px;\r\n padding-top: 6px;\r\n max-height: calc(100vh - 230px);\r\n overflow: auto;\r\n\r\n @media ${from(Device.Tablet)} {\r\n grid-template-columns: 1fr 1fr;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-top: 24px;\r\n gap: 16px;\r\n\r\n grid-template-columns: repeat(3, 1fr);\r\n max-height: unset;\r\n overflow: unset;\r\n }\r\n`;\r\nconst ProductCard = styled(m.a).attrs({ variants: verticalFadeIn(20, 0.3) }) `\r\n background-color: ${brand.white};\r\n padding: 16px;\r\n display: flex;\r\n gap: 16px;\r\n position: relative;\r\n overflow: hidden;\r\n\r\n &::after {\r\n content: '';\r\n position: absolute;\r\n bottom: 0;\r\n left: 0;\r\n width: 100%;\r\n height: 3px;\r\n background-color: ${brand.blue.base};\r\n transition: transform 0.3s ease;\r\n transform: translateY(100%);\r\n }\r\n\r\n ${accessibleHover(css `\r\n &::after {\r\n transform: translateY(0);\r\n }\r\n `)}\r\n`;\r\nconst ProductCardImageWrapper = styled.div `\r\n width: 80px;\r\n aspect-ratio: 1;\r\n flex-shrink: 0;\r\n position: relative;\r\n\r\n img {\r\n position: absolute;\r\n inset: 0;\r\n object-fit: contain;\r\n }\r\n`;\r\nconst ProductCardDetails = styled.div `\r\n display: flex;\r\n flex-direction: column;\r\n gap: 8px;\r\n`;\r\nconst ProductCardModel = styled.span `\r\n display: block;\r\n ${fonts.helvetica['57-condensed']};\r\n color: ${brand.grey[11]};\r\n font-size: 16px;\r\n line-height: 1em;\r\n`;\r\nconst ProductCardTitle = styled.strong `\r\n display: block;\r\n ${fonts.helvetica['77-condensed-bold']};\r\n color: ${brand.black};\r\n font-size: 18px;\r\n line-height: 1.3em;\r\n`;\r\nconst ProductCardSubtitle = styled.span `\r\n display: block;\r\n ${fonts.helvetica['77-condensed-bold']};\r\n font-size: 16px;\r\n line-height: 1.3em;\r\n color: ${brand.black};\r\n`;\r\nconst ViewAllButtonWrapper = styled(m.div).attrs({ variants: verticalFadeIn(20, 0.3) }) `\r\n grid-column: 1 / span 12;\r\n display: flex;\r\n margin: 16px 0;\r\n\r\n a {\r\n width: 100%;\r\n text-align: center;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin: 0 0 24px 0;\r\n }\r\n`;\r\nconst SiteNavigationSearchStyles = {\r\n Wrapper,\r\n Container,\r\n Inner,\r\n InputWrapper,\r\n Input,\r\n ClearButton,\r\n SearchButton,\r\n SearchResultsContainer,\r\n SearchResults,\r\n ProductCard,\r\n ProductCardImageWrapper,\r\n ProductCardDetails,\r\n ProductCardModel,\r\n ProductCardTitle,\r\n ProductCardSubtitle,\r\n ViewAllButtonWrapper,\r\n};\r\nexport default SiteNavigationSearchStyles;\r\n","import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => );","import { AnimatePresence } from 'framer-motion';\r\nimport { CTATheme } from '@stories/Elements/Forms/CTA/CTA.styles';\r\nimport { Device, from } from '@helpers/media';\r\nimport * as React from 'react';\r\nimport ApiService from '@core/api/services/ApiService';\r\nimport ClearIcon from '@img/icons/icon-x.svg';\r\nimport CTAAnchor from '@stories/Elements/Forms/CTA/CTAAnchor';\r\nimport debounce from 'lodash/debounce';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport S from './SiteNavigationSearch.styles';\r\nimport SearchIcon from '@img/icons/icon-search.svg';\r\nconst SiteNavigationSearch = (props) => {\r\n const [searchTerm, setSearchTerm] = React.useState('');\r\n const [response, setResponse] = React.useState(null);\r\n const getResults = React.useCallback(debounce(async (term) => {\r\n try {\r\n const apiResponse = await ApiService.request({\r\n controller: 'product-search',\r\n slug: 'search',\r\n method: 'POST',\r\n params: {\r\n searchTerm: term,\r\n cultureCode: props.pageContext.documentCulture,\r\n limit: 6,\r\n },\r\n });\r\n setResponse(apiResponse);\r\n }\r\n catch (error) {\r\n console.error(error);\r\n }\r\n }, 175), []);\r\n const _onChange = (e) => {\r\n setSearchTerm(e.currentTarget.value);\r\n if (e.currentTarget.value.length === 0) {\r\n setResponse(null);\r\n return;\r\n }\r\n if (e.currentTarget.value.length < 3) {\r\n return;\r\n }\r\n getResults(e.currentTarget.value);\r\n };\r\n const handleKeyDown = (e) => {\r\n if (e.key.toLowerCase() === 'enter') {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n window.location.href = `${props.searchResultsBaseUrl}?searchTerm=${searchTerm}`;\r\n }\r\n };\r\n return (React.createElement(AnimatePresence, null, props.isVisible && (React.createElement(S.Wrapper, null,\r\n React.createElement(S.Container, { key: \"search-container\", onKeyDown: handleKeyDown },\r\n React.createElement(S.Inner, null,\r\n React.createElement(S.InputWrapper, null,\r\n React.createElement(S.Input, { placeholder: props.translations['custom.search'], autoComplete: \"off\", value: searchTerm, onChange: _onChange }),\r\n React.createElement(S.ClearButton, { onClick: () => setSearchTerm(''), isHidden: searchTerm.length === 0 },\r\n React.createElement(ClearIcon, null)),\r\n React.createElement(S.SearchButton, { href: `${props.searchResultsBaseUrl}?searchTerm=${searchTerm}` },\r\n React.createElement(SearchIcon, null))))),\r\n searchTerm.length > 0 && response ? (React.createElement(S.SearchResultsContainer, { key: \"search-results-container\" },\r\n React.createElement(S.SearchResults, { key: \"search-results\" }, response.products.map((product) => (React.createElement(S.ProductCard, { href: product.url, key: product.modelCode },\r\n React.createElement(S.ProductCardImageWrapper, null,\r\n React.createElement(Image, { src: product.imageUrl, sizes: `${from(Device.TabletLarge)} 180w, 110w`, srcSetSizes: [110, 180] })),\r\n React.createElement(S.ProductCardDetails, null,\r\n React.createElement(S.ProductCardModel, null, product.modelCode),\r\n React.createElement(S.ProductCardTitle, null, product.title),\r\n product.subTitle && React.createElement(S.ProductCardSubtitle, null, product.subTitle)))))),\r\n React.createElement(S.ViewAllButtonWrapper, { key: \"view-all-button\" },\r\n React.createElement(CTAAnchor, { text: props.translations['custom.viewAll'] ?? '', href: `${props.searchResultsBaseUrl}?searchTerm=${searchTerm}`, theme: CTATheme.Black })))) : null))));\r\n};\r\nexport default SiteNavigationSearch;\r\n","import React from \"react\";\nexport default (({\n styles = {},\n ...props\n}) => );","import { useEffect, useRef } from 'react';\r\nimport { clearAllBodyScrollLocks, disableBodyScroll, enableBodyScroll } from 'body-scroll-lock';\r\nconst useBodyScrollLock = (trigger) => {\r\n const ref = useRef(null);\r\n useEffect(() => {\r\n if (ref.current === null) {\r\n clearAllBodyScrollLocks();\r\n return;\r\n }\r\n if (trigger === true) {\r\n disableBodyScroll(ref.current);\r\n }\r\n else {\r\n enableBodyScroll(ref.current);\r\n }\r\n return () => {\r\n if (ref.current !== null) {\r\n enableBodyScroll(ref.current);\r\n }\r\n };\r\n }, [trigger]);\r\n return ref;\r\n};\r\nexport default useBodyScrollLock;\r\n","import { SiteNavigationIcon } from './SiteNavigation';\r\nimport { SiteNavigationStyles as s } from './SiteNavigation.styles';\r\nimport Burger from '@stories/Elements/Forms/Burger/Burger';\r\nimport ChevronLeftIcon from '@img/icons/chevron-left.svg';\r\nimport CultureSelect from './CultureSelect';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport React, { useState } from 'react';\r\nimport SiteNavigationSearch from './SiteNavigationSearch/SiteNavigationSearch';\r\nimport SlideReveal from '@stories/Components/Misc/SlideReveal';\r\nimport TrueBlueLogo from '@img/brand/true-blue-2.svg';\r\nimport useBodyScrollLock from '@hooks/useBodyScrollLock';\r\nconst MobileNavigation = (props) => {\r\n const initialState = {\r\n isBurgerOpen: false,\r\n visibleCultures: false,\r\n };\r\n const [isOpen, setIsOpen] = useState(initialState);\r\n const [activeSubMenuIndex, setActiveSubMenuIndex] = useState(null);\r\n const elementRef = useBodyScrollLock(isOpen.isBurgerOpen);\r\n const renderItemText = (item) => {\r\n switch (item.icon) {\r\n case SiteNavigationIcon.TRUE_BLUE:\r\n return (React.createElement(s.NavItemIconWrapper, null,\r\n React.createElement(TrueBlueLogo, null)));\r\n default:\r\n return React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: item.text } });\r\n }\r\n };\r\n const renderItem = (item, index) => {\r\n if (item.children.length > 0) {\r\n return (React.createElement(s.ItemWrapper, { key: `item-${index}`, onClick: () => {\r\n if (activeSubMenuIndex !== null) {\r\n return;\r\n }\r\n setActiveSubMenuIndex(index);\r\n } },\r\n React.createElement(s.ItemInnerWrapper, { hasDetail: true },\r\n React.createElement(s.ItemAsButton, { type: \"button\" },\r\n React.createElement(SlideReveal, { order: index, animate: isOpen.isBurgerOpen, animateOnExit: false, delay: 0 }, renderItemText(item))))));\r\n }\r\n return (React.createElement(s.ItemWrapper, { key: item.text },\r\n React.createElement(s.ItemInnerWrapper, { hasDetail: false },\r\n React.createElement(s.Item, { href: item.url, target: item.target },\r\n React.createElement(SlideReveal, { order: index, animate: isOpen.isBurgerOpen, animateOnExit: false, delay: 0 }, renderItemText(item))))));\r\n };\r\n const renderDropdown = (item, index) => {\r\n if (item.children.length > 0) {\r\n return (React.createElement(s.Dropdown, { isOpen: activeSubMenuIndex === index },\r\n React.createElement(s.DropdownBackButton, { onClick: () => {\r\n setActiveSubMenuIndex(null);\r\n } },\r\n React.createElement(ChevronLeftIcon, null),\r\n props.translations && props.translations['empire.back']),\r\n React.createElement(s.DropdownTitle, null, item.text),\r\n React.createElement(s.DropdownContent, null, item.children.map((childItem, i) => (React.createElement(s.DropdownItem, { key: `item-${index}-${i}`, href: childItem.url, target: childItem.target },\r\n React.createElement(SlideReveal, { order: i, animate: activeSubMenuIndex === index, delay: 0, animateOnExit: false },\r\n childItem.imageSrc && (React.createElement(s.DropdownItemImageWrapper, null,\r\n React.createElement(Image, { src: childItem.imageSrc, alt: childItem.text, sizes: \"300px\", Component: s.DropdownItemImage }))),\r\n React.createElement(s.DropdownItemText, null, childItem.text))))))));\r\n }\r\n };\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(s.NavMobile, { active: isOpen.isBurgerOpen, ref: elementRef },\r\n activeSubMenuIndex == null && (React.createElement(s.Items, null,\r\n React.createElement(SiteNavigationSearch, { searchResultsBaseUrl: props.searchResultsBaseUrl, translations: props.translations, isVisible: true, pageContext: props.pageContext }),\r\n props.links.map((item, index) => {\r\n return renderItem(item, index);\r\n }))),\r\n props.links.map((item, index) => {\r\n return renderDropdown(item, index);\r\n })),\r\n React.createElement(s.MobileButtonWrapper, null,\r\n React.createElement(Burger, { active: isOpen.isBurgerOpen, onClick: () => {\r\n setIsOpen({ isBurgerOpen: !isOpen.isBurgerOpen, visibleCultures: false });\r\n setActiveSubMenuIndex(null);\r\n } }),\r\n React.createElement(CultureSelect, { isOpen: isOpen.visibleCultures, setIsOpen: () => setIsOpen({ isBurgerOpen: false, visibleCultures: !isOpen.visibleCultures }), documentCulture: props.pageContext.documentCulture, availableCultures: props.availableCultures }))));\r\n};\r\nexport default MobileNavigation;\r\n","import { SiteNavigationStyles as s } from './SiteNavigation.styles';\r\nimport { useInView } from '@hooks/useInView';\r\nimport { withMotion } from '@hocs/withMotion';\r\nimport CultureSelect from './CultureSelect';\r\nimport EmpireLogo from '!file-loader!@img/brand/empire.svg';\r\nimport Image from '@stories/Components/Media/Image/Image';\r\nimport MobileNavigation from './MobileNavigation';\r\nimport React, { useState } from 'react';\r\nimport SearchIcon from '@img/icons/icon-search.svg';\r\nimport SiteNavigationSearch from './SiteNavigationSearch/SiteNavigationSearch';\r\nimport SlideReveal from '@stories/Components/Misc/SlideReveal';\r\nimport TrueBlueLogo from '@img/brand/true-blue-2.svg';\r\nexport var SiteNavigationIcon;\r\n(function (SiteNavigationIcon) {\r\n SiteNavigationIcon[SiteNavigationIcon[\"NONE\"] = 0] = \"NONE\";\r\n SiteNavigationIcon[SiteNavigationIcon[\"TRUE_BLUE\"] = 1] = \"TRUE_BLUE\";\r\n})(SiteNavigationIcon || (SiteNavigationIcon = {}));\r\nconst SiteNavigation = (props) => {\r\n const [elementInViewRef, inView] = useInView({ threshold: 0 }, false, props.pageContext.isEditMode);\r\n const [isDropdownActive, setIsDropdownActive] = useState(false);\r\n const [isCultureDropdownOpen, setIsCultureDropdownOpen] = useState(false);\r\n const [isSearchOpen, setIsSearchOpen] = React.useState(false);\r\n const handleTopLinkMouseEnter = (link) => {\r\n if (link.children.length === 0) {\r\n return;\r\n }\r\n setIsDropdownActive(true);\r\n };\r\n const renderItemText = (item) => {\r\n switch (item.icon) {\r\n case SiteNavigationIcon.TRUE_BLUE:\r\n return (React.createElement(s.NavItemIconWrapper, null,\r\n React.createElement(TrueBlueLogo, null)));\r\n default:\r\n return React.createElement(\"span\", { dangerouslySetInnerHTML: { __html: item.text } });\r\n }\r\n };\r\n return (React.createElement(React.Fragment, null,\r\n React.createElement(s.Header, { ref: elementInViewRef },\r\n React.createElement(s.Inner, null,\r\n React.createElement(s.Logo, { href: props.homeLink, \"aria-label\": \"Empire Levels\" },\r\n React.createElement(\"svg\", null,\r\n React.createElement(\"use\", { href: `${EmpireLogo}#logo` }))),\r\n React.createElement(MobileNavigation, Object.assign({}, props)),\r\n React.createElement(s.Nav, null,\r\n React.createElement(s.Items, null, props.links.map((item, index) => {\r\n if (item.children.length > 0) {\r\n return (React.createElement(s.ItemWrapper, { key: item.text, onMouseEnter: () => handleTopLinkMouseEnter(item), onMouseLeave: () => setIsDropdownActive(false) },\r\n React.createElement(s.ItemInnerWrapper, { hasDetail: true },\r\n React.createElement(s.Item, { href: item.url, target: item.target }, props.pageContext.isFirstLoad === true ? (React.createElement(SlideReveal, { order: index, animate: inView, animateOnExit: false, delay: 0 }, renderItemText(item))) : (renderItemText(item)))),\r\n React.createElement(s.Dropdown, null, item.children.map((childItem, i) => (React.createElement(s.DropdownItem, { key: `item-${index}-${i}`, href: childItem.url, target: childItem.target },\r\n React.createElement(SlideReveal, { order: i, animate: isDropdownActive, delay: 0, animateOnExit: false },\r\n childItem.imageSrc && (React.createElement(s.DropdownItemImageWrapper, null,\r\n React.createElement(Image, { src: childItem.imageSrc, alt: childItem.text, sizes: \"300px\", Component: s.DropdownItemImage }))),\r\n React.createElement(s.DropdownItemText, null, childItem.text))))))));\r\n }\r\n return (React.createElement(s.ItemWrapper, { key: item.text, onMouseEnter: () => handleTopLinkMouseEnter(item), onMouseLeave: () => setIsDropdownActive(false) },\r\n React.createElement(s.ItemInnerWrapper, { hasDetail: false },\r\n React.createElement(s.Item, { href: item.url, target: item.target }, props.pageContext.isFirstLoad === true ? (React.createElement(SlideReveal, { order: index, animate: inView, animateOnExit: false, delay: 0 }, renderItemText(item))) : (renderItemText(item))))));\r\n }))),\r\n React.createElement(s.SearchTriggerButton, { onClick: () => setIsSearchOpen(!isSearchOpen) },\r\n React.createElement(SearchIcon, null)),\r\n React.createElement(s.DesktopButtonWrapper, null,\r\n React.createElement(CultureSelect, { isOpen: isCultureDropdownOpen, setIsOpen: setIsCultureDropdownOpen, documentCulture: props.pageContext.documentCulture, availableCultures: props.availableCultures }))),\r\n React.createElement(SiteNavigationSearch, { key: \"site-navigation-search\", translations: props.translations, pageContext: props.pageContext, searchResultsBaseUrl: props.searchResultsBaseUrl, isVisible: isSearchOpen })),\r\n React.createElement(s.ContentOverlay, { isActive: isDropdownActive })));\r\n};\r\nexport default withMotion(SiteNavigation);\r\n","import React from 'react';\r\nimport { SlideRevealStyles } from './SlideReveal.styles';\r\nconst SlideReveal = (props) => {\r\n return (React.createElement(SlideRevealStyles.Wrapper, null,\r\n React.createElement(SlideRevealStyles.Element, { animate: props.animate, order: props.order, delay: props.delay, animateOnExit: props.animateOnExit }, props.children)));\r\n};\r\nexport default SlideReveal;\r\n","export function verticalFadeIn(amount, duration) {\r\n return {\r\n hidden: {\r\n y: amount ?? 30,\r\n opacity: 0,\r\n transition: { duration: duration ? duration / 2 : 0.3, staggerChildren: 0.15 },\r\n },\r\n visible: {\r\n y: 0,\r\n opacity: 1,\r\n transition: { duration: duration ?? 0.6, staggerChildren: 0.15 },\r\n },\r\n };\r\n}\r\nexport function horizontalFadeIn(amount, duration) {\r\n return {\r\n hidden: {\r\n x: amount ?? -30,\r\n opacity: 0,\r\n },\r\n visible: {\r\n x: 0,\r\n opacity: 1,\r\n transition: { duration: duration ?? 0.6, staggerChildren: 0.15 },\r\n },\r\n };\r\n}\r\nexport function scaleFadeIn(amount, duration) {\r\n return {\r\n hidden: {\r\n scale: amount ?? 2,\r\n opacity: 0,\r\n transition: { duration: duration ? duration / 2 : 0.4 },\r\n },\r\n visible: {\r\n scale: 1,\r\n opacity: 1,\r\n transition: { duration: duration ?? 0.6, staggerChildren: 0.15 },\r\n },\r\n };\r\n}\r\nexport function staggerChildren(staggerDuration) {\r\n return {\r\n hidden: {\r\n opacity: 1,\r\n transition: { duration: 0.4, staggerChildren: staggerDuration ? staggerDuration / 2 : 0.1 },\r\n },\r\n visible: {\r\n opacity: 1,\r\n transition: { duration: 0.6, staggerChildren: staggerDuration ?? 0.15 },\r\n },\r\n };\r\n}\r\nexport function scaleIn(amount, duration) {\r\n return {\r\n hidden: {\r\n scale: amount ?? 2,\r\n transition: { duration: duration ?? 0.4 },\r\n },\r\n visible: {\r\n scale: 1,\r\n transition: { duration: duration ?? 0.6, staggerChildren: 0.15 },\r\n },\r\n };\r\n}\r\nexport function heightIn(duration) {\r\n return {\r\n hidden: {\r\n height: 0,\r\n transition: { duration: duration ?? 0.4 },\r\n },\r\n visible: {\r\n height: 'auto',\r\n transition: { duration: duration ?? 0.6, staggerChildren: 0.15 },\r\n },\r\n };\r\n}\r\n","import { css, keyframes } from 'styled-components';\r\nconst easeInOutCubic = 'cubic-bezier(0.645, 0.045, 0.355, 1)';\r\nexport default {\r\n easeInOutCubic,\r\n};\r\nconst reset = keyframes `\r\n 100% {\r\n transform: translate(0%, 0%);\r\n opacity: 1;\r\n }\r\n`;\r\nexport function fadeInLeft(amount, duration, delay, easingFunc) {\r\n return css `\r\n opacity: 0;\r\n transform: translateX(-${amount}px);\r\n animation: ${reset} ${duration}ms ${delay}ms ${easingFunc} forwards;\r\n `;\r\n}\r\nexport function fadeIn(inView, duration, delay, easingFunc) {\r\n return css `\r\n transition: opacity ${duration}ms ${delay}ms ${easingFunc};\r\n\r\n ${inView\r\n ? css `\r\n opacity: 1;\r\n `\r\n : css `\r\n opacity: 0;\r\n `}\r\n `;\r\n}\r\nexport function fadeInUp(inView, amount, duration, delay, easingFunc) {\r\n return css `\r\n transition: opacity ${duration}ms ${delay}ms ${easingFunc}, transform ${duration}ms ${delay}ms ${easingFunc};\r\n\r\n ${inView\r\n ? css `\r\n opacity: 1;\r\n transform: none;\r\n `\r\n : css `\r\n opacity: 0;\r\n transform: translateY(${amount}px);\r\n `}\r\n `;\r\n}\r\nexport function slideUp(inView, order, delay = 300, easingFunc = easeInOutCubic, animateOnExit = true) {\r\n if (inView) {\r\n return css `\r\n transform: translateY(0%);\r\n transition: transform 650ms ${delay + order * 100}ms ${easingFunc};\r\n `;\r\n }\r\n else if (animateOnExit) {\r\n return css `\r\n transform: translateY(120%);\r\n transition: transform 650ms ${delay + order * 100}ms ${easingFunc};\r\n `;\r\n }\r\n else {\r\n return css `\r\n transform: translateY(120%);\r\n `;\r\n }\r\n}\r\nexport function greyscaleImgFade(inView, duration, delay, filterDelay, easingFunc) {\r\n return css `\r\n transition: opacity ${duration}ms ${delay}ms ${easingFunc}, filter ${duration}ms ${filterDelay}ms ${easingFunc};\r\n\r\n ${inView\r\n ? css `\r\n opacity: 1;\r\n filter: grayscale(0);\r\n `\r\n : css `\r\n opacity: 0;\r\n filter: grayscale(1);\r\n `}\r\n `;\r\n}\r\n","import React from 'react';\r\nimport { CTAStyles, CTATheme } from './CTA.styles';\r\nimport { Textfit } from 'react-textfit';\r\nconst CTAAnchor = ({ text, href, theme = CTATheme.Blue, target, inView = true }) => {\r\n return (React.createElement(CTAStyles.AnchorElement, { theme: theme, href: href, target: target }, inView && (React.createElement(Textfit, { mode: \"single\", max: 22 }, text))));\r\n};\r\nexport default CTAAnchor;\r\n","import { css } from 'styled-components';\r\nimport { Device, from } from './media';\r\nconst base = css `\r\n display: grid;\r\n grid-gap: 16px;\r\n width: 100%;\r\n grid-template-columns: repeat(12, 1fr);\r\n`;\r\nconst baseFixed = css `\r\n display: grid;\r\n grid-gap: 16px;\r\n width: 100%;\r\n // 78px being the width of one column at 375 of the base grid above\r\n grid-auto-columns: 78px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n // 117px being the width of one column at 1920 of the base grid above\r\n grid-auto-columns: 117px;\r\n }\r\n`;\r\nexport const SitePadding = css `\r\n padding-left: 18px;\r\n padding-right: 18px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n padding-left: 40px;\r\n padding-right: 40px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n padding-left: 70px;\r\n padding-right: 70px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n padding-left: 130px;\r\n padding-right: 130px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n padding-left: 170px;\r\n padding-right: 170px;\r\n }\r\n`;\r\nconst SitePaddingBreakoutLeft = css `\r\n left: 0;\r\n right: 0px;\r\n grid-column: span 12;\r\n margin-left: -18px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-left: -40px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-left: -70px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin-left: -130px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin-left: -170px;\r\n }\r\n`;\r\nconst SitePaddingBreakoutRight = css `\r\n left: 0;\r\n right: 0px;\r\n grid-column: span 12;\r\n margin-right: -18px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-right: -40px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-right: -70px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin-right: -130px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin-right: -170px;\r\n }\r\n`;\r\nconst SitePaddingBreakout = css `\r\n left: 0;\r\n right: 0px;\r\n grid-column: span 12;\r\n margin-left: -18px;\r\n margin-right: -18px;\r\n\r\n @media ${from(Device.Tablet)} {\r\n margin-left: -40px;\r\n margin-right: -40px;\r\n }\r\n\r\n @media ${from(Device.TabletLarge)} {\r\n margin-left: -70px;\r\n margin-right: -70px;\r\n }\r\n\r\n @media ${from(Device.DesktopSmall)} {\r\n margin-left: -130px;\r\n margin-right: -130px;\r\n }\r\n\r\n @media ${from(Device.DesktopLarge)} {\r\n margin-left: -170px;\r\n margin-right: -170px;\r\n }\r\n`;\r\nconst Default = css `\r\n ${base};\r\n ${SitePadding};\r\n`;\r\nconst Fixed = css `\r\n ${baseFixed};\r\n`;\r\nexport default {\r\n Default,\r\n Fixed,\r\n SitePaddingBreakout,\r\n SitePaddingBreakoutLeft,\r\n SitePaddingBreakoutRight,\r\n base,\r\n};\r\n"],"sourceRoot":""}