{"version":3,"file":"carousel.js","sources":["../../../../src/assets/scripts/carousel.entry.js"],"sourcesContent":["window.arjoCarousel =\n window.arjoCarousel ||\n (function () {\n const carousels = {};\n\n window.arjoEventHandlers?.add('carouselModule', _init, 1);\n\n function _init() {\n let carouselContainers = document.querySelectorAll('.arjo-o-carousel');\n\n for (let carousel of carouselContainers) {\n const swiper = carousel.querySelector('.swiper');\n if (swiper.classList.contains('swiper-initialized')) continue;\n\n const isMultipleSlides = swiper.querySelectorAll('.swiper-slide').length > 1;\n const hasNavigation = carousel.dataset.hasNavigation === 'true' || false;\n const autoplayDelay = swiper.querySelector('.swiper-slide[data-swiper-autoplay]');\n\n new window.Swiper(swiper, {\n speed: 400,\n spaceBetween: 40,\n loop: isMultipleSlides,\n navigation: !hasNavigation\n ? false\n : {\n nextEl: carousel.querySelector('.arjo-o-carousel__button-next'),\n prevEl: carousel.querySelector('.arjo-o-carousel__button-prev'),\n },\n touchMoveStopPropagation: false,\n updateOnWindowResize: true,\n ...(isMultipleSlides &&\n autoplayDelay && {\n autoplay: {\n delay: autoplayDelay,\n disableOnInteraction: false,\n },\n }),\n pagination: !isMultipleSlides\n ? false\n : {\n el: carousel.querySelector('.arjo-o-carousel__pagination'),\n clickable: true,\n bulletActiveClass: 'arjo-o-carousel__bullet--active',\n bulletClass: 'arjo-o-carousel__bullet',\n renderBullet: _renderBullet,\n },\n on: {\n click: (swiper) => {\n swiper.autoplay.stop();\n },\n afterInit: (swiper) => {\n const isAutoPlay = isMultipleSlides ? !!swiper.el.querySelector('.swiper-slide[data-swiper-autoplay]') : false;\n const id = 'arjo-swiper-' + new Date().getTime();\n swiper.el.id = id;\n carousels[id] = { swiper, videos: [] };\n swiper.el.addEventListener('autoplayrun', () => {\n if (isAutoPlay) {\n swiper.autoplay.start();\n }\n });\n swiper.el.addEventListener('autoplaystop', () => {\n swiper.autoplay.stop();\n });\n\n swiper.el.addEventListener('slideTo', (e) => {\n const { slideIndex } = e.detail;\n swiper.slideToLoop(parseInt(slideIndex));\n });\n\n _handleModelViewer(swiper);\n\n _handleVideos(carousel, id);\n\n if (!isMultipleSlides) return;\n\n _handlePaginationClick(carousel, swiper);\n _handleDispatchInitializedSignal();\n },\n slideChangeTransitionStart: (swiper) => {\n _updateTransitionDuration(swiper);\n },\n slideChangeTransitionEnd: (swiper) => {\n _pauseVideos(swiper);\n },\n\n beforeTransitionStart: (swiper) => {\n _handleModelViewer(swiper);\n },\n },\n });\n }\n }\n\n function _renderBullet(_, className) {\n return '';\n }\n\n // Stop the autoplay mode when user click to the pagination items\n function _handlePaginationClick(carousel, swiper) {\n let bullets = carousel.querySelectorAll('.arjo-o-carousel__bullet');\n for (let bullet of bullets) {\n bullet.addEventListener('click', () => swiper.autoplay.stop());\n }\n }\n\n // Reset the video id to prevent the id duplication error\n function _handleVideos(carousel, id) {\n let videoContainers = carousel.querySelectorAll('.arjo-a-wistia-video');\n for (let i = 0; i < videoContainers.length; i++) {\n let videoId = videoContainers[i].dataset.id || '';\n let video = videoContainers[i].querySelector('.wistia_embed');\n video.id = 'wistia-' + videoId + '-carousel-' + i;\n carousels[id].videos.push({ id: video.id, handle: null });\n }\n }\n\n // Pause the videos when the current slide is changed\n function _pauseVideos(swiper) {\n carousels[swiper.el.id]?.videos.forEach((item) => {\n let video = _getVideoHandle(item);\n if (video && video.state() === 'playing') {\n video.pause();\n }\n });\n }\n\n function _getVideoHandle(video) {\n if (!video || !video.id) return null;\n if (video.handle) return video.handle;\n video.handle = Wistia.api(video.id);\n return video.handle;\n }\n\n function _updateTransitionDuration(swiper) {\n let currentSlide = swiper.slides[swiper.activeIndex];\n if (!currentSlide) return;\n let timeout = parseInt(currentSlide.dataset.swiperAutoplay) || 2000;\n timeout += 500;\n swiper.pagination.bullets.forEach((item, index) => {\n item.querySelector('span').style.transitionDuration = index === swiper.realIndex ? timeout + 'ms' : null;\n });\n }\n\n function _handleModelViewer(swiper) {\n let currentSlide = swiper.slides[swiper.activeIndex];\n if (!currentSlide) return;\n let modelViewer = currentSlide.querySelector('model-viewer');\n if (modelViewer) {\n !modelViewer.loaded && swiper.autoplay.stop();\n }\n }\n\n function _handleDispatchInitializedSignal() {\n window.dispatchEvent(new CustomEvent('swiper-initialized'));\n }\n\n return carousels;\n })();\n"],"names":["_a","carousels","_init","carouselContainers","carousel","swiper","isMultipleSlides","hasNavigation","autoplayDelay","_renderBullet","isAutoPlay","id","e","slideIndex","_handleModelViewer","_handleVideos","_handlePaginationClick","_handleDispatchInitializedSignal","_updateTransitionDuration","_pauseVideos","_","className","bullets","bullet","videoContainers","i","videoId","video","item","_getVideoHandle","currentSlide","timeout","index","modelViewer"],"mappings":"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"}