{
  "version": 3,
  "sources": ["/cdn/shop/t/17/assets/hbd-cart-discount-progress.js?hbd=20260508f"],
  "sourcesContent": ["(function () {\r\n  'use strict';\r\n\r\n  var listenersBound = false;\r\n  var refreshTimer = null;\r\n  var requestInFlight = false;\r\n\r\n  function getMoneyFormat() {\r\n    try {\r\n      var sectionData = document.querySelector('[data-section-data]');\r\n      if (!sectionData) return '\u00A3{{amount}}';\r\n\r\n      var parsed = JSON.parse(sectionData.textContent || '{}');\r\n      if (parsed && parsed.settings && parsed.settings.money_format) {\r\n        return parsed.settings.money_format;\r\n      }\r\n    } catch (_e) {\r\n      // Ignore parse issues and use fallback formatting.\r\n    }\r\n    return '\u00A3{{amount}}';\r\n  }\r\n\r\n  function formatMoney(cents) {\r\n    var amount = Math.max(0, parseInt(cents, 10) || 0);\r\n    if (window.Shopify && typeof window.Shopify.formatMoney === 'function') {\r\n      return window.Shopify.formatMoney(amount, getMoneyFormat());\r\n    }\r\n    return '\u00A3' + (amount / 100).toFixed(2);\r\n  }\r\n\r\n  function getMarkerLockedLabel(thresholdCents) {\r\n    if (thresholdCents === 500000) return 'GBP 5k';\r\n    if (thresholdCents === 800000) return 'GBP 8k';\r\n    if (thresholdCents === 1200000) return 'GBP 12k';\r\n    return formatMoney(thresholdCents);\r\n  }\r\n\r\n  function isInstallLine(item) {\r\n    if (!item) return false;\r\n\r\n    var props = item.properties || {};\r\n    if (props._install_for) return true;\r\n\r\n    var productType = String(item.product_type || '').toLowerCase();\r\n    if (productType === 'installation service') return true;\r\n\r\n    var sku = String(item.sku || '').toUpperCase();\r\n    if (sku.indexOf('INSTALL-') === 0) return true;\r\n\r\n    var title = String(item.product_title || item.title || '').toLowerCase();\r\n    return title.indexOf('installation service') !== -1;\r\n  }\r\n\r\n  function getProgressPercent(spendCents, threshold1, threshold2, threshold3) {\r\n    if (spendCents <= 0) return 0;\r\n    if (spendCents >= threshold3) return 100;\r\n    if (spendCents >= threshold2) {\r\n      return 66 + Math.round(((spendCents - threshold2) / (threshold3 - threshold2)) * 34);\r\n    }\r\n    if (spendCents >= threshold1) {\r\n      return 33 + Math.round(((spendCents - threshold1) / (threshold2 - threshold1)) * 33);\r\n    }\r\n    return Math.round((spendCents / threshold1) * 33);\r\n  }\r\n\r\n  function getStageMath(state) {\r\n    if (!state || !state.nextThreshold) {\r\n      return {\r\n        stage: 'check',\r\n        start: state ? state.threshold3 : 1200000,\r\n        mid: state ? state.threshold3 : 1200000,\r\n        close: state ? state.threshold3 : 1200000,\r\n        check: state ? state.threshold3 : 1200000\r\n      };\r\n    }\r\n\r\n    var start = 0;\r\n    if (state.nextThreshold === state.threshold2) {\r\n      start = state.threshold1;\r\n    } else if (state.nextThreshold === state.threshold3) {\r\n      start = state.threshold2;\r\n    }\r\n\r\n    var size = state.nextThreshold - start;\r\n    var mid = start + Math.round(size * 0.4);\r\n    var close = start + Math.round(size * 0.8);\r\n    var stage = 'start';\r\n\r\n    if (state.discountBaseCents >= close) {\r\n      stage = 'close';\r\n    } else if (state.discountBaseCents >= mid) {\r\n      stage = 'mid';\r\n    }\r\n\r\n    return {\r\n      stage: stage,\r\n      start: start,\r\n      mid: mid,\r\n      close: close,\r\n      check: state.nextThreshold\r\n    };\r\n  }\r\n\r\n  function computeState(cart) {\r\n    var items = Array.isArray(cart && cart.items) ? cart.items : [];\r\n    var hasInstall = false;\r\n    var discountBase = 0;\r\n\r\n    items.forEach(function (item) {\r\n      var installLine = isInstallLine(item);\r\n      if (installLine) {\r\n        hasInstall = true;\r\n        return;\r\n      }\r\n\r\n      var lineValue = parseInt(item.original_line_price || item.line_price || 0, 10) || 0;\r\n      discountBase += lineValue;\r\n    });\r\n\r\n    var spendCents = parseInt(\r\n      (cart && cart.original_total_price) ||\r\n      (cart && cart.items_subtotal_price) ||\r\n      (cart && cart.total_price) ||\r\n      0,\r\n      10\r\n    ) || 0;\r\n    if (spendCents < 0) spendCents = 0;\r\n\r\n    var threshold1 = 500000;\r\n    var threshold2 = 800000;\r\n    var threshold3 = 1200000;\r\n\r\n    var rates = hasInstall\r\n      ? { one: 3, two: 5, three: 7, label: 'Installation in cart (Tier A)' }\r\n      : { one: 3, two: 4, three: 5, label: 'Supply-only cart (Tier B)' };\r\n\r\n    var currentRate = 0;\r\n    if (discountBase >= threshold1) currentRate = rates.one;\r\n    if (discountBase >= threshold2) currentRate = rates.two;\r\n    if (discountBase >= threshold3) currentRate = rates.three;\r\n\r\n    var nextThreshold = 0;\r\n    var nextRate = 0;\r\n    if (discountBase < threshold1) {\r\n      nextThreshold = threshold1;\r\n      nextRate = rates.one;\r\n    } else if (discountBase < threshold2) {\r\n      nextThreshold = threshold2;\r\n      nextRate = rates.two;\r\n    } else if (discountBase < threshold3) {\r\n      nextThreshold = threshold3;\r\n      nextRate = rates.three;\r\n    }\r\n\r\n    var toNext = nextThreshold ? Math.max(0, nextThreshold - discountBase) : 0;\r\n    var progressPercent = getProgressPercent(discountBase, threshold1, threshold2, threshold3);\r\n    var estimatedSavings = Math.round((discountBase * currentRate) / 100);\r\n\r\n    return {\r\n      hasInstall: hasInstall,\r\n      spendCents: spendCents,\r\n      discountBaseCents: discountBase,\r\n      rates: rates,\r\n      currentRate: currentRate,\r\n      nextRate: nextRate,\r\n      nextThreshold: nextThreshold,\r\n      toNext: toNext,\r\n      progressPercent: progressPercent,\r\n      estimatedSavings: estimatedSavings,\r\n      threshold1: threshold1,\r\n      threshold2: threshold2,\r\n      threshold3: threshold3\r\n    };\r\n  }\r\n\r\n  function renderState(state) {\r\n    var blocks = document.querySelectorAll('[data-hbd-discount-progress]');\r\n    if (!blocks.length) return;\r\n\r\n    blocks.forEach(function (block) {\r\n      var modeEl = block.querySelector('[data-hbd-progress-mode]');\r\n      var savingEl = block.querySelector('[data-hbd-progress-saving]');\r\n      var trackEl = block.querySelector('.hbd-cart-discount-progress__track');\r\n      var fillEl = block.querySelector('[data-hbd-progress-fill]');\r\n      var messageEl = block.querySelector('[data-hbd-progress-message]');\r\n      var stageMath = getStageMath(state);\r\n\r\n      if (modeEl) {\r\n        modeEl.textContent = state.rates.label + ': ' + state.rates.one + '% / ' + state.rates.two + '% / ' + state.rates.three + '%';\r\n      }\r\n\r\n      if (savingEl) {\r\n        if (state.currentRate > 0) {\r\n          savingEl.textContent = 'Estimated discount: ' + formatMoney(state.estimatedSavings) + ' (' + state.currentRate + '%)';\r\n        } else {\r\n          savingEl.textContent = 'No discount tier unlocked yet.';\r\n        }\r\n      }\r\n\r\n      if (fillEl) {\r\n        fillEl.style.width = state.progressPercent + '%';\r\n      }\r\n      if (trackEl) {\r\n        trackEl.setAttribute('aria-valuenow', String(state.progressPercent));\r\n      }\r\n\r\n      var markers = block.querySelectorAll('[data-hbd-progress-marker]');\r\n      markers.forEach(function (marker) {\r\n        var threshold = parseInt(marker.getAttribute('data-threshold') || '0', 10) || 0;\r\n        var unlocked = state.discountBaseCents >= threshold;\r\n        marker.classList.toggle('is-unlocked', unlocked);\r\n\r\n        var valueEl = marker.querySelector('[data-hbd-progress-marker-value]');\r\n        if (valueEl) {\r\n          if (unlocked) {\r\n            valueEl.textContent = '\\u2713';\r\n          } else {\r\n            valueEl.textContent = marker.getAttribute('data-locked-label') || getMarkerLockedLabel(threshold);\r\n          }\r\n        }\r\n      });\r\n\r\n      if (messageEl) {\r\n        if (state.nextThreshold > 0) {\r\n          if (state.currentRate > 0) {\r\n            if (stageMath.stage === 'close') {\r\n              messageEl.textContent = 'Close to the next check. Spend ' + formatMoney(state.toNext) + ' more to unlock ' + state.nextRate + '%.';\r\n            } else if (stageMath.stage === 'mid') {\r\n              messageEl.textContent = 'Mid progress reached. Spend ' + formatMoney(state.toNext) + ' more to unlock ' + state.nextRate + '%.';\r\n            } else {\r\n              messageEl.textContent = 'You have ' + state.currentRate + '% unlocked. Spend ' + formatMoney(state.toNext) + ' more to unlock ' + state.nextRate + '%.';\r\n            }\r\n          } else {\r\n            if (stageMath.stage === 'close') {\r\n              messageEl.textContent = 'Close to your first check. Spend ' + formatMoney(state.toNext) + ' more to unlock ' + state.nextRate + '%.';\r\n            } else if (stageMath.stage === 'mid') {\r\n              messageEl.textContent = 'Mid progress reached. Spend ' + formatMoney(state.toNext) + ' more to unlock your first discount tier (' + state.nextRate + '%).';\r\n            } else {\r\n              messageEl.textContent = 'Spend ' + formatMoney(state.toNext) + ' more to unlock your first discount tier (' + state.nextRate + '%).';\r\n            }\r\n          }\r\n        } else {\r\n          messageEl.textContent = 'Top tier unlocked: ' + state.currentRate + '% discount.';\r\n        }\r\n      }\r\n\r\n    });\r\n  }\r\n\r\n  function renderFromCartObject(cart) {\r\n    renderState(computeState(cart || {}));\r\n  }\r\n\r\n  function fetchAndRender() {\r\n    if (!document.querySelector('[data-hbd-discount-progress]')) return;\r\n    if (requestInFlight) return;\r\n\r\n    requestInFlight = true;\r\n\r\n    fetch('/cart.js', { headers: { Accept: 'application/json' } })\r\n      .then(function (res) { return res.ok ? res.json() : null; })\r\n      .then(function (cart) {\r\n        if (cart) {\r\n          renderFromCartObject(cart);\r\n        }\r\n      })\r\n      .catch(function (err) {\r\n        console.warn('[HBD] Discount progress refresh failed:', err);\r\n      })\r\n      .then(function () {\r\n        requestInFlight = false;\r\n      }, function () {\r\n        requestInFlight = false;\r\n      });\r\n  }\r\n\r\n  function scheduleRefresh(delay) {\r\n    if (refreshTimer) {\r\n      clearTimeout(refreshTimer);\r\n    }\r\n    refreshTimer = setTimeout(function () {\r\n      fetchAndRender();\r\n    }, delay || 120);\r\n  }\r\n\r\n  function bindListenersOnce() {\r\n    if (listenersBound) return;\r\n    listenersBound = true;\r\n\r\n    window.addEventListener('cartcount:update', function (event) {\r\n      var cart = event && event.detail;\r\n      if (cart && cart.items) {\r\n        renderFromCartObject(cart);\r\n        return;\r\n      }\r\n      scheduleRefresh(180);\r\n    });\r\n\r\n    document.addEventListener('cart:refresh', function () {\r\n      scheduleRefresh(120);\r\n    });\r\n\r\n    document.addEventListener('change', function (event) {\r\n      var field = event.target && event.target.closest\r\n        ? event.target.closest('[data-cartitem-quantity][data-quantity-input], [data-cartitem-quantity][data-quantity-select]')\r\n        : null;\r\n      if (!field) return;\r\n      scheduleRefresh(450);\r\n    }, true);\r\n\r\n    document.addEventListener('shopify:section:load', function () {\r\n      scheduleRefresh(120);\r\n    });\r\n  }\r\n\r\n  function init() {\r\n    bindListenersOnce();\r\n    scheduleRefresh(30);\r\n  }\r\n\r\n  window.HBDInitCartDiscountProgress = init;\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', init);\r\n  } else {\r\n    init();\r\n  }\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
