{
  "version": 3,
  "sources": ["/cdn/shop/t/19/assets/hemios-shipping-protection-fix.js?codex=discount-teaser-20260815"],
  "sourcesContent": ["(function () {\n  \"use strict\";\n\n  var busy = false;\n\n  function rootUrl(path) {\n    var root = (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || \"/\";\n    return root.replace(/\\/?$/, \"/\") + path.replace(/^\\//, \"\");\n  }\n\n  function money(cents) {\n    return \"$\" + (Math.max(0, Number(cents) || 0) / 100).toFixed(2);\n  }\n\n  function moneyToCents(text) {\n    var match = String(text || \"\").match(/\\$([0-9]+(?:\\.[0-9]{1,2})?)/);\n    return match ? Math.round(Number(match[1]) * 100) : 0;\n  }\n\n  function hiddenFormSubmit(path, fields) {\n    var frameName = \"hemios-cart-frame\";\n    var frame = document.querySelector('iframe[name=\"' + frameName + '\"]');\n    if (!frame) {\n      frame = document.createElement(\"iframe\");\n      frame.name = frameName;\n      frame.hidden = true;\n      frame.setAttribute(\"aria-hidden\", \"true\");\n      frame.style.display = \"none\";\n      document.body.appendChild(frame);\n    }\n\n    var form = document.createElement(\"form\");\n    form.method = \"post\";\n    form.action = rootUrl(path);\n    form.target = frameName;\n    form.hidden = true;\n    Object.keys(fields).forEach(function (name) {\n      var input = document.createElement(\"input\");\n      input.type = \"hidden\";\n      input.name = name;\n      input.value = fields[name];\n      form.appendChild(input);\n    });\n    document.body.appendChild(form);\n    form.submit();\n    window.setTimeout(function () {\n      form.remove();\n    }, 1000);\n  }\n\n  function cartRequest(path, options) {\n    var url = rootUrl(path);\n    var requestOptions = Object.assign({\n      credentials: \"same-origin\",\n      headers: { Accept: \"application/json\" }\n    }, options || {});\n\n    if (typeof window.fetch !== \"function\") {\n      if (typeof window.XMLHttpRequest !== \"function\") {\n        return Promise.reject(new Error(\"Cart request unavailable\"));\n      }\n\n      return new Promise(function (resolve, reject) {\n        var xhr = new XMLHttpRequest();\n        xhr.open(requestOptions.method || \"GET\", url, true);\n        xhr.withCredentials = true;\n        Object.keys(requestOptions.headers || {}).forEach(function (name) {\n          xhr.setRequestHeader(name, requestOptions.headers[name]);\n        });\n        xhr.onload = function () {\n          if (xhr.status < 200 || xhr.status >= 300) {\n            reject(new Error(\"Cart request failed: \" + path));\n            return;\n          }\n          try {\n            resolve(JSON.parse(xhr.responseText));\n          } catch (error) {\n            reject(error);\n          }\n        };\n        xhr.onerror = function () {\n          reject(new Error(\"Cart request failed: \" + path));\n        };\n        xhr.send(requestOptions.body || null);\n      });\n    }\n\n    return window.fetch(url, requestOptions).then(function (response) {\n      if (!response.ok) throw new Error(\"Cart request failed: \" + path);\n      return response.json();\n    });\n  }\n\n  function postJson(path, body) {\n    return cartRequest(path, {\n      method: \"POST\",\n      headers: {\n        Accept: \"application/json\",\n        \"Content-Type\": \"application/json\"\n      },\n      body: JSON.stringify(body)\n    });\n  }\n\n  function syncDrawerOptimistic(drawer, toggle, active) {\n    var count = drawer.querySelector(\"[data-cart-count]\");\n    var checkout = drawer.querySelector(\"[data-cart-checkout]\");\n    var quantity = Number((drawer.querySelector(\"[data-cart-quantity]\") || {}).textContent || 0);\n    var itemPrice = drawer.querySelector(\"[data-cart-item-price]\");\n    var itemPriceCents = moneyToCents(itemPrice && itemPrice.textContent);\n    var protectionPriceCents = Number(\n      drawer.getAttribute(\"data-shipping-protection-price-cents\") || 390\n    );\n\n    toggle.setAttribute(\"aria-checked\", active ? \"true\" : \"false\");\n    toggle.setAttribute(\"aria-label\", \"Shipping protection \" + (active ? \"enabled\" : \"disabled\"));\n    toggle.disabled = false;\n\n    if (count) count.textContent = String(Math.max(0, quantity + (active ? 1 : 0)));\n    if (checkout) {\n      checkout.textContent =\n        \"Check out \\u00b7 \" + money(itemPriceCents + (active ? protectionPriceCents : 0));\n    }\n  }\n\n  function handleFormFallback(drawer, toggle, protectionVariantId) {\n    var active = toggle.getAttribute(\"aria-checked\") === \"true\";\n    var quantity = Number((drawer.querySelector(\"[data-cart-quantity]\") || {}).textContent || 0);\n    var nextActive = !active;\n\n    if (nextActive && quantity <= 0) return;\n\n    busy = true;\n    toggle.disabled = true;\n\n    var fields = {};\n    fields[\"updates[\" + protectionVariantId + \"]\"] = \"0\";\n\n    if (nextActive) {\n      hiddenFormSubmit(\"cart/update\", fields);\n      window.setTimeout(function () {\n        hiddenFormSubmit(\"cart/add\", { id: String(protectionVariantId), quantity: \"1\" });\n      }, 250);\n    } else {\n      hiddenFormSubmit(\"cart/update\", fields);\n    }\n\n    window.setTimeout(function () {\n      syncDrawerOptimistic(drawer, toggle, nextActive);\n      busy = false;\n    }, 900);\n  }\n\n  function syncDrawer(drawer, toggle, cart, protectionVariantId, active) {\n    var mainVariantId = Number(drawer.getAttribute(\"data-main-variant\") || 0);\n    var items = Array.isArray(cart && cart.items) ? cart.items : [];\n    var mainQuantity = items.reduce(function (total, item) {\n      return total + (Number(item.variant_id) === mainVariantId ? Number(item.quantity || 0) : 0);\n    }, 0);\n\n    toggle.setAttribute(\"aria-checked\", active ? \"true\" : \"false\");\n    toggle.setAttribute(\"aria-label\", \"Shipping protection \" + (active ? \"enabled\" : \"disabled\"));\n    toggle.disabled = false;\n\n    var count = drawer.querySelector(\"[data-cart-count]\");\n    var checkout = drawer.querySelector(\"[data-cart-checkout]\");\n    if (count) count.textContent = String(mainQuantity > 0 ? Number(cart.item_count || 0) : 0);\n    if (checkout && typeof cart.total_price === \"number\") {\n      checkout.textContent = \"Check out \\u00b7 \" + money(mainQuantity > 0 ? cart.total_price : 0);\n    }\n\n    document.dispatchEvent(new CustomEvent(\"hemios:cart-updated\", {\n      detail: { cart: cart, shippingProtectionActive: active, shippingProtectionVariantId: protectionVariantId }\n    }));\n  }\n\n  function handleClick(event) {\n    var toggle = event.target.closest && event.target.closest(\"[data-shipping-protection-toggle]\");\n    if (!toggle) return;\n\n    event.preventDefault();\n    if (event.stopImmediatePropagation) event.stopImmediatePropagation();\n    if (busy || toggle.disabled) return;\n\n    var drawer = toggle.closest(\"[data-cart-drawer]\") || document.querySelector(\"[data-cart-drawer]\");\n    if (!drawer) return;\n\n    var protectionVariantId = Number(drawer.getAttribute(\"data-shipping-protection-variant\") || 0);\n    var mainVariantId = Number(drawer.getAttribute(\"data-main-variant\") || 0);\n    if (!protectionVariantId) return;\n\n    busy = true;\n    toggle.disabled = true;\n\n    cartRequest(\"cart.js\").then(function (cart) {\n      var items = Array.isArray(cart.items) ? cart.items : [];\n      var protectionItem = items.find(function (item) {\n        return Number(item.variant_id) === protectionVariantId;\n      });\n      var hasMainItem = items.some(function (item) {\n        return Number(item.variant_id) === mainVariantId && Number(item.quantity || 0) > 0;\n      });\n      var shouldEnable = !protectionItem;\n\n      if (shouldEnable && !hasMainItem) return cart;\n      if (shouldEnable) {\n        return postJson(\"cart/add.js\", { items: [{ id: protectionVariantId, quantity: 1 }] });\n      }\n      return postJson(\"cart/change.js\", { id: protectionItem.key, quantity: 0 });\n    }).then(function () {\n      return cartRequest(\"cart.js\");\n    }).then(function (cart) {\n      var active = (cart.items || []).some(function (item) {\n        return Number(item.variant_id) === protectionVariantId;\n      });\n      syncDrawer(drawer, toggle, cart, protectionVariantId, active);\n    }).catch(function () {\n      handleFormFallback(drawer, toggle, protectionVariantId);\n    }).then(function () {\n      busy = false;\n    });\n  }\n\n  document.addEventListener(\"click\", handleClick, true);\n})();\n"],
  "mappings": "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",
  "names": []
}
