{"version":3,"file":"./modules/Filter.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/Filter.ts","webpack:///./modules/NivTFilter.ts","webpack:///./modules/LayerAdvance.ts","webpack:///./modules/FilterActiveSection.ts","webpack:///../../../node_modules/rxjs/_esm5/internal/operators/takeWhile.js","webpack:///./modules/LayerPage.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<FilterOptions> = {}) {\r\n        this.options = getOptions(this.element, Object.assign(this.getDefaultOptions(), this.options));\r\n        this.filterBtn = <HTMLElement>this.element.querySelector(this.options.filterBtnSelector);\r\n        this.filterTmplNode = <HTMLElement>this.element.querySelector(this.options.filterTmplSelector);\r\n        this.layer = this.getFilterLayer();\r\n    }\r\n\r\n    async init(): Promise<Filter> {\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(<HTMLElement>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 = <HTMLElement>this.element.querySelector(this.options.filterNavigationSelector);\r\n\r\n        if (filterNavigationNode) {\r\n            new FilterNavigation(<HTMLElement>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<void> {\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 = <HTMLInputElement>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 = <HTMLElement>event.target,\r\n            currentFilterItem = <HTMLElement>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<FilterOptions> {\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}","/// <reference path=\"../typings/niveax.d.ts\"/>\r\nimport { addLayer } from '../ClassWithTracking/helpers';\r\nexport default class NivTFilter {\r\n    constructor(public element: Array<HTMLElement>) {\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}","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<LayerAdvanceOptions> = {}) {\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<LayerAdvanceOptions> {\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<any> {\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<any> {\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","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(<NodeListOf<HTMLElement>>document.querySelectorAll(selector))\r\n            .concat(Array.from(<NodeListOf<HTMLElement>>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 = <ActiveFilterListItem>createElementFromString(`\r\n            <li class=\"nx-active-filters__item nx-act-filter\" data-input-name=\"${input.name}\" ${(idx >= this.options.displayMaxActiveFilters) ? 'data-hidden' : ''} data-parent-name=\"${input.dataset.parentName}\">\r\n                <span class=\"nx-act-filter__name\">${getCateforyName(this.options.actFlItemNameSelector, input)}</span>\r\n                <span class=\"nx-act-filter__remove-btn\"></span>\r\n            </li>`\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 = <HTMLElement>event.target,\r\n            isRemoveButton = hasClass(target, 'nx-act-filter__remove-btn'),\r\n            listItem = isRemoveButton ? <ActiveFilterListItem>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(`<span class=\"nx-active-filters__item nx-act-filter nx-act-filter__show-all-btn\">...</span>`);\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(<NodeListOf<HTMLElement>>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}","/** 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<LayerAdvanceOptions> = {}) {\r\n        super(element, options);\r\n\r\n        this.listenToEvents();\r\n    }\r\n\r\n    protected getDefaultOptions(): Optional<LayerAdvanceOptions> {\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}"],"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","NivTFilter","trackActiveFilter","parentName","eventAction","eventLabel","window","NiveaX","IsUAEnabled","eventCategory","eventNonInteraction","IsGA4Enabled","event_name","filter_type","filter_title","_clear","spinnerClasses","LayerAdvance","super","defOptions","layerModifierClasses","layerMainClass","layerCloseBtnModifierClass","layerCloseIconClass","beforeOpen","initModules","afterOpen","afterClose","isOpen","body","contains","showSpinner","prevent","callback","backButton","classList","add","loadShopPrices","sessionStorage","removeItem","allow","layersArray","layers","getLayers","getItem","JSON","parse","includes","location","hash","index","findIndex","i","slice","setItem","stringify","length","remove","ActiveFilterSection","list","getNodesFromLayerAndDOM","actFlListSelector","deleteAllBtns","actFlDeleteAllBtnSelector","activeTagsFiltersWrapper","outerSelector","addClickHandler","addHandlerOndeleteAllBtn","listArr","Set","getActiveFilterListItem","input","idx","activeFilterListItem","name","displayMaxActiveFilters","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","display","marginBottom","showAllBtn","showAllActiveFilters","el","removeAttribute","setUpdateCallback","cb","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"],"sourceRoot":""}