@pie-element/placement-ordering 14.1.2-next.5 → 14.1.3

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 (108) hide show
  1. package/CHANGELOG.json +1312 -0
  2. package/CHANGELOG.md +2444 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +57 -0
  5. package/configure/CHANGELOG.json +952 -0
  6. package/configure/CHANGELOG.md +2139 -0
  7. package/configure/lib/choice-editor.js +252 -0
  8. package/configure/lib/choice-editor.js.map +1 -0
  9. package/configure/lib/choice-tile.js +205 -0
  10. package/configure/lib/choice-tile.js.map +1 -0
  11. package/configure/lib/defaults.js +211 -0
  12. package/configure/lib/defaults.js.map +1 -0
  13. package/configure/lib/design.js +427 -0
  14. package/configure/lib/design.js.map +1 -0
  15. package/configure/lib/help.js +14 -0
  16. package/configure/lib/help.js.map +1 -0
  17. package/configure/lib/index.js +155 -0
  18. package/configure/lib/index.js.map +1 -0
  19. package/configure/lib/utils.js +108 -0
  20. package/configure/lib/utils.js.map +1 -0
  21. package/configure/package.json +26 -0
  22. package/controller/CHANGELOG.json +517 -0
  23. package/controller/CHANGELOG.md +1518 -0
  24. package/controller/lib/defaults.js +29 -0
  25. package/controller/lib/defaults.js.map +1 -0
  26. package/controller/lib/index.js +285 -0
  27. package/controller/lib/index.js.map +1 -0
  28. package/controller/lib/scoring.js +109 -0
  29. package/controller/lib/scoring.js.map +1 -0
  30. package/controller/package.json +15 -0
  31. package/docs/config-schema.json +2964 -0
  32. package/docs/config-schema.json.md +2190 -0
  33. package/docs/demo/config.js +8 -0
  34. package/docs/demo/generate.js +50 -0
  35. package/docs/demo/index.html +1 -0
  36. package/docs/demo/session.js +7 -0
  37. package/docs/pie-schema.json +1613 -0
  38. package/docs/pie-schema.json.md +973 -0
  39. package/icon.png +0 -0
  40. package/lib/index.js +122 -0
  41. package/lib/index.js.map +1 -0
  42. package/lib/main.js +32 -0
  43. package/lib/main.js.map +1 -0
  44. package/lib/ordering.js +165 -0
  45. package/lib/ordering.js.map +1 -0
  46. package/lib/placement-ordering.js +419 -0
  47. package/lib/placement-ordering.js.map +1 -0
  48. package/lib/tile.js +259 -0
  49. package/lib/tile.js.map +1 -0
  50. package/lib/tiler.js +165 -0
  51. package/lib/tiler.js.map +1 -0
  52. package/lib/utils.js +18 -0
  53. package/lib/utils.js.map +1 -0
  54. package/package.json +21 -88
  55. package/configure.js +0 -2
  56. package/controller.js +0 -1
  57. package/dist/author/choice-editor.d.ts +0 -39
  58. package/dist/author/choice-editor.js +0 -156
  59. package/dist/author/choice-tile.d.ts +0 -40
  60. package/dist/author/choice-tile.js +0 -132
  61. package/dist/author/defaults.d.ts +0 -213
  62. package/dist/author/defaults.js +0 -159
  63. package/dist/author/design.d.ts +0 -21
  64. package/dist/author/design.js +0 -273
  65. package/dist/author/help.d.ts +0 -11
  66. package/dist/author/index.d.ts +0 -45
  67. package/dist/author/index.js +0 -85
  68. package/dist/author/utils.d.ts +0 -15
  69. package/dist/author/utils.js +0 -62
  70. package/dist/browser/author/index.js +0 -46600
  71. package/dist/browser/author/index.js.map +0 -1
  72. package/dist/browser/browser-DHPggtaA.js +0 -376
  73. package/dist/browser/browser-DHPggtaA.js.map +0 -1
  74. package/dist/browser/controller/index.js +0 -242
  75. package/dist/browser/controller/index.js.map +0 -1
  76. package/dist/browser/delivery/index.js +0 -1035
  77. package/dist/browser/delivery/index.js.map +0 -1
  78. package/dist/browser/dist-D9ARZhQk.js +0 -1426
  79. package/dist/browser/dist-D9ARZhQk.js.map +0 -1
  80. package/dist/browser/drag-provider-C1slTlsc.js +0 -10555
  81. package/dist/browser/drag-provider-C1slTlsc.js.map +0 -1
  82. package/dist/browser/placement-ordering.css +0 -2
  83. package/dist/controller/defaults.d.ts +0 -31
  84. package/dist/controller/defaults.js +0 -25
  85. package/dist/controller/index.d.ts +0 -29
  86. package/dist/controller/index.js +0 -123
  87. package/dist/controller/scoring.d.ts +0 -27
  88. package/dist/controller/scoring.js +0 -30
  89. package/dist/delivery/index.d.ts +0 -26
  90. package/dist/delivery/index.js +0 -70
  91. package/dist/delivery/main.d.ts +0 -19
  92. package/dist/delivery/main.js +0 -22
  93. package/dist/delivery/ordering.d.ts +0 -18
  94. package/dist/delivery/ordering.js +0 -93
  95. package/dist/delivery/placement-ordering.d.ts +0 -28
  96. package/dist/delivery/placement-ordering.js +0 -213
  97. package/dist/delivery/tile.d.ts +0 -28
  98. package/dist/delivery/tile.js +0 -165
  99. package/dist/delivery/tiler.d.ts +0 -42
  100. package/dist/delivery/tiler.js +0 -89
  101. package/dist/delivery/utils.d.ts +0 -9
  102. package/dist/delivery/utils.js +0 -8
  103. package/dist/index.d.ts +0 -1
  104. package/dist/index.iife.d.ts +0 -8
  105. package/dist/index.iife.js +0 -152
  106. package/dist/index.js +0 -2
  107. package/dist/runtime-support.d.ts +0 -12
  108. package/dist/runtime-support.js +0 -12
@@ -1,1035 +0,0 @@
1
- import { C as e, _ as t, b as n, g as r, k as i, l as a, r as o, t as s, u as c, v as l } from "../browser-DHPggtaA.js";
2
- import { Mt as u, Pt as d, T as f, c as p, ct as m, dt as h, ft as g, l as _, lt as v, mt as y, n as b, s as x, st as S, t as C, u as ee, ut as te, v as w, yt as T } from "../drag-provider-C1slTlsc.js";
3
- import { t as E } from "../dist-D9ARZhQk.js";
4
- import D, { createElement as O, useRef as ne } from "react";
5
- import { createRoot as re } from "react-dom/client";
6
- import ie from "react-dom";
7
- import { jsx as k, jsxs as A } from "react/jsx-runtime";
8
- //#region ../../shared/player-events/dist/index.js
9
- var j = /* @__PURE__ */ i(s(), 1);
10
- (class e extends CustomEvent {
11
- static {
12
- this.TYPE = "model-set";
13
- }
14
- constructor(t, n, r) {
15
- super(e.TYPE, {
16
- bubbles: !0,
17
- composed: !0,
18
- detail: {
19
- complete: n,
20
- component: t,
21
- hasModel: r
22
- }
23
- }), this.component = t, this.complete = n;
24
- }
25
- });
26
- var ae = class e extends CustomEvent {
27
- static {
28
- this.TYPE = "session-changed";
29
- }
30
- constructor(t, n) {
31
- super(e.TYPE, {
32
- bubbles: !0,
33
- composed: !0,
34
- detail: {
35
- complete: n,
36
- component: t
37
- }
38
- }), this.component = t, this.complete = n;
39
- }
40
- }, M = /* @__PURE__ */ i(u(), 1), oe = ({ bgFill: e, fgFill: t }) => /* @__PURE__ */ A("svg", {
41
- preserveAspectRatio: "xMinYMin meet",
42
- version: "1.1",
43
- viewBox: "-283 359 34 35",
44
- style: { enableBackground: "new -283 359 34 35" },
45
- children: [
46
- /* @__PURE__ */ k("circle", {
47
- cx: "-266",
48
- cy: "375.9",
49
- r: "14",
50
- fill: e
51
- }),
52
- /* @__PURE__ */ k("path", {
53
- d: "M-280.5,375.9c0-8,6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5s-6.5,14.5-14.5,14.5S-280.5,383.9-280.5,375.9z\n M-279.5,375.9c0,7.4,6.1,13.5,13.5,13.5c7.4,0,13.5-6.1,13.5-13.5s-6.1-13.5-13.5-13.5C-273.4,362.4-279.5,368.5-279.5,375.9z",
54
- fill: e
55
- }),
56
- /* @__PURE__ */ k("polygon", {
57
- points: "-265.4,383.1 -258.6,377.2 -261.2,374.2 -264.3,376.9 -268.9,368.7 -272.4,370.6",
58
- fill: t
59
- })
60
- ]
61
- });
62
- oe.propTypes = {
63
- bgFill: M.default.string.isRequired,
64
- fgFill: M.default.string.isRequired
65
- };
66
- var se = ({ bgFill: e, fgFill: t, borderFill: n }) => /* @__PURE__ */ A("svg", {
67
- preserveAspectRatio: "xMinYMin meet",
68
- version: "1.1",
69
- viewBox: "-129.5 127 34 35",
70
- style: { enableBackground: "new -129.5 127 34 35" },
71
- children: [
72
- /* @__PURE__ */ k("path", {
73
- style: {
74
- fill: "#D0CAC5",
75
- stroke: "#E6E3E0",
76
- strokeWidth: .75,
77
- strokeMiterlimit: 10
78
- },
79
- d: "M-112.9,160.4c-8.5,0-15.5-6.9-15.5-15.5c0-8.5,6.9-15.5,15.5-15.5s15.5,6.9,15.5,15.5\n C-97.4,153.5-104.3,160.4-112.9,160.4z"
80
- }),
81
- /* @__PURE__ */ k("path", {
82
- style: {
83
- fill: "#B3ABA4",
84
- stroke: "#CDC7C2",
85
- strokeWidth: .5,
86
- strokeMiterlimit: 10
87
- },
88
- d: "M-113.2,159c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-105.2,159-113.2,159z"
89
- }),
90
- /* @__PURE__ */ k("circle", {
91
- cx: "-114.2",
92
- cy: "143.5",
93
- r: "14",
94
- fill: e
95
- }),
96
- /* @__PURE__ */ k("path", {
97
- d: "M-114.2,158c-8,0-14.5-6.5-14.5-14.5s6.5-14.5,14.5-14.5s14.5,6.5,14.5,14.5S-106.2,158-114.2,158z\n M-114.2,130c-7.4,0-13.5,6.1-13.5,13.5s6.1,13.5,13.5,13.5s13.5-6.1,13.5-13.5S-106.8,130-114.2,130z",
98
- fill: n
99
- }),
100
- /* @__PURE__ */ k("polygon", {
101
- points: "-114.8,150.7 -121.6,144.8 -119,141.8 -115.9,144.5 -111.3,136.3 -107.8,138.2",
102
- fill: t
103
- })
104
- ]
105
- });
106
- se.propTypes = {
107
- bgFill: M.default.string.isRequired,
108
- fgFill: M.default.string.isRequired,
109
- borderFill: M.default.string.isRequired
110
- };
111
- var ce = y("div")(({ size: e }) => ({
112
- width: e || "25px",
113
- height: e || "25px"
114
- })), N = ({ open: e, size: t }) => /* @__PURE__ */ k(ce, {
115
- size: t,
116
- children: e ? /* @__PURE__ */ k(oe, {
117
- bgFill: "#bce2ff",
118
- fgFill: "#1a9cff"
119
- }) : /* @__PURE__ */ k(se, {
120
- bgFill: "white",
121
- fgFill: "#1a9cff",
122
- borderFill: "#bce2ff"
123
- })
124
- });
125
- N.propTypes = {
126
- open: M.default.bool,
127
- size: M.default.string
128
- }, N.defaultProps = { open: !1 };
129
- //#endregion
130
- //#region ../../lib-react/correct-answer-toggle/dist/expander.js
131
- var le = "height ease-in 300ms, opacity ease-in 300ms", ue = y("div")(() => ({
132
- position: "relative",
133
- height: 0,
134
- overflow: "hidden",
135
- display: "flex",
136
- visibility: "hidden",
137
- width: 0,
138
- "&.enter": {
139
- transition: le,
140
- opacity: 1,
141
- height: "auto",
142
- width: "auto",
143
- visibility: "visible",
144
- minHeight: "25px"
145
- },
146
- "&.enter-done": {
147
- height: "auto",
148
- visibility: "visible",
149
- width: "auto",
150
- minHeight: "25px"
151
- },
152
- "&.exit": {
153
- transition: le,
154
- opacity: 0,
155
- height: 0,
156
- visibility: "visible",
157
- width: 0
158
- },
159
- "&.exit-done": {
160
- opacity: 0,
161
- visibility: "hidden",
162
- height: 0,
163
- width: 0
164
- }
165
- })), de = (e) => {
166
- let { show: t, children: n, className: r } = e, i = ne(null);
167
- return /* @__PURE__ */ k(m, {
168
- nodeRef: i,
169
- in: t,
170
- appear: !0,
171
- mountOnEnter: !1,
172
- timeout: 300,
173
- classNames: {
174
- enter: "enter",
175
- enterDone: "enter-done",
176
- exit: "exit",
177
- exitDone: "exit-done"
178
- },
179
- children: /* @__PURE__ */ k(ue, {
180
- ref: i,
181
- className: r,
182
- children: n
183
- })
184
- });
185
- };
186
- de.propTypes = {
187
- show: M.default.bool.isRequired,
188
- className: M.default.string,
189
- children: M.default.oneOfType([M.default.arrayOf(M.default.node), M.default.node]).isRequired
190
- };
191
- //#endregion
192
- //#region ../../lib-react/correct-answer-toggle/dist/index.js
193
- function P(e) {
194
- return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
195
- }
196
- function F(e, t) {
197
- return !e || P(e) ? e : P(e.default) ? e.default : t && P(e[t]) ? e[t] : t && P(e[t]?.default) ? e[t].default : e;
198
- }
199
- var fe = F(_, "Readable") || F(pe.Readable, "Readable"), I = b, L = I.default, pe = L && typeof L == "object" ? L : I, { translator: R } = E, me = {
200
- WebkitTouchCallout: "none",
201
- WebkitUserSelect: "none",
202
- KhtmlUserSelect: "none",
203
- MozUserSelect: "none",
204
- msUserSelect: "none",
205
- userSelect: "none"
206
- }, he = y("div")(() => ({
207
- width: "100%",
208
- cursor: "pointer"
209
- })), ge = y("div")(() => ({
210
- margin: "0 auto",
211
- textAlign: "center",
212
- display: "flex"
213
- })), _e = y("div")(() => ({
214
- width: "fit-content",
215
- minWidth: "140px",
216
- alignSelf: "center",
217
- verticalAlign: "middle",
218
- color: `var(--correct-answer-toggle-label-color, ${v.text()})`,
219
- fontWeight: "normal",
220
- ...me
221
- })), z = y("div")(() => ({
222
- position: "absolute",
223
- width: "25px",
224
- "&.enter": { opacity: "0" },
225
- "&.enter-active": {
226
- opacity: "1",
227
- transition: "opacity 0.3s ease-in"
228
- },
229
- "&.exit": { opacity: "1" },
230
- "&.exit-active": {
231
- opacity: "0",
232
- transition: "opacity 0.3s ease-in"
233
- }
234
- })), ve = y("div")(() => ({
235
- width: "25px",
236
- marginRight: "5px",
237
- display: "flex",
238
- alignItems: "center"
239
- })), ye = class e extends D.Component {
240
- static propTypes = {
241
- onToggle: M.default.func,
242
- toggled: M.default.bool,
243
- show: M.default.bool,
244
- hideMessage: M.default.string,
245
- showMessage: M.default.string,
246
- className: M.default.string,
247
- language: M.default.string
248
- };
249
- static defaultProps = {
250
- showMessage: "Show correct answer",
251
- hideMessage: "Hide correct answer",
252
- show: !1,
253
- toggled: !1
254
- };
255
- constructor(t) {
256
- super(t), this.state = { show: t.show }, this.openIconRef = D.createRef(), this.closedIconRef = D.createRef(), e.defaultProps = {
257
- ...e.defaultProps,
258
- showMessage: R.t("common:showCorrectAnswer", { lng: t.language }),
259
- hideMessage: R.t("common:hideCorrectAnswer", { lng: t.language })
260
- };
261
- }
262
- onClick() {
263
- this.props.onToggle(!this.props.toggled);
264
- }
265
- onTouch(e) {
266
- e.preventDefault(), this.props.onToggle(!this.props.toggled);
267
- }
268
- UNSAFE_componentWillReceiveProps(t) {
269
- this.setState({ show: t.show }), t.language !== this.props?.language && (e.defaultProps = {
270
- ...e.defaultProps,
271
- showMessage: R.t("common:showCorrectAnswer", { lng: t.language }),
272
- hideMessage: R.t("common:hideCorrectAnswer", { lng: t.language })
273
- });
274
- }
275
- render() {
276
- let { className: e, toggled: t, hideMessage: n, showMessage: r } = this.props;
277
- return /* @__PURE__ */ k(he, {
278
- className: e,
279
- children: /* @__PURE__ */ k(de, {
280
- show: this.state.show,
281
- children: /* @__PURE__ */ A(ge, {
282
- onClick: this.onClick.bind(this),
283
- onTouchEnd: this.onTouch.bind(this),
284
- children: [/* @__PURE__ */ A(ve, { children: [/* @__PURE__ */ k(m, {
285
- nodeRef: this.openIconRef,
286
- timeout: 400,
287
- in: t,
288
- exit: !t,
289
- classNames: {
290
- enter: "enter",
291
- enterActive: "enter-active",
292
- exit: "exit",
293
- exitActive: "exit-active"
294
- },
295
- children: /* @__PURE__ */ k(z, {
296
- ref: this.openIconRef,
297
- children: /* @__PURE__ */ k(N, { open: t }, "correct-open")
298
- })
299
- }), /* @__PURE__ */ k(m, {
300
- nodeRef: this.closedIconRef,
301
- timeout: 5e3,
302
- in: !t,
303
- exit: t,
304
- classNames: {
305
- enter: "enter",
306
- enterActive: "enter-active",
307
- exit: "exit",
308
- exitActive: "exit-active"
309
- },
310
- children: /* @__PURE__ */ k(z, {
311
- ref: this.closedIconRef,
312
- children: /* @__PURE__ */ k(N, { open: t }, "correct-closed")
313
- })
314
- })] }), /* @__PURE__ */ k(fe, {
315
- false: !0,
316
- children: /* @__PURE__ */ k(_e, {
317
- "aria-hidden": !this.state.show,
318
- children: t ? n : r
319
- })
320
- })]
321
- })
322
- })
323
- });
324
- }
325
- };
326
- //#endregion
327
- //#region ../../lib-react/drag/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js
328
- function B(e) {
329
- var t, n, r = "";
330
- if (typeof e == "string" || typeof e == "number") r += e;
331
- else if (typeof e == "object") if (Array.isArray(e)) {
332
- var i = e.length;
333
- for (t = 0; t < i; t++) e[t] && (n = B(e[t])) && (r && (r += " "), r += n);
334
- } else for (n in e) e[n] && (r && (r += " "), r += n);
335
- return r;
336
- }
337
- function V() {
338
- for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = B(e)) && (r && (r += " "), r += t);
339
- return r;
340
- }
341
- //#endregion
342
- //#region ../../lib-react/drag/dist/placeholder.js
343
- var be = y("div")(({ theme: e }) => ({
344
- "&.placeholder": {
345
- WebkitTouchCallout: "none",
346
- WebkitUserSelect: "none",
347
- KhtmlUserSelect: "none",
348
- MozUserSelect: "none",
349
- MsUserSelect: "none",
350
- userSelect: "none",
351
- width: "100%",
352
- height: "100%",
353
- background: v.white(),
354
- transition: "background-color 200ms linear, border-color 200ms linear",
355
- boxSizing: "border-box",
356
- display: "grid",
357
- gridRowGap: e.spacing(1),
358
- gridColumnGap: e.spacing(1),
359
- padding: e.spacing(1),
360
- border: `2px dashed ${v.black()}`
361
- },
362
- "&.disabled": {
363
- boxShadow: "none",
364
- background: e.palette.background.paper
365
- },
366
- "&.over": {
367
- border: `1px solid ${T[500]}`,
368
- backgroundColor: `${T[300]}`
369
- },
370
- "&.board": {
371
- padding: e.spacing(1),
372
- display: "flex",
373
- flexWrap: "wrap",
374
- alignItems: "center",
375
- minHeight: "100px",
376
- justifyContent: "center",
377
- overflow: "hidden",
378
- touchAction: "none",
379
- backgroundColor: v.backgroundDark()
380
- },
381
- "&.categorizeBoard": {
382
- padding: e.spacing(.5),
383
- display: "flex",
384
- flexWrap: "wrap",
385
- alignItems: "center",
386
- minHeight: "100px",
387
- justifyContent: "center",
388
- overflow: "hidden",
389
- touchAction: "none",
390
- backgroundColor: v.backgroundDark()
391
- },
392
- "&.verticalPool": {
393
- display: "flex",
394
- flexFlow: "column wrap"
395
- }
396
- })), H = (e) => {
397
- let { children: t, className: n, isOver: r, type: i, grid: a, disabled: o, choiceBoard: s, isCategorize: c, isVerticalPool: l, minHeight: u, extraStyles: d } = e, f = V("placeholder", o && "disabled", r && "over", i, n), p = {};
398
- if (a && a.columns && (p.gridTemplateColumns = `repeat(${a.columns}, 1fr)`), a && a.rows) {
399
- let e = a.rowsRepeatValue || "1fr";
400
- p.gridTemplateRows = `repeat(${a.rows}, ${e})`;
401
- }
402
- i === "choice" && (p.border = `1px solid ${v.borderLight()}`, p.background = v.backgroundDark());
403
- let m = c ? "categorizeBoard" : "board";
404
- return /* @__PURE__ */ k(be, {
405
- style: {
406
- ...p,
407
- minHeight: u,
408
- ...d
409
- },
410
- className: V(s ? m : f, l && "verticalPool"),
411
- children: t
412
- });
413
- };
414
- H.propTypes = {
415
- choiceBoard: M.default.bool,
416
- grid: M.default.shape({
417
- columns: M.default.number,
418
- rows: M.default.number,
419
- rowsRepeatValue: M.default.string
420
- }),
421
- children: M.default.oneOfType([M.default.arrayOf(M.default.node), M.default.node]).isRequired,
422
- className: M.default.string,
423
- isOver: M.default.bool,
424
- index: M.default.number,
425
- type: M.default.string,
426
- disabled: M.default.bool,
427
- isCategorize: M.default.bool,
428
- isVerticalPool: M.default.bool,
429
- minHeight: M.default.number
430
- };
431
- //#endregion
432
- //#region src/delivery/tile.tsx
433
- var xe = (0, j.default)("pie-elements:placement-ordering:tile"), Se = y("div")(({ theme: e }) => ({
434
- width: "100%",
435
- fontSize: e.typography.fontSize + 4,
436
- textAlign: "center",
437
- color: `rgba(${e.palette.common.black}, 0.6)`
438
- })), U = ({ type: e, index: t, isOver: n, disabled: r }) => /* @__PURE__ */ k(H, {
439
- type: e,
440
- isOver: n,
441
- disabled: r,
442
- children: e === "target" && t !== void 0 && /* @__PURE__ */ k(Se, { children: t })
443
- });
444
- U.propTypes = {
445
- type: M.default.string,
446
- index: M.default.number,
447
- isOver: M.default.bool,
448
- disabled: M.default.bool
449
- };
450
- var Ce = y("div")(({ theme: e, isDragging: t, isOver: n, disabled: r, outcome: i, label: a, type: o }) => ({
451
- cursor: r ? "not-allowed" : "grab",
452
- width: "100%",
453
- height: "100%",
454
- padding: "10px",
455
- boxSizing: "border-box",
456
- overflow: "hidden",
457
- border: o === "choice" || o === "target" ? `1px solid ${e.palette.grey[400]}` : "1px solid transparent",
458
- backgroundColor: o === "choice" || o === "target" ? v.background() : "transparent",
459
- transition: o === "choice" || o === "target" ? "background-color 150ms ease, border-color 150ms ease, opacity 150ms ease" : "none",
460
- pointerEvents: "none",
461
- userSelect: "none",
462
- ...(o === "choice" || o === "target") && { "&:hover": {
463
- backgroundColor: r ? v.background() : v.secondary(),
464
- borderColor: r ? e.palette.grey[400] : e.palette.primary.main,
465
- transform: r ? "none" : "scale(1.02)"
466
- } },
467
- ...(o === "choice" || o === "target") && n && !r && {
468
- opacity: .4,
469
- backgroundColor: v.primaryLight(),
470
- borderColor: e.palette.primary.main,
471
- borderStyle: "dashed",
472
- transform: "scale(1.05)"
473
- },
474
- ...(o === "choice" || o === "target") && t && !r && {
475
- opacity: .6,
476
- backgroundColor: v.secondaryLight(),
477
- transform: "scale(1.05) rotate(2deg)",
478
- boxShadow: "0 8px 16px rgba(0,0,0,0.2)",
479
- cursor: "grabbing"
480
- },
481
- ...(o === "choice" || o === "target") && r && {
482
- cursor: "not-allowed",
483
- "&:hover": {
484
- backgroundColor: v.background(),
485
- transform: "none"
486
- }
487
- },
488
- ...(o === "choice" || o === "target") && i === "incorrect" && { border: `1px solid ${v.incorrect()}` },
489
- ...(o === "choice" || o === "target") && i === "correct" && { border: `1px solid ${v.correct()}` },
490
- ...!a && {
491
- border: "none",
492
- "&:hover": { backgroundColor: "unset" }
493
- }
494
- })), we = (e) => {
495
- let { type: t, isDragging: n, empty: r, isOver: i, label: a, disabled: o, outcome: s, guideIndex: c } = e;
496
- return r ? /* @__PURE__ */ k(U, {
497
- type: t,
498
- index: c,
499
- isOver: i,
500
- disabled: o
501
- }) : /* @__PURE__ */ k(Ce, {
502
- type: t,
503
- isDragging: n,
504
- isOver: i,
505
- disabled: o,
506
- outcome: s,
507
- label: a,
508
- dangerouslySetInnerHTML: { __html: a }
509
- });
510
- }, W = (e) => {
511
- let { label: t, type: n, id: r, empty: i, disabled: a, outcome: o, index: s, guideIndex: c, instanceId: l, draggable: u, tileIndex: d } = e, f = `tile-${n}-${r ?? "empty"}-${d}-${l}`, p = `drop-${n}-${r ?? "empty"}-${d}-${l}`, { attributes: m, listeners: _, setNodeRef: v, transform: y, isDragging: b } = h({
512
- id: f,
513
- data: {
514
- id: r,
515
- type: n,
516
- instanceId: l,
517
- value: t,
518
- index: s
519
- },
520
- disabled: !u || a
521
- }), { setNodeRef: x, isOver: S } = g({
522
- id: p,
523
- data: {
524
- id: r,
525
- type: n,
526
- instanceId: l,
527
- value: t,
528
- index: s
529
- },
530
- disabled: b
531
- }), C = D.useRef(null);
532
- return D.useEffect(() => {
533
- let e = C.current, t = (e) => {
534
- e.preventDefault();
535
- };
536
- return e && e.addEventListener("touchstart", t, { passive: !1 }), () => {
537
- e && e.removeEventListener("touchstart", t);
538
- };
539
- }, []), xe("[render], props: ", e), /* @__PURE__ */ k("div", {
540
- ref: (e) => {
541
- C.current = e, v(e), x(e);
542
- },
543
- style: {
544
- transform: y ? `translate3d(${y.x}px, ${y.y}px, 0)` : void 0,
545
- boxSizing: "border-box",
546
- overflow: "visible",
547
- padding: 0,
548
- margin: 0,
549
- textAlign: "center",
550
- pointerEvents: "auto",
551
- cursor: a ? "not-allowed" : b ? "grabbing" : "grab",
552
- zIndex: b ? 1e3 : "auto",
553
- willChange: b ? "transform" : "auto"
554
- },
555
- ...u && !a ? {
556
- ..._,
557
- ...m
558
- } : {},
559
- children: /* @__PURE__ */ k(we, {
560
- label: t,
561
- id: r,
562
- empty: i,
563
- index: s,
564
- guideIndex: c,
565
- isOver: S,
566
- isDragging: b,
567
- disabled: a,
568
- outcome: o,
569
- type: n
570
- })
571
- });
572
- };
573
- W.propTypes = {
574
- id: M.default.any,
575
- label: M.default.string,
576
- isOver: M.default.bool,
577
- type: M.default.string,
578
- empty: M.default.bool,
579
- disabled: M.default.bool,
580
- outcome: M.default.string,
581
- index: M.default.number,
582
- guideIndex: M.default.number,
583
- instanceId: M.default.any,
584
- draggable: M.default.bool,
585
- tileIndex: M.default.number
586
- };
587
- //#endregion
588
- //#region src/delivery/tiler.tsx
589
- var G = {
590
- choiceLabel: M.default.string,
591
- targetLabel: M.default.string,
592
- disabled: M.default.bool,
593
- tiles: M.default.array.isRequired,
594
- tileSize: M.default.string,
595
- addGuide: M.default.bool
596
- }, Te = {
597
- tileSize: "1fr",
598
- disabled: !1,
599
- addGuide: !1
600
- }, Ee = (e) => {
601
- let t = (t, n) => (t.instanceId = e.instanceId, t.disabled = e.disabled, t.guideIndex = e.addGuide ? t.index + 1 : void 0, t.tileIndex = n, e.includeTargets || t.type === "choice" ? /* @__PURE__ */ O(W, {
602
- ...t,
603
- key: n
604
- }) : /* @__PURE__ */ O(W, {
605
- ...t,
606
- label: "",
607
- key: n
608
- }));
609
- return t.propTypes = { ...G }, t;
610
- }, De = y("div")(({ theme: e, includeTargets: t }) => ({
611
- display: "grid",
612
- paddingBottom: e.spacing(2),
613
- ...t && { gridGap: "10px" }
614
- })), Oe = y("div")({ textAlign: "center" }), ke = y("div")({
615
- textAlign: "center",
616
- gridRow: "3/4"
617
- }), Ae = y("div")(({ includeTargets: e }) => ({
618
- gridAutoFlow: "column",
619
- display: "grid",
620
- ...e && { gridGap: "10px" }
621
- })), je = y("div")({
622
- gridColumn: "1/2",
623
- textAlign: "center"
624
- }), Me = y("div")({
625
- gridColumn: "2/3",
626
- textAlign: "center"
627
- }), Ne = class extends D.Component {
628
- static propTypes = { ...G };
629
- static defaultProps = { ...Te };
630
- render() {
631
- let { includeTargets: e, choiceLabelEnabled: t, choiceLabel: n, targetLabel: r, tiles: i, tileSize: a } = this.props, o = e ? `auto ${a} auto ${a}` : `auto ${a} auto`, s = e ? i.length / 2 : i.length, c = {
632
- gridTemplateColumns: e ? `repeat(${s}, ${a})` : `auto repeat(${Math.floor(s / 2) - 1}, ${a} 10px) ${a} auto`,
633
- gridTemplateRows: o
634
- }, l = { gridColumn: `1/${s + 1}` };
635
- return /* @__PURE__ */ A(De, {
636
- includeTargets: e,
637
- style: c,
638
- children: [
639
- /* @__PURE__ */ k(Oe, {
640
- style: l,
641
- dangerouslySetInnerHTML: { __html: t ? n : "" }
642
- }),
643
- e && /* @__PURE__ */ k(ke, {
644
- style: l,
645
- dangerouslySetInnerHTML: { __html: r }
646
- }),
647
- i.map(Ee(this.props))
648
- ]
649
- });
650
- }
651
- }, Pe = class extends D.Component {
652
- static propTypes = { ...G };
653
- static defaultProps = { ...Te };
654
- render() {
655
- let { includeTargets: e, choiceLabelEnabled: t, choiceLabel: n, targetLabel: r, tiles: i, tileSize: a } = this.props, o = e ? 2 : 1, s = e ? i.length / 2 : i.length;
656
- return /* @__PURE__ */ A(Ae, {
657
- includeTargets: e,
658
- style: {
659
- gridTemplateColumns: `repeat(${o}, ${a})`,
660
- gridTemplateRows: e ? `auto repeat(${s}, ${a})` : `auto auto repeat(${Math.floor(s / 2) - 1}, ${a} 10px) ${a} auto`
661
- },
662
- children: [
663
- /* @__PURE__ */ k(je, { dangerouslySetInnerHTML: { __html: t ? n : "" } }),
664
- e && /* @__PURE__ */ k(Me, { dangerouslySetInnerHTML: { __html: r } }),
665
- i.map(Ee(this.props))
666
- ]
667
- });
668
- }
669
- }, K = (0, j.default)("pie-elements:placement-ordering:ordering"), Fe = (e, t, n) => {
670
- let r = e.find((e, n) => n === t), i = e.filter((e, n) => n !== t);
671
- return [
672
- ...i.slice(0, n),
673
- r,
674
- ...i.slice(n)
675
- ];
676
- }, Ie = (e, n, r) => {
677
- if (K("[swap]", e, n, r), !e || e.length <= 1 || n === void 0 || r === void 0) throw Error(`swap requires a non-empty array, fromIndex, toIndex: ${e}, ${n} ${r}`);
678
- let i = t(e), a = e[r];
679
- return i[r] = i[n], i[n] = a, i;
680
- };
681
- function Le(e, n) {
682
- let r = t(e.response);
683
- if (r[n.index] === n.id) r[n.index] = void 0;
684
- else throw Error(`Tried to remove from index: ${n.index}, but the id doesn't match: array: ${r}, target: ${n.id}`);
685
- return r;
686
- }
687
- function Re(e, n, r) {
688
- let { response: i, opts: a } = e, o = t(i);
689
- if (a.includeTargets) return n.type === "choice" && r.type === "target" ? (o[r.index] = n.id, o) : n.type === "target" && r.type === "choice" ? (o[n.index] = void 0, o) : n.type === "target" && r.type === "target" ? Ie(i, n.index, r.index) : (K("do nothing to the response"), i);
690
- {
691
- let t = e.response.findIndex((e) => e !== void 0 && e === n.id), i = e.response.findIndex((e) => e !== void 0 && e === r.id);
692
- return K("fromIndex: ", t, "toIndex:", i), Fe(e.response, t, i);
693
- }
694
- }
695
- function q(e, t, n, r) {
696
- if (r.includeTargets) {
697
- let i = [];
698
- for (let r = 0; r < t.length; r++) {
699
- let a = t[r], o = e.find((e) => a != null && e.id === a), s = n[r], c = Object.assign({
700
- type: "target",
701
- index: r,
702
- empty: o === void 0
703
- }, o, s, { draggable: o !== void 0 });
704
- i.push(c);
705
- }
706
- return e.map((e) => t.indexOf(e.id) !== -1 && !r.allowSameChoiceInTargets ? {
707
- type: "choice",
708
- empty: !0,
709
- droppable: !0,
710
- draggable: !1
711
- } : Object.assign({}, e, {
712
- type: "choice",
713
- droppable: !1,
714
- draggable: !0
715
- })).concat(i);
716
- } else return t.reduce((t, r, i) => {
717
- let a = Object.assign({
718
- type: "empty",
719
- draggable: !1,
720
- droppable: !0
721
- }, e.find((e) => e.id === r), n[i]), o = Object.assign({
722
- type: "choice",
723
- draggable: !0,
724
- droppable: !0
725
- }, e.find((e) => e.id === r), n[i]);
726
- return i === 0 && t.push(a), t.push(o, a), t;
727
- }, []);
728
- }
729
- function ze(e, t, r, i) {
730
- return i = n({ includeTargets: !0 }, i), r ||= [], t = !t || a(t) ? i.includeTargets ? Array(e.length) : c(e, (e) => e.id) : t, {
731
- choices: e,
732
- response: t,
733
- opts: i,
734
- outcomes: r,
735
- tiles: q(e, t, r, i)
736
- };
737
- }
738
- function Be(e, t) {
739
- switch (e.type) {
740
- case "move": {
741
- let { from: n, to: r } = e, i = Re(t, n, r), a = q(t.choices, i, t.outcomes, t.opts);
742
- return Object.assign({}, t, {
743
- response: i,
744
- tiles: a
745
- });
746
- }
747
- case "remove": {
748
- let { target: n } = e, r = Le(t, n), i = q(t.choices, r, t.outcomes, t.opts);
749
- return Object.assign({}, t, {
750
- response: r,
751
- tiles: i
752
- });
753
- }
754
- }
755
- return t;
756
- }
757
- //#endregion
758
- //#region src/delivery/utils.ts
759
- var Ve = (e, t) => {
760
- if (!Array.isArray(e) || !Array.isArray(t) || e.length !== t.length) return !1;
761
- let n = (e) => e.map((e) => JSON.stringify(e)).sort(), r = n(e), i = n(t), a = r.every((e, t) => e === i[t]), o = e.every((e, n) => JSON.stringify(e) === JSON.stringify(t[n]));
762
- return a && !o;
763
- };
764
- //#endregion
765
- //#region src/delivery/placement-ordering.tsx
766
- function J(e) {
767
- return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
768
- }
769
- function Y(e, t) {
770
- return !e || J(e) ? e : J(e.default) ? e.default : t && J(e[t]) ? e[t] : t && J(e[t]?.default) ? e[t].default : e;
771
- }
772
- var He = Y(w, "UiLayout") || Y(Q.UiLayout, "UiLayout"), X = Y(ee, "PreviewPrompt") || Y(Q.PreviewPrompt, "PreviewPrompt"), Ue = Y(S, "Feedback") || Y(Q.Feedback, "Feedback"), We = Y(f, "Collapsible") || Y(Q.Collapsible, "Collapsible"), Ge = b, Z = Ge.default, Q = Z && typeof Z == "object" ? Z : Ge, { translator: Ke } = E, qe = (0, j.default)("pie-elements:placement-ordering"), Je = y("div")({
773
- color: v.text(),
774
- backgroundColor: v.background(),
775
- display: "flex",
776
- flexDirection: "column",
777
- alignItems: "center",
778
- boxSizing: "border-box"
779
- }), Ye = y("div")(({ theme: e }) => ({ paddingBottom: e.spacing(1) })), Xe = y("div")(({ theme: e }) => ({ paddingBottom: e.spacing(2) })), Ze = y(ye)(({ theme: e }) => ({ paddingBottom: e.spacing(1) })), $ = y(We)(({ theme: e }) => ({
780
- marginBottom: e.spacing(2),
781
- alignSelf: "flex-start"
782
- })), Qe = (e) => {
783
- let { tiler: t, ordering: n, onDropChoice: r, onRemoveChoice: i, ...a } = e;
784
- return /* @__PURE__ */ k(t, {
785
- ...a,
786
- tiles: n.tiles,
787
- onDropChoice: (e, t) => r(e, t, n),
788
- onRemoveChoice: (e) => i(e, n)
789
- });
790
- };
791
- Qe.propTypes = {
792
- tiler: M.default.func,
793
- ordering: M.default.any,
794
- onDropChoice: M.default.func,
795
- onRemoveChoice: M.default.func
796
- };
797
- var $e = class extends D.Component {
798
- static propTypes = {
799
- onSessionChange: M.default.func.isRequired,
800
- model: M.default.object.isRequired,
801
- session: M.default.oneOfType([M.default.array.isRequired, M.default.object.isRequired])
802
- };
803
- constructor(e) {
804
- super(e), this.instanceId = r();
805
- let { value: t, needsReset: n } = this.validateSession(e);
806
- this.state = { showingCorrect: !1 };
807
- let { model: i } = e || {}, { env: a } = i || {}, { mode: o } = a || {};
808
- n && o === "gather" && this.props.onSessionChange({
809
- ...e.session,
810
- value: t
811
- });
812
- }
813
- toggleCorrect = (e) => this.setState({ showingCorrect: e });
814
- componentDidUpdate() {
815
- d(ie.findDOMNode(this));
816
- }
817
- validateSession = ({ model: e, session: t }, n = !1) => {
818
- let { config: r, choices: i } = e || {}, { includeTargets: a } = r || {}, s = i.map((e) => e.id), { value: c } = t || {}, u;
819
- if (a) c && c.length !== s.length && (u = !0, c = c.length < s.length ? c.concat(Array(s.length - c.length)) : c.filter((e) => s.includes(e)));
820
- else {
821
- if (!c || !c.length || n) c = s;
822
- else {
823
- let e = l(s, c), t = l(c, s);
824
- (e.length || t.length) && (c = s);
825
- }
826
- u = !o(t.value, c);
827
- }
828
- return u && console.warn("This session is not valid anymore. It will be reset."), {
829
- value: c,
830
- needsReset: u
831
- };
832
- };
833
- UNSAFE_componentWillReceiveProps(e) {
834
- let { model: t = {} } = e || {}, { model: n = {} } = this.props || {}, { correctResponse: r, config: i, choices: a = [], env: o } = t, { includeTargets: s } = i || {}, c = {}, l = n.language && n.language !== t.language, u = n.note && n.note === Ke.t("common:commonCorrectAnswerWithAlternates", { lng: n.language });
835
- l && u && (n.note = Ke.t("common:commonCorrectAnswerWithAlternates", { lng: t.language })), r || (c.showingCorrect = !1);
836
- let d = Ve(a, n.choices), { value: f, needsReset: p } = this.validateSession(e, d), m = {
837
- ...e.session,
838
- value: f
839
- }, h = n.config?.includeTargets !== s;
840
- s && h && (p = !0, delete m.value), this.setState(c, () => {
841
- let { mode: e } = o || {};
842
- p && e === "gather" && this.props.onSessionChange(m);
843
- });
844
- }
845
- onDropChoice = (e, t, n) => {
846
- let { onSessionChange: r, session: i } = this.props, a = n.tiles.find((e) => e.id === t.id && e.type === t.type && e.index === t.index), o = e;
847
- qe("[onDropChoice] ", a, o);
848
- let s = Be({
849
- type: "move",
850
- from: a,
851
- to: o
852
- }, n);
853
- r(Object.assign({}, i, { value: s.response }));
854
- };
855
- onRemoveChoice = (e, t) => {
856
- let { onSessionChange: n, session: r } = this.props;
857
- qe("[onRemoveChoice]", e);
858
- let i = Be({
859
- type: "remove",
860
- target: e
861
- }, t);
862
- n(Object.assign({}, r, { value: i.response }));
863
- };
864
- createOrdering = () => {
865
- let { model: e, session: t } = this.props, { showingCorrect: n } = this.state, { includeTargets: r } = e.config || {
866
- orientation: "vertical",
867
- includeTargets: !0
868
- };
869
- return n ? ze(e.choices, e.correctResponse, e.correctResponse.map((e) => ({
870
- id: e,
871
- outcome: "correct"
872
- })), {
873
- includeTargets: r,
874
- allowSameChoiceInTargets: e.config.allowSameChoiceInTargets
875
- }) : ze(e.choices, t.value, e.outcomes, {
876
- includeTargets: r,
877
- allowSameChoiceInTargets: e.config.allowSameChoiceInTargets
878
- });
879
- };
880
- onDragEnd = (e) => {
881
- let { over: t, active: n } = e, r = this.createOrdering();
882
- if (t && n) {
883
- let e = n.data.current, i = t.data.current;
884
- if (e && i && i.type === "target") {
885
- this.onDropChoice(i, e, r);
886
- return;
887
- }
888
- e && i && this.onDropChoice(i, e, r);
889
- } else if (!t && n) {
890
- let e = n.data.current;
891
- e && e.type === "target" && this.onRemoveChoice(e, r);
892
- }
893
- };
894
- render() {
895
- let { model: e } = this.props, { correctResponse: t, correctness: n, extraCSSRules: r, prompt: i, rationale: a, feedback: o, config: s, note: c, showNote: l, env: u, disabled: d, teacherInstructions: f, language: m } = e, h = t && t.length > 0, { showingCorrect: g } = this.state, _ = s || {
896
- orientation: "vertical",
897
- includeTargets: !0
898
- }, { orientation: y, includeTargets: b } = _, S = y === "vertical", ee = this.createOrdering(), { mode: w, role: T } = u || {}, E = S ? Pe : Ne, D = (g || w === "view" && T === "instructor") && l && c, O = a && (p(a) || x(a)), ne = f && (p(f) || x(f)), re = {
899
- color: v.text(),
900
- backgroundColor: v.background(),
901
- display: "flex",
902
- flexDirection: "column",
903
- alignItems: "center",
904
- boxSizing: "border-box"
905
- };
906
- return /* @__PURE__ */ k(C, {
907
- onDragStart: () => {},
908
- onDragEnd: this.onDragEnd,
909
- collisionDetection: te,
910
- children: /* @__PURE__ */ k(Je, { children: /* @__PURE__ */ A(He, {
911
- extraCSSRules: r,
912
- style: re,
913
- children: [
914
- ne && /* @__PURE__ */ k($, {
915
- labels: {
916
- hidden: "Show Teacher Instructions",
917
- visible: "Hide Teacher Instructions"
918
- },
919
- className: "collapsible",
920
- children: /* @__PURE__ */ k(X, { prompt: f })
921
- }),
922
- /* @__PURE__ */ k(Ye, { children: /* @__PURE__ */ k(X, { prompt: i }) }),
923
- /* @__PURE__ */ k(Ze, {
924
- show: h,
925
- toggled: g,
926
- onToggle: this.toggleCorrect,
927
- language: m
928
- }),
929
- /* @__PURE__ */ k(Qe, {
930
- instanceId: this.instanceId,
931
- choiceLabel: _.choiceLabel,
932
- targetLabel: _.targetLabel,
933
- ordering: ee,
934
- tiler: E,
935
- disabled: d,
936
- addGuide: _.showOrdering,
937
- tileSize: _.tileSize,
938
- includeTargets: b,
939
- choiceLabelEnabled: e.config && e.config.choiceLabelEnabled
940
- }),
941
- D && /* @__PURE__ */ k(Xe, { dangerouslySetInnerHTML: { __html: c } }),
942
- O && /* @__PURE__ */ k($, {
943
- labels: {
944
- hidden: "Show Rationale",
945
- visible: "Hide Rationale"
946
- },
947
- className: "collapsible",
948
- children: /* @__PURE__ */ k(X, { prompt: a })
949
- }),
950
- !g && /* @__PURE__ */ k(Ue, {
951
- correctness: n,
952
- feedback: o
953
- })
954
- ]
955
- }) })
956
- });
957
- }
958
- }, et = class extends D.Component {
959
- static propTypes = {
960
- model: M.default.object.isRequired,
961
- session: M.default.oneOfType([M.default.array.isRequired, M.default.object.isRequired]),
962
- onSessionChange: M.default.func.isRequired
963
- };
964
- render() {
965
- let { model: e, session: t, onSessionChange: n } = this.props;
966
- return /* @__PURE__ */ k($e, {
967
- model: e,
968
- session: t,
969
- onSessionChange: n
970
- });
971
- }
972
- }, tt = (0, j.default)("pie-elements:placement-ordering"), nt = ({ model: t, session: n }) => {
973
- let { config: r } = t, i = (n && e(n.value) || []).length === t.choices.length;
974
- return r.includeTargets || i;
975
- }, rt = class extends HTMLElement {
976
- constructor() {
977
- super(), this._root = null, this._mathObserver = null, this._mathRenderPending = !1;
978
- }
979
- _scheduleMathRender = () => {
980
- this._mathRenderPending || (this._mathRenderPending = !0, requestAnimationFrame(() => {
981
- this._mathObserver && this._mathObserver.disconnect(), d(this), this._mathRenderPending = !1, setTimeout(() => {
982
- this._mathObserver && this._mathObserver.observe(this, {
983
- childList: !0,
984
- subtree: !0
985
- });
986
- }, 50);
987
- }));
988
- };
989
- _initMathObserver() {
990
- this._mathObserver || (this._mathObserver = new MutationObserver(this._scheduleMathRender), this._mathObserver.observe(this, {
991
- childList: !0,
992
- subtree: !0
993
- }));
994
- }
995
- _disconnectMathObserver() {
996
- this._mathObserver &&= (this._mathObserver.disconnect(), null);
997
- }
998
- isComplete = (t) => t && e(t).length === this._model.completeLength;
999
- sessionChange = (e) => {
1000
- this._session.value = e.value, this.render(), this.dispatchEvent(new ae(this.tagName.toLowerCase(), this._session && this.isComplete(this._session.value)));
1001
- };
1002
- set model(e) {
1003
- this._model = e, this.render(), this.dispatchEvent(new CustomEvent("model-set", {
1004
- bubbles: !0,
1005
- detail: { complete: !1 }
1006
- }));
1007
- }
1008
- set session(e) {
1009
- this._session = e, this.render();
1010
- }
1011
- get session() {
1012
- return this._session;
1013
- }
1014
- render() {
1015
- if (this._model && this._session) {
1016
- tt("[render] session: ", this._session.value), tt("[render] model: ", this._model), this._initMathObserver();
1017
- let e = D.createElement(et, {
1018
- model: this._model,
1019
- session: this._session,
1020
- onSessionChange: this.sessionChange
1021
- });
1022
- this._root ||= re(this), this._root.render(e);
1023
- }
1024
- }
1025
- connectedCallback() {
1026
- this._initMathObserver();
1027
- }
1028
- disconnectedCallback() {
1029
- this._disconnectMathObserver(), this._root && this._root.unmount();
1030
- }
1031
- };
1032
- //#endregion
1033
- export { rt as default, nt as isValidSession };
1034
-
1035
- //# sourceMappingURL=index.js.map