{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/cart-drawer.js?id=993154%2540"],
  "sourcesContent": ["class CartDrawer extends HTMLElement {\n  constructor() {\n    super();\n\n    this.addEventListener(\n      'keyup',\n      (evt) => evt.code === 'Escape' && this.close(),\n    );\n    this.querySelector('#CartDrawer-Overlay').addEventListener(\n      'click',\n      this.close.bind(this),\n    );\n    this.setHeaderCartIconAccessibility();\n    this.updatePaymentIconsIds();\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    if (triggeredBy) this.setActiveElement(triggeredBy);\n    const cartDrawerNote = this.querySelector('[id^=\"Details-\"] summary');\n    if (cartDrawerNote && !cartDrawerNote.hasAttribute('role'))\n      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    const productPopup = document.querySelector('product-popup');\n    if (productPopup && productPopup.hasAttribute('open')) {\n      productPopup.hide();\n    }\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 =\n          this.querySelector('.drawer__inner') ||\n          this.querySelector('.drawer__close');\n        trapFocus(containerToTrapFocusOn, focusElement);\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  }\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(\n        'aria-controls',\n        cartDrawerNote.nextElementSibling.id,\n      );\n    }\n\n    cartDrawerNote.addEventListener('click', (event) => {\n      event.currentTarget.setAttribute(\n        'aria-expanded',\n        !event.currentTarget.closest('details').hasAttribute('open'),\n      );\n    });\n\n    cartDrawerNote.parentElement.addEventListener('keyup', onKeyUpEscape);\n  }\n\n  renderContents(parsedState) {\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      if (sectionElement == null || undefined) {\n        return false;\n      } else {\n        sectionElement.innerHTML = this.getSectionInnerHTML(\n          parsedState.sections[section.id],\n          section.selector,\n        );\n      }\n    });\n\n    setTimeout(() => {\n      this.querySelector('#CartDrawer-Overlay').addEventListener(\n        'click',\n        this.close.bind(this),\n      );\n      this.open();\n    });\n  }\n\n  getSectionInnerHTML(html, selector = '.shopify-section') {\n    return new DOMParser()\n      .parseFromString(html, 'text/html')\n      .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        id: 'product-free-shipping',\n      },\n    ];\n  }\n\n  getSectionDOM(html, selector = '.shopify-section') {\n    return new DOMParser()\n      .parseFromString(html, 'text/html')\n      .querySelector(selector);\n  }\n\n  setActiveElement(element) {\n    this.activeElement = element;\n  }\n\n  updatePaymentIconsIds() {\n    const paymentIcons = this.querySelectorAll('.js-payment-icon');\n    if (paymentIcons.length < 1) return;\n    paymentIcons.forEach((icon) => {\n      const id = icon.getAttribute('aria-labelledby');\n      icon.setAttribute('aria-labelledby', 'cart-drawer-' + id);\n      icon.querySelector('title').id = 'cart-drawer-' + id;\n    });\n  }\n}\n\ncustomElements.define('cart-drawer', CartDrawer);\n\nclass 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        id: 'product-free-shipping',\n        section: 'product-free-shipping',\n        selector: '.shopify-section',\n      },\n    ];\n  }\n}\n\ncustomElements.define('cart-drawer-items', CartDrawerItems);\n"],
  "mappings": "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",
  "names": []
}
