@pie-element/math-inline 12.1.1-next.21 → 12.1.1-next.23

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.
@@ -1,9 +1,59 @@
1
- import { p as e, s as t, y as n } from "../dist--pvq7WNe.js";
2
- import { t as r } from "../main-m39H1gPw.js";
3
- import i from "react";
4
- import { createRoot as a } from "react-dom/client";
1
+ import { p as e, y as t } from "../dist--pvq7WNe.js";
2
+ import { t as n } from "../main-BQ7eEzl_.js";
3
+ import r from "react";
4
+ import { createRoot as i } from "react-dom/client";
5
5
  //#region ../../shared/player-events/dist/index.js
6
- var o = /* @__PURE__ */ n(e(), 1), s = class e extends CustomEvent {
6
+ var a = /* @__PURE__ */ t(e(), 1), o = "commitPendingSession", s = /* @__PURE__ */ new WeakMap();
7
+ function c(e, t) {
8
+ let n = s.get(e);
9
+ n || (n = /* @__PURE__ */ new Set(), s.set(e, n)), n.add(t);
10
+ }
11
+ function l(e) {
12
+ return Object.getOwnPropertyDescriptor(e, o) !== void 0;
13
+ }
14
+ function u(e) {
15
+ if (l(e)) return;
16
+ let t = e[o];
17
+ Object.defineProperty(e, o, {
18
+ value: () => {
19
+ if (typeof t == "function") try {
20
+ t.call(e);
21
+ } catch {}
22
+ f(e);
23
+ },
24
+ configurable: !0,
25
+ enumerable: !1,
26
+ writable: !0
27
+ });
28
+ }
29
+ function d(e, t, n = {}) {
30
+ let r = n.delayMs, i = typeof r == "function" ? r : () => r ?? 0, a = n.maxWaitMs, o = null, s = null, l = !1, d = () => {
31
+ o !== null && (clearTimeout(o), o = null), s !== null && (clearTimeout(s), s = null);
32
+ }, f = () => {
33
+ d(), l && (l = !1, t());
34
+ }, p = {
35
+ notify() {
36
+ l = !0, o !== null && clearTimeout(o), o = setTimeout(f, Math.max(0, i())), a !== void 0 && s === null && (s = setTimeout(f, Math.max(0, a)));
37
+ },
38
+ flush() {
39
+ if (!l) {
40
+ d();
41
+ return;
42
+ }
43
+ try {
44
+ f();
45
+ } catch (e) {
46
+ console.warn("[session-notifier] a committed session-changed dispatch threw", e);
47
+ }
48
+ }
49
+ };
50
+ return c(e, p), u(e), p;
51
+ }
52
+ function f(e) {
53
+ let t = s.get(e);
54
+ if (t) for (let e of [...t]) e.flush();
55
+ }
56
+ var p = class e extends CustomEvent {
7
57
  static {
8
58
  this.TYPE = "model-set";
9
59
  }
@@ -18,7 +68,7 @@ var o = /* @__PURE__ */ n(e(), 1), s = class e extends CustomEvent {
18
68
  }
19
69
  }), this.component = t, this.complete = n;
20
70
  }
21
- }, c = class e extends CustomEvent {
71
+ }, m = class e extends CustomEvent {
22
72
  static {
23
73
  this.TYPE = "session-changed";
24
74
  }
@@ -32,11 +82,11 @@ var o = /* @__PURE__ */ n(e(), 1), s = class e extends CustomEvent {
32
82
  }
33
83
  }), this.component = t, this.complete = n;
34
84
  }
