{"version":3,"file":"./modules/ProductStage.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/ProductStage.ts"],"sourcesContent":["import { addClass, hasClass, removeClass } from '../helpers/DOMHelpers';\r\nimport { debounce } from '../helpers/helperFunctions';\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 ProductStage {\r\n    private slider: any;\r\n    private sliderElement: HTMLElement;\r\n    private currentActiveSlideIndex: number;\r\n    private thumbSliderElement: HTMLElement;\r\n    private thumbSlider: any;\r\n    private thumbnailSliderItems: HTMLCollection | NodeListOf<Element>;\r\n    private sliderIsDragged: boolean;\r\n    private overlay: any;\r\n    private overlay360: any;\r\n    private thumbWrapperElement: HTMLElement;\r\n    private thumbsNeedToShow: number;\r\n    private isStageWithGrid: boolean = false;\r\n\r\n    static setup(selector: string): void {\r\n        Array.from(document.querySelectorAll(selector)).filter((node: HTMLElement) => !node.dataset.moduleInitialized).forEach((element: HTMLElement) => {\r\n            new ProductStage(element);\r\n            element.dataset.moduleInitialized = 'true';\r\n        });\r\n    }\r\n\r\n    constructor(public element: HTMLElement) {\r\n        this.sliderElement = <HTMLElement>this.element.querySelector('.nx-slider');\r\n        this.thumbWrapperElement = this.element.querySelector('.nx-product__thumb-slider-wrapper');\r\n        this.thumbSliderElement = <HTMLElement>this.element.querySelector('.nx-product__thumb-slider');\r\n\r\n        this.init();\r\n    }\r\n\r\n    private init() {\r\n        this.isStageWithGrid = hasClass(this.element, 'nx-product-stage__grid');\r\n        const activeThumbSlide = this.element.querySelector('.nx-slider__indicator-current');\r\n\r\n       if (!this.isStageWithGrid) {\r\n            const getSlider = () => import(/* webpackChunkName: \"SliderPagination\" */'./SliderPagination');\r\n\r\n            getSlider().then((module) => {\r\n                this.slider = new module.default(this.sliderElement)\r\n                if(this.slider.slider == undefined) return;\r\n                this.currentActiveSlideIndex = this.slider.slider.getInfo().index;\r\n\r\n                if (hasClass(this.thumbWrapperElement, 'nx-thumbnails__with--expander')) {\r\n                    this.initThumbsWithExpander();\r\n                }\r\n        \r\n                if (hasClass(this.thumbWrapperElement, 'nx-product__thumb--with-slider')) {\r\n                    this.initThumbSlider();\r\n                }\r\n\r\n                activeThumbSlide && this.slider.slider.events.on('indexChanged', (e) => {\r\n                    activeThumbSlide.textContent = e.index + 1;\r\n                });\r\n\r\n                this.initDetectDrag(this.sliderElement);\r\n\r\n                this.createOverlayImages();\r\n                this.addOpenLayerOnClickImages();\r\n            });\r\n        };\r\n      \r\n        this.createOverlayImages();\r\n        this.addOpenLayerOnClickImages();\r\n\r\n        if (document.querySelectorAll(\".nx-product-stage__item--image-360\").length > 0) {\r\n            this.createOverlayImages360();\r\n            this.addOpenLayer360OnClick();\r\n        }\r\n    }\r\n\r\n\r\n    initThumbsWithExpander() {\r\n        const thumbExpanderBtn = this.element?.querySelector('.nx-expander__btn'),\r\n            thumbnailsItems = this.element?.querySelectorAll('.nx-product__thumb-slider-item:not(.nx-expander__btn)'),\r\n            tnsOuter = <HTMLElement>this.element.querySelector('.tns-nav__wrapper'),\r\n            thumbsHiddentCounter = <HTMLElement>thumbExpanderBtn?.querySelector('.nx-product__thumb--count strong');\r\n\r\n        this.thumbnailSliderItems = thumbnailsItems;\r\n        tnsOuter.hidden = true;\r\n\r\n        thumbExpanderBtn?.addEventListener('click', (e) => this.toggleThumbsExpander());\r\n\r\n        thumbnailsItems.forEach(items => {\r\n            items.addEventListener('click', (e) => {\r\n                const target = e.currentTarget as HTMLElement,\r\n                    slideId = target.closest('.nx-product__thumb-slider-item').getAttribute('data-slide-id');\r\n                this.slider.goTo(slideId);\r\n            })\r\n        })\r\n\r\n        this.slider.slider.events.on('indexChanged', (e) => {\r\n            this.toggleActiveThumbnailStyle(e.index, this.currentActiveSlideIndex);\r\n            this.expandThumbsIfNeeded(e.index + 1);\r\n        });\r\n\r\n        const updateExpanderBtn = () => {\r\n            this.thumbsNeedToShow = Math.floor((this.thumbWrapperElement.clientWidth / 78)) - 1;\r\n            this.moveExpanderButton(this.thumbWrapperElement, thumbExpanderBtn, thumbnailsItems[this.thumbsNeedToShow]);\r\n            this.updateExpanderButtonCounter(thumbsHiddentCounter, thumbnailsItems.length - this.thumbsNeedToShow);\r\n\r\n            thumbnailsItems.length > this.thumbsNeedToShow\r\n                ? removeClass(thumbExpanderBtn as HTMLElement, 'nx-hidden')\r\n                : addClass(thumbExpanderBtn as HTMLElement, 'nx-hidden');\r\n        }\r\n\r\n        updateExpanderBtn();\r\n        \r\n        NiveaX.addToEventStore('resize', () => debounce(updateExpanderBtn(), 300), window);\r\n    }\r\n\r\n    private toggleThumbsExpander() {\r\n        this.thumbWrapperElement.classList.toggle('nx-thumbnails--expanded');\r\n        hasClass(this.thumbWrapperElement, 'nx-thumbnails--expanded')\r\n            ? this.thumbWrapperElement.style.maxHeight = \"100vh\"\r\n            : this.thumbWrapperElement.style.maxHeight = \"\";\r\n    }\r\n\r\n    private expandThumbsIfNeeded(slideId: number) {\r\n        slideId > this.thumbsNeedToShow ? !hasClass(this.thumbWrapperElement, \"nx-thumbnails--expanded\") && this.toggleThumbsExpander() : \"\"\r\n    }\r\n\r\n    private moveExpanderButton(nodeElement: HTMLElement, button: Element, position): void {\r\n        button && nodeElement?.querySelector('.nx-product__thumb-slider').insertBefore(button, position);\r\n    }\r\n\r\n    private updateExpanderButtonCounter(counterEl: HTMLElement, thumbsNeedToShow: number) {\r\n        counterEl && thumbsNeedToShow ? counterEl.textContent = `+${thumbsNeedToShow}` : \"\";\r\n    }\r\n\r\n    initThumbSlider() {\r\n        if (!this.thumbSliderElement) return;\r\n\r\n        const getSlider = () => import(/* webpackChunkName: \"Slider\" */'./Slider');\r\n\r\n        getSlider().then((module) => {\r\n            this.thumbSlider = new module.default(this.thumbSliderElement, argsThumbSlider);\r\n            this.thumbnailSliderItems = this.thumbSlider.sliderInfo.slideItems;\r\n\r\n            this.addClickListenerToThumbs();\r\n            this.showThumbslider();\r\n    \r\n            this.slider.slider.events.on('indexChanged', (e) => {\r\n                this.toggleActiveThumbnailStyle(e.index, this.currentActiveSlideIndex);\r\n                this.thumbSlider.goTo(e.index);\r\n            });\r\n    \r\n            this.toggleActiveThumbnailStyle(this.currentActiveSlideIndex, this.currentActiveSlideIndex);\r\n        })\r\n\r\n        return this;\r\n    }\r\n\r\n    private showThumbslider() {\r\n        this.element?.classList.add('nx-product-stage__slider--thumb-slider');\r\n        this.thumbSliderElement?.closest('.nx-product__thumb-slider-wrapper')?.classList.remove('nx-product__thumb-slider-wrapper--hidden');\r\n    }\r\n\r\n    private addClickListenerToThumbs() {\r\n        for (let i = 0; i < this.thumbnailSliderItems.length; i++) {\r\n            let thumbnail = <HTMLElement>this.thumbnailSliderItems[i];\r\n            thumbnail.addEventListener('click', () => {\r\n                this.slider.goTo(parseInt(thumbnail.dataset.slideId));\r\n                this.toggleActiveThumbnailStyle(parseInt(thumbnail.dataset.slideId), this.currentActiveSlideIndex);\r\n            });\r\n        }\r\n    }\r\n\r\n    private toggleActiveThumbnailStyle(newActiveSlideIndex: number, oldActiveSlideIndex: number) {\r\n        this.removeActiveThumbnailClass(oldActiveSlideIndex);\r\n        this.addActiveThumbnailClass(newActiveSlideIndex);\r\n\r\n        this.currentActiveSlideIndex = newActiveSlideIndex;\r\n    }\r\n\r\n    private removeActiveThumbnailClass(id: number) {\r\n        if (!this.thumbnailSliderItems[id]) return;\r\n\r\n\r\n        let thumb = <HTMLElement>this.thumbnailSliderItems[id].children[0];\r\n        if (thumb.classList.contains('--active')) {\r\n            thumb.classList.remove('--active');\r\n        }\r\n        return this;\r\n    }\r\n\r\n    private addActiveThumbnailClass(id: number) {\r\n        if (!this.thumbnailSliderItems[id]) return;\r\n\r\n        let thumb = <HTMLElement>this.thumbnailSliderItems[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 addOpenLayer360OnClick() {\r\n        this.addListenerToImage360();\r\n        this.addListenersToIcon360();\r\n    }\r\n\r\n    private addListenerToImage360() {\r\n        const element360 = this.slider?.element.querySelector('.nx-product-stage__item--image-360') || this.element.querySelector('.nx-product-stage__item--image-360');\r\n        element360?.addEventListener('click', () => {\r\n            this.open360Layer();\r\n        });\r\n    }\r\n\r\n    private addListenersToIcon360() {\r\n        const icon360 = document.querySelector(\".nx-product-stage__icon-360-container\");\r\n        icon360?.addEventListener('click', () => {\r\n            this.open360Layer();\r\n        });\r\n    }\r\n\r\n    private addOpenLayerOnClickImages() {\r\n        const elements = <NodeList>this.slider?.element.querySelectorAll('.nx-product-stage__item--image')\r\n         ||  Array.from(this.element.querySelectorAll('.nx-product-stage__grid--item'))\r\n                .filter((item: HTMLElement) => !item.classList.contains('nx-product-stage__item--image-360'))\r\n                .filter((item: HTMLElement) => !item.classList.contains('nx-product-stage__item--video'));\r\n\r\n        for (let i = 0; i < elements.length; i++) {\r\n            let element: HTMLElement = <HTMLElement>elements[i];\r\n\r\n            element.addEventListener('click', (event) => {\r\n                if (!this.sliderIsDragged) {\r\n                    let item: HTMLElement = <HTMLElement>event.currentTarget;\r\n                    this.slider?.slider ? this.slider.slider.currentSlide = item.dataset.slideId : \"\";\r\n                    this.openLayer(item.dataset.slideId);\r\n                }\r\n            }, false);\r\n        }\r\n    }\r\n\r\n    /* \r\n     * This is a workaround to detect drags. This should be handled by the slider directly.\r\n     */\r\n    private initDetectDrag(element) {\r\n        let clickOrigin = { x: 0, y: 0 };\r\n        const dragDistanceThreshold = 20;\r\n\r\n        element.addEventListener('mousedown', (event) => {\r\n            this.sliderIsDragged = false\r\n            clickOrigin = { x: event.clientX, y: event.clientY };\r\n        });\r\n        element.addEventListener('mousemove', (event) => {\r\n            if (Math.sqrt(Math.pow(clickOrigin.y - event.clientY, 2) + Math.pow(clickOrigin.x - event.clientX, 2)) > dragDistanceThreshold) {\r\n                this.sliderIsDragged = true\r\n            }\r\n        });\r\n    }\r\n\r\n    public callbackProductStage(slideId) {\r\n        this.slider?.slider.goTo(slideId);\r\n    }\r\n\r\n    private createOverlayImages() {\r\n        const productStageOverlay = () => import(/* webpackChunkName: \"ProductStageOverlay\" */'./ProductStageOverlay');\r\n\r\n        productStageOverlay().then((module) => {\r\n            this.overlay = new module.default(this.element.dataset.options, this.slider, this.callbackProductStage.bind(this), this.element);\r\n            return this.overlay;\r\n        });\r\n    }\r\n\r\n    private openLayer(activeSlideId?:string) {\r\n        this.overlay.openLayer(activeSlideId);\r\n        return this.overlay;\r\n    }\r\n\r\n    private createOverlayImages360() {\r\n        const productStageOverlay360 = () => import(/* webpackChunkName: \"ProductStageOverlay360\" */'./ProductStageOverlay360');\r\n\r\n        productStageOverlay360().then((module) => {\r\n            this.overlay360 = new module.default(this.element.dataset.options);\r\n            return this.overlay;\r\n        });\r\n    }\r\n\r\n    private open360Layer() {\r\n        this.overlay360.openLayer();\r\n        return this.overlay360;\r\n    }\r\n\r\n}\r\n\r\n// Hot Module Replacement\r\nif (module.hot) {\r\n    let selector: string = '[data-module=\"ProductStage\"]',\r\n        nodesCache: HMRNodes[] = Array.from(document.querySelectorAll(selector)).map((element: Node) => ({ nodeToReplace: element, nodeOrigin: element.cloneNode(true) }));\r\n\r\n    ProductStage.setup(selector);\r\n\r\n    module.hot.accept(() => {\r\n        ProductStage.setup(selector);\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    ProductStage.setup('[data-module=\"ProductStage\"]');\r\n}"],"names":["argsThumbSlider","controls","controlsText","fixedWidth","gutter","edgePadding","loop","mouseDrag","nav","slideBy","responsive","startIndex","lazyload","ProductStage","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","element","constructor","isStageWithGrid","this","sliderElement","querySelector","thumbWrapperElement","thumbSliderElement","init","activeThumbSlide","getSlider","then","module","slider","default","undefined","currentActiveSlideIndex","getInfo","index","initThumbsWithExpander","initThumbSlider","events","on","e","textContent","initDetectDrag","createOverlayImages","addOpenLayerOnClickImages","length","createOverlayImages360","addOpenLayer360OnClick","thumbExpanderBtn","thumbnailsItems","tnsOuter","thumbsHiddentCounter","thumbnailSliderItems","hidden","addEventListener","toggleThumbsExpander","items","slideId","currentTarget","closest","getAttribute","goTo","toggleActiveThumbnailStyle","expandThumbsIfNeeded","updateExpanderBtn","thumbsNeedToShow","Math","floor","clientWidth","moveExpanderButton","updateExpanderButtonCounter","NiveaX","addToEventStore","window","classList","toggle","style","maxHeight","nodeElement","button","position","insertBefore","counterEl","thumbSlider","sliderInfo","slideItems","addClickListenerToThumbs","showThumbslider","add","remove","i","thumbnail","parseInt","newActiveSlideIndex","oldActiveSlideIndex","removeActiveThumbnailClass","addActiveThumbnailClass","id","thumb","children","contains","addListenerToImage360","addListenersToIcon360","element360","open360Layer","icon360","elements","item","event","sliderIsDragged","currentSlide","openLayer","clickOrigin","x","y","clientX","clientY","sqrt","pow","callbackProductStage","overlay","options","bind","activeSlideId","overlay360"],"sourceRoot":""}