{
  "version": 3,
  "sources": ["/cdn/shop/t/94/assets/rakhi-hamper-addon.js?rev=20260821-addon-1"],
  "sourcesContent": ["(function () {\n  'use strict';\n\n  const selector = '[data-rakhi-hamper-addon]';\n  const getWidget = (root = document) => root?.matches?.(selector) ? root : root?.querySelector?.(selector);\n  const getCount = (root = document) => Number.parseInt(getWidget(root)?.dataset.hamperCount || '0', 10) || 0;\n  const uniqueGroup = () => `rakhi-${Date.now()}-${Math.random().toString(36).slice(2, 9)}`;\n\n  const render = (widget) => {\n    const count = getCount(widget);\n    const add = widget.querySelector('[data-rakhi-hamper-add]');\n    const remove = widget.querySelector('[data-rakhi-hamper-remove]');\n    const status = widget.querySelector('[data-rakhi-hamper-status]');\n    add.textContent = count > 0 ? 'Add another hamper' : 'Add hamper';\n    remove.hidden = count === 0;\n    status.hidden = count === 0;\n    status.textContent = count === 0 ? '' : `${count} ${count === 1 ? 'hamper' : 'hampers'} selected`;\n  };\n\n  const setCount = (widget, count) => {\n    widget.dataset.hamperCount = String(Math.max(0, count));\n    render(widget);\n  };\n\n  const hamperProperties = (parent, relationship) => ({\n    _rakhi_addon: 'true',\n    _rakhi_parent_group: relationship.group || '',\n    _rakhi_parent_key: relationship.key || '',\n    _rakhi_parent_variant: String(parent.id || parent.variantId || ''),\n    _combo_excluded: 'true'\n  });\n\n  const buildItems = (root, parent) => {\n    const widget = getWidget(root);\n    const count = getCount(widget);\n    if (!widget || count < 1) return [parent];\n\n    const group = uniqueGroup();\n    const properties = { ...(parent.properties || {}), _rakhi_group_id: group };\n    return [\n      { ...parent, properties },\n      {\n        id: Number(widget.dataset.hamperVariantId),\n        quantity: count,\n        properties: hamperProperties(parent, { group })\n      }\n    ];\n  };\n\n  const buildForExistingParent = (root, parent) => {\n    const widget = getWidget(root);\n    const count = getCount(widget);\n    if (!widget || count < 1) return [];\n    return [{\n      id: Number(widget.dataset.hamperVariantId),\n      quantity: count,\n      properties: hamperProperties(parent, { key: parent.key || '' })\n    }];\n  };\n\n  const reset = (root = document) => {\n    const widget = getWidget(root);\n    if (widget) setCount(widget, 0);\n  };\n\n  const addItems = async (items) => {\n    const response = await fetch('/cart/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n      body: JSON.stringify({ items })\n    });\n    const payload = await response.json().catch(() => ({}));\n    if (!response.ok) throw new Error(payload.description || 'Could not add the hamper.');\n    return payload;\n  };\n\n  const refreshDrawer = async () => {\n    const response = await fetch('/cart.js', { headers: { Accept: 'application/json' }, cache: 'no-store' });\n    const cart = await response.json();\n    document.querySelectorAll('.js-cart-count').forEach((node) => { node.textContent = String(cart.item_count || 0); });\n    window.theme?.miniCart?.refreshCart?.(cart, false);\n    document.dispatchEvent(new CustomEvent('kp:cart-updated', { detail: { cart } }));\n    document.querySelector('.js-mini-cart')?.classList.add('active');\n    return cart;\n  };\n\n  const initWidget = (widget) => {\n    if (widget.dataset.rakhiInitialized) return;\n    widget.dataset.rakhiInitialized = 'true';\n    widget.querySelector('[data-rakhi-hamper-add]')?.addEventListener('click', () => setCount(widget, getCount(widget) + 1));\n    widget.querySelector('[data-rakhi-hamper-remove]')?.addEventListener('click', () => setCount(widget, getCount(widget) - 1));\n    render(widget);\n  };\n\n  const init = () => {\n    document.querySelectorAll(selector).forEach(initWidget);\n    reorderCartRows();\n  };\n\n  const isRakhiAddonRow = (row) => row.dataset.rakhiAddon === 'true';\n  const isGiftWrapAddonRow = (row) => row.dataset.giftWrapAddon === 'true';\n  const isLinkedAddonRow = (row) => isRakhiAddonRow(row) || isGiftWrapAddonRow(row);\n\n  const matchesParent = (addon, parent) => {\n    if (isGiftWrapAddonRow(addon)) {\n      if (addon.dataset.giftParentGroup) return addon.dataset.giftParentGroup === parent.dataset.giftGroup;\n      if (addon.dataset.giftParentKey) return addon.dataset.giftParentKey === parent.dataset.cartKey;\n      return Boolean(addon.dataset.giftParentVariant)\n        && addon.dataset.giftParentVariant === parent.dataset.variantId;\n    }\n\n    if (addon.dataset.rakhiParentGroup) return addon.dataset.rakhiParentGroup === parent.dataset.rakhiGroup;\n    if (addon.dataset.rakhiParentKey) return addon.dataset.rakhiParentKey === parent.dataset.cartKey;\n    return Boolean(addon.dataset.rakhiParentVariant)\n      && addon.dataset.rakhiParentVariant === parent.dataset.variantId;\n  };\n\n  function reorderCartRows() {\n    const rows = Array.from(document.querySelectorAll('#CartProducts [data-cart-key]'));\n    const parents = rows.filter((row) => !isLinkedAddonRow(row));\n    const addons = rows.filter(isLinkedAddonRow);\n    parents.forEach((parent) => {\n      let anchor = parent;\n      addons.filter((addon) => matchesParent(addon, parent)).forEach((addon) => {\n        anchor.insertAdjacentElement('afterend', addon);\n        anchor = addon;\n      });\n    });\n  }\n\n  document.addEventListener('submit', async (event) => {\n    const form = event.target.closest?.('form[action*=\"/cart/add\"]');\n    const widget = form?.querySelector(selector);\n    if (!form || !widget || getCount(widget) < 1 || form.dataset.rakhiSubmitting === 'true') return;\n\n    event.preventDefault();\n    event.stopImmediatePropagation();\n    form.dataset.rakhiSubmitting = 'true';\n    const submit = form.querySelector('[type=\"submit\"][name=\"add\"]');\n    if (submit) submit.disabled = true;\n\n    try {\n      const variant = form.querySelector('[name=\"id\"]');\n      const quantity = form.querySelector('[name=\"quantity\"]');\n      const items = buildItems(form, {\n        id: Number(variant?.value),\n        quantity: Math.max(1, Number.parseInt(quantity?.value || '1', 10) || 1)\n      });\n      await addItems(items);\n      reset(form);\n      await refreshDrawer();\n    } catch (error) {\n      window.alert(error.message || 'Could not add this product and hamper.');\n    } finally {\n      form.dataset.rakhiSubmitting = 'false';\n      if (submit) submit.disabled = false;\n    }\n  }, true);\n\n  document.addEventListener('click', async (event) => {\n    const remove = event.target.closest?.('[data-rakhi-cart-remove]');\n    const row = remove?.closest?.('[data-cart-key]');\n    if (!remove || !row || isLinkedAddonRow(row)) return;\n    const related = Array.from(document.querySelectorAll('#CartProducts [data-cart-key]'))\n      .filter(isLinkedAddonRow)\n      .filter((addon) => matchesParent(addon, row));\n    if (!related.length) return;\n\n    event.preventDefault();\n    const updates = { [row.dataset.cartKey]: 0 };\n    related.forEach((addon) => { updates[addon.dataset.cartKey] = 0; });\n    await fetch('/cart/update.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', Accept: 'application/json' },\n      body: JSON.stringify({ updates })\n    });\n    window.location.reload();\n  }, true);\n\n  window.KpRakhiHamperAddon = {\n    addItems,\n    buildItems,\n    buildForExistingParent,\n    getCount,\n    refreshDrawer,\n    reset\n  };\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', init, { once: true });\n  else init();\n  document.addEventListener('shopify:section:load', init);\n})();\n"],
  "mappings": "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",
  "names": []
}
