{"version":3,"sources":["webpack:///./modules/SearchOverlay.ts","webpack:///./modules/FilterSearch.ts","webpack:///./modules/SearchResults.ts"],"names":["__webpack_require__","r","__webpack_exports__","_modules_SearchResults__WEBPACK_IMPORTED_MODULE_0__","SearchOverlay","element","this","addBodyNavSpaceWindows","changeSearchIconOnClick","closeSearchOverlay","_iOSDevice","navigator","platform","match","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","_this","infoBar","querySelector","parentWrapper","closest","searchBtn","searchInputField","searchOverlay","nextElementSibling","addEventListener","event","preventDefault","classList","toggle","setTimeout","focus","contains","trackOpenEvent","add","trackCloseEvent","remove","style","paddingBottom","closeOverlayContent","Eucerin","window","dataLayer","push","eventCategory","eventAction","eventLabel","undefined","eventNonInteraction","_TrackingGA4__WEBPACK_IMPORTED_MODULE_0__","FilterSearch","searchInitialElement","init","countNumberOnScreens","SearchFilterClick","closeOnXBtn","isMobile","toggleSearchMobileFilter","isTablet","e","target","currentTarget","searchAjax","getAttribute","inputEl","inputVal","value","filterQuery","replace","countNumber","fetchAndUpdate","innerText","openButtonFilterText","isDesktop","filterBtn","xBtn","layerShadow","url","filterElementText","fetch","credentials","then","res","text","updateFilterSearchContent","data","innerHTML","dispatchEvent","CustomEvent","RegExp","initModules","trackFilterItems","Object","index","filterItem","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_0__","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_1__","_modules_FilterSearch__WEBPACK_IMPORTED_MODULE_2__","SearchResults","filterSearch","searchLayerInit","initAutoSuggestion","resultsField","noResultsField","debouncedOnTyping","onSearch","searchInitialState","currentSearchBtn","inputHasNoValue","isPopularSearch","scrollTop","clearTimeout","getSearchContent","timeout","autoSuggEl","suggElement","isSuggestionSearch","suggestText","ajaxRespond","replaceSearchContent","isNoSearchResults","isSearchResults","fetchLoadMore","trackSubmitEvent","trackPopularSearches","trackSuggestion","loadMoreOnScroll","debounceLoadChank","removeEventListener","offsetHeight","scrollHeight","loadMoreAjaxElement","loadMoreAjax","appendLoadMoreContent","insertAdjacentHTML","matchSuggestionValue","searchValue","event_name","search_term","_clear","suggValue","popularItem"],"mappings":"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","file":"./modules/SearchOverlay.3ddaadcb.js","sourcesContent":["const moduleSelector = '[data-module=\"SearchOverlay\"]';\r\nimport SearchResults from '../modules/SearchResults';\r\n\r\n\r\nexport default class SearchOverlay {\r\n searchIcon: HTMLElement;\r\n searchInputField: HTMLInputElement;\r\n searchOverlayClose: HTMLElement;\r\n infoBar: HTMLElement;\r\n parentWrapper;\r\n searchBtn: HTMLElement;\r\n searchOverlay: HTMLElement;\r\n closeOverlayContent: HTMLElement;\r\n _iOSDevice;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new SearchOverlay(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.addBodyNavSpaceWindows();\r\n this.changeSearchIconOnClick();\r\n this.closeSearchOverlay();\r\n\r\n new SearchResults(this.element);\r\n this._iOSDevice = !!navigator.platform.match(/iPhone|iPod|iPad/);\r\n }\r\n\r\n public changeSearchIconOnClick() {\r\n this.infoBar = document.querySelector(\".header-info-bar\");\r\n this.parentWrapper = this.element.closest('.search-wrapper');\r\n this.searchBtn = this.parentWrapper.querySelector(\".search.search-btn\");\r\n this.searchInputField = this.searchBtn.closest(\".search-wrapper\").querySelector(\".uk-search-input\") as HTMLInputElement;\r\n this.searchOverlay = this.searchBtn.nextElementSibling as HTMLElement;\r\n\r\n this.searchBtn.addEventListener(\"click\", (event) => {\r\n event.preventDefault();\r\n this.searchBtn.classList.toggle(\"visible\");\r\n document.querySelector(\"body\").classList.toggle(\"overflow-hidden\");\r\n document.querySelector(\"body\").classList.toggle(\"search-overlay-active\")\r\n\r\n setTimeout(() => {\r\n this.searchInputField.focus();\r\n }, 500)\r\n\r\n setTimeout(() => {\r\n if (this.searchBtn.classList.contains(\"visible\")) {\r\n this.trackOpenEvent()\r\n document.querySelector(\"body\").classList.add(\"overflow-hidden\");\r\n document.querySelector(\"body\").classList.add(\"search-overlay-active\");\r\n } else {\r\n this.trackCloseEvent();\r\n document.querySelector(\"body\").classList.remove(\"overflow-hidden\");\r\n document.querySelector(\"body\").classList.remove(\"search-overlay-active\")\r\n }\r\n }, 100)\r\n\r\n if (this._iOSDevice && !(this.infoBar)) {\r\n this.searchOverlay.style.paddingBottom = \"130px\"\r\n } else if (this._iOSDevice && (this.infoBar)) {\r\n this.searchOverlay.style.paddingBottom = \"180px\"\r\n }\r\n })\r\n }\r\n\r\n private closeSearchOverlay() {\r\n this.parentWrapper = this.element.closest('.search-wrapper');\r\n this.closeOverlayContent = this.parentWrapper.querySelector(\".close-overlay\");\r\n this.searchBtn = this.parentWrapper.querySelector(\".search.search-btn\");\r\n\r\n this.closeOverlayContent.addEventListener(\"click\", () => {\r\n this.searchBtn.classList.remove(\"visible\");\r\n this.trackCloseEvent();\r\n if (document.querySelector(\"body\").classList.contains('overflow-hidden')) {\r\n document.querySelector(\"body\").classList.remove(\"overflow-hidden\");\r\n }\r\n\r\n if (document.querySelector(\"body\").classList.contains('search-overlay-active')) {\r\n document.querySelector(\"body\").classList.remove(\"search-overlay-active\");\r\n }\r\n\r\n if (document.querySelector(\"body\").classList.contains('search-modal')) {\r\n document.querySelector(\"body\").classList.remove(\"search-modal\");\r\n }\r\n })\r\n }\r\n\r\n private addBodyNavSpaceWindows() {\r\n !(Eucerin.isMac)\r\n ? document.querySelector(\"body\").classList.add(\"no-mac\")\r\n : document.querySelector(\"body\").classList.add(\"mac\");\r\n }\r\n\r\n private trackOpenEvent() {\r\n window.dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Search',\r\n eventAction: 'Open',\r\n eventLabel: undefined,\r\n eventNonInteraction: false\r\n });\r\n }\r\n\r\n private trackCloseEvent() {\r\n window.dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Search',\r\n eventAction: 'Close',\r\n eventLabel: undefined,\r\n eventNonInteraction: false\r\n });\r\n }\r\n}\r\n\r\nnew SearchOverlay.setup();","import { trackFilterGA4 } from '../TrackingGA4';\r\n\r\nconst moduleSelector = '[data-module=\"FilterSearch\"]';\r\n\r\nexport default class FilterSearch {\r\n countNumber: string;\r\n searchInitialElement: HTMLElement;\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new FilterSearch(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.searchInitialElement = this.element.querySelector(\".search-initial-state\");\r\n this.init();\r\n }\r\n\r\n public init() {\r\n this.countNumberOnScreens();\r\n this.SearchFilterClick();\r\n this.closeOnXBtn();\r\n Eucerin.isMobile ? this.toggleSearchMobileFilter() : \"\" || Eucerin.isTablet ? this.toggleSearchMobileFilter() : \"\";\r\n }\r\n\r\n private SearchFilterClick() {\r\n const filterListEl = document.querySelectorAll(\".filter-search-results li:not(.desktop-hidden)\");\r\n\r\n filterListEl.forEach((element: HTMLElement) => {\r\n element.addEventListener(\"click\", (e) => {\r\n this.searchInitialElement.classList.add(\"loader\");\r\n const target = e.currentTarget as any,\r\n searchAjax = target.closest(\".overlay-content\").getAttribute(\"data-search-ajax-url\"),\r\n inputEl = target.closest(\".overlay-content\").querySelector(\".uk-search-input\") as HTMLInputElement,\r\n inputVal = inputEl.value,\r\n ajaxRespond = searchAjax.replace(\"{query}\", inputVal).replace(\"{count}\", this.countNumber),\r\n filterQuery = ajaxRespond + target.getAttribute(\"data-option-id\");\r\n this.fetchAndUpdate(filterQuery, inputEl, element.innerText, element);\r\n })\r\n })\r\n Eucerin.isMobile ? this.openButtonFilterText() : \"\";\r\n }\r\n \r\n private countNumberOnScreens() {\r\n if (Eucerin.isDesktop) {\r\n this.countNumber = \"10\";\r\n } else if (Eucerin.isTablet) {\r\n this.countNumber = \"12\";\r\n } else if (Eucerin.isMobile) {\r\n this.countNumber = \"8\";\r\n }\r\n }\r\n \r\n public toggleSearchMobileFilter() {\r\n const filterBtn = this.element.querySelector(\".filter-search-results .hdl-3\") as HTMLElement;\r\n filterBtn && filterBtn.addEventListener(\"click\", () => {\r\n this.element.querySelector(\".search-initial-state .filter-search-results\").classList.toggle(\"visible\");\r\n })\r\n }\r\n\r\n public closeOnXBtn() {\r\n const xBtn = this.element.querySelector(\".desktop-hidden .close-filter-mobile-btn\");\r\n const layerShadow = this.element.querySelector(\".layer-shadow\");\r\n \r\n xBtn && xBtn.addEventListener(\"click\", () => {\r\n this.element.querySelector(\".search-initial-state .filter-search-results\").classList.remove(\"visible\");\r\n })\r\n \r\n layerShadow && layerShadow.addEventListener(\"click\", () => {\r\n this.element.querySelector(\".search-initial-state .filter-search-results\").classList.remove(\"visible\");\r\n })\r\n }\r\n \r\n private fetchAndUpdate(url, inputEl, filterElementText, element) {\r\n fetch(url, { credentials: \"include\" })\r\n .then((res) => res.text())\r\n .then((res) => this.updateFilterSearchContent(res, inputEl, filterElementText, element))\r\n }\r\n \r\n private updateFilterSearchContent(data, inputEl, filterElementText, element) {\r\n this.element.querySelector(\".results-field\").innerHTML = data;\r\n this.searchInitialElement.classList.remove(\"loader\");\r\n this.SearchFilterClick();\r\n document.dispatchEvent(new CustomEvent(\"FaceLiftLoadMore\"));\r\n this.toggleSearchMobileFilter();\r\n var text = document.querySelectorAll('.autosuggestion-list li');\r\n text.forEach((e: HTMLElement) => {\r\n e.innerText == inputEl.value\r\n ? e.remove()\r\n : e.innerHTML = e.innerHTML.replace(new RegExp(inputEl.value, \"i\"), \"$&\");\r\n })\r\n document.dispatchEvent(new CustomEvent(\"FaceLiftOnFilter\"));\r\n window.Eucerin.initModules();\r\n this.trackFilterItems(filterElementText);\r\n trackFilterGA4(element, 'search')\r\n }\r\n\r\n private openButtonFilterText() {\r\n const filterBtn = this.element.querySelector(\".filter-search-results .hdl-3 p\") as HTMLElement;\r\n \r\n Array.from(document.querySelectorAll(\".filter-option\")).forEach((element, index) => {\r\n if (element.classList.contains('selected') && index != 0) {\r\n filterBtn.innerText = element.innerHTML;\r\n }\r\n });\r\n }\r\n \r\n private trackFilterItems(filterItem) {\r\n window.dataLayer.push({\r\n event: 'ga_event',\r\n eventCategory: 'Search',\r\n eventAction: 'Filter',\r\n eventLabel: filterItem,\r\n eventNonInteraction: false\r\n });\r\n }\r\n }\r\n \r\n new FilterSearch.setup();","const moduleSelector = '[data-module=\"SearchResults\"]';\r\nimport { createElementFromString } from '../helpers/DOMHelpers';\r\nimport { debounce } from '../helpers/helperFunctions';\r\nimport FilterSearch from '../modules/FilterSearch';\r\n\r\nclass SearchResults {\r\n searchInputField: HTMLInputElement;\r\n searchInitialState: HTMLElement;\r\n resultsField: HTMLElement;\r\n noResultsField: HTMLElement;\r\n searchCountNumber: HTMLElement;\r\n parenthesesField: HTMLElement;\r\n currentSearchBtn: HTMLElement;\r\n parentWrapper;\r\n searchBtn: HTMLElement;\r\n autoSuggEl;\r\n countNumber: string;\r\n filterSearch: FilterSearch;\r\n isPopularSearch: boolean;\r\n isSuggestionSearch: boolean;\r\n\r\n static setup(selector: string = moduleSelector): void {\r\n Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n new SearchResults(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n if (Eucerin.isDesktop) {\r\n this.countNumber = \"10\";\r\n } else if (Eucerin.isTablet) {\r\n this.countNumber = \"12\";\r\n } else if (Eucerin.isMobile) {\r\n this.countNumber = \"8\";\r\n }\r\n this.filterSearch = new FilterSearch(this.element);\r\n this.searchLayerInit();\r\n let timeout = null;\r\n document.addEventListener('FaceLiftOnFilter', () => this.initAutoSuggestion(this.searchBtn, this.searchInputField, timeout))\r\n\r\n }\r\n\r\n private searchLayerInit() {\r\n this.parentWrapper = this.element.closest('.search-wrapper');\r\n this.searchBtn = this.parentWrapper.querySelector(\".search.search-btn\");\r\n this.searchInputField = this.searchBtn.closest(\".search-wrapper\").querySelector(\".uk-search-input\");\r\n this.resultsField = this.element.querySelector(\".results-field\");\r\n this.noResultsField = this.element.querySelector(\".no-results-field\");\r\n const debouncedOnTyping = debounce(() => this.onSearch(this.searchBtn, this.searchInputField), 600);\r\n this.searchInitialState = this.element.querySelector('.search-initial-state');\r\n\r\n this.currentSearchBtn = this.element.closest('.search-wrapper').querySelector(\".search-btn\");\r\n this.searchInputField.addEventListener('keyup', () => {\r\n this.searchInitialState.classList.add('loader');\r\n (!(this.searchInputField.value === \"\")) ? debouncedOnTyping() : this.inputHasNoValue();\r\n });\r\n\r\n this.searchInputField.addEventListener(\"popular-search-init\", (event: CustomEvent) => {\r\n this.isPopularSearch = true;\r\n this.onSearch(this.searchBtn, this.searchInputField);\r\n })\r\n this.element.addEventListener(\"scroll\", () => {\r\n if (this.element.scrollTop == 0) {\r\n this.currentSearchBtn.classList.add(\"to-top\")\r\n this.currentSearchBtn.classList.remove(\"not-to-top\")\r\n } else {\r\n this.currentSearchBtn.classList.remove(\"to-top\");\r\n this.currentSearchBtn.classList.add(\"not-to-top\");\r\n }\r\n })\r\n }\r\n\r\n private onSearch(element, target) {\r\n let timeout = null;\r\n clearTimeout(timeout);\r\n setTimeout(() => {\r\n this.searchInitialState.classList.add('loader');\r\n }, 500);\r\n this.getSearchContent(element, target, timeout);\r\n }\r\n private initAutoSuggestion(searchBtn, target, timeout) {\r\n this.autoSuggEl = this.element.querySelectorAll(\".autosuggestion-list li\");\r\n this.autoSuggEl.forEach((suggElement: HTMLElement) => {\r\n suggElement.addEventListener(\"click\", (e) => {\r\n this.isSuggestionSearch = true;\r\n this.searchInitialState.classList.add('loader');\r\n const suggestText = suggElement.innerText;\r\n this.searchInputField.value = suggestText;\r\n this.getSearchContent(searchBtn, target, timeout);\r\n suggElement.remove();\r\n })\r\n })\r\n }\r\n private getSearchContent(element, target, timeout) {\r\n timeout = setTimeout(() => {\r\n let searchAjax = element.nextElementSibling.getAttribute(\"data-search-ajax-url\");\r\n let ajaxRespond = searchAjax.replace(\"{query}\", target.value).replace(\"{count}\", this.countNumber);\r\n fetch(ajaxRespond, { credentials: \"include\" })\r\n .then((res) => res.text())\r\n .then((res) => !(target.value === \"\") ? this.replaceSearchContent(res, target) : this.inputHasNoValue())\r\n }, 500);\r\n }\r\n\r\n private replaceSearchContent(res, target) {\r\n let searchMarkup = createElementFromString(res)\r\n if (!(searchMarkup.classList.contains(\"no-search-results\"))) {\r\n this.isSearchResults(res, target)\r\n this.fetchLoadMore(target);\r\n } else {\r\n this.isNoSearchResults(res)\r\n }\r\n this.filterSearch.init();\r\n this.trackSubmitEvent(target.value);\r\n if(this.isPopularSearch){\r\n this.trackPopularSearches(target.value);\r\n this.isPopularSearch = false;\r\n }\r\n \r\n if(this.isSuggestionSearch){\r\n this.trackSuggestion(target.value);\r\n this.isSuggestionSearch = false;\r\n }\r\n }\r\n\r\n private fetchLoadMore(target) {\r\n if (document.querySelector(\".search-load-more-ajax\")) {\r\n this.loadMoreOnScroll(target)\r\n }\r\n }\r\n\r\n private loadMoreOnScroll(target) {\r\n const debounceLoadChank = debounce(() => {\r\n document.dispatchEvent(new CustomEvent(\"FaceLiftLoadMore\"));\r\n if (document.querySelector(\".end-results\")) {\r\n this.element.removeEventListener('scroll', debounceLoadChank);\r\n return;\r\n }\r\n if ((this.element.offsetHeight + this.element.scrollTop + 80 >= this.element.scrollHeight) && document.querySelector(\".search-load-more-ajax\")) {\r\n\r\n const loadMoreAjaxElement = this.element.querySelector(\".search-load-more-ajax\").getAttribute(\"data-next-search-results-ajax-url\");\r\n this.element.querySelector(\".search-results\").classList.add('loader');\r\n this.element.querySelector(\".search-load-more-ajax\").remove();\r\n\r\n let loadMoreAjax = loadMoreAjaxElement.replace(\"{query}\", target.value)\r\n\r\n fetch(loadMoreAjax, { credentials: \"include\" })\r\n .then((res) => res.text())\r\n .then((res) => {\r\n this.appendLoadMoreContent(createElementFromString(`