@caspingus/lt
Version:
A utility library of helpers and extensions useful when working with Learnosity APIs.
62 lines (61 loc) • 2.05 kB
JavaScript
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 };