35
- }, l = { configuration: {} }, u = (0, o.default)("pie-ui:math-inline"), d = class extends HTMLElement {
85
+ }, h = { configuration: {} }, g = (0, a.default)("pie-ui:math-inline"), _ = class extends HTMLElement {
36
86
  constructor() {
37
- super(), this._root = null, this._configuration = l.configuration, this.sessionChangedEventCaller = t(() => {
38
- this.dispatchEvent(new c(this.tagName.toLowerCase(), !0));
39
- }, 1e3);
87
+ super(), this._root = null, this._configuration = h.configuration, this._sessionNotifier = d(this, () => {
88
+ this.dispatchEvent(new m(this.tagName.toLowerCase(), !0));
89
+ }, { delayMs: 1e3 }), this.sessionChangedEventCaller = () => this._sessionNotifier.notify();
40
90
  }
41
91
  setLangAttribute() {
42
92
  let e = this._model && typeof this._model.language ? this._model.language : "", t = e ? e.slice(0, 2) : "en";
@@ -45,7 +95,7 @@ var o = /* @__PURE__ */ n(e(), 1), s = class e extends CustomEvent {
45
95
  n && n.setAttribute("lang", t);
46
96
  }
47
97
  set model(e) {
48
- this._model = e, this.dispatchEvent(new s(this._model, !0, !!this._model)), this.setLangAttribute(), this._render();
98
+ this._model = e, this.dispatchEvent(new p(this._model, !0, !!this._model)), this.setLangAttribute(), this._render();
49
99
  }
50
100
  set session(e) {
51
101
  this._session = e, this._render();
@@ -59,26 +109,26 @@ var o = /* @__PURE__ */ n(e(), 1), s = class e extends CustomEvent {
59
109
  sessionChanged(e) {
60
110
  Object.keys(e).map((t) => {
61
111
  this._session[t] = e[t];
62
- }), this.sessionChangedEventCaller(), u("session: ", this._session);
112
+ }), this.sessionChangedEventCaller(), g("session: ", this._session);
63
113
  }
64
114
  connectedCallback() {
65
115
  this.setAttribute("aria-label", "Math Response Question"), this.setAttribute("role", "region"), this._render();
66
116
  }
67
117
  _render() {
68
118
  if (!this._model || !this._session) return;
69
- let e = i.createElement(r, {
119
+ let e = r.createElement(n, {
70
120
  model: this._model,
71
121
  session: this._session,
72
122
  configuration: this._configuration,
73
123
  onSessionChange: this.sessionChanged.bind(this)
74
124
  });
75
- this._root ||= a(this), this._root.render(e);
125
+ this._root ||= i(this), this._root.render(e);
76
126
  }
77
127
  disconnectedCallback() {
78
- this._root &&= (this._root.unmount(), null);
128
+ f(this), this._root &&= (this._root.unmount(), null);
79
129
  }
80
130
  };
81
131
  //#endregion
82
- export { r as Component, d as default };
132
+ export { n as Component, _ as default };
83
133
 
84
134
  //# 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/index.ts\nvar e = 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}, t = 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 { e as ModelSetEvent, t as SessionChangedEvent };\n","// @ts-nocheck\n/**\n * @synced-from pie-elements/packages/math-inline/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport { debounce } from '@pie-element/shared-lodash';\nimport { ModelSetEvent, SessionChangedEvent } from '@pie-element/shared-player-events';\n\n// Inlined from configure/lib/defaults (configure/ not synced - ESM-incompatible)\nconst defaults = {\n configuration: {\n // Minimal configuration for student-facing UI\n // Full authoring configuration is only needed in the configure package\n } as any\n};;\nimport Main from './main.js';\n\nconst log = debug('pie-ui:math-inline');\n\nexport { Main as Component };\n\nexport default class MathInline extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._configuration = defaults.configuration;\n this.sessionChangedEventCaller = debounce(() => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), true));\n }, 1000);\n }\n\n setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n\n // set the lang attribute for the nearest parent div with class 'player-container' for MPI items as per PD-2483\n const playerContainer = this.closest('.player-container');\n if (playerContainer) {\n playerContainer.setAttribute('lang', lang);\n }\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(new ModelSetEvent(this._model, true, !!this._model));\n this.setLangAttribute();\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n sessionChanged(s) {\n Object.keys(s).map((key) => {\n this._session[key] = s[key];\n });\n\n this.sessionChangedEventCaller();\n log('session: ', this._session);\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Math Response Question');\n this.setAttribute('role', 'region');\n\n this._render();\n }\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n configuration: this._configuration,\n onSessionChange: this.sessionChanged.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\n }\n\n disconnectedCallback() {\n if (this._root) {\n this._root.unmount();\n this._root = null;\n }\n }\n}\n"],"mappings":";;;;;mCACI,IAAI,MAAM,UAAU,YAAY;CACnC;EACC,KAAK,OAAO;CACb;CACA,YAAY,GAAG,GAAG,GAAG;EACpB,MAAM,EAAE,MAAM;GACb,SAAS,CAAC;GACV,UAAU,CAAC;GACX,QAAQ;IACP,UAAU;IACV,WAAW;IACX,UAAU;GACX;EACD,CAAC,GAAG,KAAK,YAAY,GAAG,KAAK,WAAW;CACzC;AACD,GAAG,IAAI,MAAM,UAAU,YAAY;CAClC;EACC,KAAK,OAAO;CACb;CACA,YAAY,GAAG,GAAG;EACjB,MAAM,EAAE,MAAM;GACb,SAAS,CAAC;GACV,UAAU,CAAC;GACX,QAAQ;IACP,UAAU;IACV,WAAW;GACZ;EACD,CAAC,GAAG,KAAK,YAAY,GAAG,KAAK,WAAW;CACzC;AACD,GCbM,IAAW,EACf,eAAe,CAGf,EACF,GAGM,KAAA,GAAA,EAAA,QAAA,CAAY,oBAAoB,GAIjB,IAArB,cAAwC,YAAY;CAClD,cAAc;EAIZ,AAHA,MAAM,GACN,KAAK,QAAQ,MACb,KAAK,iBAAiB,EAAS,eAC/B,KAAK,4BAA4B,QAAe;GAC9C,KAAK,cAAc,IAAI,EAAoB,KAAK,QAAQ,YAAY,GAAG,EAAI,CAAC;EAC9E,GAAG,GAAI;CACT;CAEA,mBAAmB;EACjB,IAAM,IAAW,KAAK,UAAU,OAAO,KAAK,OAAO,WAAW,KAAK,OAAO,WAAW,IAC/E,IAAO,IAAW,EAAS,MAAM,GAAG,CAAC,IAAI;EAC/C,KAAK,aAAa,QAAQ,CAAI;EAG9B,IAAM,IAAkB,KAAK,QAAQ,mBAAmB;EACxD,AAAI,KACF,EAAgB,aAAa,QAAQ,CAAI;CAE7C;CAEA,IAAI,MAAM,GAAG;EAIX,AAHA,KAAK,SAAS,GACd,KAAK,cAAc,IAAI,EAAc,KAAK,QAAQ,IAAM,CAAC,CAAC,KAAK,MAAM,CAAC,GACtE,KAAK,iBAAiB,GACtB,KAAK,QAAQ;CACf;CAEA,IAAI,QAAQ,GAAG;EAEb,AADA,KAAK,WAAW,GAChB,KAAK,QAAQ;CACf;CAEA,IAAI,UAAU;EACZ,OAAO,KAAK;CACd;CAEA,IAAI,cAAc,GAAG;EAEnB,AADA,KAAK,iBAAiB,GACtB,KAAK,QAAQ;CACf;CAEA,eAAe,GAAG;EAMhB,AALA,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,MAAQ;GAC1B,KAAK,SAAS,KAAO,EAAE;EACzB,CAAC,GAED,KAAK,0BAA0B,GAC/B,EAAI,aAAa,KAAK,QAAQ;CAChC;CAEA,oBAAoB;EAIlB,AAHA,KAAK,aAAa,cAAc,wBAAwB,GACxD,KAAK,aAAa,QAAQ,QAAQ,GAElC,KAAK,QAAQ;CACf;CAEA,UAAU;EACR,IAAI,CAAC,KAAK,UAAU,CAAC,KAAK,UACxB;EAGF,IAAM,IAAK,EAAM,cAAc,GAAM;GACnC,OAAO,KAAK;GACZ,SAAS,KAAK;GACd,eAAe,KAAK;GACpB,iBAAiB,KAAK,eAAe,KAAK,IAAI;EAChD,CAAC;EAKD,AAHA,AACE,KAAK,UAAQ,EAAW,IAAI,GAE9B,KAAK,MAAM,OAAO,CAAE;CACtB;CAEA,uBAAuB;EACrB,AAEE,KAAK,WADL,KAAK,MAAM,QAAQ,GACN;CAEjB;AACF"}
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/**\n * @synced-from pie-elements/packages/math-inline/src/index.js\n * @auto-generated\n *\n * This file is automatically synced from pie-elements and converted to TypeScript.\n * Manual edits will be overwritten on next sync.\n * To make changes, edit the upstream JavaScript file and run sync again.\n */\n\nimport React from 'react';\nimport { createRoot } from 'react-dom/client';\nimport debug from 'debug';\nimport {\n ModelSetEvent,\n SessionChangedEvent,\n createSessionNotifier,\n flushSessionNotifiers,\n} from '@pie-element/shared-player-events';\n\n// Inlined from configure/lib/defaults (configure/ not synced - ESM-incompatible)\nconst defaults = {\n configuration: {\n // Minimal configuration for student-facing UI\n // Full authoring configuration is only needed in the configure package\n } as any\n};;\nimport Main from './main.js';\n\nconst log = debug('pie-ui:math-inline');\n\nexport { Main as Component };\n\nexport default class MathInline extends HTMLElement {\n constructor() {\n super();\n this._root = null;\n this._configuration = defaults.configuration;\n // Session state is already written synchronously in `sessionChanged`; 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 setLangAttribute() {\n const language = this._model && typeof this._model.language ? this._model.language : '';\n const lang = language ? language.slice(0, 2) : 'en';\n this.setAttribute('lang', lang);\n\n // set the lang attribute for the nearest parent div with class 'player-container' for MPI items as per PD-2483\n const playerContainer = this.closest('.player-container');\n if (playerContainer) {\n playerContainer.setAttribute('lang', lang);\n }\n }\n\n set model(m) {\n this._model = m;\n this.dispatchEvent(new ModelSetEvent(this._model, true, !!this._model));\n this.setLangAttribute();\n this._render();\n }\n\n set session(s) {\n this._session = s;\n this._render();\n }\n\n get session() {\n return this._session;\n }\n\n set configuration(c) {\n this._configuration = c;\n this._render();\n }\n\n sessionChanged(s) {\n Object.keys(s).map((key) => {\n this._session[key] = s[key];\n });\n\n this.sessionChangedEventCaller();\n log('session: ', this._session);\n }\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Math Response Question');\n this.setAttribute('role', 'region');\n\n this._render();\n }\n\n _render() {\n if (!this._model || !this._session) {\n return;\n }\n\n const el = React.createElement(Main, {\n model: this._model,\n session: this._session,\n configuration: this._configuration,\n onSessionChange: this.sessionChanged.bind(this),\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(el);\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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"}