.off("click.panalPack")
.on("click.panalPack", ".panalPack .pack", function (e) {
e.preventDefault();
var $el = jQuery(this);
if ($el.hasClass("-out-of-stock")) return;
var cantidad = $el.data("cantidad");
if (!cantidad) return;
// Marcar seleccionado visualmente
jQuery(".panalPack .pack").removeClass("-selected active bg-primary text-white border-primary");
$el.addClass("-selected active bg-primary text-white border-primary");
// Cambiar variante real y disparar lógica de Tiendanube
$cantidad.val(cantidad).trigger("change");
LS.changeVariant(null, "#single-product");
console.log("👉 Pack elegido:", cantidad, "unidades");
});
// Auto-click en la mejor oferta
setTimeout(function () {
var $mejor = jQuery(".panalPack .pack.-selected").first();
if ($mejor.length) {
$mejor.trigger("click");
}
}, 400);
}
// Cuando cambia el talle, re-generamos packs
jQuery(document)
.off("change.panalTalle")
.on("change.panalTalle", ".variation_Talle", function () {
setTimeout(renderPacks, 300);
});
// Si ya hay un talle seleccionado al cargar
if ($talle.val() && $talle.val() !== "null") {
renderPacks();
}
// Todo OK, dejamos de reintentar
return true;
}
// Esperar a que el DOM + scripts de Tiendanube estén listos
document.addEventListener("DOMContentLoaded", function () {
var intentos = 0;
var maxIntentos = 30; // 30 * 300ms = 9 segundos
var interval = setInterval(function () {
intentos++;
var listo = initPacksPanal();
if (listo || intentos > maxIntentos) {
clearInterval(interval);
if (!listo) {
console.warn("⛔ No se pudieron inicializar los packs de pañales (faltan elementos).");
}
}
}, 300);
});
})();