{
  "version": 3,
  "sources": ["/cdn/shop/t/2/assets/ipax-header-search.js?ipax=2"],
  "sourcesContent": ["/**\n * Sugest\u00F5es ao digitar na busca do header TCA (sem precisar apertar Enter).\n */\n(function () {\n  const form = document.querySelector('[data-ipax-header-search]');\n  if (!form) return;\n\n  const wrap = form.closest('.ipax-header__search-wrap');\n  const input = form.querySelector('.ipax-header__search-input');\n  const panel = document.getElementById('ipax-header-suggest');\n  if (!wrap || !input || !panel) return;\n\n  const suggestBase = form.getAttribute('data-suggest-url') || '/search/suggest';\n  const searchUrl = form.getAttribute('data-search-url') || '/search';\n  let timer = 0;\n  let lastQuery = '';\n  let activeIndex = -1;\n  let abortCtrl = null;\n\n  function escapeHtml(value) {\n    return String(value || '')\n      .replace(/&/g, '&amp;')\n      .replace(/</g, '&lt;')\n      .replace(/>/g, '&gt;')\n      .replace(/\"/g, '&quot;');\n  }\n\n  function formatMoney(raw) {\n    if (raw == null || raw === '') return '';\n    const n = Number(String(raw).replace(',', '.'));\n    if (!Number.isFinite(n)) return '';\n    return n.toLocaleString('pt-BR', { style: 'currency', currency: 'BRL' });\n  }\n\n  function imageUrl(product) {\n    const img = product.featured_image || product.image;\n    let url = '';\n    if (img && typeof img === 'object') url = img.url || '';\n    else if (typeof img === 'string') url = img;\n    if (!url) return '';\n    if (url.indexOf('//') === 0) url = 'https:' + url;\n    return url + (url.indexOf('?') === -1 ? '?' : '&') + 'width=96';\n  }\n\n  function closePanel() {\n    panel.hidden = true;\n    panel.innerHTML = '';\n    input.setAttribute('aria-expanded', 'false');\n    wrap.classList.remove('has-suggest');\n    activeIndex = -1;\n  }\n\n  function items() {\n    return Array.from(panel.querySelectorAll('[data-suggest-item]'));\n  }\n\n  function setActive(index) {\n    const nodes = items();\n    if (!nodes.length) return;\n    activeIndex = ((index % nodes.length) + nodes.length) % nodes.length;\n    nodes.forEach((el, i) => {\n      el.classList.toggle('is-active', i === activeIndex);\n      if (i === activeIndex) el.setAttribute('aria-selected', 'true');\n      else el.removeAttribute('aria-selected');\n    });\n  }\n\n  function render(query, data) {\n    const results = (data && data.resources && data.resources.results) || {};\n    const products = results.products || [];\n    const q = escapeHtml(query);\n\n    if (!products.length) {\n      panel.innerHTML =\n        '<p class=\"ipax-header__suggest-empty\">Nenhum jogo encontrado para \u201C' +\n        q +\n        '\u201D. Aperte Enter para buscar.</p>';\n      panel.hidden = false;\n      wrap.classList.add('has-suggest');\n      input.setAttribute('aria-expanded', 'true');\n      return;\n    }\n\n    let html = '';\n    html += '<p class=\"ipax-header__suggest-label\">Jogos</p><ul class=\"ipax-header__suggest-products\">';\n      products.slice(0, 8).forEach((product) => {\n        const href = product.url || '#';\n        const title = product.title || '';\n        const img = imageUrl(product);\n        const price = formatMoney(product.price);\n        const available = product.available !== false;\n        html +=\n          '<li><a data-suggest-item class=\"ipax-header__suggest-product\" href=\"' +\n          escapeHtml(href) +\n          '\">';\n        if (img) {\n          html +=\n            '<img src=\"' +\n            escapeHtml(img) +\n            '\" alt=\"\" width=\"48\" height=\"48\" loading=\"lazy\">';\n        } else {\n          html += '<span class=\"ipax-header__suggest-ph\" aria-hidden=\"true\"></span>';\n        }\n        html +=\n          '<span class=\"ipax-header__suggest-meta\"><span class=\"ipax-header__suggest-title\">' +\n          escapeHtml(title) +\n          '</span>';\n        if (price) {\n          html +=\n            '<span class=\"ipax-header__suggest-price\">' +\n            escapeHtml(price) +\n            (available ? '' : ' \u00B7 Indispon\u00EDvel') +\n            '</span>';\n        }\n        html += '</span></a></li>';\n      });\n    html += '</ul>';\n\n    html +=\n      '<a class=\"ipax-header__suggest-all\" href=\"' +\n      escapeHtml(searchUrl + '?q=' + encodeURIComponent(query) + '&type=product') +\n      '\">Ver todos os resultados</a>';\n\n    panel.innerHTML = html;\n    panel.hidden = false;\n    wrap.classList.add('has-suggest');\n    input.setAttribute('aria-expanded', 'true');\n    activeIndex = -1;\n  }\n\n  async function fetchSuggest(query) {\n    if (abortCtrl) abortCtrl.abort();\n    abortCtrl = new AbortController();\n    const url =\n      suggestBase +\n      '.json?q=' +\n      encodeURIComponent(query) +\n      '&resources[type]=product&resources[limit]=8&resources[options][unavailable_products]=last';\n    const res = await fetch(url, {\n      headers: { Accept: 'application/json' },\n      credentials: 'same-origin',\n      signal: abortCtrl.signal,\n    });\n    if (!res.ok) throw new Error('suggest ' + res.status);\n    return res.json();\n  }\n\n  function schedule() {\n    const query = String(input.value || '').trim();\n    window.clearTimeout(timer);\n    if (query.length < 2) {\n      lastQuery = '';\n      closePanel();\n      return;\n    }\n    timer = window.setTimeout(async () => {\n      if (query === lastQuery && !panel.hidden) return;\n      lastQuery = query;\n      try {\n        const data = await fetchSuggest(query);\n        if (String(input.value || '').trim() !== query) return;\n        render(query, data);\n      } catch (err) {\n        if (err && err.name === 'AbortError') return;\n        closePanel();\n      }\n    }, 180);\n  }\n\n  input.addEventListener('input', schedule);\n  input.addEventListener('focus', () => {\n    if (String(input.value || '').trim().length >= 2) schedule();\n  });\n\n  input.addEventListener('keydown', (event) => {\n    if (panel.hidden) return;\n    const nodes = items();\n    if (event.key === 'ArrowDown') {\n      event.preventDefault();\n      setActive(activeIndex + 1);\n    } else if (event.key === 'ArrowUp') {\n      event.preventDefault();\n      setActive(activeIndex - 1);\n    } else if (event.key === 'Enter' && activeIndex >= 0 && nodes[activeIndex]) {\n      event.preventDefault();\n      nodes[activeIndex].click();\n    } else if (event.key === 'Escape') {\n      closePanel();\n    }\n  });\n\n  document.addEventListener('click', (event) => {\n    if (!wrap.contains(event.target)) closePanel();\n  });\n})();\n"],
  "mappings": "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",
  "names": []
}
