{"version":3,"file":"./modules/ProductStageOverlay.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/LayerAdvance.ts","webpack:///./modules/ProductStageOverlay.ts","webpack:///../../../node_modules/rxjs/_esm5/internal/operators/takeWhile.js","webpack:///./modules/LayerPage.ts"],"sourcesContent":["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 Slider from './Slider';\r\nimport LayerPage from './LayerPage';\r\n// import NivTZoom from './NivTZoom';\r\nimport {createElementFromString } from '../helpers/DOMHelpers';\r\n\r\nconst argsImageSlider: TinySliderSettings = {\r\n    controls: false,\r\n    controlsText: ['',''],\r\n    items: 1,\r\n    loop: false,\r\n    mouseDrag: true,\r\n    nav: false,\r\n    speed: 600,\r\n    responsive : {\r\n        1024: { \r\n            controls: true, \r\n            mouseDrag: true\r\n        }\r\n    },\r\n    startIndex: 0,\r\n    lazyload: true,\r\n};\r\n\r\nconst argsThumbSlider: TinySliderSettings = {\r\n    controls: false,\r\n    controlsText: ['', ''],\r\n    fixedWidth: 70,\r\n    gutter: 8,\r\n    edgePadding: 0,\r\n    loop: false,\r\n    mouseDrag: true,\r\n    nav: false,\r\n    slideBy: 1,\r\n    responsive: {\r\n        1280: {\r\n            edgePadding: 0,\r\n        }\r\n    },\r\n    startIndex: 0,\r\n    lazyload: true,\r\n}\r\n\r\nexport default class ProductStageOverlay {\r\n\r\n    private sliderProductStage: any;\r\n    private productStageActiveSlideId: number;\r\n    private callbackSliderProductStage: Function;\r\n    private options: string;\r\n    private layer: LayerPage;\r\n    private layerElements: any;\r\n    private thumbSlider: Slider;\r\n    private thumbs: any;\r\n    private imageSlider: Slider;\r\n    private numberOfThumbs: any;\r\n    private activeSlideId: number;\r\n    private isInitialized: boolean;\r\n\r\n    constructor(options, sliderStage, callback, element) {\r\n        this.callbackSliderProductStage = callback;\r\n        this.options = options;\r\n        this.sliderProductStage = sliderStage;\r\n        this.numberOfThumbs = 4;\r\n        this.createLayer(element);\r\n    }\r\n\r\n    private createLayer(element) {\r\n        let tplElements = this.retrieveTemplateOptions();\r\n        \r\n        if (tplElements) {\r\n            this.layer = new LayerPage(document.body, {\r\n                    afterOpen: async () => this.callbackOpen(),\r\n                    beforeClose: async () => this.callbackBeforeClose(),\r\n                    afterClose: async () => this.callbackAfterClose()\r\n                }\r\n            );\r\n\r\n            this.layer.insertContent(createElementFromString(tplElements.innerHTML));\r\n\r\n            return this.layer;\r\n        }\r\n    }\r\n\r\n    private callbackOpen() {\r\n        this.layerElements = this.layer.getLayerNode();\r\n        this.activeSlideId = this.getDatasetId();\r\n       \r\n        if (!this.isInitialized) {\r\n            this.isInitialized = true;\r\n            this.layer.getLayerNode().style.overflow = 'hidden';\r\n            if (this.activeSlideId >= 0) {\r\n                this.setImageSlider(this.activeSlideId)\r\n                    .setThumbSlider(this.activeSlideId)\r\n                    .addlistenerImageSlider();\r\n\r\n                if (this.thumbs.length > 1){\r\n                    this.addPanel()\r\n                        .addListenerBtnPanel()\r\n                        .addlistenerThumbs()\r\n                        .addActiveClass(this.activeSlideId);\r\n                }\r\n            }\r\n        } else {\r\n            if (this.activeSlideId >= 0) {\r\n                this.setImageSlider(this.activeSlideId)\r\n                    .setThumbSlider(this.activeSlideId)\r\n                    .addlistenerImageSlider();\r\n\r\n                if (this.thumbs.length > 1){\r\n                    this.addPanel()\r\n                        .addListenerBtnPanel()\r\n                        .addlistenerThumbs()\r\n                        .removeActiveClass()\r\n                        .addActiveClass(this.activeSlideId);\r\n                }\r\n            }\r\n        }\r\n\r\n        // new NivTZoom();\r\n       \r\n\r\n        return this;\r\n    }\r\n\r\n    private getDatasetId() {\r\n        let images = this.layerElements.querySelectorAll('.nx-product-zoom__image-slider-item');\r\n        for (var i = 0; i < images.length; i++) {\r\n            if (images[i].dataset.slideId === this.productStageActiveSlideId) {\r\n                return i;\r\n            }\r\n        }\r\n    }\r\n\r\n    private setImageSlider(index) {\r\n        argsImageSlider.startIndex = index;\r\n        this.imageSlider = new Slider(this.layer.getLayerNode().querySelector('.nx-product-zoom__image-slider'), argsImageSlider);\r\n      \r\n        return this;\r\n    }\r\n\r\n    private setThumbSlider(index) {\r\n        argsThumbSlider.items = this.numberOfThumbs;\r\n        argsThumbSlider.slideBy = this.numberOfThumbs;\r\n        argsThumbSlider.startIndex = index;\r\n\r\n        this.thumbSlider = new Slider(this.layer.getLayerNode().querySelector('.nx-product-zoom__thumb-slider'), argsThumbSlider);\r\n        this.thumbs = this.thumbSlider.sliderInfo.slideItems;\r\n\r\n        return this;\r\n    }\r\n\r\n    private addlistenerThumbs() {\r\n        for (let i = 0; i < this.thumbs.length; i++) {\r\n            let thumb = <HTMLElement>this.thumbs[i];\r\n            thumb.addEventListener('click', (event) => {\r\n                this.toggleActiveThumbs(i);\r\n                this.productStageGotoSlide(parseInt(thumb.dataset.slideId));\r\n            });\r\n        }\r\n        return this;\r\n    }\r\n\r\n    private addlistenerImageSlider () {\r\n        let imageSliderInfo = this.imageSlider.sliderInfo;\r\n        \r\n        this.imageSlider.slider.events.on('touchEnd', () => { \r\n            this.onClickArrowImageSlider()\r\n        });\r\n        \r\n         this.imageSlider.slider.events.on('dragEnd', () => {\r\n            this.onClickArrowImageSlider()\r\n        });\r\n\r\n        imageSliderInfo.prevButton && imageSliderInfo.prevButton.addEventListener('click', () => { this.onClickArrowImageSlider(); });\r\n        imageSliderInfo.nextButton && imageSliderInfo.nextButton.addEventListener('click', () => { this.onClickArrowImageSlider(); });\r\n\r\n        // document.dispatchEvent(new CustomEvent('NiveaBasicTracking:reInitHandlers'));     \r\n\r\n        return this;\r\n    }\r\n\r\n    private onClickArrowImageSlider() {\r\n        setTimeout( () => {\r\n            let index = this.imageSlider.sliderInfo.index;\r\n            this.toggleActiveThumbs(index);\r\n        }, 50);\r\n        return this;\r\n    }\r\n\r\n    private toggleActiveThumbs(id: number) {\r\n        this.removeActiveClass()\r\n            .addActiveClass(id);\r\n\r\n        this.activeSlideId = id;\r\n\r\n        if( this.imageSlider.sliderIndex !== id){\r\n            this.imageSlider.goTo(id);\r\n        }\r\n\r\n        // move parent product stage slider to current slide\r\n        // IMPORTANT videos will not be displayed in the overlay, due to that  \r\n        // only the dataset.slideId synchronizes overlay and product stage slider  \r\n        this.productStageGotoSlide(this.thumbs[id].dataset.slideId);\r\n\r\n        return this;\r\n    }\r\n\r\n    private removeActiveClass() {\r\n        Array.from(<HTMLCollection>this.thumbs).forEach(item => {\r\n            item?.querySelector('.--active')?.classList.remove('--active');\r\n        });\r\n\r\n        return this;\r\n    }\r\n\r\n    private addActiveClass(id: number) {\r\n        let thumb = <HTMLElement>this.thumbs[id].children[0];\r\n        if (!thumb.classList.contains('--active')) {\r\n            thumb.classList.add('--active');\r\n        }\r\n        return this;\r\n    }\r\n\r\n    private productStageGotoSlide(id: number) {\r\n        this.callbackSliderProductStage(id);\r\n    }\r\n\r\n    private addPanel() {\r\n        let panel = this.layerElements.querySelector('.nx-product-zoom__panel');\r\n            panel.classList.remove('nx-product-zoom--hide');\r\n        \r\n        return this;\r\n    }\r\n\r\n    private addListenerBtnPanel() {\r\n        let panelBtn = this.layerElements.querySelector('.nx-product-zoom__panel-btn');\r\n            panelBtn.addEventListener('click', (event) => {\r\n                event.currentTarget.parentNode.classList.toggle('--open');\r\n            });\r\n        \r\n        return this;\r\n    }\r\n\r\n    private retrieveTemplateOptions() {\r\n        let options = JSON.parse(this.options);\r\n        const template = document.querySelector(options.template);\r\n\r\n        return template;\r\n    }\r\n\r\n    private callbackBeforeClose() {  \r\n        this.imageSlider.destroy();\r\n\r\n        return this;\r\n    }\r\n\r\n    private callbackAfterClose() {\r\n        return this;\r\n    }\r\n\r\n    openLayer(activeSlideId?:string) {\r\n        this.productStageActiveSlideId = this.sliderProductStage?.slider.currentSlide || activeSlideId;\r\n        this.layer.open();\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":["spinnerClasses","LayerAdvance","constructor","element","options","super","this","init","getDefaultOptions","defOptions","layerModifierClasses","layerMainClass","layerCloseBtnModifierClass","layerCloseIconClass","beforeOpen","async","window","NiveaX","initModules","afterOpen","beforeClose","afterClose","isOpen","document","body","contains","layer","showSpinner","querySelector","prevent","open","callback","backButton","classList","add","loadShopPrices","close","sessionStorage","removeItem","allow","layersArray","layers","getLayers","getItem","JSON","parse","includes","location","hash","index","findIndex","i","slice","setItem","stringify","length","remove","argsImageSlider","controls","controlsText","items","loop","mouseDrag","nav","speed","responsive","startIndex","lazyload","argsThumbSlider","fixedWidth","gutter","edgePadding","slideBy","ProductStageOverlay","sliderStage","callbackSliderProductStage","sliderProductStage","numberOfThumbs","createLayer","tplElements","retrieveTemplateOptions","callbackOpen","callbackBeforeClose","callbackAfterClose","insertContent","innerHTML","layerElements","getLayerNode","activeSlideId","getDatasetId","isInitialized","setImageSlider","setThumbSlider","addlistenerImageSlider","thumbs","addPanel","addListenerBtnPanel","addlistenerThumbs","removeActiveClass","addActiveClass","style","overflow","images","querySelectorAll","dataset","slideId","productStageActiveSlideId","imageSlider","thumbSlider","sliderInfo","slideItems","thumb","addEventListener","event","toggleActiveThumbs","productStageGotoSlide","parseInt","imageSliderInfo","slider","events","on","onClickArrowImageSlider","prevButton","nextButton","setTimeout","id","sliderIndex","goTo","Array","from","forEach","item","children","currentTarget","parentNode","toggle","template","destroy","openLayer","currentSlide","TakeWhileOperator","predicate","inclusive","prototype","call","subscriber","source","subscribe","TakeWhileSubscriber","_super","destination","_this","_next","value","result","err","error","nextOrComplete","predicateResult","Boolean","next","complete","Subscriber","moduleSelector","LayerPage","setup","selector","filter","node","moduleInitialized","listenToEvents","touchStart$","fromEvent","layerContent","passive","pipe","e","target","touchEnd$","tap","requestAnimationFrame","wrapper","removeAttribute","touchMove$","map","changedTouches","clientY","switchMap","startY","combineLatest","of","takeUntil","lift","moveY","translateY","percentResult","documentElement","offsetHeight","styles","transform","Math","max","min","transition","opacity","setAttribute"],"sourceRoot":""}