UNPKG

@caspingus/lt

Version:

A utility library of helpers and extensions useful when working with Learnosity APIs.

62 lines (61 loc) 2.05 kB
import { r as e, t } from "./extensionsFactory-hk5ijx1G.js"; //#region src/utils/url.js function n(e) { try { return new URL(e, window.location.href).pathname.toLowerCase().endsWith(".pdf"); } catch { return !1; } } //#endregion //#region src/assessment/extensions/ui/renderPDF/index.js function r() { t.eventBus.on("item:load", i, "renderPDF"), queueMicrotask(i); } function i() { let e = t.itemReference(), r = document.querySelector(`.learnosity-item[data-reference="${e}"]`); if (!r) return; let i = r.querySelectorAll(".lrn_widget .resource"); i.length && i.forEach((e) => { let t = e.querySelector("span.resource a"); if (!t) return; let r = t.getAttribute("href") || ""; n(r) && e.dataset.ltRenderedPdf !== "1" && (e.dataset.ltRenderedPdf = "1", a(e, r)); }); } function a(e, t) { let n = document.createElement("div"); n.className = "lt__renderPDF_pdf"; let r = document.createElement("iframe"); r.className = "pdf-viewer", r.allow = "fullscreen", n.appendChild(r), e.before(n); let i = (e) => { let t = e.getBoundingClientRect(); return t.width <= 0 || t.height <= 0 ? !1 : !!(e.ownerDocument && e.ownerDocument.defaultView); }, a = () => { let e = `${t}${t.includes("?") ? "&" : "?"}${`v=${Date.now()}`}#view=FitH`; requestAnimationFrame(() => { requestAnimationFrame(() => { r.src = e; }); }); }; if (i(n)) a(); else { let e = new IntersectionObserver((t) => { t.some((e) => e.isIntersecting) && (e.disconnect(), a()); }, { root: null, threshold: .01 }); e.observe(n); } } function o() { return "\n /* Learnosity render PDF styles */\n .lt__renderPDF_pdf {\n display: block;\n width: 100%;\n max-width: 100%;\n }\n .lt__renderPDF_pdf .pdf-viewer {\n display: block;\n width: 100%;\n height: 650px;\n border: 0;\n background: #fff;\n }\n "; } var s = e("renderPDF", r, { getStyles: o, mountNativePdf: a }); //#endregion export { s as t };