<p class="description">Equipos de protección respiratoria. Equipos filtrantes de ventilación
asistida provistos de máscaras o mascarillas. Requisitos, ensayos,
marcado. (Ratificada por la Asociación Española de Normalización en
abril de 2024.)</p>
<button type="button"
class="btn extract-btn"
style="display:none"
data-code="UNE-N0072656">
Descargar extracto
<img src="/documents/d/global/ico-pdf" alt="PDF" class="extract-btn-icon" style="padding-left:3px;vertical-align:middle;">
</button>
</div>
</div>
</section>
</div>
<div id="ecom-extract-spinner" style="display:none;position:fixed;inset:0;z-index:10000;background:rgba(0,0,0,.4);align-items:center;justify-content:center;">
<div class="spinner-border text-light" role="status" style="width:3rem;height:3rem;">
<span class="sr-only">Loading...</span>
</div>
</div>
<script>
(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();
})();
</script>
</div>