{"version":3,"file":"dist/build-client/static/js/DesktopHeader-DesktopHeader.be59f14e.chunk.js","mappings":"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","sources":["Atoms/Image/Image.tsx","Atoms/Links/IconLink.tsx","Organisms/Header/CartNotifier/CartNotifier.tsx","Organisms/Header/DesktopHeader/DesktopHeader.tsx","Organisms/Header/DesktopHeader/HeaderBottom/HeaderLink.tsx","Organisms/Header/NavigationMenu/MenuItem/DesktopMenuItem.tsx","Organisms/Header/NavigationMenu/DesktopNavigationMenu.tsx","Organisms/Header/DesktopHeader/HeaderBottom/HeaderBottom.tsx","Organisms/QuickSearch/DesktopQuickSearch/DesktopQuickSearch.tsx","Organisms/Header/DesktopHeader/HeaderTop/HeaderTop.tsx","Organisms/Header/NavigationMenu/NavigationIconLink/NavigationIconLink.tsx","Organisms/Header/NavigationMenu/NavigationImageLink/NavigationImageLink.tsx","Organisms/Header/NavigationMenu/NavigationOverlay.tsx/NavigationOverlay.tsx","Organisms/Header/Reducers/favoritesReducer.ts","Organisms/Header/Reducers/menuReducer.ts","Organisms/ProductCard/SearchCard.tsx","Organisms/QuickSearch/SearchInput.tsx","Shared/Common/UrlParser.ts","Shared/Common/debounce.ts","Shared/Hooks/useOnScreen.js"],"sourcesContent":["import React, { useRef } from 'react';\r\nimport useOnScreen from 'Shared/Hooks/useOnScreen';\r\n\r\ntype PropType = {\r\n src: string;\r\n alt: string;\r\n imgFit?: boolean;\r\n onLoad?: () => void;\r\n usePlaceHolder?: boolean;\r\n title?: string;\r\n fixedWidth?: number;\r\n fixedHeight?: number;\r\n externalRef?: React.RefObject;\r\n};\r\n\r\nconst Image = ({\r\n src,\r\n alt = '',\r\n onLoad,\r\n usePlaceHolder,\r\n title = '',\r\n fixedWidth,\r\n fixedHeight,\r\n externalRef,\r\n}: PropType) => {\r\n const ref = useRef(null);\r\n const onScreen = useOnScreen({ ref: externalRef ? externalRef : ref });\r\n\r\n return onScreen ? (\r\n \r\n ) : usePlaceHolder ? (\r\n
\r\n ) : (\r\n \r\n );\r\n};\r\n\r\nexport default Image;\r\n","import KexIconLoader, { LoadableIcons } from 'Kex/KexIconLoader';\r\nimport KexLink from 'Kex/KexLink';\r\nimport { useState } from 'react';\r\nimport {\r\n animateUnderlineActive,\r\n animateUnderlineNotActive,\r\n} from 'Shared/Common/animateUnderline';\r\nimport { styled } from 'stitches.config';\r\ntype PropTypes = {\r\n whiteText?: boolean;\r\n underline?: boolean;\r\n onClick?: (x?: () => void) => void;\r\n href?: string;\r\n children: string | undefined;\r\n focused?: true;\r\n color?: string;\r\n type?: keyof typeof LoadableIcons;\r\n};\r\n\r\nfunction IconLink({\r\n whiteText = false,\r\n onClick,\r\n href,\r\n children,\r\n focused,\r\n color,\r\n type,\r\n ...rest\r\n}: PropTypes) {\r\n const [linkIsHovered, setLinkIsHovered] = useState(false);\r\n const Icon = KexIconLoader(type ?? 'Arrow');\r\n return (\r\n setLinkIsHovered(true)}\r\n onMouseLeave={() => setLinkIsHovered(false)}\r\n >\r\n \r\n \r\n {children}\r\n \r\n \r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst StyledKexLink = styled(KexLink, {\r\n width: 'fit-content',\r\n display: 'flex',\r\n});\r\n\r\nconst IconWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n m: 'auto',\r\n ml: 2,\r\n});\r\n\r\nconst StyledLinkWrapper = styled('div', {\r\n width: 'fit-content',\r\n});\r\n\r\nconst Text = styled('span', {\r\n m: 'auto',\r\n '&:nth-child(n)[data-whitetext=\"true\"]': { color: '$pureWhite' },\r\n ...animateUnderlineNotActive,\r\n variants: {\r\n linkIsHovered: {\r\n true: {\r\n ...animateUnderlineActive,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default styled(IconLink);\r\n","import { styled } from 'stitches.config';\r\nimport { GetCart } from 'Shared/Cart/Cart';\r\nimport { useAppSettingsData } from 'Shared/Providers/AppSettingsProvider';\r\n\r\nfunction CartNotifier() {\r\n const { languageRoute } = useAppSettingsData();\r\n const { cart, isLoading, isCartEmpty } = GetCart(languageRoute);\r\n\r\n if (isLoading || isCartEmpty) return <>;\r\n\r\n const isBiggerNotifierStyle = (cart?.numberOfItems || 0) >= 10;\r\n\r\n return (\r\n \r\n {cart?.numberOfItems}\r\n \r\n );\r\n}\r\n\r\nconst CartItemsNotifier = styled('span', {\r\n position: 'absolute',\r\n t: 0,\r\n r: -1,\r\n backgroundColor: '$JE68GreenPrimary',\r\n color: '$textSecondary',\r\n fontFamily: '$fontSecondary500',\r\n borderRadius: '50%',\r\n fs: 4,\r\n minW: 3,\r\n minH: 3,\r\n lineHeight: '$lh1',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n overflowY: 'hidden',\r\n zIndex: '$Notification',\r\n variants: {\r\n bigger: {\r\n true: {\r\n minW: 4,\r\n minH: 4,\r\n t: -1,\r\n r: -1,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default CartNotifier;\r\n","import { PropType as MiniCartPropType } from 'Organisms/MiniCart/MiniCart';\r\nimport { useEffect, useState, useReducer, useRef, useCallback } from 'react';\r\nimport { styled } from 'stitches.config';\r\nimport loadable, { LoadableComponent } from '@loadable/component';\r\nimport HeaderTop from './HeaderTop/HeaderTop';\r\nimport menuReducer from '../Reducers/menuReducer';\r\nimport favoritesReducer from '../Reducers/favoritesReducer';\r\nimport HeaderBottom from './HeaderBottom/HeaderBottom';\r\nimport useMountTransition from 'Shared/Hooks/useMountTransition';\r\nimport {\r\n PropType as AccountModalPropType,\r\n ModalName,\r\n} from 'Organisms/AccountModal/AccountModal';\r\nimport {\r\n NO_TOKEN,\r\n parseTokenFromQuery,\r\n} from '../../../Shared/Common/UrlParser';\r\nimport { updateUrl } from '../../../Shared/Common/Helpers';\r\nimport NavigationOverlay from '../NavigationMenu/NavigationOverlay.tsx/NavigationOverlay';\r\nimport { useUserStateData } from 'Shared/Providers/UserContextProvider';\r\nimport { PropType as FavoritesPropType } from 'Shared/Favorites/FavoritesModal';\r\nimport { animation, timings } from 'Theme/Settings/animation';\r\nimport { useStickyHeaderData } from 'Shared/Providers/StickyHeaderProvider';\r\n\r\nconst AccountModal: LoadableComponent = loadable(\r\n () => import('Organisms/AccountModal/AccountModal')\r\n);\r\n\r\nconst MiniCart: LoadableComponent = loadable(\r\n () => import('Organisms/MiniCart/MiniCart')\r\n);\r\nconst FavoritesModal: LoadableComponent = loadable(\r\n () => import('Shared/Favorites/FavoritesModal')\r\n);\r\n\r\nfunction DesktopHeader() {\r\n const [tokenInfo, setTokenInfo] = useState(parseTokenFromQuery());\r\n const {\r\n accountDispatch,\r\n account,\r\n miniCartDispatch,\r\n miniCartIsOpen,\r\n mountMiniCart,\r\n } = useUserStateData();\r\n\r\n const [{ menuIsOpen, menuId }, menuDispatch] = useReducer(menuReducer, {\r\n menuIsOpen: false,\r\n mountMenu: true,\r\n menuId: null,\r\n });\r\n\r\n const [{ favoritesIsOpen, mountFavorites }, favoritesDispatch] = useReducer(\r\n favoritesReducer,\r\n {\r\n favoritesIsOpen: false,\r\n mountFavorites: true,\r\n }\r\n );\r\n\r\n const miniCartBtnRef = useRef(null);\r\n const userMenuBtnRef = useRef(null);\r\n const menuRef = useRef(null);\r\n\r\n const [searchIsOpen, setSearchIsOpen] = useState(false);\r\n\r\n const clearTokens = useCallback(() => {\r\n updateUrl(document.title, window.location.pathname);\r\n setTokenInfo(NO_TOKEN);\r\n }, [setTokenInfo]);\r\n\r\n const toggle = useCallback(\r\n () => accountDispatch({ type: 'toggle' }),\r\n [accountDispatch]\r\n );\r\n\r\n useEffect(() => {\r\n if (tokenInfo.type !== null) {\r\n accountDispatch({ type: 'toggle' });\r\n }\r\n }, [tokenInfo, accountDispatch]);\r\n\r\n const hasTransitionedIn = useMountTransition(menuIsOpen || searchIsOpen, 250);\r\n\r\n const { isHideHeader, shouldAnimateSticky } = useStickyHeaderData();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n favoritesDispatch('mountAndOpen')}\r\n toggleMenu={(id: number) =>\r\n menuDispatch({ id, type: 'mountAndOpen' })\r\n }\r\n onMenuClose={() => menuDispatch({ type: 'closeMenu' })}\r\n activeMenuId={menuId}\r\n openMiniCart={() =>\r\n miniCartDispatch(miniCartIsOpen ? 'closeMiniCart' : 'mountAndOpen')\r\n }\r\n openUserMenu={() => accountDispatch({ type: 'toggle' })}\r\n menuIsOpen={menuIsOpen}\r\n miniCartBtnRef={miniCartBtnRef}\r\n userMenuBtnRef={userMenuBtnRef}\r\n menuRef={menuRef}\r\n />\r\n\r\n \r\n {mountMiniCart && (\r\n miniCartDispatch('closeMiniCart')}\r\n />\r\n )}\r\n {mountFavorites && (\r\n {\r\n favoritesDispatch('close');\r\n }}\r\n />\r\n )}\r\n \r\n {(hasTransitionedIn || menuIsOpen || searchIsOpen || favoritesIsOpen) && (\r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nconst HeaderTag = styled('header', {\r\n zIndex: '$Header',\r\n backgroundColor: '$siteHeaderDesktopBackground',\r\n color: '$siteHeaderLinkColor',\r\n t: 0,\r\n position: 'relative',\r\n width: '100%',\r\n transition: `all ${timings.oneFifth} ${animation.timingFn}`,\r\n border: 'none',\r\n left: 0,\r\n variants: {\r\n showTransition: {\r\n // animate down\r\n true: {\r\n t: -16,\r\n },\r\n // animate up\r\n false: {\r\n t: -32,\r\n position: 'sticky', // set sticky again to animate up\r\n },\r\n },\r\n sticky: {\r\n true: {\r\n position: 'sticky',\r\n top: 0,\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst Placeholder = styled('div', {\r\n w: '100%',\r\n minH: '$sizes$desktopHeaderHeight',\r\n position: 'absolute',\r\n});\r\n\r\nexport default DesktopHeader;\r\n","import { styled } from 'stitches.config';\r\nimport IHeaderLink from '../../../../Models/Headers/HeaderLinkModel.interface';\r\nimport { debounce } from 'Shared/Common/debounce';\r\nimport KexLink from 'Kex/KexLink';\r\nimport { animateUnderlineActive } from 'Shared/Common/animateUnderline';\r\nimport CategoryPageModel from 'Models/Pages/CategoryPage/CategoryPageModel.interface';\r\nimport useCurrentPage from 'Shared/Hooks/useCurrentPage';\r\nimport PageModelBase from 'Models/Pages/Base/PageModelBase.interface';\r\n\r\ntype PropTypes = {\r\n toggleMenu: (id: number) => void;\r\n item: IHeaderLink;\r\n activeMenuId: number | null;\r\n menuIsOpen: boolean;\r\n onMenuClose: () => void;\r\n};\r\n\r\nfunction HeaderLink({\r\n toggleMenu,\r\n item,\r\n activeMenuId,\r\n menuIsOpen,\r\n onMenuClose,\r\n}: PropTypes) {\r\n const openMenu = (id: number) => {\r\n const delayMS = menuIsOpen ? 0 : 100;\r\n debounce(() => toggleMenu(id), delayMS);\r\n };\r\n const abort = (id: number) => {\r\n debounce(() => toggleMenu(id), 0, true);\r\n };\r\n\r\n const navigateToLink = () => {\r\n onMenuClose();\r\n };\r\n\r\n const { topMostParentCategoryId } = useCurrentPage();\r\n const { pageId } = useCurrentPage();\r\n const selected = activeMenuId === item.id;\r\n\r\n return (\r\n <>\r\n openMenu(item.id)}\r\n onMouseLeave={() => abort(item.id)}\r\n onClick={navigateToLink}\r\n href={item.href}\r\n clearQueryString={true}\r\n underlined={false}\r\n >\r\n \r\n {item.text}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst LinkWrapper = styled(KexLink, {\r\n display: 'flex',\r\n alignItems: 'center',\r\n marginLeft: 2,\r\n my: 'auto',\r\n color: '$textPrimary',\r\n fontFamily: '$fontSecondary500',\r\n fs: 7,\r\n lh: '$lh171',\r\n cursor: 'pointer',\r\n '&:not(:last-child)': {\r\n mr: 16,\r\n },\r\n});\r\n\r\nconst Text = styled('span', {\r\n color: '$textPrimary',\r\n fontFamily: '$fontSecondary500',\r\n fs: 7,\r\n lh: '$lh171',\r\n display: 'inline-block',\r\n position: 'relative',\r\n '&:after': {\r\n transform: 'scaleX(0)',\r\n content: ' ',\r\n transition: 'transform 250ms ease-in-out',\r\n display: 'block',\r\n borderBottom: '3px solid $JE68GreenPrimary',\r\n transformOrigin: '0% 0%',\r\n },\r\n variants: {\r\n selected: {\r\n true: {\r\n ...animateUnderlineActive,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default HeaderLink;\r\n","import { styled } from 'stitches.config';\r\nimport { CSS } from '@stitches/react';\r\nimport { useKexNavigate } from '../../../../Kex/KexRouter/KexRouter';\r\nimport IHeaderLink from '../../../../Models/Headers/HeaderLinkModel.interface';\r\nimport NavigationImageLink from '../NavigationImageLink/NavigationImageLink';\r\nimport NavigationIconLink from '../NavigationIconLink/NavigationIconLink';\r\n\r\ntype PropType = {\r\n item: IHeaderLink;\r\n css?: CSS;\r\n};\r\n\r\nfunction DesktopMenuItem({ item, css }: PropType) {\r\n const kexNavigate = useKexNavigate();\r\n\r\n const goToLink = () => {\r\n kexNavigate(item?.href);\r\n };\r\n\r\n const hasNoSubLinks = item?.subLinks?.length === 0;\r\n\r\n return (\r\n \r\n {hasNoSubLinks ? (\r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n {item?.subLinks?.map((subItem: IHeaderLink) => (\r\n \r\n ))}\r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nexport default DesktopMenuItem;\r\n\r\nconst InnerWrapper = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n height: '100%',\r\n});\r\n\r\nconst ItemWrapper = styled('div', {\r\n display: 'block',\r\n position: 'relative',\r\n cursor: 'pointer',\r\n maxW: '48%',\r\n variants: {\r\n hasNoSubLinks: {\r\n false: { flexBasis: '48%' },\r\n },\r\n },\r\n});\r\n\r\nconst NavigationSubLinksWrapper = styled('div', {\r\n mt: 6,\r\n display: 'grid',\r\n gridTemplateColumns: 'repeat(3, 1fr)',\r\n flexWrap: 'wrap',\r\n columnGap: '32px',\r\n '@mediaMinGreat': {\r\n gridTemplateColumns: 'repeat(4, 1fr)',\r\n },\r\n});\r\n","import IHeaderLink from '../../../Models/Headers/HeaderLinkModel.interface';\r\nimport { useEffect, useMemo } from 'react';\r\nimport { canUseDOM } from 'Shared/Common/Helpers';\r\nimport { styled } from 'stitches.config';\r\nimport MegaMenuItem from './MenuItem/DesktopMenuItem';\r\nimport ContentContainer from 'Molecules/ContentContainer/ContentContainer';\r\nimport { useHeaderData } from '../Header';\r\n\r\ntype PropTypes = {\r\n isOpen: boolean;\r\n onMenuClose: () => void;\r\n menuId?: number | null;\r\n menuRef: React.RefObject;\r\n};\r\n\r\nconst MAX_ITEMS_NR = 6;\r\n\r\nfunction DesktopNavigationMenu({ isOpen, onMenuClose, menuId }: PropTypes) {\r\n const { commerceLinks } = useHeaderData();\r\n\r\n const commerceMegaMenuLinks = [...commerceLinks].find(\r\n (item) => item?.id === menuId\r\n );\r\n\r\n const currentUrl = canUseDOM() && window.location.href;\r\n\r\n useEffect(() => {\r\n onMenuClose();\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [currentUrl]);\r\n\r\n const hasNoSubLinks = useMemo(() => {\r\n return commerceMegaMenuLinks?.subLinks?.some(\r\n (link) => link.subLinks.length !== 0\r\n );\r\n }, [commerceMegaMenuLinks]);\r\n\r\n if (!commerceMegaMenuLinks?.subLinks) return <>;\r\n\r\n return (\r\n <>\r\n \r\n \r\n {isOpen && (\r\n \r\n {commerceMegaMenuLinks &&\r\n commerceMegaMenuLinks?.subLinks?.map((item: IHeaderLink) => (\r\n \r\n ))}\r\n \r\n )}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default DesktopNavigationMenu;\r\n\r\nconst Wrapper = styled('div', {\r\n backgroundColor: '$primary6',\r\n overflowY: 'auto',\r\n zIndex: '$zIndices$Header',\r\n position: 'relative',\r\n variants: {\r\n isOpen: {\r\n true: {\r\n minHeight: 255,\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst List = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n flexWrap: 'wrap',\r\n my: 8,\r\n gap: '32px',\r\n variants: {\r\n hasNoSubLinks: {\r\n true: {\r\n justifyContent: 'space-between',\r\n },\r\n },\r\n },\r\n});\r\n","import { styled } from 'stitches.config';\r\nimport { useHeaderData } from '../../Header';\r\nimport IHeaderLink from '../../../../Models/Headers/HeaderLinkModel.interface';\r\nimport HeaderLink from './HeaderLink';\r\nimport { CartIcon, HeartIcon, UserIcon } from 'Atoms/Icons';\r\nimport ContentContainer from 'Molecules/ContentContainer/ContentContainer';\r\nimport CartNotifier from 'Organisms/Header/CartNotifier/CartNotifier';\r\nimport { useUserStateData } from 'Shared/Providers/UserContextProvider';\r\nimport KexLink from 'Kex/KexLink';\r\nimport { useAppSettingsData } from 'Shared/Providers/AppSettingsProvider';\r\nimport DesktopNavigationMenu from 'Organisms/Header/NavigationMenu/DesktopNavigationMenu';\r\nimport { GetFavorites } from 'Shared/Favorites/Favorites';\r\n\r\ntype PropTypes = {\r\n toggleFavorites: () => void;\r\n toggleMenu: (id: number) => void;\r\n openMiniCart: () => void;\r\n openUserMenu: () => void;\r\n activeMenuId: number | null;\r\n menuIsOpen: boolean;\r\n miniCartBtnRef: React.RefObject;\r\n userMenuBtnRef: React.RefObject;\r\n onMenuClose: () => void;\r\n menuRef: React.RefObject;\r\n};\r\nfunction HeaderBottom({\r\n toggleMenu,\r\n activeMenuId,\r\n openMiniCart,\r\n menuIsOpen,\r\n openUserMenu,\r\n onMenuClose,\r\n toggleFavorites,\r\n menuRef,\r\n}: PropTypes) {\r\n const { commerceLinks } = useHeaderData();\r\n const {\r\n user: { authenticated },\r\n } = useUserStateData();\r\n\r\n const {\r\n staticPages: { accountPage },\r\n languageRoute,\r\n } = useAppSettingsData();\r\n\r\n const { hasFavorites } = GetFavorites(languageRoute);\r\n return (\r\n menuIsOpen && onMenuClose()}>\r\n \r\n \r\n \r\n {commerceLinks &&\r\n commerceLinks.map((item: IHeaderLink, index) => (\r\n \r\n ))}\r\n \r\n \r\n {authenticated ? (\r\n \r\n \r\n \r\n \r\n \r\n ) : (\r\n \r\n \r\n \r\n )}\r\n\r\n \r\n authenticated ? toggleFavorites() : openUserMenu()\r\n }\r\n >\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n\r\n \r\n \r\n );\r\n}\r\nconst Container = styled('div', {\r\n backgroundColor: '$siteHeaderDesktopBackgroundLower',\r\n mh: 18.5,\r\n h: 14,\r\n position: 'relative',\r\n});\r\n\r\nconst ButtonWrapper = styled('button', {\r\n position: 'relative',\r\n '&:not(:last-child)': {\r\n mr: 8,\r\n },\r\n display: 'flex',\r\n alignItems: 'center',\r\n height: '24px',\r\n cursor: 'pointer',\r\n});\r\n\r\nconst Left = styled('div', {\r\n display: 'flex',\r\n alignItems: 'start',\r\n});\r\n\r\nconst Right = styled('div', {\r\n display: 'flex',\r\n alignItems: 'end',\r\n});\r\n\r\nconst HeaderBottomWrapper = styled('div', {\r\n display: 'flex',\r\n justifyContent: 'space-between',\r\n alignItems: 'center',\r\n width: '100%',\r\n py: 4,\r\n});\r\n\r\nexport default HeaderBottom;\r\n","import React, { useCallback, useEffect, useRef, useState } from 'react';\r\nimport { debounce } from 'Shared/Common/debounce';\r\nimport { useAppSettingsData } from 'Shared/Providers/AppSettingsProvider';\r\nimport {\r\n useKexNavigate,\r\n useKexRouterCurrentPage,\r\n} from '../../../Kex/KexRouter/KexRouter';\r\nimport SearchInput from '../SearchInput';\r\nimport { QuickSearch } from '../../../Pages/SearchPage/Search';\r\nimport useOutsideClick from 'Shared/Hooks/useOutsideClick';\r\nimport IconLink from 'Atoms/Links/IconLink';\r\nimport ContentContainer from 'Molecules/ContentContainer/ContentContainer';\r\nimport { H6 } from 'Atoms/Typography/Headings/Heading';\r\nimport SearchPhraseResult from '../../../Models/Search/SearchPhraseResult.interface';\r\nimport { useTranslationData } from 'Shared/Providers/TranslationProvider';\r\nimport { LoadingCircle } from 'Atoms/Icons';\r\nimport { styled } from 'stitches.config';\r\nimport SearchLinkResultModel from 'Models/Search/SearchLinkResultModel.interface';\r\nimport SearchCard from 'Organisms/ProductCard/SearchCard';\r\nimport { canUseDOM, getSearchQueryParameter } from 'Shared/Common/Helpers';\r\nimport { useUserStateData } from '../../../Shared/Providers/UserContextProvider';\r\n\r\ntype PropTypes = {\r\n searchIsOpen: boolean;\r\n setSearchIsOpen: (value: boolean) => void;\r\n menuRef: React.RefObject;\r\n};\r\n\r\nfunction DesktopQuickSearch({\r\n searchIsOpen,\r\n setSearchIsOpen,\r\n menuRef,\r\n}: PropTypes) {\r\n const {\r\n staticPages: { searchPage },\r\n languageRoute,\r\n } = useAppSettingsData();\r\n\r\n const {\r\n account: { query: searchedQuery },\r\n accountDispatch,\r\n } = useUserStateData();\r\n\r\n const page = useKexRouterCurrentPage();\r\n const onSearchPage = page.pageType === 'SearchPage';\r\n\r\n const {\r\n searchLabels: {\r\n quickSearchCategories,\r\n quickSearchPages,\r\n quickSearchProducts,\r\n showAllProducts,\r\n },\r\n } = useTranslationData();\r\n\r\n const kexNavigate = useKexNavigate();\r\n const [query, setQuery] = useState('');\r\n const [result, setResult] = useState();\r\n const [isLoading, setIsLoading] = useState(false);\r\n const inputRef = useRef(null);\r\n\r\n useEffect(() => setQuery(searchedQuery), [searchedQuery]);\r\n\r\n const hits =\r\n result &&\r\n result?.categoryCollection?.availableItems +\r\n result?.contentCollection?.availableItems +\r\n result?.productCollection?.availableItems;\r\n\r\n useOutsideClick(menuRef, () => {\r\n searchIsOpen && setSearchIsOpen(false);\r\n });\r\n\r\n const doSearch = () => {\r\n if (query.length > 1) {\r\n setTimeout(() => {\r\n setSearchIsOpen(false);\r\n }, 400);\r\n\r\n accountDispatch({ type: 'setQuery', query });\r\n if (!onSearchPage) {\r\n kexNavigate(`${searchPage}?query=${query}`);\r\n }\r\n }\r\n };\r\n\r\n const currentUrl = canUseDOM() && window.location.href;\r\n\r\n useEffect(() => {\r\n setTimeout(() => {\r\n setSearchIsOpen(false);\r\n }, 500);\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, [currentUrl]);\r\n\r\n const toggleSearch = () => {\r\n setSearchIsOpen(!searchIsOpen);\r\n };\r\n\r\n const doQuickSearch = useCallback(async () => {\r\n const quickSearchQuery = query;\r\n setIsLoading(true);\r\n const res = await QuickSearch(\r\n searchPage,\r\n quickSearchQuery,\r\n languageRoute,\r\n setIsLoading\r\n );\r\n\r\n // user navigated\r\n if (getSearchQueryParameter() === query || query === searchedQuery) {\r\n return;\r\n }\r\n\r\n res && setResult(res);\r\n if (\r\n res &&\r\n res?.categoryCollection?.availableItems +\r\n res?.contentCollection?.availableItems +\r\n res?.productCollection?.availableItems >\r\n 0\r\n ) {\r\n setSearchIsOpen(true);\r\n }\r\n }, [languageRoute, query, searchPage, setSearchIsOpen, searchedQuery]);\r\n\r\n useEffect(() => {\r\n debounce(() => {\r\n if (query.length >= 3) {\r\n doQuickSearch();\r\n } else {\r\n setSearchIsOpen(false);\r\n }\r\n }, 300);\r\n }, [query, searchPage, doQuickSearch, setSearchIsOpen]);\r\n\r\n return (\r\n <>\r\n {searchIsOpen && (\r\n \r\n \r\n {hits && hits > 0 ? (\r\n \r\n \r\n {result?.contentCollection &&\r\n result.contentCollection.availableItems > 0 && (\r\n \r\n
{`${quickSearchPages} (${result.contentCollection.availableItems})`}
\r\n
\r\n )}\r\n {result?.contentCollection?.items.map((item: any) => (\r\n setSearchIsOpen(false)}\r\n >\r\n {item.name}\r\n \r\n ))}\r\n
\r\n \r\n {result?.categoryCollection &&\r\n result.categoryCollection.availableItems > 0 && (\r\n \r\n
{`${quickSearchCategories} (${result.categoryCollection.availableItems})`}
\r\n
\r\n )}\r\n {result?.categoryCollection?.items.map((item: any) => (\r\n setSearchIsOpen(false)}\r\n >\r\n {item.name}\r\n \r\n ))}\r\n
\r\n \r\n {result?.productCollection &&\r\n result.productCollection.availableItems > 0 && (\r\n <>\r\n \r\n
{`${quickSearchProducts} (${result.productCollection.availableItems})`}
\r\n
\r\n\r\n {result?.productCollection?.items.map(\r\n (item: SearchLinkResultModel, index: number) => {\r\n if (index < 3) {\r\n return (\r\n \r\n );\r\n } else\r\n return ;\r\n }\r\n )}\r\n \r\n \r\n {showAllProducts}\r\n \r\n \r\n \r\n )}\r\n
\r\n
\r\n ) : (\r\n <>\r\n {isLoading && (\r\n <>\r\n \r\n \r\n )}\r\n \r\n )}\r\n
\r\n
\r\n )}\r\n \r\n \r\n );\r\n}\r\n\r\nconst Column = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'column',\r\n});\r\n\r\nconst HeaderWrapper = styled('div', {\r\n mb: 3,\r\n});\r\n\r\nconst LinkWrapper = styled('div', {\r\n ml: 'auto',\r\n});\r\n\r\nconst Grid = styled('div', {\r\n display: 'grid',\r\n gridTemplateColumns: '1fr 1fr 2fr',\r\n});\r\n\r\nconst StyledIconLink = styled(IconLink, {\r\n my: 2,\r\n ml: 'auto',\r\n fontFamily: '$fontSecondary500',\r\n lineHeight: '$lh15',\r\n});\r\n\r\nconst QuickSearchWrapper = styled('div', {\r\n py: 8,\r\n height: 'auto',\r\n color: 'white',\r\n w: '100%',\r\n t: '$sizes$desktopHeaderUpperHeight',\r\n l: 0,\r\n backgroundColor: '$backgroundPrimary',\r\n position: 'absolute',\r\n zIndex: '$Header',\r\n});\r\n\r\nexport default React.memo(DesktopQuickSearch);\r\n","import { LogoIcon } from 'Atoms/Icons';\r\nimport KexLink from 'Kex/KexLink';\r\nimport ContentContainer from 'Molecules/ContentContainer/ContentContainer';\r\nimport DesktopQuickSearch from 'Organisms/QuickSearch/DesktopQuickSearch/DesktopQuickSearch';\r\nimport { useAppSettingsData } from 'Shared/Providers/AppSettingsProvider';\r\nimport { styled } from 'stitches.config';\r\nimport { useHeaderData } from '../../Header';\r\n\r\ntype PropTypes = {\r\n searchIsOpen: boolean;\r\n setSearchIsOpen: (value: boolean) => void;\r\n menuRef: React.RefObject;\r\n};\r\n\r\nconst HeaderTop = ({ searchIsOpen, setSearchIsOpen, menuRef }: PropTypes) => {\r\n const { languageRoute } = useAppSettingsData();\r\n const { topLinks } = useHeaderData();\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n \r\n {topLinks.map((topLink, index) => {\r\n return (\r\n \r\n {topLink.text}\r\n \r\n );\r\n })}\r\n \r\n \r\n \r\n \r\n );\r\n};\r\n\r\nconst Flex = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n flex: 1,\r\n});\r\n\r\nconst Wrapper = styled('div', {\r\n position: 'relative',\r\n zIndex: '$Header',\r\n height: '72px',\r\n display: 'flex',\r\n alignItems: 'center',\r\n});\r\n\r\nconst Container = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'space-between',\r\n});\r\n\r\nconst Right = styled('div', {\r\n color: '$textPrimary',\r\n display: 'flex',\r\n alignItems: 'center',\r\n alignSelf: 'stretch',\r\n gap: '32px',\r\n justifyContent: 'end',\r\n ml: 4,\r\n flex: 1,\r\n});\r\n\r\nconst StyledKexLink = styled(KexLink, {\r\n mb: 0,\r\n whiteSpace: 'nowrap',\r\n fs: 7,\r\n color: '$textPrimary',\r\n fontFamily: '$fontSecondary500',\r\n lineHeight: '$lh171',\r\n wordSpacing: 'unset',\r\n ls: 'unset',\r\n});\r\n\r\nexport default HeaderTop;\r\n","import Image from 'Atoms/Image/Image';\r\nimport ImageModel from 'Models/Assets/ImageModel.interface';\r\nimport { useState } from 'react';\r\nimport { styled } from 'stitches.config';\r\nimport { mediaQueryTypes } from 'Theme/Settings/mediaQueries';\r\nimport useMedia from 'Shared/Hooks/useMedia';\r\nimport KexLink from 'Kex/KexLink';\r\nimport {\r\n animateUnderlineActive,\r\n animateUnderlineNotActive,\r\n} from 'Shared/Common/animateUnderline';\r\nimport useCurrentPage from 'Shared/Hooks/useCurrentPage';\r\nimport PageModelBase from 'Models/Pages/Base/PageModelBase.interface';\r\n\r\ntype PropTypes = {\r\n onClick?: () => void;\r\n href?: string;\r\n image: ImageModel;\r\n text: string;\r\n iteration: number;\r\n id: number;\r\n};\r\n\r\nfunction NavigationIconLink({\r\n onClick,\r\n href = '',\r\n image,\r\n text = '',\r\n iteration,\r\n id,\r\n}: PropTypes) {\r\n const isMobile = useMedia(mediaQueryTypes.mediaMaxLarge);\r\n const [linkIsHovered, setLinkIsHovered] = useState(false);\r\n const { pageId } = useCurrentPage();\r\n const hasUserNavigatedToLink = id === pageId;\r\n\r\n const isLargeImage = iteration <= 3;\r\n return (\r\n setLinkIsHovered(true)}\r\n onMouseLeave={() => setLinkIsHovered(false)}\r\n >\r\n \r\n \r\n {image && (\r\n \r\n )}\r\n \r\n \r\n {text}\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nconst KexLinkStyle = {\r\n display: 'flex',\r\n fontFamily: '$fontSecondary400',\r\n gap: 16,\r\n fs: 8,\r\n lineHeight: '$lh171',\r\n '@mediaMinLarge': {\r\n display: 'inline-flex',\r\n fs: 7,\r\n gap: 8,\r\n },\r\n};\r\n\r\nconst IconWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n '@mediaMinLarge': {\r\n ml: 1,\r\n flexShrink: 0,\r\n },\r\n});\r\n\r\nconst StyledLinkWrapper = styled('div', {\r\n p: 2,\r\n pl: 0,\r\n '@mediaMinLarge': {\r\n p: 2,\r\n },\r\n});\r\n\r\nconst Text = styled('span', {\r\n whiteSpace: 'nowrap',\r\n ...animateUnderlineNotActive,\r\n alignSelf: 'center',\r\n variants: {\r\n linkIsHovered: {\r\n true: {\r\n ...animateUnderlineActive,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default NavigationIconLink;\r\n","import Image from 'Atoms/Image/Image';\r\nimport KexLink from 'Kex/KexLink';\r\nimport { useState } from 'react';\r\nimport useMedia from 'Shared/Hooks/useMedia';\r\nimport { styled } from 'stitches.config';\r\nimport { mediaQueryTypes } from 'Theme/Settings/mediaQueries';\r\nimport {\r\n animateUnderlineActive,\r\n animateUnderlineNotActive,\r\n} from 'Shared/Common/animateUnderline';\r\nimport ArrowIcon from '../../../../Atoms/Icons/ArrowIcon';\r\n\r\ntype PropTypes = {\r\n text: string;\r\n imageHref: string;\r\n href: string;\r\n large?: boolean;\r\n onClick?: () => void;\r\n};\r\n\r\nfunction NavigationImageLink({\r\n text = '',\r\n imageHref = '',\r\n href = '/',\r\n large = false,\r\n onClick,\r\n}: PropTypes) {\r\n const [linkIsHovered, setLinkIsHovered] = useState(false);\r\n const isMobile = useMedia(mediaQueryTypes.mediaMaxLarge);\r\n\r\n return (\r\n setLinkIsHovered(true)}\r\n onMouseLeave={() => setLinkIsHovered(false)}\r\n >\r\n \r\n \r\n \r\n {'image'}\r\n \r\n \r\n {text}\r\n {!isMobile && (\r\n \r\n \r\n \r\n )}\r\n \r\n \r\n \r\n
\r\n );\r\n}\r\n\r\nconst StyledKexLink = styled(KexLink, {\r\n w: '100%',\r\n});\r\n\r\nconst Wrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n variants: {\r\n large: {\r\n true: { flexDirection: 'column' },\r\n },\r\n },\r\n});\r\n\r\nconst StyledLinkWrapper = styled('div', {\r\n width: 'fit-content',\r\n display: 'flex',\r\n textTransform: 'capitalize',\r\n '@mediaMinLarge': {\r\n textTransform: 'uppercase',\r\n },\r\n});\r\n\r\nconst IconWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n m: 'auto',\r\n ml: 2,\r\n});\r\n\r\nconst ImageWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'center',\r\n maxWidth: '192px',\r\n w: '100%',\r\n height: 151,\r\n variants: {\r\n large: {\r\n true: {\r\n '@mediaMinLarge': {\r\n backgroundColor: '$primary5',\r\n mb: 5,\r\n },\r\n },\r\n false: {\r\n flexDirection: 'column',\r\n width: '80px',\r\n height: '64px',\r\n mr: 4,\r\n '@mediaMinLarge': {\r\n mr: 6,\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst Text = styled('span', {\r\n textTransform: 'lowercase',\r\n '@mediaMinLarge': {\r\n textTransform: 'uppercase',\r\n },\r\n ...animateUnderlineNotActive,\r\n variants: {\r\n linkIsHovered: {\r\n true: {\r\n ...animateUnderlineActive,\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default NavigationImageLink;\r\n","import usePreventBackgroundScroll from 'Shared/Hooks/usePreventBackgroundScroll';\r\nimport { styled } from 'stitches.config';\r\n\r\ntype PropTypes = {\r\n isVisible: boolean;\r\n};\r\n\r\nconst NavigationOverlay = ({ isVisible }: PropTypes) => {\r\n usePreventBackgroundScroll();\r\n\r\n return ;\r\n};\r\n\r\nexport default NavigationOverlay;\r\n\r\nconst MenuOverlay = styled('div', {\r\n w: '100vw',\r\n h: '100vh',\r\n position: 'fixed',\r\n l: 0,\r\n t: 0,\r\n opacity: '0',\r\n zIndex: '$OverlayMegaMenu',\r\n transition: 'all 0.25s ease-in-out',\r\n visibility: 'hidden',\r\n backgroundColor: '$modalOverlaySecondary',\r\n variants: {\r\n isVisible: {\r\n true: {\r\n visibility: 'initial',\r\n opacity: '0.5',\r\n },\r\n },\r\n },\r\n});\r\n","type StateType = {\r\n favoritesIsOpen: boolean;\r\n mountFavorites: boolean;\r\n};\r\n\r\ntype ActionType = 'mountAndOpen' | 'close' | 'unmount';\r\n\r\nconst favoritesReducer = (state: StateType, action: ActionType) => {\r\n switch (action) {\r\n case 'mountAndOpen': {\r\n return {\r\n ...state,\r\n favoritesIsOpen: true,\r\n mountFavorites: true,\r\n };\r\n }\r\n case 'close': {\r\n return {\r\n ...state,\r\n favoritesIsOpen: false,\r\n };\r\n }\r\n case 'unmount': {\r\n return {\r\n ...state,\r\n mountFavorites: false,\r\n favoritesIsOpen: false,\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport default favoritesReducer;\r\n","type MenuStateType = {\r\n menuIsOpen: boolean;\r\n mountMenu: boolean;\r\n};\r\n\r\ntype MenuActionType = {\r\n id?: number | null;\r\n type: 'mountAndOpen' | 'closeMenu' | 'unMountMenu';\r\n};\r\n\r\nconst menuReducer = (state: MenuStateType, action: MenuActionType) => {\r\n switch (action.type) {\r\n case 'mountAndOpen': {\r\n return {\r\n ...state,\r\n menuIsOpen: true,\r\n mountMenu: true,\r\n menuId: action.id || null,\r\n };\r\n }\r\n case 'closeMenu': {\r\n return {\r\n ...state,\r\n menuIsOpen: false,\r\n menuId: action.id || null,\r\n };\r\n }\r\n case 'unMountMenu': {\r\n return {\r\n ...state,\r\n menuIsOpen: false,\r\n mountMenu: false,\r\n menuId: action.id || null,\r\n };\r\n }\r\n }\r\n};\r\n\r\nexport default menuReducer;\r\n","import KexLink from 'Kex/KexLink';\r\nimport ProductImage from 'Atoms/Image/ProductImage';\r\nimport { styled } from 'stitches.config';\r\nimport SearchLinkResultModel from 'Models/Search/SearchLinkResultModel.interface';\r\nimport ProductCardTitle from 'Atoms/ProductCardTitle/ProductCardTitle';\r\nimport { isEmpty } from 'Shared/Common/Helpers';\r\nimport { useAppSettingsData } from 'Shared/Providers/AppSettingsProvider';\r\n\r\ntype PropTypes = {\r\n item: SearchLinkResultModel;\r\n onClick: () => void;\r\n};\r\n\r\nfunction SearchCard({ item, onClick }: PropTypes) {\r\n const { image, name, url, nowPrice, isUsed } = item;\r\n const { missingImage } = useAppSettingsData();\r\n let itemImage = image;\r\n\r\n if (isEmpty(itemImage)) {\r\n itemImage = missingImage;\r\n }\r\n return (\r\n \r\n \r\n \r\n \r\n \r\n \r\n
\r\n \r\n \r\n \r\n \r\n \r\n
{nowPrice?.priceRoundedAsString}
\r\n
\r\n
\r\n );\r\n}\r\n\r\nconst StyledKexLink = styled(KexLink, {\r\n fontFamily: '$fontSecondary600',\r\n wordSpacing: 'unset',\r\n});\r\n\r\nconst CartItemContainer = styled('div', {\r\n display: 'flex',\r\n position: 'relative',\r\n\r\n '&:not(:last-child)': {\r\n py: 5,\r\n borderBottomWidth: '1px',\r\n borderBottomColor: '$checkoutPageBackgroundPrimary',\r\n },\r\n '&:last-child': {\r\n pt: 5,\r\n mb: 6,\r\n },\r\n variants: {\r\n isMiniCart: {\r\n true: {\r\n '&:not(:last-child)': {\r\n py: 5,\r\n borderBottomWidth: '1px',\r\n borderBottomColor: '$primary2',\r\n },\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst ImageContainer = styled('div', {\r\n width: 96,\r\n height: 72,\r\n mr: 4,\r\n '@mediaMinLarge': {\r\n width: 104,\r\n height: 80,\r\n },\r\n});\r\n\r\nconst TopWrapper = styled('div', {\r\n display: 'flex',\r\n alignItems: 'baseline',\r\n justifyContent: 'space-between',\r\n});\r\nconst Details = styled('div', {\r\n flexGrow: 1,\r\n display: 'flex',\r\n flexDirection: 'column',\r\n justifyContent: 'space-between',\r\n});\r\n\r\nexport default SearchCard;\r\n","import CloseButton from 'Atoms/Buttons/CloseButton';\r\nimport { SearchIcon } from 'Atoms/Icons';\r\nimport { useEffect, useState } from 'react';\r\nimport { useTranslationData } from 'Shared/Providers/TranslationProvider';\r\nimport { styled } from 'stitches.config';\r\nimport { CSS } from '@stitches/react';\r\nimport useMedia from 'Shared/Hooks/useMedia';\r\nimport { mediaQueryTypes } from 'Theme/Settings/mediaQueries';\r\nimport useCurrentPage from 'Shared/Hooks/useCurrentPage';\r\n\r\ntype PropTypes = {\r\n doSearch: () => void;\r\n query: string;\r\n setQuery: (value: string) => void;\r\n inputRef?: React.RefObject;\r\n css?: CSS;\r\n placeholder?: string;\r\n};\r\n\r\nfunction SearchInput({ doSearch, query, setQuery, inputRef, css }: PropTypes) {\r\n const { commonLabels } = useTranslationData();\r\n const [hasValue, setHasValue] = useState(false);\r\n const isMobile = useMedia(mediaQueryTypes.mediaMaxMedium);\r\n const { pageType, pageId } = useCurrentPage();\r\n\r\n const clearInput = () => {\r\n setQuery('');\r\n setHasValue(false);\r\n };\r\n useEffect(() => {\r\n query !== '' && setHasValue(true);\r\n }, [query]);\r\n\r\n useEffect(() => {\r\n if (pageType !== 'SearchPage') {\r\n setQuery('');\r\n }\r\n }, [pageId, setQuery, pageType]);\r\n\r\n return (\r\n {\r\n inputRef && inputRef.current?.focus();\r\n }}\r\n >\r\n ) => {\r\n setHasValue(!!e.currentTarget.value);\r\n setQuery(e.currentTarget.value);\r\n }}\r\n onKeyDown={(e) => e.key === 'Enter' && doSearch()}\r\n ref={inputRef}\r\n value={query}\r\n type=\"input\"\r\n placeholder={commonLabels.search}\r\n />\r\n {query !== '' && (\r\n \r\n )}\r\n \r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default SearchInput;\r\n\r\nconst Container = styled('div', {\r\n h: 10,\r\n display: 'flex',\r\n alignItems: 'center',\r\n py: 3,\r\n px: 6,\r\n w: '100%',\r\n maxW: 'unset',\r\n position: 'relative',\r\n borderWidth: '1px',\r\n borderColor: '$quickSearchOutline',\r\n borderRadius: '100px',\r\n color: '$quickSearchTextPrimary',\r\n backgroundColor: '$primary4',\r\n '&:focus-within': {\r\n borderColor: '$mobileSearchBorderPrimary',\r\n color: '$mobileSearchBorderPrimary',\r\n },\r\n 'input[type=\"search\"].with-appearance-none': {\r\n WebkitAppearance: 'none',\r\n },\r\n '@mediaMinLarge': {\r\n maxW: 104,\r\n },\r\n variants: {\r\n hasValue: {\r\n false: {\r\n borderColor: '$quickSearchOutlineNoValue',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst SearchButton = styled('button', {\r\n ml: 4,\r\n cursor: 'pointer',\r\n});\r\n\r\nconst StyledSearchIcon = styled(SearchIcon, {\r\n w: 4,\r\n h: 4,\r\n mr: 2,\r\n l: 0,\r\n});\r\n\r\nconst InputField = styled('input', {\r\n h: '100%',\r\n color: '$primaryLight1',\r\n backgroundColor: 'transparent',\r\n flexGrow: 1,\r\n flexShrink: 1,\r\n '&:focus': { outline: 'none' },\r\n '&::-webkit-search-cancel-button': {\r\n WebkitAppearance: 'none',\r\n },\r\n fs: 8,\r\n lineHeight: '$lh15',\r\n '@mediaMinLarge': {\r\n fs: 6,\r\n lineHeight: '$lh133',\r\n },\r\n '&::placeholder': {\r\n color: '$primaryLight2',\r\n },\r\n});\r\n","import { canUseDOM } from './Helpers';\r\n\r\nexport type TokenType = 'reset' | 'emailConfirmed' | null;\r\nexport type TokenInfo = {\r\n email: string;\r\n token: string;\r\n type: TokenType;\r\n};\r\n\r\nexport const parseQueryParameters = () => {\r\n const values = window.location.search\r\n .replace('?', '')\r\n .split('&')\r\n .map((param): null | [string, string] => {\r\n const splitAt = param.indexOf('=');\r\n\r\n if (splitAt === -1) {\r\n return null;\r\n }\r\n\r\n return [param.substring(0, splitAt), param.substring(splitAt + 1)];\r\n })\r\n .filter((value): value is [string, string] => value !== null);\r\n\r\n return new Map(values);\r\n};\r\n\r\nexport const NO_TOKEN = { email: '', token: '', type: null };\r\n\r\nexport const parseTokenFromQuery = (): TokenInfo => {\r\n if (!canUseDOM()) return NO_TOKEN;\r\n const mappedParams = parseQueryParameters();\r\n\r\n const email = mappedParams.get('email');\r\n\r\n if (!email) {\r\n return NO_TOKEN;\r\n }\r\n\r\n const resetToken = mappedParams.get('resetToken');\r\n const regToken = mappedParams.get('confirmEmailToken');\r\n\r\n if (resetToken) {\r\n return { email, token: resetToken, type: 'reset' };\r\n } else if (regToken) {\r\n return { email, token: regToken, type: 'emailConfirmed' };\r\n } else {\r\n return NO_TOKEN;\r\n }\r\n};\r\n","let timer: NodeJS.Timeout | null = null;\r\n\r\nexport const debounce = (\r\n fn: () => void,\r\n delay: number,\r\n abort: boolean = false\r\n) => {\r\n if (timer) {\r\n clearTimeout(timer);\r\n }\r\n\r\n timer = setTimeout(() => {\r\n if (abort) return;\r\n fn();\r\n }, delay);\r\n};\r\n","import { useState, useEffect } from 'react';\r\nimport PropTypes from 'prop-types';\r\nimport { IS_SERVER_CONTEXT } from '../Configs/EnvConfig';\r\n\r\nconst useOnScreen = ({ ref, rootMargin = '0px', once = true }) => {\r\n const [isIntersecting, setIntersecting] = useState(false);\r\n const [observerObject, setObserverObject] = useState(false);\r\n\r\n useEffect(() => {\r\n const elm = ref.current;\r\n const observer = new IntersectionObserver(\r\n ([entry]) => {\r\n setIntersecting(entry.isIntersecting);\r\n },\r\n {\r\n rootMargin,\r\n }\r\n );\r\n if (elm) {\r\n observer.observe(elm);\r\n }\r\n setObserverObject(observer);\r\n return () => {\r\n !Object.isEmpty(elm) && observer.unobserve(elm);\r\n };\r\n }, [ref, rootMargin]);\r\n\r\n if (\r\n once &&\r\n isIntersecting &&\r\n observerObject &&\r\n !Object.isEmpty(ref.current)\r\n ) {\r\n observerObject.unobserve(ref.current);\r\n }\r\n\r\n return IS_SERVER_CONTEXT ? true : isIntersecting;\r\n};\r\n\r\nuseOnScreen.propTypes /* remove-proptypes */ = {\r\n ref: PropTypes.shape({ current: PropTypes.element }),\r\n rootMargin: PropTypes.string,\r\n once: PropTypes.bool,\r\n};\r\n\r\nexport default useOnScreen;\r\n"],"names":["src","alt","onLoad","usePlaceHolder","title","fixedWidth","fixedHeight","externalRef","ref","useRef","onScreen","useOnScreen","width","height","StyledKexLink","styled","KexLink","display","IconWrapper","alignItems","m","ml","StyledLinkWrapper","Text","color","animateUnderlineNotActive","variants","linkIsHovered","true","animateUnderlineActive","whiteText","onClick","href","children","type","focused","rest","useState","setLinkIsHovered","Icon","KexIconLoader","onMouseOver","onMouseLeave","fontFamily","underlined","size","rotateLeft","CartItemsNotifier","position","t","r","backgroundColor","borderRadius","fs","minW","minH","lineHeight","justifyContent","overflowY","zIndex","bigger","languageRoute","useAppSettingsData","GetCart","cart","isLoading","isCartEmpty","isBiggerNotifierStyle","numberOfItems","AccountModal","loadable","MiniCart","FavoritesModal","DesktopHeader","parseTokenFromQuery","tokenInfo","setTokenInfo","useUserStateData","accountDispatch","account","miniCartDispatch","miniCartIsOpen","mountMiniCart","useReducer","menuReducer","menuIsOpen","mountMenu","menuId","menuDispatch","favoritesReducer","favoritesIsOpen","mountFavorites","favoritesDispatch","miniCartBtnRef","userMenuBtnRef","menuRef","searchIsOpen","setSearchIsOpen","clearTokens","useCallback","updateUrl","document","window","location","pathname","NO_TOKEN","toggle","useEffect","hasTransitionedIn","useMountTransition","useStickyHeaderData","isHideHeader","shouldAnimateSticky","Placeholder","HeaderTag","showTransition","sticky","id","toggleFavorites","toggleMenu","onMenuClose","activeMenuId","openMiniCart","openUserMenu","showModal","userMenuIsOpen","initialModalState","email","token","name","ModalName","isOpen","closeMiniCart","closeFavorites","isVisible","transition","timings","animation","border","left","false","top","w","LinkWrapper","marginLeft","my","lh","cursor","mr","transform","content","borderBottom","transformOrigin","selected","item","topMostParentCategoryId","useCurrentPage","pageId","onMouseEnter","delayMS","debounce","openMenu","clearQueryString","text","css","kexNavigate","useKexNavigate","hasNoSubLinks","subLinks","length","ItemWrapper","InnerWrapper","NavigationImageLink","imageHref","navigationImage","large","NavigationSubLinksWrapper","map","subItem","NavigationIconLink","image","iteration","flexDirection","maxW","flexBasis","mt","gridTemplateColumns","flexWrap","columnGap","commerceLinks","useHeaderData","commerceMegaMenuLinks","find","currentUrl","canUseDOM","useMemo","some","link","Wrapper","ContentContainer","overflow","List","minHeight","gap","Container","mh","h","ButtonWrapper","Left","Right","HeaderBottomWrapper","py","authenticated","user","accountPage","staticPages","hasFavorites","GetFavorites","index","role","CartNotifier","DesktopQuickSearch","searchPage","searchedQuery","query","onSearchPage","useKexRouterCurrentPage","pageType","useTranslationData","searchLabels","quickSearchCategories","quickSearchPages","quickSearchProducts","showAllProducts","setQuery","result","setResult","setIsLoading","inputRef","hits","categoryCollection","availableItems","contentCollection","productCollection","useOutsideClick","setTimeout","toggleSearch","doQuickSearch","quickSearchQuery","QuickSearch","res","getSearchQueryParameter","QuickSearchWrapper","Grid","Column","HeaderWrapper","H6","items","IconLink","url","SearchCard","StyledIconLink","onBackground","SearchInput","doSearch","mb","l","React","Flex","flex","alignSelf","whiteSpace","wordSpacing","ls","topLinks","fillColor","topLink","KexLinkStyle","flexShrink","p","pl","isMobile","useMedia","mediaQueryTypes","hasUserNavigatedToLink","isLargeImage","undefined","textTransform","ImageWrapper","maxWidth","usePreventBackgroundScroll","MenuOverlay","opacity","visibility","state","action","CartItemContainer","borderBottomWidth","borderBottomColor","pt","isMiniCart","ImageContainer","TopWrapper","Details","flexGrow","nowPrice","isUsed","missingImage","itemImage","isEmpty","priceRoundedAsString","commonLabels","hasValue","setHasValue","current","focus","InputField","autoFocus","onChange","e","currentTarget","value","onKeyDown","key","placeholder","search","bgColor","SearchButton","StyledSearchIcon","px","borderWidth","borderColor","WebkitAppearance","SearchIcon","outline","parseQueryParameters","values","replace","split","param","splitAt","indexOf","substring","filter","Map","mappedParams","get","resetToken","regToken","timer","fn","delay","abort","clearTimeout","rootMargin","once","isIntersecting","setIntersecting","observerObject","setObserverObject","elm","observer","IntersectionObserver","entry","observe","Object","unobserve","IS_SERVER_CONTEXT"],"sourceRoot":""}