@pie-element/math-templated 8.0.5-next.20261014231219 → 8.0.5

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (27) hide show
  1. package/dist/browser/author/index.js +5527 -5494
  2. package/dist/browser/author/index.js.map +1 -1
  3. package/dist/browser/controller/index.js +5 -2
  4. package/dist/browser/delivery/index.js +6 -3
  5. package/dist/browser/delivery/index.js.map +1 -1
  6. package/dist/browser/editor-runtime/author/index.js +1993 -1960
  7. package/dist/browser/editor-runtime/author/index.js.map +1 -1
  8. package/dist/browser/editor-runtime/controller/index.js +5 -2
  9. package/dist/browser/editor-runtime/delivery/index.js +6 -3
  10. package/dist/browser/editor-runtime/delivery/index.js.map +1 -1
  11. package/dist/browser/editor-runtime/{horizontal-keypad-B0B5dA19.js → horizontal-keypad-CDfgEgi8.js} +4 -2
  12. package/dist/browser/editor-runtime/{horizontal-keypad-B0B5dA19.js.map → horizontal-keypad-CDfgEgi8.js.map} +1 -1
  13. package/dist/browser/editor-runtime/{main-A6ATcncd.js → main-BI5lm5Wb.js} +2 -2
  14. package/dist/browser/editor-runtime/{main-A6ATcncd.js.map → main-BI5lm5Wb.js.map} +1 -1
  15. package/dist/browser/editor-runtime/print/index.js +7 -4
  16. package/dist/browser/{horizontal-keypad-DZpJHoGT.js → horizontal-keypad-C8EnhnM1.js} +4 -2
  17. package/dist/browser/{horizontal-keypad-DZpJHoGT.js.map → horizontal-keypad-C8EnhnM1.js.map} +1 -1
  18. package/dist/browser/{main-CDsBiK6m.js → main-Xf2wpHj9.js} +2 -2
  19. package/dist/browser/{main-CDsBiK6m.js.map → main-Xf2wpHj9.js.map} +1 -1
  20. package/dist/browser/print/index.js +7 -4
  21. package/dist/index.iife.js +1 -1
  22. package/dist/schemas/configuration.schema.json +1 -1
  23. package/dist/schemas/model.schema.json +1 -1
  24. package/dist/schemas/session.schema.json +1 -1
  25. package/module/print.js +3 -1
  26. package/module/print.js.map +1 -1
  27. package/package.json +17 -17
@@ -37729,8 +37729,11 @@ var { translator: E_ } = s, D_ = (0, b_.default)("@pie-element:math-templated:co
37729
37729
  });
37730
37730
  let c = (r.match(/\{\{(\d+)\}\}/g) || []).length;
37731
37731
  return c > i ? s.responseAreas = `No more than ${i} response areas should be defined.` : c < 1 && (s.responseAreas = "There should be at least 1 response area defined."), o(a) || (s.responses = a), s;
37732
- };
37732
+ }, U_ = Object.freeze({
37733
+ name: "@pie-element/math-templated",
37734
+ version: "8.0.5"
37735
+ });
37733
37736
  //#endregion
37734
- export { V_ as createCorrectResponseSession, I_ as createDefaultModel, M_ as getCorrectness, P_ as getLogTrace, N_ as getPartialScore, B_ as model, L_ as normalizeSession, F_ as outcome, z_ as prepareVal, H_ as validate };
37737
+ export { V_ as createCorrectResponseSession, I_ as createDefaultModel, M_ as getCorrectness, P_ as getLogTrace, N_ as getPartialScore, B_ as model, L_ as normalizeSession, F_ as outcome, U_ as piePackage, z_ as prepareVal, H_ as validate };
37735
37738
 
37736
37739
  //# sourceMappingURL=index.js.map
@@ -1,4 +1,4 @@
1
- import { t as e } from "../main-A6ATcncd.js";
1
+ import { t as e } from "../main-BI5lm5Wb.js";
2
2
  import t from "react";
3
3
  import { createRoot as n } from "react-dom/client";
4
4
  //#region ../../shared/player-events/dist/index.js
@@ -123,8 +123,11 @@ var u = class e extends CustomEvent {
123
123
  disconnectedCallback() {
124
124
  l(this), this._root &&= (this._root.unmount(), null);
125
125
  }
126
- };
126
+ }, p = Object.freeze({
127
+ name: "@pie-element/math-templated",
128
+ version: "8.0.5"
129
+ });
127
130
  //#endregion
128
- export { f as default };
131
+ export { f as default, p as piePackage };
129
132
 
