@instructure/platform-rubrics 3.0.1 → 3.1.0

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 (42) hide show
  1. package/dist/_internal/RubricAssignment/hooks/useAssignmentRubric.d.ts +1 -0
  2. package/dist/_internal/RubricAssignment/hooks/useAssignmentRubric.d.ts.map +1 -1
  3. package/dist/_internal/RubricAssignment/hooks/useAssignmentRubricState.d.ts +1 -0
  4. package/dist/_internal/RubricAssignment/hooks/useAssignmentRubricState.d.ts.map +1 -1
  5. package/dist/_internal/RubricForm/components/RubricGeneratorNutritionFacts.d.ts.map +1 -0
  6. package/dist/_internal/ViewRubrics/useRubricsQuery.d.ts.map +1 -1
  7. package/dist/_internal/ViewRubrics/useViewRubrics.d.ts.map +1 -1
  8. package/dist/_internal/constants/i18n.d.ts +14 -0
  9. package/dist/_internal/constants/i18n.d.ts.map +1 -1
  10. package/dist/_internal/utils/i18n.d.ts +14 -0
  11. package/dist/_internal/utils/i18n.d.ts.map +1 -1
  12. package/dist/canvas.js +4752 -8509
  13. package/dist/chunks/{errorPage-CYyehhNJ.js → errorPage-B145UIKY.js} +51 -37
  14. package/dist/chunks/useAssignmentRubricState-Cha3tHoC.js +8508 -0
  15. package/dist/foundation/RubricAssignmentBuilder/RubricAssignmentBuilder.d.ts +28 -0
  16. package/dist/foundation/RubricAssignmentBuilder/RubricAssignmentBuilder.d.ts.map +1 -0
  17. package/dist/foundation/RubricBuilder/RubricBuilder.d.ts.map +1 -1
  18. package/dist/foundation/RubricBuilder/components/CriteriaSection.d.ts +3 -1
  19. package/dist/foundation/RubricBuilder/components/CriteriaSection.d.ts.map +1 -1
  20. package/dist/foundation/RubricBuilder/components/generator/GenerateCriteriaForm.d.ts +14 -0
  21. package/dist/foundation/RubricBuilder/components/generator/GenerateCriteriaForm.d.ts.map +1 -0
  22. package/dist/foundation/RubricBuilder/components/generator/GeneratedCriteriaFeedback.d.ts +8 -0
  23. package/dist/foundation/RubricBuilder/components/generator/GeneratedCriteriaFeedback.d.ts.map +1 -0
  24. package/dist/foundation/RubricBuilder/components/generator/GeneratedCriteriaSummary.d.ts +11 -0
  25. package/dist/foundation/RubricBuilder/components/generator/GeneratedCriteriaSummary.d.ts.map +1 -0
  26. package/dist/foundation/RubricBuilder/components/generator/RegenerateCriteriaModal.d.ts +7 -0
  27. package/dist/foundation/RubricBuilder/components/generator/RegenerateCriteriaModal.d.ts.map +1 -0
  28. package/dist/foundation/RubricBuilder/components/generator/RubricGeneratorPanel.d.ts +9 -0
  29. package/dist/foundation/RubricBuilder/components/generator/RubricGeneratorPanel.d.ts.map +1 -0
  30. package/dist/foundation/RubricBuilder/components/generator/RubricGeneratorStatus.d.ts +9 -0
  31. package/dist/foundation/RubricBuilder/components/generator/RubricGeneratorStatus.d.ts.map +1 -0
  32. package/dist/foundation/RubricBuilder/useCriteriaGenerator.d.ts +44 -0
  33. package/dist/foundation/RubricBuilder/useCriteriaGenerator.d.ts.map +1 -0
  34. package/dist/foundation/index.d.ts +2 -0
  35. package/dist/foundation/index.d.ts.map +1 -1
  36. package/dist/foundation.js +1110 -512
  37. package/dist/index.js +1 -1
  38. package/locales/en.json +14 -0
  39. package/package.json +2 -2
  40. package/dist/canvas/RubricForm/components/AIGeneratedCriteria/RubricGeneratorNutritionFacts.d.ts.map +0 -1
  41. package/dist/chunks/ErrorShip-COgM3wMV.js +0 -4726
  42. /package/dist/{canvas/RubricForm/components/AIGeneratedCriteria → _internal/RubricForm/components}/RubricGeneratorNutritionFacts.d.ts +0 -0
@@ -1,4726 +0,0 @@
1
- import q, { useRef as G, useCallback as M, useState as U, useMemo as J, useEffect as S, useLayoutEffect as Cn, createContext as ot, memo as bn, useReducer as mn, useContext as Ke } from "react";
2
- import { useQuery as KA, useQueryClient as Bn, useMutation as wn } from "@tanstack/react-query";
3
- import { usePlatformUi as yn } from "@instructure/platform-provider";
4
- import { u as wt } from "./errorPage-CYyehhNJ.js";
5
- import Oe from "graphql-tag";
6
- import { z as f } from "zod";
7
- import { canvasFetch as yt } from "@instructure/platform-canvas-fetch";
8
- import { unstable_batchedUpdates as dt, createPortal as Dn } from "react-dom";
9
- var vn = 20, En = 1, Se = 1e6, lA = 1e6, Rn = -7, Qn = 21, Fn = !1, it = "[big.js] ", Ge = it + "Invalid ", Dt = Ge + "decimal places", Kn = Ge + "rounding mode", SA = it + "Division by zero", Y = {}, ge = void 0, Sn = /^-?(\d+(\.\d*)?|\.\d+)(e[+-]?\d+)?$/i;
10
- function GA() {
11
- function e(t) {
12
- var A = this;
13
- if (!(A instanceof e)) return t === ge ? GA() : new e(t);
14
- if (t instanceof e)
15
- A.s = t.s, A.e = t.e, A.c = t.c.slice();
16
- else {
17
- if (typeof t != "string") {
18
- if (e.strict === !0 && typeof t != "bigint")
19
- throw TypeError(Ge + "value");
20
- t = t === 0 && 1 / t < 0 ? "-0" : String(t);
21
- }
22
- Gn(A, t);
23
- }
24
- A.constructor = e;
25
- }
26
- return e.prototype = Y, e.DP = vn, e.RM = En, e.NE = Rn, e.PE = Qn, e.strict = Fn, e.roundDown = 0, e.roundHalfUp = 1, e.roundHalfEven = 2, e.roundUp = 3, e;
27
- }
28
- function Gn(e, t) {
29
- var A, n, r;
30
- if (!Sn.test(t))
31
- throw Error(Ge + "number");
32
- for (e.s = t.charAt(0) == "-" ? (t = t.slice(1), -1) : 1, (A = t.indexOf(".")) > -1 && (t = t.replace(".", "")), (n = t.search(/e/i)) > 0 ? (A < 0 && (A = n), A += +t.slice(n + 1), t = t.substring(0, n)) : A < 0 && (A = t.length), r = t.length, n = 0; n < r && t.charAt(n) == "0"; ) ++n;
33
- if (n == r)
34
- e.c = [e.e = 0];
35
- else {
36
- for (; r > 0 && t.charAt(--r) == "0"; ) ;
37
- for (e.e = A - n - 1, e.c = [], A = 0; n <= r; ) e.c[A++] = +t.charAt(n++);
38
- }
39
- return e;
40
- }
41
- function Ye(e, t, A, n) {
42
- var r = e.c;
43
- if (A === ge && (A = e.constructor.RM), A !== 0 && A !== 1 && A !== 2 && A !== 3)
44
- throw Error(Kn);
45
- if (t < 1)
46
- n = A === 3 && (n || !!r[0]) || t === 0 && (A === 1 && r[0] >= 5 || A === 2 && (r[0] > 5 || r[0] === 5 && (n || r[1] !== ge))), r.length = 1, n ? (e.e = e.e - t + 1, r[0] = 1) : r[0] = e.e = 0;
47
- else if (t < r.length) {
48
- if (n = A === 1 && r[t] >= 5 || A === 2 && (r[t] > 5 || r[t] === 5 && (n || r[t + 1] !== ge || r[t - 1] & 1)) || A === 3 && (n || !!r[0]), r.length = t, n) {
49
- for (; ++r[--t] > 9; )
50
- if (r[t] = 0, t === 0) {
51
- ++e.e, r.unshift(1);
52
- break;
53
- }
54
- }
55
- for (t = r.length; !r[--t]; ) r.pop();
56
- }
57
- return e;
58
- }
59
- function We(e, t, A) {
60
- var n = e.e, r = e.c.join(""), o = r.length;
61
- if (t)
62
- r = r.charAt(0) + (o > 1 ? "." + r.slice(1) : "") + (n < 0 ? "e" : "e+") + n;
63
- else if (n < 0) {
64
- for (; ++n; ) r = "0" + r;
65
- r = "0." + r;
66
- } else if (n > 0)
67
- if (++n > o)
68
- for (n -= o; n--; ) r += "0";
69
- else n < o && (r = r.slice(0, n) + "." + r.slice(n));
70
- else o > 1 && (r = r.charAt(0) + "." + r.slice(1));
71
- return e.s < 0 && A ? "-" + r : r;
72
- }
73
- Y.abs = function() {
74
- var e = new this.constructor(this);
75
- return e.s = 1, e;
76
- };
77
- Y.cmp = function(e) {
78
- var t, A = this, n = A.c, r = (e = new A.constructor(e)).c, o = A.s, s = e.s, i = A.e, c = e.e;
79
- if (!n[0] || !r[0]) return n[0] ? o : r[0] ? -s : 0;
80
- if (o != s) return o;
81
- if (t = o < 0, i != c) return i > c ^ t ? 1 : -1;
82
- for (s = (i = n.length) < (c = r.length) ? i : c, o = -1; ++o < s; )
83
- if (n[o] != r[o]) return n[o] > r[o] ^ t ? 1 : -1;
84
- return i == c ? 0 : i > c ^ t ? 1 : -1;
85
- };
86
- Y.div = function(e) {
87
- var t = this, A = t.constructor, n = t.c, r = (e = new A(e)).c, o = t.s == e.s ? 1 : -1, s = A.DP;
88
- if (s !== ~~s || s < 0 || s > Se)
89
- throw Error(Dt);
90
- if (!r[0])
91
- throw Error(SA);
92
- if (!n[0])
93
- return e.s = o, e.c = [e.e = 0], e;
94
- var i, c, a, u, l, g = r.slice(), d = i = r.length, p = n.length, h = n.slice(0, i), I = h.length, b = e, m = b.c = [], C = 0, B = s + (b.e = t.e - e.e) + 1;
95
- for (b.s = o, o = B < 0 ? 0 : B, g.unshift(0); I++ < i; ) h.push(0);
96
- do {
97
- for (a = 0; a < 10; a++) {
98
- if (i != (I = h.length))
99
- u = i > I ? 1 : -1;
100
- else
101
- for (l = -1, u = 0; ++l < i; )
102
- if (r[l] != h[l]) {
103
- u = r[l] > h[l] ? 1 : -1;
104
- break;
105
- }
106
- if (u < 0) {
107
- for (c = I == i ? r : g; I; ) {
108
- if (h[--I] < c[I]) {
109
- for (l = I; l && !h[--l]; ) h[l] = 9;
110
- --h[l], h[I] += 10;
111
- }
112
- h[I] -= c[I];
113
- }
114
- for (; !h[0]; ) h.shift();
115
- } else
116
- break;
117
- }
118
- m[C++] = u ? a : ++a, h[0] && u ? h[I] = n[d] || 0 : h = [n[d]];
119
- } while ((d++ < p || h[0] !== ge) && o--);
120
- return !m[0] && C != 1 && (m.shift(), b.e--, B--), C > B && Ye(b, B, A.RM, h[0] !== ge), b;
121
- };
122
- Y.eq = function(e) {
123
- return this.cmp(e) === 0;
124
- };
125
- Y.gt = function(e) {
126
- return this.cmp(e) > 0;
127
- };
128
- Y.gte = function(e) {
129
- return this.cmp(e) > -1;
130
- };
131
- Y.lt = function(e) {
132
- return this.cmp(e) < 0;
133
- };
134
- Y.lte = function(e) {
135
- return this.cmp(e) < 1;
136
- };
137
- Y.minus = Y.sub = function(e) {
138
- var t, A, n, r, o = this, s = o.constructor, i = o.s, c = (e = new s(e)).s;
139
- if (i != c)
140
- return e.s = -c, o.plus(e);
141
- var a = o.c.slice(), u = o.e, l = e.c, g = e.e;
142
- if (!a[0] || !l[0])
143
- return l[0] ? e.s = -c : a[0] ? e = new s(o) : e.s = 1, e;
144
- if (i = u - g) {
145
- for ((r = i < 0) ? (i = -i, n = a) : (g = u, n = l), n.reverse(), c = i; c--; ) n.push(0);
146
- n.reverse();
147
- } else
148
- for (A = ((r = a.length < l.length) ? a : l).length, i = c = 0; c < A; c++)
149
- if (a[c] != l[c]) {
150
- r = a[c] < l[c];
151
- break;
152
- }
153
- if (r && (n = a, a = l, l = n, e.s = -e.s), (c = (A = l.length) - (t = a.length)) > 0) for (; c--; ) a[t++] = 0;
154
- for (c = t; A > i; ) {
155
- if (a[--A] < l[A]) {
156
- for (t = A; t && !a[--t]; ) a[t] = 9;
157
- --a[t], a[A] += 10;
158
- }
159
- a[A] -= l[A];
160
- }
161
- for (; a[--c] === 0; ) a.pop();
162
- for (; a[0] === 0; )
163
- a.shift(), --g;
164
- return a[0] || (e.s = 1, a = [g = 0]), e.c = a, e.e = g, e;
165
- };
166
- Y.mod = function(e) {
167
- var t, A = this, n = A.constructor, r = A.s, o = (e = new n(e)).s;
168
- if (!e.c[0])
169
- throw Error(SA);
170
- return A.s = e.s = 1, t = e.cmp(A) == 1, A.s = r, e.s = o, t ? new n(A) : (r = n.DP, o = n.RM, n.DP = n.RM = 0, A = A.div(e), n.DP = r, n.RM = o, this.minus(A.times(e)));
171
- };
172
- Y.neg = function() {
173
- var e = new this.constructor(this);
174
- return e.s = -e.s, e;
175
- };
176
- Y.plus = Y.add = function(e) {
177
- var t, A, n, r = this, o = r.constructor;
178
- if (e = new o(e), r.s != e.s)
179
- return e.s = -e.s, r.minus(e);
180
- var s = r.e, i = r.c, c = e.e, a = e.c;
181
- if (!i[0] || !a[0])
182
- return a[0] || (i[0] ? e = new o(r) : e.s = r.s), e;
183
- if (i = i.slice(), t = s - c) {
184
- for (t > 0 ? (c = s, n = a) : (t = -t, n = i), n.reverse(); t--; ) n.push(0);
185
- n.reverse();
186
- }
187
- for (i.length - a.length < 0 && (n = a, a = i, i = n), t = a.length, A = 0; t; i[t] %= 10) A = (i[--t] = i[t] + a[t] + A) / 10 | 0;
188
- for (A && (i.unshift(A), ++c), t = i.length; i[--t] === 0; ) i.pop();
189
- return e.c = i, e.e = c, e;
190
- };
191
- Y.pow = function(e) {
192
- var t = this, A = new t.constructor("1"), n = A, r = e < 0;
193
- if (e !== ~~e || e < -lA || e > lA)
194
- throw Error(Ge + "exponent");
195
- for (r && (e = -e); e & 1 && (n = n.times(t)), e >>= 1, !!e; )
196
- t = t.times(t);
197
- return r ? A.div(n) : n;
198
- };
199
- Y.prec = function(e, t) {
200
- if (e !== ~~e || e < 1 || e > Se)
201
- throw Error(Ge + "precision");
202
- return Ye(new this.constructor(this), e, t);
203
- };
204
- Y.round = function(e, t) {
205
- if (e === ge) e = 0;
206
- else if (e !== ~~e || e < -Se || e > Se)
207
- throw Error(Dt);
208
- return Ye(new this.constructor(this), e + this.e + 1, t);
209
- };
210
- Y.sqrt = function() {
211
- var e, t, A, n = this, r = n.constructor, o = n.s, s = n.e, i = new r("0.5");
212
- if (!n.c[0]) return new r(n);
213
- if (o < 0)
214
- throw Error(it + "No square root");
215
- o = Math.sqrt(+We(n, !0, !0)), o === 0 || o === 1 / 0 ? (t = n.c.join(""), t.length + s & 1 || (t += "0"), o = Math.sqrt(t), s = ((s + 1) / 2 | 0) - (s < 0 || s & 1), e = new r((o == 1 / 0 ? "5e" : (o = o.toExponential()).slice(0, o.indexOf("e") + 1)) + s)) : e = new r(o + ""), s = e.e + (r.DP += 4);
216
- do
217
- A = e, e = i.times(A.plus(n.div(A)));
218
- while (A.c.slice(0, s).join("") !== e.c.slice(0, s).join(""));
219
- return Ye(e, (r.DP -= 4) + e.e + 1, r.RM);
220
- };
221
- Y.times = Y.mul = function(e) {
222
- var t, A = this, n = A.constructor, r = A.c, o = (e = new n(e)).c, s = r.length, i = o.length, c = A.e, a = e.e;
223
- if (e.s = A.s == e.s ? 1 : -1, !r[0] || !o[0])
224
- return e.c = [e.e = 0], e;
225
- for (e.e = c + a, s < i && (t = r, r = o, o = t, a = s, s = i, i = a), t = new Array(a = s + i); a--; ) t[a] = 0;
226
- for (c = i; c--; ) {
227
- for (i = 0, a = s + c; a > c; )
228
- i = t[a] + o[c] * r[a - c - 1] + i, t[a--] = i % 10, i = i / 10 | 0;
229
- t[a] = i;
230
- }
231
- for (i ? ++e.e : t.shift(), c = t.length; !t[--c]; ) t.pop();
232
- return e.c = t, e;
233
- };
234
- Y.toExponential = function(e, t) {
235
- var A = this, n = A.c[0];
236
- if (e !== ge) {
237
- if (e !== ~~e || e < 0 || e > Se)
238
- throw Error(Dt);
239
- for (A = Ye(new A.constructor(A), ++e, t); A.c.length < e; ) A.c.push(0);
240
- }
241
- return We(A, !0, !!n);
242
- };
243
- Y.toFixed = function(e, t) {
244
- var A = this, n = A.c[0];
245
- if (e !== ge) {
246
- if (e !== ~~e || e < 0 || e > Se)
247
- throw Error(Dt);
248
- for (A = Ye(new A.constructor(A), e + A.e + 1, t), e = e + A.e + 1; A.c.length < e; ) A.c.push(0);
249
- }
250
- return We(A, !1, !!n);
251
- };
252
- Y[Symbol.for("nodejs.util.inspect.custom")] = Y.toJSON = Y.toString = function() {
253
- var e = this, t = e.constructor;
254
- return We(e, e.e <= t.NE || e.e >= t.PE, !!e.c[0]);
255
- };
256
- Y.toNumber = function() {
257
- var e = +We(this, !0, !0);
258
- if (this.constructor.strict === !0 && !this.eq(e.toString()))
259
- throw Error(it + "Imprecise conversion");
260
- return e;
261
- };
262
- Y.toPrecision = function(e, t) {
263
- var A = this, n = A.constructor, r = A.c[0];
264
- if (e !== ge) {
265
- if (e !== ~~e || e < 1 || e > Se)
266
- throw Error(Ge + "precision");
267
- for (A = Ye(new n(A), e, t); A.c.length < e; ) A.c.push(0);
268
- }
269
- return We(A, e <= A.e || A.e <= n.NE || A.e >= n.PE, !!r);
270
- };
271
- Y.valueOf = function() {
272
- var e = this, t = e.constructor;
273
- if (t.strict === !0)
274
- throw Error(it + "valueOf disallowed");
275
- return We(e, e.e <= t.NE || e.e >= t.PE, !0);
276
- };
277
- var Yn = GA();
278
- function Wn(e, t) {
279
- return e === t || Number.isNaN(e) && Number.isNaN(t);
280
- }
281
- function uA(e) {
282
- return Object.getOwnPropertySymbols(e).filter((t) => Object.prototype.propertyIsEnumerable.call(e, t));
283
- }
284
- function dA(e) {
285
- return e == null ? e === void 0 ? "[object Undefined]" : "[object Null]" : Object.prototype.toString.call(e);
286
- }
287
- const Nn = "[object RegExp]", Jn = "[object String]", xn = "[object Number]", Zn = "[object Boolean]", gA = "[object Arguments]", Mn = "[object Symbol]", Hn = "[object Date]", Un = "[object Map]", kn = "[object Set]", On = "[object Array]", Xn = "[object Function]", Ln = "[object ArrayBuffer]", Yt = "[object Object]", jn = "[object Error]", Tn = "[object DataView]", Pn = "[object Uint8Array]", zn = "[object Uint8ClampedArray]", Vn = "[object Uint16Array]", _n = "[object Uint32Array]", qn = "[object BigUint64Array]", $n = "[object Int8Array]", er = "[object Int16Array]", tr = "[object Int32Array]", Ar = "[object BigInt64Array]", nr = "[object Float32Array]", rr = "[object Float64Array]";
288
- function hA(e) {
289
- if (!e || typeof e != "object")
290
- return !1;
291
- const t = Object.getPrototypeOf(e);
292
- return t === null || t === Object.prototype || Object.getPrototypeOf(t) === null ? Object.prototype.toString.call(e) === "[object Object]" : !1;
293
- }
294
- function or(e, t, A) {
295
- return _e(e, t, void 0, void 0, void 0, void 0, A);
296
- }
297
- function _e(e, t, A, n, r, o, s) {
298
- const i = s(e, t, A, n, r, o);
299
- if (i !== void 0)
300
- return i;
301
- if (typeof e == typeof t)
302
- switch (typeof e) {
303
- case "bigint":
304
- case "string":
305
- case "boolean":
306
- case "symbol":
307
- case "undefined":
308
- return e === t;
309
- case "number":
310
- return e === t || Object.is(e, t);
311
- case "function":
312
- return e === t;
313
- case "object":
314
- return qe(e, t, o, s);
315
- }
316
- return qe(e, t, o, s);
317
- }
318
- function qe(e, t, A, n) {
319
- if (Object.is(e, t))
320
- return !0;
321
- let r = dA(e), o = dA(t);
322
- if (r === gA && (r = Yt), o === gA && (o = Yt), r !== o)
323
- return !1;
324
- switch (r) {
325
- case Jn:
326
- return e.toString() === t.toString();
327
- case xn: {
328
- const c = e.valueOf(), a = t.valueOf();
329
- return Wn(c, a);
330
- }
331
- case Zn:
332
- case Hn:
333
- case Mn:
334
- return Object.is(e.valueOf(), t.valueOf());
335
- case Nn:
336
- return e.source === t.source && e.flags === t.flags;
337
- case Xn:
338
- return e === t;
339
- }
340
- A = A ?? /* @__PURE__ */ new Map();
341
- const s = A.get(e), i = A.get(t);
342
- if (s != null && i != null)
343
- return s === t;
344
- A.set(e, t), A.set(t, e);
345
- try {
346
- switch (r) {
347
- case Un: {
348
- if (e.size !== t.size)
349
- return !1;
350
- for (const [c, a] of e.entries())
351
- if (!t.has(c) || !_e(a, t.get(c), c, e, t, A, n))
352
- return !1;
353
- return !0;
354
- }
355
- case kn: {
356
- if (e.size !== t.size)
357
- return !1;
358
- const c = Array.from(e.values()), a = Array.from(t.values());
359
- for (let u = 0; u < c.length; u++) {
360
- const l = c[u], g = a.findIndex((d) => _e(l, d, void 0, e, t, A, n));
361
- if (g === -1)
362
- return !1;
363
- a.splice(g, 1);
364
- }
365
- return !0;
366
- }
367
- case On:
368
- case Pn:
369
- case zn:
370
- case Vn:
371
- case _n:
372
- case qn:
373
- case $n:
374
- case er:
375
- case tr:
376
- case Ar:
377
- case nr:
378
- case rr: {
379
- if (typeof Buffer < "u" && Buffer.isBuffer(e) !== Buffer.isBuffer(t) || e.length !== t.length)
380
- return !1;
381
- for (let c = 0; c < e.length; c++)
382
- if (!_e(e[c], t[c], c, e, t, A, n))
383
- return !1;
384
- return !0;
385
- }
386
- case Ln:
387
- return e.byteLength !== t.byteLength ? !1 : qe(new Uint8Array(e), new Uint8Array(t), A, n);
388
- case Tn:
389
- return e.byteLength !== t.byteLength || e.byteOffset !== t.byteOffset ? !1 : qe(new Uint8Array(e), new Uint8Array(t), A, n);
390
- case jn:
391
- return e.name === t.name && e.message === t.message;
392
- case Yt: {
393
- if (!(qe(e.constructor, t.constructor, A, n) || hA(e) && hA(t)))
394
- return !1;
395
- const a = [...Object.keys(e), ...uA(e)], u = [...Object.keys(t), ...uA(t)];
396
- if (a.length !== u.length)
397
- return !1;
398
- for (let l = 0; l < a.length; l++) {
399
- const g = a[l], d = e[g];
400
- if (!Object.hasOwn(t, g))
401
- return !1;
402
- const p = t[g];
403
- if (!_e(d, p, g, e, t, A, n))
404
- return !1;
405
- }
406
- return !0;
407
- }
408
- default:
409
- return !1;
410
- }
411
- } finally {
412
- A.delete(e), A.delete(t);
413
- }
414
- }
415
- function ir() {
416
- }
417
- function YA(e, t) {
418
- return or(e, t, ir);
419
- }
420
- const sr = (e) => {
421
- var t, A, n, r, o, s;
422
- return {
423
- associationType: ((t = e.rubricAssociationForContext) == null ? void 0 : t.associationType) ?? "Assignment",
424
- associationTypeId: (A = e.rubricAssociationForContext) == null ? void 0 : A.associationId,
425
- id: e.id,
426
- title: e.title ?? "",
427
- hasRubricAssociations: e.hasRubricAssociations ?? !1,
428
- hidePoints: ((n = e.rubricAssociationForContext) == null ? void 0 : n.hidePoints) ?? !1,
429
- criteria: e.criteria ?? [],
430
- pointsPossible: e.pointsPossible ?? 0,
431
- buttonDisplay: e.buttonDisplay ?? "numeric",
432
- ratingOrder: e.ratingOrder ?? "descending",
433
- unassessed: e.unassessed ?? !0,
434
- workflowState: e.workflowState ?? "active",
435
- freeFormCriterionComments: e.freeFormCriterionComments ?? !1,
436
- hideOutcomeResults: ((r = e.rubricAssociationForContext) == null ? void 0 : r.hideOutcomeResults) ?? !1,
437
- hideScoreTotal: ((o = e.rubricAssociationForContext) == null ? void 0 : o.hideScoreTotal) ?? !1,
438
- useForGrading: ((s = e.rubricAssociationForContext) == null ? void 0 : s.useForGrading) ?? !1,
439
- canUpdateRubric: e.canUpdateRubric ?? !1
440
- };
441
- }, cr = (e, t) => ({
442
- id: e.id,
443
- title: e.title ?? "",
444
- hasRubricAssociations: e.hasRubricAssociations ?? !1,
445
- hidePoints: t.hidePoints ?? !1,
446
- criteria: e.criteria ?? [],
447
- pointsPossible: e.pointsPossible ?? 0,
448
- buttonDisplay: e.buttonDisplay ?? "numeric",
449
- ratingOrder: e.ratingOrder ?? "descending",
450
- unassessed: e.unassessed ?? !0,
451
- workflowState: e.workflowState ?? "active",
452
- freeFormCriterionComments: e.freeFormCriterionComments ?? !1,
453
- hideOutcomeResults: t.hideOutcomeResults ?? !1,
454
- hideScoreTotal: t.hideScoreTotal ?? !1,
455
- useForGrading: t.useForGrading ?? !1,
456
- rubricAssociationId: t.id,
457
- associationType: t.associationType,
458
- associationTypeId: t.associationId,
459
- canUpdateRubric: e.canUpdateRubric ?? !1
460
- }), ar = ({ list: e, startIndex: t, endIndex: A }) => {
461
- const n = e.map((o) => ({ ...o })), [r] = n.splice(t, 1);
462
- return n.splice(A, 0, r), n;
463
- }, As = (e) => e == null ? void 0 : e.replace(/^<p>(.*)<\/p>$/, "$1"), lr = {
464
- "&": "&amp;",
465
- "<": "&lt;",
466
- ">": "&gt;",
467
- '"': "&quot;",
468
- "'": "&#39;"
469
- }, ns = (e) => ({
470
- __html: (e ?? "").replace(/[&<>"']/g, (t) => lr[t]).replace(/\n/g, "<br />")
471
- }), rs = ({ list: e, startIndex: t, endIndex: A }) => {
472
- const n = e.map((s) => ({ ...s })), r = JSON.parse(JSON.stringify(e)), [o] = n.splice(t, 1);
473
- return n.splice(A, 0, o), n.forEach((s, i) => {
474
- s.points = r[i].points;
475
- }), n;
476
- };
477
- function ur(e) {
478
- return Math.round(e * 100) / 100;
479
- }
480
- const os = (e, t) => {
481
- var r, o;
482
- const A = (r = e[t]) == null ? void 0 : r.points, n = (o = e[t + 1]) == null ? void 0 : o.points;
483
- if (!(A === n || A === 0))
484
- return ur(n ?? 0);
485
- }, is = (e, t) => {
486
- const A = e.map((s) => ({ ...s })), n = vt(e), r = t;
487
- let o = t;
488
- for (let s = 0; s < A.length; s++) {
489
- const i = A[s].points;
490
- let c = i / n * r;
491
- (Number.isNaN(i) || i === 0 && o > 0 && s < A.length - 1) && (c = o - Math.round(o / (A.length - s))), Number.isNaN(c) ? c = 0 : c > o && (c = o - 1), c = Math.max(0, c), o = c, A[s].points = Yn(c).round(2, 0).toNumber();
492
- }
493
- return A;
494
- }, fA = (e) => e.reduce((t, A) => t + (A.ignoreForScoring ? 0 : A.points), 0), vt = (e) => Math.max(...e.map((t) => t.points), 0), ss = (e) => {
495
- const t = !e;
496
- return {
497
- hidePoints: t,
498
- hideScoreTotal: !1,
499
- useForGrading: !1,
500
- ...t ? { buttonDisplay: "numeric" } : {}
501
- };
502
- }, cs = (e) => ({
503
- useForGrading: e,
504
- hideScoreTotal: !1
505
- }), kt = {
506
- title: "",
507
- hasRubricAssociations: !1,
508
- hidePoints: !1,
509
- criteria: [],
510
- pointsPossible: 0,
511
- buttonDisplay: "numeric",
512
- ratingOrder: "descending",
513
- unassessed: !0,
514
- workflowState: "active",
515
- freeFormCriterionComments: !1,
516
- hideOutcomeResults: !1,
517
- hideScoreTotal: !1,
518
- useForGrading: !1,
519
- canUpdateRubric: !1,
520
- associationType: "Assignment"
521
- }, dr = (e, t) => {
522
- const A = {
523
- title: e.title,
524
- criteria: e.criteria,
525
- pointsPossible: e.pointsPossible,
526
- ratingOrder: e.ratingOrder,
527
- freeFormCriterionComments: e.freeFormCriterionComments,
528
- hidePoints: e.hidePoints
529
- }, n = {
530
- title: t.title,
531
- criteria: t.criteria,
532
- pointsPossible: t.pointsPossible,
533
- ratingOrder: t.ratingOrder,
534
- freeFormCriterionComments: t.freeFormCriterionComments,
535
- hidePoints: t.hidePoints ?? !1
536
- };
537
- return !YA(A, n);
538
- }, gr = 255, hr = (e) => {
539
- const t = e.trim();
540
- if (t.length === 0) return "required";
541
- if (t.length > gr) return "tooLong";
542
- }, fr = (e) => e.criteria.length === kt.criteria.length && e.title === kt.title, Ir = [
543
- "title",
544
- "criteria",
545
- "pointsPossible",
546
- "buttonDisplay",
547
- "ratingOrder",
548
- "freeFormCriterionComments",
549
- "hidePoints",
550
- "hideScoreTotal",
551
- "hideOutcomeResults",
552
- "useForGrading"
553
- ], pr = (e, t) => Ir.some((A) => !YA(e[A], t[A])), Cr = (e, t) => {
554
- const A = [...e], n = A.findIndex((r) => r.id === t.id);
555
- return n < 0 ? A.push(t) : A[n] = t, A;
556
- }, as = (e) => {
557
- const t = structuredClone(e);
558
- return {
559
- ...t,
560
- id: Date.now().toString(),
561
- outcome: void 0,
562
- learningOutcomeId: void 0,
563
- points: vt(t.ratings)
564
- };
565
- }, br = ({
566
- rubricForm: e,
567
- hasAssignment: t,
568
- assignmentPointsPossible: A
569
- }) => t && A != null && e.pointsPossible != null && !e.hidePoints && e.useForGrading && e.pointsPossible !== A, ls = (e, t, A) => t === 0 ? null : `${new Intl.NumberFormat(A, { maximumFractionDigits: 0 }).format(
570
- e / t * 100
571
- )}%`, mr = ({
572
- rubricForm: e,
573
- hasAssignment: t,
574
- assignmentPointsPossible: A,
575
- rubric: n
576
- }) => br({ rubricForm: e, hasAssignment: t, assignmentPointsPossible: A }) ? "confirmPointsDifference" : n && t && dr(e, n) && !e.unassessed ? "confirmAssessedEdit" : e.unassessed ? "save" : "confirmSave", Br = (e, t) => e.length === 0 ? 0 : t === 0 ? e[0].points + 1 : t === e.length ? Math.max(e[t - 1].points - 1, 0) : Math.round((e[t].points + e[t - 1].points) / 2), us = (e) => {
577
- const t = e.map((n) => ({ points: n.points, id: n.id })), A = e.map((n) => ({
578
- description: n.description,
579
- longDescription: n.longDescription
580
- }));
581
- return t.sort((n, r) => r.points - n.points).map((n, r) => ({
582
- id: n.id,
583
- points: n.points,
584
- description: A[r].description,
585
- longDescription: A[r].longDescription
586
- }));
587
- }, ds = (e, t, A = Date.now().toString()) => {
588
- const n = {
589
- id: A,
590
- points: Br(e, t),
591
- description: "",
592
- longDescription: ""
593
- }, r = [...e];
594
- return r.splice(t, 0, n), r;
595
- }, gs = (e, t) => {
596
- const A = [...e];
597
- return A.splice(t, 1), A;
598
- }, hs = (e, t, A) => {
599
- const n = [...e];
600
- return n[t] = A, n;
601
- }, fs = (e, t) => ({
602
- ...e,
603
- ratings: t,
604
- points: vt(t)
605
- }), Is = (e, t = Date.now().toString()) => ({
606
- id: t,
607
- description: "",
608
- longDescription: "",
609
- ratings: e,
610
- points: vt(e),
611
- criterionUseRange: !1,
612
- ignoreForScoring: !1,
613
- masteryPoints: 0,
614
- learningOutcomeId: void 0
615
- }), WA = (e) => ({
616
- nameRequired: e.description.trim().length === 0,
617
- ratingNamesRequired: e.ratings.flatMap(
618
- (t, A) => t.description.trim().length === 0 ? [A] : []
619
- )
620
- }), NA = (e) => e.nameRequired || e.ratingNamesRequired.length > 0, ps = (e, t) => !NA(WA({ description: e, ratings: t })), wr = 5, Cs = (e) => {
621
- const t = Number(e);
622
- return Number.isNaN(t) || t < 0 ? wr : t;
623
- }, Wt = (e, t) => e.id || `criterion-row-${t}`, bs = (e, t) => e.id || `rating-row-${t}`;
624
- function JA() {
625
- const { executeQuery: e, currentUserId: t, locale: A, notify: n } = yn(), r = G(n);
626
- r.current = n;
627
- const o = M(
628
- (s) => r.current(s),
629
- []
630
- );
631
- return { executeQuery: e, currentUserId: t, locale: A, notify: o };
632
- }
633
- var Nt;
634
- const yr = /* @__PURE__ */ new Map([
635
- [0, 65533],
636
- // C1 Unicode control character reference replacements
637
- [128, 8364],
638
- [130, 8218],
639
- [131, 402],
640
- [132, 8222],
641
- [133, 8230],
642
- [134, 8224],
643
- [135, 8225],
644
- [136, 710],
645
- [137, 8240],
646
- [138, 352],
647
- [139, 8249],
648
- [140, 338],
649
- [142, 381],
650
- [145, 8216],
651
- [146, 8217],
652
- [147, 8220],
653
- [148, 8221],
654
- [149, 8226],
655
- [150, 8211],
656
- [151, 8212],
657
- [152, 732],
658
- [153, 8482],
659
- [154, 353],
660
- [155, 8250],
661
- [156, 339],
662
- [158, 382],
663
- [159, 376]
664
- ]), Dr = (
665
- // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition, n/no-unsupported-features/es-builtins
666
- (Nt = String.fromCodePoint) !== null && Nt !== void 0 ? Nt : (e) => {
667
- let t = "";
668
- return e > 65535 && (e -= 65536, t += String.fromCharCode(e >>> 10 & 1023 | 55296), e = 56320 | e & 1023), t += String.fromCharCode(e), t;
669
- }
670
- );
671
- function vr(e) {
672
- var t;
673
- return e >= 55296 && e <= 57343 || e > 1114111 ? 65533 : (t = yr.get(e)) !== null && t !== void 0 ? t : e;
674
- }
675
- function Er(e) {
676
- const t = (
677
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
678
- typeof atob == "function" ? (
679
- // Browser (and Node >=16)
680
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
681
- atob(e)
682
- ) : (
683
- // Older Node versions (<16)
684
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
685
- typeof Buffer.from == "function" ? (
686
- // eslint-disable-next-line n/no-unsupported-features/node-builtins
687
- Buffer.from(e, "base64").toString("binary")
688
- ) : (
689
- // eslint-disable-next-line unicorn/no-new-buffer, n/no-deprecated-api
690
- new Buffer(e, "base64").toString("binary")
691
- )
692
- )
693
- ), A = t.length & -2, n = new Uint16Array(A / 2);
694
- for (let r = 0, o = 0; r < A; r += 2) {
695
- const s = t.charCodeAt(r), i = t.charCodeAt(r + 1);
696
- n[o++] = s | i << 8;
697
- }
698
- return n;
699
- }
700
- const Rr = /* @__PURE__ */ Er("QR08ALkAAgH6AYsDNQR2BO0EPgXZBQEGLAbdBxMISQrvCmQLfQurDKQNLw4fD4YPpA+6D/IPAAAAAAAAAAAAAAAAKhBMEY8TmxUWF2EYLBkxGuAa3RsJHDscWR8YIC8jSCSIJcMl6ie3Ku8rEC0CLjoupS7kLgAIRU1hYmNmZ2xtbm9wcnN0dVQAWgBeAGUAaQBzAHcAfgCBAIQAhwCSAJoAoACsALMAbABpAGcAO4DGAMZAUAA7gCYAJkBjAHUAdABlADuAwQDBQHIiZXZlAAJhAAFpeW0AcgByAGMAO4DCAMJAEGRyAADgNdgE3XIAYQB2AGUAO4DAAMBA8CFoYZFj4SFjcgBhZAAAoFMqAAFncIsAjgBvAG4ABGFmAADgNdg43fAlbHlGdW5jdGlvbgCgYSBpAG4AZwA7gMUAxUAAAWNzpACoAHIAAOA12Jzc6SFnbgCgVCJpAGwAZABlADuAwwDDQG0AbAA7gMQAxEAABGFjZWZvcnN1xQDYANoA7QDxAPYA+QD8AAABY3LJAM8AayNzbGFzaAAAoBYidgHTANUAAKDnKmUAZAAAoAYjeQARZIABY3J0AOAA5QDrAGEidXNlAACgNSLuI291bGxpcwCgLCFhAJJjcgAA4DXYBd1wAGYAAOA12Dnd5SF2ZdhiYwDyAOoAbSJwZXEAAKBOIgAHSE9hY2RlZmhpbG9yc3UXARoBHwE6AVIBVQFiAWQBZgGCAakB6QHtAfIBYwB5ACdkUABZADuAqQCpQIABY3B5ACUBKAE1AfUhdGUGYWmg0iJ0KGFsRGlmZmVyZW50aWFsRAAAoEUhbCJleXMAAKAtIQACYWVpb0EBRAFKAU0B8iFvbgxhZABpAGwAO4DHAMdAcgBjAAhhbiJpbnQAAKAwIm8AdAAKYQABZG5ZAV0BaSJsbGEAuGB0I2VyRG90ALdg8gA5AWkAp2NyImNsZQAAAkRNUFRwAXQBeQF9AW8AdAAAoJkiaSJudXMAAKCWIuwhdXMAoJUiaSJtZXMAAKCXIm8AAAFjc4cBlAFrKndpc2VDb250b3VySW50ZWdyYWwAAKAyImUjQ3VybHkAAAFEUZwBpAFvJXVibGVRdW90ZQAAoB0gdSJvdGUAAKAZIAACbG5wdbABtgHNAdgBbwBuAGWgNyIAoHQqgAFnaXQAvAHBAcUB8iJ1ZW50AKBhIm4AdAAAoC8i7yV1ckludGVncmFsAKAuIgABZnLRAdMBAKACIe8iZHVjdACgECJuLnRlckNsb2Nrd2lzZUNvbnRvdXJJbnRlZ3JhbAAAoDMi7yFzcwCgLypjAHIAAOA12J7ccABDoNMiYQBwAACgTSKABURKU1phY2VmaW9zAAsCEgIVAhgCGwIsAjQCOQI9AnMCfwNvoEUh9CJyYWhkAKARKWMAeQACZGMAeQAFZGMAeQAPZIABZ3JzACECJQIoAuchZXIAoCEgcgAAoKEhaAB2AACg5CoAAWF5MAIzAvIhb24OYRRkbAB0oAciYQCUY3IAAOA12AfdAAFhZkECawIAAWNtRQJnAvIjaXRpY2FsAAJBREdUUAJUAl8CYwJjInV0ZQC0YG8AdAFZAloC2WJiJGxlQWN1dGUA3WJyImF2ZQBgYGkibGRlANxi7yFuZACgxCJmJWVyZW50aWFsRAAAoEYhcAR9AgAAAAAAAIECjgIAABoDZgAA4DXYO91EoagAhQKJAm8AdAAAoNwgcSJ1YWwAAKBQIuIhbGUAA0NETFJVVpkCqAK1Au8C/wIRA28AbgB0AG8AdQByAEkAbgB0AGUAZwByAGEA7ADEAW8AdAKvAgAAAACwAqhgbiNBcnJvdwAAoNMhAAFlb7kC0AJmAHQAgAFBUlQAwQLGAs0CciJyb3cAAKDQIekkZ2h0QXJyb3cAoNQhZQDlACsCbgBnAAABTFLWAugC5SFmdAABQVLcAuECciJyb3cAAKD4J+kkZ2h0QXJyb3cAoPon6SRnaHRBcnJvdwCg+SdpImdodAAAAUFU9gL7AnIicm93AACg0iFlAGUAAKCoInAAQQIGAwAAAAALA3Iicm93AACg0SFvJHduQXJyb3cAAKDVIWUlcnRpY2FsQmFyAACgJSJuAAADQUJMUlRhJAM2AzoDWgNxA3oDciJyb3cAAKGTIUJVLAMwA2EAcgAAoBMpcCNBcnJvdwAAoPUhciJldmUAEWPlIWZ00gJDAwAASwMAAFIDaSVnaHRWZWN0b3IAAKBQKWUkZVZlY3RvcgAAoF4p5SJjdG9yQqC9IWEAcgAAoFYpaSJnaHQA1AFiAwAAaQNlJGVWZWN0b3IAAKBfKeUiY3RvckKgwSFhAHIAAKBXKWUAZQBBoKQiciJyb3cAAKCnIXIAcgBvAPcAtAIAAWN0gwOHA3IA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YwAAoN8i4SFycnCgtiEAoD0pgKIqImJjZG9zACsVMBU6FT4VQRVyImNhcAAAoEgqAAFhdTQVNxVwAACgRipwAACgSipvAHQAAKCNInIAAKBFKgDgKiIA/gACYWxydksVURVuFXMVcgByAG2gtyEAoDwpeQCAAWV2dwBYFWUVaRVxAHACXxUAAAAAYxVyAGUA4wAXFXUA4wAZFWUAZQAAoM4iZSJkZ2UAAKDPImUAbgA7gKQApEBlI2Fycm93AAABbHJ7FX8V5SFmdACgtiFpImdodAAAoLchZQDkAG0VAAFjaYsVkRVvAG4AaQBuAPQAkwFuAHQAAKAxImwiY3R5AACgLSOACUFIYWJjZGVmaGlqbG9yc3R1d3oAuBW7Fb8V1RXgFegV+RUKFhUWHxZUFlcWZRbFFtsW7xb7FgUXChdyAPIAtAJhAHIAAKBlKQACZ2xyc8YVyhXOFdAV5yFlcgCgICDlIXRoAKA4IfIA9QxoAHagECAAoKMiawHZFd4VYSJyb3cAAKAPKWEA4wBfAgABYXnkFecV8iFvbg9hNGQAoUYhYW/tFfQVAAFnciEC8RVyAACgyiF0InNlcQAAoHcqgAFnbG0A/xUCFgUWO4CwALBAdABhALRjcCJ0eXYAAKCxKQABaXIOFhIW8yFodACgfykA4DXYId1hAHIAAAFschsWHRYAoMMhAKDCIYACYWVnc3YAKBauAjYWOhY+Fm0AAKHEIm9zLhY0Fm4AZABzoMQi9SFpdACgZiZhIm1tYQDdY2kAbgAAoPIiAKH3AGlvQxZRFmQAZQAAgfcAO29KFksW90BuI3RpbWVzAACgxyJuAPgAUBZjAHkAUmRjAG8CXhYAAAAAYhZyAG4AAKAeI28AcAAAoA0jgAJscHR1dwBuFnEWdRaSFp4W7CFhciRgZgAA4DXYVd0AotkCZW1wc30WhBaJFo0WcQBkoFAibwB0AACgUSJpIm51cwAAoDgi7CF1cwCgFCLxInVhcmUAoKEiYgBsAGUAYgBhAHIAdwBlAGQAZwDlANcAbgCAAWFkaAClFqoWtBZyAHIAbwD3APUMbwB3AG4AYQByAHIAbwB3APMA8xVhI3Jwb29uAAABbHK8FsAWZQBmAPQAHBZpAGcAaAD0AB4WYgHJFs8WawBhAHIAbwD3AJILbwLUFgAAAADYFnIAbgAAoB8jbwBwAACgDCOAAWNvdADhFukW7BYAAXJ55RboFgDgNdi53FVkbAAAoPYp8iFvaxFhAAFkcvMW9xZvAHQAAKDxImkA5qC/JVsSAAFhaP8WAhdyAPIANQNhAPIA1wvhIm5nbGUAoKYpAAFjaQ4XEBd5AF9k5yJyYXJyAKD/JwAJRGFjZGVmZ2xtbm9wcXJzdHV4MRc4F0YXWxcyBF4XaRd5F40XrBe0F78X2RcVGCEYLRg1GEAYAAFEbzUXgRZvAPQA+BUAAWNzPBdCF3UAdABlADuA6QDpQPQhZXIAoG4qAAJhaW95TRdQF1YXWhfyIW9uG2FyAGOgViI7gOoA6kDsIW9uAKBVIk1kbwB0ABdhAAFEcmIXZhdvAHQAAKBSIgDgNdgi3XKhmipuF3QXYQB2AGUAO4DoAOhAZKCWKm8AdAAAoJgqgKGZKmlscwCAF4UXhxfuInRlcnMAoOcjAKATIWSglSpvAHQAAKCXKoABYXBzAJMXlheiF2MAcgATYXQAeQBzogUinxcAAAAAoRdlAHQAAKAFInAAMaADIDMBqRerFwCgBCAAoAUgAAFnc7AXsRdLYXAAAKACIAABZ3C4F7sXbwBuABlhZgAA4DXYVt2AAWFscwDFF8sXzxdyAHOg1SJsAACg4yl1AHMAAKBxKmkAAKG1A2x21RfYF28AbgC1Y/VjAAJjc3V24BfoF/0XEBgAAWlv5BdWF3IAYwAAoFYiaQLuFwAAAADwF+0ADQThIW50AAFnbPUX+Rd0AHIAAKCWKuUhc3MAoJUqgAFhZWkAAxgGGAoYbABzAD1gcwB0AACgXyJ2AESgYSJEAACgeCrwImFyc2wAoOUpAAFEYRkYHRhvAHQAAKBTInIAcgAAoHEpgAFjZGkAJxgqGO0XcgAAoC8hbwD0AIwCAAFhaDEYMhi3YzuA8ADwQAABbXI5GD0YbAA7gOsA60BvAACgrCCAAWNpcABGGEgYSxhsACFgcwD0ACwEAAFlb08YVxhjAHQAYQB0AGkAbwDuABoEbgBlAG4AdABpAGEAbADlADME4Ql1GAAAgRgAAIMYiBgAAAAAoRilGAAAqhgAALsYvhjRGAAA1xgnGWwAbABpAG4AZwBkAG8AdABzAGUA8QBlF3kARGRtImFsZQAAoEAmgAFpbHIAjRiRGJ0Y7CFpZwCgA/tpApcYAAAAAJoYZwAAoAD7aQBnAACgBPsA4DXYI93sIWlnAKAB++whaWcA4GYAagCAAWFsdACvGLIYthh0AACgbSZpAGcAAKAC+24AcwAAoLElbwBmAJJh8AHCGAAAxhhmAADgNdhX3QABYWvJGMwYbADsAGsEdqDUIgCg2SphI3J0aW50AACgDSoAAWFv2hgiGQABY3PeGB8ZsQPnGP0YBRkSGRUZAAAdGbID7xjyGPQY9xj5GAAA+xg7gL0AvUAAoFMhO4C8ALxAAKBVIQCgWSEAoFshswEBGQAAAxkAoFQhAKBWIbQCCxkOGQAAAAAQGTuAvgC+QACgVyEAoFwhNQAAoFghtgEZGQAAGxkAoFohAKBdITgAAKBeIWwAAKBEIHcAbgAAoCIjYwByAADgNdi73IAIRWFiY2RlZmdpamxub3JzdHYARhlKGVoZXhlmGWkZkhmWGZkZnRmgGa0ZxhnLGc8Z4BkjGmygZyIAoIwqgAFjbXAAUBlTGVgZ9SF0ZfVhbQBhAOSgswM6FgCghipyImV2ZQAfYQABaXliGWUZcgBjAB1hM2RvAHQAIWGAoWUibHFzAMYEcBl6GfGhZSLOBAAAdhlsAGEAbgD0AN8EgKF+KmNkbACBGYQZjBljAACgqSpvAHQAb6CAKmyggioAoIQqZeDbIgD+cwAAoJQqcgAA4DXYJN3noGsirATtIWVsAKA3IWMAeQBTZIChdyJFYWoApxmpGasZAKCSKgCgpSoAoKQqAAJFYWVztBm2Gb0ZwhkAoGkicABwoIoq8iFveACgiipxoIgq8aCIKrUZaQBtAACg5yJwAGYAAOA12FjdYQB2AOUAYwIAAWNp0xnWGXIAAKAKIW0AAKFzImVs3BneGQCgjioAoJAqAIM+ADtjZGxxco0E6xn0GfgZ/BkBGgABY2nvGfEZAKCnKnIAAKB6Km8AdAAAoNci0CFhcgCglSl1ImVzdAAAoHwqgAJhZGVscwAKGvQZFhrVBCAa8AEPGgAAFBpwAHIAbwD4AFkZcgAAoHgpcQAAAWxxxAQbGmwAZQBzAPMASRlpAO0A5AQAAWVuJxouGnIjdG5lcXEAAOBpIgD+xQAsGgAFQWFiY2Vma29zeUAaQxpmGmoabRqDGocalhrCGtMacgDyAMwCAAJpbG1yShpOGlAaVBpyAHMA8ABxD2YAvWBpAGwA9AASBQABZHJYGlsaYwB5AEpkAKGUIWN3YBpkGmkAcgAAoEgpAKCtIWEAcgAAoA8h6SFyYyVhgAFhbHIAcxp7Gn8a8iF0c3WgZSZpAHQAAKBlJuwhaXAAoCYg4yFvbgCguSJyAADgNdgl3XMAAAFld4wakRphInJvdwAAoCUpYSJyb3cAAKAmKYACYW1vcHIAnxqjGqcauhq+GnIAcgAAoP8h9CFodACgOyJrAAABbHKsGrMaZSRmdGFycm93AACgqSHpJGdodGFycm93AKCqIWYAAOA12Fnd4iFhcgCgFSCAAWNsdADIGswa0BpyAADgNdi93GEAcwDoAGka8iFvaydhAAFicNca2xr1IWxsAKBDIOghZW4AoBAg4Qr2GgAA/RoAAAgbExsaGwAAIRs7GwAAAAA+G2IbmRuVG6sbAACyG80b0htjAHUAdABlADuA7QDtQAChYyBpeQEbBhtyAGMAO4DuAO5AOGQAAWN4CxsNG3kANWRjAGwAO4ChAKFAAAFmcssCFhsA4DXYJt1yAGEAdgBlADuA7ADsQIChSCFpbm8AJxsyGzYbAAFpbisbLxtuAHQAAKAMKnQAAKAtIuYhaW4AoNwpdABhAACgKSHsIWlnM2GAAWFvcABDG1sbXhuAAWNndABJG0sbWRtyACthgAFlbHAAcQVRG1UbaQBuAOUAyAVhAHIA9AByBWgAMWFmAACgtyJlAGQAtWEAoggiY2ZvdGkbbRt1G3kb4SFyZQCgBSFpAG4AdKAeImkAZQAAoN0pZABvAPQAWxsAoisiY2VscIEbhRuPG5QbYQBsAACguiIAAWdyiRuNG2UAcgDzACMQ4wCCG2EicmhrAACgFyryIW9kAKA8KgACY2dwdJ8boRukG6gbeQBRZG8AbgAvYWYAAOA12FrdYQC5Y3UAZQBzAHQAO4C/AL9AAAFjabUbuRtyAADgNdi+3G4AAKIIIkVkc3bCG8QbyBvQAwCg+SJvAHQAAKD1Inag9CIAoPMiaaBiIOwhZGUpYesB1hsAANkbYwB5AFZkbAA7gO8A70AAA2NmbW9zdeYb7hvyG/Ub+hsFHAABaXnqG+0bcgBjADVhOWRyAADgNdgn3eEhdGg3YnAAZgAA4DXYW93jAf8bAAADHHIAAOA12L/c8iFjeVhk6yFjeVRkAARhY2ZnaGpvcxUcGhwiHCYcKhwtHDAcNRzwIXBhdqC6A/BjAAFleR4cIRzkIWls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ZmdobG1vcHJzdHV3CiwNLBEsHSwnLDEsQCxLLFIsYix6LIQsjyzLLOgs7Sz/LAotcgDyAAkDYQByAACgYykAAWNyFSwbLHUAdABlADuA+gD6QPIACQ1yAOMBIywAACUseQBeZHYAZQBtYQABaXkrLDAscgBjADuA+wD7QENkgAFhYmgANyw6LD0scgDyANEO7CFhY3FhYQDyAOAOAAFpckQsSCzzIWh0AKB+KQDgNdgy3XIAYQB2AGUAO4D5APlAYQFWLF8scgAAAWxyWixcLACgvyEAoL4hbABrAACggCUAAWN0Zix2LG8CbCwAAAAAcyxyAG4AZaAcI3IAAKAcI28AcAAAoA8jcgBpAACg+CUAAWFsfiyBLGMAcgBrYTuAqACoQAABZ3CILIssbwBuAHNhZgAA4DXYZt0AA2FkaGxzdZksniynLLgsuyzFLHIAcgBvAPcACQ1vAHcAbgBhAHIAcgBvAPcA2A5hI3Jwb29uAAABbHKvLLMsZQBmAPQAWyxpAGcAaAD0AF0sdQDzAKYOaQAAocUDaGzBLMIs0mNvAG4AxWPwI2Fycm93cwCgyCGAAWNpdADRLOEs5CxvAtcsAAAAAN4scgBuAGWgHSNyAACgHSNvAHAAAKAOI24AZwBvYXIAaQAAoPklYwByAADgNdjK3IABZGlyAPMs9yz6LG8AdAAAoPAi7CFkZWlhaQBmoLUlAKC0JQABYW0DLQYtcgDyAMosbAA7gPwA/EDhIm5nbGUAoKcpgAdBQkRhY2RlZmxub3Byc3oAJy0qLTAtNC2bLZ0toS2/LcMtxy3TLdgt3C3gLfwtcgDyABADYQByAHag6CoAoOkqYQBzAOgA/gIAAW5yOC08LechcnQAoJwpgANla25wcnN0AJkpSC1NLVQtXi1iLYItYQBwAHAA4QAaHG8AdABoAGkAbgDnAKEXgAFoaXIAoSmzJFotbwBwAPQAdCVooJUh7wD4JgABaXVmLWotZwBtAOEAuygAAWJwbi14LXMjZXRuZXEAceCKIgD+AODLKgD+cyNldG5lcQBx4IsiAP4A4MwqAP4AAWhyhi2KLWUAdADhABIraSNhbmdsZQAAAWxyki2WLeUhZnQAoLIiaSJnaHQAAKCzInkAMmThIXNoAKCiIoABZWxyAKcttC24LWKiKCKuLQAAAACyLWEAcgAAoLsicQAAoFoi7CFpcACg7iIAAWJ0vC1eD2EA8gBfD3IAAOA12DPddAByAOkAlS1zAHUAAAFicM0t0C0A4IIi0iAA4IMi0iBwAGYAAOA12GfdcgBvAPAAWQt0AHIA6QCaLQABY3XkLegtcgAA4DXYy9wAAWJw7C30LW4AAAFFZXUt8S0A4IoiAP5uAAABRWV/LfktAOCLIgD+6SJnemFnAKCaKYADY2Vmb3BycwANLhAuJS4pLiMuLi40LukhcmN1YQABZGkULiEuAAFiZxguHC5hAHIAAKBfKmUAcaAnIgCgWSLlIXJwAKAYIXIAAOA12DTdcABmAADgNdho3WWgQCJhAHQA6ABqD2MAcgAA4DXYzNzjCuQRUC4AAFQuAABYLmIuAAAAAGMubS5wLnQuAAAAAIguki4AAJouJxIqEnQAcgDpAB0ScgAA4DXYNd0AAUFhWy5eLnIA8gDnAnIA8gCTB75jAAFBYWYuaS5yAPIA4AJyAPIAjAdhAPAAeh5pAHMAAKD7IoABZHB0APgReS6DLgABZmx9LoAuAOA12GnddQDzAP8RaQBtAOUABBIAAUFhiy6OLnIA8gDuAnIA8gCaBwABY3GVLgoScgAA4DXYzdwAAXB0nS6hLmwAdQDzACUScgDpACASAARhY2VmaW9zdbEuvC7ELsguzC7PLtQu2S5jAAABdXm2LrsudABlADuA/QD9QE9kAAFpecAuwy5yAGMAd2FLZG4AO4ClAKVAcgAA4DXYNt1jAHkAV2RwAGYAAOA12GrdYwByAADgNdjO3AABY23dLt8ueQBOZGwAO4D/AP9AAAVhY2RlZmhpb3N38y73Lv8uAi8MLxAvEy8YLx0vIi9jInV0ZQB6YQABYXn7Lv4u8iFvbn5hN2RvAHQAfGEAAWV0Bi8KL3QAcgDmAB8QYQC2Y3IAAOA12DfdYwB5ADZk5yJyYXJyAKDdIXAAZgAA4DXYa91jAHIAAOA12M/cAAFqbiYvKC8AoA0gagAAoAwg");
701
- var V;
702
- (function(e) {
703
- e[e.VALUE_LENGTH = 49152] = "VALUE_LENGTH", e[e.FLAG13 = 8192] = "FLAG13", e[e.BRANCH_LENGTH = 8064] = "BRANCH_LENGTH", e[e.JUMP_TABLE = 127] = "JUMP_TABLE";
704
- })(V || (V = {}));
705
- var Z;
706
- (function(e) {
707
- e[e.NUM = 35] = "NUM", e[e.SEMI = 59] = "SEMI", e[e.EQUALS = 61] = "EQUALS", e[e.ZERO = 48] = "ZERO", e[e.NINE = 57] = "NINE", e[e.LOWER_A = 97] = "LOWER_A", e[e.LOWER_F = 102] = "LOWER_F", e[e.LOWER_X = 120] = "LOWER_X", e[e.LOWER_Z = 122] = "LOWER_Z", e[e.UPPER_A = 65] = "UPPER_A", e[e.UPPER_F = 70] = "UPPER_F", e[e.UPPER_Z = 90] = "UPPER_Z";
708
- })(Z || (Z = {}));
709
- const IA = 32;
710
- function Ot(e) {
711
- return e >= Z.ZERO && e <= Z.NINE;
712
- }
713
- function Qr(e) {
714
- return e >= Z.UPPER_A && e <= Z.UPPER_F || e >= Z.LOWER_A && e <= Z.LOWER_F;
715
- }
716
- function Fr(e) {
717
- return e >= Z.UPPER_A && e <= Z.UPPER_Z || e >= Z.LOWER_A && e <= Z.LOWER_Z || Ot(e);
718
- }
719
- function Kr(e) {
720
- return e === Z.EQUALS || Fr(e);
721
- }
722
- var O;
723
- (function(e) {
724
- e[e.EntityStart = 0] = "EntityStart", e[e.NumericStart = 1] = "NumericStart", e[e.NumericDecimal = 2] = "NumericDecimal", e[e.NumericHex = 3] = "NumericHex", e[e.NamedEntity = 4] = "NamedEntity";
725
- })(O || (O = {}));
726
- var De;
727
- (function(e) {
728
- e[e.Legacy = 0] = "Legacy", e[e.Strict = 1] = "Strict", e[e.Attribute = 2] = "Attribute";
729
- })(De || (De = {}));
730
- class Sr {
731
- constructor(t, A, n) {
732
- this.decodeTree = t, this.emitCodePoint = A, this.errors = n, this.state = O.EntityStart, this.consumed = 1, this.result = 0, this.treeIndex = 0, this.excess = 1, this.decodeMode = De.Strict;
733
- }
734
- /** Resets the instance to make it reusable. */
735
- startEntity(t) {
736
- this.decodeMode = t, this.state = O.EntityStart, this.result = 0, this.treeIndex = 0, this.excess = 1, this.consumed = 1;
737
- }
738
- /**
739
- * Write an entity to the decoder. This can be called multiple times with partial entities.
740
- * If the entity is incomplete, the decoder will return -1.
741
- *
742
- * Mirrors the implementation of `getDecoder`, but with the ability to stop decoding if the
743
- * entity is incomplete, and resume when the next string is written.
744
- *
745
- * @param input The string containing the entity (or a continuation of the entity).
746
- * @param offset The offset at which the entity begins. Should be 0 if this is not the first call.
747
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
748
- */
749
- write(t, A) {
750
- switch (this.state) {
751
- case O.EntityStart:
752
- return t.charCodeAt(A) === Z.NUM ? (this.state = O.NumericStart, this.consumed += 1, this.stateNumericStart(t, A + 1)) : (this.state = O.NamedEntity, this.stateNamedEntity(t, A));
753
- case O.NumericStart:
754
- return this.stateNumericStart(t, A);
755
- case O.NumericDecimal:
756
- return this.stateNumericDecimal(t, A);
757
- case O.NumericHex:
758
- return this.stateNumericHex(t, A);
759
- case O.NamedEntity:
760
- return this.stateNamedEntity(t, A);
761
- }
762
- }
763
- /**
764
- * Switches between the numeric decimal and hexadecimal states.
765
- *
766
- * Equivalent to the `Numeric character reference state` in the HTML spec.
767
- *
768
- * @param input The string containing the entity (or a continuation of the entity).
769
- * @param offset The current offset.
770
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
771
- */
772
- stateNumericStart(t, A) {
773
- return A >= t.length ? -1 : (t.charCodeAt(A) | IA) === Z.LOWER_X ? (this.state = O.NumericHex, this.consumed += 1, this.stateNumericHex(t, A + 1)) : (this.state = O.NumericDecimal, this.stateNumericDecimal(t, A));
774
- }
775
- /**
776
- * Parses a hexadecimal numeric entity.
777
- *
778
- * Equivalent to the `Hexademical character reference state` in the HTML spec.
779
- *
780
- * @param input The string containing the entity (or a continuation of the entity).
781
- * @param offset The current offset.
782
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
783
- */
784
- stateNumericHex(t, A) {
785
- for (; A < t.length; ) {
786
- const n = t.charCodeAt(A);
787
- if (Ot(n) || Qr(n)) {
788
- const r = n <= Z.NINE ? n - Z.ZERO : (n | IA) - Z.LOWER_A + 10;
789
- this.result = this.result * 16 + r, this.consumed++, A++;
790
- } else
791
- return this.emitNumericEntity(n, 3);
792
- }
793
- return -1;
794
- }
795
- /**
796
- * Parses a decimal numeric entity.
797
- *
798
- * Equivalent to the `Decimal character reference state` in the HTML spec.
799
- *
800
- * @param input The string containing the entity (or a continuation of the entity).
801
- * @param offset The current offset.
802
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
803
- */
804
- stateNumericDecimal(t, A) {
805
- for (; A < t.length; ) {
806
- const n = t.charCodeAt(A);
807
- if (Ot(n))
808
- this.result = this.result * 10 + (n - Z.ZERO), this.consumed++, A++;
809
- else
810
- return this.emitNumericEntity(n, 2);
811
- }
812
- return -1;
813
- }
814
- /**
815
- * Validate and emit a numeric entity.
816
- *
817
- * Implements the logic from the `Hexademical character reference start
818
- * state` and `Numeric character reference end state` in the HTML spec.
819
- *
820
- * @param lastCp The last code point of the entity. Used to see if the
821
- * entity was terminated with a semicolon.
822
- * @param expectedLength The minimum number of characters that should be
823
- * consumed. Used to validate that at least one digit
824
- * was consumed.
825
- * @returns The number of characters that were consumed.
826
- */
827
- emitNumericEntity(t, A) {
828
- var n;
829
- if (this.consumed <= A)
830
- return (n = this.errors) === null || n === void 0 || n.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
831
- if (t === Z.SEMI)
832
- this.consumed += 1;
833
- else if (this.decodeMode === De.Strict)
834
- return 0;
835
- return this.emitCodePoint(vr(this.result), this.consumed), this.errors && (t !== Z.SEMI && this.errors.missingSemicolonAfterCharacterReference(), this.errors.validateNumericCharacterReference(this.result)), this.consumed;
836
- }
837
- /**
838
- * Parses a named entity.
839
- *
840
- * Equivalent to the `Named character reference state` in the HTML spec.
841
- *
842
- * @param input The string containing the entity (or a continuation of the entity).
843
- * @param offset The current offset.
844
- * @returns The number of characters that were consumed, or -1 if the entity is incomplete.
845
- */
846
- stateNamedEntity(t, A) {
847
- const { decodeTree: n } = this;
848
- let r = n[this.treeIndex], o = (r & V.VALUE_LENGTH) >> 14;
849
- for (; A < t.length; ) {
850
- if (o === 0 && r & V.FLAG13) {
851
- const i = (r & V.BRANCH_LENGTH) >> 7, c = r & V.JUMP_TABLE;
852
- if (A + i > t.length)
853
- return -1;
854
- if (t.charCodeAt(A) !== c)
855
- return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
856
- A++, this.excess++;
857
- const a = i - 1;
858
- for (let u = 1; u < i; u += 2) {
859
- const l = n[this.treeIndex + 1 + (u - 1 >> 1)], g = l & 255;
860
- if (t.charCodeAt(A) !== g)
861
- return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
862
- A++, this.excess++;
863
- const d = l >> 8 & 255;
864
- if (u + 1 < i) {
865
- if (t.charCodeAt(A) !== d)
866
- return this.result === 0 ? 0 : this.emitNotTerminatedNamedEntity();
867
- A++, this.excess++;
868
- }
869
- }
870
- this.treeIndex += 1 + (a + 1 >> 1), r = n[this.treeIndex], o = (r & V.VALUE_LENGTH) >> 14;
871
- }
872
- if (A >= t.length)
873
- break;
874
- const s = t.charCodeAt(A);
875
- if (s === Z.SEMI && o !== 0 && r & V.FLAG13)
876
- return this.emitNamedEntityData(this.treeIndex, o, this.consumed + this.excess);
877
- if (this.treeIndex = Yr(n, r, this.treeIndex + Math.max(1, o), s), this.treeIndex < 0)
878
- return this.result === 0 || // If we are parsing an attribute
879
- this.decodeMode === De.Attribute && // We shouldn't have consumed any characters after the entity,
880
- (o === 0 || // And there should be no invalid characters.
881
- Kr(s)) ? 0 : this.emitNotTerminatedNamedEntity();
882
- if (r = n[this.treeIndex], o = (r & V.VALUE_LENGTH) >> 14, o !== 0) {
883
- if (s === Z.SEMI)
884
- return this.emitNamedEntityData(this.treeIndex, o, this.consumed + this.excess);
885
- this.decodeMode !== De.Strict && !(r & V.FLAG13) && (this.result = this.treeIndex, this.consumed += this.excess, this.excess = 0);
886
- }
887
- A++, this.excess++;
888
- }
889
- return -1;
890
- }
891
- /**
892
- * Emit a named entity that was not terminated with a semicolon.
893
- *
894
- * @returns The number of characters consumed.
895
- */
896
- emitNotTerminatedNamedEntity() {
897
- var t;
898
- const { result: A, decodeTree: n } = this, r = (n[A] & V.VALUE_LENGTH) >> 14;
899
- return this.emitNamedEntityData(A, r, this.consumed), (t = this.errors) === null || t === void 0 || t.missingSemicolonAfterCharacterReference(), this.consumed;
900
- }
901
- /**
902
- * Emit a named entity.
903
- *
904
- * @param result The index of the entity in the decode tree.
905
- * @param valueLength The number of bytes in the entity.
906
- * @param consumed The number of characters consumed.
907
- *
908
- * @returns The number of characters consumed.
909
- */
910
- emitNamedEntityData(t, A, n) {
911
- const { decodeTree: r } = this;
912
- return this.emitCodePoint(A === 1 ? r[t] & ~(V.VALUE_LENGTH | V.FLAG13) : r[t + 1], n), A === 3 && this.emitCodePoint(r[t + 2], n), n;
913
- }
914
- /**
915
- * Signal to the parser that the end of the input was reached.
916
- *
917
- * Remaining data will be emitted and relevant errors will be produced.
918
- *
919
- * @returns The number of characters consumed.
920
- */
921
- end() {
922
- var t;
923
- switch (this.state) {
924
- case O.NamedEntity:
925
- return this.result !== 0 && (this.decodeMode !== De.Attribute || this.result === this.treeIndex) ? this.emitNotTerminatedNamedEntity() : 0;
926
- case O.NumericDecimal:
927
- return this.emitNumericEntity(0, 2);
928
- case O.NumericHex:
929
- return this.emitNumericEntity(0, 3);
930
- case O.NumericStart:
931
- return (t = this.errors) === null || t === void 0 || t.absenceOfDigitsInNumericCharacterReference(this.consumed), 0;
932
- case O.EntityStart:
933
- return 0;
934
- }
935
- }
936
- }
937
- function Gr(e) {
938
- let t = "";
939
- const A = new Sr(e, (n) => t += Dr(n));
940
- return function(r, o) {
941
- let s = 0, i = 0;
942
- for (; (i = r.indexOf("&", i)) >= 0; ) {
943
- t += r.slice(s, i), A.startEntity(o);
944
- const a = A.write(
945
- r,
946
- // Skip the "&"
947
- i + 1
948
- );
949
- if (a < 0) {
950
- s = i + A.end();
951
- break;
952
- }
953
- s = i + a, i = a === 0 ? s + 1 : s;
954
- }
955
- const c = t + r.slice(s);
956
- return t = "", c;
957
- };
958
- }
959
- function Yr(e, t, A, n) {
960
- const r = (t & V.BRANCH_LENGTH) >> 7, o = t & V.JUMP_TABLE;
961
- if (r === 0)
962
- return o !== 0 && n === o ? A : -1;
963
- if (o) {
964
- const a = n - o;
965
- return a < 0 || a >= r ? -1 : e[A + a] - 1;
966
- }
967
- const s = r + 1 >> 1;
968
- let i = 0, c = r - 1;
969
- for (; i <= c; ) {
970
- const a = i + c >>> 1, u = a >> 1, g = e[A + u] >> (a & 1) * 8 & 255;
971
- if (g < n)
972
- i = a + 1;
973
- else if (g > n)
974
- c = a - 1;
975
- else
976
- return e[A + s + a];
977
- }
978
- return -1;
979
- }
980
- const Wr = /* @__PURE__ */ Gr(Rr);
981
- function Nr(e, t = De.Legacy) {
982
- return Wr(e, t);
983
- }
984
- const xA = (e, t = []) => {
985
- const A = t.reduce(
986
- (n, r) => (n[r.id] = r.display_name, n),
987
- {}
988
- );
989
- return e.map((n) => {
990
- const r = n.learning_outcome_id === void 0 ? void 0 : String(n.learning_outcome_id);
991
- return {
992
- criterionUseRange: n.criterion_use_range,
993
- description: n.description,
994
- id: String(n.id),
995
- longDescription: n.long_description,
996
- learningOutcomeId: r,
997
- ignoreForScoring: n.ignore_for_scoring,
998
- points: n.points,
999
- masteryPoints: n.mastery_points,
1000
- isGenerated: n.generated,
1001
- outcome: r ? {
1002
- displayName: A[r],
1003
- title: n.description
1004
- } : void 0,
1005
- ratings: n.ratings.map((o) => ({
1006
- criterionId: String(o.criterion_id),
1007
- description: o.description,
1008
- id: String(o.id),
1009
- longDescription: o.long_description,
1010
- points: o.points
1011
- }))
1012
- };
1013
- });
1014
- }, Jr = (e, t = []) => {
1015
- const A = e.criteria ?? e.data ?? [];
1016
- return {
1017
- title: e.title,
1018
- criteria: xA(A, t),
1019
- ratingOrder: e.rating_order,
1020
- freeFormCriterionComments: e.free_form_criterion_comments,
1021
- pointsPossible: e.points_possible,
1022
- public: e.public,
1023
- criteriaCount: A.length,
1024
- hidePoints: e.hide_points,
1025
- id: String(e.id),
1026
- buttonDisplay: e.button_display,
1027
- unassessed: e.unassessed,
1028
- workflowState: e.workflow_state,
1029
- canUpdateRubric: e.can_update
1030
- };
1031
- }, xr = (e) => Nr(e ?? ""), Zr = (e) => ({
1032
- associationType: e.association_type,
1033
- associationId: String(e.association_id),
1034
- id: String(e.id),
1035
- hideOutcomeResults: e.hide_outcome_results,
1036
- hidePoints: e.hide_points,
1037
- hideScoreTotal: e.hide_score_total ?? !1,
1038
- useForGrading: e.use_for_grading,
1039
- canUpdate: e.can_update,
1040
- canDelete: e.can_delete
1041
- }), ms = (e) => e.replace(/<br\s*\/?>\r?\n?/gi, `
1042
- `).replace(/\r\n?/g, `
1043
- `).replace(/\n/g, "<br />"), Mr = (e) => e.replace(/<br\s*\/?>\r?\n?/gi, `
1044
- `), Hr = (e) => e.outcome ? e.longDescription : Mr(xr(e.longDescription ?? "")), Ur = Hr, It = (e) => Object.fromEntries(e.map((t, A) => [A, t])), ZA = Oe`
1045
- fragment RubricFormRubric on Rubric {
1046
- id: _id
1047
- title
1048
- hasRubricAssociations
1049
- rubricAssociationForContext {
1050
- associationId
1051
- associationType
1052
- hidePoints
1053
- hideScoreTotal
1054
- hideOutcomeResults
1055
- id: _id
1056
- useForGrading
1057
- }
1058
- buttonDisplay
1059
- ratingOrder
1060
- freeFormCriterionComments
1061
- workflowState
1062
- pointsPossible
1063
- unassessed
1064
- canUpdateRubric
1065
- criteria {
1066
- id: _id
1067
- ratings {
1068
- description
1069
- longDescription
1070
- points
1071
- id: _id
1072
- }
1073
- outcome {
1074
- displayName
1075
- title
1076
- }
1077
- learningOutcomeId
1078
- ignoreForScoring
1079
- masteryPoints
1080
- points
1081
- longDescription
1082
- description
1083
- criterionUseRange
1084
- }
1085
- }
1086
- `, kr = Oe`
1087
- query SharedCourseRubricQuery($courseId: ID!, $rubricId: ID!) {
1088
- course(id: $courseId) {
1089
- rubricsConnection(id: $rubricId) {
1090
- nodes {
1091
- ...RubricFormRubric
1092
- }
1093
- }
1094
- }
1095
- }
1096
- ${ZA}
1097
- `, Or = Oe`
1098
- query SharedAccountRubricQuery($accountId: ID!, $rubricId: ID!) {
1099
- account(id: $accountId) {
1100
- rubricsConnection(id: $rubricId) {
1101
- nodes {
1102
- ...RubricFormRubric
1103
- }
1104
- }
1105
- }
1106
- }
1107
- ${ZA}
1108
- `, Xr = Oe`
1109
- mutation SubmitRubricGenerateFeedback(
1110
- $courseId: ID!
1111
- $feedbackType: AiFeedbackTypeEnum!
1112
- $responseId: String!
1113
- $comment: String
1114
- ) {
1115
- submitRubricGenerateFeedback(
1116
- input: {
1117
- courseId: $courseId
1118
- feedbackType: $feedbackType
1119
- responseId: $responseId
1120
- comment: $comment
1121
- }
1122
- ) {
1123
- responseId
1124
- errors {
1125
- message
1126
- attribute
1127
- }
1128
- }
1129
- }
1130
- `, Lr = Oe`
1131
- mutation SubmitRubricRegenerateCriteriaFeedback(
1132
- $courseId: ID!
1133
- $feedbackType: AiFeedbackTypeEnum!
1134
- $responseId: String!
1135
- $comment: String
1136
- ) {
1137
- submitRubricRegenerateCriteriaFeedback(
1138
- input: {
1139
- courseId: $courseId
1140
- feedbackType: $feedbackType
1141
- responseId: $responseId
1142
- comment: $comment
1143
- }
1144
- ) {
1145
- responseId
1146
- errors {
1147
- message
1148
- attribute
1149
- }
1150
- }
1151
- }
1152
- `, jr = Oe`
1153
- mutation SubmitRubricRegenerateCriterionFeedback(
1154
- $courseId: ID!
1155
- $feedbackType: AiFeedbackTypeEnum!
1156
- $responseId: String!
1157
- $comment: String
1158
- ) {
1159
- submitRubricRegenerateCriterionFeedback(
1160
- input: {
1161
- courseId: $courseId
1162
- feedbackType: $feedbackType
1163
- responseId: $responseId
1164
- comment: $comment
1165
- }
1166
- ) {
1167
- responseId
1168
- errors {
1169
- message
1170
- attribute
1171
- }
1172
- }
1173
- }
1174
- `, zt = f.object({
1175
- id: f.coerce.string(),
1176
- workflow_state: f.enum(["queued", "running", "failed", "completed"]),
1177
- message: f.string().nullable().optional(),
1178
- completion: f.number().nullable().optional(),
1179
- results: f.unknown().nullable().optional()
1180
- }), Tr = /* @__PURE__ */ new Set(["completed", "failed"]), Pr = (e) => Tr.has(e);
1181
- async function zr(e, t) {
1182
- const { data: A } = await yt(
1183
- { path: `/api/v1/progress/${e}`, signal: t },
1184
- zt
1185
- );
1186
- return A;
1187
- }
1188
- function Bs({ progressId: e, pollIntervalMs: t = 1e3 }) {
1189
- return KA({
1190
- queryKey: ["rubrics-progress", e],
1191
- queryFn: ({ signal: A }) => zr(e, A),
1192
- enabled: e != null,
1193
- retry: 2,
1194
- refetchInterval: (A) => {
1195
- var r;
1196
- if (A.state.status === "error") return !1;
1197
- const n = (r = A.state.data) == null ? void 0 : r.workflow_state;
1198
- return n && Pr(n) ? !1 : t;
1199
- }
1200
- });
1201
- }
1202
- const Vr = f.object({
1203
- criterion_id: f.string(),
1204
- description: f.string(),
1205
- id: f.string(),
1206
- long_description: f.string(),
1207
- points: f.number()
1208
- }), pA = f.object({
1209
- criterion_use_range: f.boolean(),
1210
- description: f.string(),
1211
- id: f.string(),
1212
- learning_outcome_id: f.string().optional(),
1213
- long_description: f.string(),
1214
- ignore_for_scoring: f.boolean().optional(),
1215
- mastery_points: f.number().optional(),
1216
- points: f.number(),
1217
- generated: f.boolean().optional(),
1218
- ratings: f.array(Vr)
1219
- }), _r = f.object({
1220
- title: f.string(),
1221
- button_display: f.string(),
1222
- criteria: f.array(pA).optional(),
1223
- data: f.array(pA).optional(),
1224
- hide_points: f.boolean(),
1225
- id: f.coerce.string(),
1226
- rating_order: f.string(),
1227
- free_form_criterion_comments: f.boolean(),
1228
- points_possible: f.number(),
1229
- public: f.boolean(),
1230
- unassessed: f.boolean().optional(),
1231
- workflow_state: f.string(),
1232
- can_update: f.boolean().optional(),
1233
- permissions: f.object({ update: f.boolean().optional() }).optional(),
1234
- association_count: f.number().optional()
1235
- }), qr = f.object({
1236
- association_type: f.enum(["Assignment", "Account", "Course"]),
1237
- association_id: f.coerce.string(),
1238
- id: f.coerce.string(),
1239
- use_for_grading: f.boolean(),
1240
- hide_points: f.boolean(),
1241
- hide_score_total: f.boolean(),
1242
- hide_outcome_results: f.boolean(),
1243
- can_update: f.boolean().optional(),
1244
- can_delete: f.boolean().optional(),
1245
- permissions: f.object({ update: f.boolean().optional(), delete: f.boolean().optional() }).optional()
1246
- }), $r = f.object({
1247
- rubric: _r,
1248
- rubric_association: qr.optional(),
1249
- error: f.unknown().optional()
1250
- }), eo = async (e, t) => {
1251
- var F, K, j;
1252
- const {
1253
- id: A,
1254
- title: n,
1255
- hidePoints: r,
1256
- freeFormCriterionComments: o,
1257
- accountId: s,
1258
- courseId: i,
1259
- ratingOrder: c,
1260
- buttonDisplay: a,
1261
- workflowState: u,
1262
- hideOutcomeResults: l,
1263
- hideScoreTotal: g,
1264
- useForGrading: d,
1265
- rubricAssociationId: p,
1266
- skipUpdatingPointsPossible: h
1267
- } = e, b = `${s ? `/accounts/${s}` : `/courses/${i}`}/rubrics/${A ?? ""}`, m = e.associationType === "Assignment", C = A ? "PATCH" : "POST", B = It(
1268
- e.criteria.map((N) => {
1269
- var k, le;
1270
- return {
1271
- id: N.id,
1272
- description: N.description,
1273
- long_description: Ur(N),
1274
- points: N.points,
1275
- outcome: {
1276
- display_name: (k = N.outcome) == null ? void 0 : k.displayName,
1277
- title: (le = N.outcome) == null ? void 0 : le.title
1278
- },
1279
- learning_outcome_id: N.learningOutcomeId,
1280
- ignore_for_scoring: N.ignoreForScoring,
1281
- mastery_points: N.masteryPoints,
1282
- criterion_use_range: N.criterionUseRange,
1283
- generated: N.isGenerated,
1284
- ratings: It(
1285
- N.ratings.map((ie) => ({
1286
- description: ie.description,
1287
- long_description: ie.longDescription,
1288
- points: ie.points,
1289
- id: ie.id
1290
- }))
1291
- )
1292
- };
1293
- })
1294
- );
1295
- let D = e.associationTypeId;
1296
- if (D || (e.associationType === "Assignment" ? D = t : e.associationType === "Course" ? D = i : e.associationType === "Account" && (D = s)), !D)
1297
- throw new Error("Missing rubric association type ID");
1298
- const { data: R } = await yt(
1299
- {
1300
- path: b,
1301
- method: C,
1302
- params: m ? { rubric_association_id: p } : void 0,
1303
- body: {
1304
- _method: C,
1305
- rubric: {
1306
- title: n.trim(),
1307
- hide_points: r,
1308
- free_form_criterion_comments: o ? "1" : "0",
1309
- criteria: B,
1310
- button_display: a,
1311
- rating_order: c,
1312
- workflow_state: u
1313
- },
1314
- rubric_association_id: p,
1315
- rubric_association: {
1316
- id: p,
1317
- association_id: D,
1318
- association_type: e.associationType,
1319
- purpose: e.associationType === "Assignment" ? "grading" : "bookmark",
1320
- hide_points: r ? "1" : "0",
1321
- hide_outcome_results: l ? "1" : "0",
1322
- hide_score_total: g ? "1" : "0",
1323
- use_for_grading: d ? "1" : "0"
1324
- },
1325
- skip_updating_points_possible: h === void 0 ? void 0 : String(h)
1326
- }
1327
- },
1328
- $r
1329
- ), { rubric: w, rubric_association: y, error: W } = R;
1330
- if (W)
1331
- throw new Error("Failed to save rubric");
1332
- return {
1333
- rubric: {
1334
- ...Jr(w),
1335
- canUpdate: (F = w.permissions) == null ? void 0 : F.update,
1336
- association_count: w.association_count
1337
- },
1338
- rubricAssociation: y ? {
1339
- ...Zr(y),
1340
- canUpdate: (K = y.permissions) == null ? void 0 : K.update,
1341
- canDelete: (j = y.permissions) == null ? void 0 : j.delete
1342
- } : void 0
1343
- };
1344
- }, to = f.object({
1345
- criterion_id: f.string(),
1346
- description: f.string(),
1347
- id: f.string(),
1348
- long_description: f.string(),
1349
- points: f.number()
1350
- }), Ao = f.object({
1351
- criterion_use_range: f.boolean(),
1352
- description: f.string(),
1353
- id: f.string(),
1354
- learning_outcome_id: f.string().optional(),
1355
- long_description: f.string(),
1356
- ignore_for_scoring: f.boolean().optional(),
1357
- mastery_points: f.number().optional(),
1358
- points: f.number(),
1359
- generated: f.boolean().optional(),
1360
- ratings: f.array(to)
1361
- }), no = f.object({
1362
- criteria: f.array(Ao).optional(),
1363
- response_id: f.string().optional()
1364
- }), ws = (e) => {
1365
- const t = no.parse(e);
1366
- return {
1367
- criteria: xA(t.criteria ?? []),
1368
- responseId: t.response_id ?? null
1369
- };
1370
- }, ys = async (e, t, A) => {
1371
- const { data: n } = await yt(
1372
- {
1373
- path: `/courses/${e}/rubrics/llm_criteria`,
1374
- method: "POST",
1375
- body: {
1376
- rubric_association: {
1377
- association_id: t,
1378
- association_type: "Assignment"
1379
- },
1380
- generate_options: {
1381
- criteria_count: A.criteriaCount,
1382
- rating_count: A.ratingCount,
1383
- total_points: A.totalPoints,
1384
- use_range: A.useRange,
1385
- additional_prompt_info: A.additionalPromptInfo,
1386
- grade_level: A.gradeLevel,
1387
- standard: A.standard
1388
- }
1389
- }
1390
- },
1391
- zt
1392
- );
1393
- return n;
1394
- }, Ds = async (e, t, A, n, r, o) => {
1395
- const { data: s } = await yt(
1396
- {
1397
- path: `/courses/${e}/rubrics/llm_regenerate_criteria`,
1398
- method: "POST",
1399
- body: {
1400
- rubric_association: {
1401
- association_id: t,
1402
- association_type: "Assignment"
1403
- },
1404
- criteria: It(
1405
- A.map((i) => ({
1406
- id: i.id,
1407
- description: i.description,
1408
- long_description: i.longDescription,
1409
- points: i.points,
1410
- criterion_use_range: i.criterionUseRange,
1411
- learning_outcome_id: i.learningOutcomeId,
1412
- ignore_for_scoring: i.ignoreForScoring,
1413
- mastery_points: i.masteryPoints,
1414
- generated: i.isGenerated,
1415
- ratings: It(
1416
- i.ratings.map((c) => ({
1417
- id: c.id,
1418
- criterion_id: i.id,
1419
- description: c.description,
1420
- long_description: c.longDescription,
1421
- points: c.points
1422
- }))
1423
- )
1424
- }))
1425
- ),
1426
- generate_options: {
1427
- criteria_count: o == null ? void 0 : o.criteriaCount,
1428
- rating_count: o == null ? void 0 : o.ratingCount,
1429
- total_points: o == null ? void 0 : o.totalPoints,
1430
- use_range: o == null ? void 0 : o.useRange,
1431
- grade_level: o == null ? void 0 : o.gradeLevel,
1432
- standard: o == null ? void 0 : o.standard
1433
- },
1434
- regenerate_options: {
1435
- criterion_id: r,
1436
- additional_user_prompt: n
1437
- }
1438
- }
1439
- },
1440
- zt
1441
- );
1442
- return s;
1443
- }, Jt = {
1444
- GENERATE_CRITERIA: "generate-criteria",
1445
- REGENERATE_CRITERIA: "regenerate-criteria",
1446
- REGENERATE_CRITERION: "regenerate-criterion"
1447
- }, xt = { responseId: null, errors: null }, vs = async (e, t, A) => {
1448
- const n = (r) => ({
1449
- responseId: r.responseId ?? null,
1450
- errors: r.errors ?? null
1451
- });
1452
- switch (t) {
1453
- case Jt.GENERATE_CRITERIA: {
1454
- const r = await e(
1455
- Xr,
1456
- A
1457
- );
1458
- return r.submitRubricGenerateFeedback ? n(r.submitRubricGenerateFeedback) : xt;
1459
- }
1460
- case Jt.REGENERATE_CRITERIA: {
1461
- const r = await e(
1462
- Lr,
1463
- A
1464
- );
1465
- return r.submitRubricRegenerateCriteriaFeedback ? n(r.submitRubricRegenerateCriteriaFeedback) : xt;
1466
- }
1467
- case Jt.REGENERATE_CRITERION: {
1468
- const r = await e(
1469
- jr,
1470
- A
1471
- );
1472
- return r.submitRubricRegenerateCriterionFeedback ? n(r.submitRubricRegenerateCriterionFeedback) : xt;
1473
- }
1474
- }
1475
- }, ro = async ({
1476
- executeQuery: e,
1477
- rubricId: t,
1478
- accountId: A,
1479
- courseId: n
1480
- }) => {
1481
- if (!t) return null;
1482
- if (!A && !n)
1483
- throw new Error("Missing context for fetching rubric");
1484
- return A ? await oo(e, A, t) : await io(e, n, t);
1485
- }, oo = async (e, t, A) => {
1486
- var r, o;
1487
- const { account: n } = await e(Or, {
1488
- accountId: t,
1489
- rubricId: A
1490
- });
1491
- return ((o = (r = n == null ? void 0 : n.rubricsConnection) == null ? void 0 : r.nodes) == null ? void 0 : o[0]) ?? null;
1492
- }, io = async (e, t, A) => {
1493
- var r, o;
1494
- const { course: n } = await e(kr, {
1495
- courseId: t,
1496
- rubricId: A
1497
- });
1498
- return ((o = (r = n == null ? void 0 : n.rubricsConnection) == null ? void 0 : r.nodes) == null ? void 0 : o[0]) ?? null;
1499
- }, so = ({ accountId: e, courseId: t }) => e ? ["accountRubrics", e] : ["courseRubrics", t], co = ({
1500
- accountId: e,
1501
- assignmentId: t,
1502
- courseId: A,
1503
- queryKey: n,
1504
- rubricId: r,
1505
- rubricForm: o,
1506
- handleSaveSuccess: s
1507
- }) => {
1508
- const { translations: i } = wt(), { notify: c } = JA(), a = Bn(), {
1509
- isPending: u,
1510
- isSuccess: l,
1511
- isError: g,
1512
- mutate: d
1513
- } = wn({
1514
- mutationFn: async (p = {}) => eo({ ...o, ...p }, t),
1515
- mutationKey: ["save-rubric"],
1516
- onSuccess: (p) => {
1517
- c({ type: "success", message: i.rubricSaveSuccess }), s(p);
1518
- const h = so({ accountId: e, courseId: A });
1519
- a.invalidateQueries({ queryKey: n }, { cancelRefetch: !0 }), a.refetchQueries({ queryKey: h, type: "all" }), a.invalidateQueries(
1520
- { queryKey: [`rubric-preview-${r}`] },
1521
- { cancelRefetch: !0 }
1522
- );
1523
- }
1524
- });
1525
- return {
1526
- savePending: u,
1527
- saveSuccess: l,
1528
- saveError: g,
1529
- saveRubricMutation: d
1530
- };
1531
- }, Es = ({
1532
- rubricId: e,
1533
- accountId: t,
1534
- assignmentId: A,
1535
- assignmentPointsPossible: n,
1536
- courseId: r,
1537
- canManageRubrics: o,
1538
- rubric: s,
1539
- rubricAssociation: i,
1540
- onLoadRubric: c,
1541
- onSaveRubric: a
1542
- }) => {
1543
- var Qe;
1544
- const { translations: u } = wt(), { executeQuery: l } = JA(), g = A ? "Assignment" : t ? "Account" : "Course", [d, p] = U({
1545
- ...kt,
1546
- accountId: t,
1547
- courseId: r,
1548
- associationType: g
1549
- }), [h, I] = U(d), [b, m] = U({}), [C, B] = U(), D = !!A && A !== "", R = !e && !(s != null && s.id), w = G(d.criteria), y = G(a);
1550
- y.current = a;
1551
- const W = M(
1552
- (Q, x) => {
1553
- if (Q === "title") {
1554
- const v = hr((x == null ? void 0 : x.toString()) ?? ""), Fe = v === "required" ? u.rubricNameRequired : v === "tooLong" ? u.rubricNameTooLong : void 0;
1555
- if (m((ne) => ({
1556
- ...ne,
1557
- [Q]: { message: Fe }
1558
- })), v)
1559
- return !1;
1560
- }
1561
- return !0;
1562
- },
1563
- [u.rubricNameRequired, u.rubricNameTooLong]
1564
- ), F = M(
1565
- (Q, x) => {
1566
- p((v) => ({ ...v, [Q]: x })), W(Q, x);
1567
- },
1568
- [W]
1569
- ), K = ["fetch-rubric", e ?? "", t ?? "", r ?? ""], j = !((Qe = b.title) != null && Qe.message) && d.criteria.length > 0, N = J(
1570
- () => d.criteria.map(WA),
1571
- [d.criteria]
1572
- ), { data: k, isLoading: le, isError: ie, error: z, isSuccess: Ne } = KA({
1573
- queryKey: K,
1574
- queryFn: () => ro({ executeQuery: l, rubricId: e, accountId: t, courseId: r }),
1575
- enabled: !!e && o && !s
1576
- }), { savePending: se, saveError: ve, saveRubricMutation: Ee } = co({
1577
- accountId: t,
1578
- assignmentId: A,
1579
- courseId: r,
1580
- queryKey: K,
1581
- rubricId: e,
1582
- rubricForm: d,
1583
- handleSaveSuccess: B
1584
- }), T = (Q) => {
1585
- const x = d.criteria.filter((v) => v.id !== Q.id);
1586
- F("pointsPossible", fA(x)), F("criteria", x);
1587
- }, ce = (Q) => {
1588
- const x = Cr(w.current, Q);
1589
- F("pointsPossible", fA(x)), F("criteria", x);
1590
- }, fe = (Q, x) => {
1591
- p((v) => ({
1592
- ...v,
1593
- criteria: ar({ list: v.criteria, startIndex: Q, endIndex: x })
1594
- }));
1595
- }, Re = () => {
1596
- W("title", d.title) && (F("workflowState", "draft"), Ee({ workflowState: "draft" }));
1597
- }, _ = (Q) => {
1598
- W("title", d.title) && (Q !== void 0 && F("skipUpdatingPointsPossible", Q), F("workflowState", "active"), Ee({
1599
- workflowState: "active",
1600
- ...Q !== void 0 ? { skipUpdatingPointsPossible: Q } : {}
1601
- }));
1602
- };
1603
- return S(() => {
1604
- w.current = d.criteria;
1605
- }, [d.criteria]), S(() => {
1606
- if (!e) {
1607
- c == null || c(u.createLabel);
1608
- return;
1609
- }
1610
- if (k) {
1611
- const Q = { ...sr(k), accountId: t, courseId: r };
1612
- p(Q), I(Q), c == null || c(Q.title);
1613
- }
1614
- }, [t, r, k, e, c, u.createLabel]), S(() => {
1615
- if (s && i) {
1616
- const Q = {
1617
- ...cr(s, i),
1618
- accountId: t,
1619
- courseId: r
1620
- };
1621
- p(Q), I(Q);
1622
- }
1623
- }, [t, r, s, i]), S(() => {
1624
- if (C) {
1625
- const Q = d.skipUpdatingPointsPossible === !1;
1626
- y.current(C, Q);
1627
- }
1628
- }, [C]), {
1629
- rubricForm: d,
1630
- setRubricFormField: F,
1631
- validateField: W,
1632
- validationErrors: b,
1633
- formValid: j,
1634
- /**
1635
- * Always holds the latest criteria, for async callbacks (such as AI
1636
- * generation) that would otherwise read a stale render's list.
1637
- */
1638
- criteriaRef: w,
1639
- isNewRubric: R,
1640
- hasAssignment: D,
1641
- load: { data: k, isLoading: le, isError: ie, error: z, isSuccess: Ne },
1642
- savePending: se,
1643
- saveError: ve,
1644
- saveCriterion: ce,
1645
- deleteCriterion: T,
1646
- reorderCriteria: fe,
1647
- save: _,
1648
- saveAsDraft: Re,
1649
- isPristine: fr(d),
1650
- isDirty: pr(h, d),
1651
- criteriaValidationErrors: N,
1652
- criteriaValid: !N.some(NA),
1653
- saveAction: mr({
1654
- rubricForm: d,
1655
- hasAssignment: D,
1656
- assignmentPointsPossible: n,
1657
- rubric: s
1658
- })
1659
- };
1660
- };
1661
- function Rs() {
1662
- const { translations: e } = wt();
1663
- return M(
1664
- () => [
1665
- { id: "1", points: 4, description: e.ratingScaleExceeds, longDescription: "" },
1666
- { id: "2", points: 3, description: e.ratingScaleMastery, longDescription: "" },
1667
- { id: "3", points: 2, description: e.ratingScaleNear, longDescription: "" },
1668
- { id: "4", points: 1, description: e.ratingScaleBelow, longDescription: "" },
1669
- { id: "5", points: 0, description: e.ratingScaleNoEvidence, longDescription: "" }
1670
- ],
1671
- [
1672
- e.ratingScaleExceeds,
1673
- e.ratingScaleMastery,
1674
- e.ratingScaleNear,
1675
- e.ratingScaleBelow,
1676
- e.ratingScaleNoEvidence
1677
- ]
1678
- );
1679
- }
1680
- function ao() {
1681
- for (var e = arguments.length, t = new Array(e), A = 0; A < e; A++)
1682
- t[A] = arguments[A];
1683
- return J(
1684
- () => (n) => {
1685
- t.forEach((r) => r(n));
1686
- },
1687
- // eslint-disable-next-line react-hooks/exhaustive-deps
1688
- t
1689
- );
1690
- }
1691
- const Et = typeof window < "u" && typeof window.document < "u" && typeof window.document.createElement < "u";
1692
- function Xe(e) {
1693
- const t = Object.prototype.toString.call(e);
1694
- return t === "[object Window]" || // In Electron context the Window object serializes to [object global]
1695
- t === "[object global]";
1696
- }
1697
- function Vt(e) {
1698
- return "nodeType" in e;
1699
- }
1700
- function $(e) {
1701
- var t, A;
1702
- return e ? Xe(e) ? e : Vt(e) && (t = (A = e.ownerDocument) == null ? void 0 : A.defaultView) != null ? t : window : window;
1703
- }
1704
- function _t(e) {
1705
- const {
1706
- Document: t
1707
- } = $(e);
1708
- return e instanceof t;
1709
- }
1710
- function st(e) {
1711
- return Xe(e) ? !1 : e instanceof $(e).HTMLElement;
1712
- }
1713
- function MA(e) {
1714
- return e instanceof $(e).SVGElement;
1715
- }
1716
- function Le(e) {
1717
- return e ? Xe(e) ? e.document : Vt(e) ? _t(e) ? e : st(e) || MA(e) ? e.ownerDocument : document : document : document;
1718
- }
1719
- const he = Et ? Cn : S;
1720
- function qt(e) {
1721
- const t = G(e);
1722
- return he(() => {
1723
- t.current = e;
1724
- }), M(function() {
1725
- for (var A = arguments.length, n = new Array(A), r = 0; r < A; r++)
1726
- n[r] = arguments[r];
1727
- return t.current == null ? void 0 : t.current(...n);
1728
- }, []);
1729
- }
1730
- function lo() {
1731
- const e = G(null), t = M((n, r) => {
1732
- e.current = setInterval(n, r);
1733
- }, []), A = M(() => {
1734
- e.current !== null && (clearInterval(e.current), e.current = null);
1735
- }, []);
1736
- return [t, A];
1737
- }
1738
- function At(e, t) {
1739
- t === void 0 && (t = [e]);
1740
- const A = G(e);
1741
- return he(() => {
1742
- A.current !== e && (A.current = e);
1743
- }, t), A;
1744
- }
1745
- function ct(e, t) {
1746
- const A = G();
1747
- return J(
1748
- () => {
1749
- const n = e(A.current);
1750
- return A.current = n, n;
1751
- },
1752
- // eslint-disable-next-line react-hooks/exhaustive-deps
1753
- [...t]
1754
- );
1755
- }
1756
- function pt(e) {
1757
- const t = qt(e), A = G(null), n = M(
1758
- (r) => {
1759
- r !== A.current && (t == null || t(r, A.current)), A.current = r;
1760
- },
1761
- //eslint-disable-next-line
1762
- []
1763
- );
1764
- return [A, n];
1765
- }
1766
- function Xt(e) {
1767
- const t = G();
1768
- return S(() => {
1769
- t.current = e;
1770
- }, [e]), t.current;
1771
- }
1772
- let Zt = {};
1773
- function at(e, t) {
1774
- return J(() => {
1775
- if (t)
1776
- return t;
1777
- const A = Zt[e] == null ? 0 : Zt[e] + 1;
1778
- return Zt[e] = A, e + "-" + A;
1779
- }, [e, t]);
1780
- }
1781
- function HA(e) {
1782
- return function(t) {
1783
- for (var A = arguments.length, n = new Array(A > 1 ? A - 1 : 0), r = 1; r < A; r++)
1784
- n[r - 1] = arguments[r];
1785
- return n.reduce((o, s) => {
1786
- const i = Object.entries(s);
1787
- for (const [c, a] of i) {
1788
- const u = o[c];
1789
- u != null && (o[c] = u + e * a);
1790
- }
1791
- return o;
1792
- }, {
1793
- ...t
1794
- });
1795
- };
1796
- }
1797
- const ke = /* @__PURE__ */ HA(1), nt = /* @__PURE__ */ HA(-1);
1798
- function uo(e) {
1799
- return "clientX" in e && "clientY" in e;
1800
- }
1801
- function $t(e) {
1802
- if (!e)
1803
- return !1;
1804
- const {
1805
- KeyboardEvent: t
1806
- } = $(e.target);
1807
- return t && e instanceof t;
1808
- }
1809
- function go(e) {
1810
- if (!e)
1811
- return !1;
1812
- const {
1813
- TouchEvent: t
1814
- } = $(e.target);
1815
- return t && e instanceof t;
1816
- }
1817
- function Lt(e) {
1818
- if (go(e)) {
1819
- if (e.touches && e.touches.length) {
1820
- const {
1821
- clientX: t,
1822
- clientY: A
1823
- } = e.touches[0];
1824
- return {
1825
- x: t,
1826
- y: A
1827
- };
1828
- } else if (e.changedTouches && e.changedTouches.length) {
1829
- const {
1830
- clientX: t,
1831
- clientY: A
1832
- } = e.changedTouches[0];
1833
- return {
1834
- x: t,
1835
- y: A
1836
- };
1837
- }
1838
- }
1839
- return uo(e) ? {
1840
- x: e.clientX,
1841
- y: e.clientY
1842
- } : null;
1843
- }
1844
- const Ct = /* @__PURE__ */ Object.freeze({
1845
- Translate: {
1846
- toString(e) {
1847
- if (!e)
1848
- return;
1849
- const {
1850
- x: t,
1851
- y: A
1852
- } = e;
1853
- return "translate3d(" + (t ? Math.round(t) : 0) + "px, " + (A ? Math.round(A) : 0) + "px, 0)";
1854
- }
1855
- },
1856
- Scale: {
1857
- toString(e) {
1858
- if (!e)
1859
- return;
1860
- const {
1861
- scaleX: t,
1862
- scaleY: A
1863
- } = e;
1864
- return "scaleX(" + t + ") scaleY(" + A + ")";
1865
- }
1866
- },
1867
- Transform: {
1868
- toString(e) {
1869
- if (e)
1870
- return [Ct.Translate.toString(e), Ct.Scale.toString(e)].join(" ");
1871
- }
1872
- },
1873
- Transition: {
1874
- toString(e) {
1875
- let {
1876
- property: t,
1877
- duration: A,
1878
- easing: n
1879
- } = e;
1880
- return t + " " + A + "ms " + n;
1881
- }
1882
- }
1883
- }), CA = "a,frame,iframe,input:not([type=hidden]):not(:disabled),select:not(:disabled),textarea:not(:disabled),button:not(:disabled),*[tabindex]";
1884
- function ho(e) {
1885
- return e.matches(CA) ? e : e.querySelector(CA);
1886
- }
1887
- const fo = {
1888
- display: "none"
1889
- };
1890
- function Io(e) {
1891
- let {
1892
- id: t,
1893
- value: A
1894
- } = e;
1895
- return q.createElement("div", {
1896
- id: t,
1897
- style: fo
1898
- }, A);
1899
- }
1900
- function po(e) {
1901
- let {
1902
- id: t,
1903
- announcement: A,
1904
- ariaLiveType: n = "assertive"
1905
- } = e;
1906
- const r = {
1907
- position: "fixed",
1908
- top: 0,
1909
- left: 0,
1910
- width: 1,
1911
- height: 1,
1912
- margin: -1,
1913
- border: 0,
1914
- padding: 0,
1915
- overflow: "hidden",
1916
- clip: "rect(0 0 0 0)",
1917
- clipPath: "inset(100%)",
1918
- whiteSpace: "nowrap"
1919
- };
1920
- return q.createElement("div", {
1921
- id: t,
1922
- style: r,
1923
- role: "status",
1924
- "aria-live": n,
1925
- "aria-atomic": !0
1926
- }, A);
1927
- }
1928
- function Co() {
1929
- const [e, t] = U("");
1930
- return {
1931
- announce: M((n) => {
1932
- n != null && t(n);
1933
- }, []),
1934
- announcement: e
1935
- };
1936
- }
1937
- const UA = /* @__PURE__ */ ot(null);
1938
- function bo(e) {
1939
- const t = Ke(UA);
1940
- S(() => {
1941
- if (!t)
1942
- throw new Error("useDndMonitor must be used within a children of <DndContext>");
1943
- return t(e);
1944
- }, [e, t]);
1945
- }
1946
- function mo() {
1947
- const [e] = U(() => /* @__PURE__ */ new Set()), t = M((n) => (e.add(n), () => e.delete(n)), [e]);
1948
- return [M((n) => {
1949
- let {
1950
- type: r,
1951
- event: o
1952
- } = n;
1953
- e.forEach((s) => {
1954
- var i;
1955
- return (i = s[r]) == null ? void 0 : i.call(s, o);
1956
- });
1957
- }, [e]), t];
1958
- }
1959
- const Bo = {
1960
- draggable: `
1961
- To pick up a draggable item, press the space bar.
1962
- While dragging, use the arrow keys to move the item.
1963
- Press space again to drop the item in its new position, or press escape to cancel.
1964
- `
1965
- }, wo = {
1966
- onDragStart(e) {
1967
- let {
1968
- active: t
1969
- } = e;
1970
- return "Picked up draggable item " + t.id + ".";
1971
- },
1972
- onDragOver(e) {
1973
- let {
1974
- active: t,
1975
- over: A
1976
- } = e;
1977
- return A ? "Draggable item " + t.id + " was moved over droppable area " + A.id + "." : "Draggable item " + t.id + " is no longer over a droppable area.";
1978
- },
1979
- onDragEnd(e) {
1980
- let {
1981
- active: t,
1982
- over: A
1983
- } = e;
1984
- return A ? "Draggable item " + t.id + " was dropped over droppable area " + A.id : "Draggable item " + t.id + " was dropped.";
1985
- },
1986
- onDragCancel(e) {
1987
- let {
1988
- active: t
1989
- } = e;
1990
- return "Dragging was cancelled. Draggable item " + t.id + " was dropped.";
1991
- }
1992
- };
1993
- function yo(e) {
1994
- let {
1995
- announcements: t = wo,
1996
- container: A,
1997
- hiddenTextDescribedById: n,
1998
- screenReaderInstructions: r = Bo
1999
- } = e;
2000
- const {
2001
- announce: o,
2002
- announcement: s
2003
- } = Co(), i = at("DndLiveRegion"), [c, a] = U(!1);
2004
- if (S(() => {
2005
- a(!0);
2006
- }, []), bo(J(() => ({
2007
- onDragStart(l) {
2008
- let {
2009
- active: g
2010
- } = l;
2011
- o(t.onDragStart({
2012
- active: g
2013
- }));
2014
- },
2015
- onDragMove(l) {
2016
- let {
2017
- active: g,
2018
- over: d
2019
- } = l;
2020
- t.onDragMove && o(t.onDragMove({
2021
- active: g,
2022
- over: d
2023
- }));
2024
- },
2025
- onDragOver(l) {
2026
- let {
2027
- active: g,
2028
- over: d
2029
- } = l;
2030
- o(t.onDragOver({
2031
- active: g,
2032
- over: d
2033
- }));
2034
- },
2035
- onDragEnd(l) {
2036
- let {
2037
- active: g,
2038
- over: d
2039
- } = l;
2040
- o(t.onDragEnd({
2041
- active: g,
2042
- over: d
2043
- }));
2044
- },
2045
- onDragCancel(l) {
2046
- let {
2047
- active: g,
2048
- over: d
2049
- } = l;
2050
- o(t.onDragCancel({
2051
- active: g,
2052
- over: d
2053
- }));
2054
- }
2055
- }), [o, t])), !c)
2056
- return null;
2057
- const u = q.createElement(q.Fragment, null, q.createElement(Io, {
2058
- id: n,
2059
- value: r.draggable
2060
- }), q.createElement(po, {
2061
- id: i,
2062
- announcement: s
2063
- }));
2064
- return A ? Dn(u, A) : u;
2065
- }
2066
- var H;
2067
- (function(e) {
2068
- e.DragStart = "dragStart", e.DragMove = "dragMove", e.DragEnd = "dragEnd", e.DragCancel = "dragCancel", e.DragOver = "dragOver", e.RegisterDroppable = "registerDroppable", e.SetDroppableDisabled = "setDroppableDisabled", e.UnregisterDroppable = "unregisterDroppable";
2069
- })(H || (H = {}));
2070
- function bt() {
2071
- }
2072
- function Qs(e, t) {
2073
- return J(
2074
- () => ({
2075
- sensor: e,
2076
- options: t ?? {}
2077
- }),
2078
- // eslint-disable-next-line react-hooks/exhaustive-deps
2079
- [e, t]
2080
- );
2081
- }
2082
- function Fs() {
2083
- for (var e = arguments.length, t = new Array(e), A = 0; A < e; A++)
2084
- t[A] = arguments[A];
2085
- return J(
2086
- () => [...t].filter((n) => n != null),
2087
- // eslint-disable-next-line react-hooks/exhaustive-deps
2088
- [...t]
2089
- );
2090
- }
2091
- const ae = /* @__PURE__ */ Object.freeze({
2092
- x: 0,
2093
- y: 0
2094
- });
2095
- function Do(e, t) {
2096
- return Math.sqrt(Math.pow(e.x - t.x, 2) + Math.pow(e.y - t.y, 2));
2097
- }
2098
- function vo(e, t) {
2099
- let {
2100
- data: {
2101
- value: A
2102
- }
2103
- } = e, {
2104
- data: {
2105
- value: n
2106
- }
2107
- } = t;
2108
- return A - n;
2109
- }
2110
- function Eo(e, t) {
2111
- let {
2112
- data: {
2113
- value: A
2114
- }
2115
- } = e, {
2116
- data: {
2117
- value: n
2118
- }
2119
- } = t;
2120
- return n - A;
2121
- }
2122
- function bA(e) {
2123
- let {
2124
- left: t,
2125
- top: A,
2126
- height: n,
2127
- width: r
2128
- } = e;
2129
- return [{
2130
- x: t,
2131
- y: A
2132
- }, {
2133
- x: t + r,
2134
- y: A
2135
- }, {
2136
- x: t,
2137
- y: A + n
2138
- }, {
2139
- x: t + r,
2140
- y: A + n
2141
- }];
2142
- }
2143
- function kA(e, t) {
2144
- if (!e || e.length === 0)
2145
- return null;
2146
- const [A] = e;
2147
- return A[t];
2148
- }
2149
- const Ro = (e) => {
2150
- let {
2151
- collisionRect: t,
2152
- droppableRects: A,
2153
- droppableContainers: n
2154
- } = e;
2155
- const r = bA(t), o = [];
2156
- for (const s of n) {
2157
- const {
2158
- id: i
2159
- } = s, c = A.get(i);
2160
- if (c) {
2161
- const a = bA(c), u = r.reduce((g, d, p) => g + Do(a[p], d), 0), l = Number((u / 4).toFixed(4));
2162
- o.push({
2163
- id: i,
2164
- data: {
2165
- droppableContainer: s,
2166
- value: l
2167
- }
2168
- });
2169
- }
2170
- }
2171
- return o.sort(vo);
2172
- };
2173
- function Qo(e, t) {
2174
- const A = Math.max(t.top, e.top), n = Math.max(t.left, e.left), r = Math.min(t.left + t.width, e.left + e.width), o = Math.min(t.top + t.height, e.top + e.height), s = r - n, i = o - A;
2175
- if (n < r && A < o) {
2176
- const c = t.width * t.height, a = e.width * e.height, u = s * i, l = u / (c + a - u);
2177
- return Number(l.toFixed(4));
2178
- }
2179
- return 0;
2180
- }
2181
- const Fo = (e) => {
2182
- let {
2183
- collisionRect: t,
2184
- droppableRects: A,
2185
- droppableContainers: n
2186
- } = e;
2187
- const r = [];
2188
- for (const o of n) {
2189
- const {
2190
- id: s
2191
- } = o, i = A.get(s);
2192
- if (i) {
2193
- const c = Qo(i, t);
2194
- c > 0 && r.push({
2195
- id: s,
2196
- data: {
2197
- droppableContainer: o,
2198
- value: c
2199
- }
2200
- });
2201
- }
2202
- }
2203
- return r.sort(Eo);
2204
- };
2205
- function Ko(e, t, A) {
2206
- return {
2207
- ...e,
2208
- scaleX: t && A ? t.width / A.width : 1,
2209
- scaleY: t && A ? t.height / A.height : 1
2210
- };
2211
- }
2212
- function OA(e, t) {
2213
- return e && t ? {
2214
- x: e.left - t.left,
2215
- y: e.top - t.top
2216
- } : ae;
2217
- }
2218
- function So(e) {
2219
- return function(A) {
2220
- for (var n = arguments.length, r = new Array(n > 1 ? n - 1 : 0), o = 1; o < n; o++)
2221
- r[o - 1] = arguments[o];
2222
- return r.reduce((s, i) => ({
2223
- ...s,
2224
- top: s.top + e * i.y,
2225
- bottom: s.bottom + e * i.y,
2226
- left: s.left + e * i.x,
2227
- right: s.right + e * i.x
2228
- }), {
2229
- ...A
2230
- });
2231
- };
2232
- }
2233
- const Go = /* @__PURE__ */ So(1);
2234
- function Yo(e) {
2235
- if (e.startsWith("matrix3d(")) {
2236
- const t = e.slice(9, -1).split(/, /);
2237
- return {
2238
- x: +t[12],
2239
- y: +t[13],
2240
- scaleX: +t[0],
2241
- scaleY: +t[5]
2242
- };
2243
- } else if (e.startsWith("matrix(")) {
2244
- const t = e.slice(7, -1).split(/, /);
2245
- return {
2246
- x: +t[4],
2247
- y: +t[5],
2248
- scaleX: +t[0],
2249
- scaleY: +t[3]
2250
- };
2251
- }
2252
- return null;
2253
- }
2254
- function Wo(e, t, A) {
2255
- const n = Yo(t);
2256
- if (!n)
2257
- return e;
2258
- const {
2259
- scaleX: r,
2260
- scaleY: o,
2261
- x: s,
2262
- y: i
2263
- } = n, c = e.left - s - (1 - r) * parseFloat(A), a = e.top - i - (1 - o) * parseFloat(A.slice(A.indexOf(" ") + 1)), u = r ? e.width / r : e.width, l = o ? e.height / o : e.height;
2264
- return {
2265
- width: u,
2266
- height: l,
2267
- top: a,
2268
- right: c + u,
2269
- bottom: a + l,
2270
- left: c
2271
- };
2272
- }
2273
- const No = {
2274
- ignoreTransform: !1
2275
- };
2276
- function je(e, t) {
2277
- t === void 0 && (t = No);
2278
- let A = e.getBoundingClientRect();
2279
- if (t.ignoreTransform) {
2280
- const {
2281
- transform: a,
2282
- transformOrigin: u
2283
- } = $(e).getComputedStyle(e);
2284
- a && (A = Wo(A, a, u));
2285
- }
2286
- const {
2287
- top: n,
2288
- left: r,
2289
- width: o,
2290
- height: s,
2291
- bottom: i,
2292
- right: c
2293
- } = A;
2294
- return {
2295
- top: n,
2296
- left: r,
2297
- width: o,
2298
- height: s,
2299
- bottom: i,
2300
- right: c
2301
- };
2302
- }
2303
- function mA(e) {
2304
- return je(e, {
2305
- ignoreTransform: !0
2306
- });
2307
- }
2308
- function Jo(e) {
2309
- const t = e.innerWidth, A = e.innerHeight;
2310
- return {
2311
- top: 0,
2312
- left: 0,
2313
- right: t,
2314
- bottom: A,
2315
- width: t,
2316
- height: A
2317
- };
2318
- }
2319
- function xo(e, t) {
2320
- return t === void 0 && (t = $(e).getComputedStyle(e)), t.position === "fixed";
2321
- }
2322
- function Zo(e, t) {
2323
- t === void 0 && (t = $(e).getComputedStyle(e));
2324
- const A = /(auto|scroll|overlay)/;
2325
- return ["overflow", "overflowX", "overflowY"].some((r) => {
2326
- const o = t[r];
2327
- return typeof o == "string" ? A.test(o) : !1;
2328
- });
2329
- }
2330
- function Rt(e, t) {
2331
- const A = [];
2332
- function n(r) {
2333
- if (t != null && A.length >= t || !r)
2334
- return A;
2335
- if (_t(r) && r.scrollingElement != null && !A.includes(r.scrollingElement))
2336
- return A.push(r.scrollingElement), A;
2337
- if (!st(r) || MA(r) || A.includes(r))
2338
- return A;
2339
- const o = $(e).getComputedStyle(r);
2340
- return r !== e && Zo(r, o) && A.push(r), xo(r, o) ? A : n(r.parentNode);
2341
- }
2342
- return e ? n(e) : A;
2343
- }
2344
- function XA(e) {
2345
- const [t] = Rt(e, 1);
2346
- return t ?? null;
2347
- }
2348
- function Mt(e) {
2349
- return !Et || !e ? null : Xe(e) ? e : Vt(e) ? _t(e) || e === Le(e).scrollingElement ? window : st(e) ? e : null : null;
2350
- }
2351
- function LA(e) {
2352
- return Xe(e) ? e.scrollX : e.scrollLeft;
2353
- }
2354
- function jA(e) {
2355
- return Xe(e) ? e.scrollY : e.scrollTop;
2356
- }
2357
- function jt(e) {
2358
- return {
2359
- x: LA(e),
2360
- y: jA(e)
2361
- };
2362
- }
2363
- var X;
2364
- (function(e) {
2365
- e[e.Forward = 1] = "Forward", e[e.Backward = -1] = "Backward";
2366
- })(X || (X = {}));
2367
- function TA(e) {
2368
- return !Et || !e ? !1 : e === document.scrollingElement;
2369
- }
2370
- function PA(e) {
2371
- const t = {
2372
- x: 0,
2373
- y: 0
2374
- }, A = TA(e) ? {
2375
- height: window.innerHeight,
2376
- width: window.innerWidth
2377
- } : {
2378
- height: e.clientHeight,
2379
- width: e.clientWidth
2380
- }, n = {
2381
- x: e.scrollWidth - A.width,
2382
- y: e.scrollHeight - A.height
2383
- }, r = e.scrollTop <= t.y, o = e.scrollLeft <= t.x, s = e.scrollTop >= n.y, i = e.scrollLeft >= n.x;
2384
- return {
2385
- isTop: r,
2386
- isLeft: o,
2387
- isBottom: s,
2388
- isRight: i,
2389
- maxScroll: n,
2390
- minScroll: t
2391
- };
2392
- }
2393
- const Mo = {
2394
- x: 0.2,
2395
- y: 0.2
2396
- };
2397
- function Ho(e, t, A, n, r) {
2398
- let {
2399
- top: o,
2400
- left: s,
2401
- right: i,
2402
- bottom: c
2403
- } = A;
2404
- n === void 0 && (n = 10), r === void 0 && (r = Mo);
2405
- const {
2406
- isTop: a,
2407
- isBottom: u,
2408
- isLeft: l,
2409
- isRight: g
2410
- } = PA(e), d = {
2411
- x: 0,
2412
- y: 0
2413
- }, p = {
2414
- x: 0,
2415
- y: 0
2416
- }, h = {
2417
- height: t.height * r.y,
2418
- width: t.width * r.x
2419
- };
2420
- return !a && o <= t.top + h.height ? (d.y = X.Backward, p.y = n * Math.abs((t.top + h.height - o) / h.height)) : !u && c >= t.bottom - h.height && (d.y = X.Forward, p.y = n * Math.abs((t.bottom - h.height - c) / h.height)), !g && i >= t.right - h.width ? (d.x = X.Forward, p.x = n * Math.abs((t.right - h.width - i) / h.width)) : !l && s <= t.left + h.width && (d.x = X.Backward, p.x = n * Math.abs((t.left + h.width - s) / h.width)), {
2421
- direction: d,
2422
- speed: p
2423
- };
2424
- }
2425
- function Uo(e) {
2426
- if (e === document.scrollingElement) {
2427
- const {
2428
- innerWidth: o,
2429
- innerHeight: s
2430
- } = window;
2431
- return {
2432
- top: 0,
2433
- left: 0,
2434
- right: o,
2435
- bottom: s,
2436
- width: o,
2437
- height: s
2438
- };
2439
- }
2440
- const {
2441
- top: t,
2442
- left: A,
2443
- right: n,
2444
- bottom: r
2445
- } = e.getBoundingClientRect();
2446
- return {
2447
- top: t,
2448
- left: A,
2449
- right: n,
2450
- bottom: r,
2451
- width: e.clientWidth,
2452
- height: e.clientHeight
2453
- };
2454
- }
2455
- function zA(e) {
2456
- return e.reduce((t, A) => ke(t, jt(A)), ae);
2457
- }
2458
- function ko(e) {
2459
- return e.reduce((t, A) => t + LA(A), 0);
2460
- }
2461
- function Oo(e) {
2462
- return e.reduce((t, A) => t + jA(A), 0);
2463
- }
2464
- function Xo(e, t) {
2465
- if (t === void 0 && (t = je), !e)
2466
- return;
2467
- const {
2468
- top: A,
2469
- left: n,
2470
- bottom: r,
2471
- right: o
2472
- } = t(e);
2473
- XA(e) && (r <= 0 || o <= 0 || A >= window.innerHeight || n >= window.innerWidth) && e.scrollIntoView({
2474
- block: "center",
2475
- inline: "center"
2476
- });
2477
- }
2478
- const Lo = [["x", ["left", "right"], ko], ["y", ["top", "bottom"], Oo]];
2479
- class eA {
2480
- constructor(t, A) {
2481
- this.rect = void 0, this.width = void 0, this.height = void 0, this.top = void 0, this.bottom = void 0, this.right = void 0, this.left = void 0;
2482
- const n = Rt(A), r = zA(n);
2483
- this.rect = {
2484
- ...t
2485
- }, this.width = t.width, this.height = t.height;
2486
- for (const [o, s, i] of Lo)
2487
- for (const c of s)
2488
- Object.defineProperty(this, c, {
2489
- get: () => {
2490
- const a = i(n), u = r[o] - a;
2491
- return this.rect[c] + u;
2492
- },
2493
- enumerable: !0
2494
- });
2495
- Object.defineProperty(this, "rect", {
2496
- enumerable: !1
2497
- });
2498
- }
2499
- }
2500
- class $e {
2501
- constructor(t) {
2502
- this.target = void 0, this.listeners = [], this.removeAll = () => {
2503
- this.listeners.forEach((A) => {
2504
- var n;
2505
- return (n = this.target) == null ? void 0 : n.removeEventListener(...A);
2506
- });
2507
- }, this.target = t;
2508
- }
2509
- add(t, A, n) {
2510
- var r;
2511
- (r = this.target) == null || r.addEventListener(t, A, n), this.listeners.push([t, A, n]);
2512
- }
2513
- }
2514
- function jo(e) {
2515
- const {
2516
- EventTarget: t
2517
- } = $(e);
2518
- return e instanceof t ? e : Le(e);
2519
- }
2520
- function Ht(e, t) {
2521
- const A = Math.abs(e.x), n = Math.abs(e.y);
2522
- return typeof t == "number" ? Math.sqrt(A ** 2 + n ** 2) > t : "x" in t && "y" in t ? A > t.x && n > t.y : "x" in t ? A > t.x : "y" in t ? n > t.y : !1;
2523
- }
2524
- var oe;
2525
- (function(e) {
2526
- e.Click = "click", e.DragStart = "dragstart", e.Keydown = "keydown", e.ContextMenu = "contextmenu", e.Resize = "resize", e.SelectionChange = "selectionchange", e.VisibilityChange = "visibilitychange";
2527
- })(oe || (oe = {}));
2528
- function BA(e) {
2529
- e.preventDefault();
2530
- }
2531
- function To(e) {
2532
- e.stopPropagation();
2533
- }
2534
- var E;
2535
- (function(e) {
2536
- e.Space = "Space", e.Down = "ArrowDown", e.Right = "ArrowRight", e.Left = "ArrowLeft", e.Up = "ArrowUp", e.Esc = "Escape", e.Enter = "Enter", e.Tab = "Tab";
2537
- })(E || (E = {}));
2538
- const VA = {
2539
- start: [E.Space, E.Enter],
2540
- cancel: [E.Esc],
2541
- end: [E.Space, E.Enter, E.Tab]
2542
- }, Po = (e, t) => {
2543
- let {
2544
- currentCoordinates: A
2545
- } = t;
2546
- switch (e.code) {
2547
- case E.Right:
2548
- return {
2549
- ...A,
2550
- x: A.x + 25
2551
- };
2552
- case E.Left:
2553
- return {
2554
- ...A,
2555
- x: A.x - 25
2556
- };
2557
- case E.Down:
2558
- return {
2559
- ...A,
2560
- y: A.y + 25
2561
- };
2562
- case E.Up:
2563
- return {
2564
- ...A,
2565
- y: A.y - 25
2566
- };
2567
- }
2568
- };
2569
- class _A {
2570
- constructor(t) {
2571
- this.props = void 0, this.autoScrollEnabled = !1, this.referenceCoordinates = void 0, this.listeners = void 0, this.windowListeners = void 0, this.props = t;
2572
- const {
2573
- event: {
2574
- target: A
2575
- }
2576
- } = t;
2577
- this.props = t, this.listeners = new $e(Le(A)), this.windowListeners = new $e($(A)), this.handleKeyDown = this.handleKeyDown.bind(this), this.handleCancel = this.handleCancel.bind(this), this.attach();
2578
- }
2579
- attach() {
2580
- this.handleStart(), this.windowListeners.add(oe.Resize, this.handleCancel), this.windowListeners.add(oe.VisibilityChange, this.handleCancel), setTimeout(() => this.listeners.add(oe.Keydown, this.handleKeyDown));
2581
- }
2582
- handleStart() {
2583
- const {
2584
- activeNode: t,
2585
- onStart: A
2586
- } = this.props, n = t.node.current;
2587
- n && Xo(n), A(ae);
2588
- }
2589
- handleKeyDown(t) {
2590
- if ($t(t)) {
2591
- const {
2592
- active: A,
2593
- context: n,
2594
- options: r
2595
- } = this.props, {
2596
- keyboardCodes: o = VA,
2597
- coordinateGetter: s = Po,
2598
- scrollBehavior: i = "smooth"
2599
- } = r, {
2600
- code: c
2601
- } = t;
2602
- if (o.end.includes(c)) {
2603
- this.handleEnd(t);
2604
- return;
2605
- }
2606
- if (o.cancel.includes(c)) {
2607
- this.handleCancel(t);
2608
- return;
2609
- }
2610
- const {
2611
- collisionRect: a
2612
- } = n.current, u = a ? {
2613
- x: a.left,
2614
- y: a.top
2615
- } : ae;
2616
- this.referenceCoordinates || (this.referenceCoordinates = u);
2617
- const l = s(t, {
2618
- active: A,
2619
- context: n.current,
2620
- currentCoordinates: u
2621
- });
2622
- if (l) {
2623
- const g = nt(l, u), d = {
2624
- x: 0,
2625
- y: 0
2626
- }, {
2627
- scrollableAncestors: p
2628
- } = n.current;
2629
- for (const h of p) {
2630
- const I = t.code, {
2631
- isTop: b,
2632
- isRight: m,
2633
- isLeft: C,
2634
- isBottom: B,
2635
- maxScroll: D,
2636
- minScroll: R
2637
- } = PA(h), w = Uo(h), y = {
2638
- x: Math.min(I === E.Right ? w.right - w.width / 2 : w.right, Math.max(I === E.Right ? w.left : w.left + w.width / 2, l.x)),
2639
- y: Math.min(I === E.Down ? w.bottom - w.height / 2 : w.bottom, Math.max(I === E.Down ? w.top : w.top + w.height / 2, l.y))
2640
- }, W = I === E.Right && !m || I === E.Left && !C, F = I === E.Down && !B || I === E.Up && !b;
2641
- if (W && y.x !== l.x) {
2642
- const K = h.scrollLeft + g.x, j = I === E.Right && K <= D.x || I === E.Left && K >= R.x;
2643
- if (j && !g.y) {
2644
- h.scrollTo({
2645
- left: K,
2646
- behavior: i
2647
- });
2648
- return;
2649
- }
2650
- j ? d.x = h.scrollLeft - K : d.x = I === E.Right ? h.scrollLeft - D.x : h.scrollLeft - R.x, d.x && h.scrollBy({
2651
- left: -d.x,
2652
- behavior: i
2653
- });
2654
- break;
2655
- } else if (F && y.y !== l.y) {
2656
- const K = h.scrollTop + g.y, j = I === E.Down && K <= D.y || I === E.Up && K >= R.y;
2657
- if (j && !g.x) {
2658
- h.scrollTo({
2659
- top: K,
2660
- behavior: i
2661
- });
2662
- return;
2663
- }
2664
- j ? d.y = h.scrollTop - K : d.y = I === E.Down ? h.scrollTop - D.y : h.scrollTop - R.y, d.y && h.scrollBy({
2665
- top: -d.y,
2666
- behavior: i
2667
- });
2668
- break;
2669
- }
2670
- }
2671
- this.handleMove(t, ke(nt(l, this.referenceCoordinates), d));
2672
- }
2673
- }
2674
- }
2675
- handleMove(t, A) {
2676
- const {
2677
- onMove: n
2678
- } = this.props;
2679
- t.preventDefault(), n(A);
2680
- }
2681
- handleEnd(t) {
2682
- const {
2683
- onEnd: A
2684
- } = this.props;
2685
- t.preventDefault(), this.detach(), A();
2686
- }
2687
- handleCancel(t) {
2688
- const {
2689
- onCancel: A
2690
- } = this.props;
2691
- t.preventDefault(), this.detach(), A();
2692
- }
2693
- detach() {
2694
- this.listeners.removeAll(), this.windowListeners.removeAll();
2695
- }
2696
- }
2697
- _A.activators = [{
2698
- eventName: "onKeyDown",
2699
- handler: (e, t, A) => {
2700
- let {
2701
- keyboardCodes: n = VA,
2702
- onActivation: r
2703
- } = t, {
2704
- active: o
2705
- } = A;
2706
- const {
2707
- code: s
2708
- } = e.nativeEvent;
2709
- if (n.start.includes(s)) {
2710
- const i = o.activatorNode.current;
2711
- return i && e.target !== i ? !1 : (e.preventDefault(), r == null || r({
2712
- event: e.nativeEvent
2713
- }), !0);
2714
- }
2715
- return !1;
2716
- }
2717
- }];
2718
- function wA(e) {
2719
- return !!(e && "distance" in e);
2720
- }
2721
- function yA(e) {
2722
- return !!(e && "delay" in e);
2723
- }
2724
- class tA {
2725
- constructor(t, A, n) {
2726
- var r;
2727
- n === void 0 && (n = jo(t.event.target)), this.props = void 0, this.events = void 0, this.autoScrollEnabled = !0, this.document = void 0, this.activated = !1, this.initialCoordinates = void 0, this.timeoutId = null, this.listeners = void 0, this.documentListeners = void 0, this.windowListeners = void 0, this.props = t, this.events = A;
2728
- const {
2729
- event: o
2730
- } = t, {
2731
- target: s
2732
- } = o;
2733
- this.props = t, this.events = A, this.document = Le(s), this.documentListeners = new $e(this.document), this.listeners = new $e(n), this.windowListeners = new $e($(s)), this.initialCoordinates = (r = Lt(o)) != null ? r : ae, this.handleStart = this.handleStart.bind(this), this.handleMove = this.handleMove.bind(this), this.handleEnd = this.handleEnd.bind(this), this.handleCancel = this.handleCancel.bind(this), this.handleKeydown = this.handleKeydown.bind(this), this.removeTextSelection = this.removeTextSelection.bind(this), this.attach();
2734
- }
2735
- attach() {
2736
- const {
2737
- events: t,
2738
- props: {
2739
- options: {
2740
- activationConstraint: A,
2741
- bypassActivationConstraint: n
2742
- }
2743
- }
2744
- } = this;
2745
- if (this.listeners.add(t.move.name, this.handleMove, {
2746
- passive: !1
2747
- }), this.listeners.add(t.end.name, this.handleEnd), t.cancel && this.listeners.add(t.cancel.name, this.handleCancel), this.windowListeners.add(oe.Resize, this.handleCancel), this.windowListeners.add(oe.DragStart, BA), this.windowListeners.add(oe.VisibilityChange, this.handleCancel), this.windowListeners.add(oe.ContextMenu, BA), this.documentListeners.add(oe.Keydown, this.handleKeydown), A) {
2748
- if (n != null && n({
2749
- event: this.props.event,
2750
- activeNode: this.props.activeNode,
2751
- options: this.props.options
2752
- }))
2753
- return this.handleStart();
2754
- if (yA(A)) {
2755
- this.timeoutId = setTimeout(this.handleStart, A.delay), this.handlePending(A);
2756
- return;
2757
- }
2758
- if (wA(A)) {
2759
- this.handlePending(A);
2760
- return;
2761
- }
2762
- }
2763
- this.handleStart();
2764
- }
2765
- detach() {
2766
- this.listeners.removeAll(), this.windowListeners.removeAll(), setTimeout(this.documentListeners.removeAll, 50), this.timeoutId !== null && (clearTimeout(this.timeoutId), this.timeoutId = null);
2767
- }
2768
- handlePending(t, A) {
2769
- const {
2770
- active: n,
2771
- onPending: r
2772
- } = this.props;
2773
- r(n, t, this.initialCoordinates, A);
2774
- }
2775
- handleStart() {
2776
- const {
2777
- initialCoordinates: t
2778
- } = this, {
2779
- onStart: A
2780
- } = this.props;
2781
- t && (this.activated = !0, this.documentListeners.add(oe.Click, To, {
2782
- capture: !0
2783
- }), this.removeTextSelection(), this.documentListeners.add(oe.SelectionChange, this.removeTextSelection), A(t));
2784
- }
2785
- handleMove(t) {
2786
- var A;
2787
- const {
2788
- activated: n,
2789
- initialCoordinates: r,
2790
- props: o
2791
- } = this, {
2792
- onMove: s,
2793
- options: {
2794
- activationConstraint: i
2795
- }
2796
- } = o;
2797
- if (!r)
2798
- return;
2799
- const c = (A = Lt(t)) != null ? A : ae, a = nt(r, c);
2800
- if (!n && i) {
2801
- if (wA(i)) {
2802
- if (i.tolerance != null && Ht(a, i.tolerance))
2803
- return this.handleCancel();
2804
- if (Ht(a, i.distance))
2805
- return this.handleStart();
2806
- }
2807
- if (yA(i) && Ht(a, i.tolerance))
2808
- return this.handleCancel();
2809
- this.handlePending(i, a);
2810
- return;
2811
- }
2812
- t.cancelable && t.preventDefault(), s(c);
2813
- }
2814
- handleEnd() {
2815
- const {
2816
- onAbort: t,
2817
- onEnd: A
2818
- } = this.props;
2819
- this.detach(), this.activated || t(this.props.active), A();
2820
- }
2821
- handleCancel() {
2822
- const {
2823
- onAbort: t,
2824
- onCancel: A
2825
- } = this.props;
2826
- this.detach(), this.activated || t(this.props.active), A();
2827
- }
2828
- handleKeydown(t) {
2829
- t.code === E.Esc && this.handleCancel();
2830
- }
2831
- removeTextSelection() {
2832
- var t;
2833
- (t = this.document.getSelection()) == null || t.removeAllRanges();
2834
- }
2835
- }
2836
- const zo = {
2837
- cancel: {
2838
- name: "pointercancel"
2839
- },
2840
- move: {
2841
- name: "pointermove"
2842
- },
2843
- end: {
2844
- name: "pointerup"
2845
- }
2846
- };
2847
- class qA extends tA {
2848
- constructor(t) {
2849
- const {
2850
- event: A
2851
- } = t, n = Le(A.target);
2852
- super(t, zo, n);
2853
- }
2854
- }
2855
- qA.activators = [{
2856
- eventName: "onPointerDown",
2857
- handler: (e, t) => {
2858
- let {
2859
- nativeEvent: A
2860
- } = e, {
2861
- onActivation: n
2862
- } = t;
2863
- return !A.isPrimary || A.button !== 0 ? !1 : (n == null || n({
2864
- event: A
2865
- }), !0);
2866
- }
2867
- }];
2868
- const Vo = {
2869
- move: {
2870
- name: "mousemove"
2871
- },
2872
- end: {
2873
- name: "mouseup"
2874
- }
2875
- };
2876
- var Tt;
2877
- (function(e) {
2878
- e[e.RightClick = 2] = "RightClick";
2879
- })(Tt || (Tt = {}));
2880
- class _o extends tA {
2881
- constructor(t) {
2882
- super(t, Vo, Le(t.event.target));
2883
- }
2884
- }
2885
- _o.activators = [{
2886
- eventName: "onMouseDown",
2887
- handler: (e, t) => {
2888
- let {
2889
- nativeEvent: A
2890
- } = e, {
2891
- onActivation: n
2892
- } = t;
2893
- return A.button === Tt.RightClick ? !1 : (n == null || n({
2894
- event: A
2895
- }), !0);
2896
- }
2897
- }];
2898
- const Ut = {
2899
- cancel: {
2900
- name: "touchcancel"
2901
- },
2902
- move: {
2903
- name: "touchmove"
2904
- },
2905
- end: {
2906
- name: "touchend"
2907
- }
2908
- };
2909
- class qo extends tA {
2910
- constructor(t) {
2911
- super(t, Ut);
2912
- }
2913
- static setup() {
2914
- return window.addEventListener(Ut.move.name, t, {
2915
- capture: !1,
2916
- passive: !1
2917
- }), function() {
2918
- window.removeEventListener(Ut.move.name, t);
2919
- };
2920
- function t() {
2921
- }
2922
- }
2923
- }
2924
- qo.activators = [{
2925
- eventName: "onTouchStart",
2926
- handler: (e, t) => {
2927
- let {
2928
- nativeEvent: A
2929
- } = e, {
2930
- onActivation: n
2931
- } = t;
2932
- const {
2933
- touches: r
2934
- } = A;
2935
- return r.length > 1 ? !1 : (n == null || n({
2936
- event: A
2937
- }), !0);
2938
- }
2939
- }];
2940
- var et;
2941
- (function(e) {
2942
- e[e.Pointer = 0] = "Pointer", e[e.DraggableRect = 1] = "DraggableRect";
2943
- })(et || (et = {}));
2944
- var mt;
2945
- (function(e) {
2946
- e[e.TreeOrder = 0] = "TreeOrder", e[e.ReversedTreeOrder = 1] = "ReversedTreeOrder";
2947
- })(mt || (mt = {}));
2948
- function $o(e) {
2949
- let {
2950
- acceleration: t,
2951
- activator: A = et.Pointer,
2952
- canScroll: n,
2953
- draggingRect: r,
2954
- enabled: o,
2955
- interval: s = 5,
2956
- order: i = mt.TreeOrder,
2957
- pointerCoordinates: c,
2958
- scrollableAncestors: a,
2959
- scrollableAncestorRects: u,
2960
- delta: l,
2961
- threshold: g
2962
- } = e;
2963
- const d = ti({
2964
- delta: l,
2965
- disabled: !o
2966
- }), [p, h] = lo(), I = G({
2967
- x: 0,
2968
- y: 0
2969
- }), b = G({
2970
- x: 0,
2971
- y: 0
2972
- }), m = J(() => {
2973
- switch (A) {
2974
- case et.Pointer:
2975
- return c ? {
2976
- top: c.y,
2977
- bottom: c.y,
2978
- left: c.x,
2979
- right: c.x
2980
- } : null;
2981
- case et.DraggableRect:
2982
- return r;
2983
- }
2984
- }, [A, r, c]), C = G(null), B = M(() => {
2985
- const R = C.current;
2986
- if (!R)
2987
- return;
2988
- const w = I.current.x * b.current.x, y = I.current.y * b.current.y;
2989
- R.scrollBy(w, y);
2990
- }, []), D = J(() => i === mt.TreeOrder ? [...a].reverse() : a, [i, a]);
2991
- S(
2992
- () => {
2993
- if (!o || !a.length || !m) {
2994
- h();
2995
- return;
2996
- }
2997
- for (const R of D) {
2998
- if ((n == null ? void 0 : n(R)) === !1)
2999
- continue;
3000
- const w = a.indexOf(R), y = u[w];
3001
- if (!y)
3002
- continue;
3003
- const {
3004
- direction: W,
3005
- speed: F
3006
- } = Ho(R, y, m, t, g);
3007
- for (const K of ["x", "y"])
3008
- d[K][W[K]] || (F[K] = 0, W[K] = 0);
3009
- if (F.x > 0 || F.y > 0) {
3010
- h(), C.current = R, p(B, s), I.current = F, b.current = W;
3011
- return;
3012
- }
3013
- }
3014
- I.current = {
3015
- x: 0,
3016
- y: 0
3017
- }, b.current = {
3018
- x: 0,
3019
- y: 0
3020
- }, h();
3021
- },
3022
- // eslint-disable-next-line react-hooks/exhaustive-deps
3023
- [
3024
- t,
3025
- B,
3026
- n,
3027
- h,
3028
- o,
3029
- s,
3030
- // eslint-disable-next-line react-hooks/exhaustive-deps
3031
- JSON.stringify(m),
3032
- // eslint-disable-next-line react-hooks/exhaustive-deps
3033
- JSON.stringify(d),
3034
- p,
3035
- a,
3036
- D,
3037
- u,
3038
- // eslint-disable-next-line react-hooks/exhaustive-deps
3039
- JSON.stringify(g)
3040
- ]
3041
- );
3042
- }
3043
- const ei = {
3044
- x: {
3045
- [X.Backward]: !1,
3046
- [X.Forward]: !1
3047
- },
3048
- y: {
3049
- [X.Backward]: !1,
3050
- [X.Forward]: !1
3051
- }
3052
- };
3053
- function ti(e) {
3054
- let {
3055
- delta: t,
3056
- disabled: A
3057
- } = e;
3058
- const n = Xt(t);
3059
- return ct((r) => {
3060
- if (A || !n || !r)
3061
- return ei;
3062
- const o = {
3063
- x: Math.sign(t.x - n.x),
3064
- y: Math.sign(t.y - n.y)
3065
- };
3066
- return {
3067
- x: {
3068
- [X.Backward]: r.x[X.Backward] || o.x === -1,
3069
- [X.Forward]: r.x[X.Forward] || o.x === 1
3070
- },
3071
- y: {
3072
- [X.Backward]: r.y[X.Backward] || o.y === -1,
3073
- [X.Forward]: r.y[X.Forward] || o.y === 1
3074
- }
3075
- };
3076
- }, [A, t, n]);
3077
- }
3078
- function Ai(e, t) {
3079
- const A = t != null ? e.get(t) : void 0, n = A ? A.node.current : null;
3080
- return ct((r) => {
3081
- var o;
3082
- return t == null ? null : (o = n ?? r) != null ? o : null;
3083
- }, [n, t]);
3084
- }
3085
- function ni(e, t) {
3086
- return J(() => e.reduce((A, n) => {
3087
- const {
3088
- sensor: r
3089
- } = n, o = r.activators.map((s) => ({
3090
- eventName: s.eventName,
3091
- handler: t(s.handler, n)
3092
- }));
3093
- return [...A, ...o];
3094
- }, []), [e, t]);
3095
- }
3096
- var rt;
3097
- (function(e) {
3098
- e[e.Always = 0] = "Always", e[e.BeforeDragging = 1] = "BeforeDragging", e[e.WhileDragging = 2] = "WhileDragging";
3099
- })(rt || (rt = {}));
3100
- var Pt;
3101
- (function(e) {
3102
- e.Optimized = "optimized";
3103
- })(Pt || (Pt = {}));
3104
- const DA = /* @__PURE__ */ new Map();
3105
- function ri(e, t) {
3106
- let {
3107
- dragging: A,
3108
- dependencies: n,
3109
- config: r
3110
- } = t;
3111
- const [o, s] = U(null), {
3112
- frequency: i,
3113
- measure: c,
3114
- strategy: a
3115
- } = r, u = G(e), l = I(), g = At(l), d = M(function(b) {
3116
- b === void 0 && (b = []), !g.current && s((m) => m === null ? b : m.concat(b.filter((C) => !m.includes(C))));
3117
- }, [g]), p = G(null), h = ct((b) => {
3118
- if (l && !A)
3119
- return DA;
3120
- if (!b || b === DA || u.current !== e || o != null) {
3121
- const m = /* @__PURE__ */ new Map();
3122
- for (let C of e) {
3123
- if (!C)
3124
- continue;
3125
- if (o && o.length > 0 && !o.includes(C.id) && C.rect.current) {
3126
- m.set(C.id, C.rect.current);
3127
- continue;
3128
- }
3129
- const B = C.node.current, D = B ? new eA(c(B), B) : null;
3130
- C.rect.current = D, D && m.set(C.id, D);
3131
- }
3132
- return m;
3133
- }
3134
- return b;
3135
- }, [e, o, A, l, c]);
3136
- return S(() => {
3137
- u.current = e;
3138
- }, [e]), S(
3139
- () => {
3140
- l || d();
3141
- },
3142
- // eslint-disable-next-line react-hooks/exhaustive-deps
3143
- [A, l]
3144
- ), S(
3145
- () => {
3146
- o && o.length > 0 && s(null);
3147
- },
3148
- //eslint-disable-next-line react-hooks/exhaustive-deps
3149
- [JSON.stringify(o)]
3150
- ), S(
3151
- () => {
3152
- l || typeof i != "number" || p.current !== null || (p.current = setTimeout(() => {
3153
- d(), p.current = null;
3154
- }, i));
3155
- },
3156
- // eslint-disable-next-line react-hooks/exhaustive-deps
3157
- [i, l, d, ...n]
3158
- ), {
3159
- droppableRects: h,
3160
- measureDroppableContainers: d,
3161
- measuringScheduled: o != null
3162
- };
3163
- function I() {
3164
- switch (a) {
3165
- case rt.Always:
3166
- return !1;
3167
- case rt.BeforeDragging:
3168
- return A;
3169
- default:
3170
- return !A;
3171
- }
3172
- }
3173
- }
3174
- function $A(e, t) {
3175
- return ct((A) => e ? A || (typeof t == "function" ? t(e) : e) : null, [t, e]);
3176
- }
3177
- function oi(e, t) {
3178
- return $A(e, t);
3179
- }
3180
- function ii(e) {
3181
- let {
3182
- callback: t,
3183
- disabled: A
3184
- } = e;
3185
- const n = qt(t), r = J(() => {
3186
- if (A || typeof window > "u" || typeof window.MutationObserver > "u")
3187
- return;
3188
- const {
3189
- MutationObserver: o
3190
- } = window;
3191
- return new o(n);
3192
- }, [n, A]);
3193
- return S(() => () => r == null ? void 0 : r.disconnect(), [r]), r;
3194
- }
3195
- function Qt(e) {
3196
- let {
3197
- callback: t,
3198
- disabled: A
3199
- } = e;
3200
- const n = qt(t), r = J(
3201
- () => {
3202
- if (A || typeof window > "u" || typeof window.ResizeObserver > "u")
3203
- return;
3204
- const {
3205
- ResizeObserver: o
3206
- } = window;
3207
- return new o(n);
3208
- },
3209
- // eslint-disable-next-line react-hooks/exhaustive-deps
3210
- [A]
3211
- );
3212
- return S(() => () => r == null ? void 0 : r.disconnect(), [r]), r;
3213
- }
3214
- function si(e) {
3215
- return new eA(je(e), e);
3216
- }
3217
- function vA(e, t, A) {
3218
- t === void 0 && (t = si);
3219
- const [n, r] = U(null);
3220
- function o() {
3221
- r((c) => {
3222
- if (!e)
3223
- return null;
3224
- if (e.isConnected === !1) {
3225
- var a;
3226
- return (a = c ?? A) != null ? a : null;
3227
- }
3228
- const u = t(e);
3229
- return JSON.stringify(c) === JSON.stringify(u) ? c : u;
3230
- });
3231
- }
3232
- const s = ii({
3233
- callback(c) {
3234
- if (e)
3235
- for (const a of c) {
3236
- const {
3237
- type: u,
3238
- target: l
3239
- } = a;
3240
- if (u === "childList" && l instanceof HTMLElement && l.contains(e)) {
3241
- o();
3242
- break;
3243
- }
3244
- }
3245
- }
3246
- }), i = Qt({
3247
- callback: o
3248
- });
3249
- return he(() => {
3250
- o(), e ? (i == null || i.observe(e), s == null || s.observe(document.body, {
3251
- childList: !0,
3252
- subtree: !0
3253
- })) : (i == null || i.disconnect(), s == null || s.disconnect());
3254
- }, [e]), n;
3255
- }
3256
- function ci(e) {
3257
- const t = $A(e);
3258
- return OA(e, t);
3259
- }
3260
- const EA = [];
3261
- function ai(e) {
3262
- const t = G(e), A = ct((n) => e ? n && n !== EA && e && t.current && e.parentNode === t.current.parentNode ? n : Rt(e) : EA, [e]);
3263
- return S(() => {
3264
- t.current = e;
3265
- }, [e]), A;
3266
- }
3267
- function li(e) {
3268
- const [t, A] = U(null), n = G(e), r = M((o) => {
3269
- const s = Mt(o.target);
3270
- s && A((i) => i ? (i.set(s, jt(s)), new Map(i)) : null);
3271
- }, []);
3272
- return S(() => {
3273
- const o = n.current;
3274
- if (e !== o) {
3275
- s(o);
3276
- const i = e.map((c) => {
3277
- const a = Mt(c);
3278
- return a ? (a.addEventListener("scroll", r, {
3279
- passive: !0
3280
- }), [a, jt(a)]) : null;
3281
- }).filter((c) => c != null);
3282
- A(i.length ? new Map(i) : null), n.current = e;
3283
- }
3284
- return () => {
3285
- s(e), s(o);
3286
- };
3287
- function s(i) {
3288
- i.forEach((c) => {
3289
- const a = Mt(c);
3290
- a == null || a.removeEventListener("scroll", r);
3291
- });
3292
- }
3293
- }, [r, e]), J(() => e.length ? t ? Array.from(t.values()).reduce((o, s) => ke(o, s), ae) : zA(e) : ae, [e, t]);
3294
- }
3295
- function RA(e, t) {
3296
- t === void 0 && (t = []);
3297
- const A = G(null);
3298
- return S(
3299
- () => {
3300
- A.current = null;
3301
- },
3302
- // eslint-disable-next-line react-hooks/exhaustive-deps
3303
- t
3304
- ), S(() => {
3305
- const n = e !== ae;
3306
- n && !A.current && (A.current = e), !n && A.current && (A.current = null);
3307
- }, [e]), A.current ? nt(e, A.current) : ae;
3308
- }
3309
- function ui(e) {
3310
- S(
3311
- () => {
3312
- if (!Et)
3313
- return;
3314
- const t = e.map((A) => {
3315
- let {
3316
- sensor: n
3317
- } = A;
3318
- return n.setup == null ? void 0 : n.setup();
3319
- });
3320
- return () => {
3321
- for (const A of t)
3322
- A == null || A();
3323
- };
3324
- },
3325
- // TO-DO: Sensors length could theoretically change which would not be a valid dependency
3326
- // eslint-disable-next-line react-hooks/exhaustive-deps
3327
- e.map((t) => {
3328
- let {
3329
- sensor: A
3330
- } = t;
3331
- return A;
3332
- })
3333
- );
3334
- }
3335
- function di(e, t) {
3336
- return J(() => e.reduce((A, n) => {
3337
- let {
3338
- eventName: r,
3339
- handler: o
3340
- } = n;
3341
- return A[r] = (s) => {
3342
- o(s, t);
3343
- }, A;
3344
- }, {}), [e, t]);
3345
- }
3346
- function en(e) {
3347
- return J(() => e ? Jo(e) : null, [e]);
3348
- }
3349
- const QA = [];
3350
- function gi(e, t) {
3351
- t === void 0 && (t = je);
3352
- const [A] = e, n = en(A ? $(A) : null), [r, o] = U(QA);
3353
- function s() {
3354
- o(() => e.length ? e.map((c) => TA(c) ? n : new eA(t(c), c)) : QA);
3355
- }
3356
- const i = Qt({
3357
- callback: s
3358
- });
3359
- return he(() => {
3360
- i == null || i.disconnect(), s(), e.forEach((c) => i == null ? void 0 : i.observe(c));
3361
- }, [e]), r;
3362
- }
3363
- function hi(e) {
3364
- if (!e)
3365
- return null;
3366
- if (e.children.length > 1)
3367
- return e;
3368
- const t = e.children[0];
3369
- return st(t) ? t : e;
3370
- }
3371
- function fi(e) {
3372
- let {
3373
- measure: t
3374
- } = e;
3375
- const [A, n] = U(null), r = M((a) => {
3376
- for (const {
3377
- target: u
3378
- } of a)
3379
- if (st(u)) {
3380
- n((l) => {
3381
- const g = t(u);
3382
- return l ? {
3383
- ...l,
3384
- width: g.width,
3385
- height: g.height
3386
- } : g;
3387
- });
3388
- break;
3389
- }
3390
- }, [t]), o = Qt({
3391
- callback: r
3392
- }), s = M((a) => {
3393
- const u = hi(a);
3394
- o == null || o.disconnect(), u && (o == null || o.observe(u)), n(u ? t(u) : null);
3395
- }, [t, o]), [i, c] = pt(s);
3396
- return J(() => ({
3397
- nodeRef: i,
3398
- rect: A,
3399
- setRef: c
3400
- }), [A, i, c]);
3401
- }
3402
- const Ii = [{
3403
- sensor: qA,
3404
- options: {}
3405
- }, {
3406
- sensor: _A,
3407
- options: {}
3408
- }], pi = {
3409
- current: {}
3410
- }, ft = {
3411
- draggable: {
3412
- measure: mA
3413
- },
3414
- droppable: {
3415
- measure: mA,
3416
- strategy: rt.WhileDragging,
3417
- frequency: Pt.Optimized
3418
- },
3419
- dragOverlay: {
3420
- measure: je
3421
- }
3422
- };
3423
- class tt extends Map {
3424
- get(t) {
3425
- var A;
3426
- return t != null && (A = super.get(t)) != null ? A : void 0;
3427
- }
3428
- toArray() {
3429
- return Array.from(this.values());
3430
- }
3431
- getEnabled() {
3432
- return this.toArray().filter((t) => {
3433
- let {
3434
- disabled: A
3435
- } = t;
3436
- return !A;
3437
- });
3438
- }
3439
- getNodeFor(t) {
3440
- var A, n;
3441
- return (A = (n = this.get(t)) == null ? void 0 : n.node.current) != null ? A : void 0;
3442
- }
3443
- }
3444
- const Ci = {
3445
- activatorEvent: null,
3446
- active: null,
3447
- activeNode: null,
3448
- activeNodeRect: null,
3449
- collisions: null,
3450
- containerNodeRect: null,
3451
- draggableNodes: /* @__PURE__ */ new Map(),
3452
- droppableRects: /* @__PURE__ */ new Map(),
3453
- droppableContainers: /* @__PURE__ */ new tt(),
3454
- over: null,
3455
- dragOverlay: {
3456
- nodeRef: {
3457
- current: null
3458
- },
3459
- rect: null,
3460
- setRef: bt
3461
- },
3462
- scrollableAncestors: [],
3463
- scrollableAncestorRects: [],
3464
- measuringConfiguration: ft,
3465
- measureDroppableContainers: bt,
3466
- windowRect: null,
3467
- measuringScheduled: !1
3468
- }, bi = {
3469
- activatorEvent: null,
3470
- activators: [],
3471
- active: null,
3472
- activeNodeRect: null,
3473
- ariaDescribedById: {
3474
- draggable: ""
3475
- },
3476
- dispatch: bt,
3477
- draggableNodes: /* @__PURE__ */ new Map(),
3478
- over: null,
3479
- measureDroppableContainers: bt
3480
- }, Ft = /* @__PURE__ */ ot(bi), tn = /* @__PURE__ */ ot(Ci);
3481
- function mi() {
3482
- return {
3483
- draggable: {
3484
- active: null,
3485
- initialCoordinates: {
3486
- x: 0,
3487
- y: 0
3488
- },
3489
- nodes: /* @__PURE__ */ new Map(),
3490
- translate: {
3491
- x: 0,
3492
- y: 0
3493
- }
3494
- },
3495
- droppable: {
3496
- containers: new tt()
3497
- }
3498
- };
3499
- }
3500
- function Bi(e, t) {
3501
- switch (t.type) {
3502
- case H.DragStart:
3503
- return {
3504
- ...e,
3505
- draggable: {
3506
- ...e.draggable,
3507
- initialCoordinates: t.initialCoordinates,
3508
- active: t.active
3509
- }
3510
- };
3511
- case H.DragMove:
3512
- return e.draggable.active == null ? e : {
3513
- ...e,
3514
- draggable: {
3515
- ...e.draggable,
3516
- translate: {
3517
- x: t.coordinates.x - e.draggable.initialCoordinates.x,
3518
- y: t.coordinates.y - e.draggable.initialCoordinates.y
3519
- }
3520
- }
3521
- };
3522
- case H.DragEnd:
3523
- case H.DragCancel:
3524
- return {
3525
- ...e,
3526
- draggable: {
3527
- ...e.draggable,
3528
- active: null,
3529
- initialCoordinates: {
3530
- x: 0,
3531
- y: 0
3532
- },
3533
- translate: {
3534
- x: 0,
3535
- y: 0
3536
- }
3537
- }
3538
- };
3539
- case H.RegisterDroppable: {
3540
- const {
3541
- element: A
3542
- } = t, {
3543
- id: n
3544
- } = A, r = new tt(e.droppable.containers);
3545
- return r.set(n, A), {
3546
- ...e,
3547
- droppable: {
3548
- ...e.droppable,
3549
- containers: r
3550
- }
3551
- };
3552
- }
3553
- case H.SetDroppableDisabled: {
3554
- const {
3555
- id: A,
3556
- key: n,
3557
- disabled: r
3558
- } = t, o = e.droppable.containers.get(A);
3559
- if (!o || n !== o.key)
3560
- return e;
3561
- const s = new tt(e.droppable.containers);
3562
- return s.set(A, {
3563
- ...o,
3564
- disabled: r
3565
- }), {
3566
- ...e,
3567
- droppable: {
3568
- ...e.droppable,
3569
- containers: s
3570
- }
3571
- };
3572
- }
3573
- case H.UnregisterDroppable: {
3574
- const {
3575
- id: A,
3576
- key: n
3577
- } = t, r = e.droppable.containers.get(A);
3578
- if (!r || n !== r.key)
3579
- return e;
3580
- const o = new tt(e.droppable.containers);
3581
- return o.delete(A), {
3582
- ...e,
3583
- droppable: {
3584
- ...e.droppable,
3585
- containers: o
3586
- }
3587
- };
3588
- }
3589
- default:
3590
- return e;
3591
- }
3592
- }
3593
- function wi(e) {
3594
- let {
3595
- disabled: t
3596
- } = e;
3597
- const {
3598
- active: A,
3599
- activatorEvent: n,
3600
- draggableNodes: r
3601
- } = Ke(Ft), o = Xt(n), s = Xt(A == null ? void 0 : A.id);
3602
- return S(() => {
3603
- if (!t && !n && o && s != null) {
3604
- if (!$t(o) || document.activeElement === o.target)
3605
- return;
3606
- const i = r.get(s);
3607
- if (!i)
3608
- return;
3609
- const {
3610
- activatorNode: c,
3611
- node: a
3612
- } = i;
3613
- if (!c.current && !a.current)
3614
- return;
3615
- requestAnimationFrame(() => {
3616
- for (const u of [c.current, a.current]) {
3617
- if (!u)
3618
- continue;
3619
- const l = ho(u);
3620
- if (l) {
3621
- l.focus();
3622
- break;
3623
- }
3624
- }
3625
- });
3626
- }
3627
- }, [n, t, r, s, o]), null;
3628
- }
3629
- function yi(e, t) {
3630
- let {
3631
- transform: A,
3632
- ...n
3633
- } = t;
3634
- return e != null && e.length ? e.reduce((r, o) => o({
3635
- transform: r,
3636
- ...n
3637
- }), A) : A;
3638
- }
3639
- function Di(e) {
3640
- return J(
3641
- () => ({
3642
- draggable: {
3643
- ...ft.draggable,
3644
- ...e == null ? void 0 : e.draggable
3645
- },
3646
- droppable: {
3647
- ...ft.droppable,
3648
- ...e == null ? void 0 : e.droppable
3649
- },
3650
- dragOverlay: {
3651
- ...ft.dragOverlay,
3652
- ...e == null ? void 0 : e.dragOverlay
3653
- }
3654
- }),
3655
- // eslint-disable-next-line react-hooks/exhaustive-deps
3656
- [e == null ? void 0 : e.draggable, e == null ? void 0 : e.droppable, e == null ? void 0 : e.dragOverlay]
3657
- );
3658
- }
3659
- function vi(e) {
3660
- let {
3661
- activeNode: t,
3662
- measure: A,
3663
- initialRect: n,
3664
- config: r = !0
3665
- } = e;
3666
- const o = G(!1), {
3667
- x: s,
3668
- y: i
3669
- } = typeof r == "boolean" ? {
3670
- x: r,
3671
- y: r
3672
- } : r;
3673
- he(() => {
3674
- if (!s && !i || !t) {
3675
- o.current = !1;
3676
- return;
3677
- }
3678
- if (o.current || !n)
3679
- return;
3680
- const a = t == null ? void 0 : t.node.current;
3681
- if (!a || a.isConnected === !1)
3682
- return;
3683
- const u = A(a), l = OA(u, n);
3684
- if (s || (l.x = 0), i || (l.y = 0), o.current = !0, Math.abs(l.x) > 0 || Math.abs(l.y) > 0) {
3685
- const g = XA(a);
3686
- g && g.scrollBy({
3687
- top: l.y,
3688
- left: l.x
3689
- });
3690
- }
3691
- }, [t, s, i, n, A]);
3692
- }
3693
- const An = /* @__PURE__ */ ot({
3694
- ...ae,
3695
- scaleX: 1,
3696
- scaleY: 1
3697
- });
3698
- var ye;
3699
- (function(e) {
3700
- e[e.Uninitialized = 0] = "Uninitialized", e[e.Initializing = 1] = "Initializing", e[e.Initialized = 2] = "Initialized";
3701
- })(ye || (ye = {}));
3702
- const Ks = /* @__PURE__ */ bn(function(t) {
3703
- var A, n, r, o;
3704
- let {
3705
- id: s,
3706
- accessibility: i,
3707
- autoScroll: c = !0,
3708
- children: a,
3709
- sensors: u = Ii,
3710
- collisionDetection: l = Fo,
3711
- measuring: g,
3712
- modifiers: d,
3713
- ...p
3714
- } = t;
3715
- const h = mn(Bi, void 0, mi), [I, b] = h, [m, C] = mo(), [B, D] = U(ye.Uninitialized), R = B === ye.Initialized, {
3716
- draggable: {
3717
- active: w,
3718
- nodes: y,
3719
- translate: W
3720
- },
3721
- droppable: {
3722
- containers: F
3723
- }
3724
- } = I, K = w != null ? y.get(w) : null, j = G({
3725
- initial: null,
3726
- translated: null
3727
- }), N = J(() => {
3728
- var P;
3729
- return w != null ? {
3730
- id: w,
3731
- // It's possible for the active node to unmount while dragging
3732
- data: (P = K == null ? void 0 : K.data) != null ? P : pi,
3733
- rect: j
3734
- } : null;
3735
- }, [w, K]), k = G(null), [le, ie] = U(null), [z, Ne] = U(null), se = At(p, Object.values(p)), ve = at("DndDescribedBy", s), Ee = J(() => F.getEnabled(), [F]), T = Di(g), {
3736
- droppableRects: ce,
3737
- measureDroppableContainers: fe,
3738
- measuringScheduled: Re
3739
- } = ri(Ee, {
3740
- dragging: R,
3741
- dependencies: [W.x, W.y],
3742
- config: T.droppable
3743
- }), _ = Ai(y, w), Qe = J(() => z ? Lt(z) : null, [z]), Q = pn(), x = oi(_, T.draggable.measure);
3744
- vi({
3745
- activeNode: w != null ? y.get(w) : null,
3746
- config: Q.layoutShiftCompensation,
3747
- initialRect: x,
3748
- measure: T.draggable.measure
3749
- });
3750
- const v = vA(_, T.draggable.measure, x), Fe = vA(_ ? _.parentElement : null), ne = G({
3751
- activatorEvent: null,
3752
- active: null,
3753
- activeNode: _,
3754
- collisionRect: null,
3755
- collisions: null,
3756
- droppableRects: ce,
3757
- draggableNodes: y,
3758
- draggingNode: null,
3759
- draggingNodeRect: null,
3760
- droppableContainers: F,
3761
- over: null,
3762
- scrollableAncestors: [],
3763
- scrollAdjustedTranslate: null
3764
- }), Je = F.getNodeFor((A = ne.current.over) == null ? void 0 : A.id), Ie = fi({
3765
- measure: T.dragOverlay.measure
3766
- }), xe = (n = Ie.nodeRef.current) != null ? n : _, Ze = R ? (r = Ie.rect) != null ? r : v : null, AA = !!(Ie.nodeRef.current && Ie.rect), nA = ci(AA ? null : v), Kt = en(xe ? $(xe) : null), Ce = ai(R ? Je ?? _ : null), lt = gi(Ce), ut = yi(d, {
3767
- transform: {
3768
- x: W.x - nA.x,
3769
- y: W.y - nA.y,
3770
- scaleX: 1,
3771
- scaleY: 1
3772
- },
3773
- activatorEvent: z,
3774
- active: N,
3775
- activeNodeRect: v,
3776
- containerNodeRect: Fe,
3777
- draggingNodeRect: Ze,
3778
- over: ne.current.over,
3779
- overlayNodeRect: Ie.rect,
3780
- scrollableAncestors: Ce,
3781
- scrollableAncestorRects: lt,
3782
- windowRect: Kt
3783
- }), rA = Qe ? ke(Qe, W) : null, oA = li(Ce), ln = RA(oA), un = RA(oA, [v]), Me = ke(ut, ln), He = Ze ? Go(Ze, ut) : null, Te = N && He ? l({
3784
- active: N,
3785
- collisionRect: He,
3786
- droppableRects: ce,
3787
- droppableContainers: Ee,
3788
- pointerCoordinates: rA
3789
- }) : null, iA = kA(Te, "id"), [be, sA] = U(null), dn = AA ? ut : ke(ut, un), gn = Ko(dn, (o = be == null ? void 0 : be.rect) != null ? o : null, v), St = G(null), cA = M(
3790
- (P, ee) => {
3791
- let {
3792
- sensor: te,
3793
- options: me
3794
- } = ee;
3795
- if (k.current == null)
3796
- return;
3797
- const re = y.get(k.current);
3798
- if (!re)
3799
- return;
3800
- const Ae = P.nativeEvent, ue = new te({
3801
- active: k.current,
3802
- activeNode: re,
3803
- event: Ae,
3804
- options: me,
3805
- // Sensors need to be instantiated with refs for arguments that change over time
3806
- // otherwise they are frozen in time with the stale arguments
3807
- context: ne,
3808
- onAbort(L) {
3809
- if (!y.get(L))
3810
- return;
3811
- const {
3812
- onDragAbort: de
3813
- } = se.current, pe = {
3814
- id: L
3815
- };
3816
- de == null || de(pe), m({
3817
- type: "onDragAbort",
3818
- event: pe
3819
- });
3820
- },
3821
- onPending(L, Be, de, pe) {
3822
- if (!y.get(L))
3823
- return;
3824
- const {
3825
- onDragPending: ze
3826
- } = se.current, we = {
3827
- id: L,
3828
- constraint: Be,
3829
- initialCoordinates: de,
3830
- offset: pe
3831
- };
3832
- ze == null || ze(we), m({
3833
- type: "onDragPending",
3834
- event: we
3835
- });
3836
- },
3837
- onStart(L) {
3838
- const Be = k.current;
3839
- if (Be == null)
3840
- return;
3841
- const de = y.get(Be);
3842
- if (!de)
3843
- return;
3844
- const {
3845
- onDragStart: pe
3846
- } = se.current, Pe = {
3847
- activatorEvent: Ae,
3848
- active: {
3849
- id: Be,
3850
- data: de.data,
3851
- rect: j
3852
- }
3853
- };
3854
- dt(() => {
3855
- pe == null || pe(Pe), D(ye.Initializing), b({
3856
- type: H.DragStart,
3857
- initialCoordinates: L,
3858
- active: Be
3859
- }), m({
3860
- type: "onDragStart",
3861
- event: Pe
3862
- }), ie(St.current), Ne(Ae);
3863
- });
3864
- },
3865
- onMove(L) {
3866
- b({
3867
- type: H.DragMove,
3868
- coordinates: L
3869
- });
3870
- },
3871
- onEnd: Ue(H.DragEnd),
3872
- onCancel: Ue(H.DragCancel)
3873
- });
3874
- St.current = ue;
3875
- function Ue(L) {
3876
- return async function() {
3877
- const {
3878
- active: de,
3879
- collisions: pe,
3880
- over: Pe,
3881
- scrollAdjustedTranslate: ze
3882
- } = ne.current;
3883
- let we = null;
3884
- if (de && ze) {
3885
- const {
3886
- cancelDrop: Ve
3887
- } = se.current;
3888
- we = {
3889
- activatorEvent: Ae,
3890
- active: de,
3891
- collisions: pe,
3892
- delta: ze,
3893
- over: Pe
3894
- }, L === H.DragEnd && typeof Ve == "function" && await Promise.resolve(Ve(we)) && (L = H.DragCancel);
3895
- }
3896
- k.current = null, dt(() => {
3897
- b({
3898
- type: L
3899
- }), D(ye.Uninitialized), sA(null), ie(null), Ne(null), St.current = null;
3900
- const Ve = L === H.DragEnd ? "onDragEnd" : "onDragCancel";
3901
- if (we) {
3902
- const Gt = se.current[Ve];
3903
- Gt == null || Gt(we), m({
3904
- type: Ve,
3905
- event: we
3906
- });
3907
- }
3908
- });
3909
- };
3910
- }
3911
- },
3912
- // eslint-disable-next-line react-hooks/exhaustive-deps
3913
- [y]
3914
- ), hn = M((P, ee) => (te, me) => {
3915
- const re = te.nativeEvent, Ae = y.get(me);
3916
- if (
3917
- // Another sensor is already instantiating
3918
- k.current !== null || // No active draggable
3919
- !Ae || // Event has already been captured
3920
- re.dndKit || re.defaultPrevented
3921
- )
3922
- return;
3923
- const ue = {
3924
- active: Ae
3925
- };
3926
- P(te, ee.options, ue) === !0 && (re.dndKit = {
3927
- capturedBy: ee.sensor
3928
- }, k.current = me, cA(te, ee));
3929
- }, [y, cA]), aA = ni(u, hn);
3930
- ui(u), he(() => {
3931
- v && B === ye.Initializing && D(ye.Initialized);
3932
- }, [v, B]), S(
3933
- () => {
3934
- const {
3935
- onDragMove: P
3936
- } = se.current, {
3937
- active: ee,
3938
- activatorEvent: te,
3939
- collisions: me,
3940
- over: re
3941
- } = ne.current;
3942
- if (!ee || !te)
3943
- return;
3944
- const Ae = {
3945
- active: ee,
3946
- activatorEvent: te,
3947
- collisions: me,
3948
- delta: {
3949
- x: Me.x,
3950
- y: Me.y
3951
- },
3952
- over: re
3953
- };
3954
- dt(() => {
3955
- P == null || P(Ae), m({
3956
- type: "onDragMove",
3957
- event: Ae
3958
- });
3959
- });
3960
- },
3961
- // eslint-disable-next-line react-hooks/exhaustive-deps
3962
- [Me.x, Me.y]
3963
- ), S(
3964
- () => {
3965
- const {
3966
- active: P,
3967
- activatorEvent: ee,
3968
- collisions: te,
3969
- droppableContainers: me,
3970
- scrollAdjustedTranslate: re
3971
- } = ne.current;
3972
- if (!P || k.current == null || !ee || !re)
3973
- return;
3974
- const {
3975
- onDragOver: Ae
3976
- } = se.current, ue = me.get(iA), Ue = ue && ue.rect.current ? {
3977
- id: ue.id,
3978
- rect: ue.rect.current,
3979
- data: ue.data,
3980
- disabled: ue.disabled
3981
- } : null, L = {
3982
- active: P,
3983
- activatorEvent: ee,
3984
- collisions: te,
3985
- delta: {
3986
- x: re.x,
3987
- y: re.y
3988
- },
3989
- over: Ue
3990
- };
3991
- dt(() => {
3992
- sA(Ue), Ae == null || Ae(L), m({
3993
- type: "onDragOver",
3994
- event: L
3995
- });
3996
- });
3997
- },
3998
- // eslint-disable-next-line react-hooks/exhaustive-deps
3999
- [iA]
4000
- ), he(() => {
4001
- ne.current = {
4002
- activatorEvent: z,
4003
- active: N,
4004
- activeNode: _,
4005
- collisionRect: He,
4006
- collisions: Te,
4007
- droppableRects: ce,
4008
- draggableNodes: y,
4009
- draggingNode: xe,
4010
- draggingNodeRect: Ze,
4011
- droppableContainers: F,
4012
- over: be,
4013
- scrollableAncestors: Ce,
4014
- scrollAdjustedTranslate: Me
4015
- }, j.current = {
4016
- initial: Ze,
4017
- translated: He
4018
- };
4019
- }, [N, _, Te, He, y, xe, Ze, ce, F, be, Ce, Me]), $o({
4020
- ...Q,
4021
- delta: W,
4022
- draggingRect: He,
4023
- pointerCoordinates: rA,
4024
- scrollableAncestors: Ce,
4025
- scrollableAncestorRects: lt
4026
- });
4027
- const fn = J(() => ({
4028
- active: N,
4029
- activeNode: _,
4030
- activeNodeRect: v,
4031
- activatorEvent: z,
4032
- collisions: Te,
4033
- containerNodeRect: Fe,
4034
- dragOverlay: Ie,
4035
- draggableNodes: y,
4036
- droppableContainers: F,
4037
- droppableRects: ce,
4038
- over: be,
4039
- measureDroppableContainers: fe,
4040
- scrollableAncestors: Ce,
4041
- scrollableAncestorRects: lt,
4042
- measuringConfiguration: T,
4043
- measuringScheduled: Re,
4044
- windowRect: Kt
4045
- }), [N, _, v, z, Te, Fe, Ie, y, F, ce, be, fe, Ce, lt, T, Re, Kt]), In = J(() => ({
4046
- activatorEvent: z,
4047
- activators: aA,
4048
- active: N,
4049
- activeNodeRect: v,
4050
- ariaDescribedById: {
4051
- draggable: ve
4052
- },
4053
- dispatch: b,
4054
- draggableNodes: y,
4055
- over: be,
4056
- measureDroppableContainers: fe
4057
- }), [z, aA, N, v, b, ve, y, be, fe]);
4058
- return q.createElement(UA.Provider, {
4059
- value: C
4060
- }, q.createElement(Ft.Provider, {
4061
- value: In
4062
- }, q.createElement(tn.Provider, {
4063
- value: fn
4064
- }, q.createElement(An.Provider, {
4065
- value: gn
4066
- }, a)), q.createElement(wi, {
4067
- disabled: (i == null ? void 0 : i.restoreFocus) === !1
4068
- })), q.createElement(yo, {
4069
- ...i,
4070
- hiddenTextDescribedById: ve
4071
- }));
4072
- function pn() {
4073
- const P = (le == null ? void 0 : le.autoScrollEnabled) === !1, ee = typeof c == "object" ? c.enabled === !1 : c === !1, te = R && !P && !ee;
4074
- return typeof c == "object" ? {
4075
- ...c,
4076
- enabled: te
4077
- } : {
4078
- enabled: te
4079
- };
4080
- }
4081
- }), Ei = /* @__PURE__ */ ot(null), FA = "button", Ri = "Draggable";
4082
- function Qi(e) {
4083
- let {
4084
- id: t,
4085
- data: A,
4086
- disabled: n = !1,
4087
- attributes: r
4088
- } = e;
4089
- const o = at(Ri), {
4090
- activators: s,
4091
- activatorEvent: i,
4092
- active: c,
4093
- activeNodeRect: a,
4094
- ariaDescribedById: u,
4095
- draggableNodes: l,
4096
- over: g
4097
- } = Ke(Ft), {
4098
- role: d = FA,
4099
- roleDescription: p = "draggable",
4100
- tabIndex: h = 0
4101
- } = r ?? {}, I = (c == null ? void 0 : c.id) === t, b = Ke(I ? An : Ei), [m, C] = pt(), [B, D] = pt(), R = di(s, t), w = At(A);
4102
- he(
4103
- () => (l.set(t, {
4104
- id: t,
4105
- key: o,
4106
- node: m,
4107
- activatorNode: B,
4108
- data: w
4109
- }), () => {
4110
- const W = l.get(t);
4111
- W && W.key === o && l.delete(t);
4112
- }),
4113
- // eslint-disable-next-line react-hooks/exhaustive-deps
4114
- [l, t]
4115
- );
4116
- const y = J(() => ({
4117
- role: d,
4118
- tabIndex: h,
4119
- "aria-disabled": n,
4120
- "aria-pressed": I && d === FA ? !0 : void 0,
4121
- "aria-roledescription": p,
4122
- "aria-describedby": u.draggable
4123
- }), [n, d, h, I, p, u.draggable]);
4124
- return {
4125
- active: c,
4126
- activatorEvent: i,
4127
- activeNodeRect: a,
4128
- attributes: y,
4129
- isDragging: I,
4130
- listeners: n ? void 0 : R,
4131
- node: m,
4132
- over: g,
4133
- setNodeRef: C,
4134
- setActivatorNodeRef: D,
4135
- transform: b
4136
- };
4137
- }
4138
- function Fi() {
4139
- return Ke(tn);
4140
- }
4141
- const Ki = "Droppable", Si = {
4142
- timeout: 25
4143
- };
4144
- function Gi(e) {
4145
- let {
4146
- data: t,
4147
- disabled: A = !1,
4148
- id: n,
4149
- resizeObserverConfig: r
4150
- } = e;
4151
- const o = at(Ki), {
4152
- active: s,
4153
- dispatch: i,
4154
- over: c,
4155
- measureDroppableContainers: a
4156
- } = Ke(Ft), u = G({
4157
- disabled: A
4158
- }), l = G(!1), g = G(null), d = G(null), {
4159
- disabled: p,
4160
- updateMeasurementsFor: h,
4161
- timeout: I
4162
- } = {
4163
- ...Si,
4164
- ...r
4165
- }, b = At(h ?? n), m = M(
4166
- () => {
4167
- if (!l.current) {
4168
- l.current = !0;
4169
- return;
4170
- }
4171
- d.current != null && clearTimeout(d.current), d.current = setTimeout(() => {
4172
- a(Array.isArray(b.current) ? b.current : [b.current]), d.current = null;
4173
- }, I);
4174
- },
4175
- //eslint-disable-next-line react-hooks/exhaustive-deps
4176
- [I]
4177
- ), C = Qt({
4178
- callback: m,
4179
- disabled: p || !s
4180
- }), B = M((y, W) => {
4181
- C && (W && (C.unobserve(W), l.current = !1), y && C.observe(y));
4182
- }, [C]), [D, R] = pt(B), w = At(t);
4183
- return S(() => {
4184
- !C || !D.current || (C.disconnect(), l.current = !1, C.observe(D.current));
4185
- }, [D, C]), S(
4186
- () => (i({
4187
- type: H.RegisterDroppable,
4188
- element: {
4189
- id: n,
4190
- key: o,
4191
- disabled: A,
4192
- node: D,
4193
- rect: g,
4194
- data: w
4195
- }
4196
- }), () => i({
4197
- type: H.UnregisterDroppable,
4198
- key: o,
4199
- id: n
4200
- })),
4201
- // eslint-disable-next-line react-hooks/exhaustive-deps
4202
- [n]
4203
- ), S(() => {
4204
- A !== u.current.disabled && (i({
4205
- type: H.SetDroppableDisabled,
4206
- id: n,
4207
- key: o,
4208
- disabled: A
4209
- }), u.current.disabled = A);
4210
- }, [n, o, A, i]), {
4211
- active: s,
4212
- rect: g,
4213
- isOver: (c == null ? void 0 : c.id) === n,
4214
- node: D,
4215
- over: c,
4216
- setNodeRef: R
4217
- };
4218
- }
4219
- function nn(e, t, A) {
4220
- const n = e.slice();
4221
- return n.splice(A < 0 ? n.length + A : A, 0, n.splice(t, 1)[0]), n;
4222
- }
4223
- function Yi(e, t) {
4224
- return e.reduce((A, n, r) => {
4225
- const o = t.get(n);
4226
- return o && (A[r] = o), A;
4227
- }, Array(e.length));
4228
- }
4229
- function gt(e) {
4230
- return e !== null && e >= 0;
4231
- }
4232
- function Wi(e, t) {
4233
- if (e === t)
4234
- return !0;
4235
- if (e.length !== t.length)
4236
- return !1;
4237
- for (let A = 0; A < e.length; A++)
4238
- if (e[A] !== t[A])
4239
- return !1;
4240
- return !0;
4241
- }
4242
- function Ni(e) {
4243
- return typeof e == "boolean" ? {
4244
- draggable: e,
4245
- droppable: e
4246
- } : e;
4247
- }
4248
- const rn = (e) => {
4249
- let {
4250
- rects: t,
4251
- activeIndex: A,
4252
- overIndex: n,
4253
- index: r
4254
- } = e;
4255
- const o = nn(t, n, A), s = t[r], i = o[r];
4256
- return !i || !s ? null : {
4257
- x: i.left - s.left,
4258
- y: i.top - s.top,
4259
- scaleX: i.width / s.width,
4260
- scaleY: i.height / s.height
4261
- };
4262
- }, ht = {
4263
- scaleX: 1,
4264
- scaleY: 1
4265
- }, Ss = (e) => {
4266
- var t;
4267
- let {
4268
- activeIndex: A,
4269
- activeNodeRect: n,
4270
- index: r,
4271
- rects: o,
4272
- overIndex: s
4273
- } = e;
4274
- const i = (t = o[A]) != null ? t : n;
4275
- if (!i)
4276
- return null;
4277
- if (r === A) {
4278
- const a = o[s];
4279
- return a ? {
4280
- x: 0,
4281
- y: A < s ? a.top + a.height - (i.top + i.height) : a.top - i.top,
4282
- ...ht
4283
- } : null;
4284
- }
4285
- const c = Ji(o, r, A);
4286
- return r > A && r <= s ? {
4287
- x: 0,
4288
- y: -i.height - c,
4289
- ...ht
4290
- } : r < A && r >= s ? {
4291
- x: 0,
4292
- y: i.height + c,
4293
- ...ht
4294
- } : {
4295
- x: 0,
4296
- y: 0,
4297
- ...ht
4298
- };
4299
- };
4300
- function Ji(e, t, A) {
4301
- const n = e[t], r = e[t - 1], o = e[t + 1];
4302
- return n ? A < t ? r ? n.top - (r.top + r.height) : o ? o.top - (n.top + n.height) : 0 : o ? o.top - (n.top + n.height) : r ? n.top - (r.top + r.height) : 0 : 0;
4303
- }
4304
- const on = "Sortable", sn = /* @__PURE__ */ q.createContext({
4305
- activeIndex: -1,
4306
- containerId: on,
4307
- disableTransforms: !1,
4308
- items: [],
4309
- overIndex: -1,
4310
- useDragOverlay: !1,
4311
- sortedRects: [],
4312
- strategy: rn,
4313
- disabled: {
4314
- draggable: !1,
4315
- droppable: !1
4316
- }
4317
- });
4318
- function Gs(e) {
4319
- let {
4320
- children: t,
4321
- id: A,
4322
- items: n,
4323
- strategy: r = rn,
4324
- disabled: o = !1
4325
- } = e;
4326
- const {
4327
- active: s,
4328
- dragOverlay: i,
4329
- droppableRects: c,
4330
- over: a,
4331
- measureDroppableContainers: u
4332
- } = Fi(), l = at(on, A), g = i.rect !== null, d = J(() => n.map((R) => typeof R == "object" && "id" in R ? R.id : R), [n]), p = s != null, h = s ? d.indexOf(s.id) : -1, I = a ? d.indexOf(a.id) : -1, b = G(d), m = !Wi(d, b.current), C = I !== -1 && h === -1 || m, B = Ni(o);
4333
- he(() => {
4334
- m && p && u(d);
4335
- }, [m, d, p, u]), S(() => {
4336
- b.current = d;
4337
- }, [d]);
4338
- const D = J(
4339
- () => ({
4340
- activeIndex: h,
4341
- containerId: l,
4342
- disabled: B,
4343
- disableTransforms: C,
4344
- items: d,
4345
- overIndex: I,
4346
- useDragOverlay: g,
4347
- sortedRects: Yi(d, c),
4348
- strategy: r
4349
- }),
4350
- // eslint-disable-next-line react-hooks/exhaustive-deps
4351
- [h, l, B.draggable, B.droppable, C, d, I, c, g, r]
4352
- );
4353
- return q.createElement(sn.Provider, {
4354
- value: D
4355
- }, t);
4356
- }
4357
- const xi = (e) => {
4358
- let {
4359
- id: t,
4360
- items: A,
4361
- activeIndex: n,
4362
- overIndex: r
4363
- } = e;
4364
- return nn(A, n, r).indexOf(t);
4365
- }, Zi = (e) => {
4366
- let {
4367
- containerId: t,
4368
- isSorting: A,
4369
- wasDragging: n,
4370
- index: r,
4371
- items: o,
4372
- newIndex: s,
4373
- previousItems: i,
4374
- previousContainerId: c,
4375
- transition: a
4376
- } = e;
4377
- return !a || !n || i !== o && r === s ? !1 : A ? !0 : s !== r && t === c;
4378
- }, Mi = {
4379
- duration: 200,
4380
- easing: "ease"
4381
- }, cn = "transform", Hi = /* @__PURE__ */ Ct.Transition.toString({
4382
- property: cn,
4383
- duration: 0,
4384
- easing: "linear"
4385
- }), Ui = {
4386
- roleDescription: "sortable"
4387
- };
4388
- function ki(e) {
4389
- let {
4390
- disabled: t,
4391
- index: A,
4392
- node: n,
4393
- rect: r
4394
- } = e;
4395
- const [o, s] = U(null), i = G(A);
4396
- return he(() => {
4397
- if (!t && A !== i.current && n.current) {
4398
- const c = r.current;
4399
- if (c) {
4400
- const a = je(n.current, {
4401
- ignoreTransform: !0
4402
- }), u = {
4403
- x: c.left - a.left,
4404
- y: c.top - a.top,
4405
- scaleX: c.width / a.width,
4406
- scaleY: c.height / a.height
4407
- };
4408
- (u.x || u.y) && s(u);
4409
- }
4410
- }
4411
- A !== i.current && (i.current = A);
4412
- }, [t, A, n, r]), S(() => {
4413
- o && s(null);
4414
- }, [o]), o;
4415
- }
4416
- function Ys(e) {
4417
- let {
4418
- animateLayoutChanges: t = Zi,
4419
- attributes: A,
4420
- disabled: n,
4421
- data: r,
4422
- getNewIndex: o = xi,
4423
- id: s,
4424
- strategy: i,
4425
- resizeObserverConfig: c,
4426
- transition: a = Mi
4427
- } = e;
4428
- const {
4429
- items: u,
4430
- containerId: l,
4431
- activeIndex: g,
4432
- disabled: d,
4433
- disableTransforms: p,
4434
- sortedRects: h,
4435
- overIndex: I,
4436
- useDragOverlay: b,
4437
- strategy: m
4438
- } = Ke(sn), C = Oi(n, d), B = u.indexOf(s), D = J(() => ({
4439
- sortable: {
4440
- containerId: l,
4441
- index: B,
4442
- items: u
4443
- },
4444
- ...r
4445
- }), [l, r, B, u]), R = J(() => u.slice(u.indexOf(s)), [u, s]), {
4446
- rect: w,
4447
- node: y,
4448
- isOver: W,
4449
- setNodeRef: F
4450
- } = Gi({
4451
- id: s,
4452
- data: D,
4453
- disabled: C.droppable,
4454
- resizeObserverConfig: {
4455
- updateMeasurementsFor: R,
4456
- ...c
4457
- }
4458
- }), {
4459
- active: K,
4460
- activatorEvent: j,
4461
- activeNodeRect: N,
4462
- attributes: k,
4463
- setNodeRef: le,
4464
- listeners: ie,
4465
- isDragging: z,
4466
- over: Ne,
4467
- setActivatorNodeRef: se,
4468
- transform: ve
4469
- } = Qi({
4470
- id: s,
4471
- data: D,
4472
- attributes: {
4473
- ...Ui,
4474
- ...A
4475
- },
4476
- disabled: C.draggable
4477
- }), Ee = ao(F, le), T = !!K, ce = T && !p && gt(g) && gt(I), fe = !b && z, Re = fe && ce ? ve : null, Qe = ce ? Re ?? (i ?? m)({
4478
- rects: h,
4479
- activeNodeRect: N,
4480
- activeIndex: g,
4481
- overIndex: I,
4482
- index: B
4483
- }) : null, Q = gt(g) && gt(I) ? o({
4484
- id: s,
4485
- items: u,
4486
- activeIndex: g,
4487
- overIndex: I
4488
- }) : B, x = K == null ? void 0 : K.id, v = G({
4489
- activeId: x,
4490
- items: u,
4491
- newIndex: Q,
4492
- containerId: l
4493
- }), Fe = u !== v.current.items, ne = t({
4494
- active: K,
4495
- containerId: l,
4496
- isDragging: z,
4497
- isSorting: T,
4498
- id: s,
4499
- index: B,
4500
- items: u,
4501
- newIndex: v.current.newIndex,
4502
- previousItems: v.current.items,
4503
- previousContainerId: v.current.containerId,
4504
- transition: a,
4505
- wasDragging: v.current.activeId != null
4506
- }), Je = ki({
4507
- disabled: !ne,
4508
- index: B,
4509
- node: y,
4510
- rect: w
4511
- });
4512
- return S(() => {
4513
- T && v.current.newIndex !== Q && (v.current.newIndex = Q), l !== v.current.containerId && (v.current.containerId = l), u !== v.current.items && (v.current.items = u);
4514
- }, [T, Q, l, u]), S(() => {
4515
- if (x === v.current.activeId)
4516
- return;
4517
- if (x != null && v.current.activeId == null) {
4518
- v.current.activeId = x;
4519
- return;
4520
- }
4521
- const xe = setTimeout(() => {
4522
- v.current.activeId = x;
4523
- }, 50);
4524
- return () => clearTimeout(xe);
4525
- }, [x]), {
4526
- active: K,
4527
- activeIndex: g,
4528
- attributes: k,
4529
- data: D,
4530
- rect: w,
4531
- index: B,
4532
- newIndex: Q,
4533
- items: u,
4534
- isOver: W,
4535
- isSorting: T,
4536
- isDragging: z,
4537
- listeners: ie,
4538
- node: y,
4539
- overIndex: I,
4540
- over: Ne,
4541
- setNodeRef: Ee,
4542
- setActivatorNodeRef: se,
4543
- setDroppableNodeRef: F,
4544
- setDraggableNodeRef: le,
4545
- transform: Je ?? Qe,
4546
- transition: Ie()
4547
- };
4548
- function Ie() {
4549
- if (
4550
- // Temporarily disable transitions for a single frame to set up derived transforms
4551
- Je || // Or to prevent items jumping to back to their "new" position when items change
4552
- Fe && v.current.newIndex === B
4553
- )
4554
- return Hi;
4555
- if (!(fe && !$t(j) || !a) && (T || ne))
4556
- return Ct.Transition.toString({
4557
- ...a,
4558
- property: cn
4559
- });
4560
- }
4561
- }
4562
- function Oi(e, t) {
4563
- var A, n;
4564
- return typeof e == "boolean" ? {
4565
- draggable: e,
4566
- // Backwards compatibility
4567
- droppable: !1
4568
- } : {
4569
- draggable: (A = e == null ? void 0 : e.draggable) != null ? A : t.draggable,
4570
- droppable: (n = e == null ? void 0 : e.droppable) != null ? n : t.droppable
4571
- };
4572
- }
4573
- function Bt(e) {
4574
- if (!e)
4575
- return !1;
4576
- const t = e.data.current;
4577
- return !!(t && "sortable" in t && typeof t.sortable == "object" && "containerId" in t.sortable && "items" in t.sortable && "index" in t.sortable);
4578
- }
4579
- const Xi = [E.Down, E.Right, E.Up, E.Left], Ws = (e, t) => {
4580
- let {
4581
- context: {
4582
- active: A,
4583
- collisionRect: n,
4584
- droppableRects: r,
4585
- droppableContainers: o,
4586
- over: s,
4587
- scrollableAncestors: i
4588
- }
4589
- } = t;
4590
- if (Xi.includes(e.code)) {
4591
- if (e.preventDefault(), !A || !n)
4592
- return;
4593
- const c = [];
4594
- o.getEnabled().forEach((l) => {
4595
- if (!l || l != null && l.disabled)
4596
- return;
4597
- const g = r.get(l.id);
4598
- if (g)
4599
- switch (e.code) {
4600
- case E.Down:
4601
- n.top < g.top && c.push(l);
4602
- break;
4603
- case E.Up:
4604
- n.top > g.top && c.push(l);
4605
- break;
4606
- case E.Left:
4607
- n.left > g.left && c.push(l);
4608
- break;
4609
- case E.Right:
4610
- n.left < g.left && c.push(l);
4611
- break;
4612
- }
4613
- });
4614
- const a = Ro({
4615
- collisionRect: n,
4616
- droppableRects: r,
4617
- droppableContainers: c
4618
- });
4619
- let u = kA(a, "id");
4620
- if (u === (s == null ? void 0 : s.id) && a.length > 1 && (u = a[1].id), u != null) {
4621
- const l = o.get(A.id), g = o.get(u), d = g ? r.get(g.id) : null, p = g == null ? void 0 : g.node.current;
4622
- if (p && d && l && g) {
4623
- const I = Rt(p).some((R, w) => i[w] !== R), b = an(l, g), m = Li(l, g), C = I || !b ? {
4624
- x: 0,
4625
- y: 0
4626
- } : {
4627
- x: m ? n.width - d.width : 0,
4628
- y: m ? n.height - d.height : 0
4629
- }, B = {
4630
- x: d.left,
4631
- y: d.top
4632
- };
4633
- return C.x && C.y ? B : nt(B, C);
4634
- }
4635
- }
4636
- }
4637
- };
4638
- function an(e, t) {
4639
- return !Bt(e) || !Bt(t) ? !1 : e.data.current.sortable.containerId === t.data.current.sortable.containerId;
4640
- }
4641
- function Li(e, t) {
4642
- return !Bt(e) || !Bt(t) || !an(e, t) ? !1 : e.data.current.sortable.index < t.data.current.sortable.index;
4643
- }
4644
- const ji = /^\d*[.,]?\d{0,2}$/, Ns = (e) => ji.test(e), Ti = (e) => Number.isNaN(e) || e < 0 ? 0 : e, Js = (e) => Ti(Number(e.replace(",", "."))), xs = ({ criteria: e, onReorderCriteria: t }) => {
4645
- const { translate: A } = wt(), [n, r] = U(null), [o, s] = U(""), i = M(
4646
- (u, l) => {
4647
- r(u.id || null), s(A("criterionMovedAnnouncement", { position: l + 1 })), setTimeout(() => s(""), 1e3);
4648
- },
4649
- [A]
4650
- ), c = M(
4651
- (u, l) => {
4652
- const g = u + l;
4653
- g < 0 || g >= e.length || (i(e[u], g), t(u, g));
4654
- },
4655
- [e, t, i]
4656
- ), a = (u, l) => {
4657
- if (u === l) return;
4658
- const g = e.findIndex((p, h) => Wt(p, h) === u), d = e.findIndex((p, h) => Wt(p, h) === l);
4659
- g === -1 || d === -1 || (i(e[g], d), t(g, d));
4660
- };
4661
- return {
4662
- sortableIds: e.map(Wt),
4663
- movedCriterionId: n,
4664
- clearMovedCriterion: () => r(null),
4665
- srAnnouncement: o,
4666
- moveCriterion: c,
4667
- moveCriterionBySortableId: a
4668
- };
4669
- }, Zs = "data:image/svg+xml,%3csvg%20xmlns='http://www.w3.org/2000/svg'%20id='Layer_1'%20viewBox='0%200%20282%20211'%3e%3cstyle%3e%20.st1{fill:%23c0c6cb}.st2{fill:%23243038}.st3{fill:%23e5e7e9}%20%3c/style%3e%3cpath%20fill='%237f8c97'%20d='M262.7%20210.6c-.5%200-1%200-1.5-.1l.1-2c.6%200%201.3.1%201.9%200l.1%202c-.2.1-.4.1-.6.1zm4.8-.5l-.5-1.9c.6-.1%201.2-.3%201.8-.5l.7%201.9c-.7.1-1.3.3-2%20.5zm-10.4-.2c-.7-.2-1.3-.4-2-.6l.6-1.9c.6.2%201.2.4%201.9.5l-.5%202zm-5.8-2.1c-.6-.3-1.2-.6-1.8-1l1-1.7c.6.3%201.1.6%201.7.9l-.9%201.8zm22-.3l-1.1-1.7c.5-.3%201-.7%201.5-1.1l1.3%201.5c-.6.5-1.1%201-1.7%201.3zm-27.3-2.9c-.5-.4-1.1-.8-1.6-1.3l1.3-1.5%201.5%201.2-1.2%201.6zm31.8-1.4l-1.6-1.2c.4-.5.7-1%201.1-1.6l1.7%201c-.3.7-.7%201.3-1.2%201.8zm-36.5-2.6c-.5-.5-.9-1-1.4-1.5l1.5-1.3c.4.5.9%201%201.3%201.4l-1.4%201.4zm39.6-2.9l-1.9-.7c.2-.5.4-1%20.5-1.5l1.9.6c-.1.6-.3%201.1-.5%201.6zm-43.6-1.8c-.4-.5-.8-1.1-1.2-1.7l1.7-1.1c.4.5.8%201.1%201.1%201.6l-1.6%201.2zm-3.3-5.1c-.3-.6-.7-1.2-1-1.8l1.8-.9c.3.6.6%201.2.9%201.7l-1.7%201zm-2.7-5.5c-.3-.6-.5-1.3-.7-1.9l1.9-.7c.2.6.5%201.2.7%201.8l-1.9.8z'/%3e%3cpath%20d='M73%20101.7c-3.5-6.3-8.6-11.1-14.5-14.3-1.5%201.4-3%202.6-4.2%202.9-3.7%201-7.7-2.3-11.3-3s-5.7%203-9.3%201.7c-1.9-.7-2.3-2.6-2.3-4.9-.3.1-.7.2-1%20.3-4.2%201.2-6.2%206.1-4%2010l28.9%2051.2c2.2%203.8%207.4%204.7%2010.6%201.7%2012.2-11.4%2015.7-30.3%207.1-45.6z'%20class='st1'/%3e%3cpath%20d='M61.1%20150c-.4%200-.8%200-1.3-.1-2.4-.4-4.4-1.8-5.6-3.9L25.4%2094.8c-1.2-2.1-1.3-4.6-.4-6.8s2.8-3.9%205.1-4.6c.3-.1.6-.2.8-.2l1.4-.4v1.3c.1%202.5.5%203.6%201.7%204%201.6.6%202.7%200%204.2-.7%201.4-.7%203-1.4%205-1%201.5.3%203%20.9%204.5%201.6%202.3%201%204.5%202%206.4%201.4.6-.2%201.7-.8%203.7-2.7l.5-.5.6.3c6.2%203.4%2011.4%208.5%2014.9%2014.7%208.7%2015.5%205.7%2034.7-7.4%2046.7-1.5%201.4-3.3%202.1-5.3%202.1zM30.4%2085.4c-1.6.5-2.9%201.7-3.6%203.3-.7%201.7-.6%203.5.3%205.1L56%20145c.9%201.6%202.4%202.6%204.2%202.9%201.8.3%203.6-.2%204.9-1.5%2012.4-11.4%2015.3-29.6%207-44.3-3.2-5.7-7.9-10.4-13.5-13.6-1.7%201.5-3%202.4-4%202.6-2.6.7-5.2-.4-7.8-1.5-1.4-.6-2.8-1.2-4-1.4-1.4-.3-2.5.3-3.8.9-1.6.7-3.4%201.6-5.7.7-2.1-.6-2.7-2.5-2.9-4.4z'%20class='st2'/%3e%3cpath%20d='M95.2%20141.2c-8.6-15.3-26.5-22.1-42.7-17.4-4.2%201.2-6.2%206.1-4%2010L77.3%20185c2.2%203.8%207.4%204.7%2010.6%201.7%2012.5-11.4%2015.9-30.2%207.3-45.5z'%20class='st1'/%3e%3cpath%20d='M83.3%20189.5c-.4%200-.8%200-1.3-.1-2.4-.4-4.4-1.8-5.6-3.9l-28.9-51.2c-1.2-2.1-1.3-4.6-.4-6.8s2.8-3.9%205.1-4.6c17.1-5%2035.1%202.3%2043.8%2017.9s5.7%2034.7-7.4%2046.7c-1.4%201.3-3.3%202-5.3%202zM63%20123.3c-3.4%200-6.8.5-10.2%201.5-1.7.5-3.1%201.7-3.8%203.4-.7%201.7-.6%203.5.3%205.1l28.9%2051.2c.9%201.6%202.4%202.6%204.2%202.9%201.8.3%203.5-.2%204.9-1.5%2012.4-11.4%2015.3-29.6%207-44.3-6.5-11.5-18.6-18.3-31.3-18.3z'%20class='st2'/%3e%3cpath%20d='M67%20166.6c16.8-4.2%2036.1-12%2055.5-22.9%2048.5-27.3%2079.6-64.1%2069.4-82.1-10.2-18-57.7-10.5-106.2%2016.8-19.4%2010.9-36.1%2023.4-48.4%2035.6L67%20166.6z'%20class='st3'/%3e%3cpath%20d='M66.5%20167.7l-30.4-53.9.5-.5c12.9-12.7%2029.7-25.1%2048.6-35.7C108.7%2064.2%20132.8%2055.1%20153%2052c20.5-3.2%2034.6%200%2039.7%209.1%205.1%209.1.6%2022.9-12.8%2038.7-13.2%2015.6-33.4%2031.5-57%2044.8-18.9%2010.6-38.2%2018.6-55.7%2023l-.7.1zm-27.9-53.6l28.9%2051.3c17.2-4.4%2036-12.2%2054.5-22.6%2023.3-13.2%2043.4-28.9%2056.4-44.3C191.2%2083.3%20195.7%2070.3%20191%2062c-4.7-8.3-18.1-11.2-37.7-8.1-19.9%203.2-43.8%2012.1-67.1%2025.3-18.5%2010.4-35%2022.5-47.6%2034.9z'%20class='st2'/%3e%3cpath%20d='M193.6%20137.9c-10.8-5.9-24-6.2-35-.5-3.9%202-4.9%207.2-2%2010.6l14.7%2017.1c5.9-8.8%2013.4-18%2022.3-27.2z'%20class='st1'/%3e%3cpath%20d='M171.3%20166.8l-15.5-18.1c-1.6-1.8-2.2-4.2-1.7-6.6.5-2.4%201.9-4.4%204.1-5.5%2011.3-5.9%2024.8-5.7%2036%20.5l1.1.6-.9.9c-8.7%209-16.2%2018.1-22.3%2027.1l-.8%201.1zm4.4-32.6c-5.7%200-11.4%201.4-16.6%204.1-1.6.8-2.7%202.3-3%204.1-.3%201.8.1%203.6%201.3%204.9l13.8%2016.1c5.8-8.4%2012.8-16.9%2020.9-25.3-5.3-2.5-10.9-3.9-16.4-3.9z'%20class='st2'/%3e%3cpath%20fill='%23d0d4d8'%20d='M45.9%20164.3l-17.6-31.1%2012.4-13.3%2022.9%2040.7z'/%3e%3cpath%20d='M45.4%20165.4L27.1%20133l13.8-14.8%2024.3%2043-19.8%204.2zm-15.8-32.1l16.8%2029.8%2015.7-3.3-21.6-38.3-10.9%2011.8z'%20class='st2'/%3e%3ccircle%20cx='106.4'%20cy='109.6'%20r='21.6'%20class='st1'/%3e%3cpath%20d='M106.5%20132.3c-7.9%200-15.6-4.1-19.7-11.5-3-5.3-3.7-11.4-2.1-17.2%201.6-5.8%205.4-10.7%2010.7-13.6%205.3-3%2011.4-3.7%2017.2-2.1%205.8%201.6%2010.7%205.4%2013.6%2010.7%206.1%2010.9%202.3%2024.7-8.6%2030.8-3.6%201.9-7.4%202.9-11.1%202.9zm-.1-43.3c-3.5%200-7%20.9-10.1%202.7-4.8%202.7-8.3%207.1-9.7%2012.4-1.5%205.3-.8%2010.9%201.9%2015.7%205.6%209.9%2018.2%2013.4%2028.1%207.8%209.9-5.6%2013.4-18.2%207.8-28.1-2.7-4.8-7.1-8.3-12.4-9.7-1.9-.5-3.7-.8-5.6-.8z'%20class='st2'/%3e%3ccircle%20cx='106.4'%20cy='109.6'%20r='15.1'%20fill='%239ad6f5'/%3e%3cpath%20d='M106.5%20125.7c-1.5%200-2.9-.2-4.4-.6-4.1-1.2-7.6-3.9-9.7-7.6-2.1-3.7-2.6-8.1-1.5-12.2s3.9-7.6%207.6-9.7%208.1-2.6%2012.2-1.5c4.1%201.2%207.6%203.9%209.7%207.6s2.6%208.1%201.5%2012.2-3.9%207.6-7.6%209.7c-2.4%201.4-5.1%202.1-7.8%202.1zm-.1-30.2c-2.4%200-4.8.6-6.9%201.8-3.3%201.8-5.6%204.9-6.7%208.5-1%203.6-.6%207.4%201.3%2010.7s4.9%205.6%208.5%206.7c3.6%201%207.4.6%2010.7-1.3%203.3-1.8%205.6-4.9%206.7-8.5%201-3.6.6-7.4-1.3-10.7-1.8-3.3-4.9-5.6-8.5-6.7-1.2-.3-2.5-.5-3.8-.5z'%20class='st2'/%3e%3cpath%20d='M153.8%2051.8h2v61.1h-2z'%20class='st2'%20transform='rotate(-29.402%20154.78%2082.402)'/%3e%3cpath%20d='M18.3%2065.9l-1.8-.8C9.4%2062%206.3%2053.7%209.4%2046.6l13-29.2c.4-1%201.6-1.5%202.6-1L48.8%2027c1%20.4%201.5%201.6%201%202.6l-13%2029.2c-3.1%207.1-11.4%2010.3-18.5%207.1z'%20class='st3'/%3e%3cpath%20d='M24%2068.1c-2.1%200-4.1-.4-6.1-1.3l-1.8-.8c-3.7-1.6-6.5-4.6-7.9-8.3-1.4-3.7-1.3-7.8.3-11.5l13-29.2c.3-.7.9-1.3%201.7-1.6.7-.3%201.6-.3%202.3.1L49.2%2026c.7.3%201.3.9%201.6%201.7.3.7.3%201.6-.1%202.3l-13%2029.2c-1.6%203.7-4.6%206.5-8.3%207.9-1.7.7-3.6%201-5.4%201zm.2-50.9c-.1%200-.2%200-.4.1s-.4.3-.6.5L10.3%2047c-1.4%203.2-1.5%206.7-.3%209.9s3.7%205.8%206.9%207.2l1.8.8c6.5%202.9%2014.2%200%2017.2-6.6l13-29.2c.1-.2.1-.5%200-.8-.1-.2-.3-.4-.5-.6L24.6%2017.3c-.1-.1-.2-.1-.4-.1z'%20class='st2'/%3e%3cpath%20fill='%23f99c9f'%20d='M23.5%2025.9h20v7h-20z'%20transform='rotate(23.964%2033.469%2029.414)'/%3e%3cpath%20d='M41.7%2038l-20.1-8.9%203.7-8.2%2020.1%208.9-3.7%208.2zM24.2%2028l16.4%207.3%202-4.6-16.4-7.3-2%204.6z'%20class='st2'/%3e%3cpath%20d='M28.9%2022.5h2v30h-2z'%20class='st2'%20transform='rotate(-66.034%2029.894%2037.456)'/%3e%3ccircle%20cx='41.3'%20cy='11.6'%20r='4'%20class='st3'/%3e%3cpath%20d='M41.3%2016.6c-.7%200-1.4-.1-2-.4-2.5-1.1-3.7-4.1-2.5-6.6%201-2.6%204-3.7%206.5-2.6s3.7%204.1%202.5%206.6c-.8%201.8-2.6%203-4.5%203zm0-8c-.4%200-.7.1-1.1.2-.7.3-1.3.8-1.7%201.6-.7%201.5%200%203.3%201.5%204%201.5.7%203.3%200%204-1.5.7-1.5%200-3.3-1.5-4-.4-.3-.8-.3-1.2-.3z'%20class='st2'/%3e%3cpath%20d='M34.8%2017.4h7v2h-7z'%20class='st2'%20transform='rotate(-66.039%2038.252%2018.406)'/%3e%3cpath%20d='M13.5%2037.5C1.5%2032.2-1.8%2023.9%203.4%2012.2l5.5%202.4C5%2023.3%206.9%2028%2015.9%2032l-2.4%205.5z'%20class='st3'/%3e%3cpath%20d='M14%2038.8l-.9-.4C6.8%2035.6%202.8%2032%201%2027.6c-1.8-4.4-1.3-9.7%201.4-15.8l.4-.9%207.3%203.2-.3.9c-1.9%204.2-2.3%207.2-1.3%209.6%201%202.4%203.5%204.5%207.8%206.4l.9.4-3.2%207.4zM3.9%2013.5c-2.2%205.2-2.5%209.6-1%2013.3%201.5%203.7%204.8%206.8%2010.1%209.3l1.6-3.7c-4.3-2-6.8-4.3-8-7.1-1.1-2.8-.8-6%20.9-10.3l-3.6-1.5z'%20class='st2'/%3e%3cpath%20d='M8.7%2015c-1%200-2.1-.2-3-.7-1.8-.8-3.2-2.3-4-4.2-.7-1.8-.6-3.8.2-5.7C3%201.9%205.4.2%208.2%200l.2%202c-2%20.2-3.8%201.4-4.6%203.3-.7%201.3-.7%202.8-.2%204.2s1.6%202.5%202.9%203.1c1.3.6%202.8.6%204.2.1%201.4-.5%202.5-1.6%203.1-2.9.9-2%20.5-4.4-1-6l1.5-1.4c2.1%202.2%202.6%205.4%201.4%208.2-.8%201.8-2.3%203.2-4.2%204-.9.2-1.8.4-2.8.4z'%20class='st2'/%3e%3cpath%20d='M13.5%2037.5c-.7-.3-1.3-.6-2-.9l2.7-5.3c.5.3%201.1.5%201.7.8l-2.4%205.4zm-5.8-3.3c-.6-.5-1.3-1-1.8-1.5l4.1-4.4c.4.4.8.7%201.3%201l-3.6%204.9zm-4.9-5.3c-.4-.7-.8-1.5-1-2.3l5.7-1.9c.1.4.3.9.5%201.3l-5.2%202.9zM7%2021.7l-6-.1c0-.8.1-1.6.2-2.4l5.9.9c0%20.6-.1%201.1-.1%201.6zm1-4.9l-5.7-2c.2-.7.5-1.4.8-2l5.5%202.3c-.2.6-.4%201.2-.6%201.7z'%20class='st2'/%3e%3cpath%20d='M43.5%2043.7C55.5%2049%2058.8%2057.3%2053.6%2069l-5.5-2.4c3.8-8.7%201.9-13.4-7.1-17.4l2.5-5.5z'%20class='st3'/%3e%3cpath%20d='M54.1%2070.3l-7.3-3.2.4-.9c3.6-8.2%202-12.2-6.5-16l-.9-.4%203.2-7.3.9.4c6.2%202.8%2010.3%206.4%2012%2010.8%201.8%204.4%201.3%209.7-1.4%2015.8l-.4.8zm-4.7-4.2l3.7%201.6c2.2-5.2%202.5-9.6%201-13.3-1.5-3.7-4.8-6.8-10.1-9.3l-1.6%203.7c8.4%203.9%2010.5%208.9%207%2017.3z'%20class='st2'/%3e%3cpath%20d='M48.8%2081.2l-.2-2c2-.2%203.8-1.4%204.6-3.3%201.2-2.8%200-6-2.8-7.3l.8-1.8c3.8%201.7%205.5%206.1%203.8%209.9-1%202.6-3.4%204.3-6.2%204.5z'%20class='st2'/%3e%3cpath%20d='M53.9%2068.4l-5.5-2.3c.2-.6.5-1.1.7-1.7l5.7%202c-.4.6-.6%201.3-.9%202zm1.9-6.4l-5.9-.9c.1-.5.1-1.1.1-1.6l6%20.1c0%20.7-.1%201.5-.2%202.4zm-6.2-5.4c-.2-.4-.4-.9-.6-1.3l5.2-3c.4.7.8%201.5%201%202.3l-5.6%202zM47%2052.9c-.4-.4-.8-.7-1.3-1l3.5-4.8c.6.5%201.3%201%201.8%201.5l-4%204.3zM42.7%2050c-.5-.3-1.1-.5-1.7-.8l2.4-5.5c.7.3%201.3.6%202%20.9L42.7%2050z'%20class='st2'/%3e%3cpath%20d='M57%2077.8c.9%202.6%203.2%204.5%206.1%204.6%202.9.1%205.4-1.6%206.4-4.1l-5.6-.3c-.6%200-1.1-.5-1.1-1.1l.1-2.4c0-.6.5-1.1%201.1-1.1l5.6.2c-.9-2.6-3.2-4.5-6.1-4.6-2.9-.1-5.4%201.6-6.4%204.1l-16.7-2.5c-1.3-.2-2.4.8-2.5%202.1l-.1%204.1c0%201.3%201.1%202.3%202.3%202.2L57%2077.8z'%20class='st3'/%3e%3cpath%20d='M63.3%2083.4H63c-2.9-.1-5.5-1.9-6.7-4.5l-16.1%201.3c-.9.1-1.8-.2-2.4-.9-.7-.6-1-1.5-1-2.4l.1-4.1c0-.9.4-1.8%201.1-2.3s1.6-.8%202.5-.7l16%202.4c1.4-2.5%204.1-4.1%207-4%203.2.1%206%202.2%207%205.2l.5%201.4-7-.2s-.1%200-.1.1l-.1%202.4s0%20.1.1.1l7%20.2-.5%201.3c-1.2%202.8-4%204.7-7.1%204.7zm-5.6-6.7l.2.7c.7%202.2%202.8%203.8%205.2%203.9%201.8.1%203.6-.8%204.7-2.2l-3.9-.1c-.6%200-1.1-.3-1.5-.7-.4-.4-.6-.9-.6-1.5l.1-2.4c0-.6.3-1.1.7-1.5.4-.4%201-.6%201.5-.6l3.9.1c-1-1.5-2.7-2.4-4.5-2.5-2.4-.1-4.5%201.3-5.4%203.5l-.3.7-17.5-2.6c-.3-.1-.7%200-.9.3s-.4.5-.4.9l-.1%204.1c0%20.3.1.7.4.9.2.2.6.4.9.3l17.5-1.3z'%20class='st2'/%3e%3cg%3e%3cpath%20d='M231.4%20182.3l-1.9.7c-7.2%202.9-15.3-.6-18.2-7.8l-11.9-29.7c-.4-1%20.1-2.2%201.1-2.6l24.1-9.7c1-.4%202.2.1%202.6%201.1l11.9%2029.7c2.9%207.3-.6%2015.4-7.7%2018.3z'%20class='st3'/%3e%3cpath%20d='M224.3%20185.1c-5.9%200-11.6-3.6-13.9-9.4l-12-29.7c-.6-1.5.1-3.3%201.7-3.9l24.1-9.7c.7-.3%201.6-.3%202.3%200%20.7.3%201.3.9%201.6%201.6l11.9%2029.7c3.1%207.7-.7%2016.4-8.3%2019.5l-1.9.7c-1.8.8-3.6%201.2-5.5%201.2zm1-50.9c-.1%200-.2%200-.4.1l-24.1%209.7c-.5.2-.8.8-.6%201.3l11.9%2029.7c1.3%203.2%203.8%205.7%207%207.1%203.2%201.4%206.7%201.4%209.9.1l1.9-.7c3.2-1.3%205.7-3.8%207.1-7%201.4-3.2%201.4-6.7.1-9.9l-11.9-29.7c-.1-.5-.5-.7-.9-.7z'%20class='st2'/%3e%3c/g%3e%3cg%3e%3cpath%20fill='%2399e1a2'%20d='M205.7%20142.5h20v7h-20z'%20transform='rotate(-21.89%20215.715%20146.055)'/%3e%3cpath%20d='M207.2%20154.3l-3.4-8.4%2020.4-8.2%203.4%208.4-20.4%208.2zm-.8-7.2l1.9%204.6L225%20145l-1.9-4.6-16.7%206.7z'%20class='st2'/%3e%3c/g%3e%3cpath%20d='M204%20153.2h30v2h-30z'%20class='st2'%20transform='rotate(-21.906%20218.97%20154.197)'/%3e%3cg%3e%3ccircle%20cx='208.3'%20cy='128'%20r='4'%20class='st3'/%3e%3cpath%20d='M208.3%20133c-.7%200-1.3-.1-2-.4-1.2-.5-2.2-1.5-2.7-2.7-.5-1.2-.5-2.6%200-3.8s1.5-2.2%202.7-2.7a5%205%200%200%201%203.8%200c1.2.5%202.2%201.5%202.7%202.7%201%202.6-.2%205.5-2.8%206.5-.4.3-1%20.4-1.7.4zm0-8c-.4%200-.8.1-1.1.2-.7.3-1.3.9-1.6%201.6s-.3%201.6%200%202.3c.3.7.9%201.3%201.6%201.6.7.3%201.6.3%202.3%200%201.5-.6%202.3-2.4%201.7-3.9-.3-.7-.9-1.3-1.6-1.6-.5-.1-.9-.2-1.3-.2z'%20class='st2'/%3e%3c/g%3e%3cpath%20d='M210.1%20131.4h2v7h-2z'%20class='st2'%20transform='rotate(-21.894%20211.14%20134.944)'/%3e%3cg%3e%3cpath%20d='M207.6%20166c-12.2%204.9-20.4%201.5-25.2-10.4l5.6-2.2c3.5%208.8%208.2%2010.7%2017.4%207l2.2%205.6z'%20class='st3'/%3e%3cpath%20d='M197.9%20169.2c-7.4%200-12.9-4.4-16.4-13.1l-.4-.9%207.4-3%20.4.9c1.7%204.2%203.6%206.7%206%207.6%202.4%201%205.6.6%2010-1.2l.9-.4%203%207.4-.9.4c-3.6%201.5-7%202.3-10%202.3zm-14.2-13c4.5%2010.3%2011.7%2013.3%2022.6%209.2l-1.5-3.7c-4.5%201.7-7.9%201.9-10.6.8-2.8-1.1-4.9-3.6-6.8-7.8l-3.7%201.5z'%20class='st2'/%3e%3c/g%3e%3cpath%20d='M182.8%20156c-3%200-5.8-1.8-7-4.7-1-2.6-.6-5.5%201.2-7.6l1.5%201.3c-1.3%201.6-1.6%203.7-.9%205.6.5%201.4%201.6%202.4%202.9%203%201.4.6%202.8.6%204.2%200%202.8-1.1%204.2-4.3%203.1-7.2-.2-.6-.5-1.1-.9-1.5l1.5-1.3c.5.6%201%201.3%201.3%202.1%201.5%203.8-.3%208.2-4.2%209.8-.9.3-1.8.5-2.7.5z'%20class='st2'/%3e%3cpath%20d='M198.9%20168.2l-.3-6c.5%200%201.1-.1%201.7-.2l1%205.9c-.9.1-1.7.2-2.4.3zm-4.9-.5c-.8-.2-1.6-.5-2.4-.9l2.6-5.4c.4.2.9.4%201.4.5l-1.6%205.8zm11.5-.9l-1.9-5.7c.6-.2%201.1-.4%201.7-.6l2.2%205.6c-.6.2-1.3.4-2%20.7zm-18-2.9c-.5-.5-1.1-1.2-1.6-1.8l4.8-3.7c.3.4.7.8%201.1%201.2l-4.3%204.3zm-3.9-5.6c-.3-.6-.6-1.3-.9-2l5.5-2.3c.2.6.5%201.1.8%201.6l-5.4%202.7z'%20class='st2'/%3e%3cg%3e%3cpath%20d='M233%20148.8c12.2-4.9%2020.4-1.5%2025.2%2010.4l-5.6%202.2c-3.5-8.8-8.2-10.7-17.4-7l-2.2-5.6z'%20class='st3'/%3e%3cpath%20d='M252%20162.7l-.4-.9c-3.3-8.3-7.4-10-16.1-6.5l-.9.4-3-7.4.9-.4c12.6-5.1%2021.5-1.4%2026.5%2010.9l.4.9-7.4%203zm-9.3-11.1c4.7%200%207.9%202.7%2010.4%208.5l3.7-1.5c-4.5-10.3-11.7-13.3-22.6-9.2l1.5%203.7c2.7-1%205-1.5%207-1.5z'%20class='st2'/%3e%3c/g%3e%3cpath%20d='M257.7%20173.8c-3-.1-5.7-1.9-6.8-4.7-1.5-3.8.3-8.2%204.2-9.8%203.8-1.5%208.2.3%209.8%204.2%201%202.6.6%205.5-1.2%207.6l-1.5-1.3c1.3-1.6%201.6-3.7.9-5.6-1.1-2.8-4.3-4.2-7.2-3.1-1.4.5-2.4%201.6-3%202.9-.6%201.4-.6%202.8%200%204.2.8%202.1%202.8%203.4%205%203.5l-.2%202.1z'%20class='st2'/%3e%3cpath%20d='M252.4%20160.9c-.2-.6-.5-1.1-.8-1.6l5.4-2.7c.3.6.6%201.3.9%202l-5.5%202.3zm-2.6-4.6c-.3-.4-.7-.8-1.1-1.2l4.2-4.2c.5.5%201.1%201.2%201.6%201.8l-4.7%203.6zm-14.6-1.9l-2.2-5.6c.7-.3%201.4-.5%202-.8l1.9%205.7c-.5.2-1.1.4-1.7.7zm11.2-1c-.4-.2-.9-.4-1.4-.5l1.5-5.8c.8.2%201.6.5%202.4.9l-2.5%205.4zm-6.1-.6l-1-5.9c.8-.1%201.6-.2%202.3-.3l.3%206c-.4.1-1%20.1-1.6.2zM42.8%2078.9c-2.1-2.2-2.6-5.4-1.4-8.2%201.7-3.8%206.1-5.5%209.9-3.8l-.8%201.8c-2.8-1.2-6%200-7.3%202.8-.9%202-.5%204.4%201%206l-1.4%201.4z'%20class='st2'/%3e%3c/svg%3e";
4670
- export {
4671
- so as $,
4672
- Zs as A,
4673
- as as B,
4674
- Ct as C,
4675
- Ks as D,
4676
- Is as E,
4677
- ms as F,
4678
- Jr as G,
4679
- Zr as H,
4680
- ys as I,
4681
- Bs as J,
4682
- _A as K,
4683
- ws as L,
4684
- fA as M,
4685
- Pr as N,
4686
- As as O,
4687
- qA as P,
4688
- Ds as Q,
4689
- Jt as R,
4690
- Gs as S,
4691
- vs as T,
4692
- vt as U,
4693
- ps as V,
4694
- Mr as W,
4695
- xr as X,
4696
- ns as Y,
4697
- It as Z,
4698
- Ur as _,
4699
- Ys as a,
4700
- YA as a0,
4701
- Js as b,
4702
- Ti as c,
4703
- Fs as d,
4704
- Qs as e,
4705
- os as f,
4706
- cs as g,
4707
- gs as h,
4708
- Ns as i,
4709
- us as j,
4710
- hs as k,
4711
- ds as l,
4712
- rs as m,
4713
- NA as n,
4714
- is as o,
4715
- Cs as p,
4716
- xs as q,
4717
- bs as r,
4718
- Ws as s,
4719
- ls as t,
4720
- JA as u,
4721
- Ss as v,
4722
- fs as w,
4723
- ss as x,
4724
- Es as y,
4725
- Rs as z
4726
- };