{
  "version": 3,
  "sources": ["/cdn/shop/t/31/assets/titanore-product-price.js?tl=setsale1"],
  "sourcesContent": ["/* tl-cachebust-20260907-setsale1 \u2014 set sale lock vs Shopify list */\n(function () {\n  var p = (location.pathname || '').toLowerCase();\n  if (/\\/products\\/(sauteerpan|twee-handgrepen|wok-vlakke-bodem|hoge-rand|diepe-pan|crepepan|kookpan)(?:\\/|$)/.test(p)) return;\n  if (/\\/products\\/[^/]*(ice-cube|straw|utensil)/.test(p)) return;\n\n  var CATALOG_EUR = {\n    'titanium-hammered-pan-pro-small': { price: 9500, compare: 15800 },\n    'titanium-hammered-pan-pro-medium': { price: 10000, compare: 16700 },\n    'titanium-hammered-pan-pro-large': { price: 10500, compare: 17500 },\n    sauteerpan: { price: 11900, compare: 19800 },\n    'twee-handgrepen': { price: 11900, compare: 19800 },\n    'chefs-pan-set-2': { price: 12900, compare: 32500 },\n    'chefs-pan-set-3': { price: 16800, compare: 50000 },\n    'chefs-pan-set-3-pans-titanium-utensils': { price: 25400, compare: 64000 },\n    'titanium-cutting-board-shop': { price: 9400, compare: 15667 },\n    'titanium-cutting-board-bundle': { price: 13400, compare: 22333 },\n    'titanium-utensil-set-bundle': { price: 8400, compare: 14000 },\n    'titanium-straws': { price: 5400, compare: 9000 },\n    'titanium-ice-cubes': { price: 5400, compare: 9000 }\n  };\n\n  function isEurMarket() {\n    var path = (location.pathname || '').toLowerCase();\n    if (path === '/nl' || path.indexOf('/nl/') === 0) return true;\n    var cur = window.Shopify && Shopify.currency && Shopify.currency.active;\n    if (cur === 'EUR') return true;\n    return /\u20AC/.test(document.body ? document.body.innerText.slice(0, 4000) : '');\n  }\n\n  function productHandle() {\n    var sec = document.querySelector('[data-tl-pdp-handle]');\n    if (sec) return (sec.getAttribute('data-tl-pdp-handle') || '').toLowerCase();\n    var m = (location.pathname || '').match(/\\/products\\/([^/?#]+)/i);\n    return m ? decodeURIComponent(m[1]).toLowerCase() : '';\n  }\n\n  function handleFromHref(href) {\n    var m = (href || '').match(/\\/products\\/([^/?#]+)/i);\n    return m ? decodeURIComponent(m[1]).toLowerCase() : '';\n  }\n\n  function euro(cents) {\n    if (!cents && cents !== 0) return '';\n    return '\u20AC' + Math.round(cents / 100);\n  }\n\n  function pctOff(price, compare) {\n    if (!compare || compare <= price) return 0;\n    return Math.round((1 - price / compare) * 100);\n  }\n\n  function stripTrailingZeros(text) {\n    return text && String(text).replace(/([,.])00(?!\\d)/g, '');\n  }\n\n  function replaceDollarPrice(text, next) {\n    return !text || !next ? text : String(text).replace(/\\$[\\d.,]+/g, next);\n  }\n\n  function applyEurToEl(el, now) {\n    if (!el || !now) return;\n    var t = (el.textContent || '').trim();\n    if (!t || t.indexOf('\u20AC') === 0) {\n      if (t !== now) el.textContent = now;\n    } else if (/\\$/.test(t)) {\n      el.textContent = now;\n    }\n  }\n\n  function paintSaleBox(box, cat) {\n    if (!box || !cat) return;\n    var now = euro(cat.price);\n    var was = cat.compare && cat.compare > cat.price ? euro(cat.compare) : '';\n    var off = was ? pctOff(cat.price, cat.compare) : 0;\n    var mark = now + '|' + was + '|' + off;\n    if (box.getAttribute('data-tl-sale') === mark) return;\n    box.setAttribute('data-tl-sale', mark);\n    if (!was) {\n      box.textContent = now;\n      return;\n    }\n    box.innerHTML =\n      '<span class=\"tsc-card__now twt-price-now tl-card-now\">' +\n      now +\n      '</span> <s class=\"tsc-card__compare twt-price-was tl-card-was\">' +\n      was +\n      '</s> <span class=\"tsc-card__pct twt-price-pct tl-card-pct\">\u2212' +\n      off +\n      '%</span>';\n  }\n\n  function ensureBadge(card, off) {\n    if (!off || !card) return;\n    var existing = card.querySelector('.tsc-badge, .tl-card-badge, .sale-badge');\n    if (existing) {\n      var t = (existing.textContent || '').replace(/\\s+/g, ' ').trim();\n      if (!/\u2212?\\d+%/.test(t)) existing.textContent = '\u2212' + off + '%';\n      return;\n    }\n    var media = card.querySelector('.tsc-card__media, .twt-card-media, .product-image-container, .card__media');\n    if (!media) return;\n    if (window.getComputedStyle(media).position === 'static') media.style.position = 'relative';\n    var b = document.createElement('span');\n    b.className = 'tsc-badge tl-card-badge';\n    b.textContent = '\u2212' + off + '%';\n    media.appendChild(b);\n  }\n\n  function fixPdpCatalogEur() {\n    if (!isEurMarket()) return;\n    var handle = productHandle();\n    var cat = CATALOG_EUR[handle];\n    if (!cat) return;\n    var now = euro(cat.price);\n    var was = cat.compare ? euro(cat.compare) : null;\n    var save = cat.compare && cat.compare > cat.price ? euro(cat.compare - cat.price) : null;\n    document.querySelectorAll('.shop-product-price-block').forEach(function (el) {\n      applyEurToEl(el, now);\n    });\n    if (was) {\n      document.querySelectorAll('.shop-compare-price').forEach(function (el) {\n        var t = (el.textContent || '').trim();\n        if (!t || /\\$/.test(t) || t !== was) el.textContent = was;\n      });\n    }\n    if (save) {\n      document.querySelectorAll('[data-save-dollar]').forEach(function (el) {\n        el.textContent = save;\n      });\n    }\n    document\n      .querySelectorAll(\n        '.sticky-add-to-cart .price, #stickyAddToCart .price, .shop-add-to-cart-button .button-text, [data-ss-price], .price-item--regular, .price__regular'\n      )\n      .forEach(function (el) {\n        var t = el.textContent || '';\n        if (/\\$/.test(t)) el.textContent = replaceDollarPrice(t, now);\n      });\n  }\n\n  function fixCardPrices(root) {\n    if (!isEurMarket()) return;\n    (root || document).querySelectorAll('a[href*=\"/products/\"]').forEach(function (link) {\n      if (link.closest('cart-drawer,#CartDrawer,#main-cart-items,.cart-item,.tl-line-price,#tl-pan-buybox,[data-tgem-buy],[data-tl-line-card]')) {\n        return;\n      }\n      if (link.hasAttribute('data-tl-line-card')) return;\n      var handle = handleFromHref(link.getAttribute('href') || '');\n      var cat = CATALOG_EUR[handle];\n      if (!cat) return;\n      var card =\n        link.closest(\n          '.twt-card, .tsc-card, .tss-card, .product-card, .card-wrapper, li[data-title], li.grid__item, li.tl-col-grid__item, .tl-col-card, .tl-acc-card, a.tl2-set, article.tl-chefs-sets__card, .tl-pdp2-set'\n        ) || (link.classList.contains('tsc-card') || link.classList.contains('tl-col-card') ? link : null);\n      if (!card) return;\n      var box = card.querySelector(\n        '.tsc-card__price, .twt-card-price, .collection-product-price, .card-information .price, .price, .tl-col-card__price, .tl-acc-card__price, .tl2-meta strong, .tl-chefs-sets__amounts, .tl-pdp2-set__price'\n      );\n      if (!box && link.classList.contains('tsc-card')) box = link.querySelector('.tsc-card__price');\n      if (box) paintSaleBox(box, cat);\n      ensureBadge(card, pctOff(cat.price, cat.compare));\n    });\n  }\n\n  function polishPriceContainer(container) {\n    if (!container || container.getAttribute('data-tl-price-polished') === '1') return;\n    container.setAttribute('data-tl-price-polished', '1');\n    var priceEl = container.querySelector('.shop-product-price-block');\n    var compareEl = container.querySelector('.shop-compare-price');\n    var saveEl = container.querySelector('.shop-save-price');\n    var dollarEl = container.querySelector('[data-save-dollar]');\n    if (priceEl) priceEl.textContent = stripTrailingZeros(priceEl.textContent.trim());\n    if (compareEl) compareEl.textContent = stripTrailingZeros(compareEl.textContent.trim());\n    if (saveEl && dollarEl) dollarEl.textContent = stripTrailingZeros(dollarEl.textContent.trim());\n    else if (saveEl) saveEl.textContent = stripTrailingZeros(saveEl.textContent.trim());\n  }\n\n  function polishAll() {\n    fixPdpCatalogEur();\n    fixCardPrices(document);\n    document.querySelectorAll('.shop-product-price-container').forEach(polishPriceContainer);\n  }\n\n  function bindUpdates() {\n    ['simple-variant-picker:variantChange', 'quantity:changed', 'quantity_break:changed', 'subscriptionContext:updated'].forEach(\n      function (name) {\n        document.addEventListener(name, function () {\n          document.querySelectorAll('.shop-product-price-container').forEach(function (el) {\n            el.removeAttribute('data-tl-price-polished');\n          });\n          setTimeout(polishAll, 30);\n        });\n      }\n    );\n  }\n\n  function schedule() {\n    polishAll();\n    setTimeout(polishAll, 400);\n    setTimeout(polishAll, 1200);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', function () {\n      schedule();\n      bindUpdates();\n    });\n  } else {\n    schedule();\n    bindUpdates();\n  }\n\n  try {\n    var busy = false;\n    var t = 0;\n    new MutationObserver(function () {\n      if (busy) return;\n      clearTimeout(t);\n      t = setTimeout(function () {\n        busy = true;\n        try {\n          fixCardPrices(document);\n          fixPdpCatalogEur();\n        } finally {\n          busy = false;\n        }\n      }, 200);\n    }).observe(document.documentElement, { childList: true, subtree: true });\n  } catch (e) {}\n})();\n"],
  "mappings": "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",
  "names": ["t"]
}
