{"version":3,"sources":["webpack:///./app/components/m/teaser-gallery/index.js"],"names":["mql","window","matchMedia","counterHeight","$","each","index","element","thumbs","events","thumbSwiperOptions","slidesQuantity","querySelectorAll","length","textOffset","matches","querySelector","containerWidth","offsetWidth","padding","sideOffset","innerWidth","width","height","teaserGalleryThumbs","teaserGalleryText","teaserGalleryCounter","teaserGalleryContainer","parseInt","loop","slidesPerView","watchOverflow","watchSlidesVisibility","watchSlidesProgress","style","cssText","loopAdditionalSlides","setWrapperSize","touchRatio","galleryThumbs","Swiper","swiper","textMinHeight","minHeight","content","autoHeight","noSwiping","init","changeSlide","slideChange","preloadImages","spaceBetween","modules","Thumbs","Controller","Pagination","Navigation","pagination","el","clickable","on","bullets","forEach","bullet","setAttribute","slideIndex","numSlides","addEventListener","event","key","slideTo","handleAccessibilityAttributes","call","runCallbacksOnInit","navigation","nextEl","prevEl","classList","contains","sliderElem","textSlider","parentNode","curSlideElem","slides","activeIndex","updSwiperNumericPagination","lazyImage","add","realIndex","currentSwiper","numSlider","innerHTML"],"mappings":";;;;;;;;;;;AAAA;AAAA;AAA4E;AAE5E,MAAMA,GAAG,GAAGC,MAAM,CAACC,UAAU,CAAC,qBAAqB,CAAC;AACpD,MAAMC,aAAa,GAAG,EAAE;AAExBC,CAAC,CAAC,0BAA0B,CAAC,CAACC,IAAI,CAAC,CAACC,KAAK,EAAEC,OAAO,KAAK;EACrD;EACA,IAAIC,MAAM,GAAG,KAAK;EAClB,IAAIC,MAAM,GAAG,KAAK;EAClB,IAAIC,kBAAkB,GAAG,CAAC,CAAC;;EAE3B;EACAH,OAAO,CAACI,cAAc,GAAGJ,OAAO,CAACK,gBAAgB,CAAC,0CAA0C,CAAC,CAACC,MAAM;;EAEpG;EACA,IAAIC,UAAU,GAAGd,GAAG,CAACe,OAAO,GAAG,GAAG,GAAG,GAAG;EAExC,IAAI,CAACR,OAAO,CAACS,aAAa,CAAC,uBAAuB,CAAC,EAAE;IACnDF,UAAU,GAAG,CAAC;EAChB;EAEA,MAAMG,cAAc,GAAGV,OAAO,CAACS,aAAa,CAAC,YAAY,CAAC,CAACE,WAAW;EACtE,MAAMC,OAAO,GAAGF,cAAc,GAAG,MAAM;EACvC,MAAMG,UAAU,GAAG,CAACnB,MAAM,CAACoB,UAAU,GAAGJ,cAAc,IAAI,CAAC,GAAGH,UAAU,GAAGK,OAAO;EAClF;EACA,IAAIG,KAAK,GAAG,GAAG;EACf,IAAIC,MAAM,GAAG,CAAC;;EAEd;EACA,MAAMC,mBAAmB,GAAGjB,OAAO,CAACS,aAAa,CAAC,yBAAyB,CAAC;EAC5E,MAAMS,iBAAiB,GAAGlB,OAAO,CAACS,aAAa,CAAC,uBAAuB,CAAC;EACxE,MAAMU,oBAAoB,GAAGnB,OAAO,CAACS,aAAa,CAAC,iBAAiB,CAAC;EACrE,MAAMW,sBAAsB,GAAGpB,OAAO,CAACS,aAAa,CAAC,4BAA4B,CAAC;;EAElF;EACA;EACA,IAAIC,cAAc,GAAGK,KAAK,GAAGf,OAAO,CAACI,cAAc,GAAGG,UAAU,EAAE;IAChES,MAAM,GAAGK,QAAQ,CAAEN,KAAK,GAAG,CAAC,GAAI,EAAE,EAAE,EAAE,CAAC;IAEvCZ,kBAAkB,GAAG;MACnBmB,IAAI,EAAE,KAAK;MACXC,aAAa,EAAE,MAAM;MACrBC,aAAa,EAAE,IAAI;MACnBC,qBAAqB,EAAE,IAAI;MAC3BC,mBAAmB,EAAE;IACvB,CAAC;IACD;IACA,IAAIP,oBAAoB,EAAE;MACxBA,oBAAoB,CAACQ,KAAK,CAACC,OAAO,GAAG,eAAe;IACtD;;IAEA;EACF,CAAC,MAAM;IACL;IACAb,KAAK,GAAGM,QAAQ,CAAC,CAACX,cAAc,GAAGG,UAAU,IAAIb,OAAO,CAACI,cAAc,EAAE,EAAE,CAAC;IAC5EW,KAAK,GAAGA,KAAK,GAAG,GAAG,GAAG,GAAG,GAAGA,KAAK;IACjCC,MAAM,GAAGK,QAAQ,CAAEN,KAAK,GAAG,CAAC,GAAI,EAAE,EAAE,EAAE,CAAC;IACvCZ,kBAAkB,GAAG;MACnBmB,IAAI,EAAE,IAAI;MACVO,oBAAoB,EAAE,EAAE;MACxBN,aAAa,EAAE,CAAC;MAChBR,KAAK,EAAEA,KAAK;MACZe,cAAc,EAAE,IAAI;MACpBC,UAAU,EAAE,GAAG;MACfN,qBAAqB,EAAE,IAAI;MAC3BC,mBAAmB,EAAE;IACvB,CAAC;EACH;;EAEA;EACA,IAAIT,mBAAmB,EAAE;IACvBA,mBAAmB,CAACU,KAAK,CAACX,MAAM,GAAI,GAAEA,MAAO,IAAG;IAChD,MAAMgB,aAAa,GAAG,IAAIC,6CAAM,CAAChB,mBAAmB,EAAEd,kBAAkB,CAAC;IACzEF,MAAM,GAAG;MACPiC,MAAM,EAAEF;IACV,CAAC;EACH;;EAEA;EACA,IAAId,iBAAiB,EAAE;IACrB,MAAMiB,aAAa,GAAGnB,MAAM,GAAGpB,aAAa;IAC5CsB,iBAAiB,CAACS,KAAK,CAACS,SAAS,GAAI,GAAED,aAAc,IAAG;IACxD,MAAME,OAAO,GAAG,IAAIJ,6CAAM,CAACf,iBAAiB,EAAE;MAC5CK,aAAa,EAAE,CAAC;MAChBe,UAAU,EAAE,IAAI;MAChBC,SAAS,EAAE,IAAI;MACfjB,IAAI,EAAE;IACR,CAAC,CAAC;EACJ;EAEA,IAAIL,mBAAmB,IAAIE,oBAAoB,EAAE;IAC/CjB,MAAM,GAAG;MACPsC,IAAI,EAAEC,WAAW;MACjBC,WAAW,EAAED;IACf,CAAC;EACH,CAAC,MAAM;IACLvC,MAAM,GAAG;MACPwC,WAAW,EAAED;IACf,CAAC;EACH;;EAEA;EACA,OAAO,IAAIR,6CAAM,CAACb,sBAAsB,EAAE;IACxCG,aAAa,EAAE,CAAC;IAChBoB,aAAa,EAAE,IAAI;IACnBC,YAAY,EAAE,CAAC;IACftB,IAAI,EAAEtB,OAAO,CAACI,cAAc,GAAG,CAAC;IAChCyB,oBAAoB,EAAE,EAAE;IACxBgB,OAAO,EAAE,CAACC,6CAAM,EAAEC,iDAAU,EAAEC,iDAAU,EAAEC,iDAAU,CAAC;IACrDC,UAAU,EAAE;MACVC,EAAE,EAAEnD,OAAO,CAACS,aAAa,CAAC,oBAAoB,CAAC;MAC/C2C,SAAS,EAAE;IACb,CAAC;IACDC,EAAE,EAAE;MACFb,IAAI,EAAE,SAAAA,CAAA,EAAY;QAChB,MAAMN,MAAM,GAAG,IAAI;QACnB,MAAMgB,UAAU,GAAGlD,OAAO,CAACS,aAAa,CAAC,oBAAoB,CAAC;QAC9D;QACA,MAAM6C,OAAO,GAAGJ,UAAU,CAAC7C,gBAAgB,CAAC,2BAA2B,CAAC;QAExEiD,OAAO,CAACC,OAAO,CAAC,CAACC,MAAM,EAAEzD,KAAK,KAAK;UACjCyD,MAAM,CAACC,YAAY,CAAC,UAAU,EAAE,CAAC,CAAC;UAClCD,MAAM,CAACC,YAAY,CAAC,MAAM,EAAE,QAAQ,CAAC;UAErC,MAAMC,UAAU,GAAG3D,KAAK,GAAG,CAAC;UAC5B,MAAM4D,SAAS,GAAGL,OAAO,CAAChD,MAAM;UAChCkD,MAAM,CAACC,YAAY,CAAC,YAAY,EAAEC,UAAU,GAAG,GAAG,GAAGC,SAAS,CAAC;;UAE/D;UACAH,MAAM,CAACI,gBAAgB,CAAC,SAAS,EAAGC,KAAK,IAAK;YAC5C,IAAIA,KAAK,CAACC,GAAG,KAAK,OAAO,IAAID,KAAK,CAACC,GAAG,KAAK,GAAG,EAAE;cAC9C5B,MAAM,CAAC6B,OAAO,CAAChE,KAAK,CAAC;YACvB;UACF,CAAC,CAAC;QACJ,CAAC,CAAC;QACF,IAAI,CAACsD,EAAE,CAAC,aAAa,EAAEW,6BAA6B,CAAC;;QAErD;QACAvB,WAAW,CAACwB,IAAI,CAAC,IAAI,CAAC;MACxB,CAAC;MACDvB,WAAW,EAAED;IACf,CAAC;IAEDyB,kBAAkB,EAAE,IAAI;IACxBC,UAAU,EAAE;MACVC,MAAM,EAAEpE,OAAO,CAACS,aAAa,CAAC,qBAAqB,CAAC;MACpD4D,MAAM,EAAErE,OAAO,CAACS,aAAa,CAAC,qBAAqB;IACrD,CAAC;IACDR,MAAM,EAAEA;EACV,CAAC,CAAC;EAEF,SAAS+D,6BAA6BA,CAAA,EAAG;IACvC,MAAMV,OAAO,GAAGtD,OAAO,CAACK,gBAAgB,CAAC,2BAA2B,CAAC;IAErEiD,OAAO,CAACC,OAAO,CAAEC,MAAM,IAAK;MAC1B,IAAIA,MAAM,CAACc,SAAS,CAACC,QAAQ,CAAC,iCAAiC,CAAC,EAAE;QAChEf,MAAM,CAACC,YAAY,CAAC,eAAe,EAAE,MAAM,CAAC;MAC9C,CAAC,MAAM;QACLD,MAAM,CAACC,YAAY,CAAC,eAAe,EAAE,OAAO,CAAC;MAC/C;IACF,CAAC,CAAC;EACJ;EAEAO,6BAA6B,EAAE;AACjC,CAAC,CAAC;AAEF,SAASvB,WAAWA,CAAA,EAAG;EACrB,MAAM+B,UAAU,GAAG,IAAI,CAACrB,EAAE;EAC1B,MAAMsB,UAAU,GAAGD,UAAU,CAACE,UAAU,CAACjE,aAAa,CAAC,uBAAuB,CAAC;EAC/E,MAAMkE,YAAY,GAAG,IAAI,CAACC,MAAM,CAAC,IAAI,CAACC,WAAW,CAAC;;EAElD;EACAC,0BAA0B,CAAC,IAAI,CAAC;EAChC;EACA,MAAMC,SAAS,GAAGJ,YAAY,CAAClE,aAAa,CAAC,oDAAoD,CAAC;EAClG,IAAIsE,SAAS,EAAE;IACbA,SAAS,CAACT,SAAS,CAACU,GAAG,CAAC,UAAU,CAAC;EACrC;EACA;EACA,IAAIP,UAAU,EAAE;IACdA,UAAU,CAACvC,MAAM,CAAC6B,OAAO,CAAC,IAAI,CAACkB,SAAS,CAAC;EAC3C;AACF;AAEA,SAASH,0BAA0BA,CAACI,aAAa,EAAE;EACjD,MAAMC,SAAS,GAAGD,aAAa,CAAC/B,EAAE,CAACuB,UAAU,CAACjE,aAAa,CAAC,iBAAiB,CAAC;EAC9E,IAAI0E,SAAS,EAAE;IACb,MAAM/E,cAAc,GAAG8E,aAAa,CAAC/B,EAAE,CAACuB,UAAU,CAACtE,cAAc;IACjE+E,SAAS,CAACC,SAAS,GAAI,uBACrBF,aAAa,CAACD,SAAS,GAAG,CAC3B,+BAA8B7E,cAAe,SAAQ;EACxD;AACF,C","file":"teaser-gallery.chunk.js","sourcesContent":["import { Swiper, Thumbs, Controller, Pagination, Navigation } from 'swiper';\r\n\r\nconst mql = window.matchMedia('(max-width: 1200px)');\r\nconst counterHeight = 70;\r\n\r\n$('.teaser-gallery__wrapper').each((index, element) => {\r\n // swiper options\r\n let thumbs = false;\r\n let events = false;\r\n let thumbSwiperOptions = {};\r\n\r\n //number of slides\r\n element.slidesQuantity = element.querySelectorAll('.teaser-gallery__container .swiper-slide').length;\r\n\r\n // width calculations\r\n let textOffset = mql.matches ? 360 : 455;\r\n\r\n if (!element.querySelector('.teaser-gallery__text')) {\r\n textOffset = 0;\r\n }\r\n\r\n const containerWidth = element.querySelector('.container').offsetWidth;\r\n const padding = containerWidth * 0.0125;\r\n const sideOffset = (window.innerWidth - containerWidth) / 2 - textOffset - padding;\r\n //defualt width\r\n let width = 300;\r\n let height = 0;\r\n\r\n // DOM elements\r\n const teaserGalleryThumbs = element.querySelector('.teaser-gallery__thumbs');\r\n const teaserGalleryText = element.querySelector('.teaser-gallery__text');\r\n const teaserGalleryCounter = element.querySelector('.swiper-counter');\r\n const teaserGalleryContainer = element.querySelector('.teaser-gallery__container');\r\n\r\n // no loop mode\r\n // if thumbs stripe does not overflow from container\r\n if (containerWidth > width * element.slidesQuantity + textOffset) {\r\n height = parseInt((width * 9) / 16, 10);\r\n\r\n thumbSwiperOptions = {\r\n loop: false,\r\n slidesPerView: 'auto',\r\n watchOverflow: true,\r\n watchSlidesVisibility: true,\r\n watchSlidesProgress: true,\r\n };\r\n //do not show counter if exists\r\n if (teaserGalleryCounter) {\r\n teaserGalleryCounter.style.cssText = 'display: none';\r\n }\r\n\r\n // loop mode\r\n } else {\r\n // calculate width from the number of elements, but not less than 300\r\n width = parseInt((containerWidth + sideOffset) / element.slidesQuantity, 10);\r\n width = width < 300 ? 300 : width;\r\n height = parseInt((width * 9) / 16, 10);\r\n thumbSwiperOptions = {\r\n loop: true,\r\n loopAdditionalSlides: 10,\r\n slidesPerView: 1,\r\n width: width,\r\n setWrapperSize: true,\r\n touchRatio: 0.3,\r\n watchSlidesVisibility: true,\r\n watchSlidesProgress: true,\r\n };\r\n }\r\n\r\n // THUMBS\r\n if (teaserGalleryThumbs) {\r\n teaserGalleryThumbs.style.height = `${height}px`;\r\n const galleryThumbs = new Swiper(teaserGalleryThumbs, thumbSwiperOptions);\r\n thumbs = {\r\n swiper: galleryThumbs,\r\n };\r\n }\r\n\r\n // TEXT\r\n if (teaserGalleryText) {\r\n const textMinHeight = height + counterHeight;\r\n teaserGalleryText.style.minHeight = `${textMinHeight}px`;\r\n const content = new Swiper(teaserGalleryText, {\r\n slidesPerView: 1,\r\n autoHeight: true,\r\n noSwiping: true,\r\n loop: false,\r\n });\r\n }\r\n\r\n if (teaserGalleryThumbs && teaserGalleryCounter) {\r\n events = {\r\n init: changeSlide,\r\n slideChange: changeSlide,\r\n };\r\n } else {\r\n events = {\r\n slideChange: changeSlide,\r\n };\r\n }\r\n\r\n // CONTENT\r\n return new Swiper(teaserGalleryContainer, {\r\n slidesPerView: 1,\r\n preloadImages: true,\r\n spaceBetween: 0,\r\n loop: element.slidesQuantity > 1,\r\n loopAdditionalSlides: 10,\r\n modules: [Thumbs, Controller, Pagination, Navigation],\r\n pagination: {\r\n el: element.querySelector('.swiper-pagination'),\r\n clickable: true,\r\n },\r\n on: {\r\n init: function () {\r\n const swiper = this;\r\n const pagination = element.querySelector('.swiper-pagination');\r\n // add tabindex to swiper-pagination-bullets for keyboard navigation\r\n const bullets = pagination.querySelectorAll('.swiper-pagination-bullet');\r\n\r\n bullets.forEach((bullet, index) => {\r\n bullet.setAttribute('tabindex', 0);\r\n bullet.setAttribute('role', 'button');\r\n\r\n const slideIndex = index + 1;\r\n const numSlides = bullets.length;\r\n bullet.setAttribute('aria-label', slideIndex + '/' + numSlides);\r\n\r\n // add event listener for bullets keyboard navigation\r\n bullet.addEventListener('keydown', (event) => {\r\n if (event.key === 'Enter' || event.key === ' ') {\r\n swiper.slideTo(index);\r\n }\r\n });\r\n });\r\n this.on('slideChange', handleAccessibilityAttributes);\r\n\r\n // Call changeSlide function on init\r\n changeSlide.call(this);\r\n },\r\n slideChange: changeSlide,\r\n },\r\n\r\n runCallbacksOnInit: true,\r\n navigation: {\r\n nextEl: element.querySelector('.swiper-button-next'),\r\n prevEl: element.querySelector('.swiper-button-prev'),\r\n },\r\n thumbs: thumbs,\r\n });\r\n\r\n function handleAccessibilityAttributes() {\r\n const bullets = element.querySelectorAll('.swiper-pagination-bullet');\r\n\r\n bullets.forEach((bullet) => {\r\n if (bullet.classList.contains('swiper-pagination-bullet-active')) {\r\n bullet.setAttribute('aria-selected', 'true');\r\n } else {\r\n bullet.setAttribute('aria-selected', 'false');\r\n }\r\n });\r\n }\r\n\r\n handleAccessibilityAttributes();\r\n});\r\n\r\nfunction changeSlide() {\r\n const sliderElem = this.el;\r\n const textSlider = sliderElem.parentNode.querySelector('.teaser-gallery__text');\r\n const curSlideElem = this.slides[this.activeIndex];\r\n\r\n // Update Pagination in counter\r\n updSwiperNumericPagination(this);\r\n // Trigger dynamic lazy loading\r\n const lazyImage = curSlideElem.querySelector('.teaser-gallery__image__container > .picture--16-9');\r\n if (lazyImage) {\r\n lazyImage.classList.add('lazyload');\r\n }\r\n // Do something with Text\r\n if (textSlider) {\r\n textSlider.swiper.slideTo(this.realIndex);\r\n }\r\n}\r\n\r\nfunction updSwiperNumericPagination(currentSwiper) {\r\n const numSlider = currentSwiper.el.parentNode.querySelector('.swiper-counter');\r\n if (numSlider) {\r\n const slidesQuantity = currentSwiper.el.parentNode.slidesQuantity;\r\n numSlider.innerHTML = `<span class=\"count\">${\r\n currentSwiper.realIndex + 1\r\n }</span>/<span class=\"total\">${slidesQuantity}</span>`;\r\n }\r\n}\r\n"],"sourceRoot":""}