{
  "version": 3,
  "sources": ["/cdn/shop/t/64/assets/bugs-gift-wrap.js?bugs_gift_build=16"],
  "sourcesContent": ["(() => {\n  const getModal = () => document.querySelector('[data-gift-wrap-modal]');\n  const getCartModal = (trigger) => {\n    const cartRoot = trigger?.closest('cart-drawer, .shopify-section--main-cart, [data-section-type=\"main-cart\"], main');\n    return cartRoot?.querySelector('[data-cart-gift-modal]') || document.querySelector('#mini-cart [data-cart-gift-modal]') || document.querySelector('[data-cart-gift-modal]') || getModal();\n  };\n  const setModalOpen = (modal, open) => {\n    if (!modal) return;\n    if (open) {\n      // Keep the modal inside the drawer's focus trap, but outside its scrolling\n      // content. Otherwise an edit click near the top can open it off-screen.\n      const drawer = modal.closest('cart-drawer');\n      if (drawer && modal.parentElement !== drawer) drawer.appendChild(modal);\n    }\n    modal.hidden = !open;\n    document.documentElement.classList.toggle('bugs-gift-modal-open', open);\n    if (open) modal.querySelector('input, button')?.focus();\n  };\n  const showError = (modal, message) => { const error = modal.querySelector('[data-gift-error]'); if (!error) return; error.textContent = message; error.hidden = !message; };\n\n  const openEditor = (editor) => {\n    const modal = getCartModal(editor);\n    if (!modal) return false;\n    const mode = editor.dataset.giftMode || 'wrap';\n    const modeInput = modal.querySelector(`.bugs-gift-choice input[value=\"${mode}\"]`);\n    if (modeInput) { modeInput.checked = true; modeInput.dispatchEvent(new Event('change', { bubbles: true })); }\n    const savedTargets = editor.dataset.giftTargets || '';\n    modal.querySelectorAll('.bugs-gift-target input').forEach((input) => {\n      input.checked = mode === 'wrap' && savedTargets.includes(input.value);\n      input.closest('.bugs-gift-target')?.classList.toggle('is-selected', input.checked);\n    });\n    const notes = modal.querySelector('[data-gift-notes]');\n    if (notes) notes.value = editor.dataset.giftNotes || '';\n    const submit = modal.querySelector('[data-gift-submit]');\n    if (!submit) return false;\n    submit.dataset.giftVariantId = editor.dataset.giftVariantId;\n    submit.dataset.giftEditKey = editor.dataset.giftLineKey;\n    submit.textContent = '\u30E9\u30C3\u30D4\u30F3\u30B0\u5185\u5BB9\u3092\u66F4\u65B0';\n    setModalOpen(modal, true);\n    return true;\n  };\n\n  // The cart drawer intercepts some clicks while it refreshes. Handle edit first,\n  // in capture phase, so the button keeps working after every AJAX cart render.\n  document.addEventListener('click', (event) => {\n    const editor = event.target.closest?.('[data-gift-edit]');\n    if (!editor) return;\n    event.preventDefault();\n    event.stopPropagation();\n    openEditor(editor);\n  }, true);\n\n  document.addEventListener('click', async (event) => {\n    const opener = event.target.closest('[data-gift-wrap-open]');\n    if (opener) {\n      event.preventDefault(); const modal = opener.closest('.bugs-gift-offer') ? (document.querySelector('[data-cart-gift-modal]') || getModal()) : getModal();\n      if (modal) { const submit = modal.querySelector('[data-gift-submit]'); const currentVariant = opener.closest('form')?.querySelector('[name=\"id\"]')?.value; submit.dataset.giftVariantId = currentVariant || opener.dataset.giftVariantId; delete submit.dataset.giftEditKey; submit.textContent = '\u3053\u306E\u5185\u5BB9\u3067\u30AE\u30D5\u30C8\u30D0\u30C3\u30B0\u3092\u8FFD\u52A0'; modal.querySelector('[data-gift-notes]').value = ''; setModalOpen(modal, true); }\n      return;\n    }\n    const editor = event.target.closest('[data-gift-edit]');\n    if (editor) {\n      event.preventDefault(); openEditor(editor); return;\n    }\n    const close = event.target.closest('[data-gift-wrap-close]');\n    if (close) { setModalOpen(close.closest('[data-gift-wrap-modal]'), false); return; }\n    const submit = event.target.closest('[data-gift-submit]'); if (!submit) return;\n    const modal = submit.closest('[data-gift-wrap-modal]'); const mode = modal.querySelector('.bugs-gift-choice input:checked')?.value || 'wrap'; const selected = [...modal.querySelectorAll('.bugs-gift-target input:checked')];\n    if (mode === 'wrap' && selected.length === 0) { showError(modal, '\u30E9\u30C3\u30D4\u30F3\u30B0\u3059\u308B\u5546\u54C1\u30921\u70B9\u4EE5\u4E0A\u9078\u629E\u3057\u3066\u304F\u3060\u3055\u3044\u3002'); return; }\n    if (mode === 'wrap' && new Set(selected.map((item) => item.dataset.shippingGroup)).size > 1) { showError(modal, '\u4E88\u7D04\u5546\u54C1\u3068\u901A\u5E38\u5546\u54C1\u306F\u767A\u9001\u6642\u671F\u304C\u7570\u306A\u308B\u305F\u3081\u3001\u540C\u3058\u30AE\u30D5\u30C8\u30D0\u30C3\u30B0\u306B\u306F\u5165\u308C\u3089\u308C\u307E\u305B\u3093\u3002\u888B\u3092\u5206\u3051\u3066\u8FFD\u52A0\u3057\u3066\u304F\u3060\u3055\u3044\u3002'); return; }\n    showError(modal, ''); submit.disabled = true; submit.classList.add('is-loading');\n    const properties = { '\u7528\u9014': mode === 'wrap' ? '\u30AE\u30D5\u30C8\u30E9\u30C3\u30D4\u30F3\u30B0' : '\u30AE\u30D5\u30C8\u30D0\u30C3\u30B0\u306E\u307F\u540C\u68B1', '\u30E9\u30C3\u30D4\u30F3\u30B0\u5BFE\u8C61': mode === 'wrap' ? selected.map((item) => item.value).join('\u3001') : '\u5BFE\u8C61\u306A\u3057\uFF08\u30D0\u30C3\u30B0\u306E\u307F\u540C\u68B1\uFF09', '_gift_group_id': `${Date.now()}-${Math.random().toString(36).slice(2, 8)}` };\n    const notes = modal.querySelector('[data-gift-notes]')?.value.trim(); if (notes) properties['\u5099\u8003'] = notes;\n    try {\n      const isEditing = !!submit.dataset.giftEditKey;\n      const endpoint = isEditing ? '/cart/change.js' : '/cart/add.js';\n      const payload = isEditing ? { id:submit.dataset.giftEditKey, quantity:1, properties } : { items:[{id:Number(submit.dataset.giftVariantId),quantity:1,properties}] };\n      const response = await fetch(endpoint, { method:'POST', headers:{'Content-Type':'application/json','Accept':'application/json'}, body:JSON.stringify(payload) });\n      if (!response.ok) throw new Error('add_failed');\n      setModalOpen(modal, false);\n      document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { detail: { openMiniCart: true } }));\n    } catch (error) { showError(modal, '\u8FFD\u52A0\u3067\u304D\u307E\u305B\u3093\u3067\u3057\u305F\u3002\u5728\u5EAB\u72B6\u6CC1\u3092\u78BA\u8A8D\u3057\u3066\u3001\u3082\u3046\u4E00\u5EA6\u304A\u8A66\u3057\u304F\u3060\u3055\u3044\u3002'); submit.disabled = false; submit.classList.remove('is-loading'); }\n  });\n\n  document.addEventListener('change', (event) => {\n    const modal = event.target.closest('[data-gift-wrap-modal]'); if (!modal) return;\n    if (event.target.matches('.bugs-gift-choice input')) { modal.querySelectorAll('.bugs-gift-choice').forEach((choice) => choice.classList.toggle('is-selected', choice.contains(event.target))); modal.querySelector('[data-gift-target-area]').hidden = event.target.value === 'include'; showError(modal, ''); }\n    if (event.target.matches('.bugs-gift-target input')) { event.target.closest('.bugs-gift-target').classList.toggle('is-selected', event.target.checked); showError(modal, ''); }\n  });\n  document.addEventListener('keydown', (event) => { if (event.key === 'Escape') setModalOpen(getModal(), false); });\n})();\n"],
  "mappings": "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",
  "names": ["modal", "submit"]
}
