{
  "version": 3,
  "sources": ["/cdn/shop/t/1/assets/ipax-alphazz-checkout.js?ipax=5"],
  "sourcesContent": ["/**\r\n * Checkout Alphazz \u2014 chamada direta \u00E0 API + intercepta\u00E7\u00E3o do bot\u00E3o do carrinho.\r\n * N\u00E3o depende s\u00F3 do redirect.js da Alphazz (Horizon coloca o bot\u00E3o fora do <form>).\r\n */\r\n(function () {\r\n  const CHECKOUT_API = 'https://checkout.ipaxgames.com.br/api/shopify/checkout';\r\n  const BOUND_ATTR = 'data-ipax-alphazz-bound';\r\n\r\n  function shopRoot() {\r\n    return (window.Shopify && window.Shopify.routes && window.Shopify.routes.root) || '/';\r\n  }\r\n\r\n  function rootPath(path) {\r\n    const root = shopRoot().replace(/\\/?$/, '/');\r\n    return root + String(path || '').replace(/^\\//, '');\r\n  }\r\n\r\n  function normalizeVariantTitle(title) {\r\n    const value = String(title || '').trim();\r\n    if (!value || value === 'Default Title') return '';\r\n    return value;\r\n  }\r\n\r\n  function variantLabelFromItem(item, variant) {\r\n    const fromCart =\r\n      normalizeVariantTitle(item.variant_title) ||\r\n      (Array.isArray(item.variant_options) ? item.variant_options.filter(Boolean).join(' / ') : '');\r\n\r\n    if (fromCart) return fromCart;\r\n\r\n    if (variant) {\r\n      const fromProduct = normalizeVariantTitle(variant.title || variant.public_title);\r\n      if (fromProduct) return fromProduct;\r\n\r\n      const options = [variant.option1, variant.option2, variant.option3]\r\n        .map(normalizeVariantTitle)\r\n        .filter(Boolean);\r\n      if (options.length) return options.join(' / ');\r\n    }\r\n\r\n    return '';\r\n  }\r\n\r\n  function formatItemDisplayTitle(item, variantLabel) {\r\n    const productTitle = String(item.product_title || item.title || '').trim();\r\n    const variantTitle = variantLabel || variantLabelFromItem(item);\r\n\r\n    if (productTitle && variantTitle) {\r\n      const productLower = productTitle.toLowerCase();\r\n      const variantLower = variantTitle.toLowerCase();\r\n      if (productLower.includes(variantLower)) return productTitle;\r\n      return `${productTitle} \u2014 ${variantTitle}`;\r\n    }\r\n\r\n    return productTitle || variantTitle || String(item.title || '').trim();\r\n  }\r\n\r\n  async function buildCartPayload() {\r\n    const cartResponse = await fetch(rootPath('cart.js'), {\r\n      headers: { Accept: 'application/json' },\r\n      credentials: 'same-origin',\r\n    });\r\n\r\n    if (!cartResponse.ok) {\r\n      throw new Error('N\u00E3o foi poss\u00EDvel ler o carrinho.');\r\n    }\r\n\r\n    const cart = await cartResponse.json();\r\n    if (!cart.items || !cart.items.length) {\r\n      throw new Error('Carrinho vazio.');\r\n    }\r\n\r\n    const items = await Promise.all(\r\n      cart.items.map(async (item) => {\r\n        let comparePrice = null;\r\n        let inventoryQty = null;\r\n        let updatedAt = null;\r\n        let variant = null;\r\n\r\n        try {\r\n          const productResponse = await fetch(rootPath('products/' + item.handle + '.js'), {\r\n            headers: { Accept: 'application/json' },\r\n            credentials: 'same-origin',\r\n          });\r\n\r\n          if (productResponse.ok) {\r\n            const product = await productResponse.json();\r\n            variant = product.variants.find((entry) => entry.id === item.variant_id) || null;\r\n\r\n            if (variant) {\r\n              comparePrice = variant.compare_at_price || null;\r\n              inventoryQty = variant.inventory_quantity;\r\n              updatedAt =\r\n                variant.updated_at ||\r\n                product.updated_at ||\r\n                product.published_at ||\r\n                new Date().toISOString();\r\n            }\r\n          }\r\n        } catch (error) {\r\n          console.warn('[iPax Alphazz] produto', item.handle, error);\r\n        }\r\n\r\n        const variantLabel = variantLabelFromItem(item, variant);\r\n        const productTitle = String(item.product_title || item.title || '').trim();\r\n\r\n        return {\r\n          product_id: item.product_id,\r\n          variant_id: item.variant_id,\r\n          quantity: item.quantity,\r\n          title: formatItemDisplayTitle(item, variantLabel),\r\n          product_title: productTitle,\r\n          variant_title: variantLabel,\r\n          variant: variantLabel,\r\n          variant_options: Array.isArray(item.variant_options)\r\n            ? item.variant_options.filter(Boolean)\r\n            : [],\r\n          option1: variant?.option1 || null,\r\n          option2: variant?.option2 || null,\r\n          option3: variant?.option3 || null,\r\n          price: item.final_price || item.price,\r\n          compare_price: comparePrice,\r\n          image: item.image,\r\n          sku: item.sku || null,\r\n          updated_at: updatedAt,\r\n          inventory_quantity: inventoryQty,\r\n        };\r\n      })\r\n    );\r\n\r\n    return {\r\n      shop: (window.Shopify && window.Shopify.shop) || window.location.hostname,\r\n      cart: items,\r\n      query_params: Object.fromEntries(new URLSearchParams(window.location.search).entries()),\r\n      log_generate:\r\n        'URL: ' +\r\n        window.location.href +\r\n        ' - Referrer: ' +\r\n        (document.referrer || 'Direto (sem origem)') +\r\n        ' - iPax checkout',\r\n    };\r\n  }\r\n\r\n  window.ipaxGoToAlphazzCheckout = async function ipaxGoToAlphazzCheckout() {\r\n    const payload = await buildCartPayload();\r\n\r\n    const response = await fetch(CHECKOUT_API, {\r\n      method: 'POST',\r\n      headers: { 'Content-Type': 'application/json' },\r\n      body: JSON.stringify(payload),\r\n      credentials: 'omit',\r\n    });\r\n\r\n    const data = await response.json();\r\n    const checkoutUrl = data && data.data && data.data.url;\r\n\r\n    if (!checkoutUrl) {\r\n      throw new Error((data && data.message) || 'URL de checkout n\u00E3o retornada.');\r\n    }\r\n\r\n    window.location.href = checkoutUrl;\r\n  };\r\n\r\n  window.ipaxTriggerAlphazzCheckout = function ipaxTriggerAlphazzCheckout() {\r\n    window.ipaxGoToAlphazzCheckout().catch((error) => {\r\n      console.warn('[iPax Alphazz]', error);\r\n      window.location.assign(rootPath('checkout'));\r\n    });\r\n  };\r\n\r\n  function isProtectedBuyUi(el) {\r\n    if (!el || el.nodeType !== 1) return false;\r\n    return Boolean(\r\n      el.closest?.(\r\n        '[data-ipax-buy-button], [data-ipax-add-to-cart], #ipax-added-cart, [data-ipax-added-cart-checkout], [data-ipax-added-cart-close], [data-ipax-no-alphazz]'\r\n      )\r\n    );\r\n  }\r\n\r\n  function isCheckoutButton(el) {\r\n    if (!el || el.nodeType !== 1 || isProtectedBuyUi(el)) return false;\r\n    if (el.matches?.('button[name=\"checkout\"], #checkout, .cart__checkout-button, [data-ipax-alphazz-checkout]')) {\r\n      return true;\r\n    }\r\n    return Boolean(el.closest?.('button[name=\"checkout\"], #checkout, .cart__checkout-button, [data-ipax-alphazz-checkout]'));\r\n  }\r\n\r\n  function resolveCheckoutButton(target) {\r\n    if (!target || !target.closest || isProtectedBuyUi(target)) return null;\r\n    return target.closest(\r\n      'button[name=\"checkout\"], #checkout, .cart__checkout-button, [data-ipax-alphazz-checkout]'\r\n    );\r\n  }\r\n\r\n  async function onCheckoutClick(event) {\r\n    const button = resolveCheckoutButton(event.target);\r\n    if (!button || button.disabled) return;\r\n\r\n    event.preventDefault();\r\n    event.stopPropagation();\r\n    if (typeof event.stopImmediatePropagation === 'function') {\r\n      event.stopImmediatePropagation();\r\n    }\r\n\r\n    button.setAttribute('aria-busy', 'true');\r\n    try {\r\n      await window.ipaxGoToAlphazzCheckout();\r\n    } catch (error) {\r\n      console.warn('[iPax Alphazz] falha no checkout', error);\r\n      window.alert(\r\n        'N\u00E3o foi poss\u00EDvel abrir o checkout agora. Tente de novo em instantes.'\r\n      );\r\n    } finally {\r\n      button.removeAttribute('aria-busy');\r\n    }\r\n  }\r\n\r\n  function hardenButton(button) {\r\n    if (!button || button.getAttribute(BOUND_ATTR) === '1') return;\r\n    button.setAttribute(BOUND_ATTR, '1');\r\n    button.setAttribute('data-ipax-alphazz-checkout', '1');\r\n    // Evita submit nativo Shopify \u2192 /checkout\r\n    if (button.tagName === 'BUTTON') {\r\n      button.type = 'button';\r\n    }\r\n  }\r\n\r\n  function bindCheckoutButtons(root) {\r\n    const scope = root && root.querySelectorAll ? root : document;\r\n    scope\r\n      .querySelectorAll('button[name=\"checkout\"], #checkout, .cart__checkout-button, [data-ipax-alphazz-checkout]')\r\n      .forEach(hardenButton);\r\n  }\r\n\r\n  function boot() {\r\n    if (window.__ipaxAlphazzButtonsBooted) return;\r\n    window.__ipaxAlphazzButtonsBooted = true;\r\n\r\n    // Captura global (antes do submit nativo / redirect.js)\r\n    document.addEventListener(\r\n      'click',\r\n      function (event) {\r\n        if (!isCheckoutButton(event.target)) return;\r\n        onCheckoutClick(event);\r\n      },\r\n      true\r\n    );\r\n\r\n    bindCheckoutButtons(document);\r\n\r\n    if (typeof MutationObserver !== 'undefined') {\r\n      const observer = new MutationObserver(function (mutations) {\r\n        for (const mutation of mutations) {\r\n          for (const node of mutation.addedNodes) {\r\n            if (node.nodeType !== 1) continue;\r\n            if (isCheckoutButton(node)) hardenButton(node);\r\n            else bindCheckoutButtons(node);\r\n          }\r\n        }\r\n      });\r\n      observer.observe(document.documentElement, { childList: true, subtree: true });\r\n    }\r\n  }\r\n\r\n  if (document.readyState === 'loading') {\r\n    document.addEventListener('DOMContentLoaded', boot);\r\n  } else {\r\n    boot();\r\n  }\r\n})();\r\n"],
  "mappings": "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",
  "names": []
}
