{
  "version": 3,
  "sources": ["/cdn/shop/t/16/assets/merme-cart-add.js?x=17038"],
  "sourcesContent": ["/* Merme unified add-to-cart \u2014 one AJAX handler for every Merme add button\n   (PDP + product cards), so the cart drawer always updates live.\n   Tag a form with [data-merme-add-form]; a Buy-now button with [data-merme-buy-now]. */\n(function () {\n  function cartDrawer() { return document.querySelector('cart-drawer'); }\n  function openOnAdd() {\n    var d = cartDrawer();\n    return !d || d.getAttribute('data-open-on-add') !== 'false';\n  }\n  // Update the cart drawer DOM from a /cart response WITHOUT opening it.\n  function silentUpdate(res, d) {\n    if (!d || !d.getSectionsToRender || !res.sections) return;\n    d.getSectionsToRender().forEach(function (s) {\n      var el = s.selector ? document.querySelector(s.selector) : document.getElementById(s.id);\n      if (el && res.sections[s.id] != null) el.innerHTML = d.getSectionInnerHTML(res.sections[s.id], s.selector);\n    });\n    d.classList.remove('is-empty');\n    var items = d.querySelector('cart-drawer-items'); if (items) items.classList.remove('is-empty');\n  }\n  // Apply a cart response: open the drawer or update silently, per the setting.\n  function applyCart(res, d) {\n    if (!d) { return; }\n    if (openOnAdd() && d.renderContents) {\n      d.renderContents(res);\n      d.classList.remove('is-empty');\n      var items = d.querySelector('cart-drawer-items'); if (items) items.classList.remove('is-empty');\n    } else {\n      silentUpdate(res, d);\n    }\n  }\n\n  function updateHeaderCount() {\n    fetch('/cart.js', { headers: { 'Accept': 'application/json' } })\n      .then(function (r) { return r.json(); })\n      .then(function (cart) {\n        document.querySelectorAll('[data-bb-cart-count]').forEach(function (el) {\n          el.textContent = cart.item_count;\n          el.classList.toggle('is-empty', cart.item_count === 0);\n        });\n      }).catch(function () {});\n  }\n\n  function addFromForm(form) {\n    var fd = new FormData(form);\n    var id = fd.get('id');\n    var qty = parseInt(fd.get('quantity'), 10) || 1;\n    if (!id) return Promise.reject();\n    var item = { id: id, quantity: qty };\n    // Line item properties (personalization etc.): properties[Name] inputs\n    fd.forEach(function (val, key) {\n      var m = key.match(/^properties\\[(.+)\\]$/);\n      if (m) { (item.properties = item.properties || {})[m[1]] = val; }\n    });\n    var body = { items: [item] };\n    var d = cartDrawer();\n    if (d && d.getSectionsToRender) {\n      body.sections = d.getSectionsToRender().map(function (s) { return s.id; });\n      body.sections_url = window.location.pathname;\n    }\n    return fetch('/cart/add.js', {\n      method: 'POST',\n      headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' },\n      body: JSON.stringify(body)\n    }).then(function (r) { if (!r.ok) throw new Error('add failed'); return r.json(); });\n  }\n\n  function flash(btn, ok) {\n    if (!btn) return;\n    var label = btn.querySelector('span') || btn;\n    var orig = label.textContent;\n    label.textContent = ok ? 'Added to cart \u2713' : 'Try again';\n    btn.classList.toggle('is-added', !!ok);\n    setTimeout(function () { label.textContent = orig; btn.disabled = false; btn.classList.remove('is-added'); }, 1800);\n  }\n\n  /* Add to cart (any tagged form) */\n  document.addEventListener('submit', function (e) {\n    var form = e.target.closest('[data-merme-add-form]');\n    if (!form) return;\n    e.preventDefault();\n    var btn = form.querySelector('[type=\"submit\"]');\n    if (btn) btn.disabled = true;\n    addFromForm(form).then(function (res) {\n      updateHeaderCount();\n      var d = cartDrawer();\n      if (d) { applyCart(res, d); flash(btn, true); }\n      else { window.location.href = '/cart'; }\n      document.dispatchEvent(new CustomEvent('cart:updated'));\n    }).catch(function () { flash(btn, false); window.location.href = '/cart'; });\n  });\n\n  /* Buy now (add then checkout) */\n  document.addEventListener('click', function (e) {\n    var buy = e.target.closest('[data-merme-buy-now]');\n    if (!buy) return;\n    e.preventDefault();\n    var form = buy.closest('form') || document.querySelector('[data-merme-add-form]');\n    if (!form) return;\n    if (form.reportValidity && !form.reportValidity()) return;\n    buy.disabled = true;\n    addFromForm(form).then(function () { window.location.href = '/checkout'; })\n      .catch(function () { buy.disabled = false; });\n  });\n\n  /* Custom \u2715 remove button in the cart drawer */\n  document.addEventListener('click', function (e) {\n    var x = e.target.closest('[data-mcart-remove]');\n    if (!x) return;\n    e.preventDefault();\n    var key = x.getAttribute('data-mcart-remove');\n    if (!key) return;\n    x.disabled = true;\n    var d = cartDrawer();\n    var body = { id: key, quantity: 0 };\n    if (d && d.getSectionsToRender) { body.sections = d.getSectionsToRender().map(function (s) { return s.id; }); body.sections_url = window.location.pathname; }\n    fetch('/cart/change.js', { method: 'POST', headers: { 'Content-Type': 'application/json', 'Accept': 'application/json' }, body: JSON.stringify(body) })\n      .then(function (r) { return r.json(); })\n      .then(function (res) {\n        updateHeaderCount();\n        if (d && d.renderContents) { d.renderContents(res); if (res.item_count === 0) d.classList.add('is-empty'); }\n        document.dispatchEvent(new CustomEvent('cart:updated'));\n      }).catch(function () { x.disabled = false; });\n  });\n\n  /* Expose helpers for other modules (PDP in-cart stepper) */\n  window.MermeCart = {\n    drawer: cartDrawer,\n    apply: applyCart,\n    silentUpdate: silentUpdate,\n    updateHeaderCount: updateHeaderCount,\n    openOnAdd: openOnAdd\n  };\n\n  /* Keep the header count in sync on ANY cart change (drawer +/-, remove, etc.) */\n  function ready(fn) { (document.readyState !== 'loading') ? fn() : document.addEventListener('DOMContentLoaded', fn); }\n  ready(function () {\n    updateHeaderCount();\n    try {\n      if (window.subscribe && window.PUB_SUB_EVENTS && window.PUB_SUB_EVENTS.cartUpdate) {\n        window.subscribe(window.PUB_SUB_EVENTS.cartUpdate, updateHeaderCount);\n      }\n    } catch (e) {}\n    // fallback: observe Dawn's cart-icon-bubble count and mirror it\n    var bubble = document.getElementById('cart-icon-bubble');\n    if (bubble && window.MutationObserver) {\n      new MutationObserver(updateHeaderCount).observe(bubble, { childList: true, subtree: true });\n    }\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
