{"version":3,"file":"dist/build-client/static/js/7392.902e1549.chunk.js","mappings":"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","sources":["Atoms/Buttons/BaseButtonStyle.ts","Atoms/Buttons/Button.tsx","Atoms/Loaders/LoadingCircle.tsx","Enums/ProductType.enum.ts","Pages/SearchPage/FilterComponent/UrlHandler.ts","Organisms/FilterComponent/FilterReducer/filterReducerHelperFunctions.tsx","Organisms/FilterComponent/FilterReducer/filterReducer.ts","Organisms/FilterComponent/FilterProvider.tsx","Atoms/Overlay/ModalOverlay.tsx","Organisms/Modal/Modal.tsx","Pages/SearchPage/Search.ts","Shared/Hooks/useMountTransition.ts","Shared/Hooks/useOutsideClick.ts","Shared/Hooks/usePreventBackgroundScroll.ts"],"sourcesContent":["import { styled } from 'stitches.config';\r\nimport { timings, animation } from 'Theme/Settings/animation';\r\n\r\nconst hoverCondition = '&:hover:not([disabled])';\r\n\r\nexport const ButtonVariants = {\r\n variants: {\r\n color: {\r\n primary: {\r\n backgroundColor: '$buttonPrimary',\r\n color: '$textSecondary',\r\n [hoverCondition]: {\r\n backgroundColor: '$JE68GreenHover',\r\n },\r\n },\r\n primary2: {\r\n backgroundColor: '$buttonPrimary2',\r\n color: '$textPrimary',\r\n [hoverCondition]: {\r\n backgroundColor: '$buttonPrimary2',\r\n },\r\n },\r\n secondary: {\r\n backgroundColor: '$buttonSecondary',\r\n color: '$textSecondary',\r\n [hoverCondition]: {\r\n backgroundColor: '$primaryLight1',\r\n },\r\n },\r\n secondaryDark: {\r\n backgroundColor: '$buttonSecondaryDark',\r\n color: '$textPrimary',\r\n [hoverCondition]: {\r\n backgroundColor: '$primary4',\r\n },\r\n },\r\n tertiary: {\r\n backgroundColor: 'transparent',\r\n color: '$textPrimary',\r\n // using box shadow to create a border - this way hover doesn't affect layout\r\n boxShadow: '0 0 0 1px $colors$borderPrimary',\r\n [hoverCondition]: {\r\n boxShadow: '0 0 0 2px $colors$borderPrimary',\r\n },\r\n },\r\n quaternary: {\r\n backgroundColor: '$primary2',\r\n color: '$textPrimary',\r\n [hoverCondition]: {\r\n backgroundColor: '$primary1',\r\n },\r\n },\r\n outlined: {\r\n backgroundColor: 'transparent',\r\n border: '1px solid $secondary2',\r\n [hoverCondition]: {\r\n backgroundColor: '$primary2',\r\n },\r\n },\r\n },\r\n size: {\r\n s: {\r\n py: 3,\r\n px: 6,\r\n fs: 6,\r\n h: 10,\r\n lineHeight: '$lh133',\r\n },\r\n l: {\r\n py: 3.5,\r\n px: 6,\r\n fs: 8,\r\n h: 12,\r\n lineHeight: '$lh125',\r\n },\r\n },\r\n fullWidth: {\r\n true: {\r\n width: '100%',\r\n },\r\n },\r\n loading: {\r\n true: {\r\n opacity: 0.7,\r\n fs: 7,\r\n },\r\n },\r\n },\r\n defaultVariants: {\r\n color: 'primary',\r\n size: 'l',\r\n },\r\n};\r\n\r\nexport const ButtonBase = {\r\n borderColor: 'transparent',\r\n cursor: 'pointer',\r\n display: 'flex',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n wordSpacing: '$wordSpacings$fontPrimary',\r\n whiteSpace: 'nowrap',\r\n fontFamily: 'fontPrimary500',\r\n ls: '$ls1',\r\n bw: 0.25,\r\n transition: `all ${timings.oneFifth} ${animation.timingFn}`,\r\n textAlign: 'center',\r\n textTransform: 'uppercase',\r\n '&:active': {\r\n outlineWidth: 0,\r\n },\r\n '&:focus': {},\r\n '&:disabled': {\r\n cursor: 'not-allowed',\r\n opacity: 0.5,\r\n },\r\n};\r\n\r\nconst BaseButtonStyled = styled('button', {\r\n ...ButtonBase,\r\n ...ButtonVariants,\r\n});\r\n\r\nexport default BaseButtonStyled;\r\n","import LoadingCircle from 'Atoms/Loaders/LoadingCircle';\r\nimport KexIconLoader from 'Kex/KexIconLoader';\r\nimport { styled } from 'stitches.config';\r\nimport BaseButtonStyled from './BaseButtonStyle';\r\nimport BaseButtonType from './BaseButtonType';\r\n\r\nfunction Button({\r\n onClick,\r\n children,\r\n icon,\r\n disabled,\r\n type,\r\n size,\r\n css,\r\n isLoading,\r\n fullWidth,\r\n}: BaseButtonType) {\r\n const Icon = icon && styled(KexIconLoader(icon.type));\r\n return (\r\n \r\n \r\n {Icon && (\r\n \r\n {' '}\r\n \r\n )}\r\n {children}\r\n \r\n\r\n {isLoading && (\r\n \r\n \r\n \r\n )}\r\n \r\n );\r\n}\r\n\r\nconst IconContainer = styled('div', {\r\n position: 'absolute',\r\n left: 24,\r\n});\r\n\r\nconst StyledLoadingCircle = styled('div', {\r\n position: 'absolute',\r\n});\r\n\r\nconst StyledButtonText = styled('div', {\r\n display: 'flex',\r\n flexDirection: 'row',\r\n alignItems: 'center',\r\n justifyContent: 'center',\r\n variants: {\r\n isLoading: {\r\n true: {\r\n opacity: 0,\r\n },\r\n false: {\r\n opacity: 1,\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst StyledButton = styled(BaseButtonStyled, {\r\n position: 'relative',\r\n overflow: 'hidden',\r\n});\r\n\r\nexport default Button;\r\n","import IconBaseType from 'Atoms/Icons/IconBaseType';\r\nimport { styled } from 'stitches.config';\r\n\r\ntype LoadingCircleType = Omit & {\r\n isLoading?: boolean;\r\n size?: 's' | 'l' | 'xl';\r\n};\r\n\r\nfunction LoadingCircle({ size, isLoading }: LoadingCircleType) {\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\r\nconst LoadingSvgStyles = styled('svg', {\r\n stroke: '$JE68GreenPrimary',\r\n overflow: 'visible',\r\n variants: {\r\n isLoading: {\r\n true: {\r\n display: 'initial',\r\n },\r\n false: {\r\n display: 'none',\r\n },\r\n },\r\n size: {\r\n s: {\r\n w: 6,\r\n h: 6,\r\n },\r\n l: {\r\n h: 12,\r\n w: 12,\r\n },\r\n xl: {\r\n h: 16,\r\n w: 16,\r\n },\r\n },\r\n },\r\n defaultVariants: {\r\n size: 's',\r\n },\r\n});\r\n\r\nconst LoadingCircleStyles = styled('circle', {\r\n stroke: '$JE68GreenBackground',\r\n});\r\n\r\nexport default LoadingCircle;\r\n","export enum ProductType {\r\n MOTORCYCLES = 'motorcycles',\r\n ACCESSORIES = 'accessories',\r\n CLOTHING = 'clothing',\r\n SPAREPARTS = 'spareparts',\r\n VENDORSPAREPARTS = 'vendorspareparts',\r\n}\r\n","import KexRange from '../../../Models/Search/KexRange.interface';\r\nimport KexTerm from '../../../Models/Search/KexTerm.interface';\r\nimport { FilterState } from '../../../Organisms/FilterComponent/FilterReducer/filterState';\r\n\r\nconst FILTER = 'filter::';\r\nconst CONDITION_FILTER = `${FILTER}ProductCondition`;\r\nconst ORDER = 'order';\r\n\r\nexport const getFiltersFromUrl = (\r\n paramsArray: [string, string][],\r\n data: NonNullable\r\n) => {\r\n const params = new Map(paramsArray);\r\n const ranges = (data.facets || [])\r\n .filter((f) => !!f?.ranges?.length)\r\n .map((f): [string, KexRange] => [f.name, f.ranges[0]]);\r\n\r\n const multiSelect = (data.facets || [])\r\n .filter((f) => !!f.terms)\r\n .map((f): [string, KexTerm[]] => [f.name, f.terms]);\r\n\r\n const outRange = new Map(\r\n ranges.map(([key, range]) => {\r\n const result = params.get(FILTER + key);\r\n const numbers = result?.split('..');\r\n\r\n if (numbers?.length === 2) {\r\n return [\r\n key,\r\n {\r\n min: range.min.toString(),\r\n max: range.max.toString(),\r\n currentMin: numbers[0],\r\n currentMax: numbers[1],\r\n },\r\n ];\r\n } else {\r\n return [\r\n key,\r\n {\r\n min: range.min.toString(),\r\n max: range.max.toString(),\r\n currentMin: range.min.toString(),\r\n currentMax: range.max.toString(),\r\n },\r\n ];\r\n }\r\n })\r\n );\r\n\r\n const outMulti = new Map(\r\n multiSelect.map(([key]) => {\r\n const values = (params.get(FILTER + key) || '')\r\n .split(';')\r\n .filter((s) => !!s);\r\n return [key, new Set(values)];\r\n })\r\n );\r\n\r\n const conditionFilter = new Set<'New' | 'Used'>();\r\n\r\n params\r\n .get(CONDITION_FILTER)\r\n ?.split(',')\r\n .filter((s): s is 'New' | 'Used' => s === 'New' || s === 'Used')\r\n .forEach((s) => conditionFilter.add(s));\r\n\r\n const sortOrderModel =\r\n data.sorters.find(\r\n (s) => s.value === Number.parseInt(params.get(ORDER) || '')\r\n ) || data.sorters[0];\r\n\r\n return { outRange, outMulti, conditionFilter, sortOrderModel };\r\n};\r\n","import KexFacet from '../../../Models/Search/KexFacet.interface';\r\nimport SorterModel from '../../../Models/Search/SorterModel.interface';\r\nimport { getFiltersFromUrl } from '../../../Pages/SearchPage/FilterComponent/UrlHandler';\r\nimport {\r\n FILTER_URL_CONSTANTS,\r\n getUrlParameter,\r\n setUrlParameter,\r\n setUrlParameters,\r\n} from '../../../Shared/Common/Helpers';\r\nimport { FilterState, RangeType } from './filterState';\r\n\r\nexport function toggle(oldSet: Set, key: T): Set {\r\n const newSet = new Set(oldSet);\r\n newSet.has(key) ? newSet.delete(key) : newSet.add(key);\r\n return newSet;\r\n}\r\n\r\nexport const resetRangeFilters = (\r\n rangeFilters: Map,\r\n facets?: KexFacet[]\r\n): typeof rangeFilters => {\r\n if (!facets) {\r\n return new Map();\r\n }\r\n\r\n const newRange = new Map(rangeFilters);\r\n\r\n Array.from(rangeFilters)\r\n .map(\r\n ([key]) => [key, facets.find((element) => element.name === key)] as const\r\n )\r\n .filter((entry): entry is [string, KexFacet] => !!entry[1])\r\n .forEach(\r\n ([\r\n key,\r\n {\r\n ranges: [{ min, max }],\r\n },\r\n ]) => {\r\n newRange.set(key, {\r\n min: min.toString(),\r\n max: max.toString(),\r\n currentMin: min.toString(),\r\n currentMax: max.toString(),\r\n });\r\n }\r\n );\r\n\r\n return newRange;\r\n};\r\n\r\nexport const withMutateUrl = (state: FilterState): typeof state => {\r\n if (!state.data && !state.query) {\r\n if (state.query)\r\n setUrlParameter(FILTER_URL_CONSTANTS.SEARCH_QUERY, state.query);\r\n\r\n if (state.selectedModel) {\r\n setUrlParameter(\r\n FILTER_URL_CONSTANTS.SELECTED_MODEL_FILTER,\r\n\r\n state.selectedModel\r\n );\r\n }\r\n if (state.loadedItems && state.loadedItems !== '0') {\r\n setUrlParameter('items', state.loadedItems.toString());\r\n }\r\n return state;\r\n }\r\n\r\n const prs: [string, string][] = [\r\n [FILTER_URL_CONSTANTS.SELECTED_MODEL_FILTER, state.selectedModel],\r\n [FILTER_URL_CONSTANTS.SEARCH_QUERY, state.query],\r\n ['tab', getUrlParameter('tab')],\r\n ].filter((s): s is [string, string] => !!s[1]);\r\n\r\n if (state.sorterFilter.value !== 0) {\r\n prs.push([FILTER_URL_CONSTANTS.ORDER, state.sorterFilter.value.toString()]);\r\n }\r\n\r\n Array.from(state.multiSelectFilters)\r\n .filter(([, values]) => values.size > 0)\r\n .forEach(([key, values]) =>\r\n prs.push([\r\n FILTER_URL_CONSTANTS.FILTER + key,\r\n Array.from(values).join(';'),\r\n ])\r\n );\r\n\r\n Array.from(state.rangeFilters)\r\n .filter(\r\n ([_, values]) =>\r\n !!values &&\r\n (values.currentMax !== values.max || values.currentMin !== values.min)\r\n )\r\n .forEach(([key, values]) =>\r\n prs.push([\r\n `${FILTER_URL_CONSTANTS.FILTER}${key}`,\r\n `${values.currentMin}..${values.currentMax}`,\r\n ])\r\n );\r\n\r\n if (state.conditionFilter.size > 0) {\r\n prs.push([\r\n FILTER_URL_CONSTANTS.CONDITION_FILTER,\r\n Array.from(state.conditionFilter).join(','),\r\n ]);\r\n }\r\n\r\n setUrlParameters(prs);\r\n if (state.loadedItems && state.loadedItems !== '0') {\r\n setUrlParameter('items', state.loadedItems.toString());\r\n }\r\n return { ...state, queryParams: prs };\r\n};\r\n\r\nexport const parseDataToFilter = (\r\n state: FilterState,\r\n data: { facets: KexFacet[]; sorters: SorterModel[] }\r\n): typeof state => {\r\n const { outRange, outMulti, conditionFilter, sortOrderModel } =\r\n getFiltersFromUrl(state.queryParams, data);\r\n\r\n return {\r\n ...state,\r\n rangeFilters: outRange,\r\n multiSelectFilters: outMulti,\r\n conditionFilter,\r\n sorterFilter: sortOrderModel || state.sorterFilter,\r\n data,\r\n };\r\n};\r\n\r\nexport const toQueryParams = (queryString: string) => {\r\n return Array.from(new URLSearchParams(queryString));\r\n};\r\n","import { getUrlParameter } from 'Shared/Common/Helpers';\r\nimport { FilterMessage } from '../filterMessages';\r\nimport {\r\n resetRangeFilters,\r\n withMutateUrl,\r\n parseDataToFilter,\r\n} from './filterReducerHelperFunctions';\r\nimport { FilterState } from './filterState';\r\n\r\nexport const checkNever = (_: never) => {};\r\n\r\nexport const filterReducer = (\r\n state: FilterState,\r\n message: FilterMessage\r\n): FilterState => {\r\n switch (message.type) {\r\n case 'onClear':\r\n return withMutateUrl({\r\n ...state,\r\n multiSelectFilters: new Map(),\r\n rangeFilters: resetRangeFilters(state.rangeFilters, state.data?.facets),\r\n loadedItems: getUrlParameter('items'),\r\n });\r\n case 'onChangeCategory':\r\n return withMutateUrl({\r\n ...state,\r\n selectedModel: '',\r\n multiSelectFilters: new Map(),\r\n conditionFilter: new Set(),\r\n rangeFilters: new Map(),\r\n sorterFilter: state.initSorterFilter,\r\n loadedItems: '0',\r\n });\r\n case 'setMultiSelectFilter': {\r\n const { checked, key, value } = message;\r\n const newFilter = new Map(state.multiSelectFilters);\r\n const set = newFilter.get(key) || new Set();\r\n\r\n checked ? set.add(value) : set.delete(value);\r\n newFilter.set(key, set);\r\n\r\n return withMutateUrl({\r\n ...state,\r\n multiSelectFilters: newFilter,\r\n });\r\n }\r\n case 'setRangeFilter': {\r\n const { key, currentMin, currentMax, min, max } = message;\r\n const newFilter = new Map(state.rangeFilters);\r\n newFilter.set(key, { currentMin, currentMax, min, max });\r\n return withMutateUrl({ ...state, rangeFilters: newFilter });\r\n }\r\n case 'setSorterFilter':\r\n return withMutateUrl({ ...state, sorterFilter: message.value });\r\n case 'setMultiSelectFilters':\r\n return withMutateUrl({\r\n ...state,\r\n multiSelectFilters: message.selectFilters,\r\n });\r\n case 'setQuery':\r\n return withMutateUrl({ ...state, query: message.value });\r\n case 'setSorterFilterByText':\r\n if (!state.data) return state;\r\n return withMutateUrl({\r\n ...state,\r\n sorterFilter:\r\n state.data.sorters.find(\r\n (element) => element.text === message.value\r\n ) || state.sorterFilter,\r\n });\r\n case 'setSelectedModel':\r\n return withMutateUrl({\r\n ...state,\r\n selectedModel: message.value,\r\n });\r\n case 'setFacets':\r\n return withMutateUrl(\r\n parseDataToFilter(state, {\r\n facets: message.facets,\r\n sorters: message.sorters,\r\n })\r\n );\r\n case 'setLoadedItems':\r\n return withMutateUrl({\r\n ...state,\r\n loadedItems: message.value,\r\n });\r\n default:\r\n /* Neat ts trick, the row below will error if you forgot a message type,\r\n hover over the error to see the missing message\r\n */\r\n checkNever(message);\r\n return state;\r\n }\r\n};\r\n","import React, { useMemo } from 'react';\r\nimport { ReactNode, useEffect, useReducer } from 'react';\r\nimport { getSelectedModel, getUrlParameter } from '../../Shared/Common/Helpers';\r\nimport { useTranslationData } from '../../Shared/Providers/TranslationProvider';\r\n\r\nimport { useUserStateData } from '../../Shared/Providers/UserContextProvider';\r\nimport { FilterMessage } from './filterMessages';\r\nimport { filterReducer } from './FilterReducer/filterReducer';\r\nimport { toQueryParams } from './FilterReducer/filterReducerHelperFunctions';\r\nimport { FilterState } from './FilterReducer/filterState';\r\n\r\ntype Props = {\r\n children: ReactNode;\r\n urlSearchString: string;\r\n noQuery?: true;\r\n};\r\n\r\ntype FilterContextType = [FilterState, React.Dispatch];\r\n\r\nexport const FilterContext = React.createContext(\r\n [] as unknown as FilterContextType\r\n);\r\n\r\nexport const useFilterData = () => React.useContext(FilterContext);\r\n\r\nexport const FilterProvider = ({\r\n children,\r\n urlSearchString,\r\n noQuery,\r\n}: Props) => {\r\n const {\r\n account: { query: queryFromGlobal },\r\n accountDispatch,\r\n } = useUserStateData();\r\n\r\n const {\r\n searchLabels: { sortOrderLatest },\r\n } = useTranslationData();\r\n\r\n const INIT: FilterState = {\r\n data: null,\r\n multiSelectFilters: new Map(),\r\n rangeFilters: new Map(),\r\n conditionFilter: new Set(),\r\n initSorterFilter: {\r\n selected: true,\r\n text: sortOrderLatest,\r\n value: 0,\r\n },\r\n sorterFilter: {\r\n selected: true,\r\n text: sortOrderLatest,\r\n value: 0,\r\n },\r\n queryParams: toQueryParams(urlSearchString),\r\n query: noQuery ? '' : queryFromGlobal,\r\n selectedModel: getSelectedModel(),\r\n loadedItems: getUrlParameter('items') || '0',\r\n };\r\n\r\n const [filterState, dispatch] = useReducer(filterReducer, INIT);\r\n\r\n // If local filter state changes, change global\r\n useEffect(() => {\r\n if (!noQuery) {\r\n accountDispatch({\r\n type: 'setQuery',\r\n query: filterState.query,\r\n });\r\n }\r\n }, [filterState.query, accountDispatch, noQuery]);\r\n\r\n // If global filter state changes, change local\r\n useEffect(() => {\r\n if (!noQuery) {\r\n dispatch({\r\n type: 'setQuery',\r\n value: queryFromGlobal,\r\n });\r\n }\r\n }, [queryFromGlobal, dispatch, noQuery]);\r\n\r\n const value = useMemo(\r\n (): FilterContextType => [filterState, dispatch],\r\n [filterState, dispatch]\r\n );\r\n\r\n return (\r\n {children}\r\n );\r\n};\r\n","import usePreventBackgroundScroll from 'Shared/Hooks/usePreventBackgroundScroll';\r\nimport { styled } from 'stitches.config';\r\n\r\ntype PropTypes = {\r\n clickEvent?: () => void;\r\n isVisible: boolean;\r\n overlayColor?: 'primary' | 'secondary';\r\n};\r\n\r\nfunction ModalOverlay({\r\n clickEvent,\r\n isVisible,\r\n overlayColor = 'primary',\r\n}: PropTypes) {\r\n usePreventBackgroundScroll();\r\n\r\n return (\r\n <>\r\n \r\n \r\n \r\n );\r\n}\r\n\r\nexport default ModalOverlay;\r\n\r\nconst ModalOverlayLeftPane = styled('div', {\r\n zIndex: '$Modal',\r\n transition: 'all 0.25s ease-in-out',\r\n visibility: 'hidden',\r\n position: 'fixed',\r\n height: '3vh',\r\n width: '120vw',\r\n t: 0,\r\n l: -15,\r\n '@mediaMinLarge': {\r\n h: '100vh',\r\n width: 'calc(100% - 496px)',\r\n t: 0,\r\n l: 0,\r\n },\r\n variants: {\r\n isVisible: {\r\n true: {\r\n visibility: 'initial',\r\n },\r\n },\r\n overlayColor: {\r\n primary: {\r\n backgroundColor: '$modalOverlayPrimary',\r\n },\r\n secondary: {\r\n backgroundColor: '$modalOverlaySecondary',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst ModalOverlayRightPane = styled('div', {\r\n transition: 'all 0.25s ease-in-out',\r\n visibility: 'hidden',\r\n zIndex: '$ModalOverlay',\r\n position: 'fixed',\r\n height: '97vh',\r\n width: '120vw',\r\n right: 'unset',\r\n top: 'unset',\r\n left: 0,\r\n bottom: 0,\r\n '@mediaMinLarge': {\r\n h: '100vh',\r\n width: '496px',\r\n r: 0,\r\n t: 0,\r\n b: 'unset',\r\n l: 'unset',\r\n },\r\n variants: {\r\n isVisible: {\r\n true: {\r\n visibility: 'initial',\r\n },\r\n },\r\n overlayColor: {\r\n primary: {\r\n backgroundColor: '$modalOverlayPrimary',\r\n },\r\n secondary: {\r\n backgroundColor: '$modalOverlaySecondary',\r\n },\r\n },\r\n },\r\n});\r\n","import CloseButton from 'Atoms/Buttons/CloseButton';\r\nimport React, { useRef } from 'react';\r\nimport useMountTransition from 'Shared/Hooks/useMountTransition';\r\nimport { styled } from 'stitches.config';\r\nimport { timings, animation } from 'Theme/Settings/animation';\r\nimport ReactDOM from 'react-dom';\r\nimport ModalOverlay from 'Atoms/Overlay/ModalOverlay';\r\nimport { canUseDOM } from 'Shared/Common/Helpers';\r\n\r\ntype PropType = {\r\n children: React.ReactNode;\r\n showModal: boolean;\r\n toggle?: () => void;\r\n hideCloseButton?: boolean;\r\n overlay?: boolean;\r\n noPadding?: boolean;\r\n showScrollbar?: boolean;\r\n};\r\n\r\nfunction Modal({\r\n showModal,\r\n children,\r\n toggle,\r\n noPadding = false,\r\n hideCloseButton,\r\n showScrollbar = true,\r\n}: PropType) {\r\n const modalRef = useRef(null);\r\n const hasTransitionedIn = useMountTransition(showModal, 250);\r\n\r\n if (canUseDOM()) {\r\n const portalElement = document.querySelector('#root-content');\r\n\r\n return ReactDOM.createPortal(\r\n <>\r\n \r\n \r\n {toggle && !hideCloseButton && (\r\n \r\n \r\n \r\n )}\r\n {children}\r\n \r\n \r\n {(hasTransitionedIn || showModal) && (\r\n \r\n )}\r\n ,\r\n portalElement as Element\r\n );\r\n } else {\r\n return <>;\r\n }\r\n}\r\n\r\nconst CloseWrapper = styled('div', {\r\n display: 'flex',\r\n position: 'absolute',\r\n zIndex: 9,\r\n top: 16,\r\n right: 16,\r\n '@mediaMinLarge': {\r\n top: 24,\r\n right: 24,\r\n },\r\n});\r\n\r\nconst ModalContainer = styled('div', {\r\n position: 'fixed',\r\n visibility: 'hidden',\r\n overflowY: 'scroll',\r\n scrollbarWidth: 'none',\r\n top: 0,\r\n right: 0,\r\n h: '100%',\r\n w: '100%',\r\n opacity: 1,\r\n zIndex: '$zIndices$Modal',\r\n transition: `all ${timings.oneHalf} ${animation.timingFn}`,\r\n variants: {\r\n isVisible: {\r\n true: {\r\n visibility: 'initial',\r\n },\r\n },\r\n },\r\n});\r\n\r\nconst ModalContent = styled('div', {\r\n overflow: 'auto',\r\n position: 'absolute',\r\n bottom: 0,\r\n width: '100%',\r\n height: 0,\r\n p: 4,\r\n opacity: 1,\r\n marginLeft: 'auto',\r\n backgroundColor: '$modalContentBackground',\r\n borderLeft: '1px solid $modalContentBorder',\r\n transition: `height ${timings.oneHalf} ${animation.timingFn}`,\r\n '@mediaMinLarge': {\r\n position: 'relative',\r\n transition: `all ${timings.oneHalf} ${animation.timingFn}`,\r\n height: '100%',\r\n width: 0,\r\n p: 6,\r\n transform: 'translateX(300%)',\r\n },\r\n variants: {\r\n isVisible: {\r\n true: {\r\n height: '97%',\r\n '@mediaMinLarge': {\r\n width: '480px',\r\n height: '100%',\r\n transform: 'translateX(0)',\r\n },\r\n },\r\n },\r\n noPadding: {\r\n true: {\r\n p: 0,\r\n },\r\n },\r\n showScrollbar: {\r\n false: {\r\n '&::-webkit-scrollbar': {\r\n display: 'none',\r\n },\r\n scrollbarWidth: 'none',\r\n },\r\n },\r\n },\r\n});\r\n\r\nexport default Modal;\r\n","import { useCallback, useEffect, useMemo, useState } from 'react';\r\nimport useSWR from 'swr';\r\nimport Fetcher from 'Shared/Common/Fetcher';\r\nimport { useAppSettingsData } from 'Shared/Providers/AppSettingsProvider';\r\nimport { canUseDOM, FILTER_URL_CONSTANTS } from 'Shared/Common/Helpers';\r\nimport FullSearchResult from '../../Models/Search/FullSearchResult.interface';\r\nimport SearchPhraseResult from '../../Models/Search/SearchPhraseResult.interface';\r\nimport KexFacet from '../../Models/Search/KexFacet.interface';\r\nimport { useFilterData } from 'Organisms/FilterComponent/FilterProvider';\r\n\r\nlet abortController: AbortController = new AbortController();\r\n\r\nexport enum SearchTypes {\r\n Products = 'getProduct',\r\n Content = 'getContent',\r\n Documents = 'getDocument',\r\n Empty = '',\r\n}\r\n\r\nconst toParamString = (params: [string, string][]) =>\r\n params.map(([key, value]) => `${key}=${value}`).join('&');\r\n\r\nconst noResult = (result: FullSearchResult | undefined) => {\r\n if (result === undefined) {\r\n return false;\r\n }\r\n\r\n if (result.productSearchResult?.items?.length) {\r\n return false;\r\n }\r\n\r\n if (result.categorySearchResult?.items?.length) {\r\n return false;\r\n }\r\n\r\n if (result.documentSearchResult?.items?.length) {\r\n return false;\r\n }\r\n\r\n if (result.contentSearchResult?.items?.length) {\r\n return false;\r\n }\r\n\r\n return true;\r\n};\r\n\r\nconst merge = (\r\n fullFacets?: KexFacet[],\r\n filteredFacets?: KexFacet[]\r\n): typeof fullFacets => {\r\n if (!fullFacets) return undefined;\r\n\r\n const mp = new Map(filteredFacets?.map((k) => [k.name, k] as const));\r\n\r\n return fullFacets\r\n .map((facet) => {\r\n const facetFilter = mp.get(facet.name);\r\n\r\n const filtered = new Map(\r\n facetFilter?.terms?.map((term) => [term.term, term.count])\r\n );\r\n\r\n const terms = facet.terms?.map((term) => {\r\n const count = filtered.get(term.term) || 0;\r\n return { ...term, count };\r\n });\r\n\r\n if (!terms?.length && facet.terms?.length) {\r\n return undefined;\r\n }\r\n\r\n return { ...facet, terms };\r\n })\r\n .filter((f): f is KexFacet => !!f);\r\n};\r\n\r\nexport async function QuickSearch(\r\n searchPage: string,\r\n query: string,\r\n languageRoute: string,\r\n setIsLoading: (value: boolean) => void\r\n) {\r\n setIsLoading(true);\r\n const url = `${searchPage}QuickSearch?query=${query}&language=${languageRoute}`;\r\n try {\r\n const res = await fetch(url);\r\n setIsLoading(false);\r\n if (res.ok) {\r\n const data = await res.json();\r\n return data as SearchPhraseResult;\r\n }\r\n } catch {\r\n return undefined;\r\n }\r\n}\r\n\r\nconst takeParameter: [string, string][] = [\r\n ['take', FILTER_URL_CONSTANTS.DEFAULT_ITEMS.toString()],\r\n];\r\n\r\nconst getAll: [string, string][] = [\r\n ['getProduct', 'true'],\r\n ['getContent', 'true'],\r\n ['getDocument', 'true'],\r\n];\r\n\r\nexport function useSearch(\r\n searchPage: string,\r\n filterParams: [string, string][]\r\n) {\r\n const { pageCacheTime } = useAppSettingsData();\r\n const [fullResult, setFullResult] = useState();\r\n const [loadingMore, setLoadingMore] = useState(false);\r\n const [state] = useFilterData();\r\n const [, query] = filterParams.find(\r\n ([key]) => key === FILTER_URL_CONSTANTS.SEARCH_QUERY\r\n ) || [FILTER_URL_CONSTANTS.SEARCH_QUERY, ''];\r\n\r\n const dynamicTakeParameter: [string, string][] = useMemo(() => {\r\n return [['take', state.loadedItems !== '0' ? state.loadedItems : '24']];\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const url = `${searchPage}Search?`;\r\n\r\n const facetedResult = useSWR(\r\n query,\r\n async () => {\r\n if (!query) {\r\n return undefined;\r\n }\r\n try {\r\n return await FetchSearch(\r\n url +\r\n toParamString([\r\n ...takeParameter,\r\n ...getAll,\r\n [FILTER_URL_CONSTANTS.SEARCH_QUERY, query],\r\n ])\r\n );\r\n } catch {\r\n return undefined;\r\n }\r\n },\r\n {\r\n revalidateOnFocus: false,\r\n dedupingInterval: pageCacheTime,\r\n }\r\n );\r\n\r\n const result = useSWR(\r\n url + toParamString([...dynamicTakeParameter, ...getAll, ...filterParams]),\r\n async (url) => {\r\n if (!query) {\r\n return undefined;\r\n }\r\n try {\r\n return await FetchSearch(url);\r\n } catch {\r\n return undefined;\r\n }\r\n },\r\n {\r\n fallbackData: fullResult,\r\n revalidateOnFocus: false,\r\n dedupingInterval: pageCacheTime,\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (result.data) setFullResult(result.data);\r\n }, [result.data]);\r\n\r\n const paginate = useCallback(\r\n async (searchType: SearchTypes) => {\r\n const type =\r\n searchType === SearchTypes.Products\r\n ? 'productSearchResult'\r\n : 'documentSearchResult';\r\n\r\n setLoadingMore(true);\r\n\r\n const skip = fullResult ? fullResult[type].items.length : 0;\r\n const getType =\r\n type === 'productSearchResult' ? 'getProduct' : 'getDocument';\r\n\r\n const moreUrl =\r\n url +\r\n toParamString([\r\n ...filterParams,\r\n ['skip', skip.toString()],\r\n ...takeParameter,\r\n [getType, 'true'],\r\n ]);\r\n\r\n try {\r\n const res = await FetchSearch(moreUrl);\r\n if (res) {\r\n setFullResult((r) =>\r\n !r\r\n ? res\r\n : {\r\n ...res,\r\n [type]: {\r\n ...res[type],\r\n items: [...r[type].items, ...res[type].items],\r\n },\r\n }\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n } finally {\r\n setLoadingMore(false);\r\n }\r\n },\r\n [fullResult, url, filterParams]\r\n );\r\n\r\n const currentFacets = useMemo(\r\n () =>\r\n merge(\r\n facetedResult.data?.productSearchResult?.facets,\r\n result.data?.productSearchResult?.facets\r\n ),\r\n [\r\n result.data?.productSearchResult?.facets,\r\n facetedResult.data?.productSearchResult?.facets,\r\n ]\r\n );\r\n\r\n return useMemo(\r\n () => ({\r\n paginate,\r\n isLoading: result.isValidating || facetedResult.isValidating,\r\n loadingMore,\r\n facets: currentFacets,\r\n sorters: facetedResult.data?.productSearchResult.sorters,\r\n noResult: noResult(facetedResult.data),\r\n result: fullResult,\r\n error: result.error,\r\n }),\r\n [\r\n result.isValidating,\r\n facetedResult.isValidating,\r\n currentFacets,\r\n result.error,\r\n fullResult,\r\n loadingMore,\r\n facetedResult.data,\r\n paginate,\r\n ]\r\n );\r\n}\r\n\r\nexport function useQueryCategoryItems(\r\n apiUrl: string,\r\n filterParams: [string, string][],\r\n pagePath: string\r\n) {\r\n if (!pagePath.endsWith('/')) {\r\n pagePath = pagePath + '/';\r\n }\r\n\r\n const url = canUseDOM() ? `${pagePath}${apiUrl}?` : '';\r\n const [state] = useFilterData();\r\n const { pageCacheTime } = useAppSettingsData();\r\n const [fullResult, setFullResult] = useState();\r\n const [loadingMore, setLoadingMore] = useState(false);\r\n const dynamicTakeParameter: [string, string][] = useMemo(() => {\r\n return [['take', state.loadedItems !== '0' ? state.loadedItems : '24']];\r\n // eslint-disable-next-line react-hooks/exhaustive-deps\r\n }, []);\r\n\r\n const facetedResult = useSWR(\r\n url + toParamString(takeParameter),\r\n async (url) => {\r\n try {\r\n return await FetchSearch(url);\r\n } catch {\r\n return undefined;\r\n }\r\n },\r\n {\r\n fallbackData: fullResult,\r\n revalidateOnFocus: false,\r\n dedupingInterval: pageCacheTime,\r\n }\r\n );\r\n\r\n const result = useSWR(\r\n url + toParamString([...dynamicTakeParameter, ...filterParams]),\r\n async () => {\r\n try {\r\n return await FetchSearch(\r\n url + toParamString([...dynamicTakeParameter, ...filterParams])\r\n );\r\n } catch {\r\n return undefined;\r\n }\r\n },\r\n {\r\n fallbackData: fullResult,\r\n revalidateOnFocus: false,\r\n dedupingInterval: pageCacheTime,\r\n }\r\n );\r\n\r\n useEffect(() => {\r\n if (result.data) setFullResult(result.data);\r\n }, [result.data]);\r\n\r\n const paginate = useCallback(async () => {\r\n setLoadingMore(true);\r\n\r\n const skip = fullResult ? fullResult.productSearchResult.items.length : 0;\r\n\r\n const moreUrl =\r\n url +\r\n toParamString([\r\n ...takeParameter,\r\n ...filterParams,\r\n ['skip', skip.toString()],\r\n ]);\r\n\r\n try {\r\n const res = await FetchSearch(moreUrl);\r\n if (res) {\r\n setFullResult((r) =>\r\n !r\r\n ? res\r\n : {\r\n ...res,\r\n productSearchResult: {\r\n ...res.productSearchResult,\r\n items: [\r\n ...r.productSearchResult.items,\r\n ...res.productSearchResult.items,\r\n ],\r\n },\r\n }\r\n );\r\n }\r\n } catch (error) {\r\n console.error(error);\r\n } finally {\r\n setLoadingMore(false);\r\n }\r\n }, [fullResult, url, filterParams]);\r\n\r\n const currentFacets = useMemo(\r\n () =>\r\n merge(\r\n facetedResult.data?.productSearchResult?.facets,\r\n result.data?.productSearchResult?.facets\r\n ),\r\n [\r\n result.data?.productSearchResult?.facets,\r\n facetedResult.data?.productSearchResult?.facets,\r\n ]\r\n );\r\n\r\n return useMemo(\r\n () => ({\r\n paginate,\r\n isLoading: result.isValidating || facetedResult.isValidating,\r\n loadingMore,\r\n facets: currentFacets,\r\n sorters: facetedResult.data?.productSearchResult?.sorters,\r\n noResult: noResult(facetedResult.data),\r\n result: fullResult,\r\n error: result.error,\r\n }),\r\n [\r\n paginate,\r\n result.isValidating,\r\n facetedResult.isValidating,\r\n facetedResult.data,\r\n loadingMore,\r\n currentFacets,\r\n fullResult,\r\n result.error,\r\n ]\r\n );\r\n}\r\n\r\nfunction removeEmptyRanges(item: KexFacet) {\r\n if (!item.ranges?.length) return true;\r\n const range = item.ranges[0];\r\n if (Number.isNaN(range.min)) return true;\r\n return range.max > range.min;\r\n}\r\n\r\nfunction FetchSearch(url: string) {\r\n abortController = new AbortController();\r\n const signal = abortController.signal;\r\n\r\n return Fetcher(\r\n url,\r\n signal,\r\n (data, resolve) => {\r\n if (data?.productSearchResult?.facets) {\r\n data.productSearchResult.facets =\r\n data.productSearchResult.facets.filter(removeEmptyRanges);\r\n }\r\n\r\n resolve(data);\r\n },\r\n false\r\n );\r\n}\r\n","import { useEffect, useState } from 'react';\r\n\r\nconst useMountTransition = (isMounted: boolean, unmountDelay: number) => {\r\n const [hasTransitionedIn, setHasTransitionedIn] = useState(false);\r\n\r\n useEffect(() => {\r\n let timeoutId: NodeJS.Timeout | null = null;\r\n\r\n if (isMounted && !hasTransitionedIn) {\r\n setHasTransitionedIn(true);\r\n } else if (!isMounted && hasTransitionedIn) {\r\n timeoutId = setTimeout(() => setHasTransitionedIn(false), unmountDelay);\r\n }\r\n\r\n return () => {\r\n if (timeoutId) clearTimeout(timeoutId);\r\n };\r\n }, [unmountDelay, isMounted, hasTransitionedIn]);\r\n\r\n return hasTransitionedIn;\r\n};\r\n\r\nexport default useMountTransition;\r\n","import { useEffect } from 'react';\r\n\r\nconst useOutsideClick = (ref: React.RefObject, callback: () => void) => {\r\n const handleClick = (e: MouseEvent | TouchEvent) => {\r\n if (ref.current && !ref.current.contains(e.target)) {\r\n callback();\r\n }\r\n };\r\n\r\n useEffect(() => {\r\n document.addEventListener('mousedown', handleClick);\r\n document.addEventListener('touchstart', handleClick);\r\n return () => {\r\n document.removeEventListener('mousedown', handleClick);\r\n document.removeEventListener('touchstart', handleClick);\r\n };\r\n });\r\n};\r\n\r\nexport default useOutsideClick;\r\n","import { useEffect } from 'react';\r\nimport { mediaQueryTypes } from 'Theme/Settings/mediaQueries';\r\nimport useMedia from './useMedia';\r\n\r\nfunction usePreventBackgroundScroll() {\r\n const isMobile = useMedia(mediaQueryTypes.mediaMaxMedium);\r\n\r\n useEffect(() => {\r\n const documentWidth = document.documentElement.clientWidth;\r\n const windowWidth = window.innerWidth;\r\n const scrollBarWidth = windowWidth - documentWidth;\r\n\r\n document.body.classList.add('hide-scrollbar');\r\n document.body.style.paddingRight = `${scrollBarWidth}px`;\r\n document.body.style.overflowY = 'hidden';\r\n\r\n //For ios\r\n let scrollPosition = 0;\r\n if (isMobile) {\r\n document.body.style.position = 'fixed';\r\n document.body.style.width = '100%';\r\n scrollPosition = window.pageYOffset;\r\n document.body.style.top = scrollPosition + 'px';\r\n }\r\n\r\n return () => {\r\n document.body.classList.remove('hide-scrollbar');\r\n //For ios\r\n if (isMobile) {\r\n document.body.style.position = 'unset';\r\n window.scrollTo(0, scrollPosition);\r\n document.body.style.top = 'unset';\r\n document.body.style.width = 'auto';\r\n }\r\n document.body.style.paddingRight = '0px';\r\n document.body.style.overflowY = 'initial';\r\n document.body.style.overflowX = 'hidden';\r\n };\r\n }, [isMobile]);\r\n}\r\n\r\nexport default usePreventBackgroundScroll;\r\n"],"names":["hoverCondition","ButtonVariants","variants","color","primary","backgroundColor","primary2","secondary","secondaryDark","tertiary","boxShadow","quaternary","outlined","border","size","s","py","px","fs","h","lineHeight","l","fullWidth","true","width","loading","opacity","defaultVariants","ButtonBase","borderColor","cursor","display","alignItems","justifyContent","wordSpacing","whiteSpace","fontFamily","ls","bw","transition","timings","animation","textAlign","textTransform","outlineWidth","BaseButtonStyled","styled","IconContainer","position","left","StyledLoadingCircle","StyledButtonText","flexDirection","isLoading","false","StyledButton","overflow","onClick","children","icon","disabled","type","css","Icon","KexIconLoader","toString","onBackground","LoadingSvgStyles","stroke","w","xl","LoadingCircleStyles","viewBox","xmlns","fill","fillRule","transform","strokeWidth","strokeOpacity","cx","cy","r","d","attributeName","from","to","dur","repeatCount","ProductType","FILTER","CONDITION_FILTER","resetRangeFilters","rangeFilters","facets","Map","newRange","Array","map","key","find","element","name","filter","entry","forEach","ranges","min","max","set","currentMin","currentMax","withMutateUrl","state","data","query","setUrlParameter","FILTER_URL_CONSTANTS","selectedModel","loadedItems","prs","getUrlParameter","sorterFilter","value","push","multiSelectFilters","values","join","conditionFilter","setUrlParameters","queryParams","parseDataToFilter","paramsArray","params","f","length","multiSelect","terms","outRange","range","result","get","numbers","split","outMulti","Set","add","sortOrderModel","sorters","Number","parseInt","getFiltersFromUrl","filterReducer","message","initSorterFilter","checked","newFilter","delete","selectFilters","text","FilterContext","React","useFilterData","FilterProvider","queryString","urlSearchString","noQuery","useUserStateData","queryFromGlobal","account","accountDispatch","sortOrderLatest","useTranslationData","searchLabels","INIT","selected","URLSearchParams","getSelectedModel","useReducer","filterState","dispatch","useEffect","useMemo","Provider","clickEvent","isVisible","overlayColor","usePreventBackgroundScroll","ModalOverlayLeftPane","ModalOverlayRightPane","zIndex","visibility","height","t","right","top","bottom","b","CloseWrapper","ModalContainer","overflowY","scrollbarWidth","ModalContent","p","marginLeft","borderLeft","noPadding","showScrollbar","showModal","toggle","hideCloseButton","modalRef","useRef","hasTransitionedIn","useMountTransition","canUseDOM","portalElement","document","querySelector","ReactDOM","ref","CloseButton","bgColor","SearchTypes","AbortController","toParamString","noResult","undefined","productSearchResult","items","categorySearchResult","documentSearchResult","contentSearchResult","merge","fullFacets","filteredFacets","mp","k","facet","facetFilter","filtered","term","count","QuickSearch","searchPage","languageRoute","setIsLoading","url","fetch","res","ok","json","takeParameter","getAll","useSearch","filterParams","pageCacheTime","useAppSettingsData","useState","fullResult","setFullResult","loadingMore","setLoadingMore","dynamicTakeParameter","facetedResult","useSWR","FetchSearch","revalidateOnFocus","dedupingInterval","fallbackData","paginate","useCallback","searchType","Products","skip","getType","moreUrl","console","error","currentFacets","isValidating","useQueryCategoryItems","apiUrl","pagePath","endsWith","removeEmptyRanges","item","isNaN","signal","Fetcher","resolve","isMounted","unmountDelay","setHasTransitionedIn","timeoutId","setTimeout","clearTimeout","callback","handleClick","e","current","contains","target","addEventListener","removeEventListener","isMobile","useMedia","mediaQueryTypes","documentWidth","documentElement","clientWidth","scrollBarWidth","window","innerWidth","body","classList","style","paddingRight","scrollPosition","pageYOffset","remove","scrollTo","overflowX"],"sourceRoot":""}