{"version":3,"file":"./modules/Filter.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/Filter.ts","webpack:///./modules/FilterActiveSection.ts","webpack:///./modules/LayerAdvance.ts","webpack:///../../../node_modules/rxjs/_esm5/internal/operators/takeWhile.js","webpack:///./modules/LayerPage.ts","webpack:///./modules/NivTFilter.ts"],"sourcesContent":["import FilterExpandElement from './FilterExpandElement';\r\nimport FilterActiveSection from './FilterActiveSection';\r\nimport LayerPage from './LayerPage';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { createElementFromString } from '../helpers/DOMHelpers';\r\nimport { getOptions, compareTimeStamp } from '../helpers/helperFunctions';\r\nimport NivTFilter from './NivTFilter';\r\n\r\nconst moduleSelector = '[data-module=\"Filter\"]';\r\n\r\nexport default class Filter {\r\n private layer: LayerPage;\r\n private filterBtn: HTMLElement;\r\n private filterTmplNode: HTMLElement;\r\n private activeFilterSection: FilterActiveSection;\r\n private filterItems: FilterExpandElement[];\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 Filter(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement, private options: Optional = {}) {\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n this.filterBtn = this.element.querySelector(this.options.filterBtnSelector);\r\n this.filterTmplNode = this.element.querySelector(this.options.filterTmplSelector);\r\n this.layer = this.getFilterLayer();\r\n }\r\n\r\n async init(): Promise {\r\n if (this.element.querySelector('.nx-filter-navigation'))\r\n await this.loadAndInitFilterNavigation();\r\n\r\n this.hiddenLayerBeforeOpen()\r\n .open(() => {\r\n this.addHandlerOnFilterBtnClick()\r\n .initFilterItems(this.layer.getLayerNode())\r\n .initActiveFilterSection(this.layer.getLayerNode())\r\n .addHandlerOnFilterChange()\r\n .addHandlerOnApplyBtnClick()\r\n .addHandlerOnFilterLayerClick()\r\n .visibleLayerAfterInit();\r\n });\r\n\r\n return this;\r\n }\r\n\r\n // Start: FilterLayer\r\n private getFilterLayer(): LayerPage {\r\n const layer = new LayerPage(\r\n this.element,\r\n {\r\n beforeClose: async () => this.resetFilterActionState().synchronize(),\r\n }\r\n );\r\n layer.insertContent(createElementFromString(this.filterTmplNode.innerHTML));\r\n\r\n return layer;\r\n }\r\n\r\n private openFilterLayer(): Filter {\r\n this.layer.open();\r\n return this;\r\n }\r\n\r\n private closeFilterLayer(): Filter {\r\n this.layer.close();\r\n return this;\r\n }\r\n\r\n private hiddenLayerBeforeOpen(): LayerPage {\r\n this.layer.getLayerNode().style.opacity = '0';\r\n return this.layer;\r\n }\r\n\r\n private visibleLayerAfterInit(): void {\r\n this.closeFilterLayer();\r\n this.layer.getLayerNode().style.opacity = null;\r\n }\r\n\r\n // Start: FilterExpandElement usage\r\n private initFilterItems(element: HTMLElement): Filter {\r\n this.filterItems = Array.from(element.querySelectorAll(this.options.filterItemSelector))\r\n .map((item: HTMLElement) => new FilterExpandElement(item));\r\n\r\n return this;\r\n }\r\n\r\n private getAllActiveFilterItems(): FilterCheckBox[] {\r\n return this.filterItems\r\n .reduce((acc, fItm) => acc = acc.concat(fItm.getCheckedFilters()), [])\r\n .sort(compareTimeStamp);\r\n }\r\n // End: FilterExpandElement usage\r\n\r\n // Start: FilterActiveSection usage\r\n private initActiveFilterSection(element: HTMLElement): Filter {\r\n this.activeFilterSection = new FilterActiveSection(element.querySelector('.nx-active-filters'), \r\n { updateCB: () => this.synchronize(),\r\n updateCB1: () => this.synchronizeWithoutVisibilityChange(),\r\n applyCB: () => this.reloadFilterAction()\r\n });\r\n return this;\r\n }\r\n\r\n private refreshActiveFilters(): Filter {\r\n this.activeFilterSection.refreshActiveFilters(this.getAllActiveFilterItems());\r\n document.dispatchEvent(new CustomEvent('FilterExpandable:reset'));\r\n return this;\r\n }\r\n\r\n private updateAllFilterItems(): Filter {\r\n this.filterItems.forEach(fItm => fItm.refreshFilters());\r\n return this;\r\n }\r\n // End: FilterActiveSection usage\r\n\r\n // Start: Event handlers\r\n private initFilterNavigation(FilterNavigation): Filter {\r\n const filterNavigationNode = this.element.querySelector(this.options.filterNavigationSelector);\r\n\r\n if (filterNavigationNode) {\r\n new FilterNavigation(this.element.querySelector(this.options.filterNavigationSelector), {\r\n updateCB: () => {\r\n this.reloadFilterAction().updateFilterAction();\r\n },\r\n updateCB1: () => {\r\n this.reloadFilterAction()\r\n }\r\n });\r\n }\r\n\r\n return this;\r\n }\r\n\r\n private async loadAndInitFilterNavigation(): Promise {\r\n await import(/* webpackChunkName: \"[request]\" */'./FilterNavigation')\r\n .then(({ default: FilterNavigation }) => this.initFilterNavigation(FilterNavigation));\r\n }\r\n\r\n // Start: Event handlers\r\n private onFilterChange(): void {\r\n const input = event.target;\r\n\r\n if (input.closest(this.options.checkboxSelector)) {\r\n \r\n this.updateFilterAction()\r\n .refreshActiveFilters();\r\n }\r\n }\r\n\r\n private addHandlerOnFilterChange(): Filter {\r\n this.layer.getLayerNode().addEventListener('change', () => this.onFilterChange());\r\n return this;\r\n }\r\n\r\n private addHandlerOnApplyBtnClick(): Filter {\r\n this.layer.getLayerNode().querySelector(this.options.applyBtnSelector).addEventListener('click', () => {\r\n this.reloadFilterAction().closeFilterLayer();\r\n new NivTFilter(this.activeFilterSection.activeFilterItemsArr);\r\n });\r\n return this;\r\n }\r\n\r\n private addHandlerOnFilterBtnClick(): Filter {\r\n this.filterBtn.addEventListener('click', () => {\r\n this.openFilterLayer()\r\n .saveFilterActionState();\r\n });\r\n return this;\r\n }\r\n\r\n private onLayerClick(event: Event): void {\r\n const target = event.target,\r\n currentFilterItem = target.closest(this.options.filterItemSelector + '--active') || target;\r\n\r\n this.filterItems.forEach(fItm => fItm.element !== currentFilterItem && fItm.closeExpander());\r\n }\r\n\r\n private addHandlerOnFilterLayerClick(): Filter {\r\n this.layer.getLayerNode().addEventListener('click', this.onLayerClick.bind(this));\r\n\r\n return this;\r\n }\r\n // End: Event Handlers\r\n\r\n // Start: FilterAction callbacks\r\n private updateFilterAction(): Filter {\r\n this.options.callbacks.update();\r\n return this;\r\n }\r\n\r\n updateFilterActionV2(): Filter {\r\n this.options.callbacks.updateV2();\r\n return this;\r\n }\r\n\r\n private reloadFilterAction(): Filter {\r\n this.options.callbacks.reload();\r\n return this;\r\n }\r\n\r\n private saveFilterActionState(): Filter {\r\n this.options.callbacks.saveState();\r\n return this;\r\n }\r\n\r\n private resetFilterActionState(): Filter {\r\n this.options.callbacks.resetState();\r\n return this;\r\n }\r\n\r\n // End: FilterAction callbacks\r\n\r\n private synchronize(): Filter {\r\n this.updateAllFilterItems()\r\n .refreshActiveFilters()\r\n .updateFilterAction();\r\n\r\n return this;\r\n }\r\n\r\n private synchronizeWithoutVisibilityChange(): Filter {\r\n this.updateAllFilterItems()\r\n .refreshActiveFilters();\r\n\r\n return this;\r\n }\r\n\r\n getFilterLayerNode(): HTMLElement {\r\n return this.layer.getLayerNode();\r\n }\r\n\r\n private getDefaultOptions(): Optional {\r\n return {\r\n filterBtnSelector: '.nx-filter-button__wrapper',\r\n filterTmplSelector: '.nx-filter__tmpl',\r\n checkboxSelector: '.nx-cat-item__tag-value',\r\n filterItemSelector: '.nx-tag-filter__item',\r\n applyBtnSelector: '.nx-sort-filters__apply-btn',\r\n filterNavigationSelector: '.nx-filter-navigation',\r\n callbacks: {\r\n updateV2: () => { },\r\n update: () => { },\r\n reload: () => { },\r\n saveState: () => { },\r\n resetState: () => { }\r\n }\r\n };\r\n }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n Filter.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n Filter.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n Filter.setup(moduleSelector);\r\n}","import {\r\n createElementFromString,\r\n addElementsFromArray,\r\n addToElement,\r\n hasClass\r\n} from '../helpers/DOMHelpers';\r\nimport { getOptions, getCateforyName, toggleSelection } from '../helpers/helperFunctions';\r\n\r\nexport default class ActiveFilterSection {\r\n private list: HTMLElement[];\r\n private deleteAllBtns: HTMLElement[];\r\n public activeFilterItemsArr: ActiveFilterListItem[];\r\n private activeTagsFiltersWrapper: HTMLElement;\r\n\r\n constructor(private element: HTMLElement, private options: ActiveFilterSectionOptions = {}) {\r\n this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n this.list = this.getNodesFromLayerAndDOM(this.options.actFlListSelector);\r\n this.deleteAllBtns = this.getNodesFromLayerAndDOM(this.options.actFlDeleteAllBtnSelector);\r\n this.activeTagsFiltersWrapper = this.getNodesFromLayerAndDOM(this.options.outerSelector)[0];\r\n this.init();\r\n\r\n }\r\n\r\n private init(): ActiveFilterSection {\r\n this.addClickHandler()\r\n .addHandlerOndeleteAllBtn();\r\n\r\n return this;\r\n }\r\n\r\n private getNodesFromLayerAndDOM(selector: string): HTMLElement[] {\r\n const listArr = Array.from(>document.querySelectorAll(selector))\r\n .concat(Array.from(>this.element.querySelectorAll(selector)));\r\n\r\n return [...new Set(listArr)];\r\n }\r\n\r\n private getActiveFilterListItem(input: FilterCheckBox, idx): ActiveFilterListItem {\r\n const activeFilterListItem = createElementFromString(`\r\n
  • = this.options.displayMaxActiveFilters) ? 'data-hidden' : ''} data-parent-name=\"${input.dataset.parentName}\">\r\n ${getCateforyName(this.options.actFlItemNameSelector, input)}\r\n \r\n
  • `\r\n );\r\n activeFilterListItem.inputElement = input;\r\n return activeFilterListItem;\r\n }\r\n\r\n private getSelectedFilterItems(inputs: FilterCheckBox[]): ActiveFilterListItem[] {\r\n return inputs.map((inp, idx) => this.getActiveFilterListItem(inp, idx));\r\n }\r\n\r\n private addClickHandler(): ActiveFilterSection {\r\n this.list.forEach(l => l.addEventListener('click', this.onActiveFilterListItemClick.bind(this)));\r\n return this;\r\n }\r\n\r\n private onActiveFilterListItemClick(event: Event): void {\r\n const target = event.target,\r\n isRemoveButton = hasClass(target, 'nx-act-filter__remove-btn'),\r\n listItem = isRemoveButton ? target.parentElement : null,\r\n isOutOfLayer = listItem && !!listItem.closest(this.options.outerSelector);\r\n\r\n if (listItem) {\r\n const filterNavigation = document.querySelector('.nx-filter-navigation'),\r\n currentActiveHc = filterNavigation?.querySelector('.nx-filter-navigation__level.nx-filter-navigation__level--active .nx-active') as HTMLElement,\r\n isLastLevelItem = currentActiveHc && currentActiveHc.dataset.id == \"\";\r\n\r\n this.removeActiveFilters(listItem, isLastLevelItem)\r\n .applyOnOuterSection(isOutOfLayer)\r\n }\r\n }\r\n\r\n private removeActiveFilters(actFilterItem: ActiveFilterListItem, isLastLevelItem: boolean): ActiveFilterSection {\r\n toggleSelection(actFilterItem.inputElement, false);\r\n isLastLevelItem ? this.options.updateCB1() : this.options.updateCB();\r\n\r\n return this;\r\n }\r\n\r\n private applyOnOuterSection(isOuterSction: boolean): ActiveFilterSection {\r\n if (isOuterSction) {\r\n this.options.applyCB();\r\n }\r\n return this;\r\n }\r\n\r\n private addHandlerOndeleteAllBtn(): ActiveFilterSection {\r\n this.deleteAllBtns.forEach(b => {\r\n b.addEventListener('click', this.removeAllActiveFilters.bind(this));\r\n });\r\n return this;\r\n }\r\n\r\n private removeAllActiveFilters(event: Event): ActiveFilterSection {\r\n event.preventDefault();\r\n\r\n this.activeFilterItemsArr.forEach(actFItm => toggleSelection(actFItm.inputElement, false));\r\n\r\n this.options.updateCB();\r\n this.options.applyCB();\r\n this.refreshActiveFilters([])\r\n\r\n return this;\r\n }\r\n\r\n private getDefaultOptions(): ActiveFilterSectionOptions {\r\n return {\r\n outerSelector: '.nx-sort-filters__active-filters',\r\n actFlListSelector: '.nx-active-filters__list',\r\n actFlDeleteAllBtnSelector: '.nx-active-filters__delete-all',\r\n actFlItemSelector: '.nx-act-filter',\r\n actFlItemNameSelector: '.nx-cat-item__name',\r\n updateCB: () => { },\r\n updateCB1: () => { },\r\n applyCB: () => { }\r\n };\r\n }\r\n\r\n refreshActiveFilters(inputs: FilterCheckBox[]): ActiveFilterSection {\r\n this.activeFilterItemsArr = this.getSelectedFilterItems(inputs);\r\n const filterListTags = document.querySelector('.nx-active-filters__list') as HTMLElement;\r\n\r\n\r\n this.list.forEach(l => {\r\n const parent = l.parentElement;\r\n l.innerHTML = '';\r\n\r\n addElementsFromArray(l, this.getSelectedFilterItems(inputs));\r\n addToElement(parent, l);\r\n });\r\n\r\n inputs[0] && inputs[0].dispatchEvent(new CustomEvent('change'));\r\n\r\n if (this.activeFilterItemsArr.length > 0) {\r\n this.deleteAllBtns.forEach(b => {\r\n b.style.display = 'inline';\r\n });\r\n\r\n this.activeTagsFiltersWrapper.style.marginBottom = '32px'\r\n } else {\r\n this.deleteAllBtns.forEach(b => {\r\n b.style.display = 'none';\r\n });\r\n\r\n this.activeTagsFiltersWrapper.style.marginBottom = '';\r\n }\r\n\r\n if (this.activeFilterItemsArr.length >= 2) {\r\n let showAllBtn = createElementFromString(`...`);\r\n\r\n showAllBtn.addEventListener('click', () => this.showAllActiveFilters());\r\n addToElement(filterListTags, showAllBtn);\r\n }\r\n\r\n return this;\r\n }\r\n\r\n showAllActiveFilters() {\r\n let activeFilters = Array.from(>document.querySelectorAll(`${this.options.outerSelector} ${this.options.actFlItemSelector}`));\r\n activeFilters.forEach(el => el.removeAttribute('data-hidden'));\r\n }\r\n\r\n setUpdateCallback(cb: Callback): ActiveFilterSection {\r\n this.options.updateCB = cb;\r\n return this;\r\n }\r\n}","import LayerBasic, { BasicLayerOptions } from './LayerBasic';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport {\r\n getOptions,\r\n requestAnimationFrameTimer,\r\n requestNextAnimationFrame,\r\n IOSScroll,\r\n} from '../helpers/helperFunctions';\r\nimport {\r\n addClass,\r\n addClasses,\r\n removeClasses,\r\n} from '../helpers/DOMHelpers';\r\n\r\nconst spinnerClasses = ['nx-u-spinner', 'nx-u-spinner--medium'];\r\n\r\nexport interface LayerAdvanceOptions extends BasicLayerOptions {\r\n beforeOpen: AsyncCallback;\r\n afterOpen: AsyncCallback;\r\n beforeClose: AsyncCallback;\r\n afterClose: AsyncCallback;\r\n}\r\n\r\nexport default class LayerAdvance extends LayerBasic {\r\n protected options: LayerAdvanceOptions;\r\n\r\n constructor(element: HTMLElement, options: Optional = {}) {\r\n super(element, options);\r\n\r\n this.options = getOptions(this.element, this.options);\r\n\r\n this.init();\r\n }\r\n\r\n protected getDefaultOptions(): Optional {\r\n const defOptions = super.getDefaultOptions();\r\n\r\n return {\r\n ...defOptions,\r\n layerModifierClasses: `${defOptions.layerMainClass}--page`,\r\n layerCloseBtnModifierClass: `${defOptions.layerMainClass}__close-btn--page`,\r\n layerCloseIconClass: `${defOptions.layerCloseIconClass} nx-close-icon--thin`,\r\n beforeOpen: async () => { await window.NiveaX.initModules(); },\r\n afterOpen: async () => { },\r\n beforeClose: async () => { },\r\n afterClose: async () => { },\r\n };\r\n }\r\n\r\n protected get isOpen(): boolean {\r\n return document.body.contains(this.layer);\r\n }\r\n\r\n showSpinner(): LayerAdvance {\r\n addClasses(this.layer.querySelector('.nx-layer__wrapper'), ...spinnerClasses);\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n super.open();\r\n\r\n return this;\r\n }\r\n\r\n\r\n async open(callback: Callback = () => { }): Promise {\r\n const {\r\n layerMainClass,\r\n beforeOpen,\r\n afterOpen,\r\n } = this.options;\r\n\r\n await beforeOpen();\r\n\r\n this.backButton();\r\n\r\n if (!this.isOpen) IOSScroll.prevent(true);\r\n\r\n removeClasses(this.layer.querySelector('.nx-layer__wrapper'), ...spinnerClasses);\r\n\r\n super.open();\r\n\r\n requestNextAnimationFrame(() => this.layer.classList.add(`${layerMainClass}--open`));\r\n\r\n window.NiveaX.loadShopPrices();\r\n\r\n await afterOpen();\r\n\r\n callback();\r\n }\r\n\r\n async close(callback: Callback = () => { }): Promise {\r\n const {\r\n layerMainClass,\r\n beforeClose,\r\n afterClose,\r\n } = this.options;\r\n\r\n await beforeClose();\r\n\r\n sessionStorage.removeItem('layers');\r\n\r\n addClass(this.layer, `${layerMainClass}--closing`);\r\n\r\n requestAnimationFrameTimer(() => {\r\n removeClasses(this.layer, `${layerMainClass}--open`, `${layerMainClass}--closing`);\r\n super.close();\r\n }, 400);\r\n\r\n if (document.body.classList.contains('nx-u-lock-screen') || document.body.classList.contains('nx-u-prevent-scroll'))\r\n IOSScroll.allow();\r\n\r\n await afterClose();\r\n\r\n callback();\r\n }\r\n\r\n backButton(){\r\n let layersArray;\r\n let layers;\r\n let getLayers = sessionStorage.getItem('layers');\r\n\r\n if (getLayers) {\r\n layersArray = JSON.parse(getLayers);\r\n\r\n if (layersArray.includes(location.hash)) {\r\n let index = layersArray.findIndex(i => i == location.hash) + 1;\r\n layersArray = layersArray.slice(0, index);\r\n layers = [...layersArray]\r\n } else {\r\n layers = [...layersArray, location.hash]\r\n }\r\n } else {\r\n layers = [location.hash]\r\n }\r\n\r\n sessionStorage.setItem('layers', `${JSON.stringify(layers)}`);\r\n\r\n if (layers.length > 1) {\r\n this.layer.classList.add('nx-layer--show-back-tbn');\r\n } else {\r\n this.layer.classList.remove('nx-layer--show-back-tbn');\r\n }\r\n }\r\n}\r\n","/** PURE_IMPORTS_START tslib,_Subscriber PURE_IMPORTS_END */\nimport * as tslib_1 from \"tslib\";\nimport { Subscriber } from '../Subscriber';\nexport function takeWhile(predicate, inclusive) {\n if (inclusive === void 0) {\n inclusive = false;\n }\n return function (source) {\n return source.lift(new TakeWhileOperator(predicate, inclusive));\n };\n}\nvar TakeWhileOperator = /*@__PURE__*/ (function () {\n function TakeWhileOperator(predicate, inclusive) {\n this.predicate = predicate;\n this.inclusive = inclusive;\n }\n TakeWhileOperator.prototype.call = function (subscriber, source) {\n return source.subscribe(new TakeWhileSubscriber(subscriber, this.predicate, this.inclusive));\n };\n return TakeWhileOperator;\n}());\nvar TakeWhileSubscriber = /*@__PURE__*/ (function (_super) {\n tslib_1.__extends(TakeWhileSubscriber, _super);\n function TakeWhileSubscriber(destination, predicate, inclusive) {\n var _this = _super.call(this, destination) || this;\n _this.predicate = predicate;\n _this.inclusive = inclusive;\n _this.index = 0;\n return _this;\n }\n TakeWhileSubscriber.prototype._next = function (value) {\n var destination = this.destination;\n var result;\n try {\n result = this.predicate(value, this.index++);\n }\n catch (err) {\n destination.error(err);\n return;\n }\n this.nextOrComplete(value, result);\n };\n TakeWhileSubscriber.prototype.nextOrComplete = function (value, predicateResult) {\n var destination = this.destination;\n if (Boolean(predicateResult)) {\n destination.next(value);\n }\n else {\n if (this.inclusive) {\n destination.next(value);\n }\n destination.complete();\n }\n };\n return TakeWhileSubscriber;\n}(Subscriber));\n//# sourceMappingURL=takeWhile.js.map\n","import {\r\n fromEvent,\r\n of,\r\n combineLatest,\r\n} from 'rxjs';\r\nimport {\r\n takeUntil,\r\n takeWhile,\r\n switchMap,\r\n filter,\r\n map,\r\n tap,\r\n} from 'rxjs/operators';\r\n\r\nimport LayerAdvance, { LayerAdvanceOptions } from './LayerAdvance';\r\nimport { Optional } from '../typings/mapped-types';\r\nimport { requestAnimationFrameTimer } from '../helpers/helperFunctions';\r\nimport { hasClass, objectToStyleString } from '../helpers/DOMHelpers';\r\n\r\nconst moduleSelector = '[data-module=\"LayerPage\"]';\r\n\r\nexport default class LayerPage extends LayerAdvance {\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 LayerPage(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(element: HTMLElement, options: Optional = {}) {\r\n super(element, options);\r\n\r\n this.listenToEvents();\r\n }\r\n\r\n protected getDefaultOptions(): Optional {\r\n const defOptions = super.getDefaultOptions();\r\n\r\n return {\r\n ...defOptions,\r\n layerModifierClasses: `${defOptions.layerMainClass}--page`,\r\n layerCloseBtnModifierClass: `${defOptions.layerMainClass}__close-btn--page`,\r\n layerCloseIconClass: `${defOptions.layerCloseIconClass} nx-close-icon--thin`,\r\n beforeOpen: async () => { await NiveaX.initModules(); },\r\n afterOpen: async () => {\r\n },\r\n beforeClose: async () => { },\r\n afterClose: async () => { },\r\n };\r\n }\r\n\r\n private listenToEvents(): LayerPage {\r\n const touchStart$ = fromEvent(this.layerContent, 'touchstart', { passive: true }).pipe(filter((e: TouchEvent) => e.target === e.currentTarget)),\r\n touchEnd$ = fromEvent(document, 'touchend', { passive: true }).pipe(tap(() => requestAnimationFrame(() => this.wrapper.removeAttribute('style')))),\r\n touchMove$ = fromEvent(document, 'touchmove', { passive: true }).pipe(map((e: TouchEvent) => e.changedTouches[0].clientY)),\r\n { layerMainClass } = this.options;\r\n\r\n const layerMove$ = touchStart$.pipe(\r\n map((e: TouchEvent) => e.changedTouches[0].clientY),\r\n switchMap(startY => combineLatest(of(startY), touchMove$)\r\n .pipe(\r\n takeUntil(touchEnd$),\r\n takeWhile(() => !hasClass(this.layer, `${layerMainClass}--closing`))))\r\n );\r\n\r\n layerMove$.subscribe(([startY, moveY]) => {\r\n const offsetHeight = document.documentElement.offsetHeight,\r\n endPoint = offsetHeight * 0.3,\r\n translateY = moveY - startY,\r\n percentResult = translateY / endPoint;\r\n\r\n const styles = {\r\n transform: `translateY(${Math.max(translateY, 0)}px) scale(${Math.min(1 - (0.2 * percentResult), 1)})`,\r\n transition: 'none',\r\n overflow: 'hidden',\r\n opacity: Math.min(1 - (0.6 * percentResult), 1),\r\n }\r\n\r\n if (percentResult < 1) {\r\n this.wrapper.setAttribute('style', objectToStyleString(styles));\r\n } else {\r\n this.close();\r\n requestAnimationFrameTimer(() => {\r\n this.wrapper.removeAttribute('style');\r\n }, 300);\r\n }\r\n });\r\n\r\n return this;\r\n }\r\n\r\n getLayerNode(): HTMLElement {\r\n return this.layer;\r\n }\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n let nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(moduleSelector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n LayerPage.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n LayerPage.setup(moduleSelector);\r\n });\r\n module.hot.dispose(() => {\r\n nodesCache.forEach(({ nodeToReplace, nodeOrigin }) => { nodeToReplace = nodeToReplace.parentElement.replaceChild(nodeOrigin.cloneNode(true), nodeToReplace) });\r\n });\r\n} else {\r\n LayerPage.setup(moduleSelector);\r\n}","/// \r\nimport { addLayer } from '../ClassWithTracking/helpers';\r\nexport default class NivTFilter {\r\n constructor(public element: Array) {\r\n this.init();\r\n }\r\n\r\n init() {\r\n this.element.forEach(filter => {\r\n this.trackActiveFilter(filter.querySelector('.nx-act-filter__name').innerHTML, filter.dataset.parentName);\r\n });\r\n }\r\n\r\n trackActiveFilter(eventAction: string, eventLabel: string) {\r\n if (window.NiveaX.IsUAEnabled) {\r\n addLayer({\r\n event: 'ga_event',\r\n eventCategory: 'Filter',\r\n eventAction: eventAction,\r\n eventLabel: eventLabel,\r\n eventNonInteraction: false\r\n });\r\n }\r\n\r\n if (window.NiveaX.IsGA4Enabled) {\r\n addLayer({\r\n event: 'ga4_event',\r\n event_name: 'filter',\r\n filter_type: eventAction,\r\n filter_title: eventLabel,\r\n _clear: true\r\n });\r\n }\r\n }\r\n}"],"names":["moduleSelector","Filter","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","element","constructor","options","this","Object","assign","getDefaultOptions","filterBtn","querySelector","filterBtnSelector","filterTmplNode","filterTmplSelector","layer","getFilterLayer","init","loadAndInitFilterNavigation","hiddenLayerBeforeOpen","open","addHandlerOnFilterBtnClick","initFilterItems","getLayerNode","initActiveFilterSection","addHandlerOnFilterChange","addHandlerOnApplyBtnClick","addHandlerOnFilterLayerClick","visibleLayerAfterInit","beforeClose","async","resetFilterActionState","synchronize","insertContent","innerHTML","openFilterLayer","closeFilterLayer","close","style","opacity","filterItems","filterItemSelector","map","item","getAllActiveFilterItems","reduce","acc","fItm","concat","getCheckedFilters","sort","activeFilterSection","updateCB","updateCB1","synchronizeWithoutVisibilityChange","applyCB","reloadFilterAction","refreshActiveFilters","dispatchEvent","CustomEvent","updateAllFilterItems","refreshFilters","initFilterNavigation","FilterNavigation","filterNavigationSelector","updateFilterAction","then","default","onFilterChange","event","target","closest","checkboxSelector","addEventListener","applyBtnSelector","activeFilterItemsArr","saveFilterActionState","onLayerClick","currentFilterItem","closeExpander","bind","callbacks","update","updateFilterActionV2","updateV2","reload","saveState","resetState","getFilterLayerNode","ActiveFilterSection","list","getNodesFromLayerAndDOM","actFlListSelector","deleteAllBtns","actFlDeleteAllBtnSelector","activeTagsFiltersWrapper","outerSelector","addClickHandler","addHandlerOndeleteAllBtn","listArr","Set","getActiveFilterListItem","input","idx","activeFilterListItem","name","displayMaxActiveFilters","parentName","actFlItemNameSelector","inputElement","getSelectedFilterItems","inputs","inp","l","onActiveFilterListItemClick","listItem","parentElement","isOutOfLayer","filterNavigation","currentActiveHc","isLastLevelItem","id","removeActiveFilters","applyOnOuterSection","actFilterItem","isOuterSction","b","removeAllActiveFilters","preventDefault","actFItm","actFlItemSelector","filterListTags","parent","length","display","marginBottom","showAllBtn","showAllActiveFilters","el","removeAttribute","setUpdateCallback","cb","spinnerClasses","LayerAdvance","super","defOptions","layerModifierClasses","layerMainClass","layerCloseBtnModifierClass","layerCloseIconClass","beforeOpen","window","NiveaX","initModules","afterOpen","afterClose","isOpen","body","contains","showSpinner","callback","backButton","classList","add","loadShopPrices","sessionStorage","removeItem","layersArray","layers","getLayers","getItem","JSON","parse","includes","location","hash","index","findIndex","i","slice","setItem","stringify","remove","TakeWhileOperator","predicate","inclusive","prototype","call","subscriber","source","subscribe","TakeWhileSubscriber","_super","destination","_this","_next","value","result","err","error","nextOrComplete","predicateResult","Boolean","next","complete","Subscriber","LayerPage","listenToEvents","touchStart$","fromEvent","layerContent","passive","pipe","e","currentTarget","touchEnd$","tap","requestAnimationFrame","wrapper","touchMove$","changedTouches","clientY","switchMap","startY","combineLatest","of","takeUntil","lift","moveY","translateY","percentResult","documentElement","offsetHeight","styles","transform","Math","max","min","transition","overflow","setAttribute","NivTFilter","trackActiveFilter","eventAction","eventLabel","IsUAEnabled","eventCategory","eventNonInteraction","IsGA4Enabled","event_name","filter_type","filter_title","_clear"],"sourceRoot":""}