{"version":3,"file":"static/js/703.8af4d11a.chunk.js","mappings":"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","sources":["helpers/components/OutsideClickTrigger.jsx","helpers/currencyHelper.js","modules/typeahead/component/searchBar.jsx","modules/typeahead/component/openOverlayButton.jsx","../node_modules/body-scroll-lock/lib/bodyScrollLock.esm.js","helpers/userManager.js","modules/typeahead/component/typeaheadOverlay.jsx","modules/typeahead/services/httpService.js","modules/typeahead/services/searchService.js","constants/urls.js","modules/typeahead/TypeaheadModule.js"],"sourcesContent":["import React, { Component } from \"react\"\nimport PropTypes from \"prop-types\"\n\n/**\n * Component that alerts if you click outside of it\n */\nexport default class OutsideClickTrigger extends Component {\n constructor(props) {\n super(props)\n\n this.setWrapperRef = this.setWrapperRef.bind(this)\n this.handleClickOutside = this.handleClickOutside.bind(this)\n }\n\n componentDidMount() {\n document.addEventListener(\"mousedown\", this.handleClickOutside)\n }\n\n componentWillUnmount() {\n document.removeEventListener(\"mousedown\", this.handleClickOutside)\n }\n\n /**\n * Set the wrapper ref\n */\n setWrapperRef(node) {\n this.wrapperRef = node\n }\n\n /**\n * Alert if clicked on outside of element\n */\n handleClickOutside(event) {\n if (this.wrapperRef && !this.wrapperRef.contains(event.target)) {\n if (this.props.onOutsideClick) this.props.onOutsideClick()\n }\n }\n\n render() {\n return (\n
\n {this.props.children}\n
\n )\n }\n}\n\nOutsideClickTrigger.propTypes = {\n children: PropTypes.element.isRequired,\n}\n","const formatCurrency = (val) => {\n let showFraction = 0\n if (val % 1 > 0) {\n showFraction = 2\n }\n\n return new Intl.NumberFormat(\"da-DK\", {\n minimumFractionDigits: showFraction,\n maximumFractionDigits: showFraction,\n }).format(val)\n}\n\nexport default formatCurrency\n","import React from \"react\"\n\nconst SearchBar = (props) => {\n const onFocus = (target) => props.onFocus && props.onFocus(target)\n const handleInput = (target) => props.handleInput && props.handleInput(target)\n const onKeyUp = (target) => props.onKeyUp && props.onKeyUp(target)\n\n return (\n \n onFocus(e.currentTarget)}\n onInput={(e) => handleInput(e.currentTarget)}\n onKeyUp={(e) => onKeyUp(e)}\n >\n
\n
\n )\n}\n\nexport default SearchBar\n","import React, { Component } from \"react\"\n\nclass OpenOverlayButton extends Component {\n constructor(props) {\n super(props)\n this.type = props.type\n }\n\n render() {\n switch (this.type) {\n case \"topmenu\":\n return (\n \n this.props.onClick(e.currentTarget)} className=\"search-icon\">\n \n )\n case \"mobile\":\n return (\n
\n this.props.onClick(e.currentTarget)}>\n \n \n
\n )\n default:\n return \"\"\n }\n }\n}\n\nexport default OpenOverlayButton\n","function _toConsumableArray(arr) { if (Array.isArray(arr)) { for (var i = 0, arr2 = Array(arr.length); i < arr.length; i++) { arr2[i] = arr[i]; } return arr2; } else { return Array.from(arr); } }\n\n// Older browsers don't support event options, feature detect it.\n\n// Adopted and modified solution from Bohdan Didukh (2017)\n// https://stackoverflow.com/questions/41594997/ios-10-safari-prevent-scrolling-behind-a-fixed-overlay-and-maintain-scroll-posi\n\nvar hasPassiveEvents = false;\nif (typeof window !== 'undefined') {\n var passiveTestOptions = {\n get passive() {\n hasPassiveEvents = true;\n return undefined;\n }\n };\n window.addEventListener('testPassive', null, passiveTestOptions);\n window.removeEventListener('testPassive', null, passiveTestOptions);\n}\n\nvar isIosDevice = typeof window !== 'undefined' && window.navigator && window.navigator.platform && (/iP(ad|hone|od)/.test(window.navigator.platform) || window.navigator.platform === 'MacIntel' && window.navigator.maxTouchPoints > 1);\n\n\nvar locks = [];\nvar documentListenerAdded = false;\nvar initialClientY = -1;\nvar previousBodyOverflowSetting = void 0;\nvar previousBodyPosition = void 0;\nvar previousBodyPaddingRight = void 0;\n\n// returns true if `el` should be allowed to receive touchmove events.\nvar allowTouchMove = function allowTouchMove(el) {\n return locks.some(function (lock) {\n if (lock.options.allowTouchMove && lock.options.allowTouchMove(el)) {\n return true;\n }\n\n return false;\n });\n};\n\nvar preventDefault = function preventDefault(rawEvent) {\n var e = rawEvent || window.event;\n\n // For the case whereby consumers adds a touchmove event listener to document.\n // Recall that we do document.addEventListener('touchmove', preventDefault, { passive: false })\n // in disableBodyScroll - so if we provide this opportunity to allowTouchMove, then\n // the touchmove event on document will break.\n if (allowTouchMove(e.target)) {\n return true;\n }\n\n // Do not prevent if the event has more than one touch (usually meaning this is a multi touch gesture like pinch to zoom).\n if (e.touches.length > 1) return true;\n\n if (e.preventDefault) e.preventDefault();\n\n return false;\n};\n\nvar setOverflowHidden = function setOverflowHidden(options) {\n // If previousBodyPaddingRight is already set, don't set it again.\n if (previousBodyPaddingRight === undefined) {\n var _reserveScrollBarGap = !!options && options.reserveScrollBarGap === true;\n var scrollBarGap = window.innerWidth - document.documentElement.clientWidth;\n\n if (_reserveScrollBarGap && scrollBarGap > 0) {\n var computedBodyPaddingRight = parseInt(window.getComputedStyle(document.body).getPropertyValue('padding-right'), 10);\n previousBodyPaddingRight = document.body.style.paddingRight;\n document.body.style.paddingRight = computedBodyPaddingRight + scrollBarGap + 'px';\n }\n }\n\n // If previousBodyOverflowSetting is already set, don't set it again.\n if (previousBodyOverflowSetting === undefined) {\n previousBodyOverflowSetting = document.body.style.overflow;\n document.body.style.overflow = 'hidden';\n }\n};\n\nvar restoreOverflowSetting = function restoreOverflowSetting() {\n if (previousBodyPaddingRight !== undefined) {\n document.body.style.paddingRight = previousBodyPaddingRight;\n\n // Restore previousBodyPaddingRight to undefined so setOverflowHidden knows it\n // can be set again.\n previousBodyPaddingRight = undefined;\n }\n\n if (previousBodyOverflowSetting !== undefined) {\n document.body.style.overflow = previousBodyOverflowSetting;\n\n // Restore previousBodyOverflowSetting to undefined\n // so setOverflowHidden knows it can be set again.\n previousBodyOverflowSetting = undefined;\n }\n};\n\nvar setPositionFixed = function setPositionFixed() {\n return window.requestAnimationFrame(function () {\n // If previousBodyPosition is already set, don't set it again.\n if (previousBodyPosition === undefined) {\n previousBodyPosition = {\n position: document.body.style.position,\n top: document.body.style.top,\n left: document.body.style.left\n };\n\n // Update the dom inside an animation frame \n var _window = window,\n scrollY = _window.scrollY,\n scrollX = _window.scrollX,\n innerHeight = _window.innerHeight;\n\n document.body.style.position = 'fixed';\n document.body.style.top = -scrollY;\n document.body.style.left = -scrollX;\n\n setTimeout(function () {\n return window.requestAnimationFrame(function () {\n // Attempt to check if the bottom bar appeared due to the position change\n var bottomBarHeight = innerHeight - window.innerHeight;\n if (bottomBarHeight && scrollY >= innerHeight) {\n // Move the content further up so that the bottom bar doesn't hide it\n document.body.style.top = -(scrollY + bottomBarHeight);\n }\n });\n }, 300);\n }\n });\n};\n\nvar restorePositionSetting = function restorePositionSetting() {\n if (previousBodyPosition !== undefined) {\n // Convert the position from \"px\" to Int\n var y = -parseInt(document.body.style.top, 10);\n var x = -parseInt(document.body.style.left, 10);\n\n // Restore styles\n document.body.style.position = previousBodyPosition.position;\n document.body.style.top = previousBodyPosition.top;\n document.body.style.left = previousBodyPosition.left;\n\n // Restore scroll\n window.scrollTo(x, y);\n\n previousBodyPosition = undefined;\n }\n};\n\n// https://developer.mozilla.org/en-US/docs/Web/API/Element/scrollHeight#Problems_and_solutions\nvar isTargetElementTotallyScrolled = function isTargetElementTotallyScrolled(targetElement) {\n return targetElement ? targetElement.scrollHeight - targetElement.scrollTop <= targetElement.clientHeight : false;\n};\n\nvar handleScroll = function handleScroll(event, targetElement) {\n var clientY = event.targetTouches[0].clientY - initialClientY;\n\n if (allowTouchMove(event.target)) {\n return false;\n }\n\n if (targetElement && targetElement.scrollTop === 0 && clientY > 0) {\n // element is at the top of its scroll.\n return preventDefault(event);\n }\n\n if (isTargetElementTotallyScrolled(targetElement) && clientY < 0) {\n // element is at the bottom of its scroll.\n return preventDefault(event);\n }\n\n event.stopPropagation();\n return true;\n};\n\nexport var disableBodyScroll = function disableBodyScroll(targetElement, options) {\n // targetElement must be provided\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('disableBodyScroll unsuccessful - targetElement must be provided when calling disableBodyScroll on IOS devices.');\n return;\n }\n\n // disableBodyScroll must not have been called on this targetElement before\n if (locks.some(function (lock) {\n return lock.targetElement === targetElement;\n })) {\n return;\n }\n\n var lock = {\n targetElement: targetElement,\n options: options || {}\n };\n\n locks = [].concat(_toConsumableArray(locks), [lock]);\n\n if (isIosDevice) {\n setPositionFixed();\n } else {\n setOverflowHidden(options);\n }\n\n if (isIosDevice) {\n targetElement.ontouchstart = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n initialClientY = event.targetTouches[0].clientY;\n }\n };\n targetElement.ontouchmove = function (event) {\n if (event.targetTouches.length === 1) {\n // detect single touch.\n handleScroll(event, targetElement);\n }\n };\n\n if (!documentListenerAdded) {\n document.addEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = true;\n }\n }\n};\n\nexport var clearAllBodyScrollLocks = function clearAllBodyScrollLocks() {\n if (isIosDevice) {\n // Clear all locks ontouchstart/ontouchmove handlers, and the references.\n locks.forEach(function (lock) {\n lock.targetElement.ontouchstart = null;\n lock.targetElement.ontouchmove = null;\n });\n\n if (documentListenerAdded) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n\n // Reset initial clientY.\n initialClientY = -1;\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n\n locks = [];\n};\n\nexport var enableBodyScroll = function enableBodyScroll(targetElement) {\n if (!targetElement) {\n // eslint-disable-next-line no-console\n console.error('enableBodyScroll unsuccessful - targetElement must be provided when calling enableBodyScroll on IOS devices.');\n return;\n }\n\n locks = locks.filter(function (lock) {\n return lock.targetElement !== targetElement;\n });\n\n if (isIosDevice) {\n targetElement.ontouchstart = null;\n targetElement.ontouchmove = null;\n\n if (documentListenerAdded && locks.length === 0) {\n document.removeEventListener('touchmove', preventDefault, hasPassiveEvents ? { passive: false } : undefined);\n documentListenerAdded = false;\n }\n }\n\n if (isIosDevice) {\n restorePositionSetting();\n } else {\n restoreOverflowSetting();\n }\n};\n\n","const userManager = {\n getCookieValue(cookieName) {\n const name = cookieName + \"=\"\n const decodedCookie = decodeURIComponent(document.cookie)\n const cookieArray = decodedCookie.split(\";\")\n for (let cookie of cookieArray) {\n const trimmedCookie = cookie.trim()\n if (trimmedCookie.startsWith(name)) {\n return trimmedCookie.substring(name.length)\n }\n }\n return null\n },\n\n hasRole(roleName) {\n const rolesCookie = this.getCookieValue(\"neyeuser\")\n if (rolesCookie) {\n const rolesArray = rolesCookie.split(\",\").map((role) => role.trim())\n return rolesArray.includes(roleName)\n }\n return false\n },\n\n isClubNeyeLoggedIn() {\n return this.hasRole(\"clubmember\")\n },\n\n isAuthenticated() {\n return this.hasRole(\"anonymous\")\n },\n\n isClerk() {\n return this.hasRole(\"clerk\")\n },\n\n isEmployee() {\n return this.hasRole(\"employee\")\n },\n\n canSearchCustomer() {\n return this.hasRole(\"customersearch\")\n },\n\n isClubNeyeAdmin() {\n return this.hasRole(\"shop\")\n },\n\n isPickupInStoreAdmin() {\n return this.hasRole(\"pickup\")\n },\n}\n\nexport default userManager\n","import React, { Component } from \"react\"\nimport OutsideClickTrigger from \"../../../helpers/components/OutsideClickTrigger\"\nimport formatCurrency from \"../../../helpers/currencyHelper\"\nimport { disableBodyScroll, clearAllBodyScrollLocks } from \"body-scroll-lock\"\nimport { isMobile } from \"react-device-detect\"\nimport userManager from \"../../../helpers/userManager\"\nexport default class TypeaheadOverlay extends Component {\n constructor(props) {\n super(props)\n const { filteredData, displayGroupNames, totalCount, config } = this.props.data\n this.state = {\n searchQuery: this.props.query ?? \"\",\n totalCount: totalCount ?? 0,\n filteredData: filteredData ?? {},\n displayGroupNames: displayGroupNames ?? [],\n queryBlocks: config?.queryBlocks ?? {},\n isSearchActive: false,\n searchBar: this.props.searchBar,\n onFinalizedSearch: this.props.onFinalSearch,\n overlayElem: this.props.elem,\n }\n }\n\n getCookieValue(cookieName) {\n const name = cookieName + \"=\"\n const decodedCookie = decodeURIComponent(document.cookie)\n const cookieArray = decodedCookie.split(\";\")\n for (let cookie of cookieArray) {\n const trimmedCookie = cookie.trim()\n if (trimmedCookie.startsWith(name)) {\n return trimmedCookie.substring(name.length)\n }\n }\n return null\n }\n\n closeOverlay() {\n this.setState({ isSearchActive: false })\n }\n\n getSections(data, queryBlocks) {\n return this.state.totalCount > 0 ? (\n
\n \n \n \n
\n ) : (\n \"\"\n )\n }\n\n render() {\n let data = this.state.filteredData\n let queryBlocks = this.state.queryBlocks\n if (this.state.isSearchActive) {\n return (\n
\n this.closeOverlay()}>\n
\n
this.closeOverlay()} className=\"close-typeahead-overlay cross\">
\n
{this.state.searchBar}
\n {this.getSections(data, queryBlocks)}\n
\n
\n
\n )\n } else {\n clearAllBodyScrollLocks()\n return \"\"\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props && this.props.data.filteredData !== undefined) {\n let scrollElem = document.getElementsByClassName(\"typeahead-overlay-content\")[0]\n\n disableBodyScroll(scrollElem)\n const { filteredData, displayGroupNames, totalCount, config } = this.props.data\n this.setState({\n isSearchActive: true,\n filteredData: filteredData,\n displayGroupNames: displayGroupNames,\n totalCount: totalCount,\n queryBlocks: config.queryBlocks,\n searchQuery: this.props.query,\n })\n } else if (prevProps !== this.props) {\n this.setState({ isSearchActive: true, totalCount: 0 })\n let scrollElem = document.getElementsByClassName(\"typeahead-overlay-content\")[0]\n disableBodyScroll(scrollElem)\n }\n }\n}\n\nclass Section extends Component {\n constructor(props) {\n super(props)\n this.state = {\n searchQuery: this.props.searchQuery,\n onFinalizedSearch: this.props.onFinalSearch,\n }\n }\n\n componentDidUpdate(prevProps) {\n if (prevProps !== this.props) {\n this.setState({\n searchQuery: this.props.searchQuery,\n onFinalizedSearch: this.props.onFinalSearch,\n })\n }\n }\n\n getProductPriceDom = (product) => {\n if (product.OnSale) {\n const listPrice = product.splash?.price?.listPrice?.amount || product.Price\n const effectivePrice = product.splash?.price?.effectivePrice?.amount || product.SpecialPrice\n const isClubDiscount = product.splash?.price?.isClubDiscountPriceType\n const clubPrice = product.PotentialClubPrice > 0 ? product.PotentialClubPrice : product.SpecialPrice\n if (effectivePrice < listPrice && !isClubDiscount) {\n return (\n \n
\n {formatCurrency(effectivePrice)} kr\n
\n
\n {formatCurrency(listPrice)} kr\n
\n
\n )\n }\n // show the club price\n const clubPriceTeaser = userManager.isClubNeyeLoggedIn() ? \"\" : \" club-teaser\"\n return (\n \n
\n {formatCurrency(clubPrice)} kr\n
\n
\n {formatCurrency(listPrice)} kr\n
\n
\n )\n } else {\n return
{formatCurrency(product.Price)} kr
\n }\n }\n\n getProductImageDom = (product) => {\n let firstImage\n let secondImage\n\n if (product.Images && product.Images.length > 0) {\n firstImage = product.Images[0]\n secondImage = product.Images[1]\n }\n\n if (!secondImage && firstImage) secondImage = firstImage\n return (\n
\n \n \n\n \n \n\n \n\n \n \n \n \n\n \n \n\n \n\n \n \n
\n )\n }\n\n renderResults = (sectionData, queryBlocks) => {\n let sectionClasses = !isMobile\n ? sectionData.length > 1 && sectionData.every((s) => s.docs !== undefined && s.docs.length > 0)\n ? \"contentsection halfcolumn\"\n : \"contentsection\"\n : \"contentsection\"\n let brandCount, categoriesCount\n const dom = sectionData.map((section) => {\n const docs = section.docs\n var brandSection = sectionData.filter((section) => section.displayGroupName === \"brands\")[0]\n var categoriesSection = sectionData.filter((section) => section.displayGroupName === \"categories\")[0]\n if (docs !== undefined && docs.length > 0) {\n var headerLabel =

{queryBlocks[section.displayGroupName]?.headerLabel}

\n switch (section.displayGroupName) {\n case \"brands\":\n brandCount = (brandSection && brandSection.count) || 0\n categoriesCount = (categoriesSection && categoriesSection.count) || 0\n\n if (!isMobile || (isMobile && brandCount > categoriesCount)) {\n return (\n
\n {headerLabel}\n {docs.map((item) => {\n return (\n \n {item.Title}\n \n )\n })}\n
\n )\n } else {\n return \"\"\n }\n case \"categories\":\n brandCount = (brandSection && brandSection.count) || 0\n categoriesCount = (categoriesSection && categoriesSection.count) || 0\n\n if (!isMobile || (isMobile && categoriesCount >= brandCount)) {\n return (\n
\n {headerLabel}\n {docs.map((item) => {\n let catPath = item.CategoryPath.join(\" > \")\n catPath += ` (${item.ProductCount})`\n return (\n \n {catPath}\n \n )\n })}\n
\n )\n } else {\n return \"\"\n }\n case \"blogpages\":\n return (\n
\n {headerLabel}\n {docs.map((item) => {\n return (\n \n {item.Title}\n \n )\n })}\n
\n )\n case \"products\":\n return (\n
\n {headerLabel}\n
\n {docs.map((item) => {\n const splashHtml = item.splashHtml\n return (\n
\n {splashHtml &&
}\n {this.getProductImageDom(item)}\n
\n
{item.Brand}
\n
{item.Name}
\n {this.getProductPriceDom(item)}\n
\n
\n )\n })}\n
\n
\n this.state.onFinalizedSearch(this.state.searchQuery)}\n id=\"searchShowAllButton\"\n className=\"grey col-lg-4 push-lg-4\"\n >\n Vis alle ({section.count})\n \n
\n
\n )\n default:\n return \"\"\n }\n }\n return \"\"\n })\n return dom\n }\n\n render() {\n const { data, sectionGroups, className, queryBlocks } = this.props\n const sectionData = sectionGroups.map((group) => data[group])\n\n // render no results\n if (sectionData.every((s) => s.docs.length === 0)) {\n return (\n
\n
\n
\n
\n
\n )\n }\n\n return this.renderResults(sectionData, queryBlocks)\n }\n}\n","import axios from \"axios\"\n\naxios.defaults.headers.common[\"Content-Type\"] = \"application/json\"\n//axios.defaults.headers.common['Access-Control-Allow-Origin'] = '*';\n\nconst makeRequestCreator = () => {\n let call\n return (url) => {\n if (call) {\n call.cancel(\"Only one request allowed at a time.\")\n }\n call = axios.CancelToken.source()\n return axios.get(url, {\n cancelToken: call.token,\n })\n }\n}\n\nconst getRequest = makeRequestCreator()\n\nconst get = async (url) => {\n try {\n return await getRequest(url)\n } catch (err) {\n if (axios.isCancel(err)) {\n console.error(`Cancelling previous request: ${err.message}`)\n return err\n }\n }\n}\n\nexport default {\n get: get,\n}\n","import http from \"./httpService\"\nimport * as URL from \"../../../constants/urls\"\n\nconst performSearch = (searchTerm) =>\n new Promise((resolve) => {\n if (!searchTerm || searchTerm === \"*\") {\n searchTerm = \"\"\n }\n const result = http.get(URL.SITE_PREFIX + URL.TYPEAHEAD + searchTerm)\n resolve(result)\n })\n\nconst redirectToSearchpage = (searchTerm) => {\n if (searchTerm === \"*\") {\n searchTerm = \"\"\n }\n const url = URL.SEARCHPAGE + searchTerm + \"/\"\n window.location.href = url\n}\n\nexport default {\n performSearch: performSearch,\n redirectToSearchpage: redirectToSearchpage,\n}\n","export const TYPEAHEAD = \"/api/TypeaheadSearch/TypeaheadSearch?&query=\"\nexport const SEARCHPAGE = \"/search/\"\nexport const SITE_PREFIX = \"\"\n","import React from \"react\"\nimport ReactDOM from \"react-dom\"\nimport SearchBar from \"./component/searchBar\"\nimport OpenOverlayButton from \"./component/openOverlayButton\"\nimport TypeaheadOverlay from \"./component/typeaheadOverlay\"\nimport searchService from \"./services/searchService\"\n\nexport default class TypeaheadModule {\n constructor(elem) {\n this.elem = elem\n this.headerSearchBar = document.querySelector(\".js-typeahead-module-header\")\n this.topmenuSearchBar = document.querySelector(\".js-typeahead-module-topmenu\")\n this.mobileSearchBar = document.querySelector(\".js-typeahead-module-mobile\")\n this.config = elem.dataset\n this.typeaheadConfig = JSON.parse(this.config.typeaheadConfig)\n this.timer = undefined\n this.searchBar = (\n this.handleInput(e)} placeholderText={this.config.placeholderText} />\n )\n this.init()\n return this\n }\n\n createPageData(data) {\n const displayGroupNames = {}\n var count = 0\n if (data) {\n for (var propName in data) {\n displayGroupNames[propName] = data[propName].displayGroupName\n if (data[propName].count === 0) {\n data[propName].docs = {}\n } else {\n count += data[propName].count\n }\n }\n\n return {\n filteredData: data,\n displayGroupNames: displayGroupNames,\n totalCount: count,\n config: this.typeaheadConfig,\n }\n }\n return this.createZeroState()\n }\n\n createZeroState() {\n return {\n filteredData: undefined,\n displayGroupNames: undefined,\n totalCount: 0,\n config: undefined,\n }\n }\n\n handleResults(results, searchTerm) {\n const data = this.createPageData(results)\n ReactDOM.render(, this.elem)\n }\n\n openEmptyOverlay() {\n this.handleResults()\n }\n\n handleInput(e) {\n let searchTerm = e.value\n\n if (this.timer) {\n window.clearTimeout(this.timer)\n }\n\n this.timer = setTimeout(\n () => searchService.performSearch(searchTerm, this.config.queryConfig).then((results) => this.handleResults(results?.data, searchTerm)),\n 1000,\n )\n }\n\n finalizeSearch(searchTerm) {\n searchService.redirectToSearchpage(searchTerm)\n }\n\n handleKeyUp(e) {\n if (e.key === \"Enter\") {\n searchService.redirectToSearchpage(e.currentTarget.value)\n }\n }\n\n init() {\n ReactDOM.unmountComponentAtNode(this.elem)\n ReactDOM.unmountComponentAtNode(this.headerSearchBar)\n ReactDOM.unmountComponentAtNode(this.topmenuSearchBar)\n ReactDOM.unmountComponentAtNode(this.mobileSearchBar)\n ReactDOM.render( this.openEmptyOverlay(e)} placeholderText={this.config.placeholderText} />, this.headerSearchBar)\n ReactDOM.render( this.openEmptyOverlay(e)} type={\"topmenu\"} />, this.topmenuSearchBar)\n ReactDOM.render( this.openEmptyOverlay(e)} type={\"mobile\"} />, this.mobileSearchBar)\n ReactDOM.render(\n this.finalizeSearch(searchTerm)} />,\n this.elem,\n )\n }\n}\n"],"names":["OutsideClickTrigger","_Component","props","_this","_classCallCheck","_callSuper","setWrapperRef","bind","handleClickOutside","_inherits","_createClass","key","value","document","addEventListener","this","removeEventListener","node","wrapperRef","event","contains","target","onOutsideClick","_jsx","className","ref","children","Component","val","showFraction","Intl","NumberFormat","minimumFractionDigits","maximumFractionDigits","format","_props$placeholderTex","_jsxs","React","autoComplete","autoFocus","id","type","placeholder","placeholderText","onFocus","e","currentTarget","onInput","handleInput","onKeyUp","OpenOverlayButton","_this2","onClick","hasPassiveEvents","window","passiveTestOptions","passive","isIosDevice","navigator","platform","test","maxTouchPoints","locks","documentListenerAdded","initialClientY","previousBodyOverflowSetting","previousBodyPosition","previousBodyPaddingRight","allowTouchMove","el","some","lock","options","preventDefault","rawEvent","touches","length","restoreOverflowSetting","undefined","body","style","paddingRight","overflow","restorePositionSetting","y","parseInt","top","x","left","position","scrollTo","disableBodyScroll","targetElement","concat","arr","Array","isArray","i","arr2","from","_toConsumableArray","requestAnimationFrame","_window","scrollY","scrollX","innerHeight","setTimeout","bottomBarHeight","_reserveScrollBarGap","reserveScrollBarGap","scrollBarGap","innerWidth","documentElement","clientWidth","computedBodyPaddingRight","getComputedStyle","getPropertyValue","setOverflowHidden","ontouchstart","targetTouches","clientY","ontouchmove","scrollTop","scrollHeight","clientHeight","isTargetElementTotallyScrolled","stopPropagation","handleScroll","console","error","getCookieValue","cookieName","_step","name","cookieArray","decodeURIComponent","cookie","split","_iterator","_createForOfIteratorHelper","s","n","done","trimmedCookie","trim","startsWith","substring","err","f","hasRole","roleName","rolesCookie","map","role","includes","isClubNeyeLoggedIn","isAuthenticated","isClerk","isEmployee","canSearchCustomer","isClubNeyeAdmin","isPickupInStoreAdmin","TypeaheadOverlay","_this$props$query","_config$queryBlocks","_this$props$data","data","filteredData","displayGroupNames","totalCount","config","state","searchQuery","query","queryBlocks","isSearchActive","searchBar","onFinalizedSearch","onFinalSearch","overlayElem","elem","setState","Section","sectionGroups","sectionName","closeOverlay","getSections","forEach","prevProps","scrollElem","getElementsByClassName","_this$props$data2","_Component2","_this3","getProductPriceDom","product","OnSale","_product$splash","_product$splash$price","_product$splash$price2","_product$splash2","_product$splash2$pric","_product$splash2$pric2","_product$splash3","_product$splash3$pric","listPrice","splash","price","amount","Price","effectivePrice","SpecialPrice","isClubDiscount","isClubDiscountPriceType","clubPrice","PotentialClubPrice","formatCurrency","clubPriceTeaser","userManager","color","getProductImageDom","firstImage","secondImage","Images","media","width","height","sizes","src","alt","Name","title","loading","renderResults","sectionData","brandCount","categoriesCount","sectionClasses","isMobile","every","docs","section","brandSection","filter","displayGroupName","categoriesSection","_queryBlocks$section$","headerLabel","count","item","href","PageUrl","Title","catPath","CategoryPath","join","ProductCount","splashHtml","dangerouslySetInnerHTML","__html","url","Brand","_this$props","group","axios","headers","common","getRequest","call","cancel","source","cancelToken","token","makeRequestCreator","get","_ref","_asyncToGenerator","_regeneratorRuntime","mark","_callee","wrap","_context","prev","next","abrupt","sent","t0","message","stop","_x","apply","arguments","searchTerm","Promise","resolve","http","location","TypeaheadModule","headerSearchBar","querySelector","topmenuSearchBar","mobileSearchBar","dataset","typeaheadConfig","JSON","parse","timer","SearchBar","handleKeyUp","init","propName","createZeroState","results","createPageData","ReactDOM","handleResults","clearTimeout","searchService","queryConfig","then","openEmptyOverlay","finalizeSearch"],"sourceRoot":""}