{"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":"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","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":""}