{"version":3,"sources":["webpack:///./modules/Stage.ts"],"names":["Stage","element","_this","this","playSlide","nextSlide","querySelector","addEventListener","click","options","getDefaultOptions","init","setup","selector","Array","from","document","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","prototype","initSlider","timer","sliderNode","slideItems","defaultSliderDuraion","getAttribute","observer","MutationObserver","mutationsList","mutation","type","attributeName","target","classList","contains","video_1","preload","load","duration","Math","floor","updateSliderTimer","muted","play","mutationsList_1","__values","mutationsList_1_1","next","done","value","li","observe","attributes","uikit__WEBPACK_IMPORTED_MODULE_0___default","a","util","ready","slider","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","Object","rxjs__WEBPACK_IMPORTED_MODULE_4__","pipe","rxjs_operators__WEBPACK_IMPORTED_MODULE_1__","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_3__","rxjs_operators__WEBPACK_IMPORTED_MODULE_2__","subscribe","slide"],"mappings":"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","file":"./modules/Stage.ef860981.js","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"],"sourceRoot":""}