{
  "version": 3,
  "sources": ["/cdn/shop/t/42/assets/titanore-tier-adapter.js?tl=tier1"],
  "sourcesContent": ["/**\n * Single cart-state bus for stapelvoordeel.\n * Quantity from cart.js + Liquid eligibility list (collection stapelkorting).\n * Euro savings only from Shopify allocations titled stapel/stack.\n */\n(function () {\n  'use strict';\n  if (window.TLTierAdapter && window.TLTierAdapter.__booted) return;\n\n  var cfg = window.TL_TIER || {};\n  var HANDLES = String(cfg.handles || '')\n    .toLowerCase()\n    .split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean);\n  var GETS = String(cfg.getsHandles || '')\n    .toLowerCase()\n    .split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean);\n  if (!GETS.length) GETS = HANDLES;\n  var EXCLUDE = String(cfg.exclude || 'titanore-titanium-cookbook,the-titanium-table,order-protection')\n    .toLowerCase()\n    .split(',')\n    .map(function (s) { return s.trim(); })\n    .filter(Boolean);\n  var UNITS = cfg.units || {};\n  var seq = 0;\n  var lastCart = null;\n  var lastState = null;\n  var refreshTimer = 0;\n\n  function rootPath() {\n    return (window.Shopify && Shopify.routes && Shopify.routes.root) || '/';\n  }\n\n  function handleOf(item) {\n    var h = String((item.handle || (item.product && item.product.handle) || '')).toLowerCase();\n    if (h) return h;\n    var m = String(item.url || '').match(/\\/products\\/([^/?#]+)/i);\n    return m ? decodeURIComponent(m[1]).toLowerCase() : '';\n  }\n\n  function isExcluded(item) {\n    var handle = handleOf(item);\n    var type = String(item.product_type || '').toLowerCase();\n    var title = String(item.product_title || item.title || '').toLowerCase();\n    var price = Number(item.final_price != null ? item.final_price : item.price) || 0;\n    if (EXCLUDE.indexOf(handle) !== -1) return true;\n    if (price <= 0) return true;\n    if (type.indexOf('gift') !== -1 || type.indexOf('verzekering') !== -1 || type.indexOf('service') !== -1) return true;\n    if (title.indexOf('verzekering') !== -1 || title.indexOf('insurance') !== -1) return true;\n    if (title.indexOf('cadeaubon') !== -1 || title.indexOf('gift card') !== -1) return true;\n    if (handle.indexOf('cookbook') !== -1 || handle.indexOf('titanium-table') !== -1) return true;\n    var props = item.properties || {};\n    if (props._gift || props._is_free_gift === 'true' || props._free_gift === 'true') return true;\n    return false;\n  }\n\n  function isEligible(item) {\n    if (isExcluded(item)) return false;\n    var handle = handleOf(item);\n    if (!handle) return false;\n    var list = GETS.length ? GETS : HANDLES;\n    if (!list.length) return false;\n    return list.indexOf(handle) !== -1;\n  }\n\n  function unitsFor(handle) {\n    var n = Number(UNITS[handle]);\n    return n > 0 ? n : 1;\n  }\n\n  function isStackTitle(title) {\n    var t = String(title || '').toLowerCase();\n    return t.indexOf('stapel') !== -1 || t.indexOf('stack') !== -1 || t.indexOf('setvoordeel') !== -1 || t.indexOf('set savings') !== -1;\n  }\n\n  function stackOnLine(line) {\n    var total = 0;\n    (line.discounts || line.line_level_discount_allocations || []).forEach(function (d) {\n      var title = d.title || (d.discount_application && d.discount_application.title) || '';\n      if (isStackTitle(title)) {\n        total += Number(d.amount != null ? d.amount : d.total_allocated_amount) || 0;\n      }\n    });\n    return total;\n  }\n\n  function stackAllocated(cart) {\n    var total = 0;\n    ((cart && cart.items) || []).forEach(function (line) {\n      total += stackOnLine(line);\n    });\n    ((cart && cart.cart_level_discount_applications) || []).forEach(function (d) {\n      if (isStackTitle(d.title)) {\n        total += Number(d.total_allocated_amount) || 0;\n      }\n    });\n    return Math.round(total);\n  }\n\n  function eligiblePreStack(cart) {\n    var n = 0;\n    ((cart && cart.items) || []).forEach(function (item) {\n      if (!isEligible(item)) return;\n      var line = Number(item.final_line_price != null ? item.final_line_price : item.line_price) || 0;\n      n += line + stackOnLine(item);\n    });\n    return Math.round(n);\n  }\n\n  function eligibleQuantity(cart) {\n    var n = 0;\n    ((cart && cart.items) || []).forEach(function (item) {\n      if (!isEligible(item)) return;\n      n += (Number(item.quantity) || 0) * unitsFor(handleOf(item));\n    });\n    return n;\n  }\n\n  function handleQtyMap(cart) {\n    var map = {};\n    ((cart && cart.items) || []).forEach(function (item) {\n      var h = handleOf(item);\n      if (!h) return;\n      map[h] = (map[h] || 0) + (Number(item.quantity) || 0);\n    });\n    return map;\n  }\n\n  function buildState(cart) {\n    var qty = eligibleQuantity(cart);\n    var allocated = stackAllocated(cart);\n    var core = window.TitanoreTier\n      ? window.TitanoreTier.getStackState(qty)\n      : { qualifyingCount: qty, currentTier: qty >= 3 ? 20 : qty === 2 ? 10 : 0, nextTier: qty >= 3 ? null : qty === 2 ? 20 : 10, discountPercentage: qty >= 3 ? 20 : qty === 2 ? 10 : 0 };\n    var expected = window.TitanoreTier ? window.TitanoreTier.tierFor(qty) : { percent: core.discountPercentage };\n    var currency = (cart && cart.currency) || cfg.currency || 'EUR';\n    var backendOn = cfg.backendActive !== false;\n    var confirmed = false;\n    if (expected.percent === 0 && allocated === 0) confirmed = true;\n    else if (allocated > 0 && expected.percent > 0) confirmed = true;\n    var percent = core.discountPercentage;\n    var preStack = eligiblePreStack(cart);\n    /* Never invent stapel savings \u2014 only Shopify allocations. */\n    var saveCents = allocated;\n    var totalPrice = Number(cart && cart.total_price) || 0;\n    var displayPrice = totalPrice;\n    return {\n      qualifyingCount: qty,\n      currentTier: core.currentTier,\n      nextTier: core.nextTier,\n      discountPercentage: core.discountPercentage,\n      allocated: allocated,\n      displaySave: saveCents,\n      displayPrice: displayPrice,\n      confirmed: confirmed,\n      backendActive: backendOn,\n      currency: currency,\n      handles: handleQtyMap(cart),\n      hasSet: hasSetLine(cart),\n      itemCount: ((cart && cart.item_count) || 0),\n      totalPrice: totalPrice\n    };\n  }\n\n  function hasSetLine(cart) {\n    var map = handleQtyMap(cart);\n    return Object.keys(map).some(function (h) {\n      return h.indexOf('-set') !== -1 || h.indexOf('set-') !== -1 || h.indexOf('pannenset') !== -1 || h.indexOf('keukenset') !== -1;\n    });\n  }\n\n  var CART_EXTRA = 'Setvoordeel alleen op losse extra\\u2019s, niet op de set.';\n\n  function copyFor(qty, hasSet) {\n    if (qty <= 0) {\n      return {\n        title: hasSet ? 'Je set zit erin' : '',\n        sub: CART_EXTRA,\n        cta: hasSet ? 'Nog\\u00a02\\u00a0losse\\u00a0voor\\u00a010%' : 'Kies\\u00a0je\\u00a0set',\n        action: 'shop',\n        sticky: hasSet ? 'Setprijs staat erin' : 'Set = de deal',\n        stickySub: CART_EXTRA,\n        stickyCta: hasSet ? 'Nog\\u00a02\\u00a0losse\\u00a0voor\\u00a010%' : 'Kies\\u00a0je\\u00a0set',\n        next: CART_EXTRA\n      };\n    }\n    if (qty === 1) {\n      return {\n        title: hasSet ? 'Je set zit erin' : 'Eerste product erin',\n        sub: CART_EXTRA,\n        cta: 'Nog\\u00a01\\u00a0los\\u00a0voor\\u00a010%\\u00a0extra',\n        action: 'shop',\n        sticky: hasSet ? 'Setprijs staat erin' : 'Nog 1 los voor 10% extra',\n        stickySub: CART_EXTRA,\n        stickyCta: 'Nog\\u00a01\\u00a0los\\u00a0voor\\u00a010%\\u00a0extra',\n        next: CART_EXTRA\n      };\n    }\n    if (qty === 2) {\n      return {\n        title: '10% extra op losse extra\\u2019s',\n        sub: CART_EXTRA,\n        cta: 'Nog\\u00a01\\u00a0los\\u00a0voor\\u00a020%\\u00a0extra',\n        action: 'shop',\n        sticky: '10% extra \u00B7 nog 1 los voor 20%',\n        stickySub: CART_EXTRA,\n        stickyCta: 'Nog\\u00a01\\u00a0los\\u00a0voor\\u00a020%\\u00a0extra',\n        next: CART_EXTRA\n      };\n    }\n    return {\n      title: '20% extra op losse extra\\u2019s',\n      sub: CART_EXTRA,\n      cta: 'Bekijk\\u00a0je\\u00a0mand',\n      action: 'cart',\n      sticky: '20% extra op losse extra\\u2019s',\n      stickySub: CART_EXTRA,\n      stickyCta: 'Bekijk\\u00a0winkelmand',\n      next: CART_EXTRA\n    };\n  }\n\n  function setWordSpans(node, text) {\n    if (!node) return;\n    var t = String(text || '').replace(/ /g, '\\u00a0');\n    node.classList.add('notranslate');\n    node.setAttribute('data-wg-notranslate', '');\n    node.setAttribute('translate', 'no');\n    node.setAttribute('data-en', t);\n    node.setAttribute('data-nl', t);\n    node.textContent = t;\n  }\n\n  function fillPct(qty) {\n    if (qty <= 0) return 0;\n    if (qty === 1) return 16;\n    if (qty === 2) return 50;\n    return 100;\n  }\n\n  function isSvenFunnel() {\n    if (document.documentElement.classList.contains('tl-sven-funnel')) return true;\n    var p = (location.pathname || '').toLowerCase();\n    return /\\/pages\\/(chef-sven|shop-chefs-pan|chefs-pan-now)(\\/|$)/.test(p);\n  }\n\n  function paintMeters(state) {\n    if (!window.TitanoreTier) return;\n    var sven = isSvenFunnel();\n    if (sven) document.documentElement.classList.add('tl-sven-funnel');\n    document.querySelectorAll('.tl-staffel--cart, cart-drawer .tl-staffel, #CartDrawer .tl-staffel').forEach(function (el) {\n      el.hidden = true;\n    });\n    document.querySelectorAll('[data-tl-stack-foot], .tl-okura-foot__save, .tl-cart-save-bar').forEach(function (el) {\n      el.hidden = true;\n    });\n    /* Keep .tl-okura-compact-total__row--save visible \u2014 compare-at savings in green. */\n    if (sven) return;\n    var meterState = {\n      status: state.confirmed ? 'confirmed' : 'pending',\n      eligibleQuantity: state.qualifyingCount,\n      actualPercent: state.discountPercentage,\n      discountCents: state.allocated,\n      currency: state.currency\n    };\n    document.querySelectorAll('titanore-tier-meter').forEach(function (meter) {\n      if (typeof meter.setState === 'function') meter.setState(meterState);\n    });\n    document.querySelectorAll('[data-tl-staffel]').forEach(function (root) {\n      paintHtml(root, state);\n    });\n    paintCards(state);\n    paintBar(state);\n    paintHero(state);\n    paintFunnel(state);\n  }\n\n  function paintHtml(root, state) {\n    if (root.classList.contains('tl-staffel--cart') || root.closest('cart-drawer, #CartDrawer, .cart-drawer')) {\n      root.hidden = true;\n      return;\n    }\n    var qty = state.qualifyingCount;\n    var copy = copyFor(qty, state.hasSet);\n    var title = root.querySelector('[data-tl-staffel-title]');\n    var how = root.querySelector('[data-tl-staffel-how]');\n    var status = root.querySelector('[data-tl-staffel-status]');\n    var next = root.querySelector('[data-tl-staffel-next]');\n    var tag = root.querySelector('[data-tl-staffel-tag]');\n    var fill = root.querySelector('[data-tl-staffel-fill]');\n    var track = root.querySelector('.tl-staffel__track');\n    var cta = root.querySelector('[data-tl-staffel-cta]');\n    var ctaLabel = root.querySelector('[data-tl-staffel-cta-label]');\n    var ex = root.querySelector('[data-tl-staffel-ex]');\n    var offer = root.hasAttribute('data-tl-staffel-offer');\n    root.querySelectorAll('.tl-staffel__tier').forEach(function (el) {\n      var min = Number(el.getAttribute('data-min'));\n      var extra = el.querySelector('.tl-staffel__extra');\n      el.classList.remove('is-on', 'is-done', 'is-goal');\n      if (offer) {\n        if (qty >= 3 && min === 3) {\n          el.classList.add('is-on', 'is-goal');\n        } else if (qty === 1 && min === 1) {\n          el.classList.add('is-on');\n        } else if (qty !== 1 && qty < 3 && min === 2) {\n          el.classList.add('is-on', 'is-goal');\n        }\n        return;\n      }\n      if (min === 3) el.classList.add('is-goal');\n      if (min === 1) {\n        if (qty === 1) el.classList.add('is-on');\n        if (qty > 1) el.classList.add('is-done');\n        if (extra) extra.textContent = qty > 1 ? 'Behaald' : 'Standaard korting indien van toepassing';\n      } else if (min === 2) {\n        if (qty === 2) el.classList.add('is-on');\n        if (qty >= 3) el.classList.add('is-done');\n        if (extra) extra.textContent = qty >= 2 ? 'Behaald' : 'Eerste setvoordeel';\n      } else {\n        if (qty >= 3) el.classList.add('is-on');\n        if (extra) extra.textContent = qty >= 3 ? 'Actief' : 'Meest gekozen';\n      }\n    });\n    root.querySelectorAll('.tl-staffel__node').forEach(function (el) {\n      var n = Number(el.getAttribute('data-node'));\n      el.classList.toggle('is-on', qty >= n);\n    });\n    if (fill) fill.style.width = fillPct(qty) + '%';\n    if (track) track.setAttribute('aria-valuenow', String(Math.min(qty, 3)));\n    if (offer) {\n      return;\n    }\n    if (title) {\n      title.textContent = copy.title;\n    }\n    if (how) how.textContent = copy.sub;\n    if (status) status.textContent = copy.sub;\n    if (ctaLabel) setWordSpans(ctaLabel, copy.cta);\n    if (cta) cta.setAttribute('data-action', copy.action);\n    var confirmed = state.confirmed && state.discountPercentage > 0 && state.allocated > 0;\n    if (tag) {\n      var tagText = tag.childNodes[tag.childNodes.length - 1];\n      if (tagText && tagText.nodeType === 3) {\n        tagText.textContent = confirmed ? ' Actief in winkelmand' : ' Automatisch in checkout';\n      }\n    }\n    if (next) {\n      if (qty >= 2 && confirmed) {\n        next.textContent = window.TitanoreTier.formatMoney(state.allocated, state.currency) + ' extra, naast je setprijs.';\n      } else {\n        next.textContent = copy.next || 'Setvoordeel alleen op losse extra\\u2019s, niet op de set.';\n      }\n    }\n    if (ex) {\n      if (confirmed) {\n        ex.hidden = false;\n        ex.textContent = 'Nu ' + window.TitanoreTier.formatMoney(state.allocated, state.currency) + ' extra in je winkelmand.';\n      } else {\n        ex.hidden = true;\n        ex.textContent = '';\n      }\n    }\n  }\n\n  function cardHint() {\n    return '';\n  }\n\n  function addLabelCopy() {\n    return 'In\\u00a0winkelwagen';\n  }\n\n  function money(cents, currency) {\n    var n = Math.round(Number(cents) || 0);\n    if (n < 0) n = 0;\n    if (window.TitanoreTier && TitanoreTier.formatMoney) {\n      try {\n        return String(TitanoreTier.formatMoney(n, currency)).replace(/\u20AC\\s+/g, '\u20AC').replace(/\\s/g, '\\u00a0');\n      } catch (e) {}\n    }\n    return '\u20AC' + (n / 100).toFixed(2).replace('.', ',');\n  }\n\n  function cardPriceCents(cents, pct) {\n    if (!(cents > 0)) return 0;\n    var n = Number(pct) || 0;\n    if (n <= 0) return cents;\n    return Math.round(cents * (100 - n) / 100);\n  }\n\n  function stackLine(state, eligible, street, handle) {\n    if (!eligible) return '';\n    var qty = Number(state.qualifyingCount || 0);\n    var currency = state.currency;\n    var h = String(handle || '').toLowerCase();\n    var isSet = h.indexOf('-set') !== -1 || h.indexOf('set-') !== -1 || h.indexOf('pannenset') !== -1 || h.indexOf('keukenset') !== -1;\n    if (qty >= 3) {\n      return 'Bespaar extra 20%\\u00a0\u00B7 in de wagen ' + money(cardPriceCents(street, 20), currency);\n    }\n    if (qty >= 2) {\n      return 'Bespaar extra 10%\\u00a0\u00B7 in de wagen ' + money(cardPriceCents(street, 10), currency);\n    }\n    if (qty === 1) return 'Er een product bij: 10% extra';\n    if (isSet) return 'Setprijs \u2014 extra 10% pas bij een 2e product';\n    return '2e los product: 10% extra';\n  }\n\n  function paintCards(state) {\n    if (!state) state = lastState;\n    if (!state) return;\n    document.querySelectorAll('[data-tl-card]').forEach(function (card) {\n      var handle = String(card.getAttribute('data-handle') || '').toLowerCase();\n      var eligible = card.getAttribute('data-eligible') === '1';\n      var inSet = !!(state.handles && state.handles[handle]);\n      card.classList.remove('is-in-set');\n      var check = card.querySelector('[data-tl-card-check]');\n      if (check) check.hidden = true;\n      var hint = card.querySelector('[data-tl-card-hint]');\n      if (hint) {\n        hint.textContent = cardHint(state, inSet, eligible);\n        hint.hidden = !hint.textContent;\n      }\n      var addLabel = card.querySelector('[data-tl-add-label]');\n      if (addLabel) {\n        addLabel.textContent = addLabelCopy(state, eligible, inSet);\n      }\n      var nowEl = card.querySelector('[data-tl-card-now]');\n      var wasEl = card.querySelector('[data-tl-card-was]');\n      var badgeEl = card.querySelector('[data-tl-card-badge]');\n      var stackEl = card.querySelector('[data-tl-card-stack]');\n      var cents = Number(card.getAttribute('data-price') || 0);\n      var was = Number(card.getAttribute('data-was') || 0);\n      if (nowEl && cents > 0) {\n        nowEl.textContent = money(cents, state.currency) || nowEl.textContent;\n        nowEl.classList.remove('is-stack-now', 'is-was');\n        if (wasEl) {\n          if (was > cents) {\n            wasEl.hidden = false;\n            wasEl.textContent = money(was, state.currency) || wasEl.textContent;\n          } else {\n            wasEl.hidden = true;\n          }\n        }\n        if (badgeEl) {\n          if (was > cents) {\n            badgeEl.hidden = false;\n            if (card.classList.contains('tl-sale-card')) {\n              badgeEl.textContent = '-' + Math.round((was - cents) * 100 / was) + '%';\n            } else {\n              badgeEl.textContent = 'Bespaar\\u00a0' + money(was - cents, state.currency);\n            }\n          } else {\n            badgeEl.hidden = true;\n          }\n        }\n      }\n      if (stackEl) {\n        var line = stackLine(state, eligible, cents, handle);\n        stackEl.textContent = line;\n        stackEl.hidden = !line;\n      }\n    });\n  }\n\n  function cardCopy(state) {\n    var qty = state && state.qualifyingCount ? state.qualifyingCount : 0;\n    if (qty <= 0) {\n      return {\n        stack: '2e 10% \u00B7 3e 20%',\n        hint: 'Extra % alleen op losse extra\u2019s',\n        save: 'Besparing \u20AC0,00',\n        cta: 'Kies je Chef\\'s set',\n        action: 'shop'\n      };\n    }\n    if (qty === 1) {\n      return {\n        stack: 'Nog 1 voor 10%',\n        hint: 'Extra % alleen op losse extra\u2019s',\n        save: 'Besparing \u20AC0,00',\n        cta: 'Extra voordeel',\n        action: 'staffel'\n      };\n    }\n    if (qty === 2) {\n      return {\n        stack: '10% actief',\n        hint: 'Extra % alleen op losse extra\u2019s',\n        save: 'Besparing \u20AC0,00',\n        cta: 'Naar je mand',\n        action: 'cart'\n      };\n    }\n    return {\n      stack: '20% actief',\n      hint: 'Extra % alleen op losse extra\u2019s',\n      save: 'Besparing \u20AC0,00',\n      cta: 'Naar je mand',\n      action: 'cart'\n    };\n  }\n\n  function paintBar(state) {\n    var bar = document.getElementById('tl-stack-bar');\n    var dock = document.getElementById('tl-tier-dock');\n    var copy = copyFor(state.qualifyingCount, state.hasSet);\n    if (bar) {\n      var onLp = !!document.querySelector('[data-tl-stack-lp]') || bar.classList.contains('tl-stack-bar--lp');\n      var qtyShow = Number(state.qualifyingCount || 0);\n      var itemsShow = Number(state.itemCount || 0);\n      var show = onLp ? (qtyShow >= 1 || itemsShow >= 1) : (bar.getAttribute('data-tl-bar-ready') === '1' && qtyShow >= 1);\n      if (show) {\n        bar.hidden = false;\n        bar.removeAttribute('hidden');\n        document.documentElement.classList.add('tl-stack-bar-on');\n      } else {\n        bar.hidden = true;\n        bar.setAttribute('hidden', '');\n        document.documentElement.classList.remove('tl-stack-bar-on');\n      }\n      var card = cardCopy(state);\n      var qty = Number(state.qualifyingCount || 0);\n      bar.classList.toggle('is-nudge', qty === 1);\n      bar.classList.toggle('is-live', qty >= 2);\n      var stackEl = bar.querySelector('[data-tl-bar-stack]');\n      var hintEl = bar.querySelector('[data-tl-bar-hint]');\n      var priceEl = bar.querySelector('[data-tl-bar-price]');\n      var saveEl = bar.querySelector('[data-tl-bar-save]');\n      var k = bar.querySelector('[data-tl-bar-kicker]');\n      var s = bar.querySelector('[data-tl-bar-sub]');\n      var c = bar.querySelector('[data-tl-bar-cta]');\n      var currency = state.currency || 'EUR';\n      var priceCents = Number(state.displayPrice != null ? state.displayPrice : state.totalPrice) || 0;\n      var saveCents = Number(state.displaySave != null ? state.displaySave : state.allocated) || 0;\n      if (stackEl) setWordSpans(stackEl, card.stack);\n      if (hintEl) {\n        setWordSpans(hintEl, card.hint || 'Extra % alleen op losse extra\u2019s');\n        hintEl.hidden = !card.hint;\n      }\n      if (priceEl) {\n        setWordSpans(priceEl, money(priceCents, currency) || '\u20AC0,00');\n      }\n      if (saveEl) {\n        if (saveCents > 0 && state.discountPercentage > 0) {\n          setWordSpans(saveEl, '\\u2212' + money(saveCents, currency));\n        } else {\n          setWordSpans(saveEl, card.save || 'Besparing \u20AC0,00');\n        }\n      }\n      if (k) k.textContent = copy.sticky;\n      if (s) {\n        s.textContent = copy.stickySub;\n        s.hidden = !copy.stickySub;\n      }\n      if (c) {\n        setWordSpans(c, card.cta || copy.stickyCta);\n        c.setAttribute('data-action', card.action || copy.action);\n      }\n    }\n    if (!dock) return;\n    var count = state.itemCount;\n    if (document.querySelector('[data-tl-stack-lp]')) {\n      dock.hidden = true;\n      return;\n    }\n    if (count < 1) {\n      dock.hidden = true;\n      document.documentElement.classList.remove('tl-tier-dock-on');\n      return;\n    }\n    dock.hidden = false;\n    document.documentElement.classList.add('tl-tier-dock-on');\n    var totalEl = document.getElementById('tl-tier-dock-total');\n    var ctxEl = document.getElementById('tl-tier-dock-ctx');\n    var btn = document.getElementById('tl-tier-dock-open');\n    if (totalEl && window.TitanoreTier) totalEl.textContent = window.TitanoreTier.formatMoney(state.totalPrice, state.currency);\n    if (ctxEl) ctxEl.textContent = count === 1 ? '1 product in je winkelmand' : count + ' producten in je winkelmand';\n    if (btn) {\n      var label = btn.querySelector('[data-tl-tier-count]');\n      if (label) label.textContent = '(' + count + ')';\n      var text = btn.querySelector('[data-tl-tier-label]');\n      if (text) text.textContent = state.qualifyingCount >= 2 ? 'Bekijk je voordeel' : 'Bekijk winkelmand';\n    }\n  }\n\n  function paintHero(state) {\n    var note = document.querySelector('[data-tl-hero-note]');\n    if (note) {\n      note.textContent = '';\n      note.hidden = true;\n    }\n  }\n\n  function paintFunnel(state) {\n    var qty = state && state.qualifyingCount ? state.qualifyingCount : 0;\n    document.querySelectorAll('[data-tl-funnel-step]').forEach(function (el) {\n      var n = Number(el.getAttribute('data-tl-funnel-step') || 0);\n      el.classList.toggle('is-on', (qty === 0 && n === 1) || (qty === 1 && n === 2) || (qty >= 2 && n === 3));\n      el.classList.toggle('is-done', (n === 1 && qty >= 1) || (n === 2 && qty >= 2));\n    });\n  }\n\n  function applyCart(cart) {\n    lastCart = cart;\n    lastState = buildState(cart);\n    paintMeters(lastState);\n    try {\n      document.dispatchEvent(new CustomEvent('tl:stack-state', { detail: lastState }));\n    } catch (e) {}\n  }\n\n  function loadCart() {\n    var id = ++seq;\n    fetch(rootPath() + 'cart.js', { credentials: 'same-origin' })\n      .then(function (r) { return r.json(); })\n      .then(function (cart) {\n        if (id !== seq) return;\n        applyCart(cart);\n      })\n      .catch(function () {\n        if (id !== seq) return;\n        applyCart({ items: [], item_count: 0, total_price: 0, currency: cfg.currency || 'EUR' });\n      });\n  }\n\n  function scheduleRefresh() {\n    window.clearTimeout(refreshTimer);\n    refreshTimer = window.setTimeout(loadCart, 80);\n  }\n\n  function openCart() {\n    if (typeof window.tlOpenCartDrawer === 'function' && window.tlOpenCartDrawer()) return;\n    var d = document.querySelector('cart-drawer') || document.querySelector('#CartDrawer');\n    if (!d) {\n      window.location.href = rootPath() + 'cart';\n      return;\n    }\n    if (typeof d.open === 'function') d.open();\n    else {\n      d.classList.add('active', 'is-open', 'animate');\n      document.documentElement.classList.add('tl-cart-drawer-open');\n      document.body.classList.add('overflow-hidden');\n    }\n  }\n\n  function goShop() {\n    var target = document.getElementById('keuze') || document.getElementById('collectie') || document.getElementById('chefs-pans');\n    if (target && target.scrollIntoView) {\n      target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      return;\n    }\n    window.location.hash = 'collectie';\n  }\n\n  function goStaffel() {\n    var target = document.getElementById('stapelkorting') || document.getElementById('meer-pannen');\n    if (target && target.scrollIntoView) {\n      target.scrollIntoView({ behavior: 'smooth', block: 'start' });\n      return;\n    }\n    goShop();\n  }\n\n  function onCta(action) {\n    if (action === 'cart') openCart();\n    else if (action === 'staffel') goStaffel();\n    else goShop();\n  }\n\n  function bind() {\n    var btn = document.getElementById('tl-tier-dock-open');\n    if (btn && btn.getAttribute('data-tl-tier-bound') !== '1') {\n      btn.setAttribute('data-tl-tier-bound', '1');\n      btn.addEventListener('click', function (e) {\n        e.preventDefault();\n        openCart();\n      });\n    }\n    if (document.documentElement.getAttribute('data-tl-stack-cta') !== '1') {\n      document.documentElement.setAttribute('data-tl-stack-cta', '1');\n      document.addEventListener('click', function (e) {\n        if (\n          e.target &&\n          e.target.closest &&\n          e.target.closest('#CartDrawer-Checkout, #checkout, [data-tl-cart-checkout], .tl-cart-fase1__cta, .cart__checkout-button')\n        ) {\n          return;\n        }\n        var cartBtn = e.target && e.target.closest && e.target.closest('[data-tl-funnel-cart]');\n        if (cartBtn) {\n          e.preventDefault();\n          openCart();\n          return;\n        }\n        var el = e.target && e.target.closest && e.target.closest('[data-tl-staffel-cta], [data-tl-bar-cta]');\n        if (!el) return;\n        e.preventDefault();\n        onCta(el.getAttribute('data-action') || 'shop');\n      });\n    }\n    ['cart:updated', 'cart:refresh', 'cart-drawer:update', 'cart-drawer:render'].forEach(function (name) {\n      document.addEventListener(name, scheduleRefresh);\n      document.documentElement.addEventListener(name, scheduleRefresh);\n    });\n    document.addEventListener('visibilitychange', function () {\n      if (!document.hidden) scheduleRefresh();\n    });\n  }\n\n  function boot() {\n    document.documentElement.classList.add('tl-tier-on');\n    window.TLTierAdapter = {\n      __booted: true,\n      refresh: scheduleRefresh,\n      lastCart: function () { return lastCart; },\n      getState: function () { return lastState; },\n      paintCards: paintCards,\n      openCart: openCart\n    };\n    bind();\n    var bar = document.getElementById('tl-stack-bar');\n    var mark = document.getElementById('stapelkorting');\n    if (bar && bar.classList.contains('tl-stack-bar--lp')) {\n      bar.hidden = true;\n      bar.setAttribute('hidden', '');\n      document.documentElement.classList.remove('tl-stack-bar-on');\n    } else if (bar && mark && 'IntersectionObserver' in window) {\n      var io = new IntersectionObserver(function (entries) {\n        entries.forEach(function (en) {\n          if (en.isIntersecting || en.boundingClientRect.top < 80) {\n            bar.setAttribute('data-tl-bar-ready', '1');\n            if (lastState && lastState.qualifyingCount > 0) {\n              bar.hidden = false;\n              document.documentElement.classList.add('tl-stack-bar-on');\n            }\n          }\n        });\n      }, { rootMargin: '0px 0px -15% 0px', threshold: 0.12 });\n      io.observe(mark);\n    }\n    loadCart();\n  }\n\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', boot);\n  else boot();\n})();\n"],
  "mappings": "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",
  "names": []
}
