{"version":3,"sources":["webpack://frontendplaceholder/./Src/Scripts/components/media-section.js"],"names":["Swiper","use","Navigation","Pagination","Controller","Scrollbar","Autoplay","constructor","elm","args","isEventGallery","classList","contains","swiperElem","querySelector","swiperModalElem","modalWrapper","closeModalBtn","amountOfSlides","querySelectorAll","length","swiper","slider","modal","creditContainer","interactingWithThumbnails","interactingWithSwiper","swiperControls","options","loop","autoHeight","spaceBetween","centeredSlides","watchOverflow","speed","zoom","autoplay","delay","disableOnInteraction","scrollbar","el","pagination","type","formatFractionCurrent","number","formatFractionTotal","on","touchStart","slideChange","x","window","loadResource","target","slide","slides","activeIndex","innerHTML","dataset","creditText","swiperThumbnails","slideToLoop","realIndex","afterInit","setTimeout","update","navigation","nextEl","prevEl","modalOptions","stop","sliderMove","video","iframe","readyState","load","play","originalUrl","src","prevSlide","previousIndex","pause","stopAutoplayIframe","addEventListener","thumbnailsSwiperElem","thumbnailSwiperOptions","slidesPerView","slideToClickedSlide","realIndexChange","snapGrid","slidesGrid","swiperls","push","swiperModal","replace","closeModal","remove","forEach","currentTime","document","body","controller","control","add","elem","autoplayIframe","evt","keyCode","slidePrev","slideNext","closest","e","preventDefault"],"mappings":"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","file":"1758.a51862c8c5822e532447.js","sourcesContent":["import Swiper, { Navigation, Pagination, Controller, Scrollbar, Autoplay } from 'swiper';\nSwiper.use([Navigation, Pagination, Controller, Scrollbar, Autoplay]);\n\nexport default class MediaSection {\n constructor(elm, args) {\n const isEventGallery = elm.classList.contains('media-section--event');\n const swiperElem = elm.querySelector('.swiper-container');\n const swiperModalElem = elm.querySelector('.media-section__modal .swiper-container.swiper-modal');\n const modalWrapper = elm.querySelector('.media-section__modal');\n const closeModalBtn = elm.querySelector('.modal__close');\n const amountOfSlides = swiperElem.querySelectorAll('.swiper-slide').length;\n\n let swiper;\n const slider = elm.querySelector('.slider');\n const modal = elm.querySelector('.modal');\n const creditContainer = elm.querySelector('[data-credit-container]');\n let interactingWithThumbnails = false;\n let interactingWithSwiper = true;\n const swiperControls = elm.querySelector('.swiper-controls');\n\n const options = {\n loop: amountOfSlides > 1 && !isEventGallery,\n autoHeight: true,\n spaceBetween: 20,\n centeredSlides: true,\n watchOverflow: true,\n speed: 700,\n zoom: amountOfSlides === 1,\n autoplay: isEventGallery ? false : {\n delay: 4000,\n disableOnInteraction: true,\n },\n scrollbar: {\n el: elm.querySelector('.swiper-scrollbar'),\n },\n pagination: {\n el: slider.querySelector('.swiper-pagination'),\n type: 'fraction',\n formatFractionCurrent: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n formatFractionTotal: function (number) {\n return (number < 10 ? '0' : '') + number;\n },\n },\n on: {\n touchStart: function () {\n interactingWithSwiper = true;\n interactingWithThumbnails = false;\n },\n slideChange: function (x) {\n window.loadResource({ target: swiperElem });\n const slide = x?.slides[x?.activeIndex];\n creditContainer.innerHTML = slide.dataset.creditText || ' ';\n\n if (interactingWithSwiper) {\n if (swiperThumbnails && swiper) {\n swiperThumbnails.slideToLoop(swiper.realIndex, 700, false);\n }\n }\n },\n afterInit: function () {\n setTimeout(() => {\n if (swiper) {\n swiper.update();\n }\n }, 100);\n },\n },\n navigation: {\n nextEl: slider.querySelector('.swiper-button-next'),\n prevEl: slider.querySelector('.swiper-button-prev'),\n },\n ...args,\n };\n\n const modalOptions = {\n spaceBetween: 20,\n centeredSlides: true,\n loop: amountOfSlides > 1 && !isEventGallery,\n watchOverflow: true,\n zoom: amountOfSlides === 1,\n pagination: {\n el: modal.querySelector('.swiper-pagination'),\n type: 'fraction',\n },\n navigation: {\n nextEl: modal.querySelector('.swiper-button-next'),\n prevEl: modal.querySelector('.swiper-button-prev'),\n },\n ...args,\n on: {\n touchStart: function () {\n swiper.autoplay.stop();\n },\n sliderMove: function () {\n swiper.autoplay.stop();\n },\n slideChange: function (x) {\n interactingWithThumbnails = false;\n window.loadResource({ target: swiperModalElem });\n if (modalWrapper.classList.contains('modal--active')) {\n const slide = x?.slides[x?.activeIndex];\n if (slide) {\n const video = slide.querySelector('video');\n const iframe = slide?.querySelector('iframe');\n\n\n if (video) {\n if (video.readyState < 3) {\n video.load();\n }\n video.play();\n } else if (iframe) {\n if (!iframe.originalUrl) {\n iframe.originalUrl = iframe.src;\n }\n iframe.src = iframe.originalUrl + '&autoplay=1';\n }\n }\n\n const prevSlide = x?.slides[x?.previousIndex];\n if (prevSlide) {\n const iframe = prevSlide?.querySelector('iframe');\n const video = prevSlide.querySelector('video');\n if (video) {\n video.pause();\n } else if (iframe) {\n stopAutoplayIframe(iframe);\n }\n }\n }\n },\n },\n };\n\n swiperControls?.addEventListener('click', () => {\n swiper.autoplay.stop();\n });\n\n const thumbnailsSwiperElem = elm.querySelector('.media-section__thumbnails');\n let swiperThumbnails;\n if (thumbnailsSwiperElem) {\n const thumbnailSwiperOptions = {\n loop: true,\n spaceBetween: 20,\n slidesPerView: 3,\n slideToClickedSlide: true,\n on: {\n touchStart: function () {\n interactingWithThumbnails = true;\n interactingWithSwiper = false;\n },\n realIndexChange: function () {\n window.loadResource({ target: thumbnailsSwiperElem });\n if (interactingWithThumbnails) {\n if (swiper && swiperThumbnails) {\n swiper.slideToLoop(swiperThumbnails.realIndex, 700, false);\n }\n }\n },\n },\n };\n\n swiperThumbnails = new Swiper(thumbnailsSwiperElem, thumbnailSwiperOptions);\n swiperThumbnails.snapGrid = [...swiperThumbnails.slidesGrid];\n }\n\n swiper = new Swiper(swiperElem, options);\n window.swiperls = window.swiperls ? window.swiperls : [];\n window.swiperls.push(swiper);\n const swiperModal = new Swiper(swiperModalElem, modalOptions);\n swiper.controller.control = swiperModal;\n swiperModal.controller.control = swiper;\n function stopAutoplayIframe(iframe) {\n if (!iframe.originalUrl) {\n iframe.originalUrl = iframe.src.replace('&autoplay=1', '');\n }\n iframe.src = iframe.originalUrl;\n }\n\n function pauseAllVideos() {\n elm?.querySelectorAll('.media-section__modal video').forEach(video => {\n video.currentTime = 0;\n video.pause();\n });\n\n elm?.querySelectorAll('.media-section__modal iframe').forEach(iframe => {\n stopAutoplayIframe(iframe);\n });\n }\n\n function autoplayIframe(iframe) {\n if (!iframe.originalUrl) {\n iframe.originalUrl = iframe.src;\n }\n iframe.src = iframe.originalUrl + '&autoplay=1';\n }\n\n function closeModal() {\n modalWrapper.classList.remove('modal--active');\n pauseAllVideos();\n document.body.classList.remove('modal-open');\n }\n function openModal() {\n swiper.autoplay.stop();\n modalWrapper.classList.add('modal--active');\n document.body.classList.add('modal-open');\n if (swiperModal) {\n const elem = swiperModal.slides[swiper.activeIndex];\n const video = elem?.querySelector('video');\n const iframe = elem?.querySelector('iframe');\n if (video) {\n video.currentTime = 0;\n video.play();\n } else if (iframe) {\n autoplayIframe(iframe);\n }\n\n swiperModal.update();\n }\n }\n\n swiper.on('click', openModal);\n\n window.addEventListener('keydown', (evt) => {\n if (evt.keyCode === 27) {\n closeModal();\n }\n if (evt.keyCode === 37) {\n if (modalWrapper.classList.contains('modal--active')) {\n swiper.slidePrev(500, null);\n }\n }\n if (evt.keyCode === 39) {\n if (modalWrapper.classList.contains('modal--active')) {\n swiper.slideNext(500, null);\n }\n }\n });\n\n modal.addEventListener('click', x => {\n const dontCloseAreas = x.target.closest('.swiper-slide, picture, video, img, iframe, .swiper-controls');\n if (!dontCloseAreas) {\n closeModal();\n }\n });\n\n closeModalBtn.addEventListener('click', (e) => {\n e.preventDefault();\n closeModal();\n });\n }\n}\n"],"sourceRoot":""}