{
  "version": 3,
  "sources": ["/cdn/shop/t/1/assets/mercadao-card-pricing.js?mv=2026061001"],
  "sourcesContent": ["/**\n * Atualiza pre\u00E7os dos cards Mercad\u00E3o ao trocar variante (swatch) \u2014 layout categoria ML.\n */\nimport { ThemeEvents } from '@theme/events';\nimport { formatMoney } from '@theme/money-formatting';\n\n/**\n * @param {HTMLElement} card\n */\nfunction getPricingRoot(card) {\n  return card.querySelector('[data-mercadao-pricing]');\n}\n\n/**\n * @param {number} priceCents\n * @param {number} installments\n */\nfunction installmentCents(priceCents, installments) {\n  const count = Math.max(1, installments);\n  return Math.round((priceCents + Math.floor(count / 2)) / count);\n}\n\n/**\n * @param {HTMLElement} card\n * @param {{ price: number, compare_at_price?: number | null }} variant\n */\nfunction updateCardPricing(card, variant) {\n  const meta = getPricingRoot(card);\n  if (!meta || !variant || variant.price == null) return;\n  const visible = meta;\n\n  const price = Number(variant.price);\n  const compare =\n    variant.compare_at_price && variant.compare_at_price > price ? Number(variant.compare_at_price) : null;\n  const pixPctNum = Number(meta.dataset.pixPercent || 5);\n  const pixPct = pixPctNum / 100;\n  const showPix = pixPctNum > 0;\n  const instCount = Number(meta.dataset.installmentCount || 10);\n  const moneyFormat = meta.dataset.moneyFormat || window.Theme?.moneyFormat || '{{amount}}';\n  const currency = meta.dataset.currency || window.Theme?.currency || 'BRL';\n\n  const pix = showPix ? Math.round(price * (1 - pixPct)) : price;\n  const displayCents = showPix ? pix : price;\n  const inst = installmentCents(price, instCount);\n\n  let discountPct = 0;\n  let showPixOffLabel = false;\n  if (compare && compare > displayCents) {\n    discountPct = Math.round(((compare - displayCents) * 100) / compare);\n    showPixOffLabel = showPix;\n  } else if (showPix) {\n    discountPct = pixPctNum;\n    showPixOffLabel = true;\n  }\n\n  const compareEl = visible.querySelector('[data-md-card-compare]');\n  const discountLabel = visible.querySelector('[data-md-card-discount-pill]');\n  const instEl = visible.querySelector('[data-md-card-installments]');\n  const wholeEl = visible.querySelector('[data-md-card-price-whole]');\n  const centsEl = visible.querySelector('[data-md-card-price-cents]');\n  const fullEl = visible.querySelector('[data-md-card-price-display]');\n  const unavailable = visible.querySelector('.ml-card-info__unavailable');\n\n  if (price <= 0) {\n    if (unavailable) unavailable.classList.remove('hidden');\n    visible.querySelector('.ml-card-info__price-row')?.classList.add('hidden');\n    instEl?.classList.add('hidden');\n    visible.querySelector('[data-md-card-shipping]')?.classList.add('hidden');\n    return;\n  }\n\n  if (unavailable) unavailable.classList.add('hidden');\n  visible.querySelector('.ml-card-info__price-row')?.classList.remove('hidden');\n\n  const whole = Math.floor(displayCents / 100);\n  const cents = displayCents % 100;\n  const centsStr = cents < 10 ? `0${cents}` : String(cents);\n\n  if (fullEl) {\n    fullEl.textContent = formatMoney(displayCents, moneyFormat, currency);\n  } else if (wholeEl && centsEl) {\n    wholeEl.textContent = String(whole);\n    centsEl.textContent = centsStr;\n  }\n\n  if (compareEl) {\n    if (compare) {\n      compareEl.textContent = formatMoney(compare, moneyFormat, currency);\n      compareEl.classList.remove('hidden');\n      compareEl.removeAttribute('hidden');\n    } else {\n      compareEl.classList.add('hidden');\n      compareEl.setAttribute('hidden', '');\n    }\n  }\n\n  const tplPixOff = meta.dataset.templatePixOff || '__PCT__% OFF no Pix';\n  if (discountLabel) {\n    if (discountPct > 0) {\n      discountLabel.textContent = showPixOffLabel\n        ? tplPixOff.replace('__PCT__', String(discountPct))\n        : `${discountPct}% OFF`;\n      discountLabel.classList.remove('hidden');\n      discountLabel.dataset.pixOffLabel = showPixOffLabel ? 'true' : 'false';\n    } else {\n      discountLabel.classList.add('hidden');\n    }\n  }\n\n  const tplInst = meta.dataset.templateInstallments || '';\n  if (instEl && tplInst) {\n    if (inst > 0) {\n      instEl.textContent = tplInst\n        .replace('__COUNT__', String(instCount))\n        .replace('__PRICE__', formatMoney(inst, moneyFormat, currency));\n      instEl.classList.remove('hidden');\n    } else {\n      instEl.classList.add('hidden');\n    }\n  }\n\n  const shipEl = visible.querySelector('[data-md-card-shipping]');\n  const freeMin = Number(shipEl?.dataset.freeShippingMin || 0);\n  if (shipEl) {\n    const qualifies = freeMin > 0 && price >= freeMin;\n    shipEl.textContent = qualifies ? shipEl.dataset.labelFree || '' : '';\n    shipEl.classList.toggle('hidden', !qualifies);\n  }\n\n  meta.dataset.variantPrice = String(price);\n  meta.dataset.variantCompare = String(compare || 0);\n  if (variant.id) meta.dataset.variantId = String(variant.id);\n}\n\ndocument.addEventListener(ThemeEvents.variantUpdate, (event) => {\n  const target = event.target;\n  if (!(target instanceof Element)) return;\n\n  const card = target.closest('product-card.mercadao-ml-card, product-card.mercadao-product-card');\n  if (!card || !event.detail?.resource) return;\n\n  updateCardPricing(card, event.detail.resource);\n});\n"],
  "mappings": "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",
  "names": []
}
