{
  "version": 3,
  "sources": ["/cdn/shop/t/3/assets/shopify-cart.js"],
  "sourcesContent": ["import { l as layout } from \"./layout-store.js\";\nimport \"./preact-signals.js\";\nclass ShopifyCart extends HTMLElement {\n  constructor() {\n    super();\n    this.setting = \"cart\";\n    this.cartNoteEnabled = false;\n    this.busy = false;\n    this.updatingLineItem = null;\n    this.regularItem = [];\n    this.layout = layout;\n    this.ageVerificationCheckbox = null;\n    this.checkoutBtn = null;\n    this.cartNoteTextarea = null;\n    this.giftNoteTextarea = null;\n    this.noteUpdateTimeout = null;\n    this.cartObserver = null;\n    this.boundCheckboxChange = null;\n    this.boundCheckoutClick = null;\n    this.boundCartNoteInput = null;\n    this.boundGiftNoteInput = null;\n    this.getCart();\n  }\n  connectedCallback() {\n    this.setupAgeVerification();\n    this.setupCartNotes();\n    this.observeCartChanges();\n  }\n  disconnectedCallback() {\n    if (this.cartObserver) {\n      this.cartObserver.disconnect();\n    }\n    if (this.noteUpdateTimeout) {\n      clearTimeout(this.noteUpdateTimeout);\n    }\n    this.cleanupAgeVerificationListeners();\n    this.cleanupCartNoteListeners();\n  }\n  cleanupAgeVerificationListeners() {\n    if (this.ageVerificationCheckbox && this.boundCheckboxChange) {\n      this.ageVerificationCheckbox.removeEventListener(\n        \"change\",\n        this.boundCheckboxChange\n      );\n    }\n    if (this.checkoutBtn && this.boundCheckoutClick) {\n      this.checkoutBtn.removeEventListener(\"click\", this.boundCheckoutClick);\n    }\n  }\n  cleanupCartNoteListeners() {\n    if (this.cartNoteTextarea && this.boundCartNoteInput) {\n      this.cartNoteTextarea.removeEventListener(\n        \"input\",\n        this.boundCartNoteInput\n      );\n    }\n    if (this.giftNoteTextarea && this.boundGiftNoteInput) {\n      this.giftNoteTextarea.removeEventListener(\n        \"input\",\n        this.boundGiftNoteInput\n      );\n    }\n  }\n  observeCartChanges() {\n    if (this.cartObserver) {\n      this.cartObserver.disconnect();\n    }\n    this.cartObserver = new MutationObserver(() => {\n      this.setupAgeVerification();\n      this.setupCartNotes();\n    });\n    this.cartObserver.observe(this, { childList: true, subtree: true });\n  }\n  async getCart() {\n    this.busy = true;\n    this.layout.fetchCart().then(() => {\n      this.busy = false;\n      this.setupAgeVerification();\n      this.setupCartNotes();\n    });\n  }\n  setupAgeVerification() {\n    this.cleanupAgeVerificationListeners();\n    this.ageVerificationCheckbox = this.querySelector(\n      '[id^=\"age-verification-checkbox\"]'\n    );\n    this.checkoutBtn = this.querySelector(\".checkout-btn\");\n    if (this.ageVerificationCheckbox && this.checkoutBtn) {\n      this.updateCheckoutButtonState();\n      this.boundCheckboxChange = () => {\n        this.updateCheckoutButtonState();\n      };\n      this.boundCheckoutClick = (e) => {\n        var _a;\n        if (!((_a = this.ageVerificationCheckbox) == null ? void 0 : _a.checked)) {\n          e.preventDefault();\n          this.showAgeVerificationError();\n        }\n      };\n      this.ageVerificationCheckbox.addEventListener(\n        \"change\",\n        this.boundCheckboxChange\n      );\n      this.checkoutBtn.addEventListener(\"click\", this.boundCheckoutClick);\n    }\n  }\n  updateCheckoutButtonState() {\n    if (!this.ageVerificationCheckbox || !this.checkoutBtn) return;\n    const isVerified = this.ageVerificationCheckbox.checked;\n    if (isVerified) {\n      this.checkoutBtn.classList.remove(\"btn--disabled\");\n      this.checkoutBtn.removeAttribute(\"data-disabled\");\n      this.checkoutBtn.style.opacity = \"1\";\n      this.checkoutBtn.style.pointerEvents = \"auto\";\n    } else {\n      this.checkoutBtn.classList.add(\"btn--disabled\");\n      this.checkoutBtn.setAttribute(\"data-disabled\", \"true\");\n      this.checkoutBtn.style.opacity = \"0.5\";\n      this.checkoutBtn.style.pointerEvents = \"none\";\n    }\n  }\n  showAgeVerificationError() {\n    const existingError = this.querySelector(\".age-verification-error\");\n    if (existingError) {\n      existingError.remove();\n    }\n    const errorMsg = document.createElement(\"div\");\n    errorMsg.className = \"age-verification-error text-red-500 text-detail mt-5\";\n    errorMsg.textContent = \"Please confirm that you are 18 years or over to proceed to checkout.\";\n    const ageVerificationDiv = this.querySelector(\".age-verification\");\n    if (ageVerificationDiv) {\n      ageVerificationDiv.appendChild(errorMsg);\n      setTimeout(() => {\n        errorMsg.remove();\n      }, 5e3);\n    }\n  }\n  setupCartNotes() {\n    this.cleanupCartNoteListeners();\n    this.cartNoteTextarea = this.querySelector(\"#cart-note\");\n    this.giftNoteTextarea = this.querySelector(\"#gift-note\");\n    if (this.cartNoteTextarea) {\n      this.parseExistingNotes();\n      this.boundCartNoteInput = () => {\n        this.debouncedUpdateCartNote();\n      };\n      this.cartNoteTextarea.addEventListener(\"input\", this.boundCartNoteInput);\n    }\n    if (this.giftNoteTextarea) {\n      this.boundGiftNoteInput = () => {\n        this.debouncedUpdateCartNote();\n      };\n      this.giftNoteTextarea.addEventListener(\"input\", this.boundGiftNoteInput);\n    }\n  }\n  parseExistingNotes() {\n    if (!this.cartNoteTextarea) return;\n    const currentNote = this.cartNoteTextarea.value;\n    const giftNoteMarker = \"Gift Note:\";\n    if (currentNote.includes(giftNoteMarker)) {\n      const parts = currentNote.split(giftNoteMarker);\n      const regularNote = parts[0].trim();\n      const giftNote = parts[1] ? parts[1].trim() : \"\";\n      this.cartNoteTextarea.value = regularNote;\n      if (this.giftNoteTextarea) {\n        this.giftNoteTextarea.value = giftNote;\n      }\n    }\n  }\n  debouncedUpdateCartNote() {\n    if (this.noteUpdateTimeout) {\n      clearTimeout(this.noteUpdateTimeout);\n    }\n    this.noteUpdateTimeout = setTimeout(() => {\n      this.updateCartNote();\n    }, 500);\n  }\n  async updateCartNote() {\n    if (!this.cartNoteTextarea) return;\n    let finalNote = this.cartNoteTextarea.value.trim();\n    if (this.giftNoteTextarea && this.giftNoteTextarea.value.trim()) {\n      const giftNote = this.giftNoteTextarea.value.trim();\n      finalNote = finalNote ? `${finalNote}\n\nGift Note: ${giftNote}` : `Gift Note: ${giftNote}`;\n    }\n    try {\n      const response = await fetch(\"/cart/update.js\", {\n        method: \"POST\",\n        headers: {\n          \"Content-Type\": \"application/json\"\n        },\n        body: JSON.stringify({\n          note: finalNote\n        })\n      });\n      if (!response.ok) {\n        throw new Error(\"Failed to update cart note\");\n      }\n    } catch (error) {\n      console.error(\"Error updating cart note:\", error);\n    }\n  }\n  close() {\n    this.layout.slideover.value = null;\n  }\n}\nexport {\n  ShopifyCart,\n  ShopifyCart as default\n};\n"],
  "mappings": "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",
  "names": []
}
