{"version":3,"sources":["webpack:///./widgets/slideshow/index.ts","webpack:///./node_modules/ui-theme/widgets/slideshow/js/announement-slideshow.ts","webpack:///./node_modules/@atypon/ui-bundle-generator/.generated/groups/_slideshow.js"],"names":["initialize","this","setMaxWidth","hideShowSwiper","options","elements","swiper","dataset","speed","parseInt","items","isWithCoverImages","wrapper","parentElement","classList","contains","window","outerWidth","sm","slidesPerView","isNaN","autoplay","delay","disableOnInteraction","loopAdditionalSlides","loop","a11y","enabled","disableA11y","prevSlideMessage","prevSlide","nextSlideMessage","nextSlide","paginationBulletMessage","goToSlide","spaceBetween","swiperMargin","breakpoints","responsiveOption","centeredSlides","centeredOption","freeMode","freeModeOption","pagination","navigation","init","autoHeight","autoheight","effect","animation","clickable","grabCursor","observeParents","observer","hasObserver","on","slideChangeTransitionEnd","bind","targetNode","domUtils","getElement","MutationObserver","mutationsList","mutation","type","attributeName","add","disconnect","observe","attributes","querySelectorAll","forEach","slide","offsetHeight","style","minHeight","SlideShow","Selectors","ClassList","Texts","base","shadows","animatingClass","initElements","selectors","isAnimatable","watchSlidesProgress","addEventListeners","length","onProgress","onTransitionStart","onTransitionEnd","onClick","remove","event","target","nextEl","prevEl","rangeCalc","getSlideProgress","shadowLineTop","shadowLineBottom","cssText","multiplier","slides","slideProgress","Math","abs","progress","slideProgressLimit","AnnouncementsSlideShow","main","UX","$slideShow","Array","prototype","slice","call","document","getElementsByClassName","$announcementsSlideShow","slideShow","map","item","err","console","error","announcementsSlideShow"],"mappings":"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","file":"js/slideshow-f596eb861a9230637f12.js","sourcesContent":["import EurekaSlideShow, {\n SlideShowElements, SlideShowSelectors, SlideShowClassList, SlideShowTexts\n} from 'ui-theme/widgets/slideshow';\nimport { BaseInjector } from 'ui-theme/js/base';\nimport { DOMUtils, Inject } from '@atypon/ui-utils';\nimport bootstrapBreakpoints from 'ui-theme/utility/grid';\n\nclass Texts extends SlideShowTexts { }\n\nclass ClassList extends SlideShowClassList { }\n\nclass Selectors extends SlideShowSelectors {\n}\n\nclass Elements extends SlideShowElements{\n}\n\ninterface SlideShow {\n get elements(): Elements;\n get texts(): Texts;\n get classList(): ClassList;\n get selectors(): Selectors;\n}\n\n@BaseInjector(Selectors, Elements, ClassList, Texts)\n\n\nclass SlideShow extends EurekaSlideShow {\n\n @Inject()\n domUtils:DOMUtils;\n\n initialize(): void {\n super.initialize();\n this.setMaxWidth();\n this.hideShowSwiper()\n }\n\n options() {\n const swiper = this.elements.swiper;\n const options = swiper.dataset ?? {};\n const speed = parseInt(options.speed);\n let items = parseInt(options.items);\n const isWithCoverImages = !!this.wrapper.parentElement.classList.contains(\"slideshow-with-cover-images\");\n\n if(isWithCoverImages && window.outerWidth < bootstrapBreakpoints.sm) {\n items = 2\n }\n\n if(isWithCoverImages && window.outerWidth < 400) {\n items = 1\n }\n\n const slidesPerView = !isNaN(items)\n ? items \n : isWithCoverImages \n ? '1' \n : 'auto';\n\n const autoplay = options.autoplay && options.autoplay !== 'false' ? {\n delay: speed,\n disableOnInteraction: false,\n } : false;\n const loopAdditionalSlides = options.loop ? 2 : null; //clone additional two slides to prevent the issue of extra next/prev items not showing\n return {\n a11y: {\n enabled: !options.disableA11y,\n prevSlideMessage: options.prevSlide,\n nextSlideMessage: options.nextSlide,\n paginationBulletMessage: `${options.goToSlide} {{index}}`\n },\n spaceBetween: this.swiperMargin,\n breakpoints: this.responsiveOption,\n centeredSlides: this.centeredOption,\n freeMode: this.freeModeOption,\n pagination: this.pagination,\n navigation: this.navigation,\n init: false,\n autoHeight: (options.autoheight && options.autoheight !== 'false'),\n effect: options.animation,\n slidesPerView: slidesPerView,\n loop: (options.loop && options.loop != 'false'),\n loopAdditionalSlides: loopAdditionalSlides,\n clickable: true,\n grabCursor: true,\n observeParents: true,\n observer: this.hasObserver,\n autoplay,\n on: {\n slideChangeTransitionEnd: this.slideChangeTransitionEnd.bind(this)\n }\n };\n }\n\n hideShowSwiper() { \n if(this.wrapper.parentElement.classList.contains(\"slideshow-with-cover-images\")) { \n const targetNode = this.domUtils.getElement(\".swiper-slide\" , this.wrapper);\n \n \n const callback = (mutationsList, observer) => {\n for (let mutation of mutationsList) {\n if (mutation.type === 'attributes' && mutation.attributeName === 'class') {\n this.elements.swiper.classList.add('loaded');\n observer.disconnect();\n break;\n }\n }\n };\n\n const observer = new MutationObserver(callback);\n observer.observe(targetNode, { attributes: true });\n\n // Manually trigger the callback if the class is already present\n if (targetNode.classList.contains('swiper-slide-duplicate')) {\n this.elements.swiper.classList.add('loaded');\n observer.disconnect();\n }\n }\n }\n\n setMaxWidth() {\n if(this.wrapper.parentElement && this.wrapper.parentElement.classList.contains(\"full-width-slideshow\")) {\n let maxWidth = 0;\n this.wrapper.querySelectorAll('.swiper-slide').forEach((slide : HTMLElement)=> {\n if(slide.offsetHeight > maxWidth) {\n maxWidth = slide.offsetHeight\n }\n })\n\n if(maxWidth) {\n this.wrapper.querySelectorAll('.card-slide').forEach((slide: HTMLElement)=> {\n slide.style.minHeight = `${maxWidth}px`\n })\n }\n }\n }\n}\n\nexport default SlideShow;\n\nexport {\n Elements as SlideShowElements,\n Selectors as SlideShowSelectors,\n ClassList as SlideShowClassList,\n Texts as SlideShowTexts,\n}","import SlideShow, { SlideShowClassList, SlideShowElements, SlideShowOptions, SlideShowSelectors, SlideShowTexts } from '..';\nimport { BaseInjector } from '../../../js/base';\nimport { querySelectorAll, isIE, EmptyNodeList } from '../../../utility/utils/index';\nimport Swiper from 'swiper';\n\nclass Texts extends SlideShowTexts { }\n\nclass ClassList extends SlideShowClassList {\n base = 'slideshow--is-animating';\n shadows = 'slideshow--animate-shadow';\n}\n\nclass Selectors extends SlideShowSelectors {\n shadows = '.announcement__slideshow__shadow';\n animatingClass = 'slideshow--is-animating';\n}\n \nclass Elements extends SlideShowElements {\n selectors: Selectors;\n shadows: NodeListOf = new EmptyNodeList();\n\n initElements() {\n super.initElements()\n this.shadows = querySelectorAll(this.selectors.shadows, this.wrapper);\n }\n}\n\n\ninterface AnnouncementsSlideShow extends SlideShow {\n get selectors(): Selectors;\n get classList(): ClassList;\n get elements(): Elements;\n get texts(): Texts;\n}\n\n@BaseInjector(Selectors, Elements, ClassList, Texts)\nclass AnnouncementsSlideShow extends SlideShow {\n\n options(): SlideShowOptions {\n const options = super.options();\n if (!this.isAnimatable) {\n return options;\n }\n const customOptions = {\n watchSlidesProgress: true,\n speed: 400\n };\n return { ...options, ...customOptions };\n }\n\n get isAnimatable() {\n return true;\n }\n\n addEventListeners(swiper) {\n super.addEventListeners(swiper);\n if (!this.isAnimatable || !this.elements.shadows.length) {\n return;\n }\n swiper\n .on('progress', this.onProgress.bind(this))\n .on('transitionStart', this.onTransitionStart.bind(this))\n .on('transitionEnd', this.onTransitionEnd.bind(this));\n\n if (!isIE()) {\n swiper.on('click', this.onClick.bind(this));\n }\n }\n\n\n\n /**\n *\n */\n onTransitionStart() {\n this.wrapper.classList.add(this.classList.base);\n }\n\n /**\n *\n */\n onTransitionEnd() {\n this.wrapper.classList.remove(this.classList.base);\n }\n\n /**\n * Check that the click was on the navigation buttons and add class shadow\n *\n * @param swiper\n * @param event\n */\n onClick(swiper, event) {\n const { target } = event;\n if (target !== swiper.navigation.nextEl && target !== swiper.navigation.prevEl) {\n return;\n }\n this.wrapper.classList.add(this.classList.shadows);\n }\n\n /**\n * Remove the shadow animator\n *\n * @param swiper\n */\n slideChangeTransitionEnd(swiper) {\n this.wrapper.classList.remove(this.classList.shadows);\n super.slideChangeTransitionEnd(swiper);\n }\n\n /**\n * Animate the shadows based on the progress of pointer drag\n *\n * @param swiper\n * @param _\n */\n onProgress(swiper: Swiper) {\n const shadows = this.elements.shadows;\n\n if (!shadows.length) {\n return;\n }\n\n const rangeCalc = this.getSlideProgress.bind(this, swiper);\n const { 0: shadowLineTop, 1: shadowLineBottom } = shadows;\n if (shadowLineTop) {\n shadowLineTop.style.cssText = `\n width: calc(100% - ${rangeCalc(128)}px);\n left: ${rangeCalc(64)}px;\n transform: scaleY(${rangeCalc(2)})\n `;\n }\n if (shadowLineBottom) {\n shadowLineBottom.style.cssText = `\n width: calc(100% - ${rangeCalc(48)}px);\n left: ${rangeCalc(24)}px;\n transform: scaleY(${rangeCalc(2)})\n `;\n }\n }\n\n /**\n *\n * @param multiplier\n */\n getSlideProgress(swiper: Swiper, multiplier): number {\n if (swiper.slides) {\n // slide progress only decimal positive number minus 0.5 (0 ~ .5)\n const slide = swiper.slides[0] as any;\n const slideProgress = Math.abs((slide.progress % 1) - 0.5);\n // set slider progress lower limit (0) && upper limit (0.5)\n let slideProgressLimit = 0;\n if (slideProgress >= 0) {\n slideProgressLimit = (slideProgress > 0.5) ? 0.5 : slideProgress;\n }\n // slide progress range (0.5 ~ 0 ~ 0.5) * multiplier\n return slideProgressLimit * multiplier;\n }\n }\n\n}\n\nexport default AnnouncementsSlideShow;\n\nexport {\n Elements as AnnouncementsSlideShowElements,\n Selectors as AnnouncementsSlideShowSelectors,\n ClassList as AnnouncementsSlideShowClassList,\n Texts as AnnouncementsSlideShowTexts\n}","\n import SlideShow from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/app/widgets/slideshow/index'; \nimport AnnouncementsSlideShow from '/mnt/ssd/na101/home/literatum/sourcegit/ui-products-branches/maint-250107-f18a1bc8/ui-products/app/node_modules/ui-theme/widgets/slideshow/js/announement-slideshow'; \nconst main = (UX) => {\n const $slideShow = Array.prototype.slice.call(document.getElementsByClassName('slideshow')),\n $announcementsSlideShow = Array.prototype.slice.call(document.getElementsByClassName('announcement__slideshow'))\n\ntry {\n if ($slideShow.length ) {\n UX.slideShow = $slideShow\n .map(item=>new SlideShow(item).initialize())\n }\n } catch (err) {\n console.error(err);\n }\n \ntry {\n if ($announcementsSlideShow.length ) {\n UX.announcementsSlideShow = $announcementsSlideShow\n .map(item=>new AnnouncementsSlideShow(item).initialize())\n }\n } catch (err) {\n console.error(err);\n }\n \n}\n\n export default main;\n "],"sourceRoot":""}