UNPKG

@caspingus/lt

Version:

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

79 lines (78 loc) 2.04 kB
import { n as e } from "./chunk-BPfpcrXh.js"; import t from "./logger.js"; //#region src/authoring/core/diagnostics.js var n = /* @__PURE__ */ e({ diagnostics: () => i, extensionsListener: () => c, filterEvent: () => a, handleEvent: () => o, listen: () => s }), r = { events: { broadcast: !1, listenFor: "all" }, extensions: { running: [] }, initialised: !1 }; function i() { let e = window.LearnosityAuthor ? LearnosityAuthor.versions : {}; return { apps: { author: { app: f() }, questionEditor: { app: p() } }, LT: { extensions: r.extensions, version: "3.0.3" }, versions: e }; } function a(e) { /^[a-zA-Z:*]*$/.test(e) ? r.events.listenFor = e : t.warn("Invalid event type"); } function o(e) { if (r.events.broadcast) { let n = r.events.listenFor, i = n.replaceAll("*", ""); n.length === 1 && n === "*" || n === "all" ? t.info(e) : n.startsWith("*") && !n.endsWith("*") ? e.endsWith(i) && t.info(e) : n.endsWith("*") && !n.startsWith("*") ? e.startsWith(i) && t.info(e) : n.startsWith("*") && n.endsWith("*") ? e.includes(i) && t.info(e) : e.startsWith(i) && t.info(e); } } function s(e = !0) { r.events.broadcast = !!e, e ? t.info(`👂 listening for '${r.events.listenFor}'`) : t.info("🚫👂 not listening"); } function c() { r.initialised ||= (window.addEventListener("extension:run", (e) => { let { name: t, timestamp: n } = e.detail; r.extensions.running.push({ name: t, timestamp: n }); }), !0); } //#endregion //#region src/authoring/core/app.js var l = /* @__PURE__ */ e({ authorApp: () => f, questionEditorApp: () => p, setup: () => d }), u = {}; function d(e) { u.app = e, m(); } function f() { return u.app; } function p() { return f().editorApp() === void 0 ? null : f().editorApp(); } function m() { u.app.on("all", o), [ "widgetedit:editor:ready", "widgetedit:widget:ready", "widgetedit:preview:changed", "widgetedit:widget:changed" ].forEach((e) => u.app.on(e, () => o(e))), c(); } //#endregion export { n as a, i, f as n, d as r, l as t };