{
  "version": 3,
  "sources": ["/cdn/shop/t/42/assets/titanore-cart-line-prices.js?tl=cartm7"],
  "sourcesContent": ["/**\n * Keep cart line now/was aligned to Shopify Liquid cents.\n * Soft save only: \u201CJe bespaart \u20ACX\u201D on the line \u2014 no bare 62% badges.\n * Footer owns the single overview savings line.\n * tl=cartsexy1023\n */\n(function () {\n  if (window.__tlCartLinePrices23) return;\n  window.__tlCartLinePrices23 = true;\n\n  function euro(cents) {\n    if (typeof cents !== \"number\" || !(cents >= 0)) return \"\";\n    var n = (cents / 100).toFixed(2).replace(\".\", \",\");\n    return \"\u20AC\" + n;\n  }\n\n  function parseCentsAttr(el, name) {\n    var n = parseInt(el && el.getAttribute(name), 10);\n    return Number.isFinite(n) ? n : null;\n  }\n\n  function qtyOf(item) {\n    var input = item.querySelector(\".quantity__input, input[name='updates[]']\");\n    var q = input ? parseInt(input.value, 10) : parseInt(item.getAttribute(\"data-tl-qty\") || \"1\", 10);\n    return Number.isFinite(q) && q > 0 ? q : 1;\n  }\n\n  function setText(el, text) {\n    if (!el || el.textContent === text) return;\n    el.textContent = text;\n  }\n\n  function formatDiscountLabel(text) {\n    var t = (text || \"\").replace(/\\s+/g, \" \").trim();\n    if (!t) return \"\";\n    var pct = t.match(/(\\d+)\\s*%/);\n    var amt = t.match(/\\([\u2212\\-]?\\s*\u20AC\\s*[\\d.,]+\\)/);\n    if (pct && amt) return pct[1] + \"% \" + amt[0].replace(\"(-\", \"(\u2212\").replace(\"(\u20AC\", \"(\u2212\u20AC\");\n    if (/\u20AC/.test(t) && pct) return t;\n    if (pct && /zomerkorting|summer discount|setkorting|korting/i.test(t)) return pct[1] + \"%\";\n    return t;\n  }\n\n  function hideLeftoverSaleCopy(item) {\n    item.querySelectorAll(\".tob-sale, .product-option, .gb-price-drawer-saving, .tl-line-save-pill\").forEach(function (el) {\n      if (el.closest(\".tl-line-meta, .tl-line-price, .tl-line-discounts, .tl-cart-line__disc, [data-tl-size-meta], .tl-okura-foot\")) {\n        return;\n      }\n      if (el.closest(\".announcement, .utility-bar, .tl-promo-bar, header\")) return;\n      el.style.setProperty(\"display\", \"none\", \"important\");\n    });\n    item.querySelectorAll(\".cart-item__discount-allocations .discount-tag, .discount-tag, .discount-label, .discounts__discount\").forEach(function (el) {\n      if (el.closest(\".tl-line-discounts, .tl-cart-line__disc\")) return;\n      var next = formatDiscountLabel(el.textContent || \"\");\n      if (next && next !== (el.textContent || \"\").replace(/\\s+/g, \" \").trim()) el.textContent = next;\n    });\n    item.querySelectorAll(\"p, span, div, li\").forEach(function (el) {\n      if (el.closest(\".tl-line-meta, .tl-line-price, .tl-line-discounts, .tl-cart-line__disc, [data-tl-size-meta], .quantity, cart-remove-button, .tl-okura-foot, .tl-line-save, .tl-gift-why, .tl-gift-badge, .tl-line-gift-note, .tl-intro-badge, .tl-cart-gift-card\")) return;\n      if (el.closest(\".announcement, .utility-bar, .tl-promo-bar, header\")) return;\n      var t = (el.textContent || \"\").replace(/\\s+/g, \" \").trim();\n      if (/^\\d+%\\s*(zomerkorting|summer discount|setkorting)\\b/i.test(t)) {\n        el.textContent = formatDiscountLabel(t);\n        return;\n      }\n      var low = t.toLowerCase();\n      if (low === \"bespaar\" || /^bespaar\\s*\u20AC/.test(low) || /^je bespaart\\b/.test(low) || /^you save\\b/.test(low)) {\n        el.style.setProperty(\"display\", \"none\", \"important\");\n      }\n    });\n  }\n\n  function applyItem(item) {\n    if (!item || !item.querySelector) return;\n    var wrap = item.querySelector(\".tl-line-price, .cart-item__price-wrapper, .tl-cart-line__offer\");\n    if (!wrap) return;\n\n    var qty = qtyOf(item);\n    var now = parseCentsAttr(item, \"data-tl-now-cents\") || parseCentsAttr(wrap, \"data-tl-now-cents\");\n    var was = parseCentsAttr(item, \"data-tl-was-cents\") || parseCentsAttr(wrap, \"data-tl-was-cents\");\n\n    if (now == null) return;\n    if (!(was > now)) was = 0;\n\n    item.setAttribute(\"data-tl-now-cents\", String(now));\n    item.setAttribute(\"data-tl-was-cents\", String(was || 0));\n    item.setAttribute(\"data-tl-qty\", String(qty));\n    wrap.setAttribute(\"data-tl-now-cents\", String(now));\n    wrap.setAttribute(\"data-tl-was-cents\", String(was || 0));\n\n    var nowEl = wrap.querySelector(\".tl-line-price__now, .cart-item__final-price, .tl-cart-line__price\");\n    var wasEl = wrap.querySelector(\".tl-line-price__was, .cart-item__old-price, .tl-cart-line__was\");\n    var nl = document.documentElement.lang === \"nl\" || /\\/nl(\\/|$)/.test(location.pathname || \"\");\n\n    if (nowEl) setText(nowEl, now === 0 ? (nl ? \"Gratis\" : \"Free\") : euro(now));\n\n    if (was > now) {\n      if (!wasEl) {\n        wasEl = document.createElement(\"s\");\n        wasEl.className = \"cart-item__old-price tl-line-price__was\";\n        if (nowEl && nowEl.nextSibling) wrap.insertBefore(wasEl, nowEl.nextSibling);\n        else wrap.appendChild(wasEl);\n      }\n      setText(wasEl, euro(was));\n    } else if (wasEl) {\n      wasEl.remove();\n    }\n\n    var saveEl = wrap.querySelector(\".tl-line-save\");\n    if (was > now) {\n      if (!saveEl) {\n        saveEl = document.createElement(\"span\");\n        saveEl.className = \"tl-line-save\";\n        wrap.appendChild(saveEl);\n      }\n      setText(saveEl, (nl ? \"Je bespaart \" : \"You save \") + euro(was - now));\n    } else if (saveEl) {\n      saveEl.remove();\n    }\n\n    hideLeftoverSaleCopy(item);\n  }\n\n  function lock(root) {\n    (root || document).querySelectorAll(\".cart-item, .tl-cart-line\").forEach(applyItem);\n    /* Hide leftover % / allocation chips \u2014 savings live on line strike + footer. */\n    (root || document).querySelectorAll(\".tl-summary__row--discount, .tl-cart-sum__row--discount, .tl-line-discounts, .tl-line-discounts__item, .tl-cart-line__disc, .cart-item__discounted-prices, .discounts__discount, .discount-tag\").forEach(function (el) {\n      if (el.closest(\".tl-okura-compact-total__row--save, .tl-okura-foot__save, .tl-summary__row--save, .tl-line-save\")) return;\n      el.style.setProperty(\"display\", \"none\", \"important\");\n    });\n  }\n\n  window.tlLockCartLinePrices = lock;\n\n  function boot() {\n    lock(document);\n  }\n\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", boot);\n  else boot();\n  document.addEventListener(\"cart-drawer:update\", boot);\n  document.addEventListener(\"cart-drawer:render\", boot);\n  document.addEventListener(\"cart:updated\", boot);\n  document.addEventListener(\"cart:ajax-update\", boot);\n  setTimeout(boot, 200);\n  setTimeout(boot, 800);\n  setTimeout(boot, 1600);\n\n  try {\n    var scheduled = false;\n    var obs = new MutationObserver(function () {\n      if (scheduled) return;\n      scheduled = true;\n      setTimeout(function () {\n        scheduled = false;\n        lock(document);\n      }, 50);\n    });\n    var root = document.querySelector(\"cart-drawer, #CartDrawer, #main-cart-items, .tl-cart-fase1\") || document.body;\n    if (root) obs.observe(root, { childList: true, subtree: true });\n  } catch (e) {}\n})();\n"],
  "mappings": "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",
  "names": ["root"]
}
