{
  "version": 3,
  "sources": ["/cdn/shop/t/175/assets/cart-drawer.js?sdc=20260922a"],
  "sourcesContent": ["import { DialogComponent } from '@theme/dialog';\nimport { CartAddEvent } from '@theme/events';\nimport '@theme/product-form';\n\n/**\n * A custom element that manages a cart drawer.\n *\n * @extends {DialogComponent}\n */\nclass CartDrawerComponent extends DialogComponent {\n  #shippingProtectionEnabled = true;\n\n  #shippingProtectionObserver;\n\n  #recommendationObserver;\n\n  #shippingProtectionSyncQueued = false;\n\n  connectedCallback() {\n    super.connectedCallback();\n    document.addEventListener(CartAddEvent.eventName, this.#handleCartAdd);\n    this.addEventListener('click', this.#handleAnalyticsClick);\n    this.#shippingProtectionObserver = new MutationObserver(this.#queueShippingProtectionSync);\n    this.#shippingProtectionObserver.observe(this, { childList: true, subtree: true });\n    this.#queueShippingProtectionSync();\n  }\n\n  disconnectedCallback() {\n    super.disconnectedCallback();\n    document.removeEventListener(CartAddEvent.eventName, this.#handleCartAdd);\n    this.removeEventListener('click', this.#handleAnalyticsClick);\n    this.#shippingProtectionObserver?.disconnect();\n    this.#recommendationObserver?.disconnect();\n  }\n\n  #handleCartAdd = () => {\n    if (this.hasAttribute('auto-open')) {\n      this.open();\n    }\n  };\n\n  #expandMobileOrderSummary() {\n    if (!window.matchMedia('(max-width: 749px)').matches) return;\n\n    const orderSummary = this.querySelector('[data-sdc-order-summary]');\n    if (orderSummary instanceof HTMLDetailsElement) orderSummary.open = true;\n  }\n\n  #cartAnalyticsContext() {\n    return {\n      surface: 'cart_drawer',\n      itemCount: Number(this.dataset.cartItemCount) || 0,\n      cartTotal: Number(this.dataset.cartTotal) || 0,\n      currency: this.dataset.cartCurrency || '',\n    };\n  }\n\n  #track(eventName, payload, options) {\n    window.StrikemanAnalytics?.track?.(\n      eventName,\n      Object.assign(this.#cartAnalyticsContext(), payload || {}),\n      options\n    );\n  }\n\n  #handleAnalyticsClick = (event) => {\n    const target = event.target instanceof Element ? event.target : null;\n    if (!target) return;\n\n    const checkoutButton = target.closest('.cart__checkout-button, #nvd-with-checkout-btn, #nvd-without-checkout-btn');\n    if (checkoutButton) {\n      this.#track('cart_drawer_checkout_clicked', {\n        shippingProtectionEnabled: this.#shippingProtectionEnabled,\n      });\n      return;\n    }\n\n    const summaryToggle = target.closest('.sdc-summary-disclosure > summary');\n    if (summaryToggle) {\n      window.setTimeout(() => {\n        const details = summaryToggle.closest('details');\n        this.#track('cart_drawer_order_summary_toggled', {\n          expanded: Boolean(details?.open),\n        });\n      });\n    }\n\n    const recommendation = target.closest('.sdc-recommendation');\n    if (!recommendation) return;\n\n    const recommendationAction = target.closest('.sdc-recommendation__quick-add')\n      ? target.closest('button')\n        ? 'quick_add'\n        : 'choose_options'\n      : 'product_link';\n\n    this.#track('cart_drawer_recommendation_clicked', {\n      action: recommendationAction,\n      productId: recommendation.dataset.productId || '',\n      productHandle: recommendation.dataset.productHandle || '',\n      variantId: recommendation.dataset.variantId || '',\n      recommendationPosition: Number(recommendation.dataset.recommendationPosition) || 0,\n    });\n  };\n\n  #observeRecommendations() {\n    this.#recommendationObserver?.disconnect();\n    const section = this.querySelector('[data-sdc-recommendations]');\n    if (!section) return;\n\n    const recommendations = Array.from(section.querySelectorAll('.sdc-recommendation')).map((item) => ({\n      productId: item.dataset.productId || '',\n      productHandle: item.dataset.productHandle || '',\n      variantId: item.dataset.variantId || '',\n      recommendationPosition: Number(item.dataset.recommendationPosition) || 0,\n    }));\n    const signature = recommendations.map((item) => item.productHandle).join('|') || 'resources';\n\n    if (!('IntersectionObserver' in window)) {\n      this.#track('cart_drawer_recommendations_viewed', { recommendations }, { onceKey: `cart-recommendations:${signature}` });\n      return;\n    }\n\n    this.#recommendationObserver = new IntersectionObserver(\n      (entries, observer) => {\n        if (!entries.some((entry) => entry.isIntersecting && entry.intersectionRatio >= 0.5)) return;\n        this.#track(\n          recommendations.length ? 'cart_drawer_recommendations_viewed' : 'cart_drawer_resources_viewed',\n          { recommendations },\n          { onceKey: `cart-recommendations:${signature}` }\n        );\n        observer.disconnect();\n      },\n      { threshold: [0.5] }\n    );\n    this.#recommendationObserver.observe(section);\n  }\n\n  #queueShippingProtectionSync = () => {\n    if (this.#shippingProtectionSyncQueued) return;\n\n    this.#shippingProtectionSyncQueued = true;\n    requestAnimationFrame(() => {\n      this.#shippingProtectionSyncQueued = false;\n      this.#syncShippingProtection();\n    });\n  };\n\n  #toggleShippingProtection = () => {\n    this.#shippingProtectionEnabled = !this.#shippingProtectionEnabled;\n    this.#syncShippingProtection();\n    this.#track('cart_drawer_shipping_protection_toggled', {\n      enabled: this.#shippingProtectionEnabled,\n    });\n  };\n\n  #syncShippingProtection() {\n    const widget = this.querySelector('#nvd-standard-widget-container');\n    const controls = this.querySelector('[data-sdc-shipping-protection-controls]');\n    const summaryRow = this.querySelector('[data-sdc-shipping-protection-summary]');\n    if (!widget || !controls || !summaryRow) return;\n\n    widget.dataset.sdcProtectionEnabled = String(this.#shippingProtectionEnabled);\n\n    let toggle = controls.querySelector('.sdc-shipping-protection-toggle');\n    if (!toggle) {\n      toggle = document.createElement('button');\n      toggle.type = 'button';\n      toggle.className = 'sdc-shipping-protection-toggle';\n      toggle.setAttribute('role', 'checkbox');\n      toggle.innerHTML =\n        '<span class=\"sdc-shipping-protection-toggle__box\" aria-hidden=\"true\"></span><span>Shipping Protection</span>';\n      toggle.addEventListener('click', this.#toggleShippingProtection);\n      controls.prepend(toggle);\n    }\n    toggle.setAttribute('aria-checked', String(this.#shippingProtectionEnabled));\n\n    const info = widget.querySelector('.nvd-secondary-content');\n    if (info) {\n      controls.querySelectorAll('.nvd-secondary-content').forEach((existingInfo) => {\n        if (existingInfo !== info) existingInfo.remove();\n      });\n      if (info.parentElement !== controls) controls.append(info);\n    }\n\n    const protectionAmount = widget.querySelector('.nvd-title span')?.textContent.trim() || '$0.00';\n    const summaryAmount = summaryRow.querySelector('[data-sdc-shipping-protection-amount]');\n    const displayedProtectionAmount = this.#shippingProtectionEnabled ? protectionAmount : '$0.00';\n    if (summaryAmount && summaryAmount.textContent.trim() !== displayedProtectionAmount) {\n      summaryAmount.textContent = displayedProtectionAmount;\n    }\n    summaryRow.hidden = false;\n\n    const cartTotal = this.querySelector('[data-cart-subtotal]');\n    const compactTotal = this.querySelector('.sdc-summary-disclosure__compact-total strong');\n    const protectedCheckout = widget.querySelector('#nvd-with-checkout-btn');\n    const unprotectedCheckout = widget.querySelector('#nvd-without-checkout-btn');\n    if (!cartTotal || !protectedCheckout || !unprotectedCheckout) return;\n\n    const rawBaseTotal =\n      cartTotal.dataset.sdcBaseTotal || cartTotal.getAttribute('value') || cartTotal.textContent.trim();\n    const baseTotal = rawBaseTotal.replace(/\\s+[A-Z]{3}\\s*$/, '');\n    cartTotal.dataset.sdcBaseTotal = baseTotal;\n    if (compactTotal && !compactTotal.dataset.sdcBaseTotal) {\n      compactTotal.dataset.sdcBaseTotal = compactTotal.textContent.trim().replace(/\\s+[A-Z]{3}\\s*$/, '');\n    }\n\n    const protectedMoney = protectedCheckout.textContent.match(/[$][\\d,.]+/)?.[0];\n    const protectedTotal = protectedMoney || baseTotal;\n    const displayedTotal = this.#shippingProtectionEnabled ? protectedTotal : baseTotal;\n\n    if (cartTotal.textContent.trim() !== displayedTotal) cartTotal.textContent = displayedTotal;\n    if (compactTotal && compactTotal.textContent.trim() !== displayedTotal) compactTotal.textContent = displayedTotal;\n\n    const unprotectedLabel = unprotectedCheckout.querySelector('span') || unprotectedCheckout;\n    const checkoutLabel = `Checkout \u00B7 ${baseTotal}`;\n    if (unprotectedLabel.textContent.trim() !== checkoutLabel) unprotectedLabel.textContent = checkoutLabel;\n  }\n\n  open() {\n    this.#expandMobileOrderSummary();\n    this.showDialog();\n    this.#queueShippingProtectionSync();\n    this.#track('cart_drawer_opened');\n    window.setTimeout(() => this.#observeRecommendations());\n\n    /**\n     * Close cart drawer when installments CTA is clicked to avoid overlapping dialogs\n     */\n    customElements.whenDefined('shopify-payment-terms').then(() => {\n      const installmentsContent = document.querySelector('shopify-payment-terms')?.shadowRoot;\n      const cta = installmentsContent?.querySelector('#shopify-installments-cta');\n      cta?.addEventListener('click', this.closeDialog, { once: true });\n    });\n  }\n\n  close() {\n    this.#track('cart_drawer_closed');\n    this.closeDialog();\n  }\n}\n\nif (!customElements.get('cart-drawer-component')) {\n  customElements.define('cart-drawer-component', CartDrawerComponent);\n}\n"],
  "mappings": "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",
  "names": []
}
