{
  "version": 3,
  "sources": ["/cdn/shop/t/8/assets/qs-credito-whatsapp.js?nc=1792432070152"],
  "sourcesContent": ["/*\n  Quality Sport - Medio de pago en el carrito\n  - Todos los pedidos del carrito se finalizan por WhatsApp: transferencia, tarjeta\n    (link de pago, recargo 5%), contraentrega, Addi (recargo 10%) y Sistecr\u00E9dito (5%).\n  - Contraentrega: sin recargo. El cliente paga por anticipado el valor del env\u00EDo\n    para confirmar el pedido y el resto al recibir. Si el env\u00EDo es gratis, el\n    anticipo se cobra igual y se descuenta del valor de las camisas.\n  Al tocar \"Finalizar pedido por WhatsApp\":\n    1. crearPedido le pide al script de pedidos (Apps Script) que registre el pedido\n       en Shopify (pago pendiente) y espera su n\u00FAmero, m\u00E1ximo CONFIG.pedidosEspera.\n    2. El mensaje de WhatsApp sale con ese n\u00FAmero (\"finalizar mi pedido #1016\").\n       Si el script no responde a tiempo, sale sin n\u00FAmero y el pedido entra igual.\n    3. notifyStore manda la copia por correo (aviso a la tienda y respaldo del\n       script, que no duplica pedidos).\n  Medici\u00F3n en Meta (p\u00EDxel QUALITY): al finalizar se env\u00EDa \"Lead\" con las camisas\n  (c\u00F3digo de variante = id del cat\u00E1logo), el valor y si es pedido (todo en mano)\n  o consulta (alguna por encargo). El mismo c\u00F3digo del evento viaja al script de\n  pedidos, que lo repite desde el servidor y env\u00EDa la \"Compra\" cuando el pedido\n  se marca como pagado en Shopify.\n*/\n(function () {\n  \"use strict\";\n\n  var CONFIG = {\n    whatsapp: \"573209920134\",\n    // Script de pedidos (Google Apps Script): crea el pedido en Shopify al instante.\n    pedidosUrl: \"https://script.google.com/macros/s/AKfycbxeqA6PTWzwwX3a8otSWPA6BNby7y9Nv-JsuyrlFhITUXE5LxWAmtjgW7nxz4FhBY65/exec\",\n    pedidosClave: \"qsWA-8f3k29xq\",\n    // M\u00E1ximo que el bot\u00F3n espera el n\u00FAmero del pedido antes de abrir WhatsApp sin \u00E9l (ms).\n    pedidosEspera: 10000,\n    shipping: { bogota: 10000, nacional: 20000, freeFrom: 200000 },\n    bogotaRegex: /bogot|soacha/i,\n    roundTo: 100,\n    excludeHandles: [\"recargo-pago-addi\"],\n    // msg: c\u00F3mo termina el saludo de WhatsApp (\"quiero finalizar mi pedido #1016 \u2026\"), solo con el\n    // nombre del medio de pago (el recargo va en el resumen del mensaje). La primera\n    // palabra en *negrilla* es el medio de pago que lee el script de pedidos.\n    methods: {\n      tarjeta: { label: \"Tarjeta d\u00E9bito o cr\u00E9dito\", sub: \"Recargo del 5% sobre productos y env\u00EDo. Te enviamos el link de pago por WhatsApp.\", rate: 0.05, link: true, msg: \"pagando con *tarjeta d\u00E9bito o cr\u00E9dito*. Quedo atento al link de pago.\" },\n      transferencia: { label: \"Transferencia\", sub: \"Bre-B, Nequi o Daviplata. Sin recargo.\", rate: 0, transfer: true, msg: \"pagando por *transferencia* (Bre-B, Nequi o Daviplata). Quedo atento a los datos para transferir.\" },\n      contraentrega: { label: \"Contraentrega\", sub: \"Pagas el env\u00EDo por anticipado para confirmar tu pedido y la camisa al recibirla. Sin recargo.\", rate: 0, cod: true, msg: \"con pago *contraentrega*.\" },\n      addi: { label: \"Addi\", sub: \"Paga a cuotas. Recargo del 10% sobre productos y env\u00EDo.\", rate: 0.1, msg: \"pagando con *Addi*. Quedo atento al link de pago.\" },\n      sistecredito: { label: \"Sistecr\u00E9dito\", sub: \"Paga a cuotas. Recargo del 5% sobre productos y env\u00EDo.\", rate: 0.05, msg: \"pagando con *Sistecr\u00E9dito*. Quedo atento al link de pago.\" }\n    },\n    storageKey: \"qsCreditoWA\"\n  };\n\n  /* ---------- C\u00E1lculos y mensaje de WhatsApp (tambi\u00E9n se prueban con Node) ---------- */\n\n  function money(pesos) {\n    var n = Math.round(Number(pesos) || 0);\n    return \"$\" + n.toString().replace(/\\B(?=(\\d{3})+(?!\\d))/g, \".\");\n  }\n\n  function shippingFor(city, productsTotal) {\n    if (productsTotal >= CONFIG.shipping.freeFrom) return { value: 0, label: \"gratis\" };\n    if (!city || !String(city).trim()) return { value: CONFIG.shipping.nacional, label: \"nacional\" };\n    if (CONFIG.bogotaRegex.test(city)) return { value: CONFIG.shipping.bogota, label: \"Bogot\u00E1\" };\n    return { value: CONFIG.shipping.nacional, label: \"nacional\" };\n  }\n\n  /* Anticipo de contraentrega: valor del envio segun la ciudad, aunque el envio sea gratis */\n  function codDeposit(city) {\n    return city && CONFIG.bogotaRegex.test(city) ? CONFIG.shipping.bogota : CONFIG.shipping.nacional;\n  }\n\n  function computeTotals(cart, method, city) {\n    var m = CONFIG.methods[method] || { rate: 0 };\n    var items = (cart.items || []).filter(function (i) { return CONFIG.excludeHandles.indexOf(i.handle) === -1; });\n    var products = items.reduce(function (s, i) { return s + i.final_line_price; }, 0) / 100;\n    var cartDiscount = 0;\n    if (cart.cart_level_discount_applications && cart.cart_level_discount_applications.length) {\n      cartDiscount = cart.cart_level_discount_applications.reduce(function (s, d) { return s + (d.total_allocated_amount || 0); }, 0) / 100;\n    }\n    var productsNet = Math.max(0, products - cartDiscount);\n    var ship = shippingFor(city, productsNet);\n    var rate = m.rate || 0;\n    var surcharge = rate ? Math.ceil((productsNet + ship.value) * rate / CONFIG.roundTo) * CONFIG.roundTo : 0;\n    var total = productsNet + ship.value + surcharge;\n    var deposit = m.cod ? Math.min(codDeposit(city), total) : 0;\n    return {\n      items: items,\n      products: products,\n      discount: cartDiscount,\n      productsNet: productsNet,\n      shipping: ship,\n      rate: rate,\n      surcharge: surcharge,\n      total: total,\n      cod: !!m.cod,\n      deposit: deposit,\n      onDelivery: total - deposit\n    };\n  }\n\n  function itemLines(item, idx) {\n    var lines = [];\n    lines.push(idx + 1 + \". \" + item.product_title);\n    var opts = (item.options_with_values || [])\n      .filter(function (o) { return o.value && o.value !== \"Default Title\"; })\n      .map(function (o) { return o.name + \": \" + o.value; });\n    if (opts.length) lines.push(\"   \" + opts.join(\" | \"));\n    var props = item.properties || {};\n    Object.keys(props).forEach(function (k) {\n      var v = props[k];\n      if (k.charAt(0) === \"_\" || v === null || v === undefined || String(v).trim() === \"\") return;\n      lines.push(\"   \" + k + \": \" + v);\n    });\n    lines.push(\"   Cantidad: \" + item.quantity + \" x \" + money(item.final_price / 100) + \" = \" + money(item.final_line_price / 100));\n    return lines.join(\"\\n\");\n  }\n\n  // pedido: n\u00FAmero que devolvi\u00F3 el script (ej. \"#1016\"); vac\u00EDo mientras no exista.\n  // Va sin negrilla porque el script toma la primera palabra en *negrilla* como medio de pago.\n  function buildMessage(cart, method, customer, pedido) {\n    var m = CONFIG.methods[method];\n    var t = computeTotals(cart, method, customer.ciudad);\n    var out = [];\n    var inm = [], cq = [];\n    var num = pedido ? \" \" + pedido : \"\";\n    t.items.forEach(function (it) { (stockOf(it.key) === \"cq\" ? cq : inm).push(it); });\n    // Todos dicen \"finalizar mi pedido\" (tambi\u00E9n Addi y Sistecr\u00E9dito): as\u00ED los reconoce el script de pedidos.\n    out.push(\"Hola Quality Sport, quiero finalizar mi pedido\" + num + \" \" + m.msg);\n    out.push(\"\");\n    out.push(\"*DATOS DEL CLIENTE*\");\n    out.push(\"Nombre: \" + customer.nombre);\n    out.push(\"Celular: \" + customer.celular);\n    if (customer.correo) out.push(\"Correo: \" + customer.correo);\n    out.push(\"Ciudad: \" + customer.ciudad);\n    out.push(\"Direcci\u00F3n: \" + customer.direccion);\n    out.push(\"\");\n    out.push(\"*PEDIDO*\");\n    if (cq.length) {\n      var n = 0;\n      if (inm.length) {\n        out.push(\"_Entrega inmediata:_\");\n        inm.forEach(function (it) { out.push(itemLines(it, n++)); });\n        out.push(\"\");\n      }\n      out.push(\"_Consultar disponibilidad (por favor confirmarme disponibilidad y tiempo de entrega):_\");\n      cq.forEach(function (it) { out.push(itemLines(it, n++)); });\n    } else {\n      t.items.forEach(function (it, i) { out.push(itemLines(it, i)); });\n    }\n    out.push(\"\");\n    out.push(\"*RESUMEN*\");\n    out.push(\"Productos: \" + money(t.products));\n    if (t.discount > 0) out.push(\"Descuento: -\" + money(t.discount));\n    out.push(\"Env\u00EDo (\" + t.shipping.label + \"): \" + (t.shipping.value ? money(t.shipping.value) : \"$0\"));\n    if (m.cod) {\n      out.push(\"*TOTAL DEL PEDIDO: \" + money(t.total) + \"*\");\n      out.push(\"\");\n      out.push(\"*PAGO CONTRAENTREGA*\");\n      out.push(t.shipping.value\n        ? \"Anticipo para confirmar el pedido (valor del env\u00EDo): \" + money(t.deposit)\n        : \"Abono para confirmar el pedido (se descuenta del total): \" + money(t.deposit));\n      out.push(\"Pago al recibir: \" + money(t.onDelivery));\n    } else {\n      if (t.rate) out.push(\"Recargo \" + m.label + \" (\" + Math.round(t.rate * 100) + \"%): \" + money(t.surcharge));\n      out.push(\"*TOTAL: \" + money(t.total) + \"*\");\n    }\n    if (cart.note) {\n      out.push(\"\");\n      out.push(\"Nota: \" + cart.note);\n    }\n    return out.join(\"\\n\");\n  }\n\n  function validate(c) {\n    var errors = [];\n    if (!c.nombre || c.nombre.trim().length < 3) errors.push(\"nombre\");\n    if (!/^3\\d{9}$/.test((c.celular || \"\").replace(/\\D/g, \"\").replace(/^57(?=3\\d{9}$)/, \"\"))) errors.push(\"celular\");\n    if (c.correo && !/^[^\\s@]+@[^\\s@]+\\.[^\\s@]+$/.test(c.correo.trim())) errors.push(\"correo\");\n    if (!c.ciudad || c.ciudad.trim().length < 3) errors.push(\"ciudad\");\n    if (!c.direccion || c.direccion.trim().length < 5) errors.push(\"direccion\");\n    return errors;\n  }\n\n  /* Para pruebas con Node */\n  if (typeof module !== \"undefined\" && module.exports) {\n    module.exports = { money: money, shippingFor: shippingFor, codDeposit: codDeposit, computeTotals: computeTotals, buildMessage: buildMessage, validate: validate, noteFor: noteFor, CONFIG: CONFIG };\n    return;\n  }\n\n  /* ---------- Formulario y resumen en el carrito ---------- */\n\n  var FIELDS = [\n    { k: \"ciudad\", label: \"Ciudad de entrega\", type: \"text\", auto: \"address-level2\" },\n    { k: \"nombre\", label: \"Nombre completo\", type: \"text\", auto: \"name\" },\n    { k: \"celular\", label: \"Celular (WhatsApp)\", type: \"tel\", auto: \"tel\", mode: \"tel\" },\n    { k: \"correo\", label: \"Correo (opcional)\", type: \"email\", auto: \"email\" },\n    { k: \"direccion\", label: \"Direcci\u00F3n, barrio y apto\", type: \"text\", auto: \"street-address\" }\n  ];\n  var ERR_TEXT = {\n    nombre: \"Escribe tu nombre completo.\",\n    celular: \"Escribe un celular de 10 d\u00EDgitos que empiece por 3.\",\n    correo: \"Revisa el correo.\",\n    ciudad: \"Escribe tu ciudad.\",\n    direccion: \"Escribe la direcci\u00F3n de entrega.\"\n  };\n  var state = load();\n  var cartCache = null;\n  var uid = 0;\n\n  function load() {\n    try {\n      return JSON.parse(localStorage.getItem(CONFIG.storageKey)) || { method: \"transferencia\", customer: {} };\n    } catch (e) {\n      return { method: \"transferencia\", customer: {} };\n    }\n  }\n\n  function save() {\n    try {\n      if (state.customer) delete state.customer.cedula;\n      localStorage.setItem(CONFIG.storageKey, JSON.stringify(state));\n    } catch (e) {}\n  }\n\n  function injectStyles() {\n    if (document.getElementById(\"qs-credito-style\")) return;\n    var st = document.createElement(\"style\");\n    st.id = \"qs-credito-style\";\n    st.textContent = [\n      \".qs-pago{width:100%;margin:16px 0 8px;font:inherit;color:inherit}\",\n      \".qs-pago fieldset{border:1px solid rgb(var(--color-foreground-rgb,0 0 0)/.18);border-radius:8px;padding:12px 14px;margin:0}\",\n      \".qs-pago legend{padding:0 6px;font-weight:600}\",\n      \".qs-pago__opt{display:flex;gap:10px;align-items:flex-start;padding:8px 2px;cursor:pointer;line-height:1.35}\",\n      \".qs-pago__opt+.qs-pago__opt{border-top:1px solid rgb(var(--color-foreground-rgb,0 0 0)/.08)}\",\n      \".qs-pago__opt input{margin:3px 0 0;accent-color:currentColor;flex:none}\",\n      \".qs-pago__sub{display:block;opacity:.7;font-size:.9em}\",\n      \".qs-pago__form{margin-top:12px;display:grid;gap:8px}\",\n      \".qs-pago__form label{display:grid;gap:4px;font-size:.9em}\",\n      \".qs-pago__form input{width:100%;box-sizing:border-box;padding:10px 12px;border-radius:6px;border:1px solid rgb(var(--color-foreground-rgb,0 0 0)/.25);background:transparent;color:inherit;font:inherit}\",\n      \".qs-pago__form input[aria-invalid=true]{border-color:#e5484d}\",\n      \".qs-pago__err{color:#e5484d;font-size:.85em;min-height:0}\",\n      \".qs-pago__sum{margin-top:10px;font-size:.92em;display:grid;gap:4px}\",\n      \".qs-pago__sum div{display:flex;justify-content:space-between;gap:12px}\",\n      \".qs-pago__sum .qs-total{font-weight:700;font-size:1.05em;border-top:1px solid rgb(var(--color-foreground-rgb,0 0 0)/.15);padding-top:6px}\",\n      \".qs-pago__sum .qs-cod{font-weight:600}\",\n      \".qs-pago__sum .qs-cod-first{margin-top:4px;padding-top:6px;border-top:1px dashed rgb(var(--color-foreground-rgb,0 0 0)/.2)}\",\n      \".qs-pago__note{margin:8px 0 0;font-size:.85em;opacity:.8}\",\n      \".qs-wa-btn{width:100%;display:flex;align-items:center;justify-content:center;gap:8px}\",\n      \".qs-wa-btn svg{width:20px;height:20px;flex:none}\",\n      \".qs-wa-btn[aria-busy=true]{opacity:.75;cursor:progress}\",\n      \"[data-qs-credito] .cart__checkout-button{display:none!important}\"\n    ].join(\"\");\n    document.head.appendChild(st);\n  }\n\n  function esc(s) {\n    return String(s == null ? \"\" : s).replace(/[&<>\"]/g, function (c) {\n      return { \"&\": \"&amp;\", \"<\": \"&lt;\", \">\": \"&gt;\", '\"': \"&quot;\" }[c];\n    });\n  }\n\n  function noteFor(method, t) {\n    var m = CONFIG.methods[method] || {};\n    if (m.link) return \"Te escribimos por WhatsApp para enviarte el link de pago con tarjeta (incluye el recargo del 5%).\";\n    if (m.transfer) return \"Te escribimos por WhatsApp con la llave Bre-B o el n\u00FAmero de Nequi / Daviplata para que hagas la transferencia.\";\n    if (!m.cod) return \"Te escribimos por WhatsApp para enviarte el link de pago a cr\u00E9dito.\";\n    var text = \"Para confirmar tu pedido pagas por anticipado el valor del env\u00EDo\" +\n      (t ? \" (\" + money(t.deposit) + \")\" : \"\") +\n      \". El valor de tus camisas lo pagas al momento de recibirlas.\";\n    if (t && !t.shipping.value) text += \" Como tu env\u00EDo es gratis, el anticipo se descuenta del valor de las camisas.\";\n    return text + \" Te escribimos por WhatsApp con los datos para pagar el anticipo.\";\n  }\n\n  function buildWidget() {\n    var id = \"qs-pago-\" + ++uid;\n    var wrap = document.createElement(\"div\");\n    wrap.className = \"qs-pago\";\n    var opts = Object.keys(CONFIG.methods).map(function (k) {\n      var m = CONFIG.methods[k];\n      return '<label class=\"qs-pago__opt\"><input type=\"radio\" form=\"qs-pago-none\" name=\"' + id + '\" value=\"' + k + '\"' +\n        (state.method === k ? \" checked\" : \"\") + \"><span>\" + esc(m.label) +\n        '<span class=\"qs-pago__sub\">' + esc(m.sub) + \"</span></span></label>\";\n    }).join(\"\");\n    var fields = FIELDS.map(function (f) {\n      return \"<label>\" + esc(f.label) + '<input form=\"qs-pago-none\" data-k=\"' + f.k + '\" type=\"' + f.type +\n        '\" autocomplete=\"' + f.auto + '\"' + (f.mode ? ' inputmode=\"' + f.mode + '\"' : \"\") +\n        ' value=\"' + esc(state.customer[f.k] || \"\") + '\"><span class=\"qs-pago__err\" data-err=\"' + f.k + '\"></span></label>';\n    }).join(\"\");\n    wrap.innerHTML = \"<fieldset><legend>\u00BFC\u00F3mo vas a pagar?</legend>\" + opts +\n      '<div class=\"qs-pago__credit\" hidden><div class=\"qs-pago__form\">' + fields + \"</div>\" +\n      '<div class=\"qs-pago__sum\" data-sum></div>' +\n      '<p class=\"qs-pago__note\">' + esc(noteFor(state.method, null)) + \"</p></div></fieldset>\";\n    return wrap;\n  }\n\n  function buildWaButton() {\n    var b = document.createElement(\"button\");\n    b.type = \"button\";\n    b.className = \"button qs-wa-btn\";\n    b.hidden = true;\n    b.innerHTML = '<svg viewBox=\"0 0 24 24\" aria-hidden=\"true\" fill=\"currentColor\"><path d=\"M12 2a10 10 0 0 0-8.6 15.1L2 22l5-1.3A10 10 0 1 0 12 2zm0 18.2a8.2 8.2 0 0 1-4.2-1.2l-.3-.2-3 .8.8-2.9-.2-.3A8.2 8.2 0 1 1 12 20.2zm4.5-6.1c-.2-.1-1.5-.7-1.7-.8s-.4-.1-.6.1-.7.8-.8 1c-.2.2-.3.2-.5.1a6.7 6.7 0 0 1-3.3-2.9c-.3-.4.3-.4.7-1.4.1-.2 0-.3 0-.4l-.8-1.8c-.2-.5-.4-.4-.6-.4h-.5a1 1 0 0 0-.7.3 3 3 0 0 0-.9 2.2 5.2 5.2 0 0 0 1.1 2.7 11.8 11.8 0 0 0 4.5 4c1.7.7 2.3.8 3.2.6a2.7 2.7 0 0 0 1.8-1.3 2.2 2.2 0 0 0 .2-1.3c-.1-.1-.3-.2-.5-.3z\"/></svg><span class=\"qs-wa-btn__txt\">Finalizar pedido por WhatsApp</span>';\n    return b;\n  }\n\n  function readCustomer(widget) {\n    var c = {};\n    widget.querySelectorAll(\"input[data-k]\").forEach(function (i) {\n      c[i.getAttribute(\"data-k\")] = i.value.trim();\n    });\n    return c;\n  }\n\n  function row(label, value, cls) {\n    return \"<div\" + (cls ? ' class=\"' + cls + '\"' : \"\") + \"><span>\" + esc(label) + \"</span><span>\" + esc(value) + \"</span></div>\";\n  }\n\n  function renderSummary(widget) {\n    var note = widget.querySelector(\".qs-pago__note\");\n    if (note) note.textContent = noteFor(state.method, null);\n    var box = widget.querySelector(\"[data-sum]\");\n    if (!box || !cartCache) return;\n    var m = CONFIG.methods[state.method];\n    var t = computeTotals(cartCache, state.method, state.customer.ciudad);\n    var html = row(\"Productos\", money(t.products));\n    if (t.discount > 0) html += row(\"Descuento\", \"-\" + money(t.discount));\n    /* Sin ciudad no mostramos un valor adivinado: el env\u00EDo y el anticipo dependen de la ciudad */\n    var hasCity = !!String(state.customer.ciudad || \"\").trim();\n    var cityHint = '<p class=\"qs-pago__cityhint\" style=\"margin:6px 0 0;font-size:12px;line-height:1.4;opacity:.8\">' +\n      money(CONFIG.shipping.bogota) + \" en Bogot\u00E1 y Soacha \u00B7 \" + money(CONFIG.shipping.nacional) +\n      \" resto del pa\u00EDs. Escribe tu ciudad para ver el valor exacto.</p>\";\n    if (!hasCity && t.shipping.value) {\n      html += row(\"Env\u00EDo\", \"Seg\u00FAn tu ciudad\");\n      box.innerHTML = html + cityHint;\n      return;\n    }\n    html += row(\"Env\u00EDo (\" + t.shipping.label + \")\", t.shipping.value ? money(t.shipping.value) : \"$0\");\n    if (m.cod) {\n      var free = !t.shipping.value;\n      html += row(\"Total del pedido\", money(t.total), \"qs-total\");\n      if (!hasCity) {\n        html += row(free ? \"Abono para confirmar\" : \"Anticipo para confirmar (env\u00EDo)\", \"Seg\u00FAn tu ciudad\", \"qs-cod qs-cod-first\");\n        box.innerHTML = html + cityHint;\n        return;\n      }\n      html += row(free ? \"Abono para confirmar (se descuenta del total)\" : \"Anticipo para confirmar (env\u00EDo)\", money(t.deposit), \"qs-cod qs-cod-first\");\n      html += row(\"Pagas al recibir\", money(t.onDelivery), \"qs-cod\");\n    } else if (m.link || m.transfer) {\n      if (t.rate) html += row(\"Recargo tarjeta (\" + Math.round(t.rate * 100) + \"%)\", money(t.surcharge));\n      html += row(\"Total a pagar\", money(t.total), \"qs-total\");\n    } else {\n      html += row(\"Recargo \" + m.label + \" (\" + Math.round(t.rate * 100) + \"%)\", money(t.surcharge));\n      html += row(\"Total a financiar\", money(t.total), \"qs-total\");\n    }\n    box.innerHTML = html;\n    if (note) note.textContent = noteFor(state.method, t);\n  }\n\n  /* Entrega inmediata vs consultar disponibilidad (data-qs-stock en cada fila del carrito) */\n  function stockOf(key) {\n    var rows = document.querySelectorAll(\"tr[data-qs-stock]\");\n    for (var i = 0; i < rows.length; i++) {\n      if (rows[i].getAttribute(\"data-key\") === key) return rows[i].getAttribute(\"data-qs-stock\");\n    }\n    return \"\";\n  }\n\n  function hasConsulta(host) {\n    var scope = (host && host.closest && host.closest(\"dialog, cart-drawer-component, .cart-drawer, main\")) || document;\n    return !!scope.querySelector('tr[data-qs-stock=\"cq\"]');\n  }\n\n  function applyMode(host, withSummary) {\n    var widget = host.querySelector(\".qs-pago\");\n    var ctas = host.querySelector(\".cart__ctas\");\n    var wa = host.querySelector(\".qs-wa-btn\");\n    if (!widget || !ctas) return;\n    var cq = hasConsulta(host);\n    var viaWhatsapp = state.method !== \"contado\" || cq;\n    widget.querySelector(\".qs-pago__credit\").hidden = !viaWhatsapp;\n    var cqNote = widget.querySelector(\".qs-pago__cqnote\");\n    if (!cqNote) {\n      cqNote = document.createElement(\"p\");\n      cqNote.className = \"qs-pago__cqnote\";\n      cqNote.textContent = \"Tienes camisas para consultar disponibilidad: antes de cobrar te confirmamos por WhatsApp disponibilidad y tiempo de entrega.\";\n      cqNote.style.cssText = \"margin:10px 0 0;padding:10px 12px;border-radius:10px;background:rgba(212,190,122,.15);border:1px solid rgba(212,190,122,.5);font-size:13px;line-height:1.4\";\n      widget.appendChild(cqNote);\n    }\n    cqNote.hidden = !cq;\n    if (viaWhatsapp) ctas.setAttribute(\"data-qs-credito\", \"\");\n    else ctas.removeAttribute(\"data-qs-credito\");\n    if (wa) wa.hidden = !viaWhatsapp;\n    widget.querySelectorAll(\"input[type=radio]\").forEach(function (r) { r.checked = r.value === state.method; });\n    if (withSummary !== false) renderSummary(widget);\n  }\n\n  function showErrors(widget, errors) {\n    widget.querySelectorAll(\"[data-err]\").forEach(function (s) {\n      var k = s.getAttribute(\"data-err\");\n      var bad = errors.indexOf(k) !== -1;\n      s.textContent = bad ? ERR_TEXT[k] : \"\";\n      var inp = widget.querySelector('input[data-k=\"' + k + '\"]');\n      if (inp) inp.setAttribute(\"aria-invalid\", bad ? \"true\" : \"false\");\n    });\n  }\n\n  /* ---------- Medici\u00F3n en Meta (p\u00EDxel QUALITY) ---------- */\n\n  function leerCookie(nombre) {\n    var m = document.cookie.match(new RegExp(\"(?:^|; )\" + nombre + \"=([^;]*)\"));\n    return m ? decodeURIComponent(m[1]) : \"\";\n  }\n\n  // Datos del pedido para Meta. Cada camisa va con su c\u00F3digo de variante, que es el mismo id del cat\u00E1logo.\n  // \"evento\" une el Lead del navegador con el que repite el script de pedidos (Meta lo cuenta una sola vez).\n  function datosMeta(method, t) {\n    var items = t.items.map(function (it) {\n      return { id: String(it.variant_id), cantidad: it.quantity, precio: it.final_price / 100, consulta: stockOf(it.key) === \"cq\" };\n    });\n    return {\n      evento: \"qs-\" + Date.now().toString(36) + \"-\" + Math.random().toString(36).slice(2, 8),\n      tipo: items.some(function (i) { return i.consulta; }) ? \"consulta\" : \"pedido\",\n      metodo: method,\n      valor: t.total,\n      items: items,\n      fbp: leerCookie(\"_fbp\"),\n      fbc: leerCookie(\"_fbc\"),\n      ua: navigator.userAgent,\n      url: location.origin + location.pathname\n    };\n  }\n\n  function track(meta) {\n    var m = meta.metodo;\n    var datos = {\n      content_type: \"product\",\n      content_ids: meta.items.map(function (i) { return i.id; }),\n      contents: meta.items.map(function (i) { return { id: i.id, quantity: i.cantidad, item_price: i.precio }; }),\n      num_items: meta.items.reduce(function (s, i) { return s + i.cantidad; }, 0),\n      value: meta.valor,\n      currency: \"COP\",\n      content_category: (m === \"contraentrega\" || m === \"tarjeta\" || m === \"transferencia\") ? m : \"credito_\" + m,\n      tipo_pedido: meta.tipo,\n      metodo_pago: m\n    };\n    try {\n      if (window.fbq) window.fbq(\"track\", \"Lead\", datos, { eventID: meta.evento });\n    } catch (e) {}\n    try {\n      if (window.Shopify && Shopify.analytics && Shopify.analytics.publish) {\n        Shopify.analytics.publish(\"qs_credito_whatsapp\", { metodo: m, total: meta.valor, tipo: meta.tipo, evento: meta.evento });\n      }\n    } catch (e) {}\n  }\n\n  /* ---------- Avisos del pedido: script de pedidos y correo de la tienda ---------- */\n\n  // Script de pedidos (Google Apps Script): registra el pedido en Shopify y responde\n  // { ok, pedido: \"#1016\" }. Tambi\u00E9n lleva los datos de Meta (meta) para el Lead del\n  // servidor y la Compra al pagar. Devuelve el n\u00FAmero, o \"\" si fall\u00F3 o no lleg\u00F3 a tiempo:\n  // en ese caso el pedido entra igual (el script sigue trabajando o lo crea el correo).\n  function crearPedido(msg, c, meta) {\n    if (!CONFIG.pedidosUrl || !window.fetch) return Promise.resolve(\"\");\n    var datos = JSON.stringify({\n      clave: CONFIG.pedidosClave,\n      mensaje: msg,\n      nombre: c.nombre || \"\",\n      telefono: c.celular || \"\",\n      correo: c.correo || \"\",\n      meta: meta || null\n    });\n    // text/plain evita la consulta previa (preflight), que Apps Script no responde.\n    var respuesta = fetch(CONFIG.pedidosUrl, { method: \"POST\", body: datos, headers: { \"Content-Type\": \"text/plain;charset=UTF-8\" } })\n      .then(function (r) { return r.json(); })\n      .then(function (r) { return r && r.ok && r.pedido ? String(r.pedido) : \"\"; })\n      .catch(function () { return \"\"; });\n    var limite = new Promise(function (resolve) { setTimeout(function () { resolve(\"\"); }, CONFIG.pedidosEspera); });\n    return Promise.race([respuesta, limite]);\n  }\n\n  // Copia de cada pedido al formulario de contacto de la tienda (llega por correo):\n  // aviso de pedido nuevo y respaldo del script de pedidos.\n  function notifyStore(msg, c) {\n    try {\n      var mail = c.correo && c.correo.indexOf(\"@\") > 0 ? c.correo : \"sin-correo@qualitysport.co\";\n      var data = new URLSearchParams();\n      data.append(\"form_type\", \"contact\");\n      data.append(\"contact[name]\", c.nombre || \"Cliente web\");\n      data.append(\"contact[email]\", mail);\n      data.append(\"contact[phone]\", c.celular || \"\");\n      data.append(\"contact[body]\", msg);\n      fetch(\"/contact\", { method: \"POST\", body: data, keepalive: true, credentials: \"same-origin\" }).catch(function () {});\n    } catch (e) {}\n  }\n\n  /* ---------- Bot\u00F3n Finalizar y arranque ---------- */\n\n  // Mientras se registra el pedido, el bot\u00F3n queda ocupado (\"Generando tu pedido\u2026\").\n  function setBusy(btn, busy) {\n    if (!btn) return;\n    var txt = btn.querySelector(\".qs-wa-btn__txt\");\n    if (txt) {\n      if (!btn.hasAttribute(\"data-label\")) btn.setAttribute(\"data-label\", txt.textContent);\n      txt.textContent = busy ? \"Generando tu pedido\u2026\" : btn.getAttribute(\"data-label\");\n    }\n    btn.disabled = !!busy;\n    btn.setAttribute(\"aria-busy\", busy ? \"true\" : \"false\");\n  }\n\n  function openWhatsApp(msg) {\n    var url = \"https://wa.me/\" + CONFIG.whatsapp + \"?text=\" + encodeURIComponent(msg);\n    var w = window.open(url, \"_blank\");\n    if (!w) window.location.href = url; // si el navegador bloquea la ventana nueva\n  }\n\n  function onWaClick(host, btn) {\n    if (btn && btn.disabled) return; // ya se est\u00E1 generando el pedido\n    var widget = host.querySelector(\".qs-pago\");\n    var c = readCustomer(widget);\n    state.customer = c;\n    save();\n    var errors = validate(c);\n    showErrors(widget, errors);\n    if (errors.length) {\n      var first = widget.querySelector('input[data-k=\"' + errors[0] + '\"]');\n      if (first) first.focus();\n      return;\n    }\n    var method = state.method;\n    var listo = function () { setBusy(btn, false); };\n    setBusy(btn, true);\n    refreshCart().then(function (cart) {\n      if (!cart || !cart.items || !cart.items.length) return;\n      var meta = datosMeta(method, computeTotals(cart, method, c.ciudad));\n      track(meta);\n      // 1) El script registra el pedido con el mensaje sin n\u00FAmero y devuelve el n\u00FAmero.\n      return crearPedido(buildMessage(cart, method, c), c, meta).then(function (pedido) {\n        // 2) El mensaje final lleva el n\u00FAmero (si lleg\u00F3): va a WhatsApp y al correo.\n        var msg = buildMessage(cart, method, c, pedido);\n        notifyStore(msg, c);\n        openWhatsApp(msg);\n      });\n    }).then(listo, listo);\n  }\n\n  function mount(host) {\n    var ctas = host.querySelector(\":scope > .cart__ctas\");\n    if (!ctas) return false;\n    var existing = host.querySelector(\":scope > .qs-pago\");\n    if (existing && ctas.querySelector(\".qs-wa-btn\")) return false;\n    if (existing) existing.remove();\n    var widget = buildWidget();\n    host.insertBefore(widget, ctas);\n    var wa = buildWaButton();\n    ctas.appendChild(wa);\n    widget.addEventListener(\"change\", function (e) {\n      if (e.target && e.target.type === \"radio\") {\n        state.method = e.target.value;\n        save();\n        document.querySelectorAll(\".cart-summary__inner, .cart-drawer__summary\").forEach(applyMode);\n      }\n    });\n    widget.addEventListener(\"keydown\", function (e) {\n      if (e.key === \"Enter\" && e.target && e.target.tagName === \"INPUT\") e.preventDefault();\n    });\n    widget.addEventListener(\"input\", function (e) {\n      var k = e.target && e.target.getAttribute(\"data-k\");\n      if (!k) return;\n      state.customer[k] = e.target.value;\n      save();\n      if (k === \"ciudad\") renderSummary(widget);\n    });\n    wa.addEventListener(\"click\", function () { onWaClick(host, wa); });\n    applyMode(host);\n    return true;\n  }\n\n  var refreshing = null;\n  function refreshCart() {\n    if (refreshing) return refreshing;\n    var root = (window.Shopify && Shopify.routes && Shopify.routes.root) || \"/\";\n    refreshing = fetch(root + \"cart.js\", { headers: { Accept: \"application/json\" }, credentials: \"same-origin\" })\n      .then(function (r) { return r.json(); })\n      .then(function (cart) {\n        cartCache = cart;\n        document.querySelectorAll(\".qs-pago\").forEach(renderSummary);\n        return cart;\n      })\n      .catch(function () { return cartCache; })\n      .then(function (c) { refreshing = null; return c; });\n    return refreshing;\n  }\n\n  function scan() {\n    var mounted = false;\n    document.querySelectorAll(\".cart-summary__inner, .cart-drawer__summary\").forEach(function (h) {\n      if (mount(h)) mounted = true;\n      else applyMode(h, false);\n    });\n    if (mounted) refreshCart();\n  }\n\n  var t = null;\n  function scheduleScan() {\n    clearTimeout(t);\n    t = setTimeout(scan, 60);\n  }\n\n  function init() {\n    if (state.customer && state.customer.cedula) {\n      delete state.customer.cedula;\n      save();\n    }\n    if (!CONFIG.methods[state.method]) state.method = \"transferencia\";\n    injectStyles();\n    scan();\n    refreshCart();\n    new MutationObserver(function (muts) {\n      for (var i = 0; i < muts.length; i++) {\n        var n = muts[i].target;\n        if (!(n && n.closest && n.closest(\".qs-pago\"))) {\n          scheduleScan();\n          return;\n        }\n      }\n    }).observe(document.body, { childList: true, subtree: true });\n    document.addEventListener(\"cart:update\", function () { setTimeout(refreshCart, 150); });\n  }\n\n  if (document.readyState === \"loading\") document.addEventListener(\"DOMContentLoaded\", init);\n  else init();\n})();\n"],
  "mappings": "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",
  "names": ["t"]
}
