{"version":3,"sources":["webpack://frontendplaceholder/./Src/Scripts/components/ticket-swiper.js"],"names":["Swiper","use","Navigation","Pagination","Controller","constructor","elm","args","self","this","imgSwiperContainer","querySelector","quoteSwiperContainer","lastSwiperTouch","Date","now","quoteSwiperOptions","loop","grabCursor","autoHeight","pagination","el","type","formatFractionCurrent","number","formatFractionTotal","navigation","nextEl","prevEl","on","touchEnd","slideChange","updateSlidesHeight","init","setTimeout","slidesPerView","speed","breakpoints","quoteSwiper","oldHeight","currentHeight","slides","activeIndex","currentSlide","style","setProperty","height","scrollHeight","imgSwiperOptions","querySelectorAll","forEach","video","addEventListener","closest","classList","add","imgSwiper","controller","control","allVideos","length","pause","currentSlideVideo","play","targetClientRect","getBoundingClientRect","top","bottom","windowHeight","window","innerHeight","checkIfInView","checkIfFirstSlideHasVideo"],"mappings":"wMAAA,M,wbAAA,U,+HAEAA,UAAOC,IAAI,CAACC,aAAYC,aAAYC,e,UAErB,MACXC,YAAYC,EAAKC,GACb,IAAIC,EAAOC,KACXA,KAAKH,IAAMA,EACXG,KAAKF,KAAOA,EACZE,KAAKC,mBAAqBD,KAAKH,IAAIK,cAAc,mDACjDF,KAAKG,qBAAuBH,KAAKH,IAAIK,cAAc,iDACnD,IACIE,EAAkBC,KAAKC,MAE3BN,KAAKO,mBAAqB,CACtBC,MAAM,EACNC,YAAY,EACZC,YAAY,EACZC,WAAY,CACRC,GAAI,kCACJC,KAAM,WACNC,sBAAuB,SAAUC,GAC7B,OAAQA,EAAS,GAAK,IAAM,IAAMA,GAEtCC,oBAAqB,SAAUD,GAC3B,OAAQA,EAAS,GAAK,IAAM,IAAMA,IAG1CE,WAAY,CACRC,OAAQ,mCACRC,OAAQ,oCAEZC,GAAI,CACAC,SAAU,WACNjB,EAAkBC,KAAKC,OAE3BgB,YAAa,KACLlB,GAAmBC,KAAKC,MAAQF,EAAkB,KAClDmB,KAGRC,KAAM,KACFD,IAEAE,YAAW,KACPF,MACD,OAGXG,cAAe,EACfC,MAAO,IACPC,YAAa,CACT,IAAK,CACDlB,YAAY,KAIxBV,KAAK6B,YAAc,IAAItC,UAAOS,KAAKG,qBAAsBH,KAAKO,oBAG9D,IACIuB,EADAC,EAAgB,EAGpB,SAASR,IACL,GAAIxB,EAAK8B,YAAa,CAClB,MAAM,GAAEjB,EAAF,OAAMoB,EAAN,YAAcC,GAAgBlC,EAAK8B,YACnCK,EAAeF,EAAOC,GAE5BrB,EAAGuB,MAAMC,YAAY,sBAAuB,QAE5CF,EAAaC,MAAME,OAAS,OAC5BN,EAAgBG,EAAaI,aAAe,KAC5CJ,EAAaC,MAAME,OAASP,GAAa,GACzCA,EAAYC,EAEZnB,EAAGuB,MAAMC,YAAY,sBAAuB,4BAE5CX,YAAW,KACPb,EAAGuB,MAAMC,YAAY,kBAAmBL,GACxCG,EAAaC,MAAME,OAAS,yBAC7B,MAKXrC,KAAKuC,iBAAmB,CACpB/B,MAAM,EACNC,YAAY,EACZkB,MAAO,KAGO3B,KAAKH,IAAI2C,iBAAiB,SAClCC,SAAQC,GAASA,EAAMC,iBAAiB,cAAc,KAC5DD,EAAME,QAAQ,iCAAiCC,UAAUC,IAAI,6CAGjE9C,KAAK+C,UAAY,IAAIxD,UAAOS,KAAKC,mBAAoBD,KAAKuC,kBAC1DvC,KAAK+C,UAAUC,WAAWC,QAAUjD,KAAK6B,YACzC7B,KAAK6B,YAAYmB,WAAWC,QAAUjD,KAAK+C,UAE3C/C,KAAK+C,UAAU3B,GAAG,eAAe,KAC7B,MAAM8B,EAAYlD,KAAKH,IAAI2C,iBAAiB,SAC5C,GAAyB,IAArBU,EAAUC,OACV,OAEJD,EAAUT,SAAQC,IACdA,EAAMU,WAEV,MAAMlB,EAAelC,KAAK+C,UAAUd,YAE9BoB,EADkBrD,KAAK+C,UAAUf,OAAOE,GACJhC,cAAc,SACpDmD,GACAA,EAAkBC,UAIJ,MAClB,MAAMC,EAAmBvD,KAAKH,IAAI2D,wBAC5BC,EAAMF,EAAiBE,IACvBC,EAASH,EAAiBG,OAC1BC,EAAeC,OAAOC,YAC5B,OAAKJ,EAAM,GAAKA,EAAME,GAAkBD,EAAS,GAAKD,EAAME,GAAkBF,EAAM,GAAKC,EAASC,GAelGG,IAT8B,OACX9D,KAAK+C,UAAUf,OAAOhC,KAAK+C,UAAUd,aACrB/B,cAAc,SAO9B6D,IACK/D,KAAK+C,UAAUf,OAAOhC,KAAK+C,UAAUd,aAAa/B,cAAc,SACxEoD","file":"4440.98dbdd2c5b52ffbacb90.js","sourcesContent":["import Swiper, { Navigation, Pagination, Controller } from 'swiper';\n\nSwiper.use([Navigation, Pagination, Controller]);\n\nexport default class heroSlider {\n constructor(elm, args) {\n let self = this;\n this.elm = elm;\n this.args = args;\n this.imgSwiperContainer = this.elm.querySelector('.ticket-hero__image-container .swiper-container');\n this.quoteSwiperContainer = this.elm.querySelector('.ticket-hero__text-container.swiper-container');\n let lastSlide = 1;\n let lastSwiperTouch = Date.now();\n\n this.quoteSwiperOptions = {\n loop: false,\n grabCursor: true,\n autoHeight: true,\n pagination: {\n el: '.ticket-hero .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 navigation: {\n nextEl: '.ticket-hero .swiper-button-next',\n prevEl: '.ticket-hero .swiper-button-prev',\n },\n on: {\n touchEnd: function () {\n lastSwiperTouch = Date.now();\n },\n slideChange: () => {\n if (lastSwiperTouch && Date.now() - lastSwiperTouch > 300) {\n updateSlidesHeight();\n }\n },\n init: () => {\n updateSlidesHeight();\n\n setTimeout(() => {\n updateSlidesHeight();\n }, 2000)\n }\n },\n slidesPerView: 1,\n speed: 1000,\n breakpoints: {\n 992: {\n autoHeight: false,\n }\n }\n };\n this.quoteSwiper = new Swiper(this.quoteSwiperContainer, this.quoteSwiperOptions);\n\n\n let currentHeight = 0;\n let oldHeight;\n\n function updateSlidesHeight() {\n if (self.quoteSwiper) {\n const { el, slides, activeIndex } = self.quoteSwiper;\n const currentSlide = slides[activeIndex];\n\n el.style.setProperty('--swiper-transition', 'none');\n\n currentSlide.style.height = 'auto';\n currentHeight = currentSlide.scrollHeight + 'px';\n currentSlide.style.height = oldHeight || '';\n oldHeight = currentHeight;\n\n el.style.setProperty('--swiper-transition', 'height 0.15s ease-in-out');\n\n setTimeout(() => {\n el.style.setProperty('--swiper-height', currentHeight);\n currentSlide.style.height = 'var(--swiper-height)';\n }, 100);\n }\n }\n\n\n this.imgSwiperOptions = {\n loop: false,\n grabCursor: true,\n speed: 1000,\n };\n\n const allVideos = this.elm.querySelectorAll('video');\n allVideos.forEach(video => video.addEventListener(\"loadeddata\", () => {\n video.closest('.ticket-hero__video-container').classList.add('ticket-hero__video-container--loaded')\n }))\n\n this.imgSwiper = new Swiper(this.imgSwiperContainer, this.imgSwiperOptions);\n this.imgSwiper.controller.control = this.quoteSwiper;\n this.quoteSwiper.controller.control = this.imgSwiper;\n \n this.imgSwiper.on('slideChange', () => {\n const allVideos = this.elm.querySelectorAll('video');\n if (allVideos.length === 0) {\n return;\n }\n allVideos.forEach(video => {\n video.pause();\n });\n const currentSlide = this.imgSwiper.activeIndex;\n const currentSlideElm = this.imgSwiper.slides[currentSlide];\n const currentSlideVideo = currentSlideElm.querySelector('video');\n if (currentSlideVideo) {\n currentSlideVideo.play();\n }\n });\n\n const checkIfInView = () => {\n const targetClientRect = this.elm.getBoundingClientRect();\n const top = targetClientRect.top;\n const bottom = targetClientRect.bottom;\n const windowHeight = window.innerHeight;\n if ((top > 0 && top < windowHeight) || (bottom > 0 && top < windowHeight) || (top < 0 && bottom > windowHeight)) {\n return true;\n }\n return false;\n\n };\n const checkIfFirstSlideHasVideo = () => {\n const firstSlide = this.imgSwiper.slides[this.imgSwiper.activeIndex];\n const firstSlideVideo = firstSlide.querySelector('video');\n if (firstSlideVideo) {\n return true;\n }\n return false;\n };\n\n if (checkIfInView() && checkIfFirstSlideHasVideo()) {\n const firstSlideVideo = this.imgSwiper.slides[this.imgSwiper.activeIndex].querySelector('video');\n firstSlideVideo.play();\n }\n }\n}\n"],"sourceRoot":""}