UNPKG

@caspingus/lt

Version:

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

78 lines (77 loc) 2.38 kB
import { n as e } from "./chunk-BPfpcrXh.js"; import t from "./logger.js"; import { a as n, n as r, r as i, t as a } from "./app-22BVhJD9.js"; //#region src/authoring/core/navigation.js var o = /* @__PURE__ */ e({ routingHash: () => s }); function s() { r().on("navigate", (e) => { window.location.hash = "#" + e.data.locationEncoded; }), r().navigate(window.location.hash.replace(/^#/, "")), window.onhashchange = () => { r().navigate(window.location.hash.replace(/^#/, "")); }; } //#endregion //#region src/authoring/core/widgets.js var c = /* @__PURE__ */ e({ type: () => l }); function l() { return r().getWidget()?.type || null; } //#endregion //#region src/authoring/core.js var u = null, d = null, f = Object.fromEntries(Object.entries(n).filter(([e]) => !["extensionsListener", "handleEvent"].includes(e))), p = Object.fromEntries(Object.entries(a).filter(([e]) => !["setup"].includes(e))), m = { utils: { logger: t, get monitor() { return u; } } }; async function h() { if (!d) { let e = await import( /* webpackChunkName: "lt-memory-monitor" */ "./memoryMonitor-Bl5n5_ar.js" ); d = e.default || e.MemoryMonitor || e; } return d; } async function g(e = {}) { let t = await h(); return u ||= new t(), u.isMonitoring || u.startMonitoring(e.intervalMs ?? 5e3), u; } function _() { u?.stopMonitoring(); } async function v(e, t = {}) { i(e); let { extensions: n = [], security: r, request: a, monitor: o, perf: s = !1, perfLimit: c = 50 } = t, l = (e) => !!(e && e.security && e.request), u = n.find((e) => typeof e == "object" && e.id === "imageUploader") || n.find((e) => e === "imageUploader"); if (u) { let e = l(typeof u == "object" ? u.args : null), t = l({ security: r, request: a }); if (!e && !t) throw TypeError("LT.init: imageUploader extension requires `security` and `request` (provide via extension args or top-level options)."); } if (o && (Object.assign(m.utils, { enableMonitoring: g, disableMonitoring: _ }), await g({ intervalMs: typeof o == "object" && Number.isFinite(o.intervalMs) ? o.intervalMs : void 0 })), n.length) { let { runExtensions: e } = await import("./initExtensions-BIViJRxw.js"); await e(y, n, "authoring", { security: r, request: a, perf: s, perfLimit: c }); } } var y = { init: v, extensions: {}, ...p, ...f, ...o, ...c, ...m }; //#endregion export { y as t };