{
  "version": 3,
  "sources": ["/cdn/shop/t/66/assets/slideshow.js?cb=16427"],
  "sourcesContent": ["/* global debounce */\n\nif (!customElements.get('slide-show')) {\n  class SlideShow extends HTMLElement {\n    constructor() {\n      super();\n      window.initLazyScript(this, this.init.bind(this));\n    }\n\n    init() {\n      this.slideshow = this.querySelector('.slideshow');\n      this.slides = this.querySelectorAll('.slideshow__slide');\n      this.nav = this.querySelector('.slideshow-nav');\n      this.pagination = this.querySelector('.slideshow-pagination');\n      this.rtl = document.dir === 'rtl';\n      this.currentIndex = 0;\n      this.swipeThreshold = 80;\n      this.wheelTriggerWait = 800;\n\n      if (this.nav) {\n        this.counterCurrent = this.querySelector('.slideshow-nav__counter-current');\n        this.nav.addEventListener('click', this.handleNavClick.bind(this));\n      }\n\n      if (this.pagination) {\n        this.pageBtns = this.querySelectorAll('.page-btn');\n        this.pagination.addEventListener('click', this.handlePaginationClick.bind(this));\n      }\n\n      if (theme.device.hasTouch) {\n        this.slideshow.addEventListener('touchstart', this.handleTouchStart.bind(this), { passive: true });\n        this.slideshow.addEventListener('touchmove', debounce(this.handleTouchMove.bind(this), 200), { passive: true });\n      }\n\n      this.slideshow.addEventListener('wheel', this.handleWheel.bind(this), { passive: true });\n\n      this.slideshow.addEventListener('transitionend', SlideShow.handleTransitionend);\n\n      this.setSlideVisibility();\n      if (this.dataset.autoplay === 'true') this.initAutoPlay();\n    }\n\n    initAutoPlay() {\n      this.autoplayEnabled = true;\n      this.autoplaySpeed = this.dataset.speed * 1000;\n\n      this.addEventListener('mouseover', this.pauseAutoplay.bind(this));\n      this.addEventListener('mouseleave', this.resumeAutoplay.bind(this));\n      this.slideshow.addEventListener('focusin', this.pauseAutoplay.bind(this));\n      this.slideshow.addEventListener('focusout', this.resumeAutoplay.bind(this));\n\n      this.addObserver();\n      this.startAutoplay();\n    }\n\n    /**\n     * Handles 'click' events on the nav buttons container.\n     * @param {object} evt - Event object.\n     */\n    handleNavClick(evt) {\n      if (evt.target.matches('.autoplay-btn')) {\n        this.togglePlayState(evt);\n        return;\n      }\n\n      if (evt.target.name === 'next') {\n        this.showNextSlide();\n      } else if (evt.target.name === 'prev') {\n        this.showPrevSlide();\n      }\n    }\n\n    /**\n     * Handles 'click' events on the pagination.\n     * @param {object} evt - Event object.\n     */\n    handlePaginationClick(evt) {\n      if (!evt.target.matches('.page-btn')) return;\n      this.autoplayTimeLeft = this.autoplaySpeed;\n      this.setActiveSlide(Number(evt.target.dataset.index));\n    }\n\n    /**\n     * Handles 'wheel' events on the slideshow.\n     * @param {object} evt - Event object.\n     */\n    handleWheel(evt) {\n      if (this.blockWheelTrigger) {\n        evt.preventDefault();\n      } else if (evt.deltaX > 20) {\n        evt.preventDefault();\n        this.showNextSlide();\n        this.blockWheelTrigger = true;\n        setTimeout(() => { this.blockWheelTrigger = false; }, this.wheelTriggerWait);\n      } else if (evt.deltaX < -20) {\n        evt.preventDefault();\n        this.showPrevSlide();\n        this.blockWheelTrigger = true;\n        setTimeout(() => { this.blockWheelTrigger = false; }, this.wheelTriggerWait);\n      }\n    }\n\n    /**\n     * Handles 'touchstart' events on the slideshow.\n     * @param {object} evt - Event object.\n     */\n    handleTouchStart(evt) {\n      this.touchStart = evt.changedTouches[0].screenX;\n    }\n\n    /**\n     * Handles 'touchmove' events on the slideshow.\n     * @param {object} evt - Event object.\n     */\n    handleTouchMove(evt) {\n      const touchEnd = evt.changedTouches[0].screenX;\n\n      if (touchEnd < this.touchStart - this.swipeThreshold) {\n        this.rtl ? this.showPrevSlide() : this.showNextSlide();\n      }\n\n      if (touchEnd > this.touchStart + this.swipeThreshold) {\n        this.rtl ? this.showNextSlide() : this.showPrevSlide();\n      }\n    }\n\n    /**\n     * Handles 'transitionend' events on the slideshow.\n     * @param {object} evt - Event object.\n     */\n    static handleTransitionend(evt) {\n      if (!evt.target.matches('.has-motion')) return;\n      evt.target.classList.remove('transition-out');\n    }\n\n    showNextSlide() {\n      let index = this.currentIndex + 1;\n      if (index === this.slides.length) index = 0;\n      this.setActiveSlide(index, 'next');\n    }\n\n    showPrevSlide() {\n      let index = this.currentIndex - 1;\n      if (index < 0) index = this.slides.length - 1;\n      this.setActiveSlide(index, 'prev');\n    }\n\n    /**\n     * Sets the active slide.\n     * @param {number} slideIndex - Index of the slide to show.\n     * @param {string} slideDirection - Direction for slide transitions.\n     */\n    setActiveSlide(slideIndex, slideDirection) {\n      if (slideIndex === this.currentIndex) return;\n\n      // Cancel any prior calls to this that have not completed\n      clearTimeout(this.setActiveSlideTimeoutId);\n\n      // Clear autoplay timer\n      clearTimeout(this.autoplayTimer);\n\n      // Set data attribute for direction of slide transitions.\n      let dir = slideDirection || (slideIndex < this.currentIndex ? 'prev' : 'next');\n      if (this.rtl) dir = dir === 'next' ? 'prev' : 'next';\n      this.dataset.direction = dir;\n\n      // Trigger text overlay transition out.\n      this.slides[this.currentIndex].classList.add('transition-out');\n\n      this.setActiveSlideTimeoutId = setTimeout(() => {\n        // Move new slide into the viewport.\n        this.slideshow.scrollTo({ left: this.slides[slideIndex].offsetLeft, behavior: 'auto' });\n\n        // Update current slide and trigger transitions.\n        this.slides[slideIndex].classList.add('is-active');\n        this.slides[this.currentIndex].classList.remove('is-active', 'transition-out');\n\n        // Add class to transitioned content element (if it exists).\n        const transitionedEl = this.slides[this.currentIndex].querySelector('.has-motion');\n        if (transitionedEl) transitionedEl.classList.add('transition-out');\n\n        // Reset autoplay slide timer.\n        if (this.autoplayEnabled) this.autoplayStartTime = Date.now();\n\n        // Update slide counter.\n        if (this.counterCurrent) this.counterCurrent.textContent = slideIndex + 1;\n\n        this.currentIndex = slideIndex;\n        this.setSlideVisibility();\n        this.updatePagination();\n\n        // Autoplay\n        if (this.autoplayEnabled && !this.autoplayPaused) {\n          this.autoplayTimeLeft = this.autoplaySpeed;\n          this.autoplayTimer = setTimeout(this.showNextSlide.bind(this), this.autoplaySpeed);\n        }\n      }, 200);\n    }\n\n    /**\n     * Updates the 'aria-current' attribute of the pagination buttons.\n     */\n    updatePagination() {\n      if (!this.pagination) return;\n\n      this.pageBtns.forEach((el, index) => {\n        if (index === this.currentIndex) {\n          el.setAttribute('aria-current', 'true');\n        } else {\n          el.removeAttribute('aria-current');\n        }\n      });\n    }\n\n    stopAutoplay() {\n      this.setSlideshowState('paused');\n      clearTimeout(this.autoplayTimer);\n    }\n\n    startAutoplay() {\n      this.autoplayTimeLeft = null;\n      this.autoplayStartTime = Date.now();\n      clearTimeout(this.autoplayTimer);\n      this.autoplayTimer = setTimeout(this.showNextSlide.bind(this), this.autoplaySpeed);\n      this.setSlideshowState('running');\n    }\n\n    pauseAutoplay() {\n      if (!this.autoplayEnabled || this.autoplayPaused) return;\n      this.stopAutoplay();\n\n      if (this.autoplayTimeLeft) {\n        this.autoplayTimeLeft -= (Date.now() - this.resumedTime);\n      } else {\n        this.autoplayTimeLeft = this.autoplaySpeed - (Date.now() - this.autoplayStartTime);\n      }\n    }\n\n    resumeAutoplay() {\n      if (!this.autoplayEnabled || !this.autoplayPaused) return;\n\n      this.resumedTime = Date.now();\n      this.autoplayTimer = setTimeout(this.showNextSlide.bind(this), this.autoplayTimeLeft);\n\n      this.setSlideshowState('running');\n    }\n\n    /**\n     * Adds an observer to pause autoplay when the slideshow is not in the viewport.\n     */\n    addObserver() {\n      if ('IntersectionObserver' in window === false) return;\n\n      const observer = new IntersectionObserver((entries) => {\n        entries.forEach((entry) => {\n          if (entry.isIntersecting) {\n            this.resumeAutoplay();\n          } else {\n            this.pauseAutoplay();\n          }\n        });\n      });\n\n      observer.observe(this);\n    }\n\n    /**\n     * Sets 'aria-hidden' and 'tabindex' of the slides and text overlay buttons.\n     */\n    setSlideVisibility() {\n      this.slides.forEach((el, index) => {\n        const btns = el.querySelectorAll('a');\n\n        if (index === this.currentIndex) {\n          el.setAttribute('aria-hidden', 'false');\n          el.removeAttribute('tabindex');\n\n          btns.forEach((btn) => {\n            btn.removeAttribute('tabindex');\n          });\n        } else {\n          el.setAttribute('aria-hidden', 'true');\n          el.setAttribute('tabindex', '-1');\n\n          btns.forEach((btn) => {\n            btn.setAttribute('tabindex', '-1');\n          });\n        }\n      });\n    }\n\n    /**\n     * Sets 'aria-live' state of the slideshow and 'play-state' of the pagination animation.\n     * @param {string} state - State to set ('running' or 'paused').\n     */\n    setSlideshowState(state) {\n      this.style.setProperty('--play-state', state);\n      this.slideshow.setAttribute('aria-live', state === 'running' ? 'off' : 'polite');\n      this.autoplayPaused = state === 'paused';\n    }\n\n    /**\n     * Toggles the autoplay state.\n     * @param {object} evt - Event object.\n     */\n    togglePlayState(evt) {\n      evt.target.classList.toggle('is-paused');\n      this.autoplayEnabled = !this.autoplayEnabled;\n      this.dataset.autoplay = this.autoplayEnabled ? 'true' : 'false';\n      this.autoplayEnabled ? this.startAutoplay() : this.stopAutoplay();\n    }\n  }\n\n  customElements.define('slide-show', SlideShow);\n}\n"],
  "mappings": "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",
  "names": []
}
