{"version":3,"file":"./modules/StoryStage.xxxxxxxx.js","mappings":"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","sources":["webpack:///./modules/StoryStage/index.ts","webpack:///./modules/SliderPagination.ts","webpack:///../../../node_modules/rxjs/_esm5/internal/operators/pluck.js","webpack:///./modules/StoryStage/StoryStage.ts"],"sourcesContent":["import StoryStage from './StoryStage';\r\nexport default StoryStage;","import {\r\n fromEvent,\r\n from,\r\n of,\r\n merge,\r\n combineLatest,\r\n} from 'rxjs';\r\n\r\nimport {\r\n switchMap,\r\n pluck,\r\n takeUntil,\r\n map,\r\n filter,\r\n} from 'rxjs/operators';\r\n\r\nimport Slider from './Slider';\r\nimport {\r\n createDiv,\r\n addToElement,\r\n addClassToList,\r\n removeClassFromList,\r\n hasClass,\r\n createSpan,\r\n} from '../helpers/DOMHelpers';\r\n\r\nconst moduleSelector = '[data-module=\"SliderPagination\"]';\r\nconst direction: string = document.dir;\r\n\r\nexport default class SliderPagination extends Slider {\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 window.requestAnimationFrame(() => {\r\n setTimeout((function(){\r\n if(!element.dataset.moduleInitialized) {\r\n new SliderPagination(element);\r\n element.dataset.moduleInitialized = 'true';\r\n }\r\n }));\r\n });\r\n });\r\n }\r\n\r\n constructor(element: HTMLElement, options?: TinySliderSettings) {\r\n super(element, options);\r\n\r\n if (this.hasChildren()) {\r\n this.initSliderPagination();\r\n this.convertAnchorToSpan();\r\n \r\n }\r\n }\r\n\r\n protected hasChildren(): boolean {\r\n return this.element.children.length > 0;\r\n }\r\n\r\n private convertAnchorToSpan(): SliderPagination {\r\n const anchor = this.element.querySelectorAll(\".nx-how-to__description a\");\r\n anchor.forEach(anchor => {\r\n const span = createSpan(\"\");\r\n span.innerHTML = anchor.innerHTML;\r\n span.className = anchor.className;\r\n span.setAttribute(\"data-url\", anchor.getAttribute(\"href\"))\r\n span.classList.add('nx-how-to__description-link');\r\n anchor.parentNode.replaceChild(span, anchor);\r\n span.addEventListener(\"click\", () => window.location.replace(span.getAttribute(\"data-url\")))\r\n })\r\n return this;\r\n }\r\n\r\n\r\n private initSliderPagination() {\r\n this.initLiquid(20)\r\n .initInfitity(this.sliderInfo, 5);\r\n\r\n return this;\r\n }\r\n\r\n private resetPaginatorItem(width: number): SliderPagination {\r\n from(this.sliderInfo.navItems).pipe(\r\n map((navItm: HTMLElement) => navItm.querySelector('.tns-nav__liquid')),\r\n filter((liquidElm: HTMLElement) => liquidElm != null)\r\n ).subscribe(liquidElm => {\r\n requestAnimationFrame(() => {\r\n liquidElm.style.transition = 'all 0.5s';\r\n liquidElm.style.opacity = '0';\r\n liquidElm.style.width = (width + 'px');\r\n\r\n setTimeout(() => { liquidElm.remove(); }, 500);\r\n });\r\n });\r\n\r\n // Simple version with CSS\r\n // setTimeout(() => currentNav.className = '', 500);\r\n\r\n return this;\r\n\r\n }\r\n\r\n private drawPaginationItem(currentNav, isRight: boolean, width: number): SliderPagination {\r\n\r\n if (currentNav?.children.length == 0) {\r\n addToElement(currentNav, createDiv('tns-nav__liquid'));\r\n }\r\n\r\n let controller = currentNav?.firstElementChild;\r\n\r\n controller && requestAnimationFrame(() => {\r\n if (direction === 'rtl') {\r\n controller.style.left = isRight ? 'auto' : '0';\r\n controller.style.right = isRight ? '0' : 'auto';\r\n } else {\r\n controller.style.left = isRight ? '0' : 'auto';\r\n controller.style.right = isRight ? 'auto' : '0';\r\n }\r\n controller.style.width = (width + 'px');\r\n });\r\n\r\n // Simple version with CSS\r\n // addClasses(currentNav, 'tns-nav-worm', isRight ? 'tns-nav-worm--to-right' : 'tns-nav-worm--to-left');\r\n\r\n return this;\r\n\r\n }\r\n\r\n private initLiquid(TINY_WIDTH: number): SliderPagination {\r\n\r\n this.onDrag(TINY_WIDTH);\r\n this.slider.events.on('indexChanged', this.onIndexChanged(TINY_WIDTH));\r\n\r\n return this;\r\n }\r\n\r\n private onDrag(TINY_WIDTH: number): SliderPagination {\r\n const dragMove$ = fromEvent(this.slider.events, 'dragMove', { passive: true }).pipe(pluck('0', 'event', 'clientX')),\r\n dragEnd$ = fromEvent(this.slider.events, 'dragEnd', { passive: true }),\r\n\r\n mouseMove$ = fromEvent(document, 'mousemove').pipe(map(({ clientX }: MouseEvent) => clientX)),\r\n touchMove$ = fromEvent(document, 'touchmove', { passive: true }).pipe(map(({ changedTouches: { 0: { clientX } } }: TouchEvent) => clientX)),\r\n\r\n moveEvents$ = merge(mouseMove$, touchMove$).pipe(takeUntil(dragEnd$));\r\n\r\n\r\n dragMove$.pipe(\r\n switchMap((startX: number) => combineLatest(of(startX), moveEvents$)),\r\n ).subscribe(([startX, currentX]) => {\r\n const bodyWidth = document.body.offsetWidth,\r\n toRightEdge = bodyWidth - startX,\r\n isRight = currentX > startX,\r\n shift = isRight ? currentX - startX : startX - currentX,\r\n isDistanceToEdgeLess60px = isRight && toRightEdge < 60 || !isRight && startX < 60;\r\n\r\n if (isDistanceToEdgeLess60px) return;\r\n\r\n const maxShift = Math.max((isRight ? toRightEdge : startX) / 2, 60),\r\n percantage = Math.min(shift / maxShift, 1);\r\n\r\n this.drawPaginationItem(this.activeNav, !isRight, TINY_WIDTH * percantage);\r\n });\r\n\r\n dragEnd$.subscribe(() => this.resetPaginatorItem(TINY_WIDTH));\r\n\r\n return this;\r\n }\r\n\r\n private get activeNav(): HTMLElement {\r\n let navActive = Array.from(this.sliderInfo.navItems).filter(n => hasClass(n, 'tns-nav-active'));\r\n return navActive[0];\r\n }\r\n\r\n private onIndexChanged(TINY_WIDTH: number): (sliderInfo: TinySliderInfo) => void {\r\n let lastTargetIdx;\r\n\r\n return (): void => {\r\n let { index, indexCached, navItems, slideBy, slideCount } = this.sliderInfo,\r\n slidesAmount = Math.ceil(slideCount / slideBy),\r\n slideIdx = Math.ceil(index / slideBy),\r\n slideCacheIdx = Math.ceil(indexCached / slideBy),\r\n\r\n idx = slideIdx >= slidesAmount ? slideIdx - slidesAmount : slideIdx,\r\n cacheIdx = slideCacheIdx >= slidesAmount ? 0 : slideCacheIdx,\r\n visibleNavItems = Array.from(navItems).filter((e: HTMLButtonElement) => !e.style.display),\r\n nextNavItem = visibleNavItems[cacheIdx],\r\n toRight = idx > cacheIdx,\r\n\r\n slideMoreOneItem = Math.abs(idx - cacheIdx) > 1,\r\n isSameSlide = lastTargetIdx === idx,\r\n isNextIdxNegative = idx < 0;\r\n\r\n if (slideMoreOneItem || isSameSlide || isNextIdxNegative) return;\r\n\r\n this.drawPaginationItem(nextNavItem, toRight, 0)\r\n .resetPaginatorItem(TINY_WIDTH);\r\n\r\n lastTargetIdx = idx;\r\n }\r\n }\r\n\r\n private initInfitity(tnsInfo: TinySliderInfo, TINY_PAGES): SliderPagination { \r\n const navContainer = tnsInfo.navContainer;\r\n const navContainerParent = navContainer?.parentElement, // || tnsInfo.navContainerParent,\r\n wrapper = createDiv('tns-nav__wrapper');\r\n \r\n addToElement(navContainerParent, addToElement(wrapper, navContainer));\r\n\r\n this.slider.events.on('indexChanged', (tnsInfo: TinySliderInfo) => {\r\n this.adjustInfinytePagination(tnsInfo, TINY_PAGES);\r\n\r\n if (this.element.closest('.nx-stage') || this.options.autoplay)\r\n return;\r\n \r\n this.setFocusActiveTeaser(this.activeSlides, tnsInfo.index);\r\n });\r\n\r\n this.adjustInfinytePagination(tnsInfo, TINY_PAGES);\r\n\r\n return this;\r\n }\r\n\r\n setFocusActiveTeaser(activeSlides, index) {\r\n const first = activeSlides[0];\r\n\r\n if (first && first.querySelector('a')) {\r\n first.setAttribute(\"tabindex\", 0);\r\n first.querySelector('a').focus();\r\n }\r\n }\r\n\r\n private adjustInfinytePagination(\r\n {\r\n navContainer,\r\n navItems,\r\n index,\r\n slideBy,\r\n cloneCount = 0\r\n }: TinySliderInfo,\r\n navItemsToShow: number) {\r\n\r\n const navItemsVisible = Array.from(navItems).filter((e: any) => e.style.display !== 'none'),\r\n navItemsList = Array.from(navItemsVisible),\r\n navItemsLength = navItemsVisible.length,\r\n indexBySlide = Math.ceil((index - cloneCount) / slideBy),\r\n leftPosition = Math.ceil(navItemsToShow / 2),\r\n rightPosition = navItemsLength - leftPosition,\r\n\r\n isLeft = indexBySlide < leftPosition,\r\n isCenter = indexBySlide >= leftPosition && indexBySlide < rightPosition,\r\n isRight = indexBySlide >= rightPosition;\r\n let directionCorrection = '-'\r\n\r\n if (navItemsLength <= navItemsToShow) return;\r\n\r\n if (direction == 'rtl') { directionCorrection = '' }\r\n\r\n if (isLeft) {\r\n removeClassFromList(navItemsList, 'tns-nav-small');\r\n addClassToList([navItemsList[navItemsToShow - 1]], 'tns-nav-small');\r\n navContainer.style.transform = `translateX(${directionCorrection}${0}px)`;\r\n }\r\n\r\n if (isCenter) {\r\n removeClassFromList(navItemsList, 'tns-nav-small');\r\n addClassToList([navItemsList[indexBySlide - leftPosition + 1], navItemsList[indexBySlide + leftPosition - 1]], 'tns-nav-small');\r\n navContainer.style.transform = `translateX(${directionCorrection}${(indexBySlide - (leftPosition - 1)) * 15}px)`;\r\n }\r\n\r\n if (isRight) {\r\n removeClassFromList(navItemsList, 'tns-nav-small');\r\n addClassToList([navItemsList[navItemsLength - navItemsToShow]], 'tns-nav-small');\r\n navContainer.style.transform = `translateX(${directionCorrection}${(rightPosition - (leftPosition - 1)) * 15}px)`;\r\n }\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.parentNode, nodeOrigin: element.parentNode.cloneNode(true) }));\r\n\r\n SliderPagination.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n SliderPagination.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 SliderPagination.setup(moduleSelector);\r\n}\r\n\r\n","/** PURE_IMPORTS_START _map PURE_IMPORTS_END */\nimport { map } from './map';\nexport function pluck() {\n var properties = [];\n for (var _i = 0; _i < arguments.length; _i++) {\n properties[_i] = arguments[_i];\n }\n var length = properties.length;\n if (length === 0) {\n throw new Error('list of properties cannot be empty.');\n }\n return function (source) { return map(plucker(properties, length))(source); };\n}\nfunction plucker(props, length) {\n var mapper = function (x) {\n var currentProp = x;\n for (var i = 0; i < length; i++) {\n var p = currentProp[props[i]];\n if (typeof p !== 'undefined') {\n currentProp = p;\n }\n else {\n return undefined;\n }\n }\n return currentProp;\n };\n return mapper;\n}\n//# sourceMappingURL=pluck.js.map\n","/// \r\n\r\nimport SliderPagination from '../SliderPagination';\r\nimport {\r\n copyObject,\r\n} from '../../helpers/helperFunctions';\r\n\r\nconst moduleSelector = '[data-module=\"StoryStage\"]';\r\nconst defaultSliderOptions: LazyTinySliderSettings = {\r\n autoplay: false,\r\n autoplayButtonOutput: false,\r\n controls: false,\r\n container: '.nx-story-stage__slider',\r\n mouseDrag: true,\r\n speed: 0,\r\n swipeAngle: 36,\r\n slideBy: 'page',\r\n loadNext: true,\r\n loadPrev: true,\r\n items: 1,\r\n preventScrollOnTouch: 'auto',\r\n};\r\n\r\nexport default class StoryStage extends SliderPagination {\r\n stageLength: number;\r\n timerWrapper: HTMLElement;\r\n storyStage: HTMLElement;\r\n timerItem = 'nx-story-stage__timer-list__item';\r\n defaultDuration;\r\n timerDuruction;\r\n sensitiveArea = 33;\r\n isRtl: boolean;\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 StoryStage(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(element: HTMLElement, options: TinySliderSettings = copyObject(defaultSliderOptions)) {\r\n super(element, options);\r\n this.stageLength = this.slider.slideCount\r\n this.isRtl = (document.dir != undefined) ? document.dir === \"rtl\" : document.getElementsByTagName(\"html\")[0].getAttribute(\"dir\") == \"rtl\";\r\n this.storyStage = this.element.closest('.nx-story-stage') as HTMLElement;\r\n this.timerWrapper = this.storyStage.querySelector('.nx-story-stage__timer-list');\r\n this.defaultDuration = this.element.getAttribute('data-default-duration') || 3000;\r\n\r\n if (this.hasChildren) {\r\n this.timerDuruction = this.defaultDuration;\r\n\r\n this.buildTimer()\r\n .initTimer()\r\n .onAnimationEndHandler()\r\n .stopTimerOnTouchedHandler()\r\n .initSensitiveArea()\r\n .initHandlingLinks();\r\n\r\n this.slider.events.on('indexChanged', () => this.onStoryIndexChanged());\r\n }\r\n }\r\n\r\n private initHandlingLinks(): StoryStage {\r\n const storyStageLinks = Array.from(this.element.querySelectorAll('.nx-story-stage__link'));\r\n\r\n storyStageLinks.forEach((link, i) => {\r\n link.addEventListener(\"click\", (event: Event) => {\r\n const target = event.currentTarget,\r\n href = target.dataset.href;\r\n location.href = href;\r\n });\r\n });\r\n\r\n return this\r\n }\r\n\r\n private stopTimerOnTouchedHandler(): StoryStage {\r\n Array.from(this.element.querySelectorAll('.nx-slider__item')).forEach((element: HTMLElement) => {\r\n element.addEventListener('touchstart', () => this.toggleTimer(true), { passive: true });\r\n element.addEventListener('touchend', () => this.toggleTimer(), { passive: true });\r\n element.addEventListener('mousedown', () => this.toggleTimer(true));\r\n element.addEventListener('mouseup', () => this.toggleTimer());\r\n });\r\n\r\n return this\r\n }\r\n\r\n private initTimer() {\r\n this.onStoryIndexChanged();\r\n\r\n return this;\r\n }\r\n\r\n private onStoryIndexChanged() {\r\n const { navCurrentIndex, slideItems } = this.sliderInfo;\r\n const activeSlide = slideItems[navCurrentIndex];\r\n const video: HTMLVideoElement = activeSlide.querySelector('video') as HTMLVideoElement;\r\n const currentSlideDuration = activeSlide.getAttribute('data-duration');\r\n\r\n if (video && parseInt(currentSlideDuration) == 0) {\r\n this.videoStory(video, navCurrentIndex);\r\n } else {\r\n\r\n this.timerDuruction = (parseInt(currentSlideDuration) > 0) ? currentSlideDuration : this.defaultDuration;\r\n this.startTimer();\r\n }\r\n }\r\n\r\n private videoStory(video, index) {\r\n if (video.duration) {\r\n this.timerDuruction = video.duration * 1000;\r\n this.startTimer();\r\n } else {\r\n video.onloadeddata = () => {\r\n this.timerDuruction = video.duration * 1000;\r\n\r\n this.storyStage.querySelector(`.${this.timerItem}[data-timer-index=\"${index}\"] > span`)\r\n .setAttribute(\"style\", `animation-duration:${this.timerDuruction}ms; -webkit-animation-duration: ${this.timerDuruction}ms;`);\r\n\r\n this.startTimer();\r\n };\r\n };\r\n }\r\n\r\n private onAnimationEndHandler(): StoryStage {\r\n Array.from(this.storyStage.querySelectorAll('.nx-story-stage__timer--loader')).forEach((element: HTMLElement) => {\r\n element.addEventListener('animationend', () => this.slider.goTo('next'))\r\n });\r\n\r\n return this\r\n }\r\n\r\n private toggleTimer(stopTimer: boolean = false) {\r\n const { navCurrentIndex, slideItems, slideCount } = this.sliderInfo;\r\n if (slideCount == 1) return;\r\n \r\n const activeTimer: HTMLElement = this.storyStage.querySelector(`.${this.timerItem}[data-timer-index=\"${navCurrentIndex}\"] > span`) as HTMLElement;\r\n let activeSlide = slideItems[navCurrentIndex];\r\n const video: HTMLVideoElement = activeSlide.querySelector('video') as HTMLVideoElement;\r\n\r\n if (stopTimer) {\r\n activeTimer.setAttribute(\"style\", `${activeTimer.getAttribute('style')} animation-play-state: paused;`);\r\n if (video) video.pause();\r\n\r\n } else {\r\n activeTimer.setAttribute(\"style\", `animation-duration:${this.timerDuruction}ms; -webkit-animation-duration: ${this.timerDuruction}ms;`);\r\n if (video) video.play();\r\n }\r\n }\r\n\r\n private startTimer() {\r\n let { navCurrentIndex, slideCount } = this.sliderInfo;\r\n if (slideCount == 1) return;\r\n\r\n this.updateTimer(navCurrentIndex, slideCount);\r\n\r\n if (navCurrentIndex == slideCount) {\r\n navCurrentIndex = 0;\r\n }\r\n\r\n this.storyStage.querySelector(`.${this.timerItem}[data-timer-index=\"${navCurrentIndex}\"]`)\r\n .classList.add(`${this.timerItem}--active`);\r\n\r\n return this\r\n }\r\n\r\n private buildTimer() {\r\n const { slideCount, slideItems } = this.sliderInfo;\r\n let items = \"\";\r\n\r\n if (slideCount === 1) {\r\n this.timerWrapper.style.display = 'none';\r\n return this;\r\n }\r\n\r\n\r\n for (let i = 0; i < slideCount; i++) {\r\n items +=`
\r\n \r\n \r\n
`;\r\n }\r\n\r\n this.timerWrapper.innerHTML = items\r\n return this\r\n }\r\n\r\n private updateTimer(index, slideCount) {\r\n for (let i = 0; i < index; i++) {\r\n this.storyStage.querySelector(`.${this.timerItem}[data-timer-index=\"${i}\"]`)\r\n .classList.add(`${this.timerItem}--full`);\r\n }\r\n\r\n for (let i = slideCount - 1; i >= index; i--) {\r\n this.storyStage.querySelector(`.${this.timerItem}[data-timer-index=\"${i}\"]`).classList.remove(`${this.timerItem}--full`);\r\n this.storyStage.querySelector(`.${this.timerItem}[data-timer-index=\"${i}\"]`).classList.remove(`${this.timerItem}--active`);\r\n\r\n }\r\n }\r\n\r\n private getDuration(slide) {\r\n\r\n const slideItem: HTMLElement = slide as HTMLElement;\r\n const sliderSuration = slideItem.getAttribute('data-duration');\r\n\r\n return (parseInt(sliderSuration) != 0) ? sliderSuration : this.defaultDuration;\r\n }\r\n\r\n private initSensitiveArea(): StoryStage {\r\n this.element.addEventListener('click', (e) => this.onSliderClick(e));\r\n this.element.addEventListener('mousemove', (e) => this.onMouseMove(e));\r\n\r\n return this;\r\n }\r\n\r\n private onSliderClick(e) {\r\n const target = e.target as HTMLElement;\r\n const sensitiveArea = this.onSensitiveArea(e);\r\n\r\n if (target.closest('a') || target.nodeName == \"A\")\r\n return false;\r\n\r\n if (sensitiveArea)\r\n this.slider.goTo(sensitiveArea);\r\n }\r\n\r\n private onMouseMove(e) {\r\n if (this.onSensitiveArea(e)) {\r\n this.element.classList.add('nx-story-stage--cursor-pointer')\r\n } else {\r\n this.element.classList.remove('nx-story-stage--cursor-pointer')\r\n }\r\n }\r\n\r\n private onSensitiveArea(e) {\r\n const clientX = e.clientX;\r\n const slideLeft = window.innerWidth * this.sensitiveArea / 100;\r\n const slideToRigt = window.innerWidth * (100 - this.sensitiveArea) / 100;\r\n\r\n if (clientX <= slideLeft) {\r\n return this.isRtl ? 'next' : 'prev';\r\n } else if (clientX >= slideToRigt) {\r\n return this.isRtl ? 'prev' : 'next';\r\n }\r\n\r\n return null\r\n }\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 StoryStage.setup(moduleSelector);\r\n\r\n module.hot.accept(() => {\r\n StoryStage.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 StoryStage.setup(moduleSelector);\r\n}\r\n"],"names":["moduleSelector","direction","document","dir","SliderPagination","setup","selector","Array","from","querySelectorAll","filter","node","dataset","moduleInitialized","forEach","element","window","requestAnimationFrame","setTimeout","constructor","options","super","this","hasChildren","initSliderPagination","convertAnchorToSpan","children","length","anchor","span","innerHTML","className","setAttribute","getAttribute","classList","add","parentNode","replaceChild","addEventListener","location","replace","initLiquid","initInfitity","sliderInfo","resetPaginatorItem","width","navItems","pipe","navItm","querySelector","liquidElm","subscribe","style","transition","opacity","remove","drawPaginationItem","currentNav","isRight","controller","firstElementChild","left","right","TINY_WIDTH","onDrag","slider","events","on","onIndexChanged","dragMove$","passive","dragEnd$","mouseMove$","clientX","touchMove$","changedTouches","moveEvents$","startX","of","currentX","toRightEdge","body","offsetWidth","shift","maxShift","Math","max","percantage","min","activeNav","n","lastTargetIdx","index","indexCached","slideBy","slideCount","slidesAmount","ceil","slideIdx","slideCacheIdx","idx","cacheIdx","nextNavItem","e","display","toRight","abs","tnsInfo","TINY_PAGES","navContainer","navContainerParent","parentElement","wrapper","adjustInfinytePagination","closest","autoplay","setFocusActiveTeaser","activeSlides","first","focus","cloneCount","navItemsToShow","navItemsVisible","navItemsList","navItemsLength","indexBySlide","leftPosition","rightPosition","isCenter","directionCorrection","transform","pluck","properties","_i","arguments","Error","source","props","mapper","x","currentProp","i","p","plucker","defaultSliderOptions","autoplayButtonOutput","controls","container","mouseDrag","speed","swipeAngle","loadNext","loadPrev","items","preventScrollOnTouch","StoryStage","timerItem","sensitiveArea","stageLength","isRtl","undefined","getElementsByTagName","storyStage","timerWrapper","defaultDuration","timerDuruction","buildTimer","initTimer","onAnimationEndHandler","stopTimerOnTouchedHandler","initSensitiveArea","initHandlingLinks","onStoryIndexChanged","link","event","href","currentTarget","toggleTimer","navCurrentIndex","slideItems","activeSlide","video","currentSlideDuration","parseInt","videoStory","startTimer","duration","onloadeddata","goTo","stopTimer","activeTimer","pause","play","updateTimer","getDuration","slide","sliderSuration","onSliderClick","onMouseMove","target","onSensitiveArea","nodeName","slideLeft","innerWidth","slideToRigt"],"sourceRoot":""}