{
  "version": 3,
  "sources": ["/cdn/shop/t/147/assets/comu-sticky-bar.js"],
  "sourcesContent": ["(function () {\n  'use strict';\n  /* jp-comucare-sticky 2026-08-21 */\n\n  /* ------------------------------------------------------------------\n     \u300C\u52A0\u5165\u8D2D\u7269\u8F66\u300D\u6309\u94AE\uFF1AAJAX \u52A0\u8D2D\u5E76\u6253\u5F00\u4E3B\u9898\u539F\u751F\u8D2D\u7269\u8F66\u62BD\u5C49\u3002\n     \u5FE0\u5B9E\u590D\u523B theme.js \u91CC ProductForm \u7684\u4E8B\u4EF6\u6D41\uFF08cart:prepare-bundled-sections\n     \u2192 cart/add.js(\u5E26 sections) \u2192 cart.js \u2192 variant:add + cart:change\uFF09\uFF0C\n     \u7531 <cart-drawer> \u81EA\u5DF1 .show()/\u5237\u65B0\uFF0C\u4E0D\u624B\u52A8\u6539 open \u5C5E\u6027\u3002\n     ------------------------------------------------------------------ */\n  function cartRoot() {\n    return (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';\n  }\n\n  function cartType() {\n    return (\n      (window.themeVariables &&\n        window.themeVariables.settings &&\n        window.themeVariables.settings.cartType) ||\n      'drawer'\n    );\n  }\n\n  function selectedCareVariantId() {\n    var checked = document.querySelector('[data-comu-care-option]:checked');\n    return checked ? checked.dataset.variantId : null;\n  }\n\n  function parseCartAddResponse(response) {\n    return response.text().then(function (raw) {\n      var json = null;\n      try {\n        json = JSON.parse(raw);\n      } catch (parseError) {\n        json = { description: raw.replace(/\\s+/g, ' ').slice(0, 120) };\n      }\n      return { ok: response.ok, json: json };\n    });\n  }\n\n  function addToCartAndReveal(variantId, quantity) {\n    var root = cartRoot();\n    var careId = selectedCareVariantId();\n    var qty = quantity || 1;\n\n    // \u52FE\u9009\u5EF6\u4FDD\u65F6\u4EA4\u7ED9\u8D2D\u4E70\u533A\u540C\u4E00\u6761 submitWithCare\uFF0C\u907F\u514D\u5438\u5E95\u680F\u81EA\u5DF1\u62FC items[]\n    // \u518D\u6B21\u8E29\u4E0A\u300C\u5957\u9910+\u5EF6\u4FDD\u88AB Kaching \u62C6\u6210\u591A\u6B21\u52A0\u8D2D \u2192 429\u300D\u3002\n    if (careId) {\n      var form =\n        document.querySelector('.product-info__buy-buttons form[is=\"product-form\"]') ||\n        document.querySelector('form[is=\"product-form\"]');\n      if (form) {\n        return new Promise(function (resolve) {\n          var settled = false;\n          function done() {\n            if (settled) return;\n            settled = true;\n            document.removeEventListener('cart:change', done);\n            document.removeEventListener('cart:error', done);\n            form.removeEventListener('cart:error', done);\n            resolve();\n          }\n          document.addEventListener('cart:change', done);\n          document.addEventListener('cart:error', done);\n          form.addEventListener('cart:error', done);\n          if (typeof form.requestSubmit === 'function') form.requestSubmit();\n          else {\n            var submitBtn = form.querySelector('[type=submit]');\n            if (submitBtn) submitBtn.click();\n            else form.dispatchEvent(new Event('submit', { bubbles: true, cancelable: true }));\n          }\n          setTimeout(done, 10000);\n        });\n      }\n    }\n\n    // \u8BA9 <cart-drawer> \u628A\u81EA\u8EAB section id \u63A8\u5165\u5F85\u8FD4\u56DE\u5217\u8868\uFF08\u4E0E ProductForm \u4E00\u81F4\uFF09\n    var bundledSections = ['variant-added'];\n    document.documentElement.dispatchEvent(\n      new CustomEvent('cart:prepare-bundled-sections', {\n        bubbles: true,\n        detail: { sections: bundledSections }\n      })\n    );\n\n    var formData = new FormData();\n    formData.set('id', variantId);\n    formData.set('quantity', qty);\n    formData.set('sections', bundledSections.join(','));\n    formData.set('sections_url', root + 'variants/' + variantId);\n    var request = fetch(root + 'cart/add.js', {\n      method: 'POST',\n      body: formData,\n      headers: { 'X-Requested-With': 'XMLHttpRequest' }\n    });\n\n    return request\n      .then(parseCartAddResponse)\n      .then(function (result) {\n        if (!result.ok) {\n          document.dispatchEvent(new CustomEvent('cart:refresh'));\n          throw new Error((result.json && (result.json.description || result.json.message)) || 'cart add failed');\n        }\n        return result;\n      })\n      .then(function (result) {\n        if (cartType() === 'page') {\n          window.location.href = root + 'cart';\n          return;\n        }\n\n        return fetch(root + 'cart.js')\n          .then(function (r) {\n            return r.json();\n          })\n          .then(function (cart) {\n            cart.sections = result.json.sections;\n            var items = result.json.items || [result.json];\n\n            /* variant:add \u89E6\u53D1\u62BD\u5C49 .show()\uFF08drawer \u6A21\u5F0F\uFF09\u6216\u52A0\u8D2D\u901A\u77E5\uFF08popover \u6A21\u5F0F\uFF09 */\n            document.documentElement.dispatchEvent(\n              new CustomEvent('variant:add', {\n                bubbles: true,\n                detail: { items: items, cart: cart }\n              })\n            );\n            /* cart:change \u5237\u65B0\u62BD\u5C49\u5185\u5BB9 */\n            document.documentElement.dispatchEvent(\n              new CustomEvent('cart:change', {\n                bubbles: true,\n                detail: { baseEvent: 'variant:add', cart: cart }\n              })\n            );\n          });\n      });\n  }\n\n  function bindStickyAddToCart() {\n    if (window.__comuStickyAddBound) return;\n    window.__comuStickyAddBound = true;\n\n    document.addEventListener('click', function (event) {\n      var btn = event.target.closest('[data-comu-sticky-add]');\n      if (!btn) return;\n\n      event.preventDefault();\n      if (btn.getAttribute('aria-busy') === 'true') return;\n\n      var variantId = btn.getAttribute('data-variant-id');\n      var quantity = parseInt(btn.getAttribute('data-quantity'), 10) || 1;\n      var fallbackHref = btn.getAttribute('href');\n\n      if (!variantId) {\n        if (fallbackHref) window.location.href = fallbackHref;\n        return;\n      }\n\n      btn.setAttribute('aria-busy', 'true');\n      addToCartAndReveal(variantId, quantity)\n        .then(function () {\n          btn.removeAttribute('aria-busy');\n        })\n        .catch(function () {\n          btn.removeAttribute('aria-busy');\n          if (fallbackHref) window.location.href = fallbackHref;\n        });\n    });\n  }\n\n  var drawerSyncCallbacks = [];\n  var drawerSyncReady = false;\n\n  function initDrawerSync(onChange) {\n    drawerSyncCallbacks.push(onChange);\n\n    function notify(isOpen) {\n      drawerSyncCallbacks.forEach(function (callback) {\n        callback(isOpen);\n      });\n    }\n\n    function bindCartDrawer(cartDrawer) {\n      if (!cartDrawer || cartDrawer.dataset.comuStickyDrawerBound === 'true') return false;\n      cartDrawer.dataset.comuStickyDrawerBound = 'true';\n\n      if ('MutationObserver' in window) {\n        var observer = new MutationObserver(function () {\n          notify(cartDrawer.hasAttribute('open'));\n        });\n        observer.observe(cartDrawer, { attributes: true, attributeFilter: ['open'] });\n      }\n\n      notify(cartDrawer.hasAttribute('open'));\n      return true;\n    }\n\n    if (!drawerSyncReady) {\n      drawerSyncReady = true;\n\n      document.addEventListener('dialog:after-show', function (event) {\n        if (event.target && event.target.id === 'cart-drawer') notify(true);\n      });\n      document.addEventListener('dialog:after-hide', function (event) {\n        if (event.target && event.target.id === 'cart-drawer') notify(false);\n      });\n\n      document.addEventListener('shopify:section:load', function (event) {\n        var cartDrawer = event.target.querySelector('#cart-drawer') || document.getElementById('cart-drawer');\n        if (bindCartDrawer(cartDrawer) && cartDrawer) {\n          notify(cartDrawer.hasAttribute('open'));\n        }\n      });\n    }\n\n    bindCartDrawer(document.getElementById('cart-drawer'));\n  }\n\n  function initStickyVisibility(root) {\n    var hideAtFooter = root.getAttribute('data-hide-at-footer') === 'true';\n    var displayMode = root.getAttribute('data-display-mode') || 'after_scroll';\n\n    var showAfter = parseInt(root.getAttribute('data-show-after'), 10);\n    if (isNaN(showAfter)) showAfter = 0;\n\n    var heroVisible;\n    var footerVisible = false;\n    var drawerOpen = false;\n    var stickyVisible = null;\n\n    function applyVisibility() {\n      var shouldShow = !heroVisible && !footerVisible && !drawerOpen;\n\n      root.classList.toggle('is-hidden-by-drawer', drawerOpen);\n\n      if (stickyVisible !== shouldShow) {\n        stickyVisible = shouldShow;\n\n        if (shouldShow) {\n          root.classList.remove('is-hidden-by-hero', 'is-hidden-by-footer');\n          document.body.classList.add('comu-has-sticky-bar');\n        } else {\n          root.classList.toggle('is-hidden-by-hero', heroVisible);\n          root.classList.toggle('is-hidden-by-footer', !heroVisible && footerVisible);\n          /* \u62BD\u5C49\u6253\u5F00\u65F6\u4FDD\u7559 padding-bottom\uFF0C\u907F\u514D\u5173\u62BD\u5C49\u65F6\u9875\u9762\u8DF3\u52A8 */\n          if (!drawerOpen) {\n            document.body.classList.remove('comu-has-sticky-bar');\n          }\n        }\n      }\n    }\n\n    initDrawerSync(function (isOpen) {\n      if (drawerOpen === isOpen) return;\n      drawerOpen = isOpen;\n      applyVisibility();\n    });\n\n    function observeTarget(target, onChange) {\n      if (!target) return;\n\n      if ('IntersectionObserver' in window) {\n        var observer = new IntersectionObserver(\n          function (entries) {\n            entries.forEach(function (entry) {\n              onChange(entry.isIntersecting);\n            });\n          },\n          {\n            threshold: 0,\n            rootMargin: '0px 0px -1px 0px'\n          }\n        );\n        observer.observe(target);\n        return;\n      }\n\n      function onScroll() {\n        var rect = target.getBoundingClientRect();\n        onChange(rect.top < window.innerHeight && rect.bottom > 0);\n      }\n\n      window.addEventListener('scroll', onScroll, { passive: true });\n      window.addEventListener('resize', onScroll);\n      onScroll();\n    }\n\n    if (displayMode === 'always_visible') {\n      heroVisible = false;\n    } else {\n      /* \u300C\u9996\u5C4F\u53C2\u7167\u7269\u300D\uFF1A\u53EA\u8981\u5B83\u8FD8\u5728\u89C6\u53E3\u91CC\uFF0C\u5C31\u8BF4\u660E\u7528\u6237\u8FD8\u6CA1\u5F80\u4E0B\u6ED1\uFF0C\u5438\u5E95\u680F\u4FDD\u6301\u9690\u85CF\u3002\n         \u539F\u6765\u53EA\u8BA4 comu-hero \u7684\u6309\u94AE\u7EC4\u2014\u2014\u9884\u70ED\u9875\u6709\u3001\u5546\u54C1\u9875\u6CA1\u6709\uFF0C\n         \u4E8E\u662F\u5546\u54C1\u9875 heroActions \u4E3A null\uFF0C\u76F4\u63A5\u5224\u5B9A\u300C\u5DF2\u79BB\u5F00\u9996\u5C4F\u300D\uFF0C\u4E00\u8FDB\u9875\u9762\u5C31\u5F39\u51FA\u6765\u3002\n         \u8FD9\u91CC\u6309\u4F18\u5148\u7EA7\u4F9D\u6B21\u627E\uFF1A\n           1. comu-hero \u7684\u6309\u94AE\u7EC4\uFF08\u9884\u70ED\u9875/\u9996\u9875\uFF0C\u884C\u4E3A\u4E0E\u4EE5\u524D\u5B8C\u5168\u4E00\u81F4\uFF09\n           2. \u5546\u54C1\u9875\u8D2D\u4E70\u533A\u7684\u52A0\u8D2D\u6309\u94AE\uFF08\u5438\u5E95\u680F\u672C\u6765\u5C31\u662F\u5B83\u6EDA\u8D70\u4E4B\u540E\u7684\u66FF\u8EAB\uFF09\n           3. \u90FD\u6CA1\u6709 \u2192 \u9000\u56DE\u6EDA\u52A8\u9608\u503C\uFF08data-show-after \u50CF\u7D20\uFF09 */\n      var anchorSelectors = [\n        '.shopify-section--comu-hero .hero-actions',\n        '[data-comu-hero-actions]',\n        '.product-info__buy-buttons',\n        '.product-info buy-buttons'\n      ];\n      var heroActions = null;\n      for (var ai = 0; ai < anchorSelectors.length; ai++) {\n        heroActions = document.querySelector(anchorSelectors[ai]);\n        if (heroActions) break;\n      }\n\n      heroVisible = Boolean(heroActions);\n\n      if (heroActions) {\n        /* \u5224\u636E\u662F\u300C\u53C2\u7167\u7269\u6709\u6CA1\u6709\u4ECE\u4E0A\u65B9\u6EDA\u8D70\u300D\uFF0C\u4E0D\u662F\u300C\u53C2\u7167\u7269\u53EF\u4E0D\u53EF\u89C1\u300D\u3002\n           \u4E24\u8005\u5728\u9884\u70ED\u9875\u7B49\u4EF7\uFF08hero \u5C31\u5728\u9875\u9876\uFF09\uFF0C\u4F46\u5728\u5546\u54C1\u9875\u5B8C\u5168\u4E0D\u540C\uFF1A\n           \u52A0\u8D2D\u6309\u94AE\u672C\u6765\u5C31\u4E0D\u5728\u9996\u5C4F\uFF0C\u7528\u300C\u53EF\u89C1\u624D\u9690\u85CF\u300D\u4F1A\u5F97\u5230\n           \u300C\u9996\u5C4F\u663E\u793A \u2192 \u6EDA\u5230\u6309\u94AE\u65F6\u9690\u85CF \u2192 \u6EDA\u8FC7\u53C8\u663E\u793A\u300D\u7684\u53CD\u5411\u884C\u4E3A\u3002\n           rect.bottom > 0 == \u53C2\u7167\u7269\u5E95\u8FB9\u8FD8\u6CA1\u8D8A\u8FC7\u89C6\u53E3\u9876\u90E8 == \u7528\u6237\u8FD8\u6CA1\u6ED1\u8FC7\u5B83 \u2192 \u4FDD\u6301\u9690\u85CF\u3002 */\n        var onAnchorScroll = function () {\n          var rect = heroActions.getBoundingClientRect();\n          var notPassed = rect.bottom > 0;\n          if (heroVisible === notPassed) return;\n          heroVisible = notPassed;\n          applyVisibility();\n        };\n        window.addEventListener('scroll', onAnchorScroll, { passive: true });\n        window.addEventListener('resize', onAnchorScroll);\n        onAnchorScroll();\n      } else if (showAfter > 0) {\n        /* \u6CA1\u6709\u4EFB\u4F55\u53C2\u7167\u7269\u65F6\u7684\u515C\u5E95\uFF1A\u6EDA\u52A8\u8D85\u8FC7\u8BBE\u5B9A\u50CF\u7D20\u624D\u663E\u793A */\n        heroVisible = true;\n        var onScrollThreshold = function () {\n          var past = (window.pageYOffset || document.documentElement.scrollTop) >= showAfter;\n          if (heroVisible === !past) return;\n          heroVisible = !past;\n          applyVisibility();\n        };\n        window.addEventListener('scroll', onScrollThreshold, { passive: true });\n        window.addEventListener('resize', onScrollThreshold);\n        onScrollThreshold();\n      } else {\n        heroVisible = false;\n      }\n    }\n\n    if (hideAtFooter) {\n      var footerTarget = document.querySelector('.shopify-section--footer');\n      observeTarget(footerTarget, function (isIntersecting) {\n        footerVisible = isIntersecting;\n        applyVisibility();\n      });\n    }\n\n    applyVisibility();\n  }\n\n  function detectPriceFormat(text) {\n    var s = String(text || '');\n    if (/,\\d{2}\\b/.test(s) && !/\\.\\d{2}\\b/.test(s)) {\n      if (/\\d[\\s\u00A0]\\d/.test(s)) return { decimal: ',', thousands: ' ' };\n      return { decimal: ',', thousands: '.' };\n    }\n    return { decimal: '.', thousands: ',' };\n  }\n\n  function parsePriceText(text) {\n    if (!text) return 0;\n    var cleaned = String(text).replace(/[^\\d.,]/g, '').trim();\n    if (!cleaned) return 0;\n    var fmt = detectPriceFormat(cleaned);\n    if (fmt.decimal === ',') {\n      if (/,\\d{1,2}$/.test(cleaned)) {\n        return Math.round(parseFloat(cleaned.replace(/\\./g, '').replace(',', '.')) * 100);\n      }\n      return parseInt(cleaned.replace(/[.,]/g, ''), 10) || 0;\n    }\n    if (/\\.\\d{1,2}$/.test(cleaned)) {\n      return Math.round(parseFloat(cleaned.replace(/,/g, '')) * 100);\n    }\n    return parseInt(cleaned.replace(/,/g, ''), 10) || 0;\n  }\n\n  function formatPriceLike(sample, amount) {\n    var fmt = detectPriceFormat(sample);\n    var hasDecimals = fmt.decimal === ','\n      ? /,\\d{2}\\b/.test(sample || '')\n      : /\\.\\d{2}\\b/.test(sample || '');\n    var formatted;\n    if (hasDecimals) {\n      var num = (amount / 100).toFixed(2);\n      var parts = num.split('.');\n      parts[0] = parts[0].replace(/\\B(?=(\\d{3})+(?!\\d))/g, fmt.thousands);\n      formatted = parts[0] + fmt.decimal + parts[1];\n    } else {\n      formatted = String(Math.round(amount)).replace(/\\B(?=(\\d{3})+(?!\\d))/g, fmt.thousands);\n    }\n    if (sample && /[\\d]/.test(sample)) return sample.replace(/\\d[\\d.,\\s\u00A0]*\\d|\\d/, formatted);\n    return formatted;\n  }\n\n  function visiblePriceText(el) {\n    if (!el) return '';\n    var clone = el.cloneNode(true);\n    Array.prototype.forEach.call(clone.querySelectorAll('.sr-only'), function (node) {\n      node.remove();\n    });\n    return clone.textContent.replace(/\\s+/g, ' ').trim();\n  }\n\n  function getProductPriceEl(kind) {\n    var kachingBar = document.querySelector('.kaching-bundles__bar--selected');\n    if (kachingBar) {\n      if (kind === 'compare') {\n        return kachingBar.querySelector('.kaching-bundles__bar-full-price');\n      }\n      return kachingBar.querySelector('.kaching-bundles__bar-price');\n    }\n\n    var scope = document.querySelector('.product-info');\n    if (!scope) return null;\n    if (kind === 'compare') {\n      return (\n        scope.querySelector('.product-info__price [data-kaching-price-compare]') ||\n        scope.querySelector('.product-info__price compare-at-price')\n      );\n    }\n    return (\n      scope.querySelector('.product-info__price [data-kaching-price]') ||\n      scope.querySelector('.product-info__price sale-price')\n    );\n  }\n\n  function selectedCarePrice() {\n    var checked = document.querySelector('[data-comu-care-option]:checked');\n    if (!checked) return 0;\n    var label = checked.closest('label');\n    var visible = label && label.querySelector('.comu-care__price');\n    if (visible) return parsePriceText(visible.textContent);\n    return 0;\n  }\n\n  function updateStickyPrice(root) {\n    var wrap = root.querySelector('[data-comu-sticky-price]');\n    if (!wrap) return;\n\n    var nowEl = wrap.querySelector('.sticky-price-now');\n    var wasEl = wrap.querySelector('.sticky-price-was');\n    if (!nowEl) return;\n\n    var buyNowEl = getProductPriceEl('now');\n    var buyWasEl = getProductPriceEl('compare');\n\n    var bundleNow =\n      parsePriceText(visiblePriceText(buyNowEl)) ||\n      parsePriceText(nowEl.textContent);\n\n    var bundleWas =\n      parsePriceText(visiblePriceText(buyWasEl)) ||\n      (wasEl && parsePriceText(wasEl.textContent)) ||\n      0;\n\n    var care = selectedCarePrice();\n    var now = bundleNow + care;\n    var was = bundleWas > bundleNow ? bundleWas + care : 0;\n    var sample = visiblePriceText(buyNowEl) || nowEl.textContent;\n\n    nowEl.textContent = formatPriceLike(sample, now);\n    wrap.classList.toggle('is-on-sale', was > now);\n\n    if (wasEl) {\n      if (was > now) {\n        wasEl.hidden = false;\n        wasEl.textContent = formatPriceLike(\n          visiblePriceText(buyWasEl) || wasEl.textContent || sample,\n          was\n        );\n      } else {\n        wasEl.hidden = true;\n      }\n    }\n  }\n\n  function initStickyPrice(root) {\n    if (root.dataset.comuStickyPriceReady === 'true') return;\n    if (!root.querySelector('[data-comu-sticky-price]')) return;\n    root.dataset.comuStickyPriceReady = 'true';\n\n    var scheduled = null;\n    function schedule() {\n      if (scheduled) return;\n      scheduled = requestAnimationFrame(function () {\n        scheduled = null;\n        updateStickyPrice(root);\n      });\n    }\n\n    document.addEventListener('change', function (event) {\n      if (event.target && event.target.matches('[data-comu-care-option]')) schedule();\n    });\n\n    document.addEventListener('click', function (event) {\n      if (event.target.closest('[class*=\"kaching\"], kaching-bundles-block, kaching-bundles-bar')) {\n        schedule();\n        setTimeout(schedule, 80);\n        setTimeout(schedule, 240);\n      }\n    });\n\n    var priceRoot = document.querySelector('.product-info .product-info__price');\n    if ('MutationObserver' in window && priceRoot) {\n      var observer = new MutationObserver(schedule);\n      observer.observe(priceRoot, { childList: true, subtree: true, characterData: true });\n    }\n\n    var kachingRoot = document.querySelector('.kaching-bundles__bars');\n    if ('MutationObserver' in window && kachingRoot) {\n      var kachingObserver = new MutationObserver(schedule);\n      kachingObserver.observe(kachingRoot, { childList: true, subtree: true, attributes: true, characterData: true });\n    }\n\n    schedule();\n    setTimeout(schedule, 400);\n  }\n\n  function initStickyBar(root) {\n    if (!root || root.dataset.comuStickyBarReady === 'true') return;\n\n    initStickyVisibility(root);\n    initStickyPrice(root);\n    root.dataset.comuStickyBarReady = 'true';\n  }\n\n  function boot() {\n    bindStickyAddToCart();\n    document.querySelectorAll('[data-comu-sticky-bar]').forEach(initStickyBar);\n  }\n\n  if (document.readyState === 'loading') {\n    document.addEventListener('DOMContentLoaded', boot);\n  } else {\n    boot();\n  }\n\n  document.addEventListener('shopify:section:load', boot);\n})();\n"],
  "mappings": "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",
  "names": []
}
