{
  "version": 3,
  "sources": ["/cdn/shop/t/66/assets/announcement.js?cb=16427"],
  "sourcesContent": ["/**\n * Returns a function that as long as it continues to be invoked, won't be triggered.\n * @param {Function} fn - Callback function.\n * @param {number} [wait=300] - Delay (in milliseconds).\n * @returns {Function}\n */\nfunction debounce(fn, wait = 300) {\n  let t;\n  return (...args) => {\n    clearTimeout(t);\n    t = setTimeout(() => fn.apply(this, args), wait);\n  };\n}\n\nif (!customElements.get('announcement-bar')) {\n  class AnnouncementBar extends HTMLElement {\n    constructor() {\n      super();\n      this.slider = this.querySelector('.announcement__slider');\n      this.localization = this.querySelector('.announcement__localization');\n      this.links = this.querySelectorAll('.js-announcement-link');\n      this.menu = document.querySelector('.main-menu__content');\n      this.isPaused = false;\n\n      this.bindEvents();\n      this.init();\n    }\n\n    disconnectedCallback() {\n      if (this.moveLinksHandler) {\n        window.removeEventListener('on:breakpoint-change', this.moveLinksHandler);\n      }\n\n      if (this.moveLocalizationHandler) {\n        window.removeEventListener('on:breakpoint-change', this.moveLocalizationHandler);\n      }\n    }\n\n    bindEvents() {\n      if (this.links) {\n        this.moveLinksHandler = this.moveLinksHandler || this.moveLinks.bind(this);\n        window.addEventListener('on:breakpoint-change', this.moveLinksHandler);\n      }\n\n      if (this.localization) {\n        this.moveLocalizationHandler = this.moveLocalizationHandler\n          || debounce(this.moveLocalization.bind(this));\n        window.addEventListener('on:breakpoint-change', this.moveLocalizationHandler);\n      }\n\n      if (this.slider) {\n        this.slider.addEventListener('mouseenter', this.pauseSlider.bind(this));\n        this.slider.addEventListener('mouseleave', this.resumeSlider.bind(this));\n      }\n    }\n\n    /**\n     * Start sliders a slidin'\n     */\n    init() {\n      if (this.slider) {\n        const slides = this.slider.querySelectorAll('.announcement__text');\n        slides[0].classList.add('is-visible');\n\n        const nextSlide = () => {\n          if (!this.isPaused && theme.elementUtil.isInViewport(this)) {\n            const currSlide = this.slider.querySelector('.announcement__text.is-visible');\n            const currSlideIndex = Array.from(currSlide.parentNode.children)\n              .indexOf(currSlide);\n            const nextSlideIndex = currSlideIndex + 1 < slides.length ? currSlideIndex + 1 : 0;\n\n            if (document.dir === 'rtl') {\n              this.slider.scrollTo(\n                -Math.abs(nextSlideIndex * slides[nextSlideIndex].clientWidth),\n                0\n              );\n            } else {\n              this.slider.scrollTo(slides[nextSlideIndex].offsetLeft - 32, 0);\n            }\n\n            slides[nextSlideIndex].classList.add('is-visible');\n            slides[currSlideIndex].classList.remove('is-visible');\n          }\n\n          setTimeout(nextSlide, this.dataset.slideDelay);\n        };\n        setTimeout(nextSlide, this.dataset.slideDelay);\n      }\n\n      if (this.links) {\n        this.moveLinks();\n      }\n\n      if (this.localization) {\n        this.moveLocalization();\n      }\n    }\n\n    /**\n     * Move the help links selectors to the mobile nav/back to the announcement bar if necessary\n     */\n    moveLinks() {\n      const menuAnnouncementLinks = document.querySelector('.mob__announcement-links');\n      if (!theme.mediaMatches.md && !menuAnnouncementLinks) {\n        // Move localization to mobile\n        const mobNav = document.createElement('nav');\n        mobNav.classList.add('mob__announcement-links');\n\n        const mobNavUl = document.createElement('ul');\n        mobNav.classList.add('secondary-nav');\n\n        this.links.forEach((link) => {\n          mobNav.innerHTML += `<li><a class=\"secondary-nav__item\" href=\"${link.href}\">${link.innerText}</a>`;\n        });\n\n        mobNav.appendChild(mobNavUl);\n        this.menu.appendChild(mobNav);\n      } else if (theme.mediaMatches.md && menuAnnouncementLinks) {\n        menuAnnouncementLinks.remove();\n      }\n    }\n\n    /**\n     * Move the localization selectors to the mobile nav/back to the announcement bar if necessary\n     */\n    moveLocalization() {\n      this.slider = this.querySelector('.announcement__slider');\n      this.localization = this.querySelector('.announcement__localization');\n      this.links = this.querySelectorAll('.js-announcement-link');\n      this.menu = document.querySelector('.main-menu__content');\n      const menuLocalization = document.querySelector('.mob__localization');\n      if (!theme.mediaMatches.md && !menuLocalization) {\n        // Move localization to mobile\n        const mobLocalizationElem = document.createElement('div');\n        mobLocalizationElem.classList.add('mob__localization');\n        mobLocalizationElem.appendChild(this.localization.firstElementChild);\n        this.menu.appendChild(mobLocalizationElem);\n      } else if (theme.mediaMatches.md && menuLocalization) {\n        // Move localization back to announcement bar\n        this.localization.appendChild(menuLocalization.firstElementChild);\n        menuLocalization.remove();\n      }\n    }\n\n    /**\n     * Pauses the auto-rotating slider\n     */\n    pauseSlider() {\n      this.isPaused = true;\n    }\n\n    /**\n     * Resumes the auto-rotating slider\n     */\n    resumeSlider() {\n      this.isPaused = false;\n    }\n  }\n\n  customElements.define('announcement-bar', AnnouncementBar);\n}\n"],
  "mappings": "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",
  "names": []
}
