{"version":3,"file":"./modules/Stage.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/Stage.ts"],"sourcesContent":["/// \r\nimport UIkit from 'uikit';\r\nimport {\r\n filter,\r\n mergeMap\r\n} from 'rxjs/operators';\r\nimport {\r\n hasSliderImageToBeLoad,\r\n loadImageLazy$\r\n} from '../helpers/DOMHelpers';\r\nimport { from } from 'rxjs';\r\n\r\nconst moduleSelector = '[data-module=\"Stage\"]';\r\n\r\nclass Stage {\r\n private options: any;\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 Stage(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(private element: HTMLElement) {\r\n this.options = this.getDefaultOptions();\r\n this.init();\r\n }\r\n\r\n private init(): Stage {\r\n this.initSlider();\r\n this.timer(true);\r\n return this;\r\n }\r\n\r\n private initSlider() {\r\n const sliderNode = this.element.querySelector('.cw-slider'),\r\n slideItems = this.element.querySelector('.cw-slider__items'),\r\n defaultSliderDuraion = this.element.getAttribute('data-delay-per-slide');\r\n\r\n const observer = new MutationObserver(mutationsList => {\r\n for (let mutation of mutationsList) {\r\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\r\n const target = mutation.target as HTMLElement;\r\n if (target.classList.contains('uk-active')) {\r\n const video = target.querySelector('video');\r\n if (video) {\r\n video.preload = \"auto\";\r\n video.load();\r\n video.addEventListener('canplay', () => {\r\n var duration = Math.floor(video.duration * 1000);\r\n this.updateSliderTimer(duration);\r\n video.muted = true;\r\n video.play();\r\n })\r\n } else {\r\n this.updateSliderTimer(defaultSliderDuraion);\r\n }\r\n }\r\n }\r\n }\r\n });\r\n slideItems.querySelectorAll('li').forEach(li => {\r\n observer.observe(li, { attributes: true });\r\n });\r\n\r\n UIkit.util.ready(() => {\r\n UIkit.slider(sliderNode, this.options);\r\n this.playSlide();\r\n });\r\n\r\n slideItems.addEventListener('beforeitemshow', (e) => {\r\n this.timer(false);\r\n const activeItems = this.element.querySelectorAll('.slide-active');\r\n Array.from(activeItems).forEach((element: HTMLSelectElement) => {\r\n element.classList.remove('slide-active');\r\n });\r\n });\r\n\r\n slideItems.addEventListener('itemshown', (e) => {\r\n this.timer(true);\r\n var target = e.target;\r\n target.classList.add('slide-active');\r\n });\r\n\r\n slideItems.addEventListener('itemshow', (e) => {\r\n this.initLazySlides(e.target);\r\n });\r\n\r\n }\r\n\r\n private getDefaultOptions() {\r\n return {\r\n center: false,\r\n sets: false,\r\n finite: false,\r\n autoplay: false,\r\n draggable: true,\r\n velocity: 1000,\r\n autoplayInterval: this.element.getAttribute('data-delay-per-slide') || 7000,\r\n animation: \"slide\"\r\n }\r\n }\r\n\r\n private timer(load): Stage {\r\n const sliderTimer: HTMLElement = this.element.querySelector('.cw-time-progres');\r\n if (load) {\r\n sliderTimer.classList.add(\"time-loading\");\r\n } else {\r\n sliderTimer.classList.remove(\"time-loading\");\r\n }\r\n\r\n return this;\r\n }\r\n\r\n\r\n private initLazySlides(target) {\r\n this.loadForActiveSlides(target);\r\n this.loadForNextSlide(target);\r\n this.loadForPrevSlide(target);\r\n }\r\n\r\n/* private takeVideoDuration(video) {\r\n console.log(\"Taking video duration...\", video);\r\n video.addEventListener('loadedmetadata', () => {\r\n var duration = video.duration.toFixed() * 1000;\r\n console.log(\"Video metadata loaded duration:\", duration);\r\n\r\n video.pause();\r\n video.currentTime = 0;\r\n video.play();\r\n this.updateSliderTimer(duration);\r\n });\r\n }*/\r\n\r\n private playSlide = () => {\r\n const nextSlide: any = this.element.querySelector('.uk-slidenav-next');\r\n const timerProgress: any = this.element.querySelector('.cw-time-progres');\r\n\r\n timerProgress.addEventListener('animationend', () => {\r\n nextSlide.click();\r\n });\r\n };\r\n\r\n private updateSliderTimer(duration) {\r\n var timerProgress: any = this.element.querySelector('.cw-time-progres');\r\n timerProgress.style.cssText = `\r\n -webkit-animation-duration: ${duration}ms; \r\n animation-duration: ${duration}ms;\r\n `;\r\n }\r\n\r\n private loadForActiveSlides(activeSLide: HTMLElement) {\r\n this.loadSlideImg(activeSLide);\r\n }\r\n\r\n private loadForNextSlide(target) {\r\n var nextElement = target.nextElementSibling\r\n if (!nextElement) return false;\r\n this.loadSlideImg(nextElement);\r\n }\r\n\r\n private loadForPrevSlide(target) {\r\n var prevElement = target.previousElementSibling;\r\n if (!prevElement) return false;\r\n this.loadSlideImg(prevElement);\r\n }\r\n\r\n private loadSlideImg(targetSlide) {\r\n var images = this.getImages(targetSlide);\r\n from(images).pipe(\r\n filter(hasSliderImageToBeLoad),\r\n mergeMap(loadImageLazy$)\r\n ).subscribe();\r\n }\r\n\r\n private getImages(slide) {\r\n return Array.from(slide.querySelectorAll('source[data-srcset], img[data-src]'));\r\n }\r\n}\r\n\r\n\r\nnew Stage.setup();\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.parentNode, nodeOrigin: element.parentNode.cloneNode(true) }));\r\n\r\n module.hot.accept(() => {\r\n new Stage.setup(moduleSelector);\r\n });\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 new Stage.setup('[data-module=\"Stage\"]');\r\n}\r\n"],"names":["element","playSlide","nextSlide","querySelector","addEventListener","click","this","options","getDefaultOptions","init","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","Stage","initSlider","timer","sliderNode","slideItems","defaultSliderDuraion","getAttribute","observer","MutationObserver","mutationsList","mutation","type","attributeName","target","classList","contains","preload","load","duration","Math","floor","updateSliderTimer","muted","play","li","observe","attributes","ready","e","activeItems","remove","add","initLazySlides","center","sets","finite","autoplay","draggable","velocity","autoplayInterval","animation","sliderTimer","loadForActiveSlides","loadForNextSlide","loadForPrevSlide","style","cssText","activeSLide","loadSlideImg","nextElement","nextElementSibling","prevElement","previousElementSibling","targetSlide","images","getImages","pipe","subscribe","slide"],"sourceRoot":""}