{"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;\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 = this.element.querySelector('.nx-slider');\r\n this.thumbWrapperElement = this.element.querySelector('.nx-product__thumb-slider-wrapper');\r\n this.thumbSliderElement = 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 = this.element.querySelector('.tns-nav__wrapper'),\r\n thumbsHiddentCounter = 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 = 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 = 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 = 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 = 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 = elements[i];\r\n\r\n element.addEventListener('click', (event) => {\r\n if (!this.sliderIsDragged) {\r\n let item: 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":""}