@pie-element/drag-in-the-blank 10.1.2-next.2 → 10.1.2

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 (85) hide show
  1. package/CHANGELOG.json +1042 -0
  2. package/CHANGELOG.md +2183 -0
  3. package/LICENSE.md +5 -0
  4. package/README.md +1 -0
  5. package/configure/CHANGELOG.json +652 -0
  6. package/configure/CHANGELOG.md +1883 -0
  7. package/configure/lib/choice.js +137 -0
  8. package/configure/lib/choice.js.map +1 -0
  9. package/configure/lib/choices.js +319 -0
  10. package/configure/lib/choices.js.map +1 -0
  11. package/configure/lib/defaults.js +169 -0
  12. package/configure/lib/defaults.js.map +1 -0
  13. package/configure/lib/index.js +144 -0
  14. package/configure/lib/index.js.map +1 -0
  15. package/configure/lib/main.js +440 -0
  16. package/configure/lib/main.js.map +1 -0
  17. package/configure/lib/markupUtils.js +83 -0
  18. package/configure/lib/markupUtils.js.map +1 -0
  19. package/configure/package.json +25 -0
  20. package/configure/utils.js +17 -0
  21. package/controller/CHANGELOG.json +457 -0
  22. package/controller/CHANGELOG.md +1284 -0
  23. package/controller/lib/defaults.js +24 -0
  24. package/controller/lib/defaults.js.map +1 -0
  25. package/controller/lib/index.js +251 -0
  26. package/controller/lib/index.js.map +1 -0
  27. package/controller/lib/utils.js +39 -0
  28. package/controller/lib/utils.js.map +1 -0
  29. package/controller/package.json +16 -0
  30. package/docs/config-schema.json +2580 -0
  31. package/docs/config-schema.json.md +1905 -0
  32. package/docs/demo/config.js +8 -0
  33. package/docs/demo/generate.js +41 -0
  34. package/docs/demo/index.html +1 -0
  35. package/docs/demo/session.js +10 -0
  36. package/docs/pie-schema.json +1181 -0
  37. package/docs/pie-schema.json.md +853 -0
  38. package/lib/index.js +206 -0
  39. package/lib/index.js.map +1 -0
  40. package/lib/main.js +126 -0
  41. package/lib/main.js.map +1 -0
  42. package/package.json +22 -87
  43. package/configure.js +0 -2
  44. package/controller.js +0 -1
  45. package/dist/author/choice.d.ts +0 -22
  46. package/dist/author/choice.js +0 -88
  47. package/dist/author/choices.d.ts +0 -41
  48. package/dist/author/choices.js +0 -172
  49. package/dist/author/defaults.d.ts +0 -171
  50. package/dist/author/defaults.js +0 -123
  51. package/dist/author/index.d.ts +0 -42
  52. package/dist/author/index.js +0 -92
  53. package/dist/author/main.d.ts +0 -36
  54. package/dist/author/main.js +0 -301
  55. package/dist/author/markupUtils.d.ts +0 -17
  56. package/dist/author/markupUtils.js +0 -38
  57. package/dist/author/utils.d.ts +0 -9
  58. package/dist/author/utils.js +0 -7
  59. package/dist/browser/author/index.js +0 -39603
  60. package/dist/browser/author/index.js.map +0 -1
  61. package/dist/browser/controller/index.js +0 -176
  62. package/dist/browser/controller/index.js.map +0 -1
  63. package/dist/browser/delivery/index.js +0 -3414
  64. package/dist/browser/delivery/index.js.map +0 -1
  65. package/dist/browser/dist-BkH5WSi5.js +0 -121
  66. package/dist/browser/dist-BkH5WSi5.js.map +0 -1
  67. package/dist/browser/drag-in-the-blank.css +0 -2
  68. package/dist/browser/drag-provider-D0fyq5lq.js +0 -10946
  69. package/dist/browser/drag-provider-D0fyq5lq.js.map +0 -1
  70. package/dist/controller/defaults.d.ts +0 -26
  71. package/dist/controller/defaults.js +0 -20
  72. package/dist/controller/index.d.ts +0 -41
  73. package/dist/controller/index.js +0 -104
  74. package/dist/controller/utils.d.ts +0 -16
  75. package/dist/controller/utils.js +0 -14
  76. package/dist/delivery/index.d.ts +0 -21
  77. package/dist/delivery/index.js +0 -105
  78. package/dist/delivery/main.d.ts +0 -28
  79. package/dist/delivery/main.js +0 -83
  80. package/dist/index.d.ts +0 -1
  81. package/dist/index.iife.d.ts +0 -8
  82. package/dist/index.iife.js +0 -152
  83. package/dist/index.js +0 -2
  84. package/dist/runtime-support.d.ts +0 -12
  85. package/dist/runtime-support.js +0 -12
