{
  "version": 3,
  "sources": ["/cdn/shop/t/7/assets/cart-goal-drawer-sync.js?goal-copy=v2"],
  "sourcesContent": ["/**\n * Cart drawer: main status line + bar fill + icons on bar + static sublabels.\n * Figma 215:8747 \u2014 mustard #e7b767 for bar / in-progress copy; #000 for success + sublabels.\n */\n(function () {\n  function fmtMoneyTwoDecimals(n) {\n    var x = Number(n);\n    if (isNaN(x)) return '0.00';\n    return x.toFixed(2);\n  }\n\n  function syncDrawerGoals(cart) {\n    if (!cart || typeof cart.total_price !== 'number') return;\n    var total = cart.total_price / 100;\n    document.querySelectorAll('.cart__goals--drawer').forEach(function (drawer) {\n      var maxGoal = parseFloat(drawer.getAttribute('data-drawer-max-goal'));\n      var unified = drawer.querySelector('.goal-track--drawer-unified');\n      if (unified && (!maxGoal || maxGoal <= 0 || isNaN(maxGoal))) {\n        maxGoal = parseFloat(unified.getAttribute('data-max-goal'));\n      }\n      if (unified && !isNaN(maxGoal) && maxGoal > 0) {\n        var pct = Math.min(100, (total / maxGoal) * 100);\n        unified.style.left = '0';\n        unified.style.position = 'relative';\n        unified.style.top = 'auto';\n        unified.style.transform = 'none';\n        unified.style.maxWidth = '100%';\n        unified.style.width = '100%';\n        unified.style.setProperty('--goal-fill', pct + '%');\n      }\n\n      var main = drawer.querySelector('.cart__goal-drawer-main');\n      var markers = drawer.querySelectorAll('.cart__goal-milestone');\n      var goals = [];\n      markers.forEach(function (m) {\n        var g = parseFloat(m.dataset.goal);\n        if (!isNaN(g)) goals.push(g);\n      });\n\n      if (main) {\n        if (goals.length === 0) {\n          main.textContent = '';\n        } else if (goals.length === 1) {\n          var g0 = goals[0];\n          if (total < g0) {\n            main.textContent =\n              'Add $' +\n              fmtMoneyTwoDecimals(g0 - total) +\n              ' more for FREE SHIPPING';\n            main.classList.add('cart__goal-drawer-main--progress');\n          } else {\n            main.textContent = \"You've unlocked FREE SHIPPING!\";\n            main.classList.remove('cart__goal-drawer-main--progress');\n          }\n        } else {\n          var gA = goals[0];\n          var gB = goals[1];\n          if (total < gA) {\n            main.textContent =\n              'Add $' +\n              fmtMoneyTwoDecimals(gA - total) +\n              ' more for FREE SHIPPING';\n            main.classList.add('cart__goal-drawer-main--progress');\n          } else if (total < gB) {\n            main.textContent =\n              'Add $' +\n              fmtMoneyTwoDecimals(gB - total) +\n              ' more for FREE GIFT';\n            main.classList.add('cart__goal-drawer-main--progress');\n          } else {\n            main.textContent = \"You've unlocked FREE GIFT!\";\n            main.classList.remove('cart__goal-drawer-main--progress');\n          }\n        }\n      }\n\n      markers.forEach(function (marker) {\n        var currentGoal = parseFloat(marker.dataset.goal);\n        if (isNaN(currentGoal)) return;\n        if (total >= currentGoal) {\n          marker.classList.add('active');\n        } else {\n          marker.classList.remove('active');\n        }\n      });\n    });\n  }\n\n  function initFetch() {\n    fetch('/cart.js')\n      .then(function (r) {\n        return r.json();\n      })\n      .then(function (c) {\n        syncDrawerGoals(c);\n      })\n      .catch(function () {});\n  }\n\n  document.addEventListener(\n    'cart-updated',\n    function (e) {\n      var c = e.detail;\n      if (c && typeof c.total_price === 'number') {\n        syncDrawerGoals(c);\n        setTimeout(function () {\n          syncDrawerGoals(c);\n        }, 40);\n      } else {\n        initFetch();\n      }\n    },\n    true\n  );\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', initFetch);\n  } else {\n    initFetch();\n  }\n\n  window.addEventListener('load', initFetch);\n\n  var qtyTimers = [];\n  function clearQtyTimers() {\n    qtyTimers.forEach(function (id) {\n      clearTimeout(id);\n    });\n    qtyTimers = [];\n  }\n\n  /** Qty control debounces updates at 300ms; hit /cart.js soon after and again if the request was slow. */\n  function scheduleAfterQtyChange() {\n    clearQtyTimers();\n    [240, 380, 650].forEach(function (delay) {\n      qtyTimers.push(setTimeout(initFetch, delay));\n    });\n  }\n\n  document.addEventListener(\n    'click',\n    function (e) {\n      if (!e.target || !e.target.closest) return;\n      if (!e.target.closest('slide-over#cart')) return;\n      if (e.target.closest('.quantity__button')) {\n        scheduleAfterQtyChange();\n      }\n    },\n    true\n  );\n\n  document.addEventListener(\n    'change',\n    function (e) {\n      if (\n        e.target &&\n        e.target.matches &&\n        e.target.matches('.quantity__input') &&\n        e.target.closest &&\n        e.target.closest('slide-over#cart')\n      ) {\n        scheduleAfterQtyChange();\n      }\n    },\n    true\n  );\n\n  document.addEventListener(\n    'input',\n    function (e) {\n      if (\n        e.target &&\n        e.target.matches &&\n        e.target.matches('.quantity__input') &&\n        e.target.closest &&\n        e.target.closest('slide-over#cart')\n      ) {\n        scheduleAfterQtyChange();\n      }\n    },\n    true\n  );\n\n  var slideRoot = document.querySelector('slide-over#cart');\n  if (slideRoot) {\n    var slideAside = slideRoot.querySelector('.slideover');\n    if (slideAside) {\n      var mo = new MutationObserver(function () {\n        if (slideAside.classList.contains('active')) {\n          initFetch();\n        }\n      });\n      mo.observe(slideAside, {\n        attributes: true,\n        attributeFilter: ['class'],\n      });\n    }\n  }\n})();\n"],
  "mappings": "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",
  "names": []
}