130
133
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","names":[],"sources":["../../../../../../shared/player-events/dist/index.js","../../../../src/delivery/index.ts"],"sourcesContent":["//#region src/session-notifier.ts\nvar e = \"commitPendingSession\", t = /* @__PURE__ */ new WeakMap();\nfunction n(e, n) {\n\tlet r = t.get(e);\n\tr || (r = /* @__PURE__ */ new Set(), t.set(e, r)), r.add(n);\n}\nfunction r(t) {\n\treturn Object.getOwnPropertyDescriptor(t, e) !== void 0;\n}\nfunction i(t) {\n\tif (r(t)) return;\n\tlet n = t[e];\n\tObject.defineProperty(t, e, {\n\t\tvalue: () => {\n\t\t\tif (typeof n == \"function\") try {\n\t\t\t\tn.call(t);\n\t\t\t} catch {}\n\t\t\to(t);\n\t\t},\n\t\tconfigurable: !0,\n\t\tenumerable: !1,\n\t\twritable: !0\n\t});\n}\nfunction a(e, t, r = {}) {\n\tlet a = r.delayMs, o = typeof a == \"function\" ? a : () => a ?? 0, s = r.maxWaitMs, c = null, l = null, u = !1, d = () => {\n\t\tc !== null && (clearTimeout(c), c = null), l !== null && (clearTimeout(l), l = null);\n\t}, f = () => {\n\t\td(), u && (u = !1, t());\n\t}, p = {\n\t\tnotify() {\n\t\t\tu = !0, c !== null && clearTimeout(c), c = setTimeout(f, Math.max(0, o())), s !== void 0 && l === null && (l = setTimeout(f, Math.max(0, s)));\n\t\t},\n\t\tflush() {\n\t\t\tif (!u) {\n\t\t\t\td();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tf();\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(\"[session-notifier] a committed session-changed dispatch threw\", e);\n\t\t\t}\n\t\t}\n\t};\n\treturn n(e, p), i(e), p;\n}\nfunction o(e) {\n\tlet n = t.get(e);\n\tif (n) for (let e of [...n]) e.flush();\n}\n//#endregion\n//#region src/index.ts\nvar s = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"model-set\";\n\t}\n\tconstructor(t, n, r) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tcomposed: !0,\n\t\t\tdetail: {\n\t\t\t\tcomplete: n,\n\t\t\t\tcomponent: t,\n\t\t\t\thasModel: r\n\t\t\t}\n\t\t}), this.component = t, this.complete = n;\n\t}\n}, c = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"session-changed\";\n\t}\n\tconstructor(t, n) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tcomposed: !0,\n\t\t\tdetail: {\n\t\t\t\tcomplete: n,\n\t\t\t\tcomponent: t\n\t\t\t}\n\t\t}), this.component = t, this.complete = n;\n\t}\n};\n//#endregion\nexport { s as ModelSetEvent, e as SESSION_COMMIT_METHOD, c as SessionChangedEvent, a as createSessionNotifier, o as flushSessionNotifiers };\n","// @ts-nocheck\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport {\n SessionChangedEvent,\n ModelSetEvent,\n createSessionNotifier,\n flushSessionNotifiers,\n} from '@pie-element/shared-player-events';\nimport Main from './main.js';\n\nexport default class MathTemplated extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n // Session state is already written synchronously in `onSessionChange`; only\n // this dispatch is coalesced, and `disconnectedCallback` flushes it.\n this._sessionNotifier = createSessionNotifier(\n this,\n () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n },\n { delayMs: 1000 },\n );\n this.sessionChangedEventCaller = () => this._sessionNotifier.notify();\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined),\n );\n }\n\n get model() {\n return this._model;\n }\n\n set session(s) {\n this._session = s;\n\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n // a method to check if student answered the question\n return true;\n }\n\n onSessionChange(session) {\n // you can add an extra step here to validate session\n Object.keys(session).map((key) => {\n this._session[key] = session[key];\n });\n\n this.sessionChangedEventCaller();\n this.render();\n }\n\n connectedCallback() {\n // TODO set accessibility labels\n\n this.render();\n }\n\n render() {\n if (!this._model || !this._session) {\n return;\n }\n\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n flushSessionNotifiers(this);\n\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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"}
1
+ {"version":3,"file":"index.js","names":[],"sources":["../../../../../../shared/player-events/dist/index.js","../../../../src/delivery/index.ts"],"sourcesContent":["//#region src/session-notifier.ts\nvar e = \"commitPendingSession\", t = /* @__PURE__ */ new WeakMap();\nfunction n(e, n) {\n\tlet r = t.get(e);\n\tr || (r = /* @__PURE__ */ new Set(), t.set(e, r)), r.add(n);\n}\nfunction r(t) {\n\treturn Object.getOwnPropertyDescriptor(t, e) !== void 0;\n}\nfunction i(t) {\n\tif (r(t)) return;\n\tlet n = t[e];\n\tObject.defineProperty(t, e, {\n\t\tvalue: () => {\n\t\t\tif (typeof n == \"function\") try {\n\t\t\t\tn.call(t);\n\t\t\t} catch {}\n\t\t\to(t);\n\t\t},\n\t\tconfigurable: !0,\n\t\tenumerable: !1,\n\t\twritable: !0\n\t});\n}\nfunction a(e, t, r = {}) {\n\tlet a = r.delayMs, o = typeof a == \"function\" ? a : () => a ?? 0, s = r.maxWaitMs, c = null, l = null, u = !1, d = () => {\n\t\tc !== null && (clearTimeout(c), c = null), l !== null && (clearTimeout(l), l = null);\n\t}, f = () => {\n\t\td(), u && (u = !1, t());\n\t}, p = {\n\t\tnotify() {\n\t\t\tu = !0, c !== null && clearTimeout(c), c = setTimeout(f, Math.max(0, o())), s !== void 0 && l === null && (l = setTimeout(f, Math.max(0, s)));\n\t\t},\n\t\tflush() {\n\t\t\tif (!u) {\n\t\t\t\td();\n\t\t\t\treturn;\n\t\t\t}\n\t\t\ttry {\n\t\t\t\tf();\n\t\t\t} catch (e) {\n\t\t\t\tconsole.warn(\"[session-notifier] a committed session-changed dispatch threw\", e);\n\t\t\t}\n\t\t}\n\t};\n\treturn n(e, p), i(e), p;\n}\nfunction o(e) {\n\tlet n = t.get(e);\n\tif (n) for (let e of [...n]) e.flush();\n}\n//#endregion\n//#region ../../../node_modules/.bun/@pie-players+pie-context@1.0.0-beta.3/node_modules/@pie-players/pie-context/dist/events.js\nfunction s(e, t, n) {\n\tlet r = t.ownerDocument?.defaultView?.Event ?? Event;\n\treturn Object.assign(new r(e, {\n\t\tbubbles: !0,\n\t\tcomposed: !0\n\t}), n);\n}\nvar c = /* @__PURE__ */ new WeakSet(), l = (e, t) => typeof t == \"object\" && !!t && e.has(t), u = class {\n\tconstructor(e, t, n, r) {\n\t\tlet i = s(\"context-request\", t, {\n\t\t\tcontext: e,\n\t\t\tcontextTarget: t,\n\t\t\tcallback: n,\n\t\t\tsubscribe: r ?? !1\n\t\t});\n\t\treturn c.add(i), i;\n\t}\n\tstatic [Symbol.hasInstance](e) {\n\t\treturn l(c, e);\n\t}\n}, d = (e) => {\n\tlet t = [];\n\tfor (let n of e) n.requestorRef.deref() && n.callbackRef.deref() && t.push(n);\n\treturn t;\n}, f = class {\n\thost;\n\tpendingByContext = /* @__PURE__ */ new Map();\n\tattached = !1;\n\tconstructor(e) {\n\t\tthis.host = e;\n\t}\n\tattach() {\n\t\tthis.attached || (this.attached = !0, this.host.addEventListener(\"context-request\", this.onContextRequest), this.host.addEventListener(\"context-provider\", this.onContextProvider));\n\t}\n\tdetach() {\n\t\tthis.attached && (this.attached = !1, this.host.removeEventListener(\"context-request\", this.onContextRequest), this.host.removeEventListener(\"context-provider\", this.onContextProvider), this.pendingByContext.clear());\n\t}\n\tonContextRequest = (e) => {\n\t\tif (e.cancelBubble) return;\n\t\tlet t = e;\n\t\tif (t.subscribe !== !0 || typeof t.callback != \"function\" || t.context === void 0) return;\n\t\tlet n = t.contextTarget ?? e.composedPath?.()[0];\n\t\tif (!n) return;\n\t\tlet r = this.pendingByContext.get(t.context);\n\t\tr || (r = {\n\t\t\tcallbacks: /* @__PURE__ */ new WeakMap(),\n\t\t\trequests: []\n\t\t}, this.pendingByContext.set(t.context, r));\n\t\tlet i = t.callback, a = r.callbacks.get(n);\n\t\ta || (a = /* @__PURE__ */ new WeakSet(), r.callbacks.set(n, a)), !a.has(i) && (a.add(i), r.requests.push({\n\t\t\trequestorRef: new WeakRef(n),\n\t\t\tcallbackRef: new WeakRef(i)\n\t\t}), r.requests = d(r.requests));\n\t};\n\tonContextProvider = (e) => {\n\t\tlet t = e.context;\n\t\tif (t === void 0) return;\n\t\tlet n = this.pendingByContext.get(t);\n\t\tif (!(!n || n.requests.length === 0)) {\n\t\t\tthis.pendingByContext.delete(t);\n\t\t\tfor (let e of n.requests) {\n\t\t\t\tlet n = e.requestorRef.deref(), r = e.callbackRef.deref();\n\t\t\t\t!n || !r || n.dispatchEvent(new u(t, n, r, !0));\n\t\t\t}\n\t\t}\n\t};\n}, p = Symbol.for(\"pie.context.documentRoot\");\nfunction m(e) {\n\tif (!e) return;\n\tlet t = e;\n\tif (t[p]) return;\n\tlet n = e.documentElement;\n\tif (!n) return;\n\tlet r = new f(n);\n\tr.attach(), t[p] = r;\n}\n//#endregion\n//#region ../../../node_modules/.bun/@pie-players+pie-context@1.0.0-beta.3/node_modules/@pie-players/pie-context/dist/consumer.js\nvar h = class {\n\thost;\n\tcontext;\n\tsubscribe;\n\tonValue;\n\tisConnected = !1;\n\tisDisconnected = !1;\n\tunsubscribe;\n\tcurrentValue;\n\tconstructor(e, t) {\n\t\tthis.host = e, this.context = t.context, this.subscribe = t.subscribe ?? !0, this.onValue = t.onValue;\n\t}\n\tconnect() {\n\t\tthis.isConnected || (this.isConnected = !0, this.isDisconnected = !1, this.subscribe && m(this.host.ownerDocument), this.requestValue());\n\t}\n\tdisconnect() {\n\t\tthis.isConnected && (this.isConnected = !1, this.isDisconnected = !0, this.unsubscribe?.(), this.unsubscribe = void 0);\n\t}\n\tget value() {\n\t\treturn this.currentValue;\n\t}\n\thandleValue = (e, t) => {\n\t\tif (this.isDisconnected) {\n\t\t\tt?.();\n\t\t\treturn;\n\t\t}\n\t\tt !== this.unsubscribe && (this.unsubscribe?.(), this.unsubscribe = t), !this.subscribe && this.unsubscribe && (this.unsubscribe(), this.unsubscribe = void 0), this.currentValue = e, this.onValue?.(e);\n\t};\n\trequestValue() {\n\t\tthis.host.dispatchEvent(new u(this.context, this.host, this.handleValue, this.subscribe));\n\t}\n}, g = (e, t, n) => {\n\tlet r = new h(e, {\n\t\tcontext: t,\n\t\tsubscribe: !0,\n\t\tonValue: n\n\t});\n\tr.connect();\n\tlet i = (e) => {\n\t\te.context === t && r.requestValue();\n\t};\n\treturn e.addEventListener(\"context-provider\", i), () => {\n\t\te.removeEventListener(\"context-provider\", i), r.disconnect();\n\t};\n}, _ = ((e) => e)(Symbol.for(\"pie.sessionCommit\")), v = 1500;\nfunction y(e) {\n\treturn typeof e == \"number\" && Number.isFinite(e) && e >= 0 ? e : v;\n}\nfunction b(e, t) {\n\treturn g(e, _, (e) => {\n\t\tt(y(e?.idleSaveDelayMs));\n\t});\n}\n//#endregion\n//#region src/index.ts\nvar x = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"model-set\";\n\t}\n\tconstructor(t, n, r) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tcomposed: !0,\n\t\t\tdetail: {\n\t\t\t\tcomplete: n,\n\t\t\t\tcomponent: t,\n\t\t\t\thasModel: r\n\t\t\t}\n\t\t}), this.component = t, this.complete = n;\n\t}\n}, S = class e extends CustomEvent {\n\tstatic {\n\t\tthis.TYPE = \"session-changed\";\n\t}\n\tconstructor(t, n) {\n\t\tsuper(e.TYPE, {\n\t\t\tbubbles: !0,\n\t\t\tcomposed: !0,\n\t\t\tdetail: {\n\t\t\t\tcomplete: n,\n\t\t\t\tcomponent: t\n\t\t\t}\n\t\t}), this.component = t, this.complete = n;\n\t}\n};\n//#endregion\nexport { v as DEFAULT_IDLE_SAVE_DELAY_MS, x as ModelSetEvent, e as SESSION_COMMIT_METHOD, S as SessionChangedEvent, a as createSessionNotifier, o as flushSessionNotifiers, y as resolveIdleSaveDelay, b as subscribeIdleSaveDelay };\n","// @ts-nocheck\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport {\n SessionChangedEvent,\n ModelSetEvent,\n createSessionNotifier,\n flushSessionNotifiers,\n} from '@pie-element/shared-player-events';\nimport Main from './main.js';\n\nexport default class MathTemplated extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n // Session state is already written synchronously in `onSessionChange`; only\n // this dispatch is coalesced, and `disconnectedCallback` flushes it.\n this._sessionNotifier = createSessionNotifier(\n this,\n () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n },\n { delayMs: 1000 },\n );\n this.sessionChangedEventCaller = () => this._sessionNotifier.notify();\n }\n\n set model(m) {\n this._model = m;\n\n this.render();\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.isSessionComplete(), this._model !== undefined),\n );\n }\n\n get model() {\n return this._model;\n }\n\n set session(s) {\n this._session = s;\n\n this.render();\n }\n\n get session() {\n return this._session;\n }\n\n isSessionComplete() {\n // a method to check if student answered the question\n return true;\n }\n\n onSessionChange(session) {\n // you can add an extra step here to validate session\n Object.keys(session).map((key) => {\n this._session[key] = session[key];\n });\n\n this.sessionChangedEventCaller();\n this.render();\n }\n\n connectedCallback() {\n // TODO set accessibility labels\n\n this.render();\n }\n\n render() {\n if (!this._model || !this._session) {\n return;\n }\n\n if (this._model && this._session) {\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n onSessionChange: this.onSessionChange.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n }\n\n disconnectedCallback() {\n flushSessionNotifiers(this);\n\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":"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"}
@@ -13290,7 +13290,9 @@ var cS = {
13290
13290
  overarc: "\\overparen",
13291
13291
  napprox: "\\not\\approx",
13292
13292
  longdiv: "\\enclose{longdiv}",
13293
- abs: ["\\left|#1\\right|", 1]
13293
+ abs: ["\\left|#1\\right|", 1],
13294
+ perpendicular: "\\perp",
13295
+ divide: "\\div"
13294
13296
  }, lS = "[math-rendering] using $ is not advisable, please use $$..$$ or \\(...\\)", uS = /\\\(|\\\[|\$\$|\\\$|\\begin\{|\\(?:eq)?ref\{/, dS = /\\\(|\\\[|\$|\\begin\{|\\(?:eq)?ref\{/, fS = /\\embed\{newLine\}\[\]/g, pS = [
13295
13297
  ["$$", "$$"],
13296
13298
  ["$", "$"],
@@ -16661,4 +16663,4 @@ var rE = (e) => e ? {
16661
16663
  //#endregion
16662
16664
  export { Xl as $, Wy as A, gn as At, ry as B, OC as C, oi as Ct, oC as D, Br as Dt, aC as E, I as Et, Ay as F, O as Ft, zv as G, Hv as H, by as I, D as It, km as J, fv as K, yy as L, Vy as M, Wt as Mt, By as N, Gt as Nt, _b as O, Or as Ot, Py as P, te as Pt, Zl as Q, hy as R, MC as S, Mi as St, iC as T, Gr as Tt, Vv as U, Uv as V, Bv as W, Ef as X, Om as Y, lu as Z, _w as _, To as _t, xT as a, Ds as at, iw as b, pa as bt, eT as c, Ko as ct, qw as d, Uo as dt, ql as et, Rw as f, Fo as ft, vw as g, Eo as gt, Ow as h, Do as ht, CT as i, Dl as it, Hy as j, sn as jt, ub as k, vn as kt, Qw as l, Go as lt, Aw as m, Oo as mt, XT as n, Gl as nt, sT as o, Es as ot, Fw as p, R as pt, Pm as q, UT as r, Nl as rt, rT as s, fs as st, uE as t, Kl as tt, Jw as u, Wo as ut, gw as v, wo as vt, dC as w, Kr as wt, nw as x, Bi as xt, fw as y, ga as yt, iy as z };
16663
16665
 
16664
- //# sourceMappingURL=horizontal-keypad-B0B5dA19.js.map
16666
+ //# sourceMappingURL=horizontal-keypad-CDfgEgi8.js.map