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