(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(); })();

UNE-EN 4165-006:2024