{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/cart-drawer.js?id=993154%2540"],
  "sourcesContent": ["if (!customElements.get('cart-drawer')) {\n  class CartDrawer extends HTMLElement {\n    constructor() {\n      super();\n      this.isInitialized = false;\n      this.setHeaderCartIconAccessibility();\n    }\n\n    init() {\n      if (!this.isInitialized) {\n        window.loadTemplateContent(this);\n\n        requestAnimationFrame(() => {\n          // Bind various things\n          this.addEventListener('keyup', (evt) => evt.code === 'Escape' && this.close());\n          this.querySelector('#CartDrawer-Overlay').addEventListener('click', this.close.bind(this));\n          this.moveCssLinks();\n          this.isInitialized = true;\n        });\n      }\n    }\n\n    reload() {\n      const sections = this.getSectionsToRender().map((section) => section.id);\n      fetch(`?sections=${sections}`)\n        .then((response) => response.json())\n        .then((response) => {\n          this.renderContents({\n            sections: {\n              ...response\n            }\n          }, true);\n        })\n        .catch((e) => {\n          console.error(e);\n        });\n    }\n\n    moveCssLinks() {\n      const cssLinks = this.querySelectorAll('link[rel=\"stylesheet\"][href*=\".css\"]');\n      cssLinks.forEach(link => {\n        // Check if the link already exists in the document head\n        const href = link.href;\n        if (!document.head.querySelector(`link[href=\"${href}\"]`)) {\n          // Clone the link element\n          const newLink = link.cloneNode(true);\n          // Append the cloned link to the document head\n          document.head.appendChild(newLink);\n        }\n      });\n    }\n\n    setHeaderCartIconAccessibility() {\n      const cartLink = document.querySelector('#cart-icon-bubble');\n      cartLink.setAttribute('role', 'button');\n      cartLink.setAttribute('aria-haspopup', 'dialog');\n      cartLink.addEventListener('click', (event) => {\n        event.preventDefault();\n        this.open(cartLink);\n      });\n      cartLink.addEventListener('keydown', (event) => {\n        if (event.code.toUpperCase() === 'SPACE') {\n          event.preventDefault();\n          this.open(cartLink);\n        }\n      });\n    }\n\n    open(triggeredBy) {\n      this.init();\n\n      if (triggeredBy) this.setActiveElement(triggeredBy);\n      const cartDrawerNote = this.querySelector('[id^=\"Details-\"] summary');\n      if (cartDrawerNote && !cartDrawerNote.hasAttribute('role')) this.setSummaryAccessibility(cartDrawerNote);\n      // here the animation doesn't seem to always get triggered. A timeout seem to help\n      setTimeout(() => {\n        this.classList.add('animate', 'active');\n      });\n\n      this.removeDeleteTabIndex();\n\n      this.addEventListener(\n        'transitionend',\n        () => {\n          const containerToTrapFocusOn = this.classList.contains('is-empty')\n            ? this.querySelector('.drawer__inner-empty')\n            : document.getElementById('CartDrawer');\n          const focusElement = this.querySelector('.drawer__inner') || this.querySelector('.drawer__close');\n          trapFocus(containerToTrapFocusOn, focusElement);\n\n          publish(PUB_SUB_EVENTS.cartOpen);\n        },\n        {once: true}\n      );\n\n      document.body.classList.add('overflow-hidden');\n    }\n\n    close() {\n      this.classList.remove('active');\n      removeTrapFocus(this.activeElement);\n      document.body.classList.remove('overflow-hidden');\n      publish(PUB_SUB_EVENTS.cartClose);\n    }\n\n    /**\n     * Ensure all remove buttons can be tabbed to\n     */\n    removeDeleteTabIndex() {\n      this.querySelectorAll('.cart-remove-button').forEach((button) => {\n        button.removeAttribute('tabindex')\n      });\n    }\n\n    setSummaryAccessibility(cartDrawerNote) {\n      cartDrawerNote.setAttribute('role', 'button');\n      cartDrawerNote.setAttribute('aria-expanded', 'false');\n\n      if (cartDrawerNote.nextElementSibling.getAttribute('id')) {\n        cartDrawerNote.setAttribute('aria-controls', cartDrawerNote.nextElementSibling.id);\n      }\n\n      cartDrawerNote.addEventListener('click', (event) => {\n        event.currentTarget.setAttribute('aria-expanded', !event.currentTarget.closest('details').hasAttribute('open'));\n      });\n\n      cartDrawerNote.parentElement.addEventListener('keyup', onKeyUpEscape);\n    }\n\n    renderContents(parsedState, preventOpen = false) {\n      this.querySelector('.drawer__inner').classList.contains('is-empty') &&\n      this.querySelector('.drawer__inner').classList.remove('is-empty');\n      this.productId = parsedState.id;\n      this.getSectionsToRender().forEach((section) => {\n        const sectionElement = section.selector\n          ? document.querySelector(section.selector)\n          : document.getElementById(section.id);\n        sectionElement.innerHTML = this.getSectionInnerHTML(parsedState.sections[section.id], section.selector);\n      });\n\n      setTimeout(() => {\n        window.loadTemplateContent(this);\n        this.querySelector('#CartDrawer-Overlay').addEventListener('click', this.close.bind(this));\n      });\n\n      this.removeDeleteTabIndex();\n\n      if (theme.settings.cartDrawer.atcAction === 'drawer' && !preventOpen) {\n        setTimeout(() => {\n          this.open();\n        });\n      }\n    }\n\n    getSectionInnerHTML(html, selector = '.shopify-section') {\n      html = html.replace(/<template\\b[^>]*>|<\\/template>/g, '');\n      return new DOMParser().parseFromString(html, 'text/html').querySelector(selector).innerHTML;\n    }\n\n    getSectionsToRender() {\n      return [\n        {\n          id: 'cart-drawer',\n          selector: '#CartDrawer',\n        },\n        {\n          id: 'cart-icon-bubble',\n        },\n      ];\n    }\n\n    getSectionDOM(html, selector = '.shopify-section') {\n      return new DOMParser().parseFromString(html, 'text/html').querySelector(selector);\n    }\n\n    setActiveElement(element) {\n      this.activeElement = element;\n    }\n  }\n\n  customElements.define('cart-drawer', CartDrawer);\n}\n\nif (!customElements.get('cart-drawer-items')) {\n  customElements.whenDefined('cart-items').then(() => {\n    class CartDrawerItems extends CartItems {\n      getSectionsToRender() {\n        return [\n          {\n            id: 'CartDrawer',\n            section: 'cart-drawer',\n            selector: '.drawer__inner',\n          },\n          {\n            id: 'cart-icon-bubble',\n            section: 'cart-icon-bubble',\n            selector: '.shopify-section',\n          },\n        ];\n      }\n    }\n\n    customElements.define('cart-drawer-items', CartDrawerItems);\n  });\n}\n"],
  "mappings": "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",
  "names": []
}
