{
  "version": 3,
  "sources": ["/cdn/shop/t/16/assets/pdp-mobile-buy.js?cb=1792522941339"],
  "sourcesContent": ["/* Product page buy panel - live unit price, subtotal and volume tier on mobile */\n(function () {\n  if (window.__pbpInit) return;\n  window.__pbpInit = true;\n\n  function parse(text) {\n    var t = String(text || '').replace(/\\/ea/i, '').trim();\n    var m = t.match(/[\\d.,]+/);\n    if (!m) return null;\n    var raw = m[0];\n    var comma = /,\\d{2}$/.test(raw);\n    var num = parseFloat(comma ? raw.replace(/\\./g, '').replace(',', '.') : raw.replace(/,/g, ''));\n    return { value: num, prefix: t.slice(0, m.index), suffix: t.slice(m.index + raw.length), comma: comma };\n  }\n\n  function fmt(n, ref) {\n    var s = n.toFixed(2);\n    var parts = s.split('.');\n    var sep = ref.comma ? '.' : ',';\n    var whole = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, sep);\n    return ref.prefix + whole + (ref.comma ? ',' : '.') + parts[1] + ref.suffix;\n  }\n\n  function build() {\n    var panel = document.querySelector('.pro-buy-panel');\n    if (!panel) return;\n    var rows = Array.prototype.slice.call(panel.querySelectorAll('volume-pricing li'));\n    var tiers = rows.map(function (li) {\n      var spans = li.children;\n      var min = parseInt((spans[0] && spans[0].textContent || '').replace(/[^\\d]/g, ''), 10) || 1;\n      var price = parse(spans[1] && spans[1].textContent);\n      return { min: min, price: price, el: li };\n    }).filter(function (t) { return t.price; });\n    if (!tiers.length) { var dataEl = panel.querySelector('[data-selected-variant]') || document.querySelector('[data-selected-variant]'); var variant = null; try { variant = dataEl ? JSON.parse(dataEl.textContent) : null; } catch (e) { variant = null; } var ref = parse(panel.querySelector('.price') && panel.querySelector('.price').textContent); if (!variant || typeof variant.price !== 'number' || !ref) return; tiers = [{ min: 1, price: { value: variant.price / 100, prefix: ref.prefix.replace(/^[\\s\\S]*?(\\S*)$/, '$1'), suffix: (ref.suffix.match(/^\\s?[A-Z]{3}\\b/) || [''])[0], comma: ref.comma }, el: null }]; }\n\n    var input = panel.querySelector('.quantity__input');\n    var qty = Math.max(1, parseInt(input && input.value, 10) || 1);\n    var active = tiers[0];\n    tiers.forEach(function (t) { if (qty >= t.min) active = t; });\n    var best = tiers[tiers.length - 1];\n    var unit = active.price;\n\n    var head = panel.querySelector('.pro-buy-panel__head');\n    var summary = panel.querySelector('.pbp-summary');\n    if (!summary && head) {\n      summary = document.createElement('div');\n      summary.className = 'pbp-summary';\n      head.insertAdjacentElement('afterend', summary);\n    }\n    if (summary) {\n      var currency = unit.suffix.trim();\n      var html = '<div class=\"pbp-price\"><strong>' + fmt(unit.value, { prefix: unit.prefix, suffix: '', comma: unit.comma }) + '</strong><span>' + (currency ? currency + ' ' : '') + '/ea</span></div>';\n      if (tiers.length > 1 && best.price.value < tiers[0].price.value) {\n        var save = Math.round((1 - best.price.value / tiers[0].price.value) * 100);\n        html += '<p class=\"pbp-from\">From <strong>' + fmt(best.price.value, { prefix: best.price.prefix, suffix: '', comma: best.price.comma }) + '</strong>/ea at ' + best.min + '+ <em>&middot; save ' + save + '%</em></p>';\n      }\n      if (summary.innerHTML !== html) summary.innerHTML = html;\n    }\n\n    var holder = panel.querySelector('.buy_button__holder');\n    var sub = panel.querySelector('.pbp-subtotal-wrap');\n    if (!sub && holder) {\n      sub = document.createElement('div');\n      sub.className = 'pbp-subtotal-wrap';\n      holder.insertAdjacentElement('afterend', sub);\n    }\n    if (sub) {\n      var next = null;\n      tiers.forEach(function (t) { if (!next && t.min > qty) next = t; });\n      var subHtml = '<p class=\"pbp-subtotal\"><span>' + qty + ' &times; ' + fmt(unit.value, unit) + '</span><strong>' + fmt(unit.value * qty, unit) + '</strong></p>' +\n        (next ? '<p class=\"pbp-nudge\">Add ' + (next.min - qty) + ' more for ' + fmt(next.price.value, next.price) + '/ea</p>' : (tiers.length > 1 ? '<p class=\"pbp-nudge\">Volume price applied</p>' : ''));\n      if (sub.innerHTML !== subHtml) sub.innerHTML = subHtml;\n    }\n\n    tiers.forEach(function (t) { if (t.el) t.el.classList.toggle('pbp-active', t === active); });\n    panel.classList.add('pbp-ready');\n  }\n\n  var timer = null;\n  function schedule() { clearTimeout(timer); timer = setTimeout(build, 60); }\n\n  document.addEventListener('DOMContentLoaded', build);\n  document.addEventListener('input', function (e) { if (e.target.closest && e.target.closest('.pro-buy-panel')) schedule(); });\n  document.addEventListener('change', function (e) { if (e.target.closest && e.target.closest('.pro-buy-panel')) schedule(); });\n  document.addEventListener('click', function (e) { if (e.target.closest && e.target.closest('.pro-buy-panel .quantity__button, .pro-buy-panel variant-selects')) schedule(); });\n\n  var observer = new MutationObserver(function (list) {\n    var relevant = list.some(function (m) {\n      var el = m.target.nodeType === 1 ? m.target : m.target.parentElement;\n      return el && !el.closest('.pbp-summary, .pbp-subtotal-wrap') && !(m.type === 'attributes');\n    });\n    if (relevant) schedule();\n  });\n  function watch() {\n    var panel = document.querySelector('.pro-buy-panel');\n    if (panel) observer.observe(panel, { childList: true, subtree: true });\n    build();\n  }\n  if (document.readyState === 'loading') document.addEventListener('DOMContentLoaded', watch); else watch();\n})();\n"],
  "mappings": "CACC,UAAY,CACX,GAAI,OAAO,UAAW,OACtB,OAAO,UAAY,GAEnB,SAAS,MAAM,KAAM,CACnB,IAAI,EAAI,OAAO,MAAQ,EAAE,EAAE,QAAQ,QAAS,EAAE,EAAE,KAAK,EACjD,EAAI,EAAE,MAAM,SAAS,EACzB,GAAI,CAAC,EAAG,OAAO,KACf,IAAI,IAAM,EAAE,CAAC,EACT,MAAQ,UAAU,KAAK,GAAG,EAC1B,IAAM,WAAW,MAAQ,IAAI,QAAQ,MAAO,EAAE,EAAE,QAAQ,IAAK,GAAG,EAAI,IAAI,QAAQ,KAAM,EAAE,CAAC,EAC7F,MAAO,CAAE,MAAO,IAAK,OAAQ,EAAE,MAAM,EAAG,EAAE,KAAK,EAAG,OAAQ,EAAE,MAAM,EAAE,MAAQ,IAAI,MAAM,EAAG,MAAO,KAAM,CACxG,CAEA,SAAS,IAAI,EAAG,IAAK,CACnB,IAAI,EAAI,EAAE,QAAQ,CAAC,EACf,MAAQ,EAAE,MAAM,GAAG,EACnB,IAAM,IAAI,MAAQ,IAAM,IACxB,MAAQ,MAAM,CAAC,EAAE,QAAQ,wBAAyB,GAAG,EACzD,OAAO,IAAI,OAAS,OAAS,IAAI,MAAQ,IAAM,KAAO,MAAM,CAAC,EAAI,IAAI,MACvE,CAEA,SAAS,OAAQ,CACf,IAAI,MAAQ,SAAS,cAAc,gBAAgB,EACnD,GAAK,MACL,KAAI,KAAO,MAAM,UAAU,MAAM,KAAK,MAAM,iBAAiB,mBAAmB,CAAC,EAC7E,MAAQ,KAAK,IAAI,SAAU,GAAI,CACjC,IAAI,MAAQ,GAAG,SACX,IAAM,UAAU,MAAM,CAAC,GAAK,MAAM,CAAC,EAAE,aAAe,IAAI,QAAQ,SAAU,EAAE,EAAG,EAAE,GAAK,EACtF,MAAQ,MAAM,MAAM,CAAC,GAAK,MAAM,CAAC,EAAE,WAAW,EAClD,MAAO,CAAE,IAAK,IAAK,MAAO,MAAO,GAAI,EAAG,CAC1C,CAAC,EAAE,OAAO,SAAU,EAAG,CAAE,OAAO,EAAE,KAAO,CAAC,EAC1C,GAAI,CAAC,MAAM,OAAQ,CAAE,IAAI,OAAS,MAAM,cAAc,yBAAyB,GAAK,SAAS,cAAc,yBAAyB,EAAO,QAAU,KAAM,GAAI,CAAE,QAAU,OAAS,KAAK,MAAM,OAAO,WAAW,EAAI,IAAM,OAAS,EAAG,CAAE,QAAU,IAAM,CAAE,IAAI,IAAM,MAAM,MAAM,cAAc,QAAQ,GAAK,MAAM,cAAc,QAAQ,EAAE,WAAW,EAAG,GAAI,CAAC,SAAW,OAAO,QAAQ,OAAU,UAAY,CAAC,IAAK,OAAQ,MAAQ,CAAC,CAAE,IAAK,EAAG,MAAO,CAAE,MAAO,QAAQ,MAAQ,IAAK,OAAQ,IAAI,OAAO,QAAQ,kBAAmB,IAAI,EAAG,QAAS,IAAI,OAAO,MAAM,gBAAgB,GAAK,CAAC,EAAE,GAAG,CAAC,EAAG,MAAO,IAAI,KAAM,EAAG,GAAI,IAAK,CAAC,CAAG,CAElmB,IAAI,MAAQ,MAAM,cAAc,kBAAkB,EAC9C,IAAM,KAAK,IAAI,EAAG,SAAS,OAAS,MAAM,MAAO,EAAE,GAAK,CAAC,EACzD,OAAS,MAAM,CAAC,EACpB,MAAM,QAAQ,SAAU,EAAG,CAAM,KAAO,EAAE,MAAK,OAAS,EAAG,CAAC,EAC5D,IAAI,KAAO,MAAM,MAAM,OAAS,CAAC,EAC7B,KAAO,OAAO,MAEd,KAAO,MAAM,cAAc,sBAAsB,EACjD,QAAU,MAAM,cAAc,cAAc,EAMhD,GALI,CAAC,SAAW,OACd,QAAU,SAAS,cAAc,KAAK,EACtC,QAAQ,UAAY,cACpB,KAAK,sBAAsB,WAAY,OAAO,GAE5C,QAAS,CACX,IAAI,SAAW,KAAK,OAAO,KAAK,EAC5B,KAAO,kCAAoC,IAAI,KAAK,MAAO,CAAE,OAAQ,KAAK,OAAQ,OAAQ,GAAI,MAAO,KAAK,KAAM,CAAC,EAAI,mBAAqB,SAAW,SAAW,IAAM,IAAM,mBAChL,GAAI,MAAM,OAAS,GAAK,KAAK,MAAM,MAAQ,MAAM,CAAC,EAAE,MAAM,MAAO,CAC/D,IAAI,KAAO,KAAK,OAAO,EAAI,KAAK,MAAM,MAAQ,MAAM,CAAC,EAAE,MAAM,OAAS,GAAG,EACzE,MAAQ,oCAAsC,IAAI,KAAK,MAAM,MAAO,CAAE,OAAQ,KAAK,MAAM,OAAQ,OAAQ,GAAI,MAAO,KAAK,MAAM,KAAM,CAAC,EAAI,mBAAqB,KAAK,IAAM,uBAAyB,KAAO,YAC5M,CACI,QAAQ,YAAc,OAAM,QAAQ,UAAY,KACtD,CAEA,IAAI,OAAS,MAAM,cAAc,qBAAqB,EAClD,IAAM,MAAM,cAAc,oBAAoB,EAMlD,GALI,CAAC,KAAO,SACV,IAAM,SAAS,cAAc,KAAK,EAClC,IAAI,UAAY,oBAChB,OAAO,sBAAsB,WAAY,GAAG,GAE1C,IAAK,CACP,IAAI,KAAO,KACX,MAAM,QAAQ,SAAU,EAAG,CAAM,CAAC,MAAQ,EAAE,IAAM,MAAK,KAAO,EAAG,CAAC,EAClE,IAAI,QAAU,iCAAmC,IAAM,YAAc,IAAI,KAAK,MAAO,IAAI,EAAI,kBAAoB,IAAI,KAAK,MAAQ,IAAK,IAAI,EAAI,iBAC5I,KAAO,6BAA+B,KAAK,IAAM,KAAO,aAAe,IAAI,KAAK,MAAM,MAAO,KAAK,KAAK,EAAI,UAAa,MAAM,OAAS,EAAI,gDAAkD,IAC5L,IAAI,YAAc,UAAS,IAAI,UAAY,QACjD,CAEA,MAAM,QAAQ,SAAU,EAAG,CAAM,EAAE,IAAI,EAAE,GAAG,UAAU,OAAO,aAAc,IAAM,MAAM,CAAG,CAAC,EAC3F,MAAM,UAAU,IAAI,WAAW,EACjC,CAEA,IAAI,MAAQ,KACZ,SAAS,UAAW,CAAE,aAAa,KAAK,EAAG,MAAQ,WAAW,MAAO,EAAE,CAAG,CAE1E,SAAS,iBAAiB,mBAAoB,KAAK,EACnD,SAAS,iBAAiB,QAAS,SAAU,EAAG,CAAM,EAAE,OAAO,SAAW,EAAE,OAAO,QAAQ,gBAAgB,GAAG,SAAS,CAAG,CAAC,EAC3H,SAAS,iBAAiB,SAAU,SAAU,EAAG,CAAM,EAAE,OAAO,SAAW,EAAE,OAAO,QAAQ,gBAAgB,GAAG,SAAS,CAAG,CAAC,EAC5H,SAAS,iBAAiB,QAAS,SAAU,EAAG,CAAM,EAAE,OAAO,SAAW,EAAE,OAAO,QAAQ,kEAAkE,GAAG,SAAS,CAAG,CAAC,EAE7K,IAAI,SAAW,IAAI,iBAAiB,SAAU,KAAM,CAClD,IAAI,SAAW,KAAK,KAAK,SAAU,EAAG,CACpC,IAAI,GAAK,EAAE,OAAO,WAAa,EAAI,EAAE,OAAS,EAAE,OAAO,cACvD,OAAO,IAAM,CAAC,GAAG,QAAQ,kCAAkC,GAAO,EAAE,OAAS,YAC/E,CAAC,EACG,UAAU,SAAS,CACzB,CAAC,EACD,SAAS,OAAQ,CACf,IAAI,MAAQ,SAAS,cAAc,gBAAgB,EAC/C,OAAO,SAAS,QAAQ,MAAO,CAAE,UAAW,GAAM,QAAS,EAAK,CAAC,EACrE,MAAM,CACR,CACI,SAAS,aAAe,UAAW,SAAS,iBAAiB,mBAAoB,KAAK,EAAQ,MAAM,CAC1G,GAAG",
  "names": []
}