@@ -1,3414 +0,0 @@
1
- import { $ as e, B as t, Bt as n, Dt as r, Et as i, Ft as a, J as o, Lt as s, N as c, Nt as l, O as u, Pt as d, Tt as f, a as p, g as m, gt as h, h as g, i as _, j as v, k as y, m as b, mt as x, n as S, o as C, p as w, q as T, r as E, s as D, t as ee, ut as te, w as ne, xt as re, z as ie } from "../drag-provider-D0fyq5lq.js";
2
- import { h as O, m as k } from "../dist-BkH5WSi5.js";
3
- import * as A from "react";
4
- import j, { useEffect as M, useRef as N, useState as ae } from "react";
5
- import { createRoot as oe } from "react-dom/client";
6
- import { jsx as P, jsxs as F } from "react/jsx-runtime";
7
- //#region ../../lib-react/icons/dist/correct-response-icon.js
8
- var I = /* @__PURE__ */ n(l(), 1), se = ({ bgFill: e, fgFill: t }) => /* @__PURE__ */ F("svg", {
9
- preserveAspectRatio: "xMinYMin meet",
10
- version: "1.1",
11
- viewBox: "-283 359 34 35",
12
- style: { enableBackground: "new -283 359 34 35" },
13
- children: [
14
- /* @__PURE__ */ P("circle", {
15
- cx: "-266",
16
- cy: "375.9",
17
- r: "14",
18
- fill: e
19
- }),
20
- /* @__PURE__ */ P("path", {
21
- 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",
22
- fill: e
23
- }),
24
- /* @__PURE__ */ P("polygon", {
25
- 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",
26
- fill: t
27
- })
28
- ]
29
- });
30
- se.propTypes = {
31
- bgFill: I.default.string.isRequired,
32
- fgFill: I.default.string.isRequired
33
- };
34
- var ce = ({ bgFill: e, fgFill: t, borderFill: n }) => /* @__PURE__ */ F("svg", {
35
- preserveAspectRatio: "xMinYMin meet",
36
- version: "1.1",
37
- viewBox: "-129.5 127 34 35",
38
- style: { enableBackground: "new -129.5 127 34 35" },
39
- children: [
40
- /* @__PURE__ */ P("path", {
41
- style: {
42
- fill: "#D0CAC5",
43
- stroke: "#E6E3E0",
44
- strokeWidth: .75,
45
- strokeMiterlimit: 10
46
- },
47
- 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"
48
- }),
49
- /* @__PURE__ */ P("path", {
50
- style: {
51
- fill: "#B3ABA4",
52
- stroke: "#CDC7C2",
53
- strokeWidth: .5,
54
- strokeMiterlimit: 10
55
- },
56
- 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"
57
- }),
58
- /* @__PURE__ */ P("circle", {
59
- cx: "-114.2",
60
- cy: "143.5",
61
- r: "14",
62
- fill: e
63
- }),
64
- /* @__PURE__ */ P("path", {
65
- 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",
66
- fill: n
67
- }),
68
- /* @__PURE__ */ P("polygon", {
69
- points: "-114.8,150.7 -121.6,144.8 -119,141.8 -115.9,144.5 -111.3,136.3 -107.8,138.2",
70
- fill: t
71
- })
72
- ]
73
- });
74
- ce.propTypes = {
75
- bgFill: I.default.string.isRequired,
76
- fgFill: I.default.string.isRequired,
77
- borderFill: I.default.string.isRequired
78
- };
79
- var le = h("div")(({ size: e }) => ({
80
- width: e || "25px",
81
- height: e || "25px"
82
- })), L = ({ open: e, size: t }) => /* @__PURE__ */ P(le, {
83
- size: t,
84
- children: e ? /* @__PURE__ */ P(se, {
85
- bgFill: "#bce2ff",
86
- fgFill: "#1a9cff"
87
- }) : /* @__PURE__ */ P(ce, {
88
- bgFill: "white",
89
- fgFill: "#1a9cff",
90
- borderFill: "#bce2ff"
91
- })
92
- });
93
- L.propTypes = {
94
- open: I.default.bool,
95
- size: I.default.string
96
- }, L.defaultProps = { open: !1 };
97
- //#endregion
98
- //#region ../../shared/player-events/dist/index.js
99
- var ue = class e extends CustomEvent {
100
- static {
101
- this.TYPE = "model-set";
102
- }
103
- constructor(t, n, r) {
104
- super(e.TYPE, {
105
- bubbles: !0,
106
- composed: !0,
107
- detail: {
108
- complete: n,
109
- component: t,
110
- hasModel: r
111
- }
112
- }), this.component = t, this.complete = n;
113
- }
114
- }, de = class e extends CustomEvent {
115
- static {
116
- this.TYPE = "session-changed";
117
- }
118
- constructor(t, n) {
119
- super(e.TYPE, {
120
- bubbles: !0,
121
- composed: !0,
122
- detail: {
123
- complete: n,
124
- component: t
125
- }
126
- }), this.component = t, this.complete = n;
127
- }
128
- }, fe = "height ease-in 300ms, opacity ease-in 300ms", pe = h("div")(() => ({
129
- position: "relative",
130
- height: 0,
131
- overflow: "hidden",
132
- display: "flex",
133
- visibility: "hidden",
134
- width: 0,
135
- "&.enter": {
136
- transition: fe,
137
- opacity: 1,
138
- height: "auto",
139
- width: "auto",
140
- visibility: "visible",
141
- minHeight: "25px"
142
- },
143
- "&.enter-done": {
144
- height: "auto",
145
- visibility: "visible",
146
- width: "auto",
147
- minHeight: "25px"
148
- },
149
- "&.exit": {
150
- transition: fe,
151
- opacity: 0,
152
- height: 0,
153
- visibility: "visible",
154
- width: 0
155
- },
156
- "&.exit-done": {
157
- opacity: 0,
158
- visibility: "hidden",
159
- height: 0,
160
- width: 0
161
- }
162
- })), me = (e) => {
163
- let { show: t, children: n, className: r } = e, i = N(null);
164
- return /* @__PURE__ */ P(x, {
165
- nodeRef: i,
166
- in: t,
167
- appear: !0,
168
- mountOnEnter: !1,
169
- timeout: 300,
170
- classNames: {
171
- enter: "enter",
172
- enterDone: "enter-done",
173
- exit: "exit",
174
- exitDone: "exit-done"
175
- },
176
- children: /* @__PURE__ */ P(pe, {
177
- ref: i,
178
- className: r,
179
- children: n
180
- })
181
- });
182
- };
183
- me.propTypes = {
184
- show: I.default.bool.isRequired,
185
- className: I.default.string,
186
- children: I.default.oneOfType([I.default.arrayOf(I.default.node), I.default.node]).isRequired
187
- };
188
- //#endregion
189
- //#region ../../lib-react/translator/dist/en.js
190
- var he = {
191
- translation: {
192
- categorize: {
193
- limitMaxChoicesPerCategory: "You've reached the limit of {{maxChoicesPerCategory}} responses per area. To add another response, one must first be removed.",
194
- maxChoicesPerCategoryRestriction: "To change this value to {{maxChoicesPerCategory}}, each category must have {{maxChoicesPerCategory}} or fewer answer choice[s]."
195
- },
196
- ebsr: { part: "Part {{index}}" },
197
- numberLine: {
198
- addElementLimit_one: "You can only add {{count}} element",
199
- addElementLimit_other: "You can only add {{count}} elements",
200
- clearAll: "Clear all"
201
- },
202
- imageClozeAssociation: {
203
- reachedLimit_one: "You’ve reached the limit of {{count}} response per area. To add another response, one must first be removed.",
204
- reachedLimit_other: "Full"
205
- },
206
- drawingResponse: {
207
- fillColor: "Fill color",
208
- outlineColor: "Outline color",
209
- noFill: "No fill",
210
- lightblue: "Light blue",
211
- lightyellow: "Light yellow",
212
- red: "Red",
213
- orange: "Orange",
214
- yellow: "Yellow",
215
- violet: "Violet",
216
- blue: "Blue",
217
- green: "Green",
218
- white: "White",
219
- black: "Black",
220
- onDoubleClick: "Double click to edit this text. Press Enter to submit."
221
- },
222
- charting: {
223
- addCategory: "Add category",
224
- actions: "Actions",
225
- add: "Add",
226
- delete: "Delete",
227
- newLabel: "New label",
228
- reachedLimit_other: "There can't be more than {{count}} categories.",
229
- keyLegend: {
230
- incorrectAnswer: "Student incorrect answer",
231
- correctAnswer: "Student correct answer",
232
- correctKeyAnswer: "Answer key correct"
233
- }
234
- },
235
- graphing: {
236
- point: "Point",
237
- circle: "Circle",
238
- line: "Line",
239
- parabola: "Parabola",
240
- absolute: "Absolute Value",
241
- exponential: "Exponential",
242
- polygon: "Polygon",
243
- ray: "Ray",
244
- segment: "Segment",
245
- sine: "Sine",
246
- vector: "Vector",
247
- label: "Label",
248
- redo: "Redo",
249
- reset: "Reset"
250
- },
251
- mathInline: { primaryCorrectWithAlternates: "Note: The answer shown above is the primary correct answer specified by the author for this item, but other answers may also be recognized as correct." },
252
- multipleChoice: {
253
- minSelections: "Select at least {{minSelections}}.",
254
- maxSelections_one: "Only {{maxSelections}} answer is allowed.",
255
- maxSelections_other: "Only {{maxSelections}} answers are allowed.",
256
- minmaxSelections_equal: "Select {{minSelections}}.",
257
- minmaxSelections_range: "Select between {{minSelections}} and {{maxSelections}}."
258
- },
259
- selectText: {
260
- correctAnswerSelected: "Correct",
261
- correctAnswerNotSelected: "Correct Answer Not Selected",
262
- incorrectSelection: "Incorrect Selection",
263
- key: "Key"
264
- }
265
- },
266
- common: {
267
- undo: "Undo",
268
- clearAll: "Clear all",
269
- correct: "Correct",
270
- incorrect: "Incorrect",
271
- showCorrectAnswer: "Show correct answer",
272
- hideCorrectAnswer: "Hide correct answer",
273
- commonCorrectAnswerWithAlternates: "Note: The answer shown above is the most common correct answer for this item. One or more additional correct answers are also defined, and will also be recognized as correct.",
274
- warning: "Warning",
275
- showNote: "Show Note",
276
- hideNote: "Hide Note",
277
- cancel: "Cancel"
278
- }
279
- }, ge = {
280
- translation: {
281
- categorize: {
282
- limitMaxChoicesPerCategory: "Has alcanzado el límite de {{maxChoicesPerCategory}} respuestas por área. Para agregar otra respuesta, primero se debe eliminar una respuesta.",
283
- maxChoicesPerCategoryRestriction: "Para cambiar este valor a {{maxChoicesPerCategory}}, cada categoría debe tener {{maxChoicesPerCategory}} o menos opciones de respuesta"
284
- },
285
- ebsr: { part: "Parte {{index}}" },
286
- numberLine: {
287
- addElementLimit_one: "Solo puedes agregar {{count}} elemento",
288
- addElementLimit_other: "Solo puedes agregar {{count}} elementos",
289
- clearAll: "Borrar todo"
290
- },
291
- imageClozeAssociation: {
292
- reachedLimit_one: "Has alcanzado el límite de {{count}} respuesta por área. Para agregar otra respuesta, primero se debe eliminar una respuesta.",
293
- reachedLimit_other: "Lleno"
294
- },
295
- drawingResponse: {
296
- fillColor: "Color de relleno",
297
- outlineColor: "Color del contorno",
298
- noFill: "Sin relleno",
299
- lightblue: "Azul claro",
300
- lightyellow: "Amarillo claro",
301
- red: "Rojo",
302
- orange: "Naranja",
303
- yellow: "Amarillo",
304
- violet: "Violeta",
305
- blue: "Azul",
306
- green: "Verde",
307
- white: "Blanco",
308
- black: "Negro",
309
- onDoubleClick: "Haz doble clic para revisar este texto. Presiona el botón de ingreso para enviar"
310
- },
311
- charting: {
312
- addCategory: "Añadir categoría",
313
- actions: "Acciones",
314
- add: "Añadir",
315
- delete: "Eliminar",
316
- newLabel: "Nueva etiqueta",
317
- reachedLimit_other: "No puede haber más de {{count}} categorías.",
318
- keyLegend: {
319
- incorrectAnswer: "Respuesta incorrecta del estudiante",
320
- correctAnswer: "Respuesta correcta del estudiante",
321
- correctKeyAnswer: "Clave de respuesta correcta"
322
- }
323
- },
324
- graphing: {
325
- point: "Punto",
326
- circle: "Circulo",
327
- line: "Línea",
328
- parabola: "Parábola",
329
- absolute: "Valor absoluto",
330
- exponential: "Exponencial",
331
- polygon: "Polígono",
332
- ray: "Semirrecta",
333
- segment: "Segmento ",
334
- sine: "Seno",
335
- vector: "Vector",
336
- label: "Etiqueta",
337
- redo: "Rehacer",
338
- reset: "Reiniciar"
339
- },
340
- mathInline: { primaryCorrectWithAlternates: "Nota: La respuesta que se muestra arriba es la respuesta correcta principal especificada por el autor para esta pregunta, pero también se pueden reconocer otras respuestas como correctas." },
341
- multipleChoice: {
342
- minSelections: "Seleccione al menos {{minSelections}}.",
343
- maxSelections_one: "Sólo se permite {{maxSelections}} respuesta.",
344
- maxSelections_other: "Sólo se permiten {{maxSelections}} respuestas.",
345
- minmaxSelections_equal: "Seleccione {{minSelections}}.",
346
- minmaxSelections_range: "Seleccione entre {{minSelections}} y {{maxSelections}}."
347
- },
348
- selectText: {
349
- correctAnswerSelected: "Respuesta Correcta",
350
- correctAnswerNotSelected: "Respuesta Correcta No Seleccionada",
351
- incorrectSelection: "Selección Incorrecta",
352
- key: "Clave"
353
- }
354
- },
355
- common: {
356
- undo: "Deshacer",
357
- clearAll: "Borrar todo",
358
- correct: "Correct",
359
- incorrect: "Incorrect",
360
- showCorrectAnswer: "Mostrar respuesta correcta",
361
- hideCorrectAnswer: "Ocultar respuesta correcta",
362
- commonCorrectAnswerWithAlternates: "Nota: La respuesta que se muestra arriba es la respuesta correcta más común para esta pregunta. También se definen una o más respuestas correctas adicionales, y también se reconocerán como correctas.",
363
- warning: "Advertencia",
364
- showNote: "Mostrar Nota",
365
- hideNote: "Ocultar Nota",
366
- cancel: "Cancelar"
367
- }
368
- }, R = (e) => typeof e == "string", z = () => {
369
- let e, t, n = new Promise((n, r) => {
370
- e = n, t = r;
371
- });
372
- return n.resolve = e, n.reject = t, n;
373
- }, _e = (e) => e == null ? "" : "" + e, ve = (e, t, n) => {
374
- e.forEach((e) => {
375
- t[e] && (n[e] = t[e]);
376
- });
377
- }, ye = /###/g, be = (e) => e && e.indexOf("###") > -1 ? e.replace(ye, ".") : e, xe = (e) => !e || R(e), B = (e, t, n) => {
378
- let r = R(t) ? t.split(".") : t, i = 0;
379
- for (; i < r.length - 1;) {
380
- if (xe(e)) return {};
381
- let t = be(r[i]);
382
- !e[t] && n && (e[t] = new n()), e = Object.prototype.hasOwnProperty.call(e, t) ? e[t] : {}, ++i;
383
- }
384
- return xe(e) ? {} : {
385
- obj: e,
386
- k: be(r[i])
387
- };
388
- }, Se = (e, t, n) => {
389
- let { obj: r, k: i } = B(e, t, Object);
390
- if (r !== void 0 || t.length === 1) {
391
- r[i] = n;
392
- return;
393
- }
394
- let a = t[t.length - 1], o = t.slice(0, t.length - 1), s = B(e, o, Object);
395
- for (; s.obj === void 0 && o.length;) a = `${o[o.length - 1]}.${a}`, o = o.slice(0, o.length - 1), s = B(e, o, Object), s?.obj && s.obj[`${s.k}.${a}`] !== void 0 && (s.obj = void 0);
396
- s.obj[`${s.k}.${a}`] = n;
397
- }, Ce = (e, t, n, r) => {
398
- let { obj: i, k: a } = B(e, t, Object);
399
- i[a] = i[a] || [], i[a].push(n);
400
- }, V = (e, t) => {
401
- let { obj: n, k: r } = B(e, t);
402
- if (n && Object.prototype.hasOwnProperty.call(n, r)) return n[r];
403
- }, we = (e, t, n) => {
404
- let r = V(e, n);
405
- return r === void 0 ? V(t, n) : r;
406
- }, Te = (e, t, n) => {
407
- for (let r in t) r !== "__proto__" && r !== "constructor" && (r in e ? R(e[r]) || e[r] instanceof String || R(t[r]) || t[r] instanceof String ? n && (e[r] = t[r]) : Te(e[r], t[r], n) : e[r] = t[r]);
408
- return e;
409
- }, H = (e) => e.replace(/[\-\[\]\/\{\}\(\)\*\+\?\.\\\^\$\|]/g, "\\$&"), Ee = {
410
- "&": "&amp;",
411
- "<": "&lt;",
412
- ">": "&gt;",
413
- "\"": "&quot;",
414
- "'": "&#39;",
415
- "/": "&#x2F;"
416
- }, De = (e) => R(e) ? e.replace(/[&<>"'\/]/g, (e) => Ee[e]) : e, Oe = class {
417
- constructor(e) {
418
- this.capacity = e, this.regExpMap = /* @__PURE__ */ new Map(), this.regExpQueue = [];
419
- }
420
- getRegExp(e) {
421
- let t = this.regExpMap.get(e);
422
- if (t !== void 0) return t;
423
- let n = new RegExp(e);
424
- return this.regExpQueue.length === this.capacity && this.regExpMap.delete(this.regExpQueue.shift()), this.regExpMap.set(e, n), this.regExpQueue.push(e), n;
425
- }
426
- }, ke = [
427
- " ",
428
- ",",
429
- "?",
430
- "!",
431
- ";"
432
- ], Ae = new Oe(20), je = (e, t, n) => {
433
- t ||= "", n ||= "";
434
- let r = ke.filter((e) => t.indexOf(e) < 0 && n.indexOf(e) < 0);
435
- if (r.length === 0) return !0;
436
- let i = Ae.getRegExp(`(${r.map((e) => e === "?" ? "\\?" : e).join("|")})`), a = !i.test(e);
437
- if (!a) {
438
- let t = e.indexOf(n);
439
- t > 0 && !i.test(e.substring(0, t)) && (a = !0);
440
- }
441
- return a;
442
- }, Me = (e, t, n = ".") => {
443
- if (!e) return;
444
- if (e[t]) return Object.prototype.hasOwnProperty.call(e, t) ? e[t] : void 0;
445
- let r = t.split(n), i = e;
446
- for (let e = 0; e < r.length;) {
447
- if (!i || typeof i != "object") return;
448
- let t, a = "";
449
- for (let o = e; o < r.length; ++o) if (o !== e && (a += n), a += r[o], t = i[a], t !== void 0) {
450
- if ([
451
- "string",
452
- "number",
453
- "boolean"
454
- ].indexOf(typeof t) > -1 && o < r.length - 1) continue;
455
- e += o - e + 1;
456
- break;
457
- }
458
- i = t;
459
- }
460
- return i;
461
- }, U = (e) => e?.replace(/_/g, "-"), Ne = {
462
- type: "logger",
463
- log(e) {
464
- this.output("log", e);
465
- },
466
- warn(e) {
467
- this.output("warn", e);
468
- },
469
- error(e) {
470
- this.output("error", e);
471
- },
472
- output(e, t) {
473
- console?.[e]?.apply?.(console, t);
474
- }
475
- }, W = new class e {
476
- constructor(e, t = {}) {
477
- this.init(e, t);
478
- }
479
- init(e, t = {}) {
480
- this.prefix = t.prefix || "i18next:", this.logger = e || Ne, this.options = t, this.debug = t.debug;
481
- }
482
- log(...e) {
483
- return this.forward(e, "log", "", !0);
484
- }
485
- warn(...e) {
486
- return this.forward(e, "warn", "", !0);
487
- }
488
- error(...e) {
489
- return this.forward(e, "error", "");
490
- }
491
- deprecate(...e) {
492
- return this.forward(e, "warn", "WARNING DEPRECATED: ", !0);
493
- }
494
- forward(e, t, n, r) {
495
- return r && !this.debug ? null : (R(e[0]) && (e[0] = `${n}${this.prefix} ${e[0]}`), this.logger[t](e));
496
- }
497
- create(t) {
498
- return new e(this.logger, {
499
- prefix: `${this.prefix}:${t}:`,
500
- ...this.options
501
- });
502
- }
503
- clone(t) {
504
- return t ||= this.options, t.prefix = t.prefix || this.prefix, new e(this.logger, t);
505
- }
506
- }(), G = class {
507
- constructor() {
508
- this.observers = {};
509
- }
510
- on(e, t) {
511
- return e.split(" ").forEach((e) => {
512
- this.observers[e] || (this.observers[e] = /* @__PURE__ */ new Map());
513
- let n = this.observers[e].get(t) || 0;
514
- this.observers[e].set(t, n + 1);
515
- }), this;
516
- }
517
- off(e, t) {
518
- if (this.observers[e]) {
519
- if (!t) {
520
- delete this.observers[e];
521
- return;
522
- }
523
- this.observers[e].delete(t);
524
- }
525
- }
526
- emit(e, ...t) {
527
- this.observers[e] && Array.from(this.observers[e].entries()).forEach(([e, n]) => {
528
- for (let r = 0; r < n; r++) e(...t);
529
- }), this.observers["*"] && Array.from(this.observers["*"].entries()).forEach(([n, r]) => {
530
- for (let i = 0; i < r; i++) n.apply(n, [e, ...t]);
531
- });
532
- }
533
- }, Pe = class extends G {
534
- constructor(e, t = {
535
- ns: ["translation"],
536
- defaultNS: "translation"
537
- }) {
538
- super(), this.data = e || {}, this.options = t, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.options.ignoreJSONStructure === void 0 && (this.options.ignoreJSONStructure = !0);
539
- }
540
- addNamespaces(e) {
541
- this.options.ns.indexOf(e) < 0 && this.options.ns.push(e);
542
- }
543
- removeNamespaces(e) {
544
- let t = this.options.ns.indexOf(e);
545
- t > -1 && this.options.ns.splice(t, 1);
546
- }
547
- getResource(e, t, n, r = {}) {
548
- let i = r.keySeparator === void 0 ? this.options.keySeparator : r.keySeparator, a = r.ignoreJSONStructure === void 0 ? this.options.ignoreJSONStructure : r.ignoreJSONStructure, o;
549
- e.indexOf(".") > -1 ? o = e.split(".") : (o = [e, t], n && (Array.isArray(n) ? o.push(...n) : R(n) && i ? o.push(...n.split(i)) : o.push(n)));
550
- let s = V(this.data, o);
551
- return !s && !t && !n && e.indexOf(".") > -1 && (e = o[0], t = o[1], n = o.slice(2).join(".")), s || !a || !R(n) ? s : Me(this.data?.[e]?.[t], n, i);
552
- }
553
- addResource(e, t, n, r, i = { silent: !1 }) {
554
- let a = i.keySeparator === void 0 ? this.options.keySeparator : i.keySeparator, o = [e, t];
555
- n && (o = o.concat(a ? n.split(a) : n)), e.indexOf(".") > -1 && (o = e.split("."), r = t, t = o[1]), this.addNamespaces(t), Se(this.data, o, r), i.silent || this.emit("added", e, t, n, r);
556
- }
557
- addResources(e, t, n, r = { silent: !1 }) {
558
- for (let r in n) (R(n[r]) || Array.isArray(n[r])) && this.addResource(e, t, r, n[r], { silent: !0 });
559
- r.silent || this.emit("added", e, t, n);
560
- }
561
- addResourceBundle(e, t, n, r, i, a = {
562
- silent: !1,
563
- skipCopy: !1
564
- }) {
565
- let o = [e, t];
566
- e.indexOf(".") > -1 && (o = e.split("."), r = n, n = t, t = o[1]), this.addNamespaces(t);
567
- let s = V(this.data, o) || {};
568
- a.skipCopy || (n = JSON.parse(JSON.stringify(n))), r ? Te(s, n, i) : s = {
569
- ...s,
570
- ...n
571
- }, Se(this.data, o, s), a.silent || this.emit("added", e, t, n);
572
- }
573
- removeResourceBundle(e, t) {
574
- this.hasResourceBundle(e, t) && delete this.data[e][t], this.removeNamespaces(t), this.emit("removed", e, t);
575
- }
576
- hasResourceBundle(e, t) {
577
- return this.getResource(e, t) !== void 0;
578
- }
579
- getResourceBundle(e, t) {
580
- return t ||= this.options.defaultNS, this.getResource(e, t);
581
- }
582
- getDataByLanguage(e) {
583
- return this.data[e];
584
- }
585
- hasLanguageSomeTranslations(e) {
586
- let t = this.getDataByLanguage(e);
587
- return !!(t && Object.keys(t) || []).find((e) => t[e] && Object.keys(t[e]).length > 0);
588
- }
589
- toJSON() {
590
- return this.data;
591
- }
592
- }, Fe = {
593
- processors: {},
594
- addPostProcessor(e) {
595
- this.processors[e.name] = e;
596
- },
597
- handle(e, t, n, r, i) {
598
- return e.forEach((e) => {
599
- t = this.processors[e]?.process(t, n, r, i) ?? t;
600
- }), t;
601
- }
602
- }, Ie = Symbol("i18next/PATH_KEY");
603
- function Le() {
604
- let e = [], t = Object.create(null), n;
605
- return t.get = (r, i) => (n?.revoke?.(), i === Ie ? e : (e.push(i), n = Proxy.revocable(r, t), n.proxy)), Proxy.revocable(Object.create(null), t).proxy;
606
- }
607
- function K(e, t) {
608
- let { [Ie]: n } = e(Le()), r = t?.keySeparator ?? ".", i = t?.nsSeparator ?? ":";
609
- if (n.length > 1 && i) {
610
- let e = t?.ns, a = Array.isArray(e) ? e : null;
611
- if (a && a.length > 1 && a.slice(1).includes(n[0])) return `${n[0]}${i}${n.slice(1).join(r)}`;
612
- }
613
- return n.join(r);
614
- }
615
- var Re = {}, ze = (e) => !R(e) && typeof e != "boolean" && typeof e != "number", Be = class e extends G {
616
- constructor(e, t = {}) {
617
- super(), ve([
618
- "resourceStore",
619
- "languageUtils",
620
- "pluralResolver",
621
- "interpolator",
622
- "backendConnector",
623
- "i18nFormat",
624
- "utils"
625
- ], e, this), this.options = t, this.options.keySeparator === void 0 && (this.options.keySeparator = "."), this.logger = W.create("translator");
626
- }
627
- changeLanguage(e) {
628
- e && (this.language = e);
629
- }
630
- exists(e, t = { interpolation: {} }) {
631
- let n = { ...t };
632
- if (e == null) return !1;
633
- let r = this.resolve(e, n);
634
- if (r?.res === void 0) return !1;
635
- let i = ze(r.res);
636
- return !(n.returnObjects === !1 && i);
637
- }
638
- extractFromKey(e, t) {
639
- let n = t.nsSeparator === void 0 ? this.options.nsSeparator : t.nsSeparator;
640
- n === void 0 && (n = ":");
641
- let r = t.keySeparator === void 0 ? this.options.keySeparator : t.keySeparator, i = t.ns || this.options.defaultNS || [], a = n && e.indexOf(n) > -1, o = !this.options.userDefinedKeySeparator && !t.keySeparator && !this.options.userDefinedNsSeparator && !t.nsSeparator && !je(e, n, r);
642
- if (a && !o) {
643
- let t = e.match(this.interpolator.nestingRegexp);
644
- if (t && t.length > 0) return {
645
- key: e,
646
- namespaces: R(i) ? [i] : i
647
- };
648
- let a = e.split(n);
649
- (n !== r || n === r && this.options.ns.indexOf(a[0]) > -1) && (i = a.shift()), e = a.join(r);
650
- }
651
- return {
652
- key: e,
653
- namespaces: R(i) ? [i] : i
654
- };
655
- }
656
- translate(t, n, r) {
657
- let i = typeof n == "object" ? { ...n } : n;
658
- if (typeof i != "object" && this.options.overloadTranslationOptionHandler && (i = this.options.overloadTranslationOptionHandler(arguments)), typeof i == "object" && (i = { ...i }), i ||= {}, t == null) return "";
659
- typeof t == "function" && (t = K(t, {
660
- ...this.options,
661
- ...i
662
- })), Array.isArray(t) || (t = [String(t)]), t = t.map((e) => typeof e == "function" ? K(e, {
663
- ...this.options,
664
- ...i
665
- }) : String(e));
666
- let a = i.returnDetails === void 0 ? this.options.returnDetails : i.returnDetails, o = i.keySeparator === void 0 ? this.options.keySeparator : i.keySeparator, { key: s, namespaces: c } = this.extractFromKey(t[t.length - 1], i), l = c[c.length - 1], u = i.nsSeparator === void 0 ? this.options.nsSeparator : i.nsSeparator;
667
- u === void 0 && (u = ":");
668
- let d = i.lng || this.language, f = i.appendNamespaceToCIMode || this.options.appendNamespaceToCIMode;
669
- if (d?.toLowerCase() === "cimode") return f ? a ? {
670
- res: `${l}${u}${s}`,
671
- usedKey: s,
672
- exactUsedKey: s,
673
- usedLng: d,
674
- usedNS: l,
675
- usedParams: this.getUsedParamsDetails(i)
676
- } : `${l}${u}${s}` : a ? {
677
- res: s,
678
- usedKey: s,
679
- exactUsedKey: s,
680
- usedLng: d,
681
- usedNS: l,
682
- usedParams: this.getUsedParamsDetails(i)
683
- } : s;
684
- let p = this.resolve(t, i), m = p?.res, h = p?.usedKey || s, g = p?.exactUsedKey || s, _ = [
685
- "[object Number]",
686
- "[object Function]",
687
- "[object RegExp]"
688
- ], v = i.joinArrays === void 0 ? this.options.joinArrays : i.joinArrays, y = !this.i18nFormat || this.i18nFormat.handleAsObject, b = i.count !== void 0 && !R(i.count), x = e.hasDefaultValue(i), S = b ? this.pluralResolver.getSuffix(d, i.count, i) : "", C = i.ordinal && b ? this.pluralResolver.getSuffix(d, i.count, { ordinal: !1 }) : "", w = b && !i.ordinal && i.count === 0, T = w && i[`defaultValue${this.options.pluralSeparator}zero`] || i[`defaultValue${S}`] || i[`defaultValue${C}`] || i.defaultValue, E = m;
689
- y && !m && x && (E = T);
690
- let D = ze(E), ee = Object.prototype.toString.apply(E);
691
- if (y && E && D && _.indexOf(ee) < 0 && !(R(v) && Array.isArray(E))) {
692
- if (!i.returnObjects && !this.options.returnObjects) {
693
- this.options.returnedObjectHandler || this.logger.warn("accessing an object - but returnObjects options is not enabled!");
694
- let e = this.options.returnedObjectHandler ? this.options.returnedObjectHandler(h, E, {
695
- ...i,
696
- ns: c
697
- }) : `key '${s} (${this.language})' returned an object instead of string.`;
698
- return a ? (p.res = e, p.usedParams = this.getUsedParamsDetails(i), p) : e;
699
- }
700
- if (o) {
701
- let e = Array.isArray(E), t = e ? [] : {}, n = e ? g : h;
702
- for (let e in E) if (Object.prototype.hasOwnProperty.call(E, e)) {
703
- let r = `${n}${o}${e}`;
704
- x && !m ? t[e] = this.translate(r, {
705
- ...i,
706
- defaultValue: ze(T) ? T[e] : void 0,
707
- joinArrays: !1,
708
- ns: c
709
- }) : t[e] = this.translate(r, {
710
- ...i,
711
- joinArrays: !1,
712
- ns: c
713
- }), t[e] === r && (t[e] = E[e]);
714
- }
715
- m = t;
716
- }
717
- } else if (y && R(v) && Array.isArray(m)) m = m.join(v), m &&= this.extendTranslation(m, t, i, r);
718
- else {
719
- let e = !1, n = !1;
720
- !this.isValidLookup(m) && x && (e = !0, m = T), this.isValidLookup(m) || (n = !0, m = s);
721
- let a = (i.missingKeyNoValueFallbackToKey || this.options.missingKeyNoValueFallbackToKey) && n ? void 0 : m, c = x && T !== m && this.options.updateMissing;
722
- if (n || e || c) {
723
- if (this.logger.log(c ? "updateKey" : "missingKey", d, l, s, c ? T : m), o) {
724
- let e = this.resolve(s, {
725
- ...i,
726
- keySeparator: !1
727
- });
728
- e && e.res && this.logger.warn("Seems the loaded translations were in flat JSON format instead of nested. Either set keySeparator: false on init or make sure your translations are published in nested format.");
729
- }
730
- let e = [], t = this.languageUtils.getFallbackCodes(this.options.fallbackLng, i.lng || this.language);
731
- if (this.options.saveMissingTo === "fallback" && t && t[0]) for (let n = 0; n < t.length; n++) e.push(t[n]);
732
- else this.options.saveMissingTo === "all" ? e = this.languageUtils.toResolveHierarchy(i.lng || this.language) : e.push(i.lng || this.language);
733
- let n = (e, t, n) => {
734
- let r = x && n !== m ? n : a;
735
- this.options.missingKeyHandler ? this.options.missingKeyHandler(e, l, t, r, c, i) : this.backendConnector?.saveMissing && this.backendConnector.saveMissing(e, l, t, r, c, i), this.emit("missingKey", e, l, t, m);
736
- };
737
- this.options.saveMissing && (this.options.saveMissingPlurals && b ? e.forEach((e) => {
738
- let t = this.pluralResolver.getSuffixes(e, i);
739
- w && i[`defaultValue${this.options.pluralSeparator}zero`] && t.indexOf(`${this.options.pluralSeparator}zero`) < 0 && t.push(`${this.options.pluralSeparator}zero`), t.forEach((t) => {
740
- n([e], s + t, i[`defaultValue${t}`] || T);
741
- });
742
- }) : n(e, s, T));
743
- }
744
- m = this.extendTranslation(m, t, i, p, r), n && m === s && this.options.appendNamespaceToMissingKey && (m = `${l}${u}${s}`), (n || e) && this.options.parseMissingKeyHandler && (m = this.options.parseMissingKeyHandler(this.options.appendNamespaceToMissingKey ? `${l}${u}${s}` : s, e ? m : void 0, i));
745
- }
746
- return a ? (p.res = m, p.usedParams = this.getUsedParamsDetails(i), p) : m;
747
- }
748
- extendTranslation(e, t, n, r, i) {
749
- if (this.i18nFormat?.parse) e = this.i18nFormat.parse(e, {
750
- ...this.options.interpolation.defaultVariables,
751
- ...n
752
- }, n.lng || this.language || r.usedLng, r.usedNS, r.usedKey, { resolved: r });
753
- else if (!n.skipInterpolation) {
754
- n.interpolation && this.interpolator.init({
755
- ...n,
756
- interpolation: {
757
- ...this.options.interpolation,
758
- ...n.interpolation
759
- }
760
- });
761
- let a = R(e) && (n?.interpolation?.skipOnVariables === void 0 ? this.options.interpolation.skipOnVariables : n.interpolation.skipOnVariables), o;
762
- if (a) {
763
- let t = e.match(this.interpolator.nestingRegexp);
764
- o = t && t.length;
765
- }
766
- let s = n.replace && !R(n.replace) ? n.replace : n;
767
- if (this.options.interpolation.defaultVariables && (s = {
768
- ...this.options.interpolation.defaultVariables,
769
- ...s
770
- }), e = this.interpolator.interpolate(e, s, n.lng || this.language || r.usedLng, n), a) {
771
- let t = e.match(this.interpolator.nestingRegexp), r = t && t.length;
772
- o < r && (n.nest = !1);
773
- }
774
- !n.lng && r && r.res && (n.lng = this.language || r.usedLng), n.nest !== !1 && (e = this.interpolator.nest(e, (...e) => i?.[0] === e[0] && !n.context ? (this.logger.warn(`It seems you are nesting recursively key: ${e[0]} in key: ${t[0]}`), null) : this.translate(...e, t), n)), n.interpolation && this.interpolator.reset();
775
- }
776
- let a = n.postProcess || this.options.postProcess, o = R(a) ? [a] : a;
777
- return e != null && o?.length && n.applyPostProcessor !== !1 && (e = Fe.handle(o, e, t, this.options && this.options.postProcessPassResolved ? {
778
- i18nResolved: {
779
- ...r,
780
- usedParams: this.getUsedParamsDetails(n)
781
- },
782
- ...n
783
- } : n, this)), e;
784
- }
785
- resolve(e, t = {}) {
786
- let n, r, i, a, o;
787
- return R(e) && (e = [e]), Array.isArray(e) && (e = e.map((e) => typeof e == "function" ? K(e, {
788
- ...this.options,
789
- ...t
790
- }) : e)), e.forEach((e) => {
791
- if (this.isValidLookup(n)) return;
792
- let s = this.extractFromKey(e, t), c = s.key;
793
- r = c;
794
- let l = s.namespaces;
795
- this.options.fallbackNS && (l = l.concat(this.options.fallbackNS));
796
- let u = t.count !== void 0 && !R(t.count), d = u && !t.ordinal && t.count === 0, f = t.context !== void 0 && (R(t.context) || typeof t.context == "number") && t.context !== "", p = t.lngs ? t.lngs : this.languageUtils.toResolveHierarchy(t.lng || this.language, t.fallbackLng);
797
- l.forEach((e) => {
798
- this.isValidLookup(n) || (o = e, !Re[`${p[0]}-${e}`] && this.utils?.hasLoadedNamespace && !this.utils?.hasLoadedNamespace(o) && (Re[`${p[0]}-${e}`] = !0, this.logger.warn(`key "${r}" for languages "${p.join(", ")}" won't get resolved as namespace "${o}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!")), p.forEach((r) => {
799
- if (this.isValidLookup(n)) return;
800
- a = r;
801
- let o = [c];
802
- if (this.i18nFormat?.addLookupKeys) this.i18nFormat.addLookupKeys(o, c, r, e, t);
803
- else {
804
- let e;
805
- u && (e = this.pluralResolver.getSuffix(r, t.count, t));
806
- let n = `${this.options.pluralSeparator}zero`, i = `${this.options.pluralSeparator}ordinal${this.options.pluralSeparator}`;
807
- if (u && (t.ordinal && e.indexOf(i) === 0 && o.push(c + e.replace(i, this.options.pluralSeparator)), o.push(c + e), d && o.push(c + n)), f) {
808
- let r = `${c}${this.options.contextSeparator || "_"}${t.context}`;
809
- o.push(r), u && (t.ordinal && e.indexOf(i) === 0 && o.push(r + e.replace(i, this.options.pluralSeparator)), o.push(r + e), d && o.push(r + n));
810
- }
811
- }
812
- let s;
813
- for (; s = o.pop();) this.isValidLookup(n) || (i = s, n = this.getResource(r, e, s, t));
814
- }));
815
- });
816
- }), {
817
- res: n,
818
- usedKey: r,
819
- exactUsedKey: i,
820
- usedLng: a,
821
- usedNS: o
822
- };
823
- }
824
- isValidLookup(e) {
825
- return e !== void 0 && !(!this.options.returnNull && e === null) && !(!this.options.returnEmptyString && e === "");
826
- }
827
- getResource(e, t, n, r = {}) {
828
- return this.i18nFormat?.getResource ? this.i18nFormat.getResource(e, t, n, r) : this.resourceStore.getResource(e, t, n, r);
829
- }
830
- getUsedParamsDetails(e = {}) {
831
- let t = [
832
- "defaultValue",
833
- "ordinal",
834
- "context",
835
- "replace",
836
- "lng",
837
- "lngs",
838
- "fallbackLng",
839
- "ns",
840
- "keySeparator",
841
- "nsSeparator",
842
- "returnObjects",
843
- "returnDetails",
844
- "joinArrays",
845
- "postProcess",
846
- "interpolation"
847
- ], n = e.replace && !R(e.replace), r = n ? e.replace : e;
848
- if (n && e.count !== void 0 && (r.count = e.count), this.options.interpolation.defaultVariables && (r = {
849
- ...this.options.interpolation.defaultVariables,
850
- ...r
851
- }), !n) {
852
- r = { ...r };
853
- for (let e of t) delete r[e];
854
- }
855
- return r;
856
- }
857
- static hasDefaultValue(e) {
858
- for (let t in e) if (Object.prototype.hasOwnProperty.call(e, t) && t.substring(0, 12) === "defaultValue" && e[t] !== void 0) return !0;
859
- return !1;
860
- }
861
- }, Ve = class {
862
- constructor(e) {
863
- this.options = e, this.supportedLngs = this.options.supportedLngs || !1, this.logger = W.create("languageUtils");
864
- }
865
- getScriptPartFromCode(e) {
866
- if (e = U(e), !e || e.indexOf("-") < 0) return null;
867
- let t = e.split("-");
868
- return t.length === 2 || (t.pop(), t[t.length - 1].toLowerCase() === "x") ? null : this.formatLanguageCode(t.join("-"));
869
- }
870
- getLanguagePartFromCode(e) {
871
- if (e = U(e), !e || e.indexOf("-") < 0) return e;
872
- let t = e.split("-");
873
- return this.formatLanguageCode(t[0]);
874
- }
875
- formatLanguageCode(e) {
876
- if (R(e) && e.indexOf("-") > -1) {
877
- let t;
878
- try {
879
- t = Intl.getCanonicalLocales(e)[0];
880
- } catch {}
881
- return t && this.options.lowerCaseLng && (t = t.toLowerCase()), t || (this.options.lowerCaseLng ? e.toLowerCase() : e);
882
- }
883
- return this.options.cleanCode || this.options.lowerCaseLng ? e.toLowerCase() : e;
884
- }
885
- isSupportedCode(e) {
886
- return (this.options.load === "languageOnly" || this.options.nonExplicitSupportedLngs) && (e = this.getLanguagePartFromCode(e)), !this.supportedLngs || !this.supportedLngs.length || this.supportedLngs.indexOf(e) > -1;
887
- }
888
- getBestMatchFromCodes(e) {
889
- if (!e) return null;
890
- let t;
891
- return e.forEach((e) => {
892
- if (t) return;
893
- let n = this.formatLanguageCode(e);
894
- (!this.options.supportedLngs || this.isSupportedCode(n)) && (t = n);
895
- }), !t && this.options.supportedLngs && e.forEach((e) => {
896
- if (t) return;
897
- let n = this.getScriptPartFromCode(e);
898
- if (this.isSupportedCode(n)) return t = n;
899
- let r = this.getLanguagePartFromCode(e);
900
- if (this.isSupportedCode(r)) return t = r;
901
- t = this.options.supportedLngs.find((e) => {
902
- if (e === r || !(e.indexOf("-") < 0 && r.indexOf("-") < 0) && (e.indexOf("-") > 0 && r.indexOf("-") < 0 && e.substring(0, e.indexOf("-")) === r || e.indexOf(r) === 0 && r.length > 1)) return e;
903
- });
904
- }), t ||= this.getFallbackCodes(this.options.fallbackLng)[0], t;
905
- }
906
- getFallbackCodes(e, t) {
907
- if (!e) return [];
908
- if (typeof e == "function" && (e = e(t)), R(e) && (e = [e]), Array.isArray(e)) return e;
909
- if (!t) return e.default || [];
910
- let n = e[t];
911
- return n ||= e[this.getScriptPartFromCode(t)], n ||= e[this.formatLanguageCode(t)], n ||= e[this.getLanguagePartFromCode(t)], n ||= e.default, n || [];
912
- }
913
- toResolveHierarchy(e, t) {
914
- let n = this.getFallbackCodes((t === !1 ? [] : t) || this.options.fallbackLng || [], e), r = [], i = (e) => {
915
- e && (this.isSupportedCode(e) ? r.push(e) : this.logger.warn(`rejecting language code not found in supportedLngs: ${e}`));
916
- };
917
- return R(e) && (e.indexOf("-") > -1 || e.indexOf("_") > -1) ? (this.options.load !== "languageOnly" && i(this.formatLanguageCode(e)), this.options.load !== "languageOnly" && this.options.load !== "currentOnly" && i(this.getScriptPartFromCode(e)), this.options.load !== "currentOnly" && i(this.getLanguagePartFromCode(e))) : R(e) && i(this.formatLanguageCode(e)), n.forEach((e) => {
918
- r.indexOf(e) < 0 && i(this.formatLanguageCode(e));
919
- }), r;
920
- }
921
- }, He = {
922
- zero: 0,
923
- one: 1,
924
- two: 2,
925
- few: 3,
926
- many: 4,
927
- other: 5
928
- }, Ue = {
929
- select: (e) => e === 1 ? "one" : "other",
930
- resolvedOptions: () => ({ pluralCategories: ["one", "other"] })
931
- }, We = class {
932
- constructor(e, t = {}) {
933
- this.languageUtils = e, this.options = t, this.logger = W.create("pluralResolver"), this.pluralRulesCache = {};
934
- }
935
- clearCache() {
936
- this.pluralRulesCache = {};
937
- }
938
- getRule(e, t = {}) {
939
- let n = U(e === "dev" ? "en" : e), r = t.ordinal ? "ordinal" : "cardinal", i = JSON.stringify({
940
- cleanedCode: n,
941
- type: r
942
- });
943
- if (i in this.pluralRulesCache) return this.pluralRulesCache[i];
944
- let a;
945
- try {
946
- a = new Intl.PluralRules(n, { type: r });
947
- } catch {
948
- if (typeof Intl > "u") return this.logger.error("No Intl support, please use an Intl polyfill!"), Ue;
949
- if (!e.match(/-|_/)) return Ue;
950
- let n = this.languageUtils.getLanguagePartFromCode(e);
951
- a = this.getRule(n, t);
952
- }
953
- return this.pluralRulesCache[i] = a, a;
954
- }
955
- needsPlural(e, t = {}) {
956
- let n = this.getRule(e, t);
957
- return n ||= this.getRule("dev", t), n?.resolvedOptions().pluralCategories.length > 1;
958
- }
959
- getPluralFormsOfKey(e, t, n = {}) {
960
- return this.getSuffixes(e, n).map((e) => `${t}${e}`);
961
- }
962
- getSuffixes(e, t = {}) {
963
- let n = this.getRule(e, t);
964
- return n ||= this.getRule("dev", t), n ? n.resolvedOptions().pluralCategories.sort((e, t) => He[e] - He[t]).map((e) => `${this.options.prepend}${t.ordinal ? `ordinal${this.options.prepend}` : ""}${e}`) : [];
965
- }
966
- getSuffix(e, t, n = {}) {
967
- let r = this.getRule(e, n);
968
- return r ? `${this.options.prepend}${n.ordinal ? `ordinal${this.options.prepend}` : ""}${r.select(t)}` : (this.logger.warn(`no plural rule found for: ${e}`), this.getSuffix("dev", t, n));
969
- }
970
- }, Ge = (e, t, n, r = ".", i = !0) => {
971
- let a = we(e, t, n);
972
- return !a && i && R(n) && (a = Me(e, n, r), a === void 0 && (a = Me(t, n, r))), a;
973
- }, Ke = (e) => e.replace(/\$/g, "$$$$"), qe = class {
974
- constructor(e = {}) {
975
- this.logger = W.create("interpolator"), this.options = e, this.format = e?.interpolation?.format || ((e) => e), this.init(e);
976
- }
977
- init(e = {}) {
978
- e.interpolation ||= { escapeValue: !0 };
979
- let { escape: t, escapeValue: n, useRawValueToEscape: r, prefix: i, prefixEscaped: a, suffix: o, suffixEscaped: s, formatSeparator: c, unescapeSuffix: l, unescapePrefix: u, nestingPrefix: d, nestingPrefixEscaped: f, nestingSuffix: p, nestingSuffixEscaped: m, nestingOptionsSeparator: h, maxReplaces: g, alwaysFormat: _ } = e.interpolation;
980
- this.escape = t === void 0 ? De : t, this.escapeValue = n === void 0 ? !0 : n, this.useRawValueToEscape = r === void 0 ? !1 : r, this.prefix = i ? H(i) : a || "{{", this.suffix = o ? H(o) : s || "}}", this.formatSeparator = c || ",", this.unescapePrefix = l ? "" : u || "-", this.unescapeSuffix = this.unescapePrefix ? "" : l || "", this.nestingPrefix = d ? H(d) : f || H("$t("), this.nestingSuffix = p ? H(p) : m || H(")"), this.nestingOptionsSeparator = h || ",", this.maxReplaces = g || 1e3, this.alwaysFormat = _ === void 0 ? !1 : _, this.resetRegExp();
981
- }
982
- reset() {
983
- this.options && this.init(this.options);
984
- }
985
- resetRegExp() {
986
- let e = (e, t) => e?.source === t ? (e.lastIndex = 0, e) : new RegExp(t, "g");
987
- this.regexp = e(this.regexp, `${this.prefix}(.+?)${this.suffix}`), this.regexpUnescape = e(this.regexpUnescape, `${this.prefix}${this.unescapePrefix}(.+?)${this.unescapeSuffix}${this.suffix}`), this.nestingRegexp = e(this.nestingRegexp, `${this.nestingPrefix}((?:[^()"']+|"[^"]*"|'[^']*'|\\((?:[^()]|"[^"]*"|'[^']*')*\\))*?)${this.nestingSuffix}`);
988
- }
989
- interpolate(e, t, n, r) {
990
- let i, a, o, s = this.options && this.options.interpolation && this.options.interpolation.defaultVariables || {}, c = (e) => {
991
- if (e.indexOf(this.formatSeparator) < 0) {
992
- let i = Ge(t, s, e, this.options.keySeparator, this.options.ignoreJSONStructure);
993
- return this.alwaysFormat ? this.format(i, void 0, n, {
994
- ...r,
995
- ...t,
996
- interpolationkey: e
997
- }) : i;
998
- }
999
- let i = e.split(this.formatSeparator), a = i.shift().trim(), o = i.join(this.formatSeparator).trim();
1000
- return this.format(Ge(t, s, a, this.options.keySeparator, this.options.ignoreJSONStructure), o, n, {
1001
- ...r,
1002
- ...t,
1003
- interpolationkey: a
1004
- });
1005
- };
1006
- this.resetRegExp();
1007
- let l = r?.missingInterpolationHandler || this.options.missingInterpolationHandler, u = r?.interpolation?.skipOnVariables === void 0 ? this.options.interpolation.skipOnVariables : r.interpolation.skipOnVariables;
1008
- return [{
1009
- regex: this.regexpUnescape,
1010
- safeValue: (e) => Ke(e)
1011
- }, {
1012
- regex: this.regexp,
1013
- safeValue: (e) => this.escapeValue ? Ke(this.escape(e)) : Ke(e)
1014
- }].forEach((t) => {
1015
- for (o = 0; i = t.regex.exec(e);) {
1016
- let n = i[1].trim();
1017
- if (a = c(n), a === void 0) if (typeof l == "function") {
1018
- let t = l(e, i, r);
1019
- a = R(t) ? t : "";
1020
- } else if (r && Object.prototype.hasOwnProperty.call(r, n)) a = "";
1021
- else if (u) {
1022
- a = i[0];
1023
- continue;
1024
- } else this.logger.warn(`missed to pass in variable ${n} for interpolating ${e}`), a = "";
1025
- else !R(a) && !this.useRawValueToEscape && (a = _e(a));
1026
- let s = t.safeValue(a);
1027
- if (e = e.replace(i[0], s), u ? (t.regex.lastIndex += a.length, t.regex.lastIndex -= i[0].length) : t.regex.lastIndex = 0, o++, o >= this.maxReplaces) break;
1028
- }
1029
- }), e;
1030
- }
1031
- nest(e, t, n = {}) {
1032
- let r, i, a, o = (e, t) => {
1033
- let n = this.nestingOptionsSeparator;
1034
- if (e.indexOf(n) < 0) return e;
1035
- let r = e.split(RegExp(`${H(n)}[ ]*{`)), i = `{${r[1]}`;
1036
- e = r[0], i = this.interpolate(i, a);
1037
- let o = i.match(/'/g), s = i.match(/"/g);
1038
- ((o?.length ?? 0) % 2 == 0 && !s || (s?.length ?? 0) % 2 != 0) && (i = i.replace(/'/g, "\""));
1039
- try {
1040
- a = JSON.parse(i), t && (a = {
1041
- ...t,
1042
- ...a
1043
- });
1044
- } catch (t) {
1045
- return this.logger.warn(`failed parsing options string in nesting for key ${e}`, t), `${e}${n}${i}`;
1046
- }
1047
- return a.defaultValue && a.defaultValue.indexOf(this.prefix) > -1 && delete a.defaultValue, e;
1048
- };
1049
- for (; r = this.nestingRegexp.exec(e);) {
1050
- let s = [];
1051
- a = { ...n }, a = a.replace && !R(a.replace) ? a.replace : a, a.applyPostProcessor = !1, delete a.defaultValue;
1052
- let c = /{.*}/.test(r[1]) ? r[1].lastIndexOf("}") + 1 : r[1].indexOf(this.formatSeparator);
1053
- if (c !== -1 && (s = r[1].slice(c).split(this.formatSeparator).map((e) => e.trim()).filter(Boolean), r[1] = r[1].slice(0, c)), i = t(o.call(this, r[1].trim(), a), a), i && r[0] === e && !R(i)) return i;
1054
- R(i) || (i = _e(i)), i ||= (this.logger.warn(`missed to resolve ${r[1]} for nesting ${e}`), ""), s.length && (i = s.reduce((e, t) => this.format(e, t, n.lng, {
1055
- ...n,
1056
- interpolationkey: r[1].trim()
1057
- }), i.trim())), e = e.replace(r[0], i), this.regexp.lastIndex = 0;
1058
- }
1059
- return e;
1060
- }
1061
- }, Je = (e) => {
1062
- let t = e.toLowerCase().trim(), n = {};
1063
- if (e.indexOf("(") > -1) {
1064
- let r = e.split("(");
1065
- t = r[0].toLowerCase().trim();
1066
- let i = r[1].substring(0, r[1].length - 1);
1067
- t === "currency" && i.indexOf(":") < 0 ? n.currency ||= i.trim() : t === "relativetime" && i.indexOf(":") < 0 ? n.range ||= i.trim() : i.split(";").forEach((e) => {
1068
- if (e) {
1069
- let [t, ...r] = e.split(":"), i = r.join(":").trim().replace(/^'+|'+$/g, ""), a = t.trim();
1070
- n[a] || (n[a] = i), i === "false" && (n[a] = !1), i === "true" && (n[a] = !0), isNaN(i) || (n[a] = parseInt(i, 10));
1071
- }
1072
- });
1073
- }
1074
- return {
1075
- formatName: t,
1076
- formatOptions: n
1077
- };
1078
- }, Ye = (e) => {
1079
- let t = {};
1080
- return (n, r, i) => {
1081
- let a = i;
1082
- i && i.interpolationkey && i.formatParams && i.formatParams[i.interpolationkey] && i[i.interpolationkey] && (a = {
1083
- ...a,
1084
- [i.interpolationkey]: void 0
1085
- });
1086
- let o = r + JSON.stringify(a), s = t[o];
1087
- return s || (s = e(U(r), i), t[o] = s), s(n);
1088
- };
1089
- }, Xe = (e) => (t, n, r) => e(U(n), r)(t), Ze = class {
1090
- constructor(e = {}) {
1091
- this.logger = W.create("formatter"), this.options = e, this.init(e);
1092
- }
1093
- init(e, t = { interpolation: {} }) {
1094
- this.formatSeparator = t.interpolation.formatSeparator || ",";
1095
- let n = t.cacheInBuiltFormats ? Ye : Xe;
1096
- this.formats = {
1097
- number: n((e, t) => {
1098
- let n = new Intl.NumberFormat(e, { ...t });
1099
- return (e) => n.format(e);
1100
- }),
1101
- currency: n((e, t) => {
1102
- let n = new Intl.NumberFormat(e, {
1103
- ...t,
1104
- style: "currency"
1105
- });
1106
- return (e) => n.format(e);
1107
- }),
1108
- datetime: n((e, t) => {
1109
- let n = new Intl.DateTimeFormat(e, { ...t });
1110
- return (e) => n.format(e);
1111
- }),
1112
- relativetime: n((e, t) => {
1113
- let n = new Intl.RelativeTimeFormat(e, { ...t });
1114
- return (e) => n.format(e, t.range || "day");
1115
- }),
1116
- list: n((e, t) => {
1117
- let n = new Intl.ListFormat(e, { ...t });
1118
- return (e) => n.format(e);
1119
- })
1120
- };
1121
- }
1122
- add(e, t) {
1123
- this.formats[e.toLowerCase().trim()] = t;
1124
- }
1125
- addCached(e, t) {
1126
- this.formats[e.toLowerCase().trim()] = Ye(t);
1127
- }
1128
- format(e, t, n, r = {}) {
1129
- let i = t.split(this.formatSeparator);
1130
- if (i.length > 1 && i[0].indexOf("(") > 1 && i[0].indexOf(")") < 0 && i.find((e) => e.indexOf(")") > -1)) {
1131
- let e = i.findIndex((e) => e.indexOf(")") > -1);
1132
- i[0] = [i[0], ...i.splice(1, e)].join(this.formatSeparator);
1133
- }
1134
- return i.reduce((e, t) => {
1135
- let { formatName: i, formatOptions: a } = Je(t);
1136
- if (this.formats[i]) {
1137
- let t = e;
1138
- try {
1139
- let o = r?.formatParams?.[r.interpolationkey] || {}, s = o.locale || o.lng || r.locale || r.lng || n;
1140
- t = this.formats[i](e, s, {
1141
- ...a,
1142
- ...r,
1143
- ...o
1144
- });
1145
- } catch (e) {
1146
- this.logger.warn(e);
1147
- }
1148
- return t;
1149
- } else this.logger.warn(`there was no format function for ${i}`);
1150
- return e;
1151
- }, e);
1152
- }
1153
- }, Qe = (e, t) => {
1154
- e.pending[t] !== void 0 && (delete e.pending[t], e.pendingCount--);
1155
- }, $e = class extends G {
1156
- constructor(e, t, n, r = {}) {
1157
- super(), this.backend = e, this.store = t, this.services = n, this.languageUtils = n.languageUtils, this.options = r, this.logger = W.create("backendConnector"), this.waitingReads = [], this.maxParallelReads = r.maxParallelReads || 10, this.readingCalls = 0, this.maxRetries = r.maxRetries >= 0 ? r.maxRetries : 5, this.retryTimeout = r.retryTimeout >= 1 ? r.retryTimeout : 350, this.state = {}, this.queue = [], this.backend?.init?.(n, r.backend, r);
1158
- }
1159
- queueLoad(e, t, n, r) {
1160
- let i = {}, a = {}, o = {}, s = {};
1161
- return e.forEach((e) => {
1162
- let r = !0;
1163
- t.forEach((t) => {
1164
- let o = `${e}|${t}`;
1165
- !n.reload && this.store.hasResourceBundle(e, t) ? this.state[o] = 2 : this.state[o] < 0 || (this.state[o] === 1 ? a[o] === void 0 && (a[o] = !0) : (this.state[o] = 1, r = !1, a[o] === void 0 && (a[o] = !0), i[o] === void 0 && (i[o] = !0), s[t] === void 0 && (s[t] = !0)));
1166
- }), r || (o[e] = !0);
1167
- }), (Object.keys(i).length || Object.keys(a).length) && this.queue.push({
1168
- pending: a,
1169
- pendingCount: Object.keys(a).length,
1170
- loaded: {},
1171
- errors: [],
1172
- callback: r
1173
- }), {
1174
- toLoad: Object.keys(i),
1175
- pending: Object.keys(a),
1176
- toLoadLanguages: Object.keys(o),
1177
- toLoadNamespaces: Object.keys(s)
1178
- };
1179
- }
1180
- loaded(e, t, n) {
1181
- let r = e.split("|"), i = r[0], a = r[1];
1182
- t && this.emit("failedLoading", i, a, t), !t && n && this.store.addResourceBundle(i, a, n, void 0, void 0, { skipCopy: !0 }), this.state[e] = t ? -1 : 2, t && n && (this.state[e] = 0);
1183
- let o = {};
1184
- this.queue.forEach((n) => {
1185
- Ce(n.loaded, [i], a), Qe(n, e), t && n.errors.push(t), n.pendingCount === 0 && !n.done && (Object.keys(n.loaded).forEach((e) => {
1186
- o[e] || (o[e] = {});
1187
- let t = n.loaded[e];
1188
- t.length && t.forEach((t) => {
1189
- o[e][t] === void 0 && (o[e][t] = !0);
1190
- });
1191
- }), n.done = !0, n.errors.length ? n.callback(n.errors) : n.callback());
1192
- }), this.emit("loaded", o), this.queue = this.queue.filter((e) => !e.done);
1193
- }
1194
- read(e, t, n, r = 0, i = this.retryTimeout, a) {
1195
- if (!e.length) return a(null, {});
1196
- if (this.readingCalls >= this.maxParallelReads) {
1197
- this.waitingReads.push({
1198
- lng: e,
1199
- ns: t,
1200
- fcName: n,
1201
- tried: r,
1202
- wait: i,
1203
- callback: a
1204
- });
1205
- return;
1206
- }
1207
- this.readingCalls++;
1208
- let o = (o, s) => {
1209
- if (this.readingCalls--, this.waitingReads.length > 0) {
1210
- let e = this.waitingReads.shift();
1211
- this.read(e.lng, e.ns, e.fcName, e.tried, e.wait, e.callback);
1212
- }
1213
- if (o && s && r < this.maxRetries) {
1214
- setTimeout(() => {
1215
- this.read.call(this, e, t, n, r + 1, i * 2, a);
1216
- }, i);
1217
- return;
1218
- }
1219
- a(o, s);
1220
- }, s = this.backend[n].bind(this.backend);
1221
- if (s.length === 2) {
1222
- try {
1223
- let n = s(e, t);
1224
- n && typeof n.then == "function" ? n.then((e) => o(null, e)).catch(o) : o(null, n);
1225
- } catch (e) {
1226
- o(e);
1227
- }
1228
- return;
1229
- }
1230
- return s(e, t, o);
1231
- }
1232
- prepareLoading(e, t, n = {}, r) {
1233
- if (!this.backend) return this.logger.warn("No backend was added via i18next.use. Will not load resources."), r && r();
1234
- R(e) && (e = this.languageUtils.toResolveHierarchy(e)), R(t) && (t = [t]);
1235
- let i = this.queueLoad(e, t, n, r);
1236
- if (!i.toLoad.length) return i.pending.length || r(), null;
1237
- i.toLoad.forEach((e) => {
1238
- this.loadOne(e);
1239
- });
1240
- }
1241
- load(e, t, n) {
1242
- this.prepareLoading(e, t, {}, n);
1243
- }
1244
- reload(e, t, n) {
1245
- this.prepareLoading(e, t, { reload: !0 }, n);
1246
- }
1247
- loadOne(e, t = "") {
1248
- let n = e.split("|"), r = n[0], i = n[1];
1249
- this.read(r, i, "read", void 0, void 0, (n, a) => {
1250
- n && this.logger.warn(`${t}loading namespace ${i} for language ${r} failed`, n), !n && a && this.logger.log(`${t}loaded namespace ${i} for language ${r}`, a), this.loaded(e, n, a);
1251
- });
1252
- }
1253
- saveMissing(e, t, n, r, i, a = {}, o = () => {}) {
1254
- if (this.services?.utils?.hasLoadedNamespace && !this.services?.utils?.hasLoadedNamespace(t)) {
1255
- this.logger.warn(`did not save key "${n}" as the namespace "${t}" was not yet loaded`, "This means something IS WRONG in your setup. You access the t function before i18next.init / i18next.loadNamespace / i18next.changeLanguage was done. Wait for the callback or Promise to resolve before accessing it!!!");
1256
- return;
1257
- }
1258
- if (!(n == null || n === "")) {
1259
- if (this.backend?.create) {
1260
- let s = {
1261
- ...a,
1262
- isUpdate: i
1263
- }, c = this.backend.create.bind(this.backend);
1264
- if (c.length < 6) try {
1265
- let i;
1266
- i = c.length === 5 ? c(e, t, n, r, s) : c(e, t, n, r), i && typeof i.then == "function" ? i.then((e) => o(null, e)).catch(o) : o(null, i);
1267
- } catch (e) {
1268
- o(e);
1269
- }
1270
- else c(e, t, n, r, o, s);
1271
- }
1272
- !e || !e[0] || this.store.addResource(e[0], t, n, r);
1273
- }
1274
- }
1275
- }, et = () => ({
1276
- debug: !1,
1277
- initAsync: !0,
1278
- ns: ["translation"],
1279
- defaultNS: ["translation"],
1280
- fallbackLng: ["dev"],
1281
- fallbackNS: !1,
1282
- supportedLngs: !1,
1283
- nonExplicitSupportedLngs: !1,
1284
- load: "all",
1285
- preload: !1,
1286
- simplifyPluralSuffix: !0,
1287
- keySeparator: ".",
1288
- nsSeparator: ":",
1289
- pluralSeparator: "_",
1290
- contextSeparator: "_",
1291
- partialBundledLanguages: !1,
1292
- saveMissing: !1,
1293
- updateMissing: !1,
1294
- saveMissingTo: "fallback",
1295
- saveMissingPlurals: !0,
1296
- missingKeyHandler: !1,
1297
- missingInterpolationHandler: !1,
1298
- postProcess: !1,
1299
- postProcessPassResolved: !1,
1300
- returnNull: !1,
1301
- returnEmptyString: !0,
1302
- returnObjects: !1,
1303
- joinArrays: !1,
1304
- returnedObjectHandler: !1,
1305
- parseMissingKeyHandler: !1,
1306
- appendNamespaceToMissingKey: !1,
1307
- appendNamespaceToCIMode: !1,
1308
- overloadTranslationOptionHandler: (e) => {
1309
- let t = {};
1310
- if (typeof e[1] == "object" && (t = e[1]), R(e[1]) && (t.defaultValue = e[1]), R(e[2]) && (t.tDescription = e[2]), typeof e[2] == "object" || typeof e[3] == "object") {
1311
- let n = e[3] || e[2];
1312
- Object.keys(n).forEach((e) => {
1313
- t[e] = n[e];
1314
- });
1315
- }
1316
- return t;
1317
- },
1318
- interpolation: {
1319
- escapeValue: !0,
1320
- format: (e) => e,
1321
- prefix: "{{",
1322
- suffix: "}}",
1323
- formatSeparator: ",",
1324
- unescapePrefix: "-",
1325
- nestingPrefix: "$t(",
1326
- nestingSuffix: ")",
1327
- nestingOptionsSeparator: ",",
1328
- maxReplaces: 1e3,
1329
- skipOnVariables: !0
1330
- },
1331
- cacheInBuiltFormats: !0
1332
- }), tt = (e) => (R(e.ns) && (e.ns = [e.ns]), R(e.fallbackLng) && (e.fallbackLng = [e.fallbackLng]), R(e.fallbackNS) && (e.fallbackNS = [e.fallbackNS]), e.supportedLngs?.indexOf?.("cimode") < 0 && (e.supportedLngs = e.supportedLngs.concat(["cimode"])), typeof e.initImmediate == "boolean" && (e.initAsync = e.initImmediate), e), q = () => {}, nt = (e) => {
1333
- Object.getOwnPropertyNames(Object.getPrototypeOf(e)).forEach((t) => {
1334
- typeof e[t] == "function" && (e[t] = e[t].bind(e));
1335
- });
1336
- }, rt = "__i18next_supportNoticeShown", it = () => !!(typeof globalThis < "u" && globalThis[rt] || typeof process < "u" && process.env && process.env.I18NEXT_NO_SUPPORT_NOTICE || typeof process < "u" && process.env), at = () => {
1337
- typeof globalThis < "u" && (globalThis[rt] = !0);
1338
- }, ot = (e) => !!(e?.modules?.backend?.name?.indexOf("Locize") > 0 || e?.modules?.backend?.constructor?.name?.indexOf("Locize") > 0 || e?.options?.backend?.backends && e.options.backend.backends.some((e) => e?.name?.indexOf("Locize") > 0 || e?.constructor?.name?.indexOf("Locize") > 0) || e?.options?.backend?.projectId || e?.options?.backend?.backendOptions && e.options.backend.backendOptions.some((e) => e?.projectId)), J = class e extends G {
1339
- constructor(e = {}, t) {
1340
- if (super(), this.options = tt(e), this.services = {}, this.logger = W, this.modules = { external: [] }, nt(this), t && !this.isInitialized && !e.isClone) {
1341
- if (!this.options.initAsync) return this.init(e, t), this;
1342
- setTimeout(() => {
1343
- this.init(e, t);
1344
- }, 0);
1345
- }
1346
- }
1347
- init(e = {}, t) {
1348
- this.isInitializing = !0, typeof e == "function" && (t = e, e = {}), e.defaultNS == null && e.ns && (R(e.ns) ? e.defaultNS = e.ns : e.ns.indexOf("translation") < 0 && (e.defaultNS = e.ns[0]));
1349
- let n = et();
1350
- this.options = {
1351
- ...n,
1352
- ...this.options,
1353
- ...tt(e)
1354
- }, this.options.interpolation = {
1355
- ...n.interpolation,
1356
- ...this.options.interpolation
1357
- }, e.keySeparator !== void 0 && (this.options.userDefinedKeySeparator = e.keySeparator), e.nsSeparator !== void 0 && (this.options.userDefinedNsSeparator = e.nsSeparator), typeof this.options.overloadTranslationOptionHandler != "function" && (this.options.overloadTranslationOptionHandler = n.overloadTranslationOptionHandler), this.options.showSupportNotice !== !1 && !ot(this) && !it() && (typeof console < "u" && console.info !== void 0 && console.info("🌐 i18next is made possible by our own product, Locize — consider powering your project with managed localization (AI, CDN, integrations): https://locize.com 💙"), at());
1358
- let r = (e) => e ? typeof e == "function" ? new e() : e : null;
1359
- if (!this.options.isClone) {
1360
- this.modules.logger ? W.init(r(this.modules.logger), this.options) : W.init(null, this.options);
1361
- let e;
1362
- e = this.modules.formatter ? this.modules.formatter : Ze;
1363
- let t = new Ve(this.options);
1364
- this.store = new Pe(this.options.resources, this.options);
1365
- let i = this.services;
1366
- i.logger = W, i.resourceStore = this.store, i.languageUtils = t, i.pluralResolver = new We(t, {
1367
- prepend: this.options.pluralSeparator,
1368
- simplifyPluralSuffix: this.options.simplifyPluralSuffix
1369
- }), this.options.interpolation.format && this.options.interpolation.format !== n.interpolation.format && this.logger.deprecate("init: you are still using the legacy format function, please use the new approach: https://www.i18next.com/translation-function/formatting"), e && (!this.options.interpolation.format || this.options.interpolation.format === n.interpolation.format) && (i.formatter = r(e), i.formatter.init && i.formatter.init(i, this.options), this.options.interpolation.format = i.formatter.format.bind(i.formatter)), i.interpolator = new qe(this.options), i.utils = { hasLoadedNamespace: this.hasLoadedNamespace.bind(this) }, i.backendConnector = new $e(r(this.modules.backend), i.resourceStore, i, this.options), i.backendConnector.on("*", (e, ...t) => {
1370
- this.emit(e, ...t);
1371
- }), this.modules.languageDetector && (i.languageDetector = r(this.modules.languageDetector), i.languageDetector.init && i.languageDetector.init(i, this.options.detection, this.options)), this.modules.i18nFormat && (i.i18nFormat = r(this.modules.i18nFormat), i.i18nFormat.init && i.i18nFormat.init(this)), this.translator = new Be(this.services, this.options), this.translator.on("*", (e, ...t) => {
1372
- this.emit(e, ...t);
1373
- }), this.modules.external.forEach((e) => {
1374
- e.init && e.init(this);
1375
- });
1376
- }
1377
- if (this.format = this.options.interpolation.format, t ||= q, this.options.fallbackLng && !this.services.languageDetector && !this.options.lng) {
1378
- let e = this.services.languageUtils.getFallbackCodes(this.options.fallbackLng);
1379
- e.length > 0 && e[0] !== "dev" && (this.options.lng = e[0]);
1380
- }
1381
- !this.services.languageDetector && !this.options.lng && this.logger.warn("init: no languageDetector is used and no lng is defined"), [
1382
- "getResource",
1383
- "hasResourceBundle",
1384
- "getResourceBundle",
1385
- "getDataByLanguage"
1386
- ].forEach((e) => {
1387
- this[e] = (...t) => this.store[e](...t);
1388
- }), [
1389
- "addResource",
1390
- "addResources",
1391
- "addResourceBundle",
1392
- "removeResourceBundle"
1393
- ].forEach((e) => {
1394
- this[e] = (...t) => (this.store[e](...t), this);
1395
- });
1396
- let i = z(), a = () => {
1397
- let e = (e, n) => {
1398
- this.isInitializing = !1, this.isInitialized && !this.initializedStoreOnce && this.logger.warn("init: i18next is already initialized. You should call init just once!"), this.isInitialized = !0, this.options.isClone || this.logger.log("initialized", this.options), this.emit("initialized", this.options), i.resolve(n), t(e, n);
1399
- };
1400
- if (this.languages && !this.isInitialized) return e(null, this.t.bind(this));
1401
- this.changeLanguage(this.options.lng, e);
1402
- };
1403
- return this.options.resources || !this.options.initAsync ? a() : setTimeout(a, 0), i;
1404
- }
1405
- loadResources(e, t = q) {
1406
- let n = t, r = R(e) ? e : this.language;
1407
- if (typeof e == "function" && (n = e), !this.options.resources || this.options.partialBundledLanguages) {
1408
- if (r?.toLowerCase() === "cimode" && (!this.options.preload || this.options.preload.length === 0)) return n();
1409
- let e = [], t = (t) => {
1410
- t && t !== "cimode" && this.services.languageUtils.toResolveHierarchy(t).forEach((t) => {
1411
- t !== "cimode" && e.indexOf(t) < 0 && e.push(t);
1412
- });
1413
- };
1414
- r ? t(r) : this.services.languageUtils.getFallbackCodes(this.options.fallbackLng).forEach((e) => t(e)), this.options.preload?.forEach?.((e) => t(e)), this.services.backendConnector.load(e, this.options.ns, (e) => {
1415
- !e && !this.resolvedLanguage && this.language && this.setResolvedLanguage(this.language), n(e);
1416
- });
1417
- } else n(null);
1418
- }
1419
- reloadResources(e, t, n) {
1420
- let r = z();
1421
- return typeof e == "function" && (n = e, e = void 0), typeof t == "function" && (n = t, t = void 0), e ||= this.languages, t ||= this.options.ns, n ||= q, this.services.backendConnector.reload(e, t, (e) => {
1422
- r.resolve(), n(e);
1423
- }), r;
1424
- }
1425
- use(e) {
1426
- if (!e) throw Error("You are passing an undefined module! Please check the object you are passing to i18next.use()");
1427
- if (!e.type) throw Error("You are passing a wrong module! Please check the object you are passing to i18next.use()");
1428
- return e.type === "backend" && (this.modules.backend = e), (e.type === "logger" || e.log && e.warn && e.error) && (this.modules.logger = e), e.type === "languageDetector" && (this.modules.languageDetector = e), e.type === "i18nFormat" && (this.modules.i18nFormat = e), e.type === "postProcessor" && Fe.addPostProcessor(e), e.type === "formatter" && (this.modules.formatter = e), e.type === "3rdParty" && this.modules.external.push(e), this;
1429
- }
1430
- setResolvedLanguage(e) {
1431
- if (!(!e || !this.languages) && !(["cimode", "dev"].indexOf(e) > -1)) {
1432
- for (let e = 0; e < this.languages.length; e++) {
1433
- let t = this.languages[e];
1434
- if (!(["cimode", "dev"].indexOf(t) > -1) && this.store.hasLanguageSomeTranslations(t)) {
1435
- this.resolvedLanguage = t;
1436
- break;
1437
- }
1438
- }
1439
- !this.resolvedLanguage && this.languages.indexOf(e) < 0 && this.store.hasLanguageSomeTranslations(e) && (this.resolvedLanguage = e, this.languages.unshift(e));
1440
- }
1441
- }
1442
- changeLanguage(e, t) {
1443
- this.isLanguageChangingTo = e;
1444
- let n = z();
1445
- this.emit("languageChanging", e);
1446
- let r = (e) => {
1447
- this.language = e, this.languages = this.services.languageUtils.toResolveHierarchy(e), this.resolvedLanguage = void 0, this.setResolvedLanguage(e);
1448
- }, i = (i, a) => {
1449
- a ? this.isLanguageChangingTo === e && (r(a), this.translator.changeLanguage(a), this.isLanguageChangingTo = void 0, this.emit("languageChanged", a), this.logger.log("languageChanged", a)) : this.isLanguageChangingTo = void 0, n.resolve((...e) => this.t(...e)), t && t(i, (...e) => this.t(...e));
1450
- }, a = (t) => {
1451
- !e && !t && this.services.languageDetector && (t = []);
1452
- let n = R(t) ? t : t && t[0], a = this.store.hasLanguageSomeTranslations(n) ? n : this.services.languageUtils.getBestMatchFromCodes(R(t) ? [t] : t);
1453
- a && (this.language || r(a), this.translator.language || this.translator.changeLanguage(a), this.services.languageDetector?.cacheUserLanguage?.(a)), this.loadResources(a, (e) => {
1454
- i(e, a);
1455
- });
1456
- };
1457
- return !e && this.services.languageDetector && !this.services.languageDetector.async ? a(this.services.languageDetector.detect()) : !e && this.services.languageDetector && this.services.languageDetector.async ? this.services.languageDetector.detect.length === 0 ? this.services.languageDetector.detect().then(a) : this.services.languageDetector.detect(a) : a(e), n;
1458
- }
1459
- getFixedT(e, t, n) {
1460
- let r = (e, t, ...i) => {
1461
- let a;
1462
- a = typeof t == "object" ? { ...t } : this.options.overloadTranslationOptionHandler([e, t].concat(i)), a.lng = a.lng || r.lng, a.lngs = a.lngs || r.lngs, a.ns = a.ns || r.ns, a.keyPrefix !== "" && (a.keyPrefix = a.keyPrefix || n || r.keyPrefix);
1463
- let o = {
1464
- ...this.options,
1465
- ...a
1466
- };
1467
- typeof a.keyPrefix == "function" && (a.keyPrefix = K(a.keyPrefix, o));
1468
- let s = this.options.keySeparator || ".", c;
1469
- return a.keyPrefix && Array.isArray(e) ? c = e.map((e) => (typeof e == "function" && (e = K(e, o)), `${a.keyPrefix}${s}${e}`)) : (typeof e == "function" && (e = K(e, o)), c = a.keyPrefix ? `${a.keyPrefix}${s}${e}` : e), this.t(c, a);
1470
- };
1471
- return R(e) ? r.lng = e : r.lngs = e, r.ns = t, r.keyPrefix = n, r;
1472
- }
1473
- t(...e) {
1474
- return this.translator?.translate(...e);
1475
- }
1476
- exists(...e) {
1477
- return this.translator?.exists(...e);
1478
- }
1479
- setDefaultNamespace(e) {
1480
- this.options.defaultNS = e;
1481
- }
1482
- hasLoadedNamespace(e, t = {}) {
1483
- if (!this.isInitialized) return this.logger.warn("hasLoadedNamespace: i18next was not initialized", this.languages), !1;
1484
- if (!this.languages || !this.languages.length) return this.logger.warn("hasLoadedNamespace: i18n.languages were undefined or empty", this.languages), !1;
1485
- let n = t.lng || this.resolvedLanguage || this.languages[0], r = this.options ? this.options.fallbackLng : !1, i = this.languages[this.languages.length - 1];
1486
- if (n.toLowerCase() === "cimode") return !0;
1487
- let a = (e, t) => {
1488
- let n = this.services.backendConnector.state[`${e}|${t}`];
1489
- return n === -1 || n === 0 || n === 2;
1490
- };
1491
- if (t.precheck) {
1492
- let e = t.precheck(this, a);
1493
- if (e !== void 0) return e;
1494
- }
1495
- return !!(this.hasResourceBundle(n, e) || !this.services.backendConnector.backend || this.options.resources && !this.options.partialBundledLanguages || a(n, e) && (!r || a(i, e)));
1496
- }
1497
- loadNamespaces(e, t) {
1498
- let n = z();
1499
- return this.options.ns ? (R(e) && (e = [e]), e.forEach((e) => {
1500
- this.options.ns.indexOf(e) < 0 && this.options.ns.push(e);
1501
- }), this.loadResources((e) => {
1502
- n.resolve(), t && t(e);
1503
- }), n) : (t && t(), Promise.resolve());
1504
- }
1505
- loadLanguages(e, t) {
1506
- let n = z();
1507
- R(e) && (e = [e]);
1508
- let r = this.options.preload || [], i = e.filter((e) => r.indexOf(e) < 0 && this.services.languageUtils.isSupportedCode(e));
1509
- return i.length ? (this.options.preload = r.concat(i), this.loadResources((e) => {
1510
- n.resolve(), t && t(e);
1511
- }), n) : (t && t(), Promise.resolve());
1512
- }
1513
- dir(e) {
1514
- if (e ||= this.resolvedLanguage || (this.languages?.length > 0 ? this.languages[0] : this.language), !e) return "rtl";
1515
- try {
1516
- let t = new Intl.Locale(e);
1517
- if (t && t.getTextInfo) {
1518
- let e = t.getTextInfo();
1519
- if (e && e.direction) return e.direction;
1520
- }
1521
- } catch {}
1522
- let t = /* @__PURE__ */ "ar.shu.sqr.ssh.xaa.yhd.yud.aao.abh.abv.acm.acq.acw.acx.acy.adf.ads.aeb.aec.afb.ajp.apc.apd.arb.arq.ars.ary.arz.auz.avl.ayh.ayl.ayn.ayp.bbz.pga.he.iw.ps.pbt.pbu.pst.prp.prd.ug.ur.ydd.yds.yih.ji.yi.hbo.men.xmn.fa.jpr.peo.pes.prs.dv.sam.ckb".split("."), n = this.services?.languageUtils || new Ve(et());
1523
- return e.toLowerCase().indexOf("-latn") > 1 ? "ltr" : t.indexOf(n.getLanguagePartFromCode(e)) > -1 || e.toLowerCase().indexOf("-arab") > 1 ? "rtl" : "ltr";
1524
- }
1525
- static createInstance(t = {}, n) {
1526
- let r = new e(t, n);
1527
- return r.createInstance = e.createInstance, r;
1528
- }
1529
- cloneInstance(t = {}, n = q) {
1530
- let r = t.forkResourceStore;
1531
- r && delete t.forkResourceStore;
1532
- let i = {
1533
- ...this.options,
1534
- ...t,
1535
- isClone: !0
1536
- }, a = new e(i);
1537
- if ((t.debug !== void 0 || t.prefix !== void 0) && (a.logger = a.logger.clone(t)), [
1538
- "store",
1539
- "services",
1540
- "language"
1541
- ].forEach((e) => {
1542
- a[e] = this[e];
1543
- }), a.services = { ...this.services }, a.services.utils = { hasLoadedNamespace: a.hasLoadedNamespace.bind(a) }, r && (a.store = new Pe(Object.keys(this.store.data).reduce((e, t) => (e[t] = { ...this.store.data[t] }, e[t] = Object.keys(e[t]).reduce((n, r) => (n[r] = { ...e[t][r] }, n), e[t]), e), {}), i), a.services.resourceStore = a.store), t.interpolation) {
1544
- let e = {
1545
- ...et().interpolation,
1546
- ...this.options.interpolation,
1547
- ...t.interpolation
1548
- }, n = {
1549
- ...i,
1550
- interpolation: e
1551
- };
1552
- a.services.interpolator = new qe(n);
1553
- }
1554
- return a.translator = new Be(a.services, i), a.translator.on("*", (e, ...t) => {
1555
- a.emit(e, ...t);
1556
- }), a.init(i, n), a.translator.options = i, a.translator.backendConnector.services.utils = { hasLoadedNamespace: a.hasLoadedNamespace.bind(a) }, a;
1557
- }
1558
- toJSON() {
1559
- return {
1560
- options: this.options,
1561
- store: this.store,
1562
- language: this.language,
1563
- languages: this.languages,
1564
- resolvedLanguage: this.resolvedLanguage
1565
- };
1566
- }
1567
- }.createInstance();
1568
- //#endregion
1569
- //#region ../../lib-react/translator/dist/index.js
1570
- J.createInstance, J.dir, J.init, J.loadResources, J.reloadResources, J.use, J.changeLanguage, J.getFixedT, J.t, J.exists, J.setDefaultNamespace, J.hasLoadedNamespace, J.loadNamespaces, J.loadLanguages, J.init({
1571
- fallbackLng: "en",
1572
- lng: "en",
1573
- debug: !0,
1574
- resources: {
1575
- en: he,
1576
- es: ge
1577
- }
1578
- });
1579
- var st = {
1580
- translator: {
1581
- ...J,
1582
- t: (e, t) => {
1583
- let { lng: n } = t;
1584
- switch (n) {
1585
- case "en_US":
1586
- case "en-US":
1587
- t.lng = "en";
1588
- break;
1589
- case "es_ES":
1590
- case "es-ES":
1591
- case "es_MX":
1592
- case "es-MX":
1593
- t.lng = "es";
1594
- break;
1595
- default: break;
1596
- }
1597
- return J.t(e, {
1598
- lng: n,
1599
- ...t
1600
- });
1601
- }
1602
- },
1603
- languageOptions: [{
1604
- value: "en_US",
1605
- label: "English (US)"
1606
- }, {
1607
- value: "es_ES",
1608
- label: "Spanish"
1609
- }]
1610
- };
1611
- //#endregion
1612
- //#region ../../lib-react/correct-answer-toggle/dist/index.js
1613
- function Y(e) {
1614
- return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
1615
- }
1616
- function ct(e, t) {
1617
- return !e || Y(e) ? e : Y(e.default) ? e.default : t && Y(e[t]) ? e[t] : t && Y(e[t]?.default) ? e[t].default : e;
1618
- }
1619
- var lt = ct(g, "Readable") || ct(ft.Readable, "Readable"), ut = D, dt = ut.default, ft = dt && typeof dt == "object" ? dt : ut, { translator: X } = st, pt = {
1620
- WebkitTouchCallout: "none",
1621
- WebkitUserSelect: "none",
1622
- KhtmlUserSelect: "none",
1623
- MozUserSelect: "none",
1624
- msUserSelect: "none",
1625
- userSelect: "none"
1626
- }, mt = h("div")(() => ({
1627
- width: "100%",
1628
- cursor: "pointer"
1629
- })), ht = h("div")(() => ({
1630
- margin: "0 auto",
1631
- textAlign: "center",
1632
- display: "flex"
1633
- })), gt = h("div")(() => ({
1634
- width: "fit-content",
1635
- minWidth: "140px",
1636
- alignSelf: "center",
1637
- verticalAlign: "middle",
1638
- color: `var(--correct-answer-toggle-label-color, ${d.text()})`,
1639
- fontWeight: "normal",
1640
- ...pt
1641
- })), _t = h("div")(() => ({
1642
- position: "absolute",
1643
- width: "25px",
1644
- "&.enter": { opacity: "0" },
1645
- "&.enter-active": {
1646
- opacity: "1",
1647
- transition: "opacity 0.3s ease-in"
1648
- },
1649
- "&.exit": { opacity: "1" },
1650
- "&.exit-active": {
1651
- opacity: "0",
1652
- transition: "opacity 0.3s ease-in"
1653
- }
1654
- })), vt = h("div")(() => ({
1655
- width: "25px",
1656
- marginRight: "5px",
1657
- display: "flex",
1658
- alignItems: "center"
1659
- })), yt = class e extends j.Component {
1660
- static propTypes = {
1661
- onToggle: I.default.func,
1662
- toggled: I.default.bool,
1663
- show: I.default.bool,
1664
- hideMessage: I.default.string,
1665
- showMessage: I.default.string,
1666
- className: I.default.string,
1667
- language: I.default.string
1668
- };
1669
- static defaultProps = {
1670
- showMessage: "Show correct answer",
1671
- hideMessage: "Hide correct answer",
1672
- show: !1,
1673
- toggled: !1
1674
- };
1675
- constructor(t) {
1676
- super(t), this.state = { show: t.show }, this.openIconRef = j.createRef(), this.closedIconRef = j.createRef(), e.defaultProps = {
1677
- ...e.defaultProps,
1678
- showMessage: X.t("common:showCorrectAnswer", { lng: t.language }),
1679
- hideMessage: X.t("common:hideCorrectAnswer", { lng: t.language })
1680
- };
1681
- }
1682
- onClick() {
1683
- this.props.onToggle(!this.props.toggled);
1684
- }
1685
- onTouch(e) {
1686
- e.preventDefault(), this.props.onToggle(!this.props.toggled);
1687
- }
1688
- UNSAFE_componentWillReceiveProps(t) {
1689
- this.setState({ show: t.show }), t.language !== this.props?.language && (e.defaultProps = {
1690
- ...e.defaultProps,
1691
- showMessage: X.t("common:showCorrectAnswer", { lng: t.language }),
1692
- hideMessage: X.t("common:hideCorrectAnswer", { lng: t.language })
1693
- });
1694
- }
1695
- render() {
1696
- let { className: e, toggled: t, hideMessage: n, showMessage: r } = this.props;
1697
- return /* @__PURE__ */ P(mt, {
1698
- className: e,
1699
- children: /* @__PURE__ */ P(me, {
1700
- show: this.state.show,
1701
- children: /* @__PURE__ */ F(ht, {
1702
- onClick: this.onClick.bind(this),
1703
- onTouchEnd: this.onTouch.bind(this),
1704
- children: [/* @__PURE__ */ F(vt, { children: [/* @__PURE__ */ P(x, {
1705
- nodeRef: this.openIconRef,
1706
- timeout: 400,
1707
- in: t,
1708
- exit: !t,
1709
- classNames: {
1710
- enter: "enter",
1711
- enterActive: "enter-active",
1712
- exit: "exit",
1713
- exitActive: "exit-active"
1714
- },
1715
- children: /* @__PURE__ */ P(_t, {
1716
- ref: this.openIconRef,
1717
- children: /* @__PURE__ */ P(L, { open: t }, "correct-open")
1718
- })
1719
- }), /* @__PURE__ */ P(x, {
1720
- nodeRef: this.closedIconRef,
1721
- timeout: 5e3,
1722
- in: !t,
1723
- exit: t,
1724
- classNames: {
1725
- enter: "enter",
1726
- enterActive: "enter-active",
1727
- exit: "exit",
1728
- exitActive: "exit-active"
1729
- },
1730
- children: /* @__PURE__ */ P(_t, {
1731
- ref: this.closedIconRef,
1732
- children: /* @__PURE__ */ P(L, { open: t }, "correct-closed")
1733
- })
1734
- })] }), /* @__PURE__ */ P(lt, {
1735
- false: !0,
1736
- children: /* @__PURE__ */ P(gt, {
1737
- "aria-hidden": !this.state.show,
1738
- children: t ? n : r
1739
- })
1740
- })]
1741
- })
1742
- })
1743
- });
1744
- }
1745
- }, bt = /\{\{(\d+)\}\}/g, xt = (e, t) => e ? { markup: e.replace(bt, (e, n) => `<span data-component="${t}" data-id="${n}"></span>`) } : { markup: "" }, Z = (e, t) => () => (t || (e((t = { exports: {} }).exports, t), e = null), t.exports), St = /* @__PURE__ */ Z(((e, t) => {
1746
- t.exports = {
1747
- "border-radius": 1,
1748
- "border-top-left-radius": 1,
1749
- "border-top-right-radius": 1,
1750
- "border-bottom-left-radius": 1,
1751
- "border-bottom-right-radius": 1,
1752
- "box-shadow": 1,
1753
- order: 1,
1754
- flex: function(e, t) {
1755
- return [t + "box-flex"];
1756
- },
1757
- "box-flex": 1,
1758
- "box-align": 1,
1759
- animation: 1,
1760
- "animation-duration": 1,
1761
- "animation-name": 1,
1762
- transition: 1,
1763
- "transition-duration": 1,
1764
- transform: 1,
1765
- "transform-style": 1,
1766
- "transform-origin": 1,
1767
- "backface-visibility": 1,
1768
- perspective: 1,
1769
- "box-pack": 1
1770
- };
1771
- }));
1772
- St();
1773
- //#endregion
1774
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/cssUnitless.js
1775
- var Ct = /* @__PURE__ */ Z(((e, t) => {
1776
- t.exports = {
1777
- animation: 1,
1778
- "column-count": 1,
1779
- columns: 1,
1780
- "font-weight": 1,
1781
- opacity: 1,
1782
- "order ": 1,
1783
- "z-index": 1,
1784
- zoom: 1,
1785
- flex: 1,
1786
- "box-flex": 1,
1787
- transform: 1,
1788
- perspective: 1,
1789
- "box-pack": 1,
1790
- "box-align": 1,
1791
- colspan: 1,
1792
- rowspan: 1
1793
- };
1794
- }));
1795
- Ct();
1796
- //#endregion
1797
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/toUpperFirst.js
1798
- var wt = /* @__PURE__ */ Z(((e, t) => {
1799
- t.exports = function(e) {
1800
- return e.length ? e.charAt(0).toUpperCase() + e.substring(1) : e;
1801
- };
1802
- }));
1803
- wt();
1804
- //#endregion
1805
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/prefixInfo.js
1806
- var Tt = /* @__PURE__ */ Z(((e, t) => {
1807
- var n = wt(), r = /^(Moz|Webkit|Khtml|O|ms|Icab)(?=[A-Z])/, i = typeof document > "u" ? {} : document.documentElement.style;
1808
- t.exports = (function() {
1809
- var e = (function() {
1810
- for (var e in i) if (r.test(e)) return e.match(r)[0];
1811
- return "WebkitOpacity" in i ? "Webkit" : "KhtmlOpacity" in i ? "Khtml" : "";
1812
- })();
1813
- return {
1814
- style: e,
1815
- css: "-" + e.toLowerCase() + "-",
1816
- dom: {
1817
- Webkit: "WebKit",
1818
- ms: "MS",
1819
- o: "WebKit"
1820
- }[e] || n(e)
1821
- };
1822
- })();
1823
- }));
1824
- Tt();
1825
- //#endregion
1826
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/hyphenRe.js
1827
- var Et = /* @__PURE__ */ Z(((e, t) => {
1828
- t.exports = /[-\s]+(.)?/g;
1829
- }));
1830
- Et();
1831
- //#endregion
1832
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/camelize.js
1833
- var Dt = /* @__PURE__ */ Z(((e, t) => {
1834
- var n = function(e, t) {
1835
- return t ? t.toUpperCase() : "";
1836
- }, r = Et();
1837
- t.exports = function(e) {
1838
- return e ? e.replace(r, n) : "";
1839
- };
1840
- }));
1841
- Dt();
1842
- //#endregion
1843
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/separate.js
1844
- var Ot = /* @__PURE__ */ Z(((e, t) => {
1845
- var n = /::/g, r = /([A-Z]+)([A-Z][a-z])/g, i = /([a-z\d])([A-Z])/g, a = /_/g;
1846
- t.exports = function(e, t) {
1847
- return e ? e.replace(n, "/").replace(r, "$1_$2").replace(i, "$1_$2").replace(a, t || "-") : "";
1848
- };
1849
- }));
1850
- Ot();
1851
- //#endregion
1852
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/hyphenate.js
1853
- var kt = /* @__PURE__ */ Z(((e, t) => {
1854
- var n = Ot();
1855
- t.exports = function(e) {
1856
- return n(e).toLowerCase();
1857
- };
1858
- }));
1859
- kt();
1860
- //#endregion
1861
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/stringUtils/toLowerFirst.js
1862
- var At = /* @__PURE__ */ Z(((e, t) => {
1863
- t.exports = function(e) {
1864
- return e.length ? e.charAt(0).toLowerCase() + e.substring(1) : e;
1865
- };
1866
- }));
1867
- At();
1868
- //#endregion
1869
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/prefixer.js
1870
- var jt = /* @__PURE__ */ Z(((e, t) => {
1871
- var n = Dt(), r = kt(), i = At(), a = wt(), o = Tt(), s = St(), c = typeof document > "u" ? {} : document.documentElement.style;
1872
- t.exports = function(e) {
1873
- return function(t, l) {
1874
- l ||= {};
1875
- var u = i(n(t)), d = r(t), f = e ? u : d, p = o.style ? e ? o.style : o.css : "";
1876
- if (u in c) return l.asString ? f : [f];
1877
- var m = f, h = s[d], g = [];
1878
- if (e && (m = a(f)), typeof h == "function") {
1879
- var _ = h(f, p) || [];
1880
- _ && !Array.isArray(_) && (_ = [_]), _.length && (_ = _.map(function(t) {
1881
- return e ? i(n(t)) : r(t);
1882
- })), g = g.concat(_);
1883
- }
1884
- return p && g.push(p + m), g.push(f), l.asString || g.length == 1 ? g[0] : g;
1885
- };
1886
- };
1887
- }));
1888
- jt();
1889
- //#endregion
1890
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/cssPrefix.js
1891
- var Mt = /* @__PURE__ */ Z(((e, t) => {
1892
- t.exports = jt()();
1893
- }));
1894
- Mt();
1895
- //#endregion
1896
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/hasOwn.js
1897
- var Nt = /* @__PURE__ */ Z(((e, t) => {
1898
- var n = Object.prototype.hasOwnProperty;
1899
- t.exports = function(e, t) {
1900
- return n.call(e, t);
1901
- };
1902
- }));
1903
- Nt();
1904
- //#endregion
1905
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/isObject.js
1906
- var Pt = /* @__PURE__ */ Z(((e, t) => {
1907
- var n = Object.prototype.toString;
1908
- t.exports = function(e) {
1909
- return !!e && n.call(e) === "[object Object]";
1910
- };
1911
- }));
1912
- Pt();
1913
- //#endregion
1914
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/isFunction.js
1915
- var Ft = /* @__PURE__ */ Z(((e, t) => {
1916
- var n = Object.prototype.toString;
1917
- t.exports = function(e) {
1918
- return n.apply(e) === "[object Function]";
1919
- };
1920
- }));
1921
- Ft();
1922
- //#endregion
1923
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/toStyleObject.js
1924
- var It = /* @__PURE__ */ Z(((e, t) => {
1925
- Tt();
1926
- var n = Mt(), r = kt(), i = Dt(), a = Nt(), o = Pt(), s = Ft(), c = function(e, t, r, i) {
1927
- n(t).forEach(function(t) {
1928
- e[i ? i(t) : t] = r;
1929
- });
1930
- }, l = function(e) {
1931
- e = (e || "").split(";");
1932
- var t = {};
1933
- return e.forEach(function(e) {
1934
- var n = e.split(":");
1935
- n.length == 2 && (t[n[0].trim()] = n[1].trim());
1936
- }), t;
1937
- }, u = { cssUnitless: Ct() }, d = function(e, t, n, f) {
1938
- typeof e == "string" && (e = l(e)), t ||= u, t.cssUnitless = t.cssUnitless || u.cssUnitless, f ||= {};
1939
- var p = t.scope || {}, m = t.addUnits == null ? p && p.addUnits != null ? p.addUnits : !0 : t.addUnits, h = (t.cssUnitless == null ? p ? p.cssUnitless : null : t.cssUnitless) || {}, g = (t.cssUnit || p ? p.cssUnit : null) || "px", _ = t.prefixProperties || (p ? p.prefixProperties : null) || {}, v = t.camelize ? i : r, y, b, x, S, C, w, T, E;
1940
- for (x in e) if (a(e, x)) {
1941
- if (S = e[x], b = r(n ? n + x : x), y = !1, E = !1, s(S) && (T = S.call(p || e, S, x, b, e), o(T) && T.value != null ? (S = T.value, E = T.prefix, b = T.name ? r(T.name) : b) : S = T), C = typeof S, w = C == "number" || C == "string" && S != "" && S * 1 == S, S == null || b == null || b === "") continue;
1942
- if ((w || C == "string") && (y = !0), !y && S.value != null && S.prefix && (y = !0, E = S.prefix, S = S.value), y) {
1943
- if (E ||= !!_[b], w && (S = m && !(b in h) ? S + g : S + ""), (b == "border" || !b.indexOf("border") && !~b.indexOf("radius") && !~b.indexOf("width")) && w && (b += "-width"), !b.indexOf("border-radius-") && (b.replace(/border(-radius)(-(.*))/, function(e, t, n) {
1944
- var r = {
1945
- "-top": ["-top-left", "-top-right"],
1946
- "-left": ["-top-left", "-bottom-left"],
1947
- "-right": ["-top-right", "-bottom-right"],
1948
- "-bottom": ["-bottom-left", "-bottom-right"]
1949
- };
1950
- n in r ? (b = [], r[n].forEach(function(e) {
1951
- b.push("border" + e + t);
1952
- })) : b = "border" + n + t;
1953
- }), Array.isArray(b))) {
1954
- b.forEach(function(e) {
1955
- E ? c(f, e, S, v) : f[v(e)] = S;
1956
- });
1957
- continue;
1958
- }
1959
- E ? c(f, b, S, v) : f[v(b)] = S;
1960
- } else d(S, t, b + "-", f);
1961
- }
1962
- return f;
1963
- };
1964
- t.exports = d;
1965
- }));
1966
- It();
1967
- //#endregion
1968
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/src/toStyleString.js
1969
- var Lt = /* @__PURE__ */ Z(((e, t) => {
1970
- var n = It(), r = Nt();
1971
- t.exports = function(e, t) {
1972
- e = n(e, t);
1973
- var i = [], a;
1974
- for (a in e) r(e, a) && i.push(a + ": " + e[a]);
1975
- return i.join("; ");
1976
- };
1977
- }));
1978
- Lt();
1979
- //#endregion
1980
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/to-style@1.3.3/node_modules/to-style/index.js
1981
- var Rt = /* @__PURE__ */ Z(((e, t) => {
1982
- t.exports = {
1983
- prefixProperties: St(),
1984
- cssUnitless: Ct(),
1985
- object: It(),
1986
- string: Lt()
1987
- };
1988
- }));
1989
- Rt();
1990
- //#endregion
1991
- //#region ../../lib-react/mask-markup/dist/serialization.js
1992
- var zt = /* @__PURE__ */ n(c(), 1), Bt = Rt(), Vt = (0, zt.default)("@pie-lib:mask-markup:serialization"), Ht = ["span"], Ut = [
1993
- "em",
1994
- "strong",
1995
- "u"
1996
- ], Wt = 3, Gt = 8, Kt = 1, qt = (e) => {
1997
- if (!e.attributes || e.attributes.length <= 0) return;
1998
- let t = {}, n;
1999
- for (n = 0; n < e.attributes.length; n++) {
2000
- let r = e.attributes[n];
2001
- t[r.name] = r.value;
2002
- }
2003
- return t;
2004
- }, Jt = (e) => Ht.includes(e) ? "inline" : Ut.includes(e) ? "mark" : "block", Yt = (e) => {
2005
- let t = /([\w-]*)\s*:\s*([^;]*)/g, n, r = {};
2006
- for (; n = t.exec(e);) r[n[1]] = n[2].trim();
2007
- return r;
2008
- }, Xt = (e) => (0, Bt.object)(e, {
2009
- camelize: !0,
2010
- addUnits: !1
2011
- }), Zt = (e, t) => Xt(Yt(e.getAttribute(t))), Qt = (e, t, n) => {
2012
- let r = e.getAttribute(n);
2013
- return delete t.class, r;
2014
- }, $t = (e) => (t, n) => {
2015
- if (!e.getAttribute) return t;
2016
- if (e.getAttribute(n)) switch (n) {
2017
- case "style":
2018
- t.style = Zt(e, n);
2019
- break;
2020
- case "class":
2021
- t.className = Qt(e, t, n);
2022
- break;
2023
- default:
2024
- t[n] = e.getAttribute(n);
2025
- break;
2026
- }
2027
- return t;
2028
- }, en = [
2029
- "border",
2030
- "class",
2031
- "style"
2032
- ], tn = {
2033
- b: "bold",
2034
- em: "italic",
2035
- u: "underline",
2036
- s: "strikethrough",
2037
- code: "code",
2038
- strong: "strong"
2039
- }, nn = (e, t = []) => {
2040
- if (e.nodeType === Gt) return null;
2041
- if (e.nodeType === Wt) {
2042
- let n = { text: e.textContent };
2043
- return t.length > 0 && (n.marks = t.map((e) => ({
2044
- type: e,
2045
- data: void 0
2046
- }))), {
2047
- object: "text",
2048
- leaves: [n]
2049
- };
2050
- }
2051
- if (e.nodeType === Kt) {
2052
- let n = e.tagName.toLowerCase(), r = tn[n];
2053
- if (r) return Vt("[deserialize] mark: ", r), {
2054
- _flatten: !0,
2055
- nodes: rn(e.childNodes, [...t, r])
2056
- };
2057
- if (n === "math") return {
2058
- isMath: !0,
2059
- nodes: [e]
2060
- };
2061
- let i = qt(e) || {};
2062
- n === "audio" && i.controls === "" && (i.controls = !0);
2063
- let a = en.reduce($t(e), { ...i }), o = Jt(n), s = rn(e.childNodes, t);
2064
- return {
2065
- object: o,
2066
- type: n,
2067
- data: {
2068
- dataset: { ...e.dataset },
2069
- attributes: { ...a }
2070
- },
2071
- nodes: s
2072
- };
2073
- }
2074
- return null;
2075
- }, rn = (e, t = []) => {
2076
- let n = [];
2077
- for (let r = 0; r < e.length; r++) {
2078
- let i = nn(e[r], t);
2079
- i !== null && (i._flatten && i.nodes ? n.push(...i.nodes) : n.push(i));
2080
- }
2081
- return n;
2082
- }, an = (e) => {
2083
- if (!e || !e.trim()) return {
2084
- object: "value",
2085
- document: {
2086
- object: "document",
2087
- data: {},
2088
- nodes: [{
2089
- object: "block",
2090
- type: "span",
2091
- data: {},
2092
- isVoid: !1,
2093
- nodes: []
2094
- }]
2095
- }
2096
- };
2097
- let t = rn(new DOMParser().parseFromString(e, "text/html").body.childNodes);
2098
- return !t.some((e) => e.object === "block" || e.object === "inline") && t.length > 0 && (t = [{
2099
- object: "block",
2100
- type: "span",
2101
- data: {},
2102
- isVoid: !1,
2103
- nodes: t
2104
- }]), t.length === 0 && (t = [{
2105
- object: "block",
2106
- type: "span",
2107
- data: {},
2108
- isVoid: !1,
2109
- nodes: []
2110
- }]), {
2111
- object: "value",
2112
- document: {
2113
- object: "document",
2114
- data: {},
2115
- nodes: t
2116
- }
2117
- };
2118
- }, on = h("div")(({ theme: e }) => ({
2119
- paddingTop: e.spacing(.5),
2120
- paddingBottom: e.spacing(.5)
2121
- })), sn = h("span")(() => ({
2122
- display: "inline-block",
2123
- width: ".75em"
2124
- })), cn = ["tbody", "tr"], ln = (e, t) => {
2125
- let n = t.trim() === "", r = e && e.type;
2126
- if (!(n && cn.includes(r))) return t;
2127
- }, un = (e) => {
2128
- let t = e.leaves.find((e) => O(e, "marks", []).length);
2129
- return t ? t.marks[0] : null;
2130
- }, dn = (e, t, n, r, i, a) => {
2131
- if (!t) return null;
2132
- let o = [];
2133
- return (e.nodes || []).forEach((e, s) => {
2134
- let c = e.type ? `${e.type}-${s}` : `${s}`;
2135
- if (e.isMath) return o.push(/* @__PURE__ */ P("span", { dangerouslySetInnerHTML: { __html: `<math displaystyle="true">${e.nodes[0].innerHTML}</math>` } })), o;
2136
- if (r) {
2137
- let i = r(e, t, n);
2138
- if (i) {
2139
- let t = e.data?.dataset?.component === "blank";
2140
- t && o.push(/* @__PURE__ */ P(sn, {}, `spacer-${s}`)), o.push(i), t && o.push(/* @__PURE__ */ P(sn, {}, `spacer-${s}`));
2141
- return;
2142
- }
2143
- }
2144
- if (e.object === "text") {
2145
- let t = e.leaves.reduce((e, t) => {
2146
- let n = t.text, r = ln(i, n);
2147
- return r ? e + r : e;
2148
- }, ""), n = un(e);
2149
- if (n) {
2150
- let e;
2151
- for (e in tn) if (tn[e] === n.type) {
2152
- let n = e;
2153
- o.push(/* @__PURE__ */ P(n, { children: t }, c));
2154
- break;
2155
- }
2156
- } else t.length > 0 && o.push(t);
2157
- } else {
2158
- let i = dn(e, t, n, r, e, a);
2159
- if (e.type === "p" || e.type === "paragraph") o.push(/* @__PURE__ */ P(on, { children: i }, c));
2160
- else {
2161
- let t = e.type;
2162
- e.nodes && e.nodes.length > 0 ? o.push(/* @__PURE__ */ P(t, {
2163
- ...e.data.attributes,
2164
- children: i
2165
- }, c)) : o.push(/* @__PURE__ */ P(t, { ...e.data.attributes }, c));
2166
- }
2167
- }
2168
- }), o;
2169
- }, fn = h("div")(() => ({
2170
- display: "initial",
2171
- "&:not(.MathJax) table": { borderCollapse: "collapse" },
2172
- "&:not(.MathJax) table td, &:not(.MathJax) table th": {
2173
- padding: "8px 12px",
2174
- textAlign: "left"
2175
- }
2176
- })), pn = class extends j.Component {
2177
- constructor(e) {
2178
- super(e), this.internalContainerRef = j.createRef();
2179
- }
2180
- static propTypes = {
2181
- renderChildren: I.default.func,
2182
- layout: I.default.object,
2183
- value: I.default.object,
2184
- onChange: I.default.func,
2185
- elementType: I.default.string,
2186
- containerRef: I.default.oneOfType([I.default.func, I.default.shape({ current: I.default.instanceOf(Element) })])
2187
- };
2188
- componentDidMount() {
2189
- let e = this.props.containerRef || this.internalContainerRef;
2190
- e.current && typeof s == "function" && s(e.current);
2191
- }
2192
- handleChange = (e, t) => {
2193
- let n = {
2194
- ...this.props.value,
2195
- [e]: t
2196
- };
2197
- this.props.onChange(n);
2198
- };
2199
- render() {
2200
- let { value: e, layout: t, elementType: n, containerRef: r } = this.props, i = dn(t, e, this.handleChange, this.props.renderChildren, null, n);
2201
- return /* @__PURE__ */ P(fn, {
2202
- ref: r || this.internalContainerRef,
2203
- children: i
2204
- });
2205
- }
2206
- }, mn = (e, t) => {
2207
- let { markup: n } = xt(e, t);
2208
- return an(n).document;
2209
- }, hn = (e, t) => class extends j.Component {
2210
- static propTypes = {
2211
- markup: I.default.string,
2212
- layout: I.default.object,
2213
- value: I.default.object,
2214
- onChange: I.default.func,
2215
- customMarkMarkupComponent: I.default.func,
2216
- elementType: I.default.string
2217
- };
2218
- constructor(e) {
2219
- super(e), this.containerRef = j.createRef();
2220
- }
2221
- componentDidUpdate(e) {
2222
- if (this.props.markup !== e.markup) {
2223
- let e = this.containerRef.current;
2224
- (e && e.querySelectorAll("[data-latex][data-math-handled=\"true\"]") || []).forEach((e) => {
2225
- let t = e.querySelector("mjx-container");
2226
- t && e.removeChild(t), e.innerHTML = e.getAttribute("data-raw"), e.removeAttribute("data-math-handled");
2227
- });
2228
- }
2229
- }
2230
- render() {
2231
- let { markup: n, layout: r, value: i, onChange: a, elementType: o } = this.props, s = r || mn(n, e);
2232
- return /* @__PURE__ */ P(pn, {
2233
- containerRef: this.containerRef,
2234
- elementType: o,
2235
- layout: s,
2236
- value: i,
2237
- onChange: a,
2238
- renderChildren: t(this.props)
2239
- });
2240
- }
2241
- }, gn = ie(/*#__PURE__*/ P("path", { d: "M12 2C6.47 2 2 6.47 2 12s4.47 10 10 10 10-4.47 10-10S17.53 2 12 2zm5 13.59L15.59 17 12 13.41 8.41 17 7 15.59 10.59 12 7 8.41 8.41 7 12 10.59 15.59 7 17 8.41 13.41 12 17 15.59z" }), "Cancel");
2242
- //#endregion
2243
- //#region ../../../node_modules/.bun/@mui+material@7.3.11+eb26afe407ed7030/node_modules/@mui/material/esm/Chip/chipClasses.js
2244
- function _n(e) {
2245
- return i("MuiChip", e);
2246
- }
2247
- var Q = f("MuiChip", /* @__PURE__ */ "root.sizeSmall.sizeMedium.colorDefault.colorError.colorInfo.colorPrimary.colorSecondary.colorSuccess.colorWarning.disabled.clickable.clickableColorPrimary.clickableColorSecondary.deletable.deletableColorPrimary.deletableColorSecondary.outlined.filled.outlinedPrimary.outlinedSecondary.filledPrimary.filledSecondary.avatar.avatarSmall.avatarMedium.avatarColorPrimary.avatarColorSecondary.icon.iconSmall.iconMedium.iconColorPrimary.iconColorSecondary.label.labelSmall.labelMedium.deleteIcon.deleteIconSmall.deleteIconMedium.deleteIconColorPrimary.deleteIconColorSecondary.deleteIconOutlinedColorPrimary.deleteIconOutlinedColorSecondary.deleteIconFilledColorPrimary.deleteIconFilledColorSecondary.focusVisible".split(".")), vn = (e) => {
2248
- let { classes: n, disabled: r, size: i, color: a, iconColor: o, onDelete: s, clickable: c, variant: l } = e;
2249
- return re({
2250
- root: [
2251
- "root",
2252
- l,
2253
- r && "disabled",
2254
- `size${t(i)}`,
2255
- `color${t(a)}`,
2256
- c && "clickable",
2257
- c && `clickableColor${t(a)}`,
2258
- s && "deletable",
2259
- s && `deletableColor${t(a)}`,
2260
- `${l}${t(a)}`
2261
- ],
2262
- label: ["label", `label${t(i)}`],
2263
- avatar: [
2264
- "avatar",
2265
- `avatar${t(i)}`,
2266
- `avatarColor${t(a)}`
2267
- ],
2268
- icon: [
2269
- "icon",
2270
- `icon${t(i)}`,
2271
- `iconColor${t(o)}`
2272
- ],
2273
- deleteIcon: [
2274
- "deleteIcon",
2275
- `deleteIcon${t(i)}`,
2276
- `deleteIconColor${t(a)}`,
2277
- `deleteIcon${t(l)}Color${t(a)}`
2278
- ]
2279
- }, _n, n);
2280
- }, yn = h("div", {
2281
- name: "MuiChip",
2282
- slot: "Root",
2283
- overridesResolver: (e, n) => {
2284
- let { ownerState: r } = e, { color: i, iconColor: a, clickable: o, onDelete: s, size: c, variant: l } = r;
2285
- return [
2286
- { [`& .${Q.avatar}`]: n.avatar },
2287
- { [`& .${Q.avatar}`]: n[`avatar${t(c)}`] },
2288
- { [`& .${Q.avatar}`]: n[`avatarColor${t(i)}`] },
2289
- { [`& .${Q.icon}`]: n.icon },
2290
- { [`& .${Q.icon}`]: n[`icon${t(c)}`] },
2291
- { [`& .${Q.icon}`]: n[`iconColor${t(a)}`] },
2292
- { [`& .${Q.deleteIcon}`]: n.deleteIcon },
2293
- { [`& .${Q.deleteIcon}`]: n[`deleteIcon${t(c)}`] },
2294
- { [`& .${Q.deleteIcon}`]: n[`deleteIconColor${t(i)}`] },
2295
- { [`& .${Q.deleteIcon}`]: n[`deleteIcon${t(l)}Color${t(i)}`] },
2296
- n.root,
2297
- n[`size${t(c)}`],
2298
- n[`color${t(i)}`],
2299
- o && n.clickable,
2300
- o && i !== "default" && n[`clickableColor${t(i)}`],
2301
- s && n.deletable,
2302
- s && i !== "default" && n[`deletableColor${t(i)}`],
2303
- n[l],
2304
- n[`${l}${t(i)}`]
2305
- ];
2306
- }
2307
- })(o(({ theme: e }) => {
2308
- let t = e.palette.mode === "light" ? e.palette.grey[700] : e.palette.grey[300];
2309
- return {
2310
- maxWidth: "100%",
2311
- fontFamily: e.typography.fontFamily,
2312
- fontSize: e.typography.pxToRem(13),
2313
- display: "inline-flex",
2314
- alignItems: "center",
2315
- justifyContent: "center",
2316
- height: 32,
2317
- lineHeight: 1.5,
2318
- color: (e.vars || e).palette.text.primary,
2319
- backgroundColor: (e.vars || e).palette.action.selected,
2320
- borderRadius: 32 / 2,
2321
- whiteSpace: "nowrap",
2322
- transition: e.transitions.create(["background-color", "box-shadow"]),
2323
- cursor: "unset",
2324
- outline: 0,
2325
- textDecoration: "none",
2326
- border: 0,
2327
- padding: 0,
2328
- verticalAlign: "middle",
2329
- boxSizing: "border-box",
2330
- [`&.${Q.disabled}`]: {
2331
- opacity: (e.vars || e).palette.action.disabledOpacity,
2332
- pointerEvents: "none"
2333
- },
2334
- [`& .${Q.avatar}`]: {
2335
- marginLeft: 5,
2336
- marginRight: -6,
2337
- width: 24,
2338
- height: 24,
2339
- color: e.vars ? e.vars.palette.Chip.defaultAvatarColor : t,
2340
- fontSize: e.typography.pxToRem(12)
2341
- },
2342
- [`& .${Q.avatarColorPrimary}`]: {
2343
- color: (e.vars || e).palette.primary.contrastText,
2344
- backgroundColor: (e.vars || e).palette.primary.dark
2345
- },
2346
- [`& .${Q.avatarColorSecondary}`]: {
2347
- color: (e.vars || e).palette.secondary.contrastText,
2348
- backgroundColor: (e.vars || e).palette.secondary.dark
2349
- },
2350
- [`& .${Q.avatarSmall}`]: {
2351
- marginLeft: 4,
2352
- marginRight: -4,
2353
- width: 18,
2354
- height: 18,
2355
- fontSize: e.typography.pxToRem(10)
2356
- },
2357
- [`& .${Q.icon}`]: {
2358
- marginLeft: 5,
2359
- marginRight: -6
2360
- },
2361
- [`& .${Q.deleteIcon}`]: {
2362
- WebkitTapHighlightColor: "transparent",
2363
- color: e.alpha((e.vars || e).palette.text.primary, .26),
2364
- fontSize: 22,
2365
- cursor: "pointer",
2366
- margin: "0 5px 0 -6px",
2367
- "&:hover": { color: e.alpha((e.vars || e).palette.text.primary, .4) }
2368
- },
2369
- variants: [
2370
- {
2371
- props: { size: "small" },
2372
- style: {
2373
- height: 24,
2374
- [`& .${Q.icon}`]: {
2375
- fontSize: 18,
2376
- marginLeft: 4,
2377
- marginRight: -4
2378
- },
2379
- [`& .${Q.deleteIcon}`]: {
2380
- fontSize: 16,
2381
- marginRight: 4,
2382
- marginLeft: -4
2383
- }
2384
- }
2385
- },
2386
- ...Object.entries(e.palette).filter(u(["contrastText"])).map(([t]) => ({
2387
- props: { color: t },
2388
- style: {
2389
- backgroundColor: (e.vars || e).palette[t].main,
2390
- color: (e.vars || e).palette[t].contrastText,
2391
- [`& .${Q.deleteIcon}`]: {
2392
- color: e.alpha((e.vars || e).palette[t].contrastText, .7),
2393
- "&:hover, &:active": { color: (e.vars || e).palette[t].contrastText }
2394
- }
2395
- }
2396
- })),
2397
- {
2398
- props: (e) => e.iconColor === e.color,
2399
- style: { [`& .${Q.icon}`]: { color: e.vars ? e.vars.palette.Chip.defaultIconColor : t } }
2400
- },
2401
- {
2402
- props: (e) => e.iconColor === e.color && e.color !== "default",
2403
- style: { [`& .${Q.icon}`]: { color: "inherit" } }
2404
- },
2405
- {
2406
- props: { onDelete: !0 },
2407
- style: { [`&.${Q.focusVisible}`]: { backgroundColor: e.alpha((e.vars || e).palette.action.selected, `${(e.vars || e).palette.action.selectedOpacity} + ${(e.vars || e).palette.action.focusOpacity}`) } }
2408
- },
2409
- ...Object.entries(e.palette).filter(u(["dark"])).map(([t]) => ({
2410
- props: {
2411
- color: t,
2412
- onDelete: !0
2413
- },
2414
- style: { [`&.${Q.focusVisible}`]: { background: (e.vars || e).palette[t].dark } }
2415
- })),
2416
- {
2417
- props: { clickable: !0 },
2418
- style: {
2419
- userSelect: "none",
2420
- WebkitTapHighlightColor: "transparent",
2421
- cursor: "pointer",
2422
- "&:hover": { backgroundColor: e.alpha((e.vars || e).palette.action.selected, `${(e.vars || e).palette.action.selectedOpacity} + ${(e.vars || e).palette.action.hoverOpacity}`) },
2423
- [`&.${Q.focusVisible}`]: { backgroundColor: e.alpha((e.vars || e).palette.action.selected, `${(e.vars || e).palette.action.selectedOpacity} + ${(e.vars || e).palette.action.focusOpacity}`) },
2424
- "&:active": { boxShadow: (e.vars || e).shadows[1] }
2425
- }
2426
- },
2427
- ...Object.entries(e.palette).filter(u(["dark"])).map(([t]) => ({
2428
- props: {
2429
- color: t,
2430
- clickable: !0
2431
- },
2432
- style: { [`&:hover, &.${Q.focusVisible}`]: { backgroundColor: (e.vars || e).palette[t].dark } }
2433
- })),
2434
- {
2435
- props: { variant: "outlined" },
2436
- style: {
2437
- backgroundColor: "transparent",
2438
- border: e.vars ? `1px solid ${e.vars.palette.Chip.defaultBorder}` : `1px solid ${e.palette.mode === "light" ? e.palette.grey[400] : e.palette.grey[700]}`,
2439
- [`&.${Q.clickable}:hover`]: { backgroundColor: (e.vars || e).palette.action.hover },
2440
- [`&.${Q.focusVisible}`]: { backgroundColor: (e.vars || e).palette.action.focus },
2441
- [`& .${Q.avatar}`]: { marginLeft: 4 },
2442
- [`& .${Q.avatarSmall}`]: { marginLeft: 2 },
2443
- [`& .${Q.icon}`]: { marginLeft: 4 },
2444
- [`& .${Q.iconSmall}`]: { marginLeft: 2 },
2445
- [`& .${Q.deleteIcon}`]: { marginRight: 5 },
2446
- [`& .${Q.deleteIconSmall}`]: { marginRight: 3 }
2447
- }
2448
- },
2449
- ...Object.entries(e.palette).filter(u()).map(([t]) => ({
2450
- props: {
2451
- variant: "outlined",
2452
- color: t
2453
- },
2454
- style: {
2455
- color: (e.vars || e).palette[t].main,
2456
- border: `1px solid ${e.alpha((e.vars || e).palette[t].main, .7)}`,
2457
- [`&.${Q.clickable}:hover`]: { backgroundColor: e.alpha((e.vars || e).palette[t].main, (e.vars || e).palette.action.hoverOpacity) },
2458
- [`&.${Q.focusVisible}`]: { backgroundColor: e.alpha((e.vars || e).palette[t].main, (e.vars || e).palette.action.focusOpacity) },
2459
- [`& .${Q.deleteIcon}`]: {
2460
- color: e.alpha((e.vars || e).palette[t].main, .7),
2461
- "&:hover, &:active": { color: (e.vars || e).palette[t].main }
2462
- }
2463
- }
2464
- }))
2465
- ]
2466
- };
2467
- })), bn = h("span", {
2468
- name: "MuiChip",
2469
- slot: "Label",
2470
- overridesResolver: (e, n) => {
2471
- let { ownerState: r } = e, { size: i } = r;
2472
- return [n.label, n[`label${t(i)}`]];
2473
- }
2474
- })({
2475
- overflow: "hidden",
2476
- textOverflow: "ellipsis",
2477
- paddingLeft: 12,
2478
- paddingRight: 12,
2479
- whiteSpace: "nowrap",
2480
- variants: [
2481
- {
2482
- props: { variant: "outlined" },
2483
- style: {
2484
- paddingLeft: 11,
2485
- paddingRight: 11
2486
- }
2487
- },
2488
- {
2489
- props: { size: "small" },
2490
- style: {
2491
- paddingLeft: 8,
2492
- paddingRight: 8
2493
- }
2494
- },
2495
- {
2496
- props: {
2497
- size: "small",
2498
- variant: "outlined"
2499
- },
2500
- style: {
2501
- paddingLeft: 7,
2502
- paddingRight: 7
2503
- }
2504
- }
2505
- ]
2506
- });
2507
- function xn(e) {
2508
- return e.key === "Backspace" || e.key === "Delete";
2509
- }
2510
- var Sn = /*#__PURE__*/ A.forwardRef(function(t, n) {
2511
- let i = te({
2512
- props: t,
2513
- name: "MuiChip"
2514
- }), { avatar: a, className: o, clickable: s, color: c = "default", component: l, deleteIcon: u, disabled: d = !1, icon: f, label: p, onClick: m, onDelete: h, onKeyDown: g, onKeyUp: _, size: v = "medium", variant: b = "filled", tabIndex: x, skipFocusWhenDisabled: S = !1, slots: C = {}, slotProps: w = {}, ...E } = i, D = e(A.useRef(null), n), ee = (e) => {
2515
- e.stopPropagation(), h(e);
2516
- }, ne = (e) => {
2517
- e.currentTarget === e.target && xn(e) && e.preventDefault(), g && g(e);
2518
- }, re = (e) => {
2519
- e.currentTarget === e.target && h && xn(e) && h(e), _ && _(e);
2520
- }, ie = s !== !1 && m ? !0 : s, O = ie || h ? y : l || "div", k = {
2521
- ...i,
2522
- component: O,
2523
- disabled: d,
2524
- size: v,
2525
- color: c,
2526
- iconColor: /*#__PURE__*/ A.isValidElement(f) && f.props.color || c,
2527
- onDelete: !!h,
2528
- clickable: ie,
2529
- variant: b
2530
- }, j = vn(k), M = O === y ? {
2531
- component: l || "div",
2532
- focusVisibleClassName: j.focusVisible,
2533
- ...h && { disableRipple: !0 }
2534
- } : {}, N = null;
2535
- h && (N = u && /*#__PURE__*/ A.isValidElement(u) ? /*#__PURE__*/ A.cloneElement(u, {
2536
- className: r(u.props.className, j.deleteIcon),
2537
- onClick: ee
2538
- }) : /*#__PURE__*/ P(gn, {
2539
- className: j.deleteIcon,
2540
- onClick: ee
2541
- }));
2542
- let ae = null;
2543
- a && /*#__PURE__*/ A.isValidElement(a) && (ae = /*#__PURE__*/ A.cloneElement(a, { className: r(j.avatar, a.props.className) }));
2544
- let oe = null;
2545
- f && /*#__PURE__*/ A.isValidElement(f) && (oe = /*#__PURE__*/ A.cloneElement(f, { className: r(j.icon, f.props.className) }));
2546
- let I = {
2547
- slots: C,
2548
- slotProps: w
2549
- }, [se, ce] = T("root", {
2550
- elementType: yn,
2551
- externalForwardedProps: {
2552
- ...I,
2553
- ...E
2554
- },
2555
- ownerState: k,
2556
- shouldForwardComponentProp: !0,
2557
- ref: D,
2558
- className: r(j.root, o),
2559
- additionalProps: {
2560
- disabled: ie && d ? !0 : void 0,
2561
- tabIndex: S && d ? -1 : x,
2562
- ...M
2563
- },
2564
- getSlotProps: (e) => ({
2565
- ...e,
2566
- onClick: (t) => {
2567
- e.onClick?.(t), m?.(t);
2568
- },
2569
- onKeyDown: (t) => {
2570
- e.onKeyDown?.(t), ne(t);
2571
- },
2572
- onKeyUp: (t) => {
2573
- e.onKeyUp?.(t), re(t);
2574
- }
2575
- })
2576
- }), [le, L] = T("label", {
2577
- elementType: bn,
2578
- externalForwardedProps: I,
2579
- ownerState: k,
2580
- className: j.label
2581
- });
2582
- return /*#__PURE__*/ F(se, {
2583
- as: O,
2584
- ...ce,
2585
- children: [
2586
- ae || oe,
2587
- /*#__PURE__*/ P(le, {
2588
- ...L,
2589
- children: p
2590
- }),
2591
- N
2592
- ]
2593
- });
2594
- }), Cn = "MaskBlank", wn = h("span")(({ theme: e, disabled: t }) => ({
2595
- border: `solid 0px ${e.palette.primary.main}`,
2596
- borderRadius: e.spacing(2),
2597
- margin: e.spacing(.5),
2598
- transform: "translate(0, 0)",
2599
- display: "inline-flex",
2600
- ...t && {}
2601
- })), Tn = h(Sn)(() => ({
2602
- backgroundColor: d.white(),
2603
- border: `1px solid ${d.text()}`,
2604
- color: d.text(),
2605
- alignItems: "center",
2606
- display: "inline-flex",
2607
- height: "initial",
2608
- minHeight: "32px",
2609
- fontSize: "inherit",
2610
- whiteSpace: "pre-wrap",
2611
- maxWidth: "374px",
2612
- pointerEvents: "none",
2613
- borderRadius: "3px",
2614
- paddingTop: "12px",
2615
- paddingBottom: "12px",
2616
- "&.Mui-disabled": { opacity: 1 }
2617
- })), En = h("span")(() => ({
2618
- whiteSpace: "normal",
2619
- "& img": {
2620
- display: "block",
2621
- padding: "2px 0"
2622
- },
2623
- "& mjx-frac": { fontSize: "120% !important" }
2624
- }));
2625
- function Dn({ choice: e, disabled: t, instanceId: n }) {
2626
- let r = N(null), { attributes: i, listeners: a, setNodeRef: o, isDragging: c } = _({
2627
- id: `choice-${e.id}`,
2628
- data: {
2629
- choice: e,
2630
- instanceId: n,
2631
- fromChoice: !0,
2632
- type: Cn
2633
- },
2634
- disabled: t
2635
- });
2636
- return M(() => {
2637
- s(r.current);
2638
- }, [e.value]), /* @__PURE__ */ P(wn, {
2639
- ref: o,
2640
- style: c ? {
2641
- width: r.current?.offsetWidth,
2642
- height: r.current?.offsetHeight
2643
- } : {},
2644
- disabled: t,
2645
- ...a,
2646
- ...i,
2647
- children: /* @__PURE__ */ P(Tn, {
2648
- clickable: !1,
2649
- disabled: t,
2650
- ref: r,
2651
- label: /* @__PURE__ */ P(En, { dangerouslySetInnerHTML: { __html: e.value } })
2652
- })
2653
- });
2654
- }
2655
- Dn.propTypes = {
2656
- choice: I.default.object.isRequired,
2657
- disabled: I.default.bool,
2658
- instanceId: I.default.oneOfType([I.default.string, I.default.number])
2659
- };
2660
- //#endregion
2661
- //#region ../../lib-react/drag/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js
2662
- function On(e) {
2663
- var t, n, r = "";
2664
- if (typeof e == "string" || typeof e == "number") r += e;
2665
- else if (typeof e == "object") if (Array.isArray(e)) {
2666
- var i = e.length;
2667
- for (t = 0; t < i; t++) e[t] && (n = On(e[t])) && (r && (r += " "), r += n);
2668
- } else for (n in e) e[n] && (r && (r += " "), r += n);
2669
- return r;
2670
- }
2671
- function kn() {
2672
- for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = On(e)) && (r && (r += " "), r += t);
2673
- return r;
2674
- }
2675
- //#endregion
2676
- //#region ../../lib-react/drag/dist/placeholder.js
2677
- var An = h("div")(({ theme: e }) => ({
2678
- "&.placeholder": {
2679
- WebkitTouchCallout: "none",
2680
- WebkitUserSelect: "none",
2681
- KhtmlUserSelect: "none",
2682
- MozUserSelect: "none",
2683
- MsUserSelect: "none",
2684
- userSelect: "none",
2685
- width: "100%",
2686
- height: "100%",
2687
- background: d.white(),
2688
- transition: "background-color 200ms linear, border-color 200ms linear",
2689
- boxSizing: "border-box",
2690
- display: "grid",
2691
- gridRowGap: e.spacing(1),
2692
- gridColumnGap: e.spacing(1),
2693
- padding: e.spacing(1),
2694
- border: `2px dashed ${d.black()}`
2695
- },
2696
- "&.disabled": {
2697
- boxShadow: "none",
2698
- background: e.palette.background.paper
2699
- },
2700
- "&.over": {
2701
- border: `1px solid ${a[500]}`,
2702
- backgroundColor: `${a[300]}`
2703
- },
2704
- "&.board": {
2705
- padding: e.spacing(1),
2706
- display: "flex",
2707
- flexWrap: "wrap",
2708
- alignItems: "center",
2709
- minHeight: "100px",
2710
- justifyContent: "center",
2711
- overflow: "hidden",
2712
- touchAction: "none",
2713
- backgroundColor: d.backgroundDark()
2714
- },
2715
- "&.categorizeBoard": {
2716
- padding: e.spacing(.5),
2717
- display: "flex",
2718
- flexWrap: "wrap",
2719
- alignItems: "center",
2720
- minHeight: "100px",
2721
- justifyContent: "center",
2722
- overflow: "hidden",
2723
- touchAction: "none",
2724
- backgroundColor: d.backgroundDark()
2725
- },
2726
- "&.verticalPool": {
2727
- display: "flex",
2728
- flexFlow: "column wrap"
2729
- }
2730
- })), jn = (e) => {
2731
- let { children: t, className: n, isOver: r, type: i, grid: a, disabled: o, choiceBoard: s, isCategorize: c, isVerticalPool: l, minHeight: u, extraStyles: f } = e, p = kn("placeholder", o && "disabled", r && "over", i, n), m = {};
2732
- if (a && a.columns && (m.gridTemplateColumns = `repeat(${a.columns}, 1fr)`), a && a.rows) {
2733
- let e = a.rowsRepeatValue || "1fr";
2734
- m.gridTemplateRows = `repeat(${a.rows}, ${e})`;
2735
- }
2736
- i === "choice" && (m.border = `1px solid ${d.borderLight()}`, m.background = d.backgroundDark());
2737
- let h = c ? "categorizeBoard" : "board";
2738
- return /* @__PURE__ */ P(An, {
2739
- style: {
2740
- ...m,
2741
- minHeight: u,
2742
- ...f
2743
- },
2744
- className: kn(s ? h : p, l && "verticalPool"),
2745
- children: t
2746
- });
2747
- };
2748
- jn.propTypes = {
2749
- choiceBoard: I.default.bool,
2750
- grid: I.default.shape({
2751
- columns: I.default.number,
2752
- rows: I.default.number,
2753
- rowsRepeatValue: I.default.string
2754
- }),
2755
- children: I.default.oneOfType([I.default.arrayOf(I.default.node), I.default.node]).isRequired,
2756
- className: I.default.string,
2757
- isOver: I.default.bool,
2758
- index: I.default.number,
2759
- type: I.default.string,
2760
- disabled: I.default.bool,
2761
- isCategorize: I.default.bool,
2762
- isVerticalPool: I.default.bool,
2763
- minHeight: I.default.number
2764
- };
2765
- //#endregion
2766
- //#region ../../lib-react/drag/dist/drag-in-the-blank-dp.js
2767
- var Mn = h("div")({ minHeight: "100px" });
2768
- function Nn({ children: e, disabled: t, classes: n, isVerticalPool: r, minHeight: i, instanceId: a, ...o }) {
2769
- let { setNodeRef: s, isOver: c } = p({
2770
- id: "drag-in-the-blank-droppable",
2771
- data: {
2772
- type: "MaskBlank",
2773
- accepts: ["MaskBlank"],
2774
- id: "drag-in-the-blank-droppable",
2775
- toChoiceBoard: !0,
2776
- instanceId: a
2777
- }
2778
- });
2779
- return /* @__PURE__ */ P("div", {
2780
- ref: s,
2781
- children: /* @__PURE__ */ P(Mn, { children: /* @__PURE__ */ P(jn, {
2782
- isOver: c,
2783
- choiceBoard: !0,
2784
- className: n,
2785
- isVerticalPool: r,
2786
- extraStyles: {
2787
- width: "100%",
2788
- minHeight: i || 100,
2789
- height: "auto"
2790
- },
2791
- children: e
2792
- }) })
2793
- });
2794
- }
2795
- Nn.propTypes = {
2796
- id: I.default.oneOfType([I.default.string, I.default.number]).isRequired,
2797
- children: I.default.node,
2798
- disabled: I.default.bool,
2799
- onDrop: I.default.func,
2800
- instanceId: I.default.string
2801
- };
2802
- //#endregion
2803
- //#region ../../lib-react/mask-markup/dist/choices/index.js
2804
- var Pn = class extends j.Component {
2805
- static propTypes = {
2806
- disabled: I.default.bool,
2807
- duplicates: I.default.bool,
2808
- choices: I.default.arrayOf(I.default.shape({
2809
- label: I.default.string,
2810
- value: I.default.string
2811
- })),
2812
- value: I.default.object,
2813
- choicePosition: I.default.string.isRequired,
2814
- instanceId: I.default.string
2815
- };
2816
- getStyleForWrapper = () => {
2817
- let { choicePosition: e } = this.props;
2818
- switch (e) {
2819
- case "above": return { margin: "0 0 40px 0" };
2820
- case "below": return { margin: "40px 0 0 0" };
2821
- case "right": return { margin: "0 0 0 40px" };
2822
- default: return { margin: "0 40px 0 0" };
2823
- }
2824
- };
2825
- render() {
2826
- let { disabled: e, duplicates: t, choices: n, value: r, instanceId: i } = this.props, a = n.filter((e) => t === !0 ? !0 : k(r, (t) => t === e.id) === void 0);
2827
- return /* @__PURE__ */ P("div", {
2828
- style: {
2829
- ...this.getStyleForWrapper(),
2830
- minWidth: "100px"
2831
- },
2832
- children: /* @__PURE__ */ P(Nn, {
2833
- disabled: e,
2834
- instanceId: i,
2835
- children: a.map((t, n) => /* @__PURE__ */ P(Dn, {
2836
- disabled: e,
2837
- choice: t,
2838
- instanceId: i
2839
- }, `${t.value}-${n}`))
2840
- })
2841
- });
2842
- }
2843
- };
2844
- //#endregion
2845
- //#region ../../lib-react/mask-markup/dist/node_modules/.bun/clsx@2.1.1/node_modules/clsx/dist/clsx.js
2846
- function Fn(e) {
2847
- var t, n, r = "";
2848
- if (typeof e == "string" || typeof e == "number") r += e;
2849
- else if (typeof e == "object") if (Array.isArray(e)) {
2850
- var i = e.length;
2851
- for (t = 0; t < i; t++) e[t] && (n = Fn(e[t])) && (r && (r += " "), r += n);
2852
- } else for (n in e) e[n] && (r && (r += " "), r += n);
2853
- return r;
2854
- }
2855
- function In() {
2856
- for (var e, t, n = 0, r = "", i = arguments.length; n < i; n++) (e = arguments[n]) && (t = Fn(e)) && (r && (r += " "), r += t);
2857
- return r;
2858
- }
2859
- //#endregion
2860
- //#region ../../lib-react/mask-markup/dist/components/blank.js
2861
- (0, zt.default)("pie-lib:mask-markup:blank");
2862
- var Ln = h("span")(({ dragged: e, over: t }) => ({
2863
- border: `solid 0px ${d.primary()}`,
2864
- minWidth: "200px",
2865
- touchAction: "none",
2866
- overflow: "hidden",
2867
- whiteSpace: "nowrap",
2868
- opacity: 1,
2869
- ...t && {
2870
- whiteSpace: "nowrap",
2871
- overflow: "hidden"
2872
- },
2873
- ...e && { opacity: .5 }
2874
- })), Rn = h(Sn)(() => ({
2875
- backgroundColor: d.background(),
2876
- border: `2px dashed ${d.text()}`,
2877
- touchAction: "none",
2878
- color: d.text(),
2879
- fontSize: "inherit",
2880
- maxWidth: "374px",
2881
- position: "relative",
2882
- borderRadius: "3px",
2883
- "&.over": {
2884
- whiteSpace: "nowrap",
2885
- overflow: "hidden"
2886
- },
2887
- "&.parentOver": {
2888
- border: `1px solid ${a[500]}`,
2889
- backgroundColor: `${a[300]}`
2890
- },
2891
- "&.correct": { border: `solid 1px ${d.correct()}` },
2892
- "&.incorrect": { border: `solid 1px ${d.incorrect()}` },
2893
- "&.Mui-disabled": { opacity: 1 }
2894
- })), zn = h("span")(() => ({
2895
- whiteSpace: "normal",
2896
- pointerEvents: "none",
2897
- "& img": {
2898
- display: "block",
2899
- padding: "2px 0"
2900
- },
2901
- "& p": {
2902
- marginTop: "0",
2903
- marginBottom: "0"
2904
- },
2905
- "& mjx-frac": { fontSize: "120% !important" },
2906
- "&.over": {
2907
- whiteSpace: "nowrap",
2908
- overflow: "hidden"
2909
- },
2910
- "&.hidden": {
2911
- color: "transparent",
2912
- opacity: 0
2913
- },
2914
- "&.dragged": {
2915
- position: "absolute",
2916
- left: 16,
2917
- maxWidth: "60px",
2918
- top: "50%",
2919
- transform: "translateY(-50%)"
2920
- }
2921
- }));
2922
- function Bn({ disabled: e, choice: t, isOver: n, isDragging: r, dragItem: i, correct: a, emptyResponseAreaWidth: o, emptyResponseAreaHeight: c }) {
2923
- let l = N(null), u = N(null), d = N(null), [f, p] = ae({
2924
- height: 0,
2925
- width: 0
2926
- }), m = () => {
2927
- _();
2928
- }, h = () => {
2929
- let e = u.current?.querySelector("img");
2930
- e ? e.onload = m : setTimeout(() => {
2931
- _();
2932
- }, 300);
2933
- }, g = () => u.current ? u.current.querySelector("mjx-container") && u.current.parentElement ? u.current.parentElement : u.current.querySelector("img") || u.current : null, _ = () => {
2934
- if (u.current && l.current) {
2935
- l.current.style.width = "auto", l.current.style.height = "auto", l.current.offsetHeight;
2936
- let e = g() || u.current, t = e.getBoundingClientRect(), n = t.width || e.offsetWidth || 0, r = Math.max(t.height || 0, e.offsetHeight || 0, e.scrollHeight || 0, u.current.scrollHeight || 0), i = n + 24, a = r + 24, s = parseFloat(o) || 0, d = parseFloat(c) || 0, f = i <= s ? s : i, m = a <= d ? d : a;
2937
- p((e) => ({
2938
- width: f > s ? f : e.width,
2939
- height: m > d ? m : e.height
2940
- })), l.current.style.width = `${f}px`, l.current.style.height = `${m}px`;
2941
- }
2942
- }, v = () => {
2943
- let e = isNaN(parseFloat(o)) ? 0 : parseFloat(o), t = isNaN(parseFloat(c)) ? 0 : parseFloat(c);
2944
- return {
2945
- height: f.height || t,
2946
- width: f.width || e,
2947
- ...e ? {} : { minWidth: 90 },
2948
- ...t ? {} : { minHeight: 32 }
2949
- };
2950
- };
2951
- M(() => {
2952
- h();
2953
- }, []), M(() => {
2954
- l.current && s(l.current);
2955
- }, [
2956
- a,
2957
- n,
2958
- i?.choice?.value
2959
- ]), M(() => {
2960
- if (!t) {
2961
- p({
2962
- height: 0,
2963
- width: 0
2964
- });
2965
- return;
2966
- }
2967
- h();
2968
- }, [t]), M(() => {
2969
- !n && !r && (d.current = {
2970
- width: l.current.offsetWidth,
2971
- height: l.current.offsetHeight
2972
- });
2973
- }, [
2974
- t,
2975
- n,
2976
- r
2977
- ]);
2978
- let y = i && n && i.choice && i.choice.value, b = t && t.value, x = n || r ? {
2979
- width: d.current?.width,
2980
- height: d.current?.height
2981
- } : v();
2982
- return /* @__PURE__ */ P(Rn, {
2983
- clickable: !1,
2984
- disabled: e,
2985
- ref: l,
2986
- component: "span",
2987
- label: /* @__PURE__ */ F(j.Fragment, { children: [/* @__PURE__ */ P(zn, {
2988
- ref: u,
2989
- draggable: !0,
2990
- className: In({
2991
- over: n,
2992
- hidden: y
2993
- }),
2994
- dangerouslySetInnerHTML: { __html: b || "" }
2995
- }), y && /* @__PURE__ */ P(zn, {
2996
- draggable: !0,
2997
- className: In({
2998
- over: n,
2999
- dragged: !0
3000
- }),
3001
- dangerouslySetInnerHTML: { __html: y || "" }
3002
- })] }),
3003
- className: In({
3004
- over: n,
3005
- parentOver: n,
3006
- correct: a !== void 0 && a,
3007
- incorrect: a !== void 0 && !a
3008
- }),
3009
- variant: e ? "outlined" : void 0,
3010
- style: x
3011
- });
3012
- }
3013
- Bn.defaultProps = {
3014
- emptyResponseAreaWidth: 0,
3015
- emptyResponseAreaHeight: 0
3016
- }, Bn.propTypes = {
3017
- id: I.default.oneOfType([I.default.string, I.default.number]),
3018
- disabled: I.default.bool,
3019
- duplicates: I.default.bool,
3020
- choice: I.default.object,
3021
- isOver: I.default.bool,
3022
- dragItem: I.default.object,
3023
- correct: I.default.bool,
3024
- onChange: I.default.func,
3025
- emptyResponseAreaWidth: I.default.oneOfType([I.default.string, I.default.number]),
3026
- emptyResponseAreaHeight: I.default.oneOfType([I.default.string, I.default.number]),
3027
- instanceId: I.default.string
3028
- };
3029
- function Vn({ id: e, disabled: t, duplicates: n, choice: r, correct: i, onChange: a, emptyResponseAreaWidth: o, emptyResponseAreaHeight: s, instanceId: c }) {
3030
- let { attributes: l, listeners: u, setNodeRef: d, transform: f, isDragging: m } = _({
3031
- id: `mask-blank-drag-${e}`,
3032
- disabled: t || !r,
3033
- data: {
3034
- id: e,
3035
- choice: r,
3036
- instanceId: c,
3037
- fromChoice: !1,
3038
- type: "MaskBlank"
3039
- }
3040
- }), { setNodeRef: h, isOver: g, active: v } = p({
3041
- id: `mask-blank-drop-${e}`,
3042
- data: {
3043
- id: e,
3044
- accepts: ["MaskBlank"],
3045
- instanceId: c
3046
- }
3047
- });
3048
- return /* @__PURE__ */ P(Ln, {
3049
- ref: (e) => {
3050
- d(e), h(e);
3051
- },
3052
- style: { transform: C.Translate.toString(f) },
3053
- dragged: m,
3054
- over: g,
3055
- ...l,
3056
- ...u,
3057
- children: /* @__PURE__ */ P(Bn, {
3058
- id: e,
3059
- disabled: t,
3060
- duplicates: n,
3061
- choice: r,
3062
- isOver: g,
3063
- dragItem: v?.data?.current,
3064
- correct: i,
3065
- onChange: a,
3066
- emptyResponseAreaWidth: o,
3067
- emptyResponseAreaHeight: s,
3068
- instanceId: c
3069
- })
3070
- });
3071
- }
3072
- Vn.defaultProps = {
3073
- emptyResponseAreaWidth: 0,
3074
- emptyResponseAreaHeight: 0
3075
- }, Vn.propTypes = {
3076
- id: I.default.oneOfType([I.default.string, I.default.number]),
3077
- disabled: I.default.bool,
3078
- duplicates: I.default.bool,
3079
- choice: I.default.object,
3080
- correct: I.default.bool,
3081
- onChange: I.default.func,
3082
- emptyResponseAreaWidth: I.default.oneOfType([I.default.string, I.default.number]),
3083
- emptyResponseAreaHeight: I.default.oneOfType([I.default.string, I.default.number]),
3084
- instanceId: I.default.string
3085
- };
3086
- //#endregion
3087
- //#region ../../lib-react/mask-markup/dist/drag-in-the-blank.js
3088
- var Hn = hn("blank", (e) => (t, n, r) => {
3089
- let i = t.data?.dataset || {};
3090
- if (i.component === "blank") {
3091
- let { disabled: a, duplicates: o, correctResponse: s, feedback: c, showCorrectAnswer: l, emptyResponseAreaWidth: u, emptyResponseAreaHeight: d, instanceId: f, isDragging: p } = e, m = l ? s[i.id] : n[i.id], h = m && e.choices.find((e) => e.id === m);
3092
- return /* @__PURE__ */ P(Vn, {
3093
- correct: l || c && c[i.id],
3094
- disabled: a,
3095
- duplicates: o,
3096
- choice: h,
3097
- id: i.id,
3098
- emptyResponseAreaWidth: u,
3099
- emptyResponseAreaHeight: d,
3100
- onChange: (e, t) => {
3101
- let i = { ...n };
3102
- t === void 0 ? delete i[e] : i[e] = t, r(i);
3103
- },
3104
- instanceId: f,
3105
- isDragging: p
3106
- }, `${t.type}-${i.id}`);
3107
- }
3108
- }), Un = class extends j.Component {
3109
- constructor(e) {
3110
- super(e), this.state = {
3111
- activeDragItem: null,
3112
- dropAnimation: void 0
3113
- };
3114
- }
3115
- static propTypes = {
3116
- markup: I.default.string,
3117
- layout: I.default.object,
3118
- choicesPosition: I.default.string,
3119
- choices: I.default.array,
3120
- value: I.default.object,
3121
- onChange: I.default.func,
3122
- duplicates: I.default.bool,
3123
- disabled: I.default.bool,
3124
- feedback: I.default.object,
3125
- correctResponse: I.default.object,
3126
- showCorrectAnswer: I.default.bool,
3127
- emptyResponseAreaWidth: I.default.oneOfType([I.default.string, I.default.number]),
3128
- emptyResponseAreaHeight: I.default.oneOfType([I.default.string, I.default.number]),
3129
- instanceId: I.default.string
3130
- };
3131
- static defaultProps = { instanceId: "drag-in-the-blank" };
3132
- handleDragStart = (e) => {
3133
- let { active: t } = e;
3134
- t?.data?.current && this.setState({
3135
- activeDragItem: t.data.current,
3136
- dropAnimation: void 0
3137
- });
3138
- };
3139
- renderDragOverlay = () => {
3140
- let { activeDragItem: e } = this.state;
3141
- return e && e.type === "MaskBlank" ? /* @__PURE__ */ P(Dn, {
3142
- disabled: e.disabled,
3143
- choice: e.choice,
3144
- instanceId: e.instanceId
3145
- }) : null;
3146
- };
3147
- handleDragEnd = (e) => {
3148
- let { active: t, over: n } = e, { onChange: r, value: i } = this.props, a = t?.data?.current, o = n?.data?.current, s = !!t && !!n && a?.type === "MaskBlank" && o?.accepts?.includes("MaskBlank");
3149
- if (this.setState({
3150
- activeDragItem: null,
3151
- dropAnimation: s ? null : void 0
3152
- }), !s || !r) return;
3153
- let c = a, l = o.id;
3154
- if (o.toChoiceBoard === !0) {
3155
- if (!c.fromChoice && c.id) {
3156
- let e = { ...i };
3157
- delete e[c.id], r(e);
3158
- }
3159
- } else if (c.fromChoice === !0) {
3160
- if (l && l !== "drag-in-the-blank-droppable") {
3161
- let e = { ...i };
3162
- e[l] = c.choice.id, r(e);
3163
- }
3164
- } else if (c.id && c.id !== l) {
3165
- let e = { ...i };
3166
- e[l] = c.choice.id, delete e[c.id], r(e);
3167
- }
3168
- };
3169
- getPositionDirection = (e) => {
3170
- let t, n, r;
3171
- switch (e) {
3172
- case "left":
3173
- t = "row", r = "center";
3174
- break;
3175
- case "right":
3176
- t = "row-reverse", n = "flex-end", r = "center";
3177
- break;
3178
- case "below":
3179
- t = "column-reverse";
3180
- break;
3181
- default:
3182
- t = "column";
3183
- break;
3184
- }
3185
- return {
3186
- flexDirection: t,
3187
- justifyContent: n,
3188
- alignItems: r
3189
- };
3190
- };
3191
- render() {
3192
- let { markup: e, duplicates: t, value: n, onChange: r, choicesPosition: i, choices: a, correctResponse: o, disabled: s, feedback: c, showCorrectAnswer: l, emptyResponseAreaWidth: u, emptyResponseAreaHeight: d, layout: f, instanceId: p } = this.props, m = i || "below", h = {
3193
- display: "flex",
3194
- minWidth: "100px",
3195
- ...this.getPositionDirection(m)
3196
- };
3197
- return /* @__PURE__ */ P(ee, {
3198
- onDragStart: this.handleDragStart,
3199
- onDragEnd: this.handleDragEnd,
3200
- collisionDetection: E,
3201
- children: /* @__PURE__ */ F("div", {
3202
- ref: (e) => this.rootRef = e,
3203
- style: h,
3204
- children: [
3205
- /* @__PURE__ */ P(Pn, {
3206
- choicePosition: m,
3207
- choices: a,
3208
- value: n,
3209
- duplicates: t,
3210
- disabled: s,
3211
- instanceId: p
3212
- }),
3213
- /* @__PURE__ */ P(Hn, {
3214
- elementType: "drag-in-the-blank",
3215
- markup: e,
3216
- layout: f,
3217
- value: n,
3218
- choices: a,
3219
- onChange: r,
3220
- disabled: s,
3221
- duplicates: t,
3222
- feedback: c,
3223
- correctResponse: o,
3224
- showCorrectAnswer: l,
3225
- emptyResponseAreaWidth: u,
3226
- emptyResponseAreaHeight: d,
3227
- instanceId: p,
3228
- isDragging: !!this.state.activeDragItem
3229
- }),
3230
- /* @__PURE__ */ P(S, {
3231
- style: { pointerEvents: "none" },
3232
- dropAnimation: this.state.dropAnimation,
3233
- children: this.renderDragOverlay()
3234
- })
3235
- ]
3236
- })
3237
- });
3238
- }
3239
- };
3240
- //#endregion
3241
- //#region src/delivery/main.tsx
3242
- function Wn(e) {
3243
- return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
3244
- }
3245
- function $(e, t) {
3246
- return !e || Wn(e) ? e : Wn(e.default) ? e.default : t && Wn(e[t]) ? e[t] : t && Wn(e[t]?.default) ? e[t].default : e;
3247
- }
3248
- var Gn = $(ne, "UiLayout") || $(Xn.UiLayout, "UiLayout"), Kn = $(m, "PreviewPrompt") || $(Xn.PreviewPrompt, "PreviewPrompt"), qn = $(v, "Collapsible") || $(Xn.Collapsible, "Collapsible"), Jn = D, Yn = Jn.default, Xn = Yn && typeof Yn == "object" ? Yn : Jn, Zn = h(Gn)({
3249
- color: d.text(),
3250
- backgroundColor: d.background(),
3251
- "& tr > td": { color: d.text() },
3252
- position: "relative"
3253
- }), Qn = h(qn)(({ theme: e }) => ({ marginBottom: e.spacing(2) })), $n = h(qn)(({ theme: e }) => ({ marginTop: e.spacing(2) })), er = class extends j.Component {
3254
- static propTypes = {
3255
- model: I.default.object,
3256
- value: I.default.object,
3257
- feedback: I.default.object,
3258
- onChange: I.default.func
3259
- };
3260
- static defaultProps = { value: {} };
3261
- state = { showCorrectAnswer: !1 };
3262
- toggleShowCorrect = () => {
3263
- this.setState({ showCorrectAnswer: !this.state.showCorrectAnswer });
3264
- };
3265
- UNSAFE_componentWillReceiveProps(e) {
3266
- let { model: t } = e;
3267
- t && !t.correctResponse && this.state.showCorrectAnswer !== !1 && this.setState({ showCorrectAnswer: !1 });
3268
- }
3269
- render() {
3270
- let { showCorrectAnswer: e } = this.state, { model: t, onChange: n, value: r } = this.props, { extraCSSRules: i, prompt: a, mode: o, language: s, fontSizeFactor: c, autoplayAudioEnabled: l, customAudioButton: u } = t, d = {
3271
- ...t,
3272
- value: r
3273
- }, f = o === "evaluate", p = t.rationale && (b(t.rationale) || w(t.rationale));
3274
- return /* @__PURE__ */ F(Zn, {
3275
- extraCSSRules: i,
3276
- id: "main-container",
3277
- fontSizeFactor: c,
3278
- children: [
3279
- t.teacherInstructions && (b(t.teacherInstructions) || w(t.teacherInstructions)) && /* @__PURE__ */ P(Qn, {
3280
- labels: {
3281
- hidden: "Show Teacher Instructions",
3282
- visible: "Hide Teacher Instructions"
3283
- },
3284
- children: /* @__PURE__ */ P(Kn, { prompt: t.teacherInstructions })
3285
- }),
3286
- a && /* @__PURE__ */ P(Kn, {
3287
- className: "prompt",
3288
- prompt: a,
3289
- autoplayAudioEnabled: l,
3290
- customAudioButton: u
3291
- }),
3292
- /* @__PURE__ */ P(yt, {
3293
- show: f,
3294
- toggled: e,
3295
- onToggle: this.toggleShowCorrect,
3296
- language: s
3297
- }),
3298
- /* @__PURE__ */ P(Un, {
3299
- ...d,
3300
- onChange: n,
3301
- showCorrectAnswer: e
3302
- }),
3303
- p && /* @__PURE__ */ P($n, {
3304
- labels: {
3305
- hidden: "Show Rationale",
3306
- visible: "Hide Rationale"
3307
- },
3308
- children: /* @__PURE__ */ P(Kn, { prompt: t.rationale })
3309
- })
3310
- ]
3311
- });
3312
- }
3313
- };
3314
- //#endregion
3315
- //#region src/delivery/index.ts
3316
- function tr(e) {
3317
- return typeof e == "function" || typeof e == "object" && !!e && typeof e.$$typeof == "symbol";
3318
- }
3319
- function nr(e, t) {
3320
- return !e || tr(e) ? e : tr(e.default) ? e.default : t && tr(e[t]) ? e[t] : t && tr(e[t]?.default) ? e[t].default : e;
3321
- }
3322
- var rr = nr("data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAMCAgICAgMCAgIDAwMDBAYEBAQEBAgGBgUGCQgKCgkICQkKDA8MCgsOCwkJDRENDg8QEBEQCgwSExIQEw8QEBD/2wBDAQMDAwQDBAgEBAgQCwkLEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBAQEBD/wAARCAJYAyADAREAAhEBAxEB/8QAHgABAQABBQEBAQAAAAAAAAAAAAEIAgMGBwkEBQr/xABiEAACAQIDBAMKCAYMCgYLAQAAAQIDEQQFIQYSMUEHCFETFRYiUmFxkdHhCRRjgaGisfAXMjRTcsEjJDY4QmJ1dpKztMQYMzdEVIKyw9PxQ1hmc3SWJzVFRlZXhJOUldJk/8QAGwEBAQADAQEBAAAAAAAAAAAAAAcEBQYCAQP/xABBEQEAAQIDAgkJBgUFAQEBAAAAAQIDBAYRBSESMUFEYXGCscITNDVRcoGRocEUIjJS0eEVI2KSsjNCU6LwFtLx/9oADAMBAAIRAxEAPwD1TAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA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", "EnableAudioAutoplayImage") || nr(or.EnableAudioAutoplayImage, "EnableAudioAutoplayImage"), ir = D, ar = ir.default, or = ar && typeof ar == "object" ? ar : ir, sr = (e, t, n, r) => {
3323
- let { autoplayAudioEnabled: i, completeAudioEnabled: a, responseAreasToBeFilled: o } = t || {};
3324
- if (i && a && !n && r) {
3325
- let e = r.querySelector("audio"), t = e && e.closest("#preview-prompt");
3326
- if (e && t) return !1;
3327
- }
3328
- return !e || !e.value ? !1 : Object.values(e.value || {}).filter((e) => !!e).length >= o;
3329
- }, cr = class extends HTMLElement {
3330
- constructor() {
3331
- super(), this._model = null, this._session = null, this._audioInitialized = !1, this.audioComplete = !1, this._root = null;
3332
- }
3333
- set model(e) {
3334
- this._model = e, this.dispatchEvent(new ue(this.tagName.toLowerCase(), sr(this._session, this._model, this.audioComplete, this), !!this._model)), this._audioInitialized = !1, this._render();
3335
- }
3336
- set session(e) {
3337
- this._session = e, this._render();
3338
- }
3339
- get session() {
3340
- return this._session;
3341
- }
3342
- _render = () => {
3343
- if (this._model && this._session) {
3344
- let e = j.createElement(er, {
3345
- model: this._model,
3346
- value: this._session.value,
3347
- onChange: this.changeSession
3348
- });
3349
- this._root ||= oe(this), this._root.render(e), setTimeout(() => s(this), 0);
3350
- }
3351
- };
3352
- dispatchChangedEvent = () => {
3353
- this.dispatchEvent(new de(this.tagName.toLowerCase(), sr(this._session, this._model, this.audioComplete, this)));
3354
- };
3355
- changeSession = (e) => {
3356
- this.session.value = e, this.session.selector = "Mouse", this.dispatchChangedEvent(), this._render();
3357
- };
3358
- _createAudioInfoToast() {
3359
- let e = document.createElement("div");
3360
- e.id = "play-audio-info", Object.assign(e.style, {
3361
- position: "absolute",
3362
- top: 0,
3363
- width: "100%",
3364
- height: "100%",
3365
- display: "flex",
3366
- justifyContent: "center",
3367
- alignItems: "center",
3368
- background: "white",
3369
- zIndex: "1000",
3370
- cursor: "pointer"
3371
- });
3372
- let t = document.createElement("img");
3373
- return t.src = rr, t.alt = "Click anywhere to enable audio autoplay", t.width = 500, t.height = 300, e.appendChild(t), e;
3374
- }
3375
- connectedCallback() {
3376
- this._render(), new MutationObserver((e, t) => {
3377
- e.forEach((e) => {
3378
- if (e.type === "childList") {
3379
- if (this._audioInitialized) return;
3380
- let e = this.querySelector("audio"), n = e && e.closest("#preview-prompt");
3381
- if (!this._model || !this._model.autoplayAudioEnabled || e && !n || !e) return;
3382
- let r = this._createAudioInfoToast(), i = this.querySelector("#main-container"), a = () => {
3383
- this.querySelector("#play-audio-info") && (e.play(), i.removeChild(r)), document.removeEventListener("click", a);
3384
- };
3385
- setTimeout(() => {
3386
- e.paused && !this.querySelector("#play-audio-info") ? (i.appendChild(r), document.addEventListener("click", a)) : document.removeEventListener("click", a);
3387
- }, 500);
3388
- let o = () => {
3389
- this._session.audioStartTime = this._session.audioStartTime || (/* @__PURE__ */ new Date()).getTime();
3390
- let t = this.querySelector("#play-audio-info");
3391
- t && i.removeChild(t), e.removeEventListener("playing", o);
3392
- };
3393
- e.addEventListener("playing", o);
3394
- let s = () => {
3395
- this._session.audioEndTime = this._session.audioEndTime || (/* @__PURE__ */ new Date()).getTime();
3396
- let { audioStartTime: t, audioEndTime: n, waitTime: r } = this._session;
3397
- !r && t && n && (this._session.waitTime = n - t), this.audioComplete = !0, this.dispatchChangedEvent(), e.removeEventListener("ended", s);
3398
- };
3399
- e.addEventListener("ended", s), this._audio = e, this._handlePlaying = o, this._handleEnded = s, this._enableAudio = a, this._audioInitialized = !0, t.disconnect();
3400
- }
3401
- });
3402
- }).observe(this, {
3403
- childList: !0,
3404
- subtree: !0
3405
- });
3406
- }
3407
- disconnectedCallback() {
3408
- document.removeEventListener("click", this._enableAudio), this._audio &&= (this._audio.removeEventListener("playing", this._handlePlaying), this._audio.removeEventListener("ended", this._handleEnded), null), this._root && this._root.unmount();
3409
- }
3410
- };
3411
- //#endregion
3412
- export { cr as default, sr as isComplete };
3413
-
3414
- //# sourceMappingURL=index.js.map