{"version":3,"sources":["webpack:///./modules/GallerySlider.ts"],"names":["__webpack_require__","r","__webpack_exports__","uikit__WEBPACK_IMPORTED_MODULE_0__","uikit__WEBPACK_IMPORTED_MODULE_0___default","n","_helpers_helperFunctions__WEBPACK_IMPORTED_MODULE_1__","_helpers_DOMHelpers__WEBPACK_IMPORTED_MODULE_2__","direction","document","dir","GallerySlider","element","_this","this","lastActiveSlide","isExecuted","customPagination","querySelector","sliderSelector","sliderItems","querySelectorAll","forEach","el","i","img","Object","length","classList","add","slider","a","center","util","on","$el","e","target","sliderUl","closest","naviationDots","naviationChevrons","loadNextSlideImage","loadPrevSlideImage","updateNextSlideItem","updatePrevSlideItem","setSliderHeight","figureHeight","offsetHeight","sliderHeight","style","top","height","itemPadding","setAttribute","css","transition","complete","naturalHeight","onload","animateCustomNavDots","setup","selector","Array","from","filter","node","dataset","moduleInitialized","prototype","prevElement","previousElementSibling","nextElement","nextElementSibling","getSliderIndex","parentNode","children","indexOf","remove","firstElementChild","lastElementChild","getSliderChildren","currentIndex","transformValue","navItemsList","navItemLength","visibleDotsToShow","Math","min","directionCorrection","leftPosition","slice","rightPosition","isCenter","isRight","transform"],"mappings":"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","file":"./modules/GallerySlider.a96e13a8.js","sourcesContent":["import UIkit from 'uikit';\r\n\r\nconst moduleSelector = '[data-module=\"GallerySlider\"]';\r\n\r\nimport { isMobile } from '../helpers/helperFunctions';\r\n\r\nimport { setSourceAttr, hasSliderImageToBeLoad, removeClass, removeClassFromList, addClassToList } from '../helpers/DOMHelpers';\r\n\r\nconst direction: string = document.dir;\r\nexport default class GallerySlider {\r\n isExecuted: boolean;\r\n sliderUl: HTMLElement;\r\n lastActiveSlide: number = 0;\r\n customPagination: HTMLElement;\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 GallerySlider(element);\r\n element.dataset.moduleInitialized = 'true';\r\n });\r\n }\r\n\r\n constructor(public element: HTMLElement) {\r\n this.element = element,\r\n this.isExecuted = false,\r\n this.customPagination = this.element.querySelector('.cw-custom_pagination');\r\n\r\n const sliderSelector = this.element.querySelector('.cw-gallery-slider'),\r\n sliderItems = sliderSelector.querySelectorAll('.cw-slider-item');\r\n\r\n sliderItems.forEach((el, i) => {\r\n let img = el.querySelector('img');\r\n\r\n if (i <= 1) {\r\n setSourceAttr(img);\r\n }\r\n\r\n if (i == sliderItems.length - 1) {\r\n setSourceAttr(img);\r\n el.classList.add('prev-item');\r\n }\r\n });\r\n\r\n var slider = UIkit.slider(sliderSelector, {\r\n center: isMobile() ? false : true,\r\n });\r\n\r\n UIkit.util.on(slider.$el, 'itemshow', (e) => {\r\n const target = e.target,\r\n // img = UIkit.util.find('img', e.srcElement),\r\n img = target.querySelector('img'),\r\n sliderUl = target.closest('.cw-gallery-slider'),\r\n naviationDots = sliderUl.querySelector('.cw-custom_pagination'),\r\n naviationChevrons = sliderUl.querySelector('.cw-controls');\r\n\r\n\r\n this.loadNextSlideImage(target);\r\n this.loadPrevSlideImage(target);\r\n\r\n if (!isMobile()) {\r\n removeClass(target, 'prev-item');\r\n removeClass(target, 'next-item');\r\n\r\n this.updateNextSlideItem(target);\r\n this.updatePrevSlideItem(target);\r\n }\r\n\r\n const setSliderHeight = function (img) {\r\n let itemPadding: number = 2 * 30,\r\n figureHeight = target.querySelector('figure').offsetHeight + itemPadding,\r\n sliderHeight: any = figureHeight + 30;\r\n\r\n naviationDots.style.top = img.height + itemPadding + 'px';\r\n naviationChevrons.style.top = img.height / 2 + itemPadding / 2 + 'px';\r\n\r\n target.style.height = figureHeight + 'px';\r\n target.setAttribute('data-slider-height', sliderHeight + '');\r\n\r\n\r\n UIkit.util.css(slider.$el, {\r\n height: sliderHeight + 'px',\r\n transition: \"height 0.3s ease-in-out\"\r\n });\r\n }\r\n\r\n if (img.complete && img.naturalHeight !== 0) {\r\n setSliderHeight(img);\r\n } else {\r\n img.onload = () => {\r\n setSliderHeight(img);\r\n };\r\n }\r\n\r\n this.animateCustomNavDots(target);\r\n });\r\n }\r\n\r\n loadPrevSlideImage(target) {\r\n const prevElement = target.previousElementSibling;\r\n\r\n if (prevElement && hasSliderImageToBeLoad(prevElement.querySelector('img'))) {\r\n setSourceAttr(prevElement.querySelector('img'));\r\n }\r\n }\r\n\r\n loadNextSlideImage(target) {\r\n const nextElement = target.nextElementSibling;\r\n\r\n if (nextElement && hasSliderImageToBeLoad(nextElement.querySelector('img'))) {\r\n setSourceAttr(nextElement.querySelector('img'));\r\n }\r\n }\r\n\r\n getSliderIndex(target): number {\r\n return Array.from(target.parentNode.children).indexOf(target);\r\n }\r\n\r\n updateNextSlideItem(target) {\r\n const nextElement = target.nextElementSibling,\r\n sliderUl = target.parentNode,\r\n children = sliderUl.children;\r\n\r\n if (children.length > 1) {\r\n if (nextElement) {\r\n Array.from(children).forEach(element => {\r\n element.classList.remove('next-item');\r\n });\r\n nextElement.classList.add('next-item');\r\n }\r\n\r\n else if (nextElement === null && children.length > 2) { //nextElelemnt= null, last item is reached.\r\n sliderUl.firstElementChild.classList.add('next-item');\r\n }\r\n }\r\n }\r\n\r\n updatePrevSlideItem(target) {\r\n const prevElement = target.previousElementSibling;\r\n const sliderUl = target.parentNode,\r\n children = sliderUl.children;\r\n\r\n if (sliderUl.children.length > 1) {\r\n if (prevElement) {\r\n Array.from(children).forEach(element => {\r\n element.classList.remove('prev-item');\r\n });\r\n prevElement.classList.add('prev-item');\r\n }\r\n else if (prevElement === null && children.length > 2) { // prevElement = null, first item is reached.\r\n sliderUl.lastElementChild.classList.add('prev-item');\r\n }\r\n }\r\n }\r\n\r\n getSliderChildren(target) {\r\n const children = target.parentNode.children.length;\r\n return children;\r\n }\r\n\r\n animateCustomNavDots(target) {\r\n const naviationDots = this.customPagination.querySelector('.uk-slider-nav'),\r\n dotDistance: number = 18,\r\n leftCorrection: number = 3,\r\n currentIndex: number = this.getSliderIndex(target),\r\n transformValue: number = (currentIndex - leftCorrection) * dotDistance,\r\n navItemsList = Array.from(naviationDots.children),\r\n navItemLength = navItemsList.length,\r\n visibleDotsToShow = Math.min(7, navItemLength);\r\n\r\n let directionCorrection = \"-\",\r\n leftPosition = navItemsList.slice(0, 4).length,\r\n rightPosition = navItemsList.length - leftCorrection;\r\n\r\n const isLeft = currentIndex < leftPosition,\r\n isCenter = currentIndex >= leftPosition && currentIndex < rightPosition,\r\n isRight = currentIndex >= rightPosition;\r\n\r\n if (direction == 'rtl') { directionCorrection = '' };\r\n\r\n if (isLeft) {\r\n removeClassFromList(navItemsList, 'uk-dotnav_small');\r\n addClassToList([navItemsList[visibleDotsToShow - 1]], 'uk-dotnav_small');\r\n naviationDots.style.transform = `translateX(${directionCorrection}${0}px)`;\r\n }\r\n\r\n if (isCenter) {\r\n removeClassFromList(navItemsList, 'uk-dotnav_small');\r\n addClassToList([navItemsList[currentIndex + leftCorrection], navItemsList[currentIndex - leftCorrection]], 'uk-dotnav_small');\r\n naviationDots.style.transform = `translateX(${directionCorrection}${transformValue}px)`;\r\n }\r\n\r\n if (isRight) {\r\n removeClassFromList(navItemsList, 'uk-dotnav_small');\r\n addClassToList([navItemsList[navItemLength - visibleDotsToShow]], 'uk-dotnav_small');\r\n naviationDots.style.transform = `translateX(${directionCorrection}${rightPosition - (leftPosition) * 18}px)`;\r\n }\r\n }\r\n}\r\n\r\nnew GallerySlider.setup();"],"sourceRoot":""}