@pie-element/explicit-constructed-response 11.1.2-next.3 → 11.1.2-next.32

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 (61) hide show
  1. package/author.js +2 -0
  2. package/dist/author/alternateResponses.js +2 -2
  3. package/dist/author/alternateSection.js +34 -33
  4. package/dist/author/defaults.js +1 -1
  5. package/dist/author/ecr-toolbar.js +1 -1
  6. package/dist/author/index.d.ts +1 -0
  7. package/dist/author/index.js +5 -2
  8. package/dist/author/main.js +3 -3
  9. package/dist/author/markupUtils.js +1 -1
  10. package/dist/browser/assets/Symbola-4c507403.woff2 +0 -0
  11. package/dist/browser/author/index.js +15 -12
  12. package/dist/browser/author/index.js.map +1 -1
  13. package/dist/browser/{browser-BC3WygxE.js → browser-xPiwYICU.js} +6 -2
  14. package/dist/browser/browser-xPiwYICU.js.map +1 -0
  15. package/dist/browser/controller/index.js +5 -5
  16. package/dist/browser/controller/index.js.map +1 -1
  17. package/dist/browser/delivery/index.js +71 -11
  18. package/dist/browser/delivery/index.js.map +1 -1
  19. package/dist/browser/{dist-D9ARZhQk.js → dist-DCmVXYeO.js} +109 -7
  20. package/dist/browser/dist-DCmVXYeO.js.map +1 -0
  21. package/dist/browser/dist-DZ6SLI-a.js +41122 -0
  22. package/dist/browser/dist-DZ6SLI-a.js.map +1 -0
  23. package/dist/browser/editor-runtime/assets/Symbola-4c507403.woff2 +0 -0
  24. package/dist/browser/editor-runtime/author/index.js +3381 -0
  25. package/dist/browser/editor-runtime/author/index.js.map +1 -0
  26. package/dist/browser/editor-runtime/browser-Dj-HJ-qm.js +364 -0
  27. package/dist/browser/editor-runtime/browser-Dj-HJ-qm.js.map +1 -0
  28. package/dist/browser/editor-runtime/controller/index.js +4152 -0
  29. package/dist/browser/editor-runtime/controller/index.js.map +1 -0
  30. package/dist/browser/editor-runtime/delivery/index.js +156 -0
  31. package/dist/browser/editor-runtime/delivery/index.js.map +1 -0
  32. package/dist/browser/editor-runtime/dist-DCmVXYeO.js +1528 -0
  33. package/dist/browser/editor-runtime/dist-DCmVXYeO.js.map +1 -0
  34. package/dist/browser/editor-runtime/dist-KQHUaPGT.js +24713 -0
  35. package/dist/browser/editor-runtime/dist-KQHUaPGT.js.map +1 -0
  36. package/dist/browser/{main-Cek7SQzj.js → editor-runtime/main-3Z9osroR.js} +250 -255
  37. package/dist/browser/editor-runtime/main-3Z9osroR.js.map +1 -0
  38. package/dist/browser/editor-runtime/print/index.js +42 -0
  39. package/dist/browser/editor-runtime/print/index.js.map +1 -0
  40. package/dist/browser/main-BeVh5h6j.js +954 -0
  41. package/dist/browser/main-BeVh5h6j.js.map +1 -0
  42. package/dist/browser/print/index.js +7 -5
  43. package/dist/browser/print/index.js.map +1 -1
  44. package/dist/controller/defaults.js +1 -1
  45. package/dist/controller/index.d.ts +1 -1
  46. package/dist/controller/index.js +1 -1
  47. package/dist/delivery/index.js +19 -9
  48. package/dist/delivery/main.d.ts +0 -2
  49. package/dist/delivery/main.js +36 -38
  50. package/dist/index.iife.js +102 -146
  51. package/dist/print/index.js +5 -3
  52. package/module/assets/Symbola-4c507403.woff2 +0 -0
  53. package/{dist/browser/dist-DGLbICOs.js → module/print.js} +41065 -42849
  54. package/module/print.js.map +1 -0
  55. package/package.json +45 -28
  56. package/print.js +2 -0
  57. package/dist/browser/browser-BC3WygxE.js.map +0 -1
  58. package/dist/browser/dist-D9ARZhQk.js.map +0 -1
  59. package/dist/browser/dist-DGLbICOs.js.map +0 -1
  60. package/dist/browser/explicit-constructed-response.css +0 -2
  61. package/dist/browser/main-Cek7SQzj.js.map +0 -1
@@ -0,0 +1,156 @@
1
+ import { at as e } from "../dist-KQHUaPGT.js";
2
+ import { t } from "../main-3Z9osroR.js";
3
+ import n from "react";
4
+ import { createRoot as r } from "react-dom/client";
5
+ //#region ../../shared/player-events/dist/index.js
6
+ var i = "commitPendingSession", a = /* @__PURE__ */ new WeakMap();
7
+ function o(e, t) {
8
+ let n = a.get(e);
9
+ n || (n = /* @__PURE__ */ new Set(), a.set(e, n)), n.add(t);
10
+ }
11
+ function s(e) {
12
+ return Object.getOwnPropertyDescriptor(e, i) !== void 0;
13
+ }
14
+ function c(e) {
15
+ if (s(e)) return;
16
+ let t = e[i];
17
+ Object.defineProperty(e, i, {
18
+ value: () => {
19
+ if (typeof t == "function") try {
20
+ t.call(e);
21
+ } catch {}
22
+ u(e);
23
+ },
24
+ configurable: !0,
25
+ enumerable: !1,
26
+ writable: !0
27
+ });
28
+ }
29
+ function l(e, t, n = {}) {
30
+ let r = n.delayMs, i = typeof r == "function" ? r : () => r ?? 0, a = n.maxWaitMs, s = null, l = null, u = !1, d = () => {
31
+ s !== null && (clearTimeout(s), s = null), l !== null && (clearTimeout(l), l = null);
32
+ }, f = () => {
33
+ d(), u && (u = !1, t());
34
+ }, p = {
35
+ notify() {
36
+ u = !0, s !== null && clearTimeout(s), s = setTimeout(f, Math.max(0, i())), a !== void 0 && l === null && (l = setTimeout(f, Math.max(0, a)));
37
+ },
38
+ flush() {
39
+ if (!u) {
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 o(e, p), c(e), p;
51
+ }
52
+ function u(e) {
53
+ let t = a.get(e);
54
+ if (t) for (let e of [...t]) e.flush();
55
+ }
56
+ var d = class e extends CustomEvent {
57
+ static {
58
+ this.TYPE = "model-set";
59
+ }
60
+ constructor(t, n, r) {
61
+ super(e.TYPE, {
62
+ bubbles: !0,
63
+ composed: !0,
64
+ detail: {
65
+ complete: n,
66
+ component: t,
67
+ hasModel: r
68
+ }
69
+ }), this.component = t, this.complete = n;
70
+ }
71
+ }, f = class e extends CustomEvent {
72
+ static {
73
+ this.TYPE = "session-changed";
74
+ }
75
+ constructor(t, n) {
76
+ super(e.TYPE, {
77
+ bubbles: !0,
78
+ composed: !0,
79
+ detail: {
80
+ complete: n,
81
+ component: t
82
+ }
83
+ }), this.component = t, this.complete = n;
84
+ }
85
+ }, p = 200;
86
+ function m(e) {
87
+ let t = e && e.maxLengthPerChoice;
88
+ return Array.isArray(t) && t.length > 0 && t.every((e) => e === 1) ? 0 : p;
89
+ }
90
+ var h = class extends HTMLElement {
91
+ constructor() {
92
+ super(), this._model = null, this._session = null, this._root = null, this._sessionNotifier = l(this, () => {
93
+ this.dispatchChangedEvent(), this._render();
94
+ }, {
95
+ delayMs: () => m(this._model),
96
+ maxWaitMs: p
97
+ });
98
+ }
99
+ setLangAttribute() {
100
+ let e = this._model && typeof this._model.language ? this._model.language : "", t = e ? e.slice(0, 2) : "en";
101
+ this.setAttribute("lang", t);
102
+ }
103
+ set model(e) {
104
+ this._model = e, this.dispatchEvent(new d(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model)), this.setLangAttribute(), this._render();
105
+ }
106
+ set session(e) {
107
+ this._session = e, this._render();
108
+ }
109
+ get session() {
110
+ return this._session;
111
+ }
112
+ _render = () => {
113
+ if (this._model && this._session) {
114
+ let i = n.createElement(t, {
115
+ choices: this._model.choices,
116
+ disabled: this._model.disabled,
117
+ displayType: this._model.displayType,
118
+ feedback: this._model.feedback,
119
+ language: this._model.language,
120
+ markup: this._model.markup,
121
+ maxLengthPerChoice: this._model.maxLengthPerChoice,
122
+ maxLengthPerChoiceEnabled: this._model.maxLengthPerChoiceEnabled,
123
+ mode: this._model.mode,
124
+ note: this._model.note,
125
+ onChange: this.changeSession,
126
+ playerSpellCheckEnabled: this._model.playerSpellCheckEnabled,
127
+ prompt: this._model.prompt,
128
+ rationale: this._model.rationale,
129
+ role: this._model.role,
130
+ showNote: this._model.showNote,
131
+ teacherInstructions: this._model.teacherInstructions,
132
+ value: this._session.value,
133
+ responseAreaInputConfiguration: this._model.responseAreaInputConfiguration
134
+ });
135
+ this._root ||= r(this), this._root.render(i), queueMicrotask(() => {
136
+ e(this);
137
+ });
138
+ }
139
+ };
140
+ dispatchChangedEvent = () => {
141
+ this.dispatchEvent(new f(this.tagName.toLowerCase(), this.session && !!this.session.value));
142
+ };
143
+ changeSession = (e) => {
144
+ this.session.value = e, this._sessionNotifier.notify();
145
+ };
146
+ connectedCallback() {
147
+ this.setAttribute("aria-label", "Fill in the Blank Question"), this.setAttribute("role", "region"), this._render();
148
+ }
149
+ disconnectedCallback() {
150
+ u(this), this._root &&= (this._root.unmount(), null);
151
+ }
152
+ };
153
+ //#endregion
154
+ export { h as default };
155
+
156
+ //# sourceMappingURL=index.js.map
@@ -0,0 +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/**\n * @synced-from pie-elements/packages/explicit-constructed-response/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 {\n ModelSetEvent,\n SessionChangedEvent,\n createSessionNotifier,\n flushSessionNotifiers,\n} from '@pie-element/shared-player-events';\nimport { renderMath } from '@pie-element/shared-math-rendering-mathjax';\n\nimport Main from './main.js';\n\nconst SESSION_NOTIFY_DELAY_MS = 200;\n\n// Every blank capped at one character means each keystroke is a whole response,\n// so there is nothing to coalesce and the dispatch goes out on the next tick.\nfunction notifyDelayForModel(model) {\n const lengths = model && model.maxLengthPerChoice;\n const singleCharacterBlanks =\n Array.isArray(lengths) && lengths.length > 0 && lengths.every((length) => length === 1);\n return singleCharacterBlanks ? 0 : SESSION_NOTIFY_DELAY_MS;\n}\n\nexport default class InlineDropdown extends HTMLElement {\n constructor() {\n super();\n this._model = null;\n this._session = null;\n this._root = null;\n\n // The session is written synchronously on commit; the dispatch and the\n // re-render are what get coalesced, which keeps the render cadence the\n // value-path debounce used to set while leaving `.session` readable at any\n // point. `disconnectedCallback` flushes what is still pending.\n this._sessionNotifier = createSessionNotifier(\n this,\n () => {\n this.dispatchChangedEvent();\n this._render();\n },\n { delayMs: () => notifyDelayForModel(this._model), maxWaitMs: SESSION_NOTIFY_DELAY_MS },\n );\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\n set model(m) {\n this._model = m;\n this.dispatchEvent(\n new ModelSetEvent(this.tagName.toLowerCase(), this.session && !!this.session.value, !!this._model),\n );\n this.setLangAttribute();\n\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 _render: any = () => {\n if (this._model && this._session) {\n let elem = React.createElement(Main, {\n choices: this._model.choices,\n disabled: this._model.disabled,\n displayType: this._model.displayType,\n feedback: this._model.feedback,\n language: this._model.language,\n markup: this._model.markup,\n maxLengthPerChoice: this._model.maxLengthPerChoice,\n maxLengthPerChoiceEnabled: this._model.maxLengthPerChoiceEnabled,\n mode: this._model.mode,\n note: this._model.note,\n onChange: this.changeSession,\n playerSpellCheckEnabled: this._model.playerSpellCheckEnabled,\n prompt: this._model.prompt,\n rationale: this._model.rationale,\n role: this._model.role,\n showNote: this._model.showNote,\n teacherInstructions: this._model.teacherInstructions,\n value: this._session.value,\n responseAreaInputConfiguration: this._model.responseAreaInputConfiguration,\n });\n\n if (!this._root) {\n this._root = createRoot(this);\n }\n this._root.render(elem);\n queueMicrotask(() => {\n renderMath(this);\n });\n }\n };\n\n dispatchChangedEvent: any = () => {\n this.dispatchEvent(new SessionChangedEvent(this.tagName.toLowerCase(), this.session && !!this.session.value));\n };\n\n changeSession: any = (value) => {\n this.session.value = value;\n this._sessionNotifier.notify();\n };\n\n connectedCallback() {\n this.setAttribute('aria-label', 'Fill in the Blank Question');\n this.setAttribute('role', 'region');\n\n this._render();\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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"}