{
  "version": 3,
  "sources": ["/cdn/shop/t/7/assets/custom-cart-refresh.js"],
  "sourcesContent": ["(async () => {\n  const STORAGE_KEYS = {\n    hadGuestCart: 'il_had_guest_cart',\n    cartRefreshedAfterLogin: 'il_cart_refreshed_after_login',\n    lastCustomerTags: 'il_last_customer_tags',\n    cartRefreshedAfterTagInit: 'il_cart_refreshed_after_tag_init',\n    drawerRecalcLastTs: 'il_drawer_recalc_last_ts'\n  };\n\n  const PENDING_CLASS = 'il-cart-recalc-pending';\n  const FETCH_TIMEOUT_MS = {\n    cartJs: 12000,\n    updateJs: 15000\n  };\n\n  function setRecalcPending(on) {\n    var root = document.documentElement;\n    var main = document.getElementById('main');\n    if (on) {\n      root.classList.add(PENDING_CLASS);\n      if (main) main.setAttribute('aria-busy', 'true');\n    } else {\n      root.classList.remove(PENDING_CLASS);\n      if (main) main.removeAttribute('aria-busy');\n    }\n  }\n\n  function fetchWithTimeout(url, options, timeoutMs) {\n    if (typeof AbortSignal !== 'undefined' && AbortSignal.timeout) {\n      return fetch(url, {\n        ...options,\n        signal: AbortSignal.timeout(timeoutMs)\n      });\n    }\n    var ctrl = new AbortController();\n    var id = setTimeout(function () {\n      ctrl.abort();\n    }, timeoutMs);\n    return fetch(url, { ...options, signal: ctrl.signal }).finally(function () {\n      clearTimeout(id);\n    });\n  }\n\n  function isCustomerLoggedIn() {\n    return document.documentElement.dataset.customerLoggedIn === 'true';\n  }\n\n  /**\n   * \u672A\u30ED\u30B0\u30A4\u30F3\u4E2D\u306B\u30AB\u30FC\u30C8\u304C\u5909\u308F\u3063\u305F\u3053\u3068\u3092\u8A18\u9332\u3059\u308B\u3002\n   * \u30DA\u30FC\u30B8\u672A\u30EA\u30ED\u30FC\u30C9\u306EAjax\u30AB\u30FC\u30C8\u30A4\u30F3\u3060\u3051\u3060\u3068\u521D\u671F getCart \u3067\u306F hadGuestCart \u304C\u7ACB\u305F\u305A\u3001\n   * \u30ED\u30B0\u30A4\u30F3\u76F4\u5F8C\u306B\u81EA\u52D5\u30C7\u30A3\u30B9\u30AB\u30A6\u30F3\u30C8\u518D\u8A08\u7B97\u304C\u30B9\u30AD\u30C3\u30D7\u3055\u308C\u308B\u305F\u3081\u3002\n   */\n  function markGuestHadCartFromCart(cart) {\n    if (isCustomerLoggedIn()) return;\n    const n = cart && typeof cart.item_count === 'number' ? cart.item_count : 0;\n    if (n > 0) sessionStorage.setItem(STORAGE_KEYS.hadGuestCart, 'true');\n  }\n\n  const isLoggedIn = isCustomerLoggedIn();\n  const currentCustomerTags = (document.documentElement.dataset.customerTags || '').trim();\n\n  async function getCart() {\n    const res = await fetchWithTimeout(\n      '/cart.js',\n      {\n        credentials: 'same-origin',\n        headers: { Accept: 'application/json' }\n      },\n      FETCH_TIMEOUT_MS.cartJs\n    );\n    if (!res.ok) throw new Error('Failed to fetch cart');\n    return await res.json();\n  }\n\n  window.addEventListener(\n    'cart:updated',\n    function () {\n      if (isCustomerLoggedIn()) return;\n      getCart()\n        .then(markGuestHadCartFromCart)\n        .catch(function () {});\n    },\n    true\n  );\n\n  document.addEventListener(\n    'cart:change',\n    function (e) {\n      if (isCustomerLoggedIn()) return;\n      var c = e.detail && e.detail.cart;\n      markGuestHadCartFromCart(c);\n    },\n    true\n  );\n\n  async function touchCartForRecalculation() {\n    const res = await fetchWithTimeout(\n      '/cart/update.js',\n      {\n        method: 'POST',\n        credentials: 'same-origin',\n        headers: {\n          'Content-Type': 'application/json',\n          Accept: 'application/json'\n        },\n        body: JSON.stringify({\n          attributes: {\n            _customer_login_refresh: String(Date.now())\n          }\n        })\n      },\n      FETCH_TIMEOUT_MS.updateJs\n    );\n\n    if (!res.ok) throw new Error('Failed to update cart');\n    return await res.json();\n  }\n\n  function isCartTemplatePage() {\n    if (\n      window.themeVariables &&\n      window.themeVariables.settings &&\n      window.themeVariables.settings.pageType === 'cart'\n    ) {\n      return true;\n    }\n    var p = window.location.pathname || '';\n    return p === '/cart' || p === '/cart/';\n  }\n\n  async function refreshPrestigeCartUI() {\n    // \u30AB\u30FC\u30C8\u30DA\u30FC\u30B8\u306F\u30D5\u30EB\u30DA\u30FC\u30B8\u518D\u8AAD\u8FBC\u3067\u5341\u5206\u3002\n    if (isCartTemplatePage()) {\n      window.location.reload();\n      return;\n    }\n\n    // CartDrawer \u306F cart:refresh \u3067 section HTML \u3092\u518D\u53D6\u5F97\u3059\u308B\u3002\u76F4\u5F8C\u306E await getCart + cart:change \u306F\n    // \u30CD\u30C3\u30C8\u5F80\u5FA9\u304C\u5897\u3048\u30C9\u30ED\u30EF\u30FC\u66F4\u65B0\u304C\u9045\u308C\u308B\u305F\u3081\u884C\u308F\u306A\u3044\uFF08variant:add \u7B49\u306F\u30C6\u30FC\u30DE\u304C\u65E2\u306B cart:change \u3092\u98DB\u3070\u3059\uFF09\u3002\n    document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true }));\n    document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true }));\n\n    window.dispatchEvent(new CustomEvent('cart:updated', { bubbles: true }));\n\n    const drawer = document.querySelector('cart-drawer');\n    if (drawer && typeof drawer.show === 'function' && drawer.open) {\n      drawer.show();\n    }\n\n    if (!drawer) {\n      const startedAt = Date.now();\n      const obs = new MutationObserver(() => {\n        const d = document.querySelector('cart-drawer');\n        if (!d) return;\n        obs.disconnect();\n        document.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true }));\n        document.documentElement.dispatchEvent(new CustomEvent('cart:refresh', { bubbles: true }));\n      });\n\n      obs.observe(document.body, { childList: true, subtree: true });\n      setTimeout(() => {\n        try { obs.disconnect(); } catch (e) {}\n      }, Math.max(0, 2000 - (Date.now() - startedAt)));\n    }\n  }\n\n  // Drawer \u3092\u958B\u3044\u305F\u30BF\u30A4\u30DF\u30F3\u30B0\u3067\u3082\u78BA\u5B9F\u306B\u518D\u8A08\u7B97\u3059\u308B\uFF08\u30BF\u30B0\u5909\u66F4\u304C\u540C\u4E00\u30DA\u30FC\u30B8\u3067\u53CD\u6620\u3055\u308C\u306A\u3044\u305F\u3081\uFF09\n  const DRAWER_RECALC_THROTTLE_MS = 60 * 1000;\n  async function recalcForDrawerOpen() {\n    if (!isLoggedIn) return;\n    if (window.__CART_REFRESH_RUNNING__) return;\n\n    const now = Date.now();\n    const lastTs = parseInt(sessionStorage.getItem(STORAGE_KEYS.drawerRecalcLastTs) || '0', 10);\n    if (lastTs && now - lastTs < DRAWER_RECALC_THROTTLE_MS) return;\n    sessionStorage.setItem(STORAGE_KEYS.drawerRecalcLastTs, String(now));\n\n    window.__CART_REFRESH_RUNNING__ = true;\n    try {\n      // \u5148\u306B\u30C9\u30ED\u30EF\u30FC HTML \u3092\u66F4\u65B0\u3057\u3066\u304B\u3089\u5C5E\u6027\u30BF\u30C3\u30C1\uFF08\u4F53\u611F\u3092\u512A\u5148\u3002\u5272\u5F15\u306F\u7D9A\u304F\u30EA\u30AF\u30A8\u30B9\u30C8\u3067\u8FFD\u968F\uFF09\n      await refreshPrestigeCartUI();\n      touchCartForRecalculation()\n        .then(function () {\n          return refreshPrestigeCartUI();\n        })\n        .catch(function () {});\n    } finally {\n      window.__CART_REFRESH_RUNNING__ = false;\n    }\n  }\n\n  function wireDrawerOpenListener(drawerEl) {\n    if (!drawerEl) return;\n    // open \u5C5E\u6027\u306E\u5909\u66F4\u3092\u30C8\u30EA\u30AC\u30FC\u306B\u3059\u308B\uFF08cart-drawer \u306F Drawer \u30B3\u30F3\u30DD\u30FC\u30CD\u30F3\u30C8\uFF09\n    var mo = new MutationObserver(function () {\n      if (drawerEl.open || drawerEl.hasAttribute('open')) {\n        recalcForDrawerOpen();\n      }\n    });\n    mo.observe(drawerEl, { attributes: true, attributeFilter: ['open'] });\n\n    // \u65E2\u306B\u958B\u3044\u3066\u3044\u308B\u5834\u5408\n    if (drawerEl.open || drawerEl.hasAttribute('open')) {\n      recalcForDrawerOpen();\n    }\n  }\n\n  // \u65E2\u5B58\u306E cart-drawer \u304C\u7121\u3044\u5834\u5408\u306B\u3082\u5BFE\u5FDC\u3057\u3066 DOM \u6295\u5165\u5F8C\u306B\u914D\u7DDA\n  (function setupDrawerListener() {\n    var existing = document.querySelector('cart-drawer');\n    if (existing) {\n      wireDrawerOpenListener(existing);\n      return;\n    }\n\n    var rootMo = new MutationObserver(function () {\n      var d = document.querySelector('cart-drawer');\n      if (!d) return;\n      rootMo.disconnect();\n      wireDrawerOpenListener(d);\n    });\n\n    rootMo.observe(document.body, { childList: true, subtree: true });\n  })();\n\n  try {\n    const cart = await getCart();\n    const hasItems = cart.item_count > 0;\n\n    if (!isLoggedIn) {\n      if (hasItems) {\n        sessionStorage.setItem(STORAGE_KEYS.hadGuestCart, 'true');\n      } else {\n        sessionStorage.removeItem(STORAGE_KEYS.hadGuestCart);\n      }\n      sessionStorage.removeItem(STORAGE_KEYS.cartRefreshedAfterLogin);\n      sessionStorage.removeItem(STORAGE_KEYS.lastCustomerTags);\n      sessionStorage.removeItem(STORAGE_KEYS.cartRefreshedAfterTagInit);\n      return;\n    }\n\n    const hadGuestCart = sessionStorage.getItem(STORAGE_KEYS.hadGuestCart) === 'true';\n    const alreadyRefreshed =\n      sessionStorage.getItem(STORAGE_KEYS.cartRefreshedAfterLogin) === 'true';\n\n    const prevCustomerTags = sessionStorage.getItem(STORAGE_KEYS.lastCustomerTags);\n    const tagsKnown = prevCustomerTags !== null;\n    const tagsChanged = tagsKnown && prevCustomerTags !== currentCustomerTags;\n\n    const shouldRefreshForLogin = hadGuestCart && hasItems && !alreadyRefreshed;\n    const shouldRefreshForTagChange = tagsChanged && hasItems;\n    // \u30BF\u30B0\u306E\u30D9\u30FC\u30B9\u30E9\u30A4\u30F3\u304C sessionStorage \u306B\u7121\u3044\u5834\u5408\u3067\u3082\u3001\n    // \u300C\u4ECA\u306E\u30BF\u30B0\u300D\u524D\u63D0\u3067\u4E00\u5EA6 cart \u3092\u518D\u8A08\u7B97\u3057\u3066\u304A\u304F\uFF08\u521D\u56DE\u8A2A\u554F\u3067\u53D6\u308A\u3053\u307C\u3059\u306E\u3092\u9632\u3050\uFF09\n    const shouldRefreshForTagInit = !tagsKnown && hasItems && sessionStorage.getItem(STORAGE_KEYS.cartRefreshedAfterTagInit) !== 'true';\n\n    if (!shouldRefreshForLogin && !shouldRefreshForTagChange && !shouldRefreshForTagInit) return;\n\n    if (shouldRefreshForLogin) {\n      sessionStorage.setItem(STORAGE_KEYS.cartRefreshedAfterLogin, 'true');\n    }\n\n    // \u30D9\u30FC\u30B9\u30E9\u30A4\u30F3\uFF08\u6BD4\u8F03\u5143\uFF09\u3092\u66F4\u65B0\n    sessionStorage.setItem(STORAGE_KEYS.lastCustomerTags, currentCustomerTags);\n\n    if (shouldRefreshForTagInit) {\n      sessionStorage.setItem(STORAGE_KEYS.cartRefreshedAfterTagInit, 'true');\n    }\n    if (shouldRefreshForTagChange) {\n      sessionStorage.setItem(STORAGE_KEYS.lastCustomerTags, currentCustomerTags);\n    }\n\n    window.__CART_REFRESH_RUNNING__ = true;\n\n    var showCartPending = isCartTemplatePage();\n    if (showCartPending) setRecalcPending(true);\n\n    try {\n      await touchCartForRecalculation();\n      await refreshPrestigeCartUI();\n    } catch (innerErr) {\n      if (showCartPending) setRecalcPending(false);\n      throw innerErr;\n    }\n\n    window.__CART_REFRESH_RUNNING__ = false;\n  } catch (error) {\n    console.error('[custom-cart-refresh] error:', error);\n    window.__CART_REFRESH_RUNNING__ = false;\n    setRecalcPending(false);\n    sessionStorage.removeItem(STORAGE_KEYS.cartRefreshedAfterLogin);\n  }\n})();"],
  "mappings": "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",
  "names": []
}
