{
  "version": 3,
  "sources": ["/cdn/shop/t/31/assets/titanore-cart-compact.js?tl=insfix1"],
  "sourcesContent": ["/**\n * Cart drawer helpers:\n * 1) Measure sticky footer height for scroll padding\n * 2) Strip shipping insurance line items (removed from offer)\n * 3) Clear stuck cart-level discount codes on set+gift carts\n *    so Totals match the marketed set price (\u20AC167,80), not TERUG10 etc.\n * Hold timer removed \u2014 mock-up 2026-09-28\n */\n(function () {\n  if (window.__tlCartCompactV7) return;\n  window.__tlCartCompactV7 = true;\n\n  var ro = null;\n  var strippingIns = false;\n  var clearingDisc = false;\n\n  function drawer() {\n    return document.querySelector(\"cart-drawer.tl-cart-v2\");\n  }\n\n  function measure() {\n    var d = drawer();\n    if (!d) return;\n    var footer = d.querySelector(\".drawer__footer\");\n    var items = d.querySelector(\"cart-drawer-items\");\n    if (!footer) return;\n    var h = Math.ceil(footer.getBoundingClientRect().height);\n    if (!(h > 0)) return;\n    if (h < 200) h = 200;\n    d.style.setProperty(\"--tl-cart-footer-h\", h + \"px\");\n    if (items) items.style.setProperty(\"--tl-cart-footer-h\", h + \"px\");\n  }\n\n  function watchFooter() {\n    var d = drawer();\n    if (!d || typeof ResizeObserver === \"undefined\") return;\n    var footer = d.querySelector(\".drawer__footer\");\n    if (!footer) return;\n    if (ro) ro.disconnect();\n    ro = new ResizeObserver(function () {\n      measure();\n    });\n    ro.observe(footer);\n  }\n\n  function handleOf(item) {\n    return String((item.handle || (item.product && item.product.handle) || \"\")).toLowerCase();\n  }\n\n  function isInsurance(item) {\n    if (!item) return false;\n    var h = handleOf(item);\n    var t = String(item.product_type || item.productType || \"\").toLowerCase();\n    var title = String(item.title || \"\").toLowerCase();\n    return (\n      h === \"order-protection\" ||\n      h.indexOf(\"order-protection\") !== -1 ||\n      t.indexOf(\"verzendverzekering\") !== -1 ||\n      t.indexOf(\"shipping protection\") !== -1 ||\n      title.indexOf(\"verzendverzekering\") !== -1\n    );\n  }\n\n  function isGift(item) {\n    var h = handleOf(item);\n    return (\n      h === \"the-titanium-table\" ||\n      h === \"titanore-titanium-cookbook\" ||\n      h.indexOf(\"cookbook\") !== -1\n    );\n  }\n\n  function isSet(item) {\n    var h = handleOf(item);\n    return h.indexOf(\"chefs-pan-set\") !== -1 || h.indexOf(\"-set-\") !== -1;\n  }\n\n  function stripInsurance() {\n    if (strippingIns) return;\n    strippingIns = true;\n    fetch(\"/cart.js\", { credentials: \"same-origin\", cache: \"no-store\" })\n      .then(function (r) {\n        return r.json();\n      })\n      .then(function (cart) {\n        var updates = {};\n        var hit = false;\n        (cart.items || []).forEach(function (item) {\n          if (isInsurance(item)) {\n            updates[item.key || item.id] = 0;\n            hit = true;\n          }\n        });\n        if (!hit) {\n          strippingIns = false;\n          return null;\n        }\n        return fetch(\"/cart/update.js\", {\n          method: \"POST\",\n          credentials: \"same-origin\",\n          headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n          body: JSON.stringify({ updates: updates }),\n        });\n      })\n      .then(function (res) {\n        strippingIns = false;\n        if (!res) return;\n        document.dispatchEvent(new CustomEvent(\"cart:refresh\"));\n        try {\n          if (typeof window.publish === \"function\" && window.PUB_SUB_EVENTS) {\n            window.publish(window.PUB_SUB_EVENTS.cartUpdate, { source: \"tl-strip-insurance\" });\n          }\n        } catch (e) {}\n      })\n      .catch(function () {\n        strippingIns = false;\n      });\n  }\n\n  /** Set (+ gift) should pay the marketed set price \u2014 clear leftover % codes. */\n  function clearStrayDiscountCodes() {\n    if (clearingDisc) return;\n    clearingDisc = true;\n    fetch(\"/cart.js\", { credentials: \"same-origin\", cache: \"no-store\" })\n      .then(function (r) {\n        return r.json();\n      })\n      .then(function (cart) {\n        var apps = cart.cart_level_discount_applications || [];\n        if (!apps.length) {\n          clearingDisc = false;\n          return null;\n        }\n        var items = cart.items || [];\n        var onlySetGift = items.length > 0 && items.every(function (it) {\n          return isSet(it) || isGift(it) || isInsurance(it);\n        });\n        var hasSet = items.some(isSet);\n        if (!(onlySetGift && hasSet)) {\n          clearingDisc = false;\n          return null;\n        }\n        /* Clear discount via change.js discount empty string */\n        return fetch(\"/cart/update.js\", {\n          method: \"POST\",\n          credentials: \"same-origin\",\n          headers: { \"Content-Type\": \"application/json\", Accept: \"application/json\" },\n          body: JSON.stringify({ discount: \"\" }),\n        }).then(function () {\n          return fetch(\"/discount/CLEAR\", { credentials: \"same-origin\", redirect: \"manual\" }).catch(function () {});\n        });\n      })\n      .then(function (res) {\n        clearingDisc = false;\n        if (!res) return;\n        document.dispatchEvent(new CustomEvent(\"cart:refresh\"));\n        try {\n          if (typeof window.publish === \"function\" && window.PUB_SUB_EVENTS) {\n            window.publish(window.PUB_SUB_EVENTS.cartUpdate, { source: \"tl-clear-discount\" });\n          }\n        } catch (e) {}\n      })\n      .catch(function () {\n        clearingDisc = false;\n      });\n  }\n\n  function bindLayout() {\n    var d = drawer();\n    if (d) d.classList.toggle(\"tl-cart-short\", window.matchMedia(\"(max-width: 767px)\").matches);\n    requestAnimationFrame(function () {\n      measure();\n      watchFooter();\n    });\n  }\n\n  function runCartHygiene() {\n    stripInsurance();\n    clearStrayDiscountCodes();\n  }\n\n  document.addEventListener(\"resize\", bindLayout);\n  window.addEventListener(\"orientationchange\", bindLayout);\n  [\"cart:refresh\", \"cart:updated\", \"cart-drawer:update\", \"cart-drawer:render\"].forEach(function (ev) {\n    document.addEventListener(ev, function () {\n      setTimeout(function () {\n        bindLayout();\n        runCartHygiene();\n      }, 80);\n    });\n  });\n\n  if (document.readyState === \"loading\") {\n    document.addEventListener(\"DOMContentLoaded\", function () {\n      bindLayout();\n      runCartHygiene();\n    });\n  } else {\n    bindLayout();\n    runCartHygiene();\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
