(function () {
var container = document.getElementById("ecom-norma-header");
if (!container) return;
var btn = container.querySelector(".extract-btn");
if (!btn) return;
var rawCode = btn.getAttribute("data-code");
if (!rawCode || rawCode.indexOf("-") === -1) return;
var organism = rawCode.split("-")[0];
var code = rawCode.split("-")[1];
var downloadUrl = "";
var fileName = "extracto.pdf";
async function waitForGlobalScripts(timeoutMs) {
var start = Date.now();
return new Promise(function (resolve, reject) {
(function poll() {
if (window.ecomGlobalScripts?.functions?.getFieldCXCustomConfig && window.ecomGlobalScripts?.properties?.cxCustomConfigsNames) return resolve();
if (Date.now() - start > timeoutMs) return reject(new Error("ecomGlobalScripts no disponible"));
requestAnimationFrame(poll);
})();
});
}
async function resolveExtract() {
try {
await waitForGlobalScripts(5000);
var apiHost = await window.ecomGlobalScripts.functions.getFieldCXCustomConfig(
window.ecomGlobalScripts.properties.cxCustomConfigsNames.defaultName, "webApiUrl"
);
var infoRes = await fetch(apiHost + "/tijuana/normaExtract/" + encodeURIComponent(organism) + "/" + encodeURIComponent(code));
if (!infoRes.ok) return;
var info = await infoRes.json();
if (info.docId) {
downloadUrl = apiHost + "/tijuana/downloadNormaExtract/" + encodeURIComponent(organism) + "/" + encodeURIComponent(info.docId);
fileName = info.fileName || "extracto.pdf";
btn.style.display = "";
}
} catch (err) {
console.error("Error resolviendo extracto:", err);
}
}
var spinner = document.getElementById("ecom-extract-spinner");
btn.addEventListener("click", async function () {
if (!downloadUrl) return;
btn.disabled = true;
if (spinner) spinner.style.display = "flex";
try {
var fileRes = await fetch(downloadUrl);
if (!fileRes.ok) throw new Error("Error descargando el extracto");
var blob = await fileRes.blob();
var url = URL.createObjectURL(blob);
var a = document.createElement("a");
a.href = url;
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
URL.revokeObjectURL(url);
} catch (err) {
console.error("Error descargando extracto:", err);
} finally {
btn.disabled = false;
if (spinner) spinner.style.display = "none";
}
});
resolveExtract();
})();










