@kupola/kupola 1.7.1 → 1.7.3

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- class ht {
1
+ class ut {
2
2
  constructor(t = "app") {
3
3
  this.scope = t, this.hooks = /* @__PURE__ */ new Map(), this.state = "created", this.stateHistory = ["created"], this.transitions = /* @__PURE__ */ new Map([
4
4
  ["created", ["bootstrapped", "destroyed"]],
@@ -201,123 +201,123 @@ class ht {
201
201
  console.error(`[KupolaLifecycle] Unhandled error in ${t.phase}:`, t.error);
202
202
  }
203
203
  }
204
- const Aa = new ht("app");
205
- function za(i = "app") {
206
- return new ht(i);
204
+ const Pa = new ut("app");
205
+ function $a(i = "app") {
206
+ return new ut(i);
207
207
  }
208
- const De = /* @__PURE__ */ new Set(["__proto__", "prototype", "constructor"]);
209
- function Q(i) {
210
- return De.has(i);
208
+ const Me = /* @__PURE__ */ new Set(["__proto__", "prototype", "constructor"]);
209
+ function et(i) {
210
+ return Me.has(i);
211
211
  }
212
- function He(i) {
212
+ function Te(i) {
213
213
  return i ? i.trim() : "";
214
214
  }
215
- function Me(i) {
215
+ function Ie(i) {
216
216
  return i ? i.replace(/^\s+/, "") : "";
217
217
  }
218
- function Ie(i) {
218
+ function Ae(i) {
219
219
  return i ? i.replace(/\s+$/, "") : "";
220
220
  }
221
- function Te(i) {
221
+ function ze(i) {
222
222
  return i ? i.toUpperCase() : "";
223
223
  }
224
- function Ae(i) {
224
+ function Pe(i) {
225
225
  return i ? i.toLowerCase() : "";
226
226
  }
227
- function ze(i) {
227
+ function $e(i) {
228
228
  return i ? i.charAt(0).toUpperCase() + i.slice(1) : "";
229
229
  }
230
- function Pe(i) {
230
+ function Be(i) {
231
231
  return i ? i.replace(/-(\w)/g, (t, e) => e ? e.toUpperCase() : "") : "";
232
232
  }
233
- function $e(i) {
233
+ function qe(i) {
234
234
  return i ? i.replace(/([A-Z])/g, "-$1").toLowerCase().replace(/^-/, "") : "";
235
235
  }
236
- function Be(i, t, e = " ") {
236
+ function Oe(i, t, e = " ") {
237
237
  return (String(i) || "").padStart(t, e);
238
238
  }
239
- function qe(i, t, e = " ") {
239
+ function Fe(i, t, e = " ") {
240
240
  return (String(i) || "").padEnd(t, e);
241
241
  }
242
- function Oe(i, t, e = "...") {
242
+ function Ne(i, t, e = "...") {
243
243
  return !i || i.length <= t ? i || "" : i.slice(0, t) + e;
244
244
  }
245
- function Fe(i, t, e) {
245
+ function Re(i, t, e) {
246
246
  return i ? i.split(t).join(e) : "";
247
247
  }
248
- function Ne(i, t) {
248
+ function Ve(i, t) {
249
249
  return i ? i.replace(/\{\{(\w+)\}\}/g, (e, s) => t[s] !== void 0 ? t[s] : `{{${s}}}`) : "";
250
250
  }
251
- function Re(i, t) {
251
+ function Ke(i, t) {
252
252
  return (i || "").startsWith(t);
253
253
  }
254
- function Ve(i, t) {
254
+ function We(i, t) {
255
255
  return (i || "").endsWith(t);
256
256
  }
257
- function Ke(i, t) {
257
+ function Ue(i, t) {
258
258
  return (i || "").includes(t);
259
259
  }
260
- function We(i, t) {
260
+ function Ye(i, t) {
261
261
  return (i || "").repeat(t);
262
262
  }
263
- function Ue(i) {
263
+ function Xe(i) {
264
264
  return (i || "").split("").reverse().join("");
265
265
  }
266
- function Ye(i, t) {
266
+ function je(i, t) {
267
267
  return !i || !t ? 0 : i.split(t).length - 1;
268
268
  }
269
- function Xe(i) {
269
+ function Je(i) {
270
270
  if (!i) return "";
271
271
  const t = document.createElement("div");
272
272
  return t.textContent = i, t.innerHTML;
273
273
  }
274
- function je(i) {
274
+ function Ze(i) {
275
275
  if (!i) return "";
276
276
  const t = document.createElement("div");
277
277
  return t.innerHTML = i, t.textContent;
278
278
  }
279
- function Je(i = 8) {
279
+ function Ge(i = 8) {
280
280
  const t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
281
281
  let e = "";
282
282
  for (let s = 0; s < i; s++)
283
283
  e += t.charAt(Math.floor(Math.random() * t.length));
284
284
  return e;
285
285
  }
286
- function Ze() {
286
+ function Qe() {
287
287
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (i) => {
288
288
  const t = Math.random() * 16 | 0;
289
289
  return (i === "x" ? t : t & 3 | 8).toString(16);
290
290
  });
291
291
  }
292
- const Ge = { trim: He, trimLeft: Me, trimRight: Ie, toUpperCase: Te, toLowerCase: Ae, capitalize: ze, camelize: Pe, hyphenate: $e, padStart: Be, padEnd: qe, truncate: Oe, replaceAll: Fe, format: Ne, startsWith: Re, endsWith: Ve, includes: Ke, repeat: We, reverse: Ue, countOccurrences: Ye, escapeHtml: Xe, unescapeHtml: je, generateRandom: Je, generateUUID: Ze };
293
- function Qe(i) {
292
+ const ts = { trim: Te, trimLeft: Ie, trimRight: Ae, toUpperCase: ze, toLowerCase: Pe, capitalize: $e, camelize: Be, hyphenate: qe, padStart: Oe, padEnd: Fe, truncate: Ne, replaceAll: Re, format: Ve, startsWith: Ke, endsWith: We, includes: Ue, repeat: Ye, reverse: Xe, countOccurrences: je, escapeHtml: Je, unescapeHtml: Ze, generateRandom: Ge, generateUUID: Qe };
293
+ function es(i) {
294
294
  return Array.isArray(i);
295
295
  }
296
- function ts(i) {
296
+ function ss(i) {
297
297
  return !i || i.length === 0;
298
298
  }
299
- function es(i) {
299
+ function is(i) {
300
300
  return i ? i.length : 0;
301
301
  }
302
- function ss(i, t) {
302
+ function ns(i, t) {
303
303
  return i && i.length > 0 ? i[0] : t;
304
304
  }
305
- function is(i, t) {
305
+ function rs(i, t) {
306
306
  return i && i.length > 0 ? i[i.length - 1] : t;
307
307
  }
308
- function ns(i, t, e) {
308
+ function as(i, t, e) {
309
309
  return i && i[t] !== void 0 ? i[t] : e;
310
310
  }
311
- function rs(i, t, e) {
311
+ function os(i, t, e) {
312
312
  return i ? i.slice(t, e) : [];
313
313
  }
314
- function as(...i) {
314
+ function ls(...i) {
315
315
  return i.reduce((t, e) => t.concat(e || []), []);
316
316
  }
317
- function os(i, t = ",") {
317
+ function cs(i, t = ",") {
318
318
  return i ? i.join(t) : "";
319
319
  }
320
- function ls(i, t, e = 0) {
320
+ function hs(i, t, e = 0) {
321
321
  if (!i) return -1;
322
322
  if (Number.isNaN(t)) {
323
323
  for (let s = e; s < i.length; s++)
@@ -326,7 +326,7 @@ function ls(i, t, e = 0) {
326
326
  }
327
327
  return i.indexOf(t, e);
328
328
  }
329
- function cs(i, t, e) {
329
+ function ds(i, t, e) {
330
330
  if (!i) return -1;
331
331
  if (Number.isNaN(t)) {
332
332
  const s = e !== void 0 ? e : i.length - 1;
@@ -336,78 +336,78 @@ function cs(i, t, e) {
336
336
  }
337
337
  return i.lastIndexOf(t, e);
338
338
  }
339
- function hs(i, t) {
339
+ function us(i, t) {
340
340
  return i ? i.includes(t) : !1;
341
341
  }
342
- function ds(i, ...t) {
342
+ function ps(i, ...t) {
343
343
  return i && i.push(...t), i;
344
344
  }
345
- function us(i) {
345
+ function fs(i) {
346
346
  return i ? i.pop() : void 0;
347
347
  }
348
- function ps(i) {
348
+ function ms(i) {
349
349
  return i ? i.shift() : void 0;
350
350
  }
351
- function fs(i, ...t) {
351
+ function gs(i, ...t) {
352
352
  return i && i.unshift(...t), i;
353
353
  }
354
- function ms(i, t) {
354
+ function _s(i, t) {
355
355
  if (!i) return i;
356
356
  const e = Number.isNaN(t) ? i.findIndex((s) => Number.isNaN(s)) : i.indexOf(t);
357
357
  return e > -1 && i.splice(e, 1), i;
358
358
  }
359
- function gs(i, t) {
359
+ function ys(i, t) {
360
360
  return !i || t < 0 || t >= i.length || i.splice(t, 1), i;
361
361
  }
362
- function _s(i, t, e) {
362
+ function vs(i, t, e) {
363
363
  return i && (i.splice(t, 0, e), i);
364
364
  }
365
- function ys(i) {
365
+ function bs(i) {
366
366
  return i ? i.slice().reverse() : [];
367
367
  }
368
- function vs(i, t) {
368
+ function xs(i, t) {
369
369
  return i ? i.slice().sort(t) : [];
370
370
  }
371
- function bs(i, t, e = "asc") {
371
+ function Es(i, t, e = "asc") {
372
372
  return i ? i.slice().sort((s, n) => {
373
373
  const r = typeof s == "object" ? s[t] : s, a = typeof n == "object" ? n[t] : n;
374
374
  return r < a ? e === "asc" ? -1 : 1 : r > a ? e === "asc" ? 1 : -1 : 0;
375
375
  }) : [];
376
376
  }
377
- function xs(i, t) {
377
+ function ws(i, t) {
378
378
  return i ? i.filter(t) : [];
379
379
  }
380
- function Es(i, t) {
380
+ function ks(i, t) {
381
381
  return i ? i.map(t) : [];
382
382
  }
383
- function ws(i, t, e) {
383
+ function Cs(i, t, e) {
384
384
  return i ? i.reduce(t, e) : e;
385
385
  }
386
- function ks(i, t) {
386
+ function Ss(i, t) {
387
387
  i && i.forEach(t);
388
388
  }
389
- function Cs(i, t) {
389
+ function Ls(i, t) {
390
390
  return i ? i.every(t) : !0;
391
391
  }
392
- function Ss(i, t) {
392
+ function Ds(i, t) {
393
393
  return i ? i.some(t) : !1;
394
394
  }
395
- function Ls(i, t) {
395
+ function Hs(i, t) {
396
396
  return i ? i.find(t) : void 0;
397
397
  }
398
- function Ds(i, t) {
398
+ function Ms(i, t) {
399
399
  return i ? i.findIndex(t) : -1;
400
400
  }
401
- function Hs(i, t = 1) {
401
+ function Ts(i, t = 1) {
402
402
  return i ? i.flat(t) : [];
403
403
  }
404
- function Dt(i) {
405
- return i ? i.reduce((t, e) => Array.isArray(e) ? t.concat(Dt(e)) : t.concat(e), []) : [];
404
+ function Ht(i) {
405
+ return i ? i.reduce((t, e) => Array.isArray(e) ? t.concat(Ht(e)) : t.concat(e), []) : [];
406
406
  }
407
- function Ms(i) {
407
+ function Is(i) {
408
408
  return i ? [...new Set(i)] : [];
409
409
  }
410
- function Is(i, t) {
410
+ function As(i, t) {
411
411
  if (!i) return [];
412
412
  const e = /* @__PURE__ */ new Set();
413
413
  return i.filter((s) => {
@@ -415,14 +415,14 @@ function Is(i, t) {
415
415
  return e.has(n) ? !1 : (e.add(n), !0);
416
416
  });
417
417
  }
418
- function Ts(i, t) {
418
+ function zs(i, t) {
419
419
  if (!i || t <= 0) return [];
420
420
  const e = [];
421
421
  for (let s = 0; s < i.length; s += t)
422
422
  e.push(i.slice(s, s + t));
423
423
  return e;
424
424
  }
425
- function As(i) {
425
+ function Ps(i) {
426
426
  if (!i) return [];
427
427
  const t = i.slice();
428
428
  for (let e = t.length - 1; e > 0; e--) {
@@ -431,78 +431,78 @@ function As(i) {
431
431
  }
432
432
  return t;
433
433
  }
434
- function Ht(i) {
434
+ function Mt(i) {
435
435
  return i ? i.reduce((t, e) => t + (Number(e) || 0), 0) : 0;
436
436
  }
437
- function zs(i) {
438
- return !i || i.length === 0 ? 0 : Ht(i) / i.length;
437
+ function $s(i) {
438
+ return !i || i.length === 0 ? 0 : Mt(i) / i.length;
439
439
  }
440
- function Ps(i) {
440
+ function Bs(i) {
441
441
  return i && i.length > 0 ? Math.max(...i) : -1 / 0;
442
442
  }
443
- function $s(i) {
443
+ function qs(i) {
444
444
  return i && i.length > 0 ? Math.min(...i) : 1 / 0;
445
445
  }
446
- function Bs(...i) {
446
+ function Os(...i) {
447
447
  return i.length === 0 ? [] : i.reduce((t, e) => t.filter((s) => e && e.includes(s)));
448
448
  }
449
- function qs(...i) {
449
+ function Fs(...i) {
450
450
  return [...new Set(i.flat().filter(Boolean))];
451
451
  }
452
- function Os(i, t) {
452
+ function Ns(i, t) {
453
453
  return i ? i.filter((e) => !t || !t.includes(e)) : [];
454
454
  }
455
- function Fs(...i) {
455
+ function Rs(...i) {
456
456
  if (i.length === 0) return [];
457
457
  const t = Math.max(...i.map((e) => e ? e.length : 0));
458
458
  return Array.from({ length: t }, (e, s) => i.map((n) => n && n[s]));
459
459
  }
460
- const Ns = { isArray: Qe, isEmpty: ts, size: es, first: ss, last: is, get: ns, slice: rs, concat: as, join: os, indexOf: ls, lastIndexOf: cs, includes: hs, push: ds, pop: us, shift: ps, unshift: fs, remove: ms, removeAt: gs, insert: _s, reverse: ys, sort: vs, sortBy: bs, filter: xs, map: Es, reduce: ws, forEach: ks, every: Cs, some: Ss, find: Ls, findIndex: Ds, flat: Hs, flattenDeep: Dt, unique: Ms, uniqueBy: Is, chunk: Ts, shuffle: As, sum: Ht, average: zs, max: Ps, min: $s, intersection: Bs, union: qs, difference: Os, zip: Fs };
461
- function rt(i) {
460
+ const Vs = { isArray: es, isEmpty: ss, size: is, first: ns, last: rs, get: as, slice: os, concat: ls, join: cs, indexOf: hs, lastIndexOf: ds, includes: us, push: ps, pop: fs, shift: ms, unshift: gs, remove: _s, removeAt: ys, insert: vs, reverse: bs, sort: xs, sortBy: Es, filter: ws, map: ks, reduce: Cs, forEach: Ss, every: Ls, some: Ds, find: Hs, findIndex: Ms, flat: Ts, flattenDeep: Ht, unique: Is, uniqueBy: As, chunk: zs, shuffle: Ps, sum: Mt, average: $s, max: Bs, min: qs, intersection: Os, union: Fs, difference: Ns, zip: Rs };
461
+ function ot(i) {
462
462
  return i !== null && typeof i == "object" && !Array.isArray(i);
463
463
  }
464
- function Rs(i) {
464
+ function Ks(i) {
465
465
  return !i || typeof i != "object" ? !0 : Object.keys(i).length === 0;
466
466
  }
467
- function Vs(i) {
467
+ function Ws(i) {
468
468
  return i ? Object.keys(i) : [];
469
469
  }
470
- function Ks(i) {
470
+ function Us(i) {
471
471
  return i ? Object.values(i) : [];
472
472
  }
473
- function Ws(i) {
473
+ function Ys(i) {
474
474
  return i ? Object.entries(i) : [];
475
475
  }
476
- function Us(i, t) {
476
+ function Xs(i, t) {
477
477
  return i ? Object.prototype.hasOwnProperty.call(i, t) : !1;
478
478
  }
479
- function Ys(i, t, e) {
479
+ function js(i, t, e) {
480
480
  if (!i) return e;
481
481
  const s = t.split(".");
482
- return s.some(Q) ? e : s.reduce((n, r) => n && n[r], i) ?? e;
482
+ return s.some(et) ? e : s.reduce((n, r) => n && n[r], i) ?? e;
483
483
  }
484
- function Xs(i, t, e) {
484
+ function Js(i, t, e) {
485
485
  if (!i || typeof i != "object") return i;
486
486
  const s = t.split(".");
487
- if (s.some(Q)) return i;
487
+ if (s.some(et)) return i;
488
488
  const n = s.pop();
489
489
  let r = i;
490
490
  return s.forEach((a) => {
491
491
  (!r[a] || typeof r[a] != "object") && (r[a] = {}), r = r[a];
492
492
  }), r[n] = e, i;
493
493
  }
494
- function js(i, t) {
494
+ function Zs(i, t) {
495
495
  return i ? t.reduce((e, s) => (i[s] !== void 0 && (e[s] = i[s]), e), {}) : {};
496
496
  }
497
- function Js(i, t) {
497
+ function Gs(i, t) {
498
498
  return i ? Object.keys(i).reduce((e, s) => (t.includes(s) || (e[s] = i[s]), e), {}) : {};
499
499
  }
500
- function Mt(...i) {
500
+ function Tt(...i) {
501
501
  return i.reduce((t, e) => (e && typeof e == "object" && Object.keys(e).forEach((s) => {
502
- Q(s) || (rt(e[s]) && rt(t[s]) ? t[s] = Mt(t[s], e[s]) : t[s] = e[s]);
502
+ et(s) || (ot(e[s]) && ot(t[s]) ? t[s] = Tt(t[s], e[s]) : t[s] = e[s]);
503
503
  }), t), {});
504
504
  }
505
- function Zs(i) {
505
+ function Qs(i) {
506
506
  return i && JSON.parse(JSON.stringify(i));
507
507
  }
508
508
  function Y(i, t = /* @__PURE__ */ new WeakMap()) {
@@ -524,42 +524,42 @@ function Y(i, t = /* @__PURE__ */ new WeakMap()) {
524
524
  }
525
525
  const e = {};
526
526
  return t.set(i, e), Object.keys(i).forEach((s) => {
527
- Q(s) || (e[s] = Y(i[s], t));
527
+ et(s) || (e[s] = Y(i[s], t));
528
528
  }), e;
529
529
  }
530
- function Gs(i, t) {
530
+ function ti(i, t) {
531
531
  i && Object.keys(i).forEach((e) => t(i[e], e, i));
532
532
  }
533
- function Qs(i, t) {
533
+ function ei(i, t) {
534
534
  if (!i) return {};
535
535
  const e = {};
536
536
  return Object.keys(i).forEach((s) => {
537
537
  e[s] = t(i[s], s, i);
538
538
  }), e;
539
539
  }
540
- function ti(i, t) {
540
+ function si(i, t) {
541
541
  if (!i) return {};
542
542
  const e = {};
543
543
  return Object.keys(i).forEach((s) => {
544
544
  t(i[s], s, i) && (e[s] = i[s]);
545
545
  }), e;
546
546
  }
547
- function ei(i, t, e) {
547
+ function ii(i, t, e) {
548
548
  return i ? Object.keys(i).reduce((s, n) => t(s, i[n], n, i), e) : e;
549
549
  }
550
- function si(i) {
550
+ function ni(i) {
551
551
  return i ? Object.keys(i).map((t) => ({ key: t, value: i[t] })) : [];
552
552
  }
553
- function ii(i, t, e) {
553
+ function ri(i, t, e) {
554
554
  return i ? i.reduce((s, n) => {
555
555
  const r = typeof n == "object" ? n[t] : n, a = e ? n[e] : n;
556
556
  return r !== void 0 && (s[r] = a), s;
557
557
  }, {}) : {};
558
558
  }
559
- function ni(i) {
559
+ function ai(i) {
560
560
  return i ? Object.keys(i).length : 0;
561
561
  }
562
- function ri(i) {
562
+ function oi(i) {
563
563
  if (!i) return {};
564
564
  const t = {};
565
565
  return Object.keys(i).forEach((e) => {
@@ -572,251 +572,251 @@ function It(i, t) {
572
572
  const e = Object.keys(i), s = Object.keys(t);
573
573
  return e.length !== s.length ? !1 : e.every((n) => It(i[n], t[n]));
574
574
  }
575
- function Tt(i) {
575
+ function At(i) {
576
576
  return i && (Object.freeze(i), Object.keys(i).forEach((t) => {
577
- typeof i[t] == "object" && Tt(i[t]);
577
+ typeof i[t] == "object" && At(i[t]);
578
578
  }), i);
579
579
  }
580
- function ai(i) {
580
+ function li(i) {
581
581
  return i && Object.seal(i);
582
582
  }
583
- const oi = { isObject: rt, isEmpty: Rs, keys: Vs, values: Ks, entries: Ws, has: Us, get: Ys, set: Xs, pick: js, omit: Js, merge: Mt, clone: Zs, deepClone: Y, forEach: Gs, map: Qs, filter: ti, reduce: ei, toArray: si, fromArray: ii, size: ni, invert: ri, isEqual: It, freeze: Tt, seal: ai };
583
+ const ci = { isObject: ot, isEmpty: Ks, keys: Ws, values: Us, entries: Ys, has: Xs, get: js, set: Js, pick: Zs, omit: Gs, merge: Tt, clone: Qs, deepClone: Y, forEach: ti, map: ei, filter: si, reduce: ii, toArray: ni, fromArray: ri, size: ai, invert: oi, isEqual: It, freeze: At, seal: li };
584
584
  function L(i) {
585
585
  return typeof i == "number" && !isNaN(i);
586
586
  }
587
- function li(i) {
587
+ function hi(i) {
588
588
  return Number.isInteger(i);
589
589
  }
590
- function ci(i) {
590
+ function di(i) {
591
591
  return L(i) && !Number.isInteger(i);
592
592
  }
593
- function hi(i) {
593
+ function ui(i) {
594
594
  return L(i) && i > 0;
595
595
  }
596
- function di(i) {
596
+ function pi(i) {
597
597
  return L(i) && i < 0;
598
598
  }
599
- function ui(i) {
599
+ function fi(i) {
600
600
  return L(i) && i === 0;
601
601
  }
602
- function pi(i, t, e) {
602
+ function mi(i, t, e) {
603
603
  return L(i) ? Math.min(Math.max(i, t), e) : i;
604
604
  }
605
- function fi(i, t = 0) {
605
+ function gi(i, t = 0) {
606
606
  if (!L(i)) return i;
607
607
  const e = Math.pow(10, t);
608
608
  return Math.round(i * e) / e;
609
609
  }
610
- function mi(i) {
610
+ function _i(i) {
611
611
  return L(i) ? Math.floor(i) : i;
612
612
  }
613
- function gi(i) {
613
+ function yi(i) {
614
614
  return L(i) ? Math.ceil(i) : i;
615
615
  }
616
- function _i(i) {
616
+ function vi(i) {
617
617
  return L(i) ? Math.abs(i) : i;
618
618
  }
619
- function yi(...i) {
619
+ function bi(...i) {
620
620
  const t = i.filter(L);
621
621
  return t.length > 0 ? Math.min(...t) : void 0;
622
622
  }
623
- function vi(...i) {
623
+ function xi(...i) {
624
624
  const t = i.filter(L);
625
625
  return t.length > 0 ? Math.max(...t) : void 0;
626
626
  }
627
- function At(...i) {
627
+ function zt(...i) {
628
628
  return i.flat().filter(L).reduce((e, s) => e + s, 0);
629
629
  }
630
- function bi(...i) {
630
+ function Ei(...i) {
631
631
  const t = i.flat().filter(L);
632
- return t.length > 0 ? At(t) / t.length : 0;
632
+ return t.length > 0 ? zt(t) / t.length : 0;
633
633
  }
634
- function zt(i = 0, t = 1) {
634
+ function Pt(i = 0, t = 1) {
635
635
  return Math.random() * (t - i) + i;
636
636
  }
637
- function xi(i, t) {
638
- return Math.floor(zt(i, t + 1));
637
+ function wi(i, t) {
638
+ return Math.floor(Pt(i, t + 1));
639
639
  }
640
- function Ei(i, t = 2) {
640
+ function ki(i, t = 2) {
641
641
  return L(i) ? i.toFixed(t) : String(i);
642
642
  }
643
- function wi(i, t = "CNY", e = 2) {
643
+ function Ci(i, t = "CNY", e = 2) {
644
644
  return L(i) ? new Intl.NumberFormat("zh-CN", { style: "currency", currency: t, minimumFractionDigits: e, maximumFractionDigits: e }).format(i) : String(i);
645
645
  }
646
- function ki(i, t = 0) {
646
+ function Si(i, t = 0) {
647
647
  return L(i) ? `${(i * 100).toFixed(t)}%` : String(i);
648
648
  }
649
- function Ci(i, t = 0) {
649
+ function Li(i, t = 0) {
650
650
  return L(i) ? i.toFixed(t) : String(i);
651
651
  }
652
- function Si(i, t = 6) {
652
+ function Di(i, t = 6) {
653
653
  return L(i) ? i.toPrecision(t) : String(i);
654
654
  }
655
- function Li(i) {
655
+ function Hi(i) {
656
656
  return Number.isNaN(i);
657
657
  }
658
- function Di(i) {
658
+ function Mi(i) {
659
659
  return Number.isFinite(i);
660
660
  }
661
- function Hi(i, t = 10) {
661
+ function Ti(i, t = 10) {
662
662
  return Number.parseInt(i, t);
663
663
  }
664
- function Mi(i) {
664
+ function Ii(i) {
665
665
  return Number.parseFloat(i);
666
666
  }
667
- function Ii(i, t = 0) {
667
+ function Ai(i, t = 0) {
668
668
  const e = Number(i);
669
669
  return isNaN(e) ? t : e;
670
670
  }
671
- function Ti(i, t, e = 0) {
671
+ function zi(i, t, e = 0) {
672
672
  return !L(i) || !L(t) || t === 0 ? e : i / t;
673
673
  }
674
- function Ai(...i) {
674
+ function Pi(...i) {
675
675
  return i.reduce((t, e) => !L(t) || !L(e) ? 0 : t * e, 1);
676
676
  }
677
- const zi = { isNumber: L, isInteger: li, isFloat: ci, isPositive: hi, isNegative: di, isZero: ui, clamp: pi, round: fi, floor: mi, ceil: gi, abs: _i, min: yi, max: vi, sum: At, average: bi, random: zt, randomInt: xi, format: Ei, formatCurrency: wi, formatPercent: ki, toFixed: Ci, toPrecision: Si, isNaN: Li, isFinite: Di, parseInt: Hi, parseFloat: Mi, toNumber: Ii, safeDivide: Ti, safeMultiply: Ai };
678
- function tt() {
677
+ const $i = { isNumber: L, isInteger: hi, isFloat: di, isPositive: ui, isNegative: pi, isZero: fi, clamp: mi, round: gi, floor: _i, ceil: yi, abs: vi, min: bi, max: xi, sum: zt, average: Ei, random: Pt, randomInt: wi, format: ki, formatCurrency: Ci, formatPercent: Si, toFixed: Li, toPrecision: Di, isNaN: Hi, isFinite: Mi, parseInt: Ti, parseFloat: Ii, toNumber: Ai, safeDivide: zi, safeMultiply: Pi };
678
+ function st() {
679
679
  return Date.now();
680
680
  }
681
681
  function K() {
682
682
  const i = /* @__PURE__ */ new Date();
683
683
  return i.setHours(0, 0, 0, 0), i;
684
684
  }
685
- function Pi() {
685
+ function Bi() {
686
686
  const i = K();
687
687
  return i.setDate(i.getDate() + 1), i;
688
688
  }
689
- function $i() {
689
+ function qi() {
690
690
  const i = K();
691
691
  return i.setDate(i.getDate() - 1), i;
692
692
  }
693
693
  function w(i) {
694
694
  return i instanceof Date && !isNaN(i.getTime());
695
695
  }
696
- function Pt(i) {
696
+ function $t(i) {
697
697
  return w(i);
698
698
  }
699
- function Bi(i) {
699
+ function Oi(i) {
700
700
  const t = new Date(i);
701
- return Pt(t) ? t : null;
701
+ return $t(t) ? t : null;
702
702
  }
703
- function qi(i, t = "YYYY-MM-DD HH:mm:ss") {
703
+ function Fi(i, t = "YYYY-MM-DD HH:mm:ss") {
704
704
  if (!w(i)) return "";
705
705
  const e = i.getFullYear(), s = String(i.getMonth() + 1).padStart(2, "0"), n = String(i.getDate()).padStart(2, "0"), r = String(i.getHours()).padStart(2, "0"), a = String(i.getMinutes()).padStart(2, "0"), o = String(i.getSeconds()).padStart(2, "0"), l = String(i.getMilliseconds()).padStart(3, "0"), h = ["日", "一", "二", "三", "四", "五", "六"][i.getDay()];
706
706
  return t.replace("YYYY", e).replace("MM", s).replace("DD", n).replace("HH", r).replace("mm", a).replace("ss", o).replace("SSS", l).replace("D", i.getDate()).replace("M", i.getMonth() + 1).replace("H", i.getHours()).replace("m", i.getMinutes()).replace("s", i.getSeconds()).replace("W", h);
707
707
  }
708
- function Oi(i) {
708
+ function Ni(i) {
709
709
  return w(i) ? i.toISOString() : "";
710
710
  }
711
- function Fi(i) {
711
+ function Ri(i) {
712
712
  return w(i) ? new Date(i.toUTCString()) : null;
713
713
  }
714
- function Ni(i, t) {
714
+ function Vi(i, t) {
715
715
  if (!w(i)) return i;
716
716
  const e = new Date(i);
717
717
  return e.setDate(e.getDate() + t), e;
718
718
  }
719
- function Ri(i, t) {
719
+ function Ki(i, t) {
720
720
  if (!w(i)) return i;
721
721
  const e = new Date(i);
722
722
  return e.setHours(e.getHours() + t), e;
723
723
  }
724
- function Vi(i, t) {
724
+ function Wi(i, t) {
725
725
  if (!w(i)) return i;
726
726
  const e = new Date(i);
727
727
  return e.setMinutes(e.getMinutes() + t), e;
728
728
  }
729
- function Ki(i, t) {
729
+ function Ui(i, t) {
730
730
  if (!w(i)) return i;
731
731
  const e = new Date(i);
732
732
  return e.setSeconds(e.getSeconds() + t), e;
733
733
  }
734
- function et(i, t) {
734
+ function it(i, t) {
735
735
  if (!w(i) || !w(t)) return 0;
736
736
  const e = new Date(i);
737
737
  e.setHours(0, 0, 0, 0);
738
738
  const s = new Date(t);
739
739
  return s.setHours(0, 0, 0, 0), Math.floor((e.getTime() - s.getTime()) / (1e3 * 60 * 60 * 24));
740
740
  }
741
- function Wi(i, t) {
741
+ function Yi(i, t) {
742
742
  return !w(i) || !w(t) ? 0 : Math.floor((i.getTime() - t.getTime()) / (1e3 * 60 * 60));
743
743
  }
744
- function Ui(i, t) {
744
+ function Xi(i, t) {
745
745
  return !w(i) || !w(t) ? 0 : Math.floor((i.getTime() - t.getTime()) / (1e3 * 60));
746
746
  }
747
- function Yi(i, t) {
747
+ function ji(i, t) {
748
748
  return !w(i) || !w(t) ? 0 : Math.floor((i.getTime() - t.getTime()) / 1e3);
749
749
  }
750
- function Xi(i) {
751
- return w(i) ? et(i, K()) === 0 : !1;
752
- }
753
- function ji(i) {
754
- return w(i) ? et(i, K()) === -1 : !1;
755
- }
756
750
  function Ji(i) {
757
- return w(i) ? et(i, K()) === 1 : !1;
751
+ return w(i) ? it(i, K()) === 0 : !1;
758
752
  }
759
753
  function Zi(i) {
760
- return w(i) ? i.getTime() > tt() : !1;
754
+ return w(i) ? it(i, K()) === -1 : !1;
761
755
  }
762
756
  function Gi(i) {
763
- return w(i) ? i.getTime() < tt() : !1;
757
+ return w(i) ? it(i, K()) === 1 : !1;
764
758
  }
765
759
  function Qi(i) {
760
+ return w(i) ? i.getTime() > st() : !1;
761
+ }
762
+ function tn(i) {
763
+ return w(i) ? i.getTime() < st() : !1;
764
+ }
765
+ function en(i) {
766
766
  if (!w(i)) return !1;
767
767
  const t = i.getFullYear();
768
768
  return t % 4 === 0 && (t % 100 !== 0 || t % 400 === 0);
769
769
  }
770
- function tn(i) {
770
+ function sn(i) {
771
771
  return w(i) ? new Date(i.getFullYear(), i.getMonth() + 1, 0).getDate() : 0;
772
772
  }
773
- function en(i) {
773
+ function nn(i) {
774
774
  if (!w(i)) return 0;
775
775
  const t = new Date(i.getFullYear(), 0, 1), e = i.getTime() - t.getTime();
776
776
  return Math.ceil(e / (1e3 * 60 * 60 * 24 * 7));
777
777
  }
778
- function sn(i) {
778
+ function rn(i) {
779
779
  return w(i) ? Math.ceil((i.getMonth() + 1) / 3) : 0;
780
780
  }
781
- function nn(i) {
781
+ function an(i) {
782
782
  if (!w(i)) return i;
783
783
  const t = new Date(i);
784
784
  return t.setHours(0, 0, 0, 0), t;
785
785
  }
786
- function rn(i) {
786
+ function on(i) {
787
787
  if (!w(i)) return i;
788
788
  const t = new Date(i);
789
789
  return t.setHours(23, 59, 59, 999), t;
790
790
  }
791
- function an(i) {
791
+ function ln(i) {
792
792
  return w(i) ? new Date(i.getFullYear(), i.getMonth(), 1) : i;
793
793
  }
794
- function on(i) {
794
+ function cn(i) {
795
795
  return w(i) ? new Date(i.getFullYear(), i.getMonth() + 1, 0, 23, 59, 59, 999) : i;
796
796
  }
797
- function $t(i, t = 1) {
797
+ function Bt(i, t = 1) {
798
798
  if (!w(i)) return i;
799
799
  const e = new Date(i), s = e.getDay(), n = s >= t ? s - t : s + (7 - t);
800
800
  return e.setDate(e.getDate() - n), e.setHours(0, 0, 0, 0), e;
801
801
  }
802
- function ln(i, t = 1) {
802
+ function hn(i, t = 1) {
803
803
  if (!w(i)) return i;
804
- const e = $t(i, t), s = new Date(e);
804
+ const e = Bt(i, t), s = new Date(e);
805
805
  return s.setDate(s.getDate() + 6), s.setHours(23, 59, 59, 999), s;
806
806
  }
807
- function cn(i) {
807
+ function dn(i) {
808
808
  if (!w(i)) return 0;
809
809
  const t = /* @__PURE__ */ new Date();
810
810
  let e = t.getFullYear() - i.getFullYear();
811
811
  return (t.getMonth() < i.getMonth() || t.getMonth() === i.getMonth() && t.getDate() < i.getDate()) && e--, Math.max(0, e);
812
812
  }
813
- function hn(i) {
813
+ function un(i) {
814
814
  if (!w(i)) return "";
815
- const e = tt() - i.getTime(), s = 60 * 1e3, n = 60 * s, r = 24 * n, a = 7 * r, o = 30 * r, l = 365 * r;
815
+ const e = st() - i.getTime(), s = 60 * 1e3, n = 60 * s, r = 24 * n, a = 7 * r, o = 30 * r, l = 365 * r;
816
816
  return e < s ? "刚刚" : e < n ? `${Math.floor(e / s)}分钟前` : e < r ? `${Math.floor(e / n)}小时前` : e < a ? `${Math.floor(e / r)}天前` : e < o ? `${Math.floor(e / a)}周前` : e < l ? `${Math.floor(e / o)}个月前` : `${Math.floor(e / l)}年前`;
817
817
  }
818
- const dn = { now: tt, today: K, tomorrow: Pi, yesterday: $i, isDate: w, isValid: Pt, parse: Bi, format: qi, toISO: Oi, toUTC: Fi, addDays: Ni, addHours: Ri, addMinutes: Vi, addSeconds: Ki, diffDays: et, diffHours: Wi, diffMinutes: Ui, diffSeconds: Yi, isToday: Xi, isYesterday: ji, isTomorrow: Ji, isFuture: Zi, isPast: Gi, isLeapYear: Qi, getDaysInMonth: tn, getWeekOfYear: en, getQuarter: sn, startOfDay: nn, endOfDay: rn, startOfMonth: an, endOfMonth: on, startOfWeek: $t, endOfWeek: ln, getAge: cn, fromNow: hn };
819
- function un(i, t, e = {}) {
818
+ const pn = { now: st, today: K, tomorrow: Bi, yesterday: qi, isDate: w, isValid: $t, parse: Oi, format: Fi, toISO: Ni, toUTC: Ri, addDays: Vi, addHours: Ki, addMinutes: Wi, addSeconds: Ui, diffDays: it, diffHours: Yi, diffMinutes: Xi, diffSeconds: ji, isToday: Ji, isYesterday: Zi, isTomorrow: Gi, isFuture: Qi, isPast: tn, isLeapYear: en, getDaysInMonth: sn, getWeekOfYear: nn, getQuarter: rn, startOfDay: an, endOfDay: on, startOfMonth: ln, endOfMonth: cn, startOfWeek: Bt, endOfWeek: hn, getAge: dn, fromNow: un };
819
+ function fn(i, t, e = {}) {
820
820
  let s = null, n = null, r = null, a = 0;
821
821
  const o = e.leading || !1, l = e.trailing !== !1;
822
822
  function c() {
@@ -835,7 +835,7 @@ function un(i, t, e = {}) {
835
835
  n = f, r = this, a = Date.now(), s ? (clearTimeout(s), s = setTimeout(d, u())) : h();
836
836
  };
837
837
  }
838
- function pn(i, t, e = {}) {
838
+ function mn(i, t, e = {}) {
839
839
  let s = !1;
840
840
  const n = e.trailing || !1;
841
841
  let r = null, a = null;
@@ -848,31 +848,31 @@ function pn(i, t, e = {}) {
848
848
  }, t));
849
849
  };
850
850
  }
851
- function fn(i) {
851
+ function gn(i) {
852
852
  return /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/.test(i || "");
853
853
  }
854
- function mn(i) {
854
+ function _n(i) {
855
855
  return /^1[3-9]\d{9}$/.test(i || "");
856
856
  }
857
- function gn(i) {
857
+ function yn(i) {
858
858
  return /^(https?:\/\/)?([\da-z.-]+)\.([a-z.]{2,6})([/\w.-]*)*\/?$/.test(i || "");
859
859
  }
860
- function Bt(i) {
860
+ function qt(i) {
861
861
  return /^((25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)\.){3}(25[0-5]|2[0-4][0-9]|[01]?[0-9][0-9]?)$/.test(i || "");
862
862
  }
863
- function qt(i) {
863
+ function Ot(i) {
864
864
  return /^([0-9a-fA-F]{1,4}:){7}[0-9a-fA-F]{1,4}$/.test(i || "");
865
865
  }
866
- function _n(i) {
867
- return Bt(i) || qt(i);
866
+ function vn(i) {
867
+ return qt(i) || Ot(i);
868
868
  }
869
- function yn(i) {
869
+ function bn(i) {
870
870
  return /^[1-9]\d{5}(18|19|20)\d{2}(0[1-9]|1[0-2])(0[1-9]|[12]\d|3[01])\d{3}[\dXx]$/.test(i || "");
871
871
  }
872
- function vn(i) {
872
+ function xn(i) {
873
873
  return /^[A-Z][0-9]{8}$|^[A-Z]{2}[0-9]{7}$/.test(i || "");
874
874
  }
875
- function bn(i) {
875
+ function En(i) {
876
876
  const t = /^(?:4[0-9]{12}(?:[0-9]{3})?|5[1-5][0-9]{14}|6(?:011|5[0-9]{2})[0-9]{12}|3[47][0-9]{13})$/, e = i.replace(/\s/g, "");
877
877
  if (!t.test(e)) return !1;
878
878
  let s = 0, n = !1;
@@ -882,113 +882,113 @@ function bn(i) {
882
882
  }
883
883
  return s % 10 === 0;
884
884
  }
885
- function Ot(i) {
885
+ function Ft(i) {
886
886
  return /^#([A-Fa-f0-9]{6}|[A-Fa-f0-9]{3})$/.test(i || "");
887
887
  }
888
- function Ft(i) {
888
+ function Nt(i) {
889
889
  const t = /^rgb\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3})\)$/.exec(i || "");
890
890
  return t ? t.slice(1).every((e) => parseInt(e) >= 0 && parseInt(e) <= 255) : !1;
891
891
  }
892
- function Nt(i) {
892
+ function Rt(i) {
893
893
  const t = /^rgba\((\d{1,3}),\s*(\d{1,3}),\s*(\d{1,3}),\s*([01]|0\.\d+)\)$/.exec(i || "");
894
894
  if (!t) return !1;
895
895
  const [, e, s, n, r] = t;
896
896
  return parseInt(e) >= 0 && parseInt(e) <= 255 && parseInt(s) >= 0 && parseInt(s) <= 255 && parseInt(n) >= 0 && parseInt(n) <= 255 && parseFloat(r) >= 0 && parseFloat(r) <= 1;
897
897
  }
898
- function xn(i) {
899
- return Ot(i) || Ft(i) || Nt(i);
898
+ function wn(i) {
899
+ return Ft(i) || Nt(i) || Rt(i);
900
900
  }
901
- function En(i) {
901
+ function kn(i) {
902
902
  return !isNaN(new Date(i).getTime());
903
903
  }
904
- function wn(i) {
904
+ function Cn(i) {
905
905
  try {
906
906
  return JSON.parse(i), !0;
907
907
  } catch {
908
908
  return !1;
909
909
  }
910
910
  }
911
- function kn(i) {
911
+ function Sn(i) {
912
912
  return !i || i.trim() === "";
913
913
  }
914
- function Cn(i) {
914
+ function Ln(i) {
915
915
  return /^\s+$/.test(i || "");
916
916
  }
917
- function Sn(i) {
917
+ function Dn(i) {
918
918
  return !isNaN(parseFloat(i)) && isFinite(i);
919
919
  }
920
- function Ln(i) {
920
+ function Hn(i) {
921
921
  return /^-?\d+$/.test(i || "");
922
922
  }
923
- function Dn(i) {
923
+ function Mn(i) {
924
924
  return /^-?\d+\.\d+$/.test(i || "");
925
925
  }
926
- function Hn(i) {
926
+ function Tn(i) {
927
927
  const t = parseFloat(i);
928
928
  return !isNaN(t) && t > 0;
929
929
  }
930
- function Mn(i) {
930
+ function In(i) {
931
931
  const t = parseFloat(i);
932
932
  return !isNaN(t) && t < 0;
933
933
  }
934
- function In(i) {
934
+ function An(i) {
935
935
  return /^[a-zA-Z]+$/.test(i || "");
936
936
  }
937
- function Tn(i) {
937
+ function zn(i) {
938
938
  return /^[a-zA-Z0-9]+$/.test(i || "");
939
939
  }
940
- function An(i) {
940
+ function Pn(i) {
941
941
  return /^[\u4e00-\u9fa5]+$/.test(i || "");
942
942
  }
943
- function zn(i, t, e) {
943
+ function $n(i, t, e) {
944
944
  const s = (i || "").length;
945
945
  return s >= t && (e === void 0 || s <= e);
946
946
  }
947
- function Pn(i, t) {
947
+ function Bn(i, t) {
948
948
  return (i || "").length >= t;
949
949
  }
950
- function $n(i, t) {
950
+ function qn(i, t) {
951
951
  return (i || "").length <= t;
952
952
  }
953
- function Bn(i, t) {
953
+ function On(i, t) {
954
954
  return t instanceof RegExp ? t.test(i || "") : !1;
955
955
  }
956
- function qn(i, t) {
956
+ function Fn(i, t) {
957
957
  return String(i) === String(t);
958
958
  }
959
- function Rt(i, t) {
959
+ function Vt(i, t) {
960
960
  return (i || "").includes(t);
961
961
  }
962
- function On(i, t) {
963
- return !Rt(i, t);
962
+ function Nn(i, t) {
963
+ return !Vt(i, t);
964
964
  }
965
- function Fn(i) {
965
+ function Rn(i) {
966
966
  return Array.isArray(i);
967
967
  }
968
- function Nn(i, t, e) {
968
+ function Vn(i, t, e) {
969
969
  const s = i ? i.length : 0;
970
970
  return s >= t && (e === void 0 || s <= e);
971
971
  }
972
- function Rn(i, t) {
972
+ function Kn(i, t) {
973
973
  return i ? i.length >= t : !1;
974
974
  }
975
- function Vn(i, t) {
975
+ function Wn(i, t) {
976
976
  return i ? i.length <= t : !1;
977
977
  }
978
- function Kn(i) {
978
+ function Un(i) {
979
979
  return i !== null && typeof i == "object" && !Array.isArray(i);
980
980
  }
981
- function Wn(i, t) {
981
+ function Yn(i, t) {
982
982
  return !i || !t || !Array.isArray(t) ? !1 : t.every((e) => Object.prototype.hasOwnProperty.call(i, e));
983
983
  }
984
- function Un(i, t) {
984
+ function Xn(i, t) {
985
985
  const e = {};
986
986
  return Object.keys(t).forEach((s) => {
987
987
  const n = i[s], r = t[s], a = [];
988
988
  r.forEach((o) => {
989
989
  if (typeof o == "string") {
990
990
  const [l, ...c] = o.split(":");
991
- Vt[l](n, ...c) || a.push(l);
991
+ Kt[l](n, ...c) || a.push(l);
992
992
  } else if (typeof o == "function") {
993
993
  const l = o(n, i);
994
994
  l !== !0 && a.push(l || "validation_failed");
@@ -996,8 +996,8 @@ function Un(i, t) {
996
996
  }), a.length > 0 && (e[s] = a);
997
997
  }), { valid: Object.keys(e).length === 0, errors: e };
998
998
  }
999
- const Vt = { isEmail: fn, isPhone: mn, isURL: gn, isIPv4: Bt, isIPv6: qt, isIP: _n, isIDCard: yn, isPassport: vn, isCreditCard: bn, isHexColor: Ot, isRGB: Ft, isRGBA: Nt, isColor: xn, isDate: En, isJSON: wn, isEmpty: kn, isWhitespace: Cn, isNumber: Sn, isInteger: Ln, isFloat: Dn, isPositive: Hn, isNegative: Mn, isAlpha: In, isAlphaNumeric: Tn, isChinese: An, isLength: zn, minLength: Pn, maxLength: $n, matches: Bn, equals: qn, contains: Rt, notContains: On, isArray: Fn, arrayLength: Nn, arrayMinLength: Rn, arrayMaxLength: Vn, isObject: Kn, hasKeys: Wn, validate: Un };
1000
- function Yn(i) {
999
+ const Kt = { isEmail: gn, isPhone: _n, isURL: yn, isIPv4: qt, isIPv6: Ot, isIP: vn, isIDCard: bn, isPassport: xn, isCreditCard: En, isHexColor: Ft, isRGB: Nt, isRGBA: Rt, isColor: wn, isDate: kn, isJSON: Cn, isEmpty: Sn, isWhitespace: Ln, isNumber: Dn, isInteger: Hn, isFloat: Mn, isPositive: Tn, isNegative: In, isAlpha: An, isAlphaNumeric: zn, isChinese: Pn, isLength: $n, minLength: Bn, maxLength: qn, matches: On, equals: Fn, contains: Vt, notContains: Nn, isArray: Rn, arrayLength: Vn, arrayMinLength: Kn, arrayMaxLength: Wn, isObject: Un, hasKeys: Yn, validate: Xn };
1000
+ function jn(i) {
1001
1001
  const t = i ? String(i) : "", e = [1732584193, 4023233417, 2562383102, 271733878], s = [3614090360, 3905402710, 606105819, 3250441966, 4118548399, 1200080426, 2821735955, 4249261313, 1770035416, 2336552879, 4294925233, 2304563134, 1804603682, 4254626195, 2792965006, 1236535329, 4129170786, 3225465664, 643717713, 3921069994, 3593408605, 38016083, 3634488961, 3889429448, 568446438, 3275163606, 4107603335, 1163531501, 2850285829, 4243563512, 1735328473, 2368359562, 4294588738, 2272392833, 1839030562, 4259657740, 2763975236, 1272893353, 4139469664, 3200236656, 681279174, 3936430074, 3572445317, 76029189, 3654602809, 3873151461, 530742520, 3299628645, 4096336452, 1126891415, 2878612391, 4237533241, 1700485571, 2399980690, 4293915773, 2240044497, 1873313359, 4264355552, 2734768916, 1309151649, 4149444226, 3174756917, 718787259, 3951481745], n = [[7, 12, 17, 22], [5, 9, 14, 20], [4, 11, 16, 23], [6, 10, 15, 21]];
1002
1002
  function r(d, u) {
1003
1003
  return d << u | d >>> 32 - u;
@@ -1037,7 +1037,7 @@ function Yn(i) {
1037
1037
  h += (d >>> 8 * u & 255).toString(16).padStart(2, "0");
1038
1038
  }), h;
1039
1039
  }
1040
- function Xn(i) {
1040
+ function Jn(i) {
1041
1041
  const t = i ? String(i) : "", e = [1116352408, 1899447441, 3049323471, 3921009573, 961987163, 1508970993, 2453635748, 2870763221, 3624381080, 310598401, 607225278, 1426881987, 1925078388, 2162078206, 2614888103, 3248222580, 3835390401, 4022224774, 264347078, 604807628, 770255983, 1249150122, 1555081692, 1996064986, 2554220882, 2821834349, 2952996808, 3210313671, 3336571891, 3584528711, 113926993, 338241895, 666307205, 773529912, 1294757372, 1396182291, 1695183700, 1986661051, 2177026350, 2456956037, 2730485921, 2820302411, 3259730800, 3345764771, 3516065817, 3600352804, 4094571909, 275423344, 430227734, 506948616, 659060556, 883997877, 958139571, 1322822218, 1537002063, 1747873779, 1955562222, 2024104815, 2227730452, 2361852424, 2428436474, 2756734187, 3204031479, 3329325298];
1042
1042
  function s(c, h) {
1043
1043
  return c >>> h | c << 32 - h;
@@ -1078,7 +1078,7 @@ function Xn(i) {
1078
1078
  l += (c >>> 8 * h & 255).toString(16).padStart(2, "0");
1079
1079
  }), l;
1080
1080
  }
1081
- function jn(i) {
1081
+ function Zn(i) {
1082
1082
  const t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1083
1083
  let e = "", s = 0;
1084
1084
  const n = i ? i.split("").map((r) => r.charCodeAt(0)) : [];
@@ -1088,7 +1088,7 @@ function jn(i) {
1088
1088
  }
1089
1089
  return e;
1090
1090
  }
1091
- function Jn(i) {
1091
+ function Gn(i) {
1092
1092
  const t = "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/";
1093
1093
  let e = "", s = 0;
1094
1094
  for (i = i.replace(/[^A-Za-z0-9+/=]/g, ""); s < i.length; ) {
@@ -1097,13 +1097,13 @@ function Jn(i) {
1097
1097
  }
1098
1098
  return e;
1099
1099
  }
1100
- function Zn() {
1100
+ function Qn() {
1101
1101
  return "xxxxxxxx-xxxx-4xxx-yxxx-xxxxxxxxxxxx".replace(/[xy]/g, (i) => {
1102
1102
  const t = Math.random() * 16 | 0;
1103
1103
  return (i === "x" ? t : t & 3 | 8).toString(16);
1104
1104
  });
1105
1105
  }
1106
- const Gn = { md5: Yn, sha256: Xn, base64Encode: jn, base64Decode: Jn, uuid: Zn }, B = /* @__PURE__ */ new Map();
1106
+ const tr = { md5: jn, sha256: Jn, base64Encode: Zn, base64Decode: Gn, uuid: Qn }, B = /* @__PURE__ */ new Map();
1107
1107
  async function Z(i, t = {}) {
1108
1108
  const { crossOrigin: e = "anonymous" } = t;
1109
1109
  return B.has(i) ? B.get(i) : new Promise((s, n) => {
@@ -1115,7 +1115,7 @@ async function Z(i, t = {}) {
1115
1115
  }, r.src = i;
1116
1116
  });
1117
1117
  }
1118
- async function Qn(i, t = {}) {
1118
+ async function er(i, t = {}) {
1119
1119
  const { parallel: e = !0 } = t;
1120
1120
  if (e) return Promise.all(i.map((n) => Z(n, t)));
1121
1121
  const s = [];
@@ -1123,7 +1123,7 @@ async function Qn(i, t = {}) {
1123
1123
  s.push(await Z(n, t));
1124
1124
  return s;
1125
1125
  }
1126
- async function Kt(i, t = {}) {
1126
+ async function Wt(i, t = {}) {
1127
1127
  const { type: e = "text/javascript", async: s = !0, defer: n = !1 } = t;
1128
1128
  return B.has(i) ? B.get(i) : new Promise((r, a) => {
1129
1129
  const o = document.createElement("script");
@@ -1134,7 +1134,7 @@ async function Kt(i, t = {}) {
1134
1134
  }, o.src = i, document.head.appendChild(o);
1135
1135
  });
1136
1136
  }
1137
- async function Wt(i, t = {}) {
1137
+ async function Ut(i, t = {}) {
1138
1138
  const { media: e = "all" } = t;
1139
1139
  return B.has(i) ? B.get(i) : new Promise((s, n) => {
1140
1140
  const r = document.createElement("link");
@@ -1145,7 +1145,7 @@ async function Wt(i, t = {}) {
1145
1145
  }, document.head.appendChild(r);
1146
1146
  });
1147
1147
  }
1148
- async function tr(i, t, e = {}) {
1148
+ async function sr(i, t, e = {}) {
1149
1149
  const { weight: s = "normal", style: n = "normal" } = e, r = new FontFace(i, `url(${t})`, { weight: s, style: n });
1150
1150
  try {
1151
1151
  return await r.load(), document.fonts.add(r), r;
@@ -1153,41 +1153,41 @@ async function tr(i, t, e = {}) {
1153
1153
  throw new Error(`Failed to load font: ${i}`);
1154
1154
  }
1155
1155
  }
1156
- async function er(i, t = "image") {
1156
+ async function ir(i, t = "image") {
1157
1157
  switch (t) {
1158
1158
  case "image":
1159
1159
  return Z(i);
1160
1160
  case "script":
1161
- return Kt(i);
1161
+ return Wt(i);
1162
1162
  case "stylesheet":
1163
1163
  case "style":
1164
- return Wt(i);
1164
+ return Ut(i);
1165
1165
  default:
1166
1166
  throw new Error(`Unsupported preload type: ${t}`);
1167
1167
  }
1168
1168
  }
1169
- function sr(i) {
1169
+ function nr(i) {
1170
1170
  return B.has(i);
1171
1171
  }
1172
- function ir() {
1172
+ function rr() {
1173
1173
  B.clear();
1174
1174
  }
1175
- function nr(i) {
1175
+ function ar(i) {
1176
1176
  B.delete(i);
1177
1177
  }
1178
- const rr = { loadImage: Z, loadImages: Qn, loadScript: Kt, loadStylesheet: Wt, loadFont: tr, preload: er, isLoaded: sr, clearCache: ir, clearCacheByUrl: nr }, Pa = {
1179
- string: Ge,
1180
- array: Ns,
1181
- object: oi,
1182
- number: zi,
1183
- date: dn,
1184
- debounce: un,
1185
- throttle: pn,
1186
- validator: Vt,
1187
- crypto: Gn,
1188
- preload: rr
1178
+ const or = { loadImage: Z, loadImages: er, loadScript: Wt, loadStylesheet: Ut, loadFont: sr, preload: ir, isLoaded: nr, clearCache: rr, clearCacheByUrl: ar }, Ba = {
1179
+ string: ts,
1180
+ array: Vs,
1181
+ object: ci,
1182
+ number: $i,
1183
+ date: pn,
1184
+ debounce: fn,
1185
+ throttle: mn,
1186
+ validator: Kt,
1187
+ crypto: tr,
1188
+ preload: or
1189
1189
  };
1190
- function ar(i) {
1190
+ function lr(i) {
1191
1191
  if (!i) return "";
1192
1192
  let t = String(i);
1193
1193
  const e = /<\s*(script|iframe|object|embed|applet|form|base|link|meta|style)\b[^>]*>[\s\S]*?<\s*\/\s*\1\s*>|<\s*(script|iframe|object|embed|applet|form|base|link|meta|style)\b[^>]*\/?>/gi;
@@ -1197,20 +1197,20 @@ function ar(i) {
1197
1197
  while (t !== s);
1198
1198
  return t = t.replace(/\bon\w+\s*=\s*(?:"[^"]*"|'[^']*'|[^\s>]+)/gi, ""), t = t.replace(/(href|src|action|background)\s*=\s*(?:"[^"]*(?:javascript|vbscript|data)\s*:[^"]*"|'[^']*(?:javascript|vbscript|data)\s*:[^']*'|[^\s>]*(?:javascript|vbscript|data)\s*:[^\s>]*)/gi, '$1=""'), t = t.replace(/expression\s*\([^)]*\)/gi, ""), t;
1199
1199
  }
1200
- class gt {
1200
+ class yt {
1201
1201
  constructor() {
1202
1202
  this.children = {}, this.keys = [];
1203
1203
  }
1204
1204
  }
1205
- class nt {
1205
+ class at {
1206
1206
  constructor() {
1207
- this.root = new gt();
1207
+ this.root = new yt();
1208
1208
  }
1209
1209
  insert(t) {
1210
1210
  let e = this.root;
1211
1211
  const s = t.split(".");
1212
1212
  s.forEach((n, r) => {
1213
- e.children[n] || (e.children[n] = new gt()), e = e.children[n], r === s.length - 1 && e.keys.push(t);
1213
+ e.children[n] || (e.children[n] = new yt()), e = e.children[n], r === s.length - 1 && e.keys.push(t);
1214
1214
  });
1215
1215
  }
1216
1216
  getSubKeys(t) {
@@ -1242,9 +1242,9 @@ const g = {
1242
1242
  path: Symbol("reactive_path"),
1243
1243
  isReactive: Symbol("reactive_is_reactive")
1244
1244
  };
1245
- class or {
1245
+ class cr {
1246
1246
  constructor() {
1247
- this.rawData = {}, this.data = null, this.observers = {}, this.elements = {}, this.computedProperties = {}, this.pathTrie = new nt(), this.updateQueue = /* @__PURE__ */ new Map(), this.isProcessing = !1, this.pendingComputed = /* @__PURE__ */ new Set(), this.persistedKeys = /* @__PURE__ */ new Map(), this.snapshots = [], this.snapshotLimit = 10, this._proxyCache = /* @__PURE__ */ new WeakMap(), this.createReactiveData();
1247
+ this.rawData = {}, this.data = null, this.observers = {}, this.elements = {}, this.computedProperties = {}, this.pathTrie = new at(), this.updateQueue = /* @__PURE__ */ new Map(), this.isProcessing = !1, this.pendingComputed = /* @__PURE__ */ new Set(), this.persistedKeys = /* @__PURE__ */ new Map(), this.snapshots = [], this.snapshotLimit = 10, this._proxyCache = /* @__PURE__ */ new WeakMap(), this.createReactiveData();
1248
1248
  }
1249
1249
  createReactiveData() {
1250
1250
  const t = {
@@ -1382,7 +1382,7 @@ class or {
1382
1382
  t.textContent !== String(e ?? "") && (t.textContent = e ?? "");
1383
1383
  break;
1384
1384
  case "html":
1385
- const c = ar(e);
1385
+ const c = lr(e);
1386
1386
  t.innerHTML !== c && (t.innerHTML = c);
1387
1387
  break;
1388
1388
  case "value":
@@ -1440,7 +1440,7 @@ class or {
1440
1440
  }), this.processComputed();
1441
1441
  }
1442
1442
  reset() {
1443
- this.rawData = {}, this.observers = {}, this.elements = {}, this.computedProperties = {}, this.pathTrie = new nt(), this.updateQueue.clear(), this.snapshots = [], this.createReactiveData(), this.bind();
1443
+ this.rawData = {}, this.observers = {}, this.elements = {}, this.computedProperties = {}, this.pathTrie = new at(), this.updateQueue.clear(), this.snapshots = [], this.createReactiveData(), this.bind();
1444
1444
  }
1445
1445
  persist(t, e = {}) {
1446
1446
  const {
@@ -1706,10 +1706,10 @@ class or {
1706
1706
  });
1707
1707
  }), this.persistedKeys.forEach((t, e) => {
1708
1708
  t.timeout && clearTimeout(t.timeout);
1709
- }), this.persistedKeys.clear(), this.rawData = {}, this.observers = {}, this.elements = {}, this.computedProperties = {}, this.pathTrie = new nt(), this.updateQueue.clear(), this.snapshots = [];
1709
+ }), this.persistedKeys.clear(), this.rawData = {}, this.observers = {}, this.elements = {}, this.computedProperties = {}, this.pathTrie = new at(), this.updateQueue.clear(), this.snapshots = [];
1710
1710
  }
1711
1711
  }
1712
- class _t {
1712
+ class vt {
1713
1713
  constructor(t, e = {}) {
1714
1714
  this.name = t, this._stateKey = `__store_${t}__`;
1715
1715
  const s = e.state ? e.state() : {};
@@ -1779,25 +1779,25 @@ class _t {
1779
1779
  };
1780
1780
  }
1781
1781
  }
1782
- class lr {
1782
+ class hr {
1783
1783
  constructor() {
1784
1784
  this.stores = /* @__PURE__ */ new Map();
1785
1785
  }
1786
1786
  createStore(t, e) {
1787
- const s = new _t(t, e);
1787
+ const s = new vt(t, e);
1788
1788
  return this.stores.set(t, s), s;
1789
1789
  }
1790
1790
  getStore(t) {
1791
1791
  return this.stores.get(t);
1792
1792
  }
1793
1793
  registerStore(t) {
1794
- t instanceof _t && this.stores.set(t.name, t);
1794
+ t instanceof vt && this.stores.set(t.name, t);
1795
1795
  }
1796
1796
  dispose() {
1797
1797
  this.stores.clear();
1798
1798
  }
1799
1799
  }
1800
- class cr {
1800
+ class dr {
1801
1801
  constructor() {
1802
1802
  this.events = {}, this.delegatedEvents = {}, this.eventListeners = {};
1803
1803
  }
@@ -1854,7 +1854,7 @@ class cr {
1854
1854
  }), this.events = {}, this.delegatedEvents = {}, this.eventListeners = {};
1855
1855
  }
1856
1856
  }
1857
- function T(i = null) {
1857
+ function I(i = null) {
1858
1858
  const t = {
1859
1859
  _value: i,
1860
1860
  _subscribers: /* @__PURE__ */ new Set()
@@ -1874,14 +1874,14 @@ function T(i = null) {
1874
1874
  }
1875
1875
  }), t;
1876
1876
  }
1877
- const O = new or(), $a = new cr(), Ut = new lr();
1878
- function Ba(i, t) {
1879
- return Ut.createStore(i, t);
1877
+ const O = new cr(), qa = new dr(), Yt = new hr();
1878
+ function Oa(i, t) {
1879
+ return Yt.createStore(i, t);
1880
1880
  }
1881
- function qa(i) {
1882
- return Ut.getStore(i);
1881
+ function Fa(i) {
1882
+ return Yt.getStore(i);
1883
1883
  }
1884
- const I = {
1884
+ const M = {
1885
1885
  paths: {
1886
1886
  icons: "/icons/",
1887
1887
  base: "/"
@@ -1975,59 +1975,90 @@ const I = {
1975
1975
  autoInit: !0,
1976
1976
  silentErrors: !1
1977
1977
  }
1978
- };
1979
- function hr(i) {
1980
- Yt(I, i);
1981
- }
1982
- function dt(i) {
1983
- return i ? _r(I, i) : I;
1984
- }
1985
- function ut() {
1986
- return I.paths.base + I.paths.icons.replace(/^\//, "");
1978
+ }, G = [];
1979
+ function bt() {
1980
+ if (typeof window < "u" && window.kupolaConfig)
1981
+ try {
1982
+ ft(M, window.kupolaConfig), Xt();
1983
+ } catch (i) {
1984
+ console.warn("[Kupola] Failed to parse window.kupolaConfig:", i);
1985
+ }
1987
1986
  }
1988
- function Oa() {
1989
- return I.paths.base;
1987
+ function Xt() {
1988
+ G.forEach((i) => {
1989
+ try {
1990
+ i(M);
1991
+ } catch (t) {
1992
+ console.warn("[Kupola] Error in config change listener:", t);
1993
+ }
1994
+ });
1990
1995
  }
1991
- function dr() {
1992
- return I.theme.default;
1996
+ function ur(i) {
1997
+ typeof i == "function" && G.push(i);
1993
1998
  }
1994
- function ur() {
1995
- return I.theme.brand;
1999
+ function Na(i) {
2000
+ const t = G.indexOf(i);
2001
+ t > -1 && G.splice(t, 1);
1996
2002
  }
1997
- function Fa() {
1998
- return I.http;
2003
+ typeof document < "u" && (document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", bt) : bt());
2004
+ function Ra(i) {
2005
+ ft(M, i), Xt();
1999
2006
  }
2000
- function j() {
2001
- return I.ui;
2007
+ function pt(i) {
2008
+ return i ? vr(M, i) : M;
2002
2009
  }
2003
- function W() {
2004
- return I.zIndex;
2010
+ function jt() {
2011
+ return M.paths.base + M.paths.icons.replace(/^\//, "");
2005
2012
  }
2006
- function st() {
2007
- return I.security;
2013
+ function Va() {
2014
+ return M.paths.base;
2008
2015
  }
2009
2016
  function pr() {
2010
- return I.performance;
2017
+ return M.theme.default;
2011
2018
  }
2012
2019
  function fr() {
2013
- return I.message;
2020
+ return M.theme.brand;
2021
+ }
2022
+ function Ka() {
2023
+ return M.http;
2024
+ }
2025
+ function j() {
2026
+ return M.ui;
2027
+ }
2028
+ function W() {
2029
+ return M.zIndex;
2030
+ }
2031
+ function nt() {
2032
+ return M.security;
2014
2033
  }
2015
2034
  function mr() {
2016
- return I.notification;
2035
+ return M.performance;
2017
2036
  }
2018
2037
  function gr() {
2019
- return I.validation;
2038
+ return M.message;
2039
+ }
2040
+ function _r() {
2041
+ return M.notification;
2020
2042
  }
2021
- function Yt(i, t) {
2043
+ function yr() {
2044
+ return M.validation;
2045
+ }
2046
+ function ft(i, t) {
2022
2047
  for (const e in t)
2023
- t[e] instanceof Object && e in i && i[e] instanceof Object ? Yt(i[e], t[e]) : i[e] = t[e];
2048
+ t[e] instanceof Object && e in i && i[e] instanceof Object ? ft(i[e], t[e]) : i[e] = t[e];
2024
2049
  return i;
2025
2050
  }
2026
- function _r(i, t) {
2051
+ function vr(i, t) {
2027
2052
  return t.split(".").reduce((e, s) => (e && e[s]) !== void 0 ? e[s] : void 0, i);
2028
2053
  }
2029
- const Xt = "kupola-theme", jt = "kupola-brand";
2030
- let yt = !1;
2054
+ const Jt = "kupola-theme", Zt = "kupola-brand";
2055
+ ur((i) => {
2056
+ const t = document.querySelector("[data-theme-toggle]");
2057
+ if (t) {
2058
+ const e = F();
2059
+ ct(t), Q(e);
2060
+ }
2061
+ });
2031
2062
  const X = [
2032
2063
  { id: "green", name: "翠绿", color: "#32F08C" },
2033
2064
  { id: "xionghuang", name: "雄黄", color: "#FF9900" },
@@ -2041,12 +2072,12 @@ const X = [
2041
2072
  { id: "zengqing", name: "曾青", color: "#535164" },
2042
2073
  { id: "roulan", name: "柔蓝", color: "#106898" }
2043
2074
  ];
2044
- function R() {
2045
- return localStorage.getItem(Xt) || dr();
2075
+ function F() {
2076
+ return localStorage.getItem(Jt) || pr();
2046
2077
  }
2047
- function at(i) {
2078
+ function Q(i) {
2048
2079
  if (i !== "dark" && i !== "light") return;
2049
- document.documentElement.setAttribute("data-theme", i), localStorage.setItem(Xt, i);
2080
+ document.documentElement.setAttribute("data-theme", i), localStorage.setItem(Jt, i);
2050
2081
  const t = document.querySelector("[data-theme-toggle]");
2051
2082
  if (t) {
2052
2083
  t.setAttribute("data-current-theme", i);
@@ -2058,12 +2089,12 @@ function at(i) {
2058
2089
  }
2059
2090
  }
2060
2091
  function J() {
2061
- return localStorage.getItem(jt) || ur();
2092
+ return localStorage.getItem(Zt) || fr();
2062
2093
  }
2063
- function ot(i) {
2094
+ function lt(i) {
2064
2095
  const t = X.find((n) => n.id === i);
2065
2096
  if (!t) return;
2066
- document.documentElement.setAttribute("data-brand", i), localStorage.setItem(jt, i);
2097
+ document.documentElement.setAttribute("data-brand", i), localStorage.setItem(Zt, i);
2067
2098
  const e = document.querySelector("[data-brand-toggle]");
2068
2099
  if (e) {
2069
2100
  e.setAttribute("data-current-brand", i);
@@ -2076,37 +2107,24 @@ function ot(i) {
2076
2107
  n.getAttribute("data-brand-btn") === i ? n.classList.add("is-active") : n.classList.remove("is-active");
2077
2108
  });
2078
2109
  }
2079
- function vt(i) {
2110
+ function ct(i) {
2080
2111
  const t = i.querySelector(".theme-icon");
2081
2112
  if (t) {
2082
- const e = R(), s = ut();
2113
+ const e = F(), s = jt();
2083
2114
  t.src = e === "dark" ? s + "sun.svg" : s + "moon.svg";
2084
2115
  }
2085
2116
  }
2086
- function yr() {
2087
- const i = document.querySelector("[data-theme-toggle]");
2088
- if (!yt && (yt = !0, i)) {
2089
- const o = i.querySelector(".theme-icon");
2090
- if (o && o.src && ut() === "/icons/") {
2091
- const c = o.src.substring(0, o.src.lastIndexOf("/") + 1), h = window.location.pathname.substring(0, window.location.pathname.lastIndexOf("/") + 1), d = c.replace(window.location.origin + h, "");
2092
- d !== c && hr({
2093
- paths: {
2094
- icons: d,
2095
- base: h
2096
- }
2097
- });
2098
- }
2099
- }
2100
- const t = R();
2101
- at(t);
2117
+ function br() {
2118
+ const i = document.querySelector("[data-theme-toggle]"), t = F();
2119
+ Q(t);
2102
2120
  const e = J();
2103
- if (ot(e), i) {
2104
- vt(i);
2121
+ if (lt(e), i) {
2122
+ ct(i);
2105
2123
  const o = i.onclick;
2106
2124
  i.onclick = function(l) {
2107
2125
  l.preventDefault();
2108
- const h = R() === "dark" ? "light" : "dark";
2109
- at(h), vt(i), typeof o == "function" && o.call(this, l);
2126
+ const h = F() === "dark" ? "light" : "dark";
2127
+ Q(h), ct(i), typeof o == "function" && o.call(this, l);
2110
2128
  };
2111
2129
  }
2112
2130
  let s = document.getElementById("brand-picker");
@@ -2131,23 +2149,23 @@ function yr() {
2131
2149
  o.addEventListener("click", (l) => {
2132
2150
  l.stopPropagation();
2133
2151
  const c = o.getAttribute("data-brand-btn");
2134
- ot(c), s && (s.style.display = "none");
2152
+ lt(c), s && (s.style.display = "none");
2135
2153
  });
2136
2154
  });
2137
2155
  }
2138
- function Na() {
2156
+ function Wa() {
2139
2157
  const i = document.createElement("button");
2140
- i.setAttribute("data-theme-toggle", ""), i.setAttribute("data-current-theme", R()), i.className = "ds-btn ds-btn--ghost ds-btn--sm ds-btn--icon", i.style.position = "fixed", i.style.top = "16px", i.style.right = "16px", i.style.zIndex = "9999";
2158
+ i.setAttribute("data-theme-toggle", ""), i.setAttribute("data-current-theme", F()), i.className = "ds-btn ds-btn--ghost ds-btn--sm ds-btn--icon", i.style.position = "fixed", i.style.top = "16px", i.style.right = "16px", i.style.zIndex = "9999";
2141
2159
  const t = document.createElement("img");
2142
2160
  t.className = "theme-icon";
2143
- const e = ut();
2144
- return t.src = R() === "dark" ? e + "sun.svg" : e + "moon.svg", t.width = 14, t.height = 14, t.alt = "Toggle theme", i.appendChild(t), document.body.appendChild(i), i.onclick = function(s) {
2161
+ const e = jt();
2162
+ return t.src = F() === "dark" ? e + "sun.svg" : e + "moon.svg", t.width = 14, t.height = 14, t.alt = "Toggle theme", i.appendChild(t), document.body.appendChild(i), i.onclick = function(s) {
2145
2163
  s.preventDefault();
2146
- const r = R() === "dark" ? "light" : "dark";
2147
- at(r);
2164
+ const r = F() === "dark" ? "light" : "dark";
2165
+ Q(r);
2148
2166
  }, i;
2149
2167
  }
2150
- function Ra() {
2168
+ function Ua() {
2151
2169
  const i = document.createElement("div");
2152
2170
  i.id = "brand-picker-auto", i.style.position = "fixed", i.style.top = "56px", i.style.right = "16px", i.style.zIndex = "9998", i.style.display = "none", i.style.padding = "12px", i.style.width = "200px", i.style.gridTemplateColumns = "repeat(3, 1fr)", i.style.gap = "6px", i.style.backgroundColor = "var(--bg-base-secondary)", i.style.border = "1px solid var(--border-neutral-l1)", i.style.borderRadius = "8px", i.style.boxShadow = "0 4px 20px rgba(0, 0, 0, 0.2)", i.style.overflow = "hidden", X.forEach((a) => {
2153
2171
  const o = document.createElement("button");
@@ -2174,12 +2192,12 @@ function Ra() {
2174
2192
  a.addEventListener("click", (o) => {
2175
2193
  o.stopPropagation();
2176
2194
  const l = a.getAttribute("data-brand-btn");
2177
- ot(l), i.style.display = "none";
2195
+ lt(l), i.style.display = "none";
2178
2196
  });
2179
2197
  }), { toggleBtn: t, container: i };
2180
2198
  }
2181
- function Va(i, t = {}) {
2182
- const s = st()?.sanitizeHtml || {};
2199
+ function Ya(i, t = {}) {
2200
+ const s = nt()?.sanitizeHtml || {};
2183
2201
  if (!s.enabled && !t.force)
2184
2202
  return i;
2185
2203
  const n = t.allowedTags || s.allowedTags || [], r = t.allowedAttributes || s.allowedAttributes || {};
@@ -2198,17 +2216,17 @@ function Va(i, t = {}) {
2198
2216
  });
2199
2217
  }), o.body.innerHTML;
2200
2218
  }
2201
- function Ka(i) {
2219
+ function Xa(i) {
2202
2220
  if (typeof i != "string")
2203
2221
  return i;
2204
2222
  const t = document.createElement("div");
2205
2223
  return t.textContent = i, t.innerHTML;
2206
2224
  }
2207
- function Wa(i) {
2225
+ function ja(i) {
2208
2226
  return typeof i != "string" ? i : new DOMParser().parseFromString(i, "text/html").body.textContent || "";
2209
2227
  }
2210
- function Ua(i, t, e = {}) {
2211
- const n = st()?.maskData || {};
2228
+ function Ja(i, t, e = {}) {
2229
+ const n = nt()?.maskData || {};
2212
2230
  if (!n.enabled && !e.force || i == null)
2213
2231
  return i;
2214
2232
  const a = (e.patterns || n.patterns || {})[t];
@@ -2217,8 +2235,8 @@ function Ua(i, t, e = {}) {
2217
2235
  const o = typeof a.regex == "string" ? new RegExp(a.regex) : a.regex;
2218
2236
  return String(i).replace(o, a.replace);
2219
2237
  }
2220
- function Ya(i, t) {
2221
- const s = st()?.secureId || {}, n = i || s.length || 16, r = s.charset || "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
2238
+ function Za(i, t) {
2239
+ const s = nt()?.secureId || {}, n = i || s.length || 16, r = s.charset || "ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789";
2222
2240
  if (typeof crypto > "u" || !crypto.getRandomValues) {
2223
2241
  let l = "";
2224
2242
  for (let c = 0; c < n; c++)
@@ -2232,7 +2250,7 @@ function Ya(i, t) {
2232
2250
  o += r[a[l] % r.length];
2233
2251
  return t ? `${t}_${o}` : o;
2234
2252
  }
2235
- class vr {
2253
+ class xr {
2236
2254
  constructor() {
2237
2255
  this.initializers = /* @__PURE__ */ new Map(), this.cleanupFunctions = /* @__PURE__ */ new Map(), this.processedElements = /* @__PURE__ */ new WeakSet(), this._dataAttrs = ["data-component"], this._cssClasses = [], this._cachedSelector = null;
2238
2256
  }
@@ -2339,7 +2357,7 @@ class vr {
2339
2357
  }), await Promise.all(n);
2340
2358
  }
2341
2359
  }
2342
- const E = new vr(), br = [
2360
+ const E = new xr(), Er = [
2343
2361
  { attr: "data-dropdown", cls: "ds-dropdown" },
2344
2362
  { attr: "data-select", cls: "ds-select" },
2345
2363
  { attr: "data-datepicker", cls: "ds-datepicker" },
@@ -2361,11 +2379,11 @@ const E = new vr(), br = [
2361
2379
  { cls: "ds-notification" },
2362
2380
  { cls: "ds-message" }
2363
2381
  ];
2364
- for (const i of br)
2382
+ for (const i of Er)
2365
2383
  i.attr && !E._dataAttrs.includes(i.attr) && E._dataAttrs.push(i.attr), i.cls && !E._cssClasses.includes(i.cls) && E._cssClasses.push(i.cls);
2366
- class G {
2384
+ class tt {
2367
2385
  constructor(t) {
2368
- this.element = t, this.isMounted = !1, this.isDestroyed = !1, this.props = this._parseProps(), this.state = {}, this.slots = this._parseSlots(), this._eventListeners = {}, this._appliedMixins = [], this.lifecycle = new ht(), this.setupContext = null;
2386
+ this.element = t, this.isMounted = !1, this.isDestroyed = !1, this.props = this._parseProps(), this.state = {}, this.slots = this._parseSlots(), this._eventListeners = {}, this._appliedMixins = [], this.lifecycle = new ut(), this.setupContext = null;
2369
2387
  }
2370
2388
  _parseProps() {
2371
2389
  const t = {};
@@ -2464,7 +2482,7 @@ class G {
2464
2482
  };
2465
2483
  let e = Object.getPrototypeOf(this);
2466
2484
  const s = /* @__PURE__ */ new Set();
2467
- for (; e && e.constructor !== Object && e.constructor !== G; ) {
2485
+ for (; e && e.constructor !== Object && e.constructor !== tt; ) {
2468
2486
  for (const [n, r] of Object.entries(t))
2469
2487
  s.has(n) || e.hasOwnProperty(n) && (Array.isArray(r) ? r.forEach((a) => {
2470
2488
  n === "render" && this.lifecycle.on(a, () => this.render?.());
@@ -2498,7 +2516,7 @@ class G {
2498
2516
  setup() {
2499
2517
  }
2500
2518
  }
2501
- function bt(i, t) {
2519
+ function xt(i, t) {
2502
2520
  Object.keys(t).forEach((e) => {
2503
2521
  if (e !== "constructor")
2504
2522
  if (typeof t[e] == "function") {
@@ -2510,12 +2528,12 @@ function bt(i, t) {
2510
2528
  i.prototype[e] = t[e];
2511
2529
  });
2512
2530
  }
2513
- class xr {
2531
+ class wr {
2514
2532
  constructor() {
2515
2533
  this.components = /* @__PURE__ */ new Map(), this.lazyComponents = /* @__PURE__ */ new Map(), this.loadedComponents = /* @__PURE__ */ new Map(), this.instances = /* @__PURE__ */ new Map(), this.observer = null, this.mixins = /* @__PURE__ */ new Map(), this.loadingPromises = /* @__PURE__ */ new Map();
2516
2534
  }
2517
2535
  register(t, e) {
2518
- if (!(e.prototype instanceof G))
2536
+ if (!(e.prototype instanceof tt))
2519
2537
  throw new Error(`Component ${t} must extend KupolaComponent`);
2520
2538
  this.components.set(t, e);
2521
2539
  }
@@ -2539,7 +2557,7 @@ class xr {
2539
2557
  const n = (async () => {
2540
2558
  try {
2541
2559
  const r = await s(), a = r.default || r;
2542
- if (!(a.prototype instanceof G))
2560
+ if (!(a.prototype instanceof tt))
2543
2561
  throw new Error(`Component ${t} must extend KupolaComponent`);
2544
2562
  return this.loadedComponents.set(t, a), a;
2545
2563
  } catch (r) {
@@ -2554,7 +2572,7 @@ class xr {
2554
2572
  useMixin(t, ...e) {
2555
2573
  e.forEach((s) => {
2556
2574
  const n = this.mixins.get(s);
2557
- n && bt(t, n);
2575
+ n && xt(t, n);
2558
2576
  });
2559
2577
  }
2560
2578
  async bootstrap(t = document) {
@@ -2595,7 +2613,7 @@ class xr {
2595
2613
  const n = t.getAttribute("data-mixins"), r = s;
2596
2614
  n && n.split(",").forEach((o) => {
2597
2615
  const l = this.mixins.get(o.trim());
2598
- l && bt(r, l);
2616
+ l && xt(r, l);
2599
2617
  });
2600
2618
  const a = new r(t);
2601
2619
  t.__kupolaInstance = a, this.instances.set(t, a), a.mount();
@@ -2640,41 +2658,41 @@ class xr {
2640
2658
  }), this.instances.clear(), this.components.clear(), this.mixins.clear();
2641
2659
  }
2642
2660
  }
2643
- let M = null;
2644
- typeof window < "u" && (M = new xr());
2645
- function Er() {
2646
- if (st().xssProtection && typeof document < "u") {
2661
+ let T = null;
2662
+ typeof window < "u" && (T = new wr());
2663
+ function kr() {
2664
+ if (nt().xssProtection && typeof document < "u") {
2647
2665
  let t = document.querySelector('meta[http-equiv="X-XSS-Protection"]');
2648
2666
  t || (t = document.createElement("meta"), t.setAttribute("http-equiv", "X-XSS-Protection"), t.setAttribute("content", "1; mode=block"), document.head.insertBefore(t, document.head.firstChild)), t = document.querySelector('meta[http-equiv="X-Content-Type-Options"]'), t || (t = document.createElement("meta"), t.setAttribute("http-equiv", "X-Content-Type-Options"), t.setAttribute("content", "nosniff"), document.head.insertBefore(t, document.head.firstChild));
2649
2667
  }
2650
2668
  }
2651
- async function xt() {
2669
+ async function Et() {
2652
2670
  if (typeof window < "u") {
2653
- Er();
2654
- const i = dt();
2655
- O.loadPersisted(), O.bind(), yr(), i.components?.autoInit !== !1 && (await E.initializeAll(), M && await M.bootstrap());
2671
+ kr();
2672
+ const i = pt();
2673
+ O.loadPersisted(), O.bind(), br(), i.components?.autoInit !== !1 && (await E.initializeAll(), T && await T.bootstrap());
2656
2674
  }
2657
2675
  }
2658
- typeof document < "u" && document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", xt) : typeof window < "u" && setTimeout(xt, 0);
2659
- function Xa(i, t) {
2660
- M && M.register(i, t);
2676
+ typeof document < "u" && document.readyState === "loading" ? document.addEventListener("DOMContentLoaded", Et) : typeof window < "u" && setTimeout(Et, 0);
2677
+ function Ga(i, t) {
2678
+ T && T.register(i, t);
2661
2679
  }
2662
- function ja(i, t) {
2663
- M && M.registerLazy(i, t);
2680
+ function Qa(i, t) {
2681
+ T && T.registerLazy(i, t);
2664
2682
  }
2665
- function Ja(i) {
2666
- return M ? M.bootstrap(i) : Promise.resolve();
2683
+ function to(i) {
2684
+ return T ? T.bootstrap(i) : Promise.resolve();
2667
2685
  }
2668
- function Za(i, t) {
2669
- M && M.defineMixin(i, t);
2686
+ function eo(i, t) {
2687
+ T && T.defineMixin(i, t);
2670
2688
  }
2671
- function Ga(i, ...t) {
2672
- M && M.useMixin(i, ...t);
2689
+ function so(i, ...t) {
2690
+ T && T.useMixin(i, ...t);
2673
2691
  }
2674
- function Qa(i, t) {
2692
+ function io(i, t) {
2675
2693
  if (!t || typeof t != "object")
2676
2694
  throw new Error(`defineComponent("${i}"): options must be an object`);
2677
- t.componentClass ? M && M.register(i, t.componentClass) : t.lazy && M && M.registerLazy(i, t.lazy), t.init ? E.register(i, t.init, t.cleanup || null, {
2695
+ t.componentClass ? T && T.register(i, t.componentClass) : t.lazy && T && T.registerLazy(i, t.lazy), t.init ? E.register(i, t.init, t.cleanup || null, {
2678
2696
  dataAttribute: t.dataAttribute,
2679
2697
  cssClass: t.cssClass
2680
2698
  }) : (t.dataAttribute || t.cssClass) && E.register(i, () => {
@@ -2683,9 +2701,9 @@ function Qa(i, t) {
2683
2701
  cssClass: t.cssClass
2684
2702
  });
2685
2703
  }
2686
- class Jt {
2704
+ class Gt {
2687
2705
  constructor(t = {}) {
2688
- const e = dt();
2706
+ const e = pt();
2689
2707
  this.locales = t.locales || {}, this.currentLocale = t.defaultLocale || e.i18n?.locale || "zh-CN", this.fallbackLocale = t.fallbackLocale || e.i18n?.fallbackLocale || "en-US", this.delimiter = t.delimiter || ".", this.missingHandler = t.missingHandler || ((s) => (console.warn(`Missing translation: ${s}`), s)), this._initFromDOM();
2690
2708
  }
2691
2709
  _initFromDOM() {
@@ -2781,32 +2799,32 @@ class Jt {
2781
2799
  return new Intl.RelativeTimeFormat(n, s).format(t, e);
2782
2800
  }
2783
2801
  }
2784
- const N = new Jt();
2785
- function to(i) {
2786
- return new Jt(i);
2802
+ const R = new Gt();
2803
+ function no(i) {
2804
+ return new Gt(i);
2787
2805
  }
2788
- function eo(i, t = {}) {
2789
- return N.t(i, t);
2806
+ function ro(i, t = {}) {
2807
+ return R.t(i, t);
2790
2808
  }
2791
- function so(i, t, e = {}) {
2792
- return N.n(i, t, e);
2809
+ function ao(i, t, e = {}) {
2810
+ return R.n(i, t, e);
2793
2811
  }
2794
- function io(i) {
2795
- return N.setLocale(i);
2812
+ function oo(i) {
2813
+ return R.setLocale(i);
2796
2814
  }
2797
- function no() {
2798
- return N.getLocale();
2815
+ function lo() {
2816
+ return R.getLocale();
2799
2817
  }
2800
- function ro(i, t = {}) {
2801
- return N.formatDate(i, t);
2818
+ function co(i, t = {}) {
2819
+ return R.formatDate(i, t);
2802
2820
  }
2803
- function ao(i, t = {}) {
2804
- return N.formatNumber(i, t);
2821
+ function ho(i, t = {}) {
2822
+ return R.formatNumber(i, t);
2805
2823
  }
2806
- function oo(i, t, e = {}) {
2807
- return N.formatCurrency(i, t, e);
2824
+ function uo(i, t, e = {}) {
2825
+ return R.formatCurrency(i, t, e);
2808
2826
  }
2809
- class wr {
2827
+ class Cr {
2810
2828
  constructor() {
2811
2829
  this._listeners = /* @__PURE__ */ new Map(), this._scopeListeners = /* @__PURE__ */ new Map();
2812
2830
  }
@@ -2936,32 +2954,32 @@ class wr {
2936
2954
  this._listeners.clear(), this._scopeListeners.clear();
2937
2955
  }
2938
2956
  }
2939
- const H = new wr();
2940
- function lo(i, t, e, s) {
2957
+ const H = new Cr();
2958
+ function po(i, t, e, s) {
2941
2959
  return H.on(i, t, e, s);
2942
2960
  }
2943
- function co(i, t, e, s) {
2961
+ function fo(i, t, e, s) {
2944
2962
  return H.once(i, t, e, s);
2945
2963
  }
2946
- function ho(i, t, e) {
2964
+ function mo(i, t, e) {
2947
2965
  H.off(i, t, e);
2948
2966
  }
2949
- function uo(i, t, e) {
2967
+ function go(i, t, e) {
2950
2968
  return H.emit(i, t, e);
2951
2969
  }
2952
- function po(i, t) {
2970
+ function _o(i, t) {
2953
2971
  return H.emitGlobal(i, t);
2954
2972
  }
2955
- function fo(i) {
2973
+ function yo(i) {
2956
2974
  H.offByScope(i);
2957
2975
  }
2958
- function mo(i, t) {
2976
+ function vo(i, t) {
2959
2977
  H.offAll(i, t);
2960
2978
  }
2961
- function go(i, t) {
2979
+ function bo(i, t) {
2962
2980
  return H.getListenerCount(i, t);
2963
2981
  }
2964
- class kr {
2982
+ class Sr {
2965
2983
  constructor(t, e = {}) {
2966
2984
  this.element = t, this.trigger = t.querySelector(".ds-dropdown__trigger"), this.menu = t.querySelector(".ds-dropdown__menu"), this.triggerText = this.trigger ? this.trigger.querySelector("span") : null, this.scope = `dropdown-${Math.random().toString(36).substr(2, 9)}`;
2967
2985
  const s = j();
@@ -3096,26 +3114,26 @@ class kr {
3096
3114
  }), this._mouseenterHandler && this.menu.removeEventListener("mouseenter", this._mouseenterHandler), this._mouseleaveHandler && this.menu.removeEventListener("mouseleave", this._mouseleaveHandler)), this._keydownHandler && document.removeEventListener("keydown", this._keydownHandler), this._documentClickListener && this._documentClickListener.unsubscribe ? this._documentClickListener.unsubscribe() : this._documentClickHandler && document.removeEventListener("click", this._documentClickHandler), this.appendToBody && this._originalParent && this._restoreMenuFromBody(), this._documentClickHandler = null, this._documentClickListener = null, this._triggerClickHandler = null, this._itemClickHandler = null, this._keydownHandler = null, this._mouseenterHandler = null, this._mouseleaveHandler = null, this._triggerMouseenterHandler = null, this._triggerMouseleaveHandler = null, this._triggerKeydownHandler = null, this.element.__kupolaInitialized = !1);
3097
3115
  }
3098
3116
  }
3099
- function Zt(i, t) {
3117
+ function Qt(i, t) {
3100
3118
  i._kupolaDropdown && i._kupolaDropdown.destroy();
3101
- const e = new kr(i, t);
3119
+ const e = new Sr(i, t);
3102
3120
  e.init(), i._kupolaDropdown = e;
3103
3121
  }
3104
- function _o(i = document) {
3122
+ function xo(i = document) {
3105
3123
  i.querySelectorAll(".ds-dropdown").forEach((t) => {
3106
- Zt(t);
3124
+ Qt(t);
3107
3125
  });
3108
3126
  }
3109
- function Gt(i) {
3127
+ function te(i) {
3110
3128
  i._kupolaDropdown && (i._kupolaDropdown.destroy(), i._kupolaDropdown = null);
3111
3129
  }
3112
- function yo() {
3130
+ function Eo() {
3113
3131
  document.querySelectorAll(".ds-dropdown").forEach((i) => {
3114
- Gt(i);
3132
+ te(i);
3115
3133
  });
3116
3134
  }
3117
- E.register("dropdown", Zt, Gt);
3118
- class Cr {
3135
+ E.register("dropdown", Qt, te);
3136
+ class Lr {
3119
3137
  constructor(t, e = {}) {
3120
3138
  this.element = t, this.trigger = t.querySelector(".ds-select__trigger"), this.valueEl = t.querySelector(".ds-select__value") || t.querySelector(".ds-select__trigger span"), this.optionsEl = t.querySelector(".ds-select__options") || t.querySelector(".ds-select__menu"), this.nativeSelect = t.querySelector("select"), this.icon = t.querySelector(".ds-select__icon"), this.scope = `select-${Math.random().toString(36).substr(2, 9)}`, this.multiple = e.multiple || t.hasAttribute("data-select-multiple"), this.searchable = e.searchable || t.hasAttribute("data-select-search"), this.clearable = e.clearable || t.hasAttribute("data-select-clear"), this.placeholder = e.placeholder || t.getAttribute("data-select-placeholder") || "", this.disabled = e.disabled || t.hasAttribute("data-select-disabled"), this.maxSelection = e.maxSelection || parseInt(t.getAttribute("data-select-max")) || 1 / 0, this.remoteMethod = e.remoteMethod || null, this.onChange = e.onChange || null, this.appendToBody = e.appendToBody !== !1, this.isOpen = !1, this.selectedValues = /* @__PURE__ */ new Set(), this.allOptions = [], this.filteredOptions = [], this.focusIndex = -1, this.searchInput = null, this.clearBtn = null, this.tagsWrap = null, this._originalParent = null, this._originalPosition = null, this._triggerClickHandler = null, this._documentClickHandler = null, this._documentClickListener = null, this._optionClickHandler = null, this._keydownHandler = null;
3121
3139
  }
@@ -3361,20 +3379,20 @@ class Cr {
3361
3379
  }), this._keydownHandler && document.removeEventListener("keydown", this._keydownHandler), this._documentClickListener && this._documentClickListener.unsubscribe ? this._documentClickListener.unsubscribe() : this._documentClickHandler && document.removeEventListener("click", this._documentClickHandler), this.searchInput && this.searchInput.remove(), this.clearBtn && this.clearBtn.remove(), this.tagsWrap && this.tagsWrap.remove(), this.appendToBody && this._originalParent && this._restoreOptionsFromBody(), this._documentClickHandler = null, this._documentClickListener = null, this._triggerClickHandler = null, this._optionClickHandler = null, this._keydownHandler = null, this.element.__kupolaInitialized = !1);
3362
3380
  }
3363
3381
  }
3364
- function Qt(i, t) {
3365
- const e = new Cr(i, t);
3382
+ function ee(i, t) {
3383
+ const e = new Lr(i, t);
3366
3384
  e.init(), i._kupolaSelect = e;
3367
3385
  }
3368
- function vo(i = document) {
3386
+ function wo(i = document) {
3369
3387
  i.querySelectorAll(".ds-select").forEach((t) => {
3370
- Qt(t);
3388
+ ee(t);
3371
3389
  });
3372
3390
  }
3373
- function Sr(i) {
3391
+ function Dr(i) {
3374
3392
  i._kupolaSelect && (i._kupolaSelect.destroy(), i._kupolaSelect = null);
3375
3393
  }
3376
- E.register("select", Qt, Sr);
3377
- class Lr {
3394
+ E.register("select", ee, Dr);
3395
+ class Hr {
3378
3396
  constructor(t, e = {}) {
3379
3397
  this.element = t, this.input = t.querySelector("input"), this.endInput = t.querySelector(".ds-datepicker__end-input"), this.icon = t.querySelector(".ds-datepicker__icon"), this.calendarEl = t.querySelector(".ds-datepicker__calendar"), this.scope = `datepicker-${Math.random().toString(36).substr(2, 9)}`;
3380
3398
  const s = j(), n = s.datepicker?.weekStart !== void 0 ? s.datepicker.weekStart : 1;
@@ -3637,20 +3655,20 @@ class Lr {
3637
3655
  }), this.appendToBody && this._originalParent && this._restoreCalendarFromBody(), this._documentClickHandler = null, this._resizeHandler = null, this._documentClickListener = null, this._resizeListener = null, this._iconClickHandler = null, this._inputClickHandler = null, this._endInputClickHandler = null, this._keydownHandler = null, this.element.__kupolaInitialized = !1);
3638
3656
  }
3639
3657
  }
3640
- function te(i, t) {
3641
- const e = new Lr(i, t);
3658
+ function se(i, t) {
3659
+ const e = new Hr(i, t);
3642
3660
  e.init(), i._kupolaDatepicker = e;
3643
3661
  }
3644
- function bo(i = document) {
3662
+ function ko(i = document) {
3645
3663
  i.querySelectorAll(".ds-datepicker").forEach((t) => {
3646
- te(t);
3664
+ se(t);
3647
3665
  });
3648
3666
  }
3649
- function Dr(i) {
3667
+ function Mr(i) {
3650
3668
  i._kupolaDatepicker && (i._kupolaDatepicker.destroy(), i._kupolaDatepicker = null);
3651
3669
  }
3652
- E.register("datepicker", te, Dr);
3653
- class Hr {
3670
+ E.register("datepicker", se, Mr);
3671
+ class Tr {
3654
3672
  constructor(t, e = {}) {
3655
3673
  this.element = t, this.input = t.querySelector("input"), this.inputWrap = t.querySelector(".ds-timepicker__input-wrap"), this.panelEl = null, this.scope = `timepicker-${Math.random().toString(36).substr(2, 9)}`, this.showSeconds = e.showSeconds || t.hasAttribute("data-timepicker-seconds"), this.use12Hour = e.use12Hour || t.hasAttribute("data-timepicker-12h"), this.hourStep = e.hourStep || parseInt(t.getAttribute("data-timepicker-hour-step")) || 1, this.minuteStep = e.minuteStep || parseInt(t.getAttribute("data-timepicker-minute-step")) || 5, this.secondStep = e.secondStep || parseInt(t.getAttribute("data-timepicker-second-step")) || 5, this.minTime = e.minTime || t.getAttribute("data-timepicker-min") || null, this.maxTime = e.maxTime || t.getAttribute("data-timepicker-max") || null, this.disabledTime = e.disabledTime || null, this.placeholder = e.placeholder || t.getAttribute("data-timepicker-placeholder") || "", this.clearable = e.clearable || t.hasAttribute("data-timepicker-clear"), this.onChange = e.onChange || null, this.selectedHour = 12, this.selectedMinute = 0, this.selectedSecond = 0, this.isPM = !1, this._inputWrapClickHandler = null, this._documentClickHandler = null, this._documentClickListener = null, this._resizeHandler = null, this._resizeListener = null, this._keydownHandler = null;
3656
3674
  }
@@ -3832,20 +3850,20 @@ class Hr {
3832
3850
  this.element.__kupolaInitialized && (this.inputWrap && this._inputWrapClickHandler && this.inputWrap.removeEventListener("click", this._inputWrapClickHandler), this._documentClickListener && this._documentClickListener.unsubscribe ? this._documentClickListener.unsubscribe() : this._documentClickHandler && document.removeEventListener("click", this._documentClickHandler), this._resizeListener && this._resizeListener.unsubscribe ? this._resizeListener.unsubscribe() : this._resizeHandler && window.removeEventListener("resize", this._resizeHandler), this._keydownHandler && document.removeEventListener("keydown", this._keydownHandler), this.panelEl && (this.panelEl.remove(), this.panelEl = null), this._inputWrapClickHandler = null, this._documentClickHandler = null, this._documentClickListener = null, this._resizeHandler = null, this._resizeListener = null, this._keydownHandler = null, this.element.__kupolaInitialized = !1);
3833
3851
  }
3834
3852
  }
3835
- function ee(i, t) {
3836
- const e = new Hr(i, t);
3853
+ function ie(i, t) {
3854
+ const e = new Tr(i, t);
3837
3855
  e.init(), i._kupolaTimepicker = e;
3838
3856
  }
3839
- function xo(i = document) {
3857
+ function Co(i = document) {
3840
3858
  i.querySelectorAll(".ds-timepicker").forEach((t) => {
3841
- ee(t);
3859
+ ie(t);
3842
3860
  });
3843
3861
  }
3844
- function Mr(i) {
3862
+ function Ir(i) {
3845
3863
  i._kupolaTimepicker && (i._kupolaTimepicker.destroy(), i._kupolaTimepicker = null);
3846
3864
  }
3847
- E.register("timepicker", ee, Mr);
3848
- class Ir {
3865
+ E.register("timepicker", ie, Ir);
3866
+ class Ar {
3849
3867
  constructor(t, e = {}) {
3850
3868
  if (this.element = t, this.track = t.querySelector(".ds-slider__track"), this.fill = t.querySelector(".ds-slider__fill"), this.input = t.querySelector(".ds-slider__input"), this.valueEl = t.querySelector(".ds-slider__value"), this.range = e.range || t.hasAttribute("data-slider-range"), this.vertical = e.vertical || t.hasAttribute("data-slider-vertical"), this.disabled = e.disabled || t.hasAttribute("data-slider-disabled"), this.showTooltip = e.showTooltip !== !1, this.showMarks = e.marks || t.hasAttribute("data-slider-marks"), this.markStep = e.markStep || parseInt(t.getAttribute("data-slider-mark-step")) || 10, this.tooltipFormat = e.tooltipFormat || ((s) => s), this.onChange = e.onChange || null, this.onInput = e.onInput || null, this.inputEnd = t.querySelector(".ds-slider__input--end"), this.fillEnd = null, this.thumbStart = null, this.thumbEnd = null, this.tooltipStart = null, this.tooltipEnd = null, this.marksEl = null, this._listeners = [], this._isDragging = !1, this._activeThumb = null, !this.track || !this.fill)
3851
3869
  throw new Error("Slider: Missing required elements");
@@ -3993,26 +4011,26 @@ class Ir {
3993
4011
  this.disabled = !0, this.element.classList.add("is-disabled");
3994
4012
  }
3995
4013
  }
3996
- function se(i, t) {
4014
+ function ne(i, t) {
3997
4015
  if (!i.__kupolaInitialized)
3998
4016
  try {
3999
- const e = new Ir(i, t);
4017
+ const e = new Ar(i, t);
4000
4018
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
4001
4019
  } catch (e) {
4002
4020
  console.error("[Slider] Error initializing:", e);
4003
4021
  }
4004
4022
  }
4005
- function Tr(i) {
4023
+ function zr(i) {
4006
4024
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
4007
4025
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
4008
4026
  }
4009
- function Eo() {
4027
+ function So() {
4010
4028
  document.querySelectorAll(".ds-slider").forEach((i) => {
4011
- se(i);
4029
+ ne(i);
4012
4030
  });
4013
4031
  }
4014
- E.register("slider", se, Tr);
4015
- class Ar {
4032
+ E.register("slider", ne, zr);
4033
+ class Pr {
4016
4034
  constructor(t, e = {}) {
4017
4035
  this.element = t, this.track = t.querySelector(".ds-carousel__track"), this.items = t.querySelectorAll(".ds-carousel__item"), this.prevBtn = t.querySelector(".ds-carousel__prev"), this.nextBtn = t.querySelector(".ds-carousel__next"), this.indicators = t.querySelectorAll(".ds-carousel__indicator"), this.autoBtn = t.querySelector(".ds-carousel__auto"), this.mode = e.mode || t.getAttribute("data-carousel-mode") || "slide", this.vertical = e.vertical || t.hasAttribute("data-carousel-vertical"), this.autoPlay = e.autoPlay !== !1, this.interval = e.interval || parseInt(t.getAttribute("data-carousel-interval")) || 3e3, this.transitionDuration = e.transitionDuration || parseInt(t.getAttribute("data-carousel-duration")) || 500, this.loop = e.loop !== !1, this.pauseOnHover = e.pauseOnHover !== !1, this.swipe = e.swipe !== !1, this.swipeThreshold = e.swipeThreshold || 50, this.keyboardNav = e.keyboardNav || t.hasAttribute("data-carousel-keyboard"), this.onChange = e.onChange || null, this.currentIndex = 0, this.totalItems = this.items.length, this.autoPlayTimer = null, this.isAutoPlaying = !1, this.isTransitioning = !1, this.touchStartX = 0, this.touchStartY = 0, this.touchDeltaX = 0, this.touchDeltaY = 0, this.isSwiping = !1, this._mouseEnterHandler = () => {
4018
4036
  this.pauseOnHover && this.stopAutoPlay();
@@ -4093,22 +4111,22 @@ class Ar {
4093
4111
  }), this._touchStartHandler && this.element.removeEventListener("touchstart", this._touchStartHandler), this._touchMoveHandler && this.element.removeEventListener("touchmove", this._touchMoveHandler), this._touchEndHandler && this.element.removeEventListener("touchend", this._touchEndHandler), this._keydownHandler && this.element.removeEventListener("keydown", this._keydownHandler), this._prevClickHandler = null, this._nextClickHandler = null, this._autoClickHandler = null, this._indicatorClickHandlers = null;
4094
4112
  }
4095
4113
  }
4096
- function ie(i, t) {
4114
+ function re(i, t) {
4097
4115
  if (i.__kupolaInitialized) return;
4098
- const e = new Ar(i, t);
4116
+ const e = new Pr(i, t);
4099
4117
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
4100
4118
  }
4101
- function wo(i = document) {
4119
+ function Lo(i = document) {
4102
4120
  i.querySelectorAll(".ds-carousel").forEach((t) => {
4103
- ie(t);
4121
+ re(t);
4104
4122
  });
4105
4123
  }
4106
- function zr(i) {
4124
+ function $r(i) {
4107
4125
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
4108
4126
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
4109
4127
  }
4110
- E.register("carousel", ie, zr);
4111
- class Pr {
4128
+ E.register("carousel", re, $r);
4129
+ class Br {
4112
4130
  constructor(t, e = {}) {
4113
4131
  this.element = t, this.mask = t.querySelector(".ds-drawer-mask"), this.drawerEl = t.querySelector(".ds-drawer"), this.placement = e.placement || t.getAttribute("data-drawer-placement") || "right", this.width = e.width || t.getAttribute("data-drawer-width") || "400px", this.height = e.height || t.getAttribute("data-drawer-height") || "400px", this.escClose = e.escClose !== !1, this.maskClosable = e.maskClosable !== !1, this.showMask = e.showMask !== !1, this.onOpen = e.onOpen || null, this.onClose = e.onClose || null, this.onBeforeClose = e.onBeforeClose || null, this._keydownHandler = null, this._bindEvents();
4114
4132
  }
@@ -4145,20 +4163,20 @@ class Pr {
4145
4163
  return this.drawerEl?.classList.contains("is-visible") || !1;
4146
4164
  }
4147
4165
  }
4148
- function lt(i, t) {
4166
+ function ht(i, t) {
4149
4167
  if (i.__kupolaInitialized) return;
4150
- const e = new Pr(i, t);
4168
+ const e = new Br(i, t);
4151
4169
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
4152
4170
  }
4153
- function $r(i) {
4171
+ function qr(i) {
4154
4172
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
4155
4173
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
4156
4174
  }
4157
- function ko() {
4175
+ function Do() {
4158
4176
  document.querySelectorAll("[data-drawer]").forEach((i) => {
4159
4177
  i.addEventListener("click", () => {
4160
4178
  const t = i.getAttribute("data-drawer"), e = document.getElementById(t);
4161
- e && (lt(e, {
4179
+ e && (ht(e, {
4162
4180
  placement: i.getAttribute("data-drawer-placement") || "right",
4163
4181
  width: i.getAttribute("data-drawer-width"),
4164
4182
  height: i.getAttribute("data-drawer-height")
@@ -4166,10 +4184,10 @@ function ko() {
4166
4184
  });
4167
4185
  }), document.querySelectorAll(".ds-drawer-mask").forEach((i) => {
4168
4186
  const t = i.parentElement;
4169
- t && lt(t);
4187
+ t && ht(t);
4170
4188
  });
4171
4189
  }
4172
- E.register("drawer", lt, $r);
4190
+ E.register("drawer", ht, qr);
4173
4191
  class $ {
4174
4192
  constructor(t, e = {}) {
4175
4193
  this.element = t, this.mask = t.querySelector(".ds-modal-mask"), this.modal = t.querySelector(".ds-modal"), this.closeBtn = t.querySelector(".ds-modal__close");
@@ -4206,7 +4224,7 @@ class $ {
4206
4224
  }
4207
4225
  }
4208
4226
  $._openCount = 0;
4209
- function ne(i = {}) {
4227
+ function ae(i = {}) {
4210
4228
  const {
4211
4229
  title: t = "",
4212
4230
  content: e = "",
@@ -4254,8 +4272,8 @@ function ne(i = {}) {
4254
4272
  const z = C.querySelector(".ds-modal__body");
4255
4273
  z && (s ? z.innerHTML = e : z.textContent = e);
4256
4274
  const D = C.querySelector("[data-modal-confirm]"), q = C.querySelector("[data-modal-cancel]");
4257
- let pt = !1;
4258
- const ft = async () => {
4275
+ let mt = !1;
4276
+ const gt = async () => {
4259
4277
  if (p) {
4260
4278
  D.disabled = !0, D.classList.add("is-loading");
4261
4279
  try {
@@ -4268,52 +4286,52 @@ function ne(i = {}) {
4268
4286
  return;
4269
4287
  }
4270
4288
  }
4271
- pt = !0, k.close();
4272
- }, mt = () => {
4289
+ mt = !0, k.close();
4290
+ }, _t = () => {
4273
4291
  m && m(), k.close();
4274
4292
  };
4275
- D && D.addEventListener("click", ft), q && q.addEventListener("click", mt);
4276
- const Ce = () => {
4293
+ D && D.addEventListener("click", gt), q && q.addEventListener("click", _t);
4294
+ const Le = () => {
4277
4295
  setTimeout(() => {
4278
- D && D.removeEventListener("click", ft), q && q.removeEventListener("click", mt), k.destroy(), C.remove(), _ && _(pt);
4296
+ D && D.removeEventListener("click", gt), q && q.removeEventListener("click", _t), k.destroy(), C.remove(), _ && _(mt);
4279
4297
  }, 300);
4280
- }, Se = k.close.bind(k);
4298
+ }, De = k.close.bind(k);
4281
4299
  return k.close = () => {
4282
- Se(), Ce();
4300
+ De(), Le();
4283
4301
  }, k.open(), y && setTimeout(() => y(), 50), k;
4284
4302
  }
4285
- function Co(i) {
4286
- return typeof i == "string" && (i = { content: i }), ne({
4303
+ function Ho(i) {
4304
+ return typeof i == "string" && (i = { content: i }), ae({
4287
4305
  ...i,
4288
4306
  showCancel: !0,
4289
4307
  showConfirm: !0
4290
4308
  });
4291
4309
  }
4292
- function So(i) {
4293
- return typeof i == "string" && (i = { content: i }), ne({
4310
+ function Mo(i) {
4311
+ return typeof i == "string" && (i = { content: i }), ae({
4294
4312
  ...i,
4295
4313
  showCancel: !1,
4296
4314
  showConfirm: !0
4297
4315
  });
4298
4316
  }
4299
- function re(i) {
4317
+ function oe(i) {
4300
4318
  if (i.__kupolaInitialized)
4301
4319
  return;
4302
4320
  const t = new $(i);
4303
4321
  i.__kupolaInstance = t, i.__kupolaInitialized = !0;
4304
4322
  }
4305
- function Br(i) {
4323
+ function Or(i) {
4306
4324
  if (!i.__kupolaInitialized || !i.__kupolaInstance)
4307
4325
  return;
4308
4326
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
4309
4327
  }
4310
- function Lo() {
4328
+ function To() {
4311
4329
  document.querySelectorAll(".ds-modal-container").forEach((i) => {
4312
- re(i);
4330
+ oe(i);
4313
4331
  });
4314
4332
  }
4315
- E.register("modal", re, Br);
4316
- class Do {
4333
+ E.register("modal", oe, Or);
4334
+ class Io {
4317
4335
  static normal(t = {}) {
4318
4336
  return this._create({ type: "normal", ...t });
4319
4337
  }
@@ -4378,7 +4396,7 @@ class Do {
4378
4396
  return c.classList.add("is-visible"), document.body.style.overflow = "hidden", h && h.addEventListener("click", p), d && d.addEventListener("click", m), c.addEventListener("click", f), document.addEventListener("keydown", u), { close: y };
4379
4397
  }
4380
4398
  }
4381
- const Ho = {
4399
+ const Ao = {
4382
4400
  normal: function(i) {
4383
4401
  this.show({ ...i, type: "normal" });
4384
4402
  },
@@ -4395,7 +4413,7 @@ const Ho = {
4395
4413
  this.show({ ...i, type: "info" });
4396
4414
  },
4397
4415
  show: function(i) {
4398
- const t = mr(), { title: e, message: s, type: n = "normal", duration: r = t.duration, position: a = t.position } = i, o = document.createElement("div");
4416
+ const t = _r(), { title: e, message: s, type: n = "normal", duration: r = t.duration, position: a = t.position } = i, o = document.createElement("div");
4399
4417
  o.className = `ds-notification__item ds-notification__item--${n}`;
4400
4418
  const l = {
4401
4419
  normal: '<svg width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>',
@@ -4429,9 +4447,9 @@ const Ho = {
4429
4447
  }, r);
4430
4448
  }
4431
4449
  };
4432
- function Mo() {
4450
+ function zo() {
4433
4451
  }
4434
- const Io = {
4452
+ const Po = {
4435
4453
  normal: function(i, t = {}) {
4436
4454
  this.show(i, "normal", t);
4437
4455
  },
@@ -4448,7 +4466,7 @@ const Io = {
4448
4466
  this.show(i, "info", t);
4449
4467
  },
4450
4468
  show: function(i, t = "normal", e = {}) {
4451
- const s = fr(), { duration: n = s.duration, position: r = s.position } = e, a = s.maxCount || 5, o = document.createElement("div");
4469
+ const s = gr(), { duration: n = s.duration, position: r = s.position } = e, a = s.maxCount || 5, o = document.createElement("div");
4452
4470
  o.className = `ds-message__item ds-message__item--${t}`;
4453
4471
  const l = {
4454
4472
  normal: '<svg width="18" height="18" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2"><circle cx="12" cy="12" r="10"/><line x1="12" y1="16" x2="12" y2="12"/><line x1="12" y1="8" x2="12.01" y2="8"/></svg>',
@@ -4479,12 +4497,12 @@ const Io = {
4479
4497
  }, n);
4480
4498
  }
4481
4499
  };
4482
- function To() {
4500
+ function $o() {
4483
4501
  }
4484
- function Et(i) {
4502
+ function wt(i) {
4485
4503
  return i ? i.replace(/&/g, "&amp;").replace(/</g, "&lt;").replace(/>/g, "&gt;").replace(/"/g, "&quot;").replace(/'/g, "&#39;") : "";
4486
4504
  }
4487
- class qr {
4505
+ class Fr {
4488
4506
  constructor(t) {
4489
4507
  this.element = t, this.dropzone = t.querySelector(".ds-fileupload__dropzone"), this.input = t.querySelector(".ds-fileupload__input"), this.list = t.querySelector(".ds-fileupload__list"), this.progress = t.querySelector(".ds-fileupload__preview"), this.files = [], this.maxSize = parseInt(t.getAttribute("data-max-size")) || 0, this.maxCount = parseInt(t.getAttribute("data-max-count")) || 0, this._listeners = [], this.init();
4490
4508
  }
@@ -4540,7 +4558,7 @@ class qr {
4540
4558
  <div class="ds-fileupload__icon" style="width: 24px; height: 24px; border-radius: 4px;">
4541
4559
  ${s}
4542
4560
  </div>
4543
- <span class="ds-fileupload__filename">${this.truncateFilename(Et(t.name))}</span>
4561
+ <span class="ds-fileupload__filename">${this.truncateFilename(wt(t.name))}</span>
4544
4562
  <span class="ds-fileupload__size">${this.formatSize(t.size)}</span>
4545
4563
  <button class="ds-fileupload__remove" type="button" aria-label="Remove file">
4546
4564
  <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
@@ -4592,7 +4610,7 @@ class qr {
4592
4610
  e.onload = (s) => {
4593
4611
  const n = document.createElement("div");
4594
4612
  n.className = "ds-fileupload__preview-item", n.innerHTML = `
4595
- <img src="${s.target.result}" alt="${Et(t.name)}">
4613
+ <img src="${s.target.result}" alt="${wt(t.name)}">
4596
4614
  <button class="ds-fileupload__preview-remove" type="button" aria-label="Remove preview">
4597
4615
  <svg width="14" height="14" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2">
4598
4616
  <path d="M18 6L6 18"/>
@@ -4642,22 +4660,22 @@ class qr {
4642
4660
  }), this._listeners = null, this.files = [], this.dropzone = null, this.input = null, this.list = null, this.progress = null, this.preview = null, this.element = null;
4643
4661
  }
4644
4662
  }
4645
- function ae(i) {
4663
+ function le(i) {
4646
4664
  if (i.__kupolaInitialized) return;
4647
- const t = new qr(i);
4665
+ const t = new Fr(i);
4648
4666
  i.__kupolaInstance = t, i.__kupolaInitialized = !0;
4649
4667
  }
4650
- function Or(i) {
4668
+ function Nr(i) {
4651
4669
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
4652
4670
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
4653
4671
  }
4654
- function Ao() {
4672
+ function Bo() {
4655
4673
  document.querySelectorAll(".ds-fileupload").forEach((i) => {
4656
- ae(i);
4674
+ le(i);
4657
4675
  });
4658
4676
  }
4659
- E.register("fileupload", ae, Or);
4660
- class Fr {
4677
+ E.register("fileupload", le, Nr);
4678
+ class Rr {
4661
4679
  constructor(t, e = {}) {
4662
4680
  this.element = t, this.headers = [], this._listeners = [], this.accordion = e.accordion || t.hasAttribute("data-collapse-accordion"), this.animationDuration = e.animationDuration || parseInt(t.getAttribute("data-collapse-duration")) || 300, this.disabledItems = e.disabledItems || [], this.defaultExpanded = e.defaultExpanded || [], this._init();
4663
4681
  }
@@ -4739,22 +4757,22 @@ class Fr {
4739
4757
  this.headers[t] && (this.headers[t].isDisabled = !1, this.headers[t].item.classList.remove("is-disabled"));
4740
4758
  }
4741
4759
  }
4742
- function oe(i, t) {
4760
+ function ce(i, t) {
4743
4761
  if (i.__kupolaInitialized) return;
4744
- const e = new Fr(i, t);
4762
+ const e = new Rr(i, t);
4745
4763
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
4746
4764
  }
4747
- function Nr(i) {
4765
+ function Vr(i) {
4748
4766
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
4749
4767
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
4750
4768
  }
4751
- function zo() {
4769
+ function qo() {
4752
4770
  document.querySelectorAll(".ds-collapse").forEach((i) => {
4753
- oe(i);
4771
+ ce(i);
4754
4772
  });
4755
4773
  }
4756
- E.register("collapse", oe, Nr);
4757
- class Rr {
4774
+ E.register("collapse", ce, Vr);
4775
+ class Kr {
4758
4776
  constructor(t, e = {}) {
4759
4777
  this.element = t, this.trigger = t.querySelector(".ds-color-picker__trigger"), this.panel = t.querySelector(".ds-color-picker__panel"), this.valueSpan = t.querySelector(".ds-color-picker__value"), this.customInput = t.querySelector(".ds-color-picker__input"), this.scope = `colorpicker-${Math.random().toString(36).substr(2, 9)}`, this.options = e, this.value = e.value || "#007bff", this.showAlpha = e.showAlpha !== !1, this.mode = e.mode || "hex", this.previousColors = e.previousColors || this._getStoredColors(), this.previousColorsLimit = e.previousColorsLimit || 12, this._triggerClickHandler = null, this._documentClickHandler = null, this._documentClickListener = null, this._colorClickHandler = null, this._inputInputHandler = null, this._alphaChangeHandler = null, this._modeChangeHandler = null, this._hueChangeHandler = null, this._saturationChangeHandler = null, this._valueChangeHandler = null, this.hue = 210, this.saturation = 100, this.brightness = 50, this.alpha = 100, this._colorStringToHSB(this.value);
4760
4778
  }
@@ -4919,20 +4937,20 @@ class Rr {
4919
4937
  }), this._documentClickListener && this._documentClickListener.unsubscribe ? this._documentClickListener.unsubscribe() : this._documentClickHandler && document.removeEventListener("click", this._documentClickHandler), this._documentClickHandler = null, this._documentClickListener = null, this._triggerClickHandler = null, this._colorClickHandler = null, this._inputInputHandler = null, this._alphaChangeHandler = null, this._modeChangeHandler = null, this._hueChangeHandler = null, this._saturationChangeHandler = null, this._valueChangeHandler = null, this.element.__kupolaInitialized = !1;
4920
4938
  }
4921
4939
  }
4922
- function le(i, t) {
4923
- const e = new Rr(i, t);
4940
+ function he(i, t) {
4941
+ const e = new Kr(i, t);
4924
4942
  e.init(), i._kupolaColorPicker = e;
4925
4943
  }
4926
- function Po(i = document) {
4944
+ function Oo(i = document) {
4927
4945
  i.querySelectorAll(".ds-color-picker").forEach((t) => {
4928
- le(t);
4946
+ he(t);
4929
4947
  });
4930
4948
  }
4931
- function Vr(i) {
4949
+ function Wr(i) {
4932
4950
  i._kupolaColorPicker && (i._kupolaColorPicker.destroy(), i._kupolaColorPicker = null);
4933
4951
  }
4934
- E.register("color-picker", le, Vr);
4935
- class Kr {
4952
+ E.register("color-picker", he, Wr);
4953
+ class Ur {
4936
4954
  constructor(t, e = {}) {
4937
4955
  if (this.element = t, this.titleEl = t.querySelector(".ds-calendar__title"), this.daysEl = t.querySelector(".ds-calendar__days"), this.prevBtn = t.querySelector(".ds-calendar__nav--prev"), this.nextBtn = t.querySelector(".ds-calendar__nav--next"), this.todayBtn = t.querySelector(".ds-calendar__nav--today"), this._listeners = [], !this.titleEl || !this.daysEl)
4938
4956
  throw new Error("Calendar: Missing required elements");
@@ -5129,26 +5147,26 @@ class Kr {
5129
5147
  this.isRangeMode = !this.isRangeMode, this.rangeStart = null, this.rangeEnd = null, this.render(), this._emitChange();
5130
5148
  }
5131
5149
  }
5132
- function ce(i, t) {
5150
+ function de(i, t) {
5133
5151
  if (!i.__kupolaInitialized)
5134
5152
  try {
5135
- const e = new Kr(i, t);
5153
+ const e = new Ur(i, t);
5136
5154
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
5137
5155
  } catch (e) {
5138
5156
  console.error("[Calendar] Error initializing:", e);
5139
5157
  }
5140
5158
  }
5141
- function Wr(i) {
5159
+ function Yr(i) {
5142
5160
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
5143
5161
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
5144
5162
  }
5145
- function $o() {
5163
+ function Fo() {
5146
5164
  document.querySelectorAll(".ds-calendar").forEach((i) => {
5147
- ce(i);
5165
+ de(i);
5148
5166
  });
5149
5167
  }
5150
- E.register("calendar", ce, Wr);
5151
- class Ur {
5168
+ E.register("calendar", de, Yr);
5169
+ class Xr {
5152
5170
  constructor(t, e = {}) {
5153
5171
  this.element = t, this.input = t.querySelector(".ds-dynamic-tags__input"), this._listeners = [], this.maxCount = e.maxCount || parseInt(t.getAttribute("data-dynamic-tags-max")) || 1 / 0, this.allowDuplicates = e.allowDuplicates !== !1, this.color = e.color || t.getAttribute("data-dynamic-tags-color") || "default", this.init();
5154
5172
  }
@@ -5294,22 +5312,22 @@ class Ur {
5294
5312
  }), this._listeners = null, this.input = null, this.element = null;
5295
5313
  }
5296
5314
  }
5297
- function he(i, t) {
5315
+ function ue(i, t) {
5298
5316
  if (i.__kupolaInitialized) return;
5299
- const e = new Ur(i, t);
5317
+ const e = new Xr(i, t);
5300
5318
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
5301
5319
  }
5302
- function Yr(i) {
5320
+ function jr(i) {
5303
5321
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
5304
5322
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
5305
5323
  }
5306
- function Bo() {
5324
+ function No() {
5307
5325
  document.querySelectorAll(".ds-dynamic-tags").forEach((i) => {
5308
- he(i);
5326
+ ue(i);
5309
5327
  });
5310
5328
  }
5311
- E.register("dynamic-tags", he, Yr);
5312
- class de {
5329
+ E.register("dynamic-tags", ue, jr);
5330
+ class pe {
5313
5331
  constructor(t = {}) {
5314
5332
  this.images = t.images || [], this.currentIndex = t.currentIndex || 0, this.overlay = null, this.closeHandler = this.close.bind(this), this.keyHandler = this.handleKeydown.bind(this), this.clickHandler = this.handleOverlayClick.bind(this), this.zoom = 1, this.rotation = 0, this.zoomStep = t.zoomStep || 0.2, this.minZoom = t.minZoom || 0.5, this.maxZoom = t.maxZoom || 3, this.init();
5315
5333
  }
@@ -5501,18 +5519,18 @@ class de {
5501
5519
  }
5502
5520
  }
5503
5521
  let V = null;
5504
- function qo() {
5505
- V || (V = new de()), document.querySelectorAll("[data-image-preview]").forEach((i) => {
5522
+ function Ro() {
5523
+ V || (V = new pe()), document.querySelectorAll("[data-image-preview]").forEach((i) => {
5506
5524
  i.addEventListener("click", () => {
5507
5525
  const t = JSON.parse(i.getAttribute("data-image-preview")), e = parseInt(i.getAttribute("data-image-index")) || 0;
5508
5526
  V.show(t, e);
5509
5527
  });
5510
5528
  });
5511
5529
  }
5512
- function Oo(i, t = 0) {
5513
- V || (V = new de()), V.show(i, t);
5530
+ function Vo(i, t = 0) {
5531
+ V || (V = new pe()), V.show(i, t);
5514
5532
  }
5515
- class Xr {
5533
+ class Jr {
5516
5534
  constructor(t, e = {}) {
5517
5535
  this.element = t, this.closeBtn = t.querySelector(".ds-tag__close"), this.checkbox = t.querySelector(".ds-tag__checkbox"), this.editInput = t.querySelector(".ds-tag__input"), this._listeners = [], this.color = e.color || t.getAttribute("data-tag-color") || "default", this.size = e.size || t.getAttribute("data-tag-size") || "default", this.checkable = e.checkable || t.hasAttribute("data-tag-checkable"), this.checked = e.checked || t.hasAttribute("data-tag-checked"), this.editable = e.editable || t.hasAttribute("data-tag-editable"), this.maxLength = e.maxLength || parseInt(t.getAttribute("data-tag-maxlength")) || 50, this.init();
5518
5536
  }
@@ -5642,22 +5660,22 @@ class Xr {
5642
5660
  }), this._listeners = [], this.closeBtn = null, this.checkbox = null, this.editInput = null, this.element = null;
5643
5661
  }
5644
5662
  }
5645
- function ue(i, t) {
5663
+ function fe(i, t) {
5646
5664
  if (i.__kupolaInitialized) return;
5647
- const e = new Xr(i, t);
5665
+ const e = new Jr(i, t);
5648
5666
  i.__kupolaInstance = e, i.__kupolaInitialized = !0;
5649
5667
  }
5650
- function jr(i) {
5668
+ function Zr(i) {
5651
5669
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
5652
5670
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
5653
5671
  }
5654
- function Fo() {
5672
+ function Ko() {
5655
5673
  document.querySelectorAll(".ds-tag").forEach((i) => {
5656
- ue(i);
5674
+ fe(i);
5657
5675
  });
5658
5676
  }
5659
- E.register("tag", ue, jr);
5660
- class Jr {
5677
+ E.register("tag", fe, Zr);
5678
+ class Gr {
5661
5679
  constructor(t) {
5662
5680
  this.element = t, this.valueElement = t.querySelector(".ds-statcard__value"), this.progressFill = t.querySelector(".ds-statcard__progress-fill"), this.animated = !1, this._observer = null, this.init();
5663
5681
  }
@@ -5717,22 +5735,22 @@ class Jr {
5717
5735
  this._observer && (this._observer.disconnect(), this._observer = null), this.animated = !1, this.valueElement = null, this.progressFill = null, this.element = null;
5718
5736
  }
5719
5737
  }
5720
- function pe(i) {
5738
+ function me(i) {
5721
5739
  if (i.__kupolaInitialized) return;
5722
- const t = new Jr(i);
5740
+ const t = new Gr(i);
5723
5741
  i.__kupolaInstance = t, i.__kupolaInitialized = !0;
5724
5742
  }
5725
- function Zr(i) {
5743
+ function Qr(i) {
5726
5744
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
5727
5745
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
5728
5746
  }
5729
- function No() {
5747
+ function Wo() {
5730
5748
  document.querySelectorAll(".ds-statcard").forEach((i) => {
5731
- pe(i);
5749
+ me(i);
5732
5750
  });
5733
5751
  }
5734
- E.register("statcard", pe, Zr);
5735
- class Gr {
5752
+ E.register("statcard", me, Qr);
5753
+ class ta {
5736
5754
  constructor(t, e = {}) {
5737
5755
  this.element = t, this.data = e.data || [], this.startDate = e.startDate || this.getOneYearAgo(), this.endDate = e.endDate || /* @__PURE__ */ new Date(), this.cellSize = e.cellSize || 14, this.onCellClick = e.onCellClick || null, this.tooltip = null, this.baseColor = e.color || t.getAttribute("data-color") || "#22c55e", this._listeners = [], this.init();
5738
5756
  }
@@ -5887,7 +5905,7 @@ class Gr {
5887
5905
  }), this._listeners = null, this.tooltip && this.tooltip.parentNode && this.tooltip.parentNode.removeChild(this.tooltip), this.tooltip = null, this.data = [], this.element = null;
5888
5906
  }
5889
5907
  }
5890
- function fe(i) {
5908
+ function ge(i) {
5891
5909
  if (i.__kupolaInitialized) return;
5892
5910
  const t = i.getAttribute("data-heatmap-data");
5893
5911
  let e = [];
@@ -5895,27 +5913,27 @@ function fe(i) {
5895
5913
  try {
5896
5914
  e = JSON.parse(t);
5897
5915
  } catch {
5898
- e = wt();
5916
+ e = kt();
5899
5917
  }
5900
5918
  else
5901
- e = wt();
5902
- const s = new Gr(i, {
5919
+ e = kt();
5920
+ const s = new ta(i, {
5903
5921
  data: e,
5904
5922
  onCellClick: (n) => {
5905
5923
  }
5906
5924
  });
5907
5925
  i.__kupolaInstance = s, i.__kupolaInitialized = !0;
5908
5926
  }
5909
- function Qr(i) {
5927
+ function ea(i) {
5910
5928
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
5911
5929
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
5912
5930
  }
5913
- function Ro() {
5931
+ function Uo() {
5914
5932
  document.querySelectorAll(".ds-heatmap").forEach((i) => {
5915
- fe(i);
5933
+ ge(i);
5916
5934
  });
5917
5935
  }
5918
- function wt() {
5936
+ function kt() {
5919
5937
  const i = [], t = /* @__PURE__ */ new Date(), e = /* @__PURE__ */ new Date();
5920
5938
  e.setFullYear(e.getFullYear() - 1);
5921
5939
  for (let s = new Date(e); s <= t; s.setDate(s.getDate() + 1)) {
@@ -5927,8 +5945,8 @@ function wt() {
5927
5945
  }
5928
5946
  return i;
5929
5947
  }
5930
- E.register("heatmap", fe, Qr);
5931
- class ta {
5948
+ E.register("heatmap", ge, ea);
5949
+ class sa {
5932
5950
  constructor(t, e = {}) {
5933
5951
  this.element = t, this.tooltipEl = null, this.options = e;
5934
5952
  const s = j(), n = s.tooltip?.delay !== void 0 ? s.tooltip.delay : 300;
@@ -6029,20 +6047,20 @@ class ta {
6029
6047
  this.element.__kupolaInitialized && (this._showTimer && (clearTimeout(this._showTimer), this._showTimer = null), this._hideTimer && (clearTimeout(this._hideTimer), this._hideTimer = null), (this.trigger === "hover" || this.trigger === "focus") && (this.element.removeEventListener("mouseenter", this._showTooltip), this.element.removeEventListener("mouseleave", this._hideTooltip)), this.trigger === "click" && this.element.removeEventListener("click", this._clickHandler), (this.trigger === "focus" || this.trigger === "hover") && (this.element.removeEventListener("focus", this._showTooltip), this.element.removeEventListener("blur", this._hideTooltip)), this.mouseFollow && this.element.removeEventListener("mousemove", this._mouseMoveHandler), this.tooltipEl && (this.tooltipEl.remove(), this.tooltipEl = null), this.isVisible = !1, this._showTooltip = null, this._hideTooltip = null, this._clickHandler = null, this._mouseMoveHandler = null, this.element.__kupolaInitialized = !1);
6030
6048
  }
6031
6049
  }
6032
- function me(i, t) {
6033
- const e = new ta(i, t);
6050
+ function _e(i, t) {
6051
+ const e = new sa(i, t);
6034
6052
  e.init(), i._kupolaTooltip = e;
6035
6053
  }
6036
- function Vo(i = document) {
6054
+ function Yo(i = document) {
6037
6055
  i.querySelectorAll("[data-tooltip]").forEach((t) => {
6038
- me(t);
6056
+ _e(t);
6039
6057
  });
6040
6058
  }
6041
- function ea(i) {
6059
+ function ia(i) {
6042
6060
  i._kupolaTooltip && (i._kupolaTooltip.destroy(), i._kupolaTooltip = null);
6043
6061
  }
6044
- E.register("tooltip", me, ea);
6045
- class sa {
6062
+ E.register("tooltip", _e, ia);
6063
+ class na {
6046
6064
  constructor() {
6047
6065
  this.validators = {
6048
6066
  required: this.validateRequired,
@@ -6268,7 +6286,7 @@ class sa {
6268
6286
  }[t] || "Invalid input";
6269
6287
  }
6270
6288
  }
6271
- const P = new sa();
6289
+ const P = new na();
6272
6290
  window.__kupolaValidationInitialized || (window.__kupolaValidationInitialized = !0, document.addEventListener("DOMContentLoaded", () => {
6273
6291
  document.querySelectorAll("form[data-validation]").forEach((i) => {
6274
6292
  i.addEventListener("submit", async (t) => {
@@ -6298,7 +6316,7 @@ window.__kupolaValidationInitialized || (window.__kupolaValidationInitialized =
6298
6316
  r && r.focus();
6299
6317
  }
6300
6318
  }), i.querySelectorAll("[data-validate]").forEach((t) => {
6301
- const e = gr(), s = e.trigger || "blur", n = () => {
6319
+ const e = yr(), s = e.trigger || "blur", n = () => {
6302
6320
  e.showErrors && setTimeout(() => {
6303
6321
  const l = document.activeElement;
6304
6322
  if (l && l.closest(".ds-select"))
@@ -6312,7 +6330,7 @@ window.__kupolaValidationInitialized || (window.__kupolaValidationInitialized =
6312
6330
  return (...d) => {
6313
6331
  clearTimeout(h), h = setTimeout(() => l(...d), c);
6314
6332
  };
6315
- }, a = pr(), o = r(() => {
6333
+ }, a = mr(), o = r(() => {
6316
6334
  if (!e.showErrors)
6317
6335
  return;
6318
6336
  const l = P.getValue(t);
@@ -6324,7 +6342,7 @@ window.__kupolaValidationInitialized || (window.__kupolaValidationInitialized =
6324
6342
  });
6325
6343
  });
6326
6344
  }));
6327
- class ia {
6345
+ class ra {
6328
6346
  constructor(t, e = {}) {
6329
6347
  this.element = t, this.data = e.data || [], this.itemHeight = e.itemHeight || 48, this.itemWidth = e.itemWidth || 200, this.bufferSize = e.bufferSize || 5, this.renderItem = e.renderItem || this.defaultRenderItem, this.onItemClick = e.onItemClick || null, this.onItemSelect = e.onItemSelect || null, this.onScroll = e.onScroll || null, this.onScrollEnd = e.onScrollEnd || null, this.selectedKey = e.selectedKey || null, this.keyField = e.keyField || "id", this.useDynamicHeight = e.useDynamicHeight || !1, this.dynamicHeightCache = /* @__PURE__ */ new Map(), this.estimatedHeight = e.estimatedHeight || 48, this.container = null, this.scrollbarTrack = null, this.scrollbarThumb = null, this.totalHeight = 0, this.startIndex = 0, this.endIndex = 0, this.isScrolling = !1, this.scrollTimeout = null, this.lastScrollTop = 0, this.lastScrollLeft = 0, this.init();
6330
6348
  }
@@ -6563,7 +6581,7 @@ class ia {
6563
6581
  }), this.data = [], this.dynamicHeightCache.clear(), this.container.innerHTML = "", this._listeners = null, this._scrollHandler = null, this._thumbDragStartHandler = null, this._thumbDragMoveHandler = null, this._thumbDragEndHandler = null, this._wheelHandler = null, this.container = null, this.scrollbarThumb = null, this.element = null;
6564
6582
  }
6565
6583
  }
6566
- function kt(i = 1e3) {
6584
+ function Ct(i = 1e3) {
6567
6585
  const t = [], e = ["Document", "Image", "Video", "Folder", "Archive", "Spreadsheet", "Presentation", "Code"];
6568
6586
  for (let s = 1; s <= i; s++) {
6569
6587
  const n = Math.floor(Math.random() * e.length), r = Math.floor(Math.random() * 1e4);
@@ -6576,7 +6594,7 @@ function kt(i = 1e3) {
6576
6594
  }
6577
6595
  return t;
6578
6596
  }
6579
- function na(i) {
6597
+ function aa(i) {
6580
6598
  if (i.__kupolaInitialized) return;
6581
6599
  const t = i.getAttribute("data-virtual-list");
6582
6600
  let e = [];
@@ -6584,11 +6602,11 @@ function na(i) {
6584
6602
  try {
6585
6603
  e = JSON.parse(t);
6586
6604
  } catch {
6587
- e = kt(1e3);
6605
+ e = Ct(1e3);
6588
6606
  }
6589
6607
  else
6590
- e = kt(1e3);
6591
- const s = new ia(i, {
6608
+ e = Ct(1e3);
6609
+ const s = new ra(i, {
6592
6610
  data: e,
6593
6611
  onItemClick: (n) => {
6594
6612
  },
@@ -6597,12 +6615,12 @@ function na(i) {
6597
6615
  });
6598
6616
  i.__kupolaInstance = s, i.__kupolaInitialized = !0;
6599
6617
  }
6600
- function ra(i) {
6618
+ function oa(i) {
6601
6619
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
6602
6620
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
6603
6621
  }
6604
- E.register("virtual-list", na, ra);
6605
- const aa = 'xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="butt" stroke-linejoin="miter"', ge = {
6622
+ E.register("virtual-list", aa, oa);
6623
+ const la = 'xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="butt" stroke-linejoin="miter"', ye = {
6606
6624
  globe: '<circle cx="12" cy="12" r="10"/><path d="M2 12h20"/><path d="M12 2a15.3 15.3 0 0 1 0 20"/><path d="M12 2a15.3 15.3 0 0 0 0 20"/>',
6607
6625
  dashboard: '<rect x="3" y="3" width="7" height="9"/><rect x="14" y="3" width="7" height="5"/><rect x="14" y="12" width="7" height="9"/><rect x="3" y="16" width="7" height="5"/>',
6608
6626
  mouse: '<rect x="6" y="2" width="12" height="20" rx="6"/><line x1="12" y1="6" x2="12" y2="11"/>',
@@ -6712,19 +6730,19 @@ const aa = 'xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0
6712
6730
  code: '<polyline points="16 18 22 12 16 6"/><polyline points="8 6 2 12 8 18"/>',
6713
6731
  apple: '<path fill="currentColor" stroke="none" d="M17.05 12.04c-.03-3.04 2.49-4.5 2.6-4.57-1.42-2.07-3.62-2.36-4.4-2.39-1.87-.19-3.65 1.1-4.6 1.1-.96 0-2.42-1.08-3.98-1.05-2.05.03-3.94 1.19-4.99 3.02-2.13 3.69-.54 9.13 1.53 12.12 1.01 1.46 2.21 3.1 3.78 3.04 1.52-.06 2.09-.98 3.93-.98 1.83 0 2.36.98 3.97.95 1.64-.03 2.68-1.49 3.68-2.96 1.16-1.7 1.64-3.35 1.66-3.43-.04-.02-3.18-1.22-3.21-4.85zM14.06 4.34c.83-1.01 1.39-2.41 1.24-3.81-1.2.05-2.65.8-3.51 1.8-.77.89-1.45 2.31-1.27 3.68 1.34.1 2.71-.68 3.54-1.67z"/>'
6714
6732
  };
6715
- function _e(i, t = 16, e = "0 0 24 24") {
6716
- const s = ge[i];
6717
- return s ? `<svg ${aa.replace('width="16"', `width="${t}"`).replace('height="16"', `height="${t}"`).replace('viewBox="0 0 24 24"', `viewBox="${e}"`)}>${s}</svg>` : "";
6733
+ function ve(i, t = 16, e = "0 0 24 24") {
6734
+ const s = ye[i];
6735
+ return s ? `<svg ${la.replace('width="16"', `width="${t}"`).replace('height="16"', `height="${t}"`).replace('viewBox="0 0 24 24"', `viewBox="${e}"`)}>${s}</svg>` : "";
6718
6736
  }
6719
- function ct(i = document) {
6737
+ function dt(i = document) {
6720
6738
  i.querySelectorAll("[data-icon]").forEach((t) => {
6721
6739
  const e = t.getAttribute("data-icon"), s = +t.getAttribute("data-size") || 16, n = t.getAttribute("data-viewbox") || "0 0 24 24";
6722
- t.innerHTML = _e(e, s, n), t.classList.add("icon");
6740
+ t.innerHTML = ve(e, s, n), t.classList.add("icon");
6723
6741
  });
6724
6742
  }
6725
- const Ko = { svg: _e, render: ct, PATHS: ge };
6726
- typeof document < "u" && (document.readyState !== "loading" ? ct() : document.addEventListener("DOMContentLoaded", () => ct()));
6727
- class oa {
6743
+ const Xo = { svg: ve, render: dt, PATHS: ye };
6744
+ typeof document < "u" && (document.readyState !== "loading" ? dt() : document.addEventListener("DOMContentLoaded", () => dt()));
6745
+ class ca {
6728
6746
  constructor(t) {
6729
6747
  this.element = t, this.hoursEl = t.querySelector(".ds-countdown__item--hours .ds-countdown__value"), this.minutesEl = t.querySelector(".ds-countdown__item--minutes .ds-countdown__value"), this.secondsEl = t.querySelector(".ds-countdown__item--seconds .ds-countdown__value"), this.endTime = this.parseEndTime(), this.interval = null, this.init();
6730
6748
  }
@@ -6776,22 +6794,22 @@ class oa {
6776
6794
  this.stop(), this.hoursEl = null, this.minutesEl = null, this.secondsEl = null, this.element = null;
6777
6795
  }
6778
6796
  }
6779
- function ye(i) {
6797
+ function be(i) {
6780
6798
  if (i.__kupolaInitialized) return;
6781
- const t = new oa(i);
6799
+ const t = new ca(i);
6782
6800
  i.__kupolaInstance = t, i.__kupolaInitialized = !0;
6783
6801
  }
6784
- function la(i) {
6802
+ function ha(i) {
6785
6803
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
6786
6804
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
6787
6805
  }
6788
- function Wo() {
6806
+ function jo() {
6789
6807
  document.querySelectorAll(".ds-countdown").forEach((t) => {
6790
- ye(t);
6808
+ be(t);
6791
6809
  });
6792
6810
  }
6793
- E.register("countdown", ye, la);
6794
- class ca {
6811
+ E.register("countdown", be, ha);
6812
+ class da {
6795
6813
  constructor(t) {
6796
6814
  if (this.element = t, this.minusBtn = t.querySelector(".ds-number-input__btn--decrease"), this.plusBtn = t.querySelector(".ds-number-input__btn--increase"), this.inputEl = t.querySelector(".ds-number-input__input"), this._listeners = [], !this.minusBtn || !this.plusBtn || !this.inputEl)
6797
6815
  throw new Error("NumberInput: Missing required elements");
@@ -6842,26 +6860,26 @@ class ca {
6842
6860
  }), this._listeners = null, this.minusBtn = null, this.plusBtn = null, this.inputEl = null, this.element = null;
6843
6861
  }
6844
6862
  }
6845
- function ve(i) {
6863
+ function xe(i) {
6846
6864
  if (!i.__kupolaInitialized)
6847
6865
  try {
6848
- const t = new ca(i);
6866
+ const t = new da(i);
6849
6867
  i.__kupolaInstance = t, i.__kupolaInitialized = !0;
6850
6868
  } catch (t) {
6851
6869
  console.error("[NumberInput] Error initializing:", t);
6852
6870
  }
6853
6871
  }
6854
- function ha(i) {
6872
+ function ua(i) {
6855
6873
  if (!i.__kupolaInitialized || !i.__kupolaInstance) return;
6856
6874
  i.__kupolaInstance.destroy(), i.__kupolaInstance = null, i.__kupolaInitialized = !1;
6857
6875
  }
6858
- function Uo() {
6876
+ function Jo() {
6859
6877
  document.querySelectorAll(".ds-number-input").forEach((i) => {
6860
- ve(i);
6878
+ xe(i);
6861
6879
  });
6862
6880
  }
6863
- E.register("number-input", ve, ha);
6864
- class da {
6881
+ E.register("number-input", xe, ua);
6882
+ class pa {
6865
6883
  constructor(t) {
6866
6884
  this.container = t, this.track = t.querySelector(".ds-slider-captcha__track"), this.btn = t.querySelector(".ds-slider-captcha__btn"), this.text = t.querySelector(".ds-slider-captcha__text"), this.progress = t.querySelector(".ds-slider-captcha__progress"), this.statusEl = t.querySelector(".ds-slider-captcha__status"), this.refreshBtn = t.querySelector(".ds-slider-captcha__refresh"), this.footerRefreshBtn = t.querySelector(".ds-slider-captcha__footer-refresh"), this.config = {
6867
6885
  tolerance: 6,
@@ -7004,22 +7022,22 @@ class da {
7004
7022
  this.container._initialized && (this.btn && this._mouseDownHandler && this.btn.removeEventListener("mousedown", this._mouseDownHandler), this.btn && this._touchStartHandler && this.btn.removeEventListener("touchstart", this._touchStartHandler), this.refreshBtn && this.refreshBtn.removeEventListener("click", () => this.loadCaptcha()), this.footerRefreshBtn && this.footerRefreshBtn.removeEventListener("click", () => this.loadCaptcha()), this._mouseMoveListener && this._mouseMoveListener.unsubscribe ? this._mouseMoveListener.unsubscribe() : this._mouseMoveHandler && document.removeEventListener("mousemove", this._mouseMoveHandler), this._mouseUpListener && this._mouseUpListener.unsubscribe ? this._mouseUpListener.unsubscribe() : this._mouseUpHandler && document.removeEventListener("mouseup", this._mouseUpHandler), this._touchMoveListener && this._touchMoveListener.unsubscribe ? this._touchMoveListener.unsubscribe() : this._touchMoveHandler && document.removeEventListener("touchmove", this._touchMoveHandler), this._touchEndListener && this._touchEndListener.unsubscribe ? this._touchEndListener.unsubscribe() : this._touchEndHandler && document.removeEventListener("touchend", this._touchEndHandler), this.container._initialized = !1);
7005
7023
  }
7006
7024
  }
7007
- function ua() {
7025
+ function fa() {
7008
7026
  document.querySelectorAll(".ds-slider-captcha").forEach((i) => {
7009
- const t = new da(i);
7027
+ const t = new pa(i);
7010
7028
  t.init(), i._kupolaSlideCaptcha = t;
7011
7029
  });
7012
7030
  }
7013
- function pa(i) {
7031
+ function ma(i) {
7014
7032
  i._kupolaSlideCaptcha && (i._kupolaSlideCaptcha.destroy(), i._kupolaSlideCaptcha = null);
7015
7033
  }
7016
- function fa() {
7034
+ function ga() {
7017
7035
  document.querySelectorAll(".ds-slider-captcha").forEach((i) => {
7018
- pa(i);
7036
+ ma(i);
7019
7037
  });
7020
7038
  }
7021
- E.register("slide-captcha", ua, fa);
7022
- class ma {
7039
+ E.register("slide-captcha", fa, ga);
7040
+ class _a {
7023
7041
  constructor(t) {
7024
7042
  this.form = t, this.fields = [], this.validators = {}, this.errorMessages = {}, this._submitHandler = null, this._fieldHandlers = /* @__PURE__ */ new Map(), this._init();
7025
7043
  }
@@ -7159,23 +7177,23 @@ class ma {
7159
7177
  }), this._submitHandler = null, this._fieldHandlers.clear(), this._fieldHandlers = null, this.fields = null, this.validators = null, this.errorMessages = null, this.form = null;
7160
7178
  }
7161
7179
  }
7162
- function ga(i) {
7180
+ function ya(i) {
7163
7181
  const t = document.querySelectorAll(i || ".ds-form");
7164
7182
  return t.forEach((e) => {
7165
7183
  if (e._kupolaForm) return;
7166
- const s = new ma(e);
7184
+ const s = new _a(e);
7167
7185
  e._kupolaForm = s;
7168
7186
  }), t.length;
7169
7187
  }
7170
- function Yo(i) {
7188
+ function Zo(i) {
7171
7189
  return i._kupolaForm;
7172
7190
  }
7173
- function Xo(i) {
7191
+ function Go(i) {
7174
7192
  const t = i._kupolaForm;
7175
7193
  return t ? t.validate() : !1;
7176
7194
  }
7177
- E.register("form-validation", ga);
7178
- class _a {
7195
+ E.register("form-validation", ya);
7196
+ class va {
7179
7197
  constructor() {
7180
7198
  this._queue = /* @__PURE__ */ new Set(), this._scheduled = !1, this._flushDepth = 0, this._maxDepth = 10;
7181
7199
  }
@@ -7202,8 +7220,8 @@ class _a {
7202
7220
  this._flushDepth--;
7203
7221
  }
7204
7222
  }
7205
- const ya = new _a();
7206
- class va {
7223
+ const ba = new va();
7224
+ class xa {
7207
7225
  constructor(t, e) {
7208
7226
  this.data = t, this.createdAt = Date.now(), this.ttl = e;
7209
7227
  }
@@ -7214,7 +7232,7 @@ class va {
7214
7232
  return !this.isFresh;
7215
7233
  }
7216
7234
  }
7217
- class be {
7235
+ class Ee {
7218
7236
  constructor() {
7219
7237
  this._store = /* @__PURE__ */ new Map();
7220
7238
  }
@@ -7223,7 +7241,7 @@ class be {
7223
7241
  return e || null;
7224
7242
  }
7225
7243
  set(t, e, s = 6e4) {
7226
- this._store.set(t, new va(e, s));
7244
+ this._store.set(t, new xa(e, s));
7227
7245
  }
7228
7246
  has(t) {
7229
7247
  return this._store.has(t);
@@ -7240,22 +7258,22 @@ class be {
7240
7258
  return e ? e.data : null;
7241
7259
  }
7242
7260
  }
7243
- class F extends Error {
7261
+ class N extends Error {
7244
7262
  constructor(t, e, s) {
7245
7263
  super(t), this.name = "DependsError", this.code = e, this.cause = s, this.timestamp = Date.now();
7246
7264
  }
7247
7265
  }
7248
- let it = typeof globalThis < "u" && globalThis.fetch ? globalThis.fetch.bind(globalThis) : typeof window < "u" && window.fetch ? window.fetch.bind(window) : null;
7249
- function jo(i) {
7266
+ let rt = typeof globalThis < "u" && globalThis.fetch ? globalThis.fetch.bind(globalThis) : typeof window < "u" && window.fetch ? window.fetch.bind(window) : null;
7267
+ function Qo(i) {
7250
7268
  if (!i || typeof i.fetch != "function")
7251
7269
  throw new TypeError("[Kupola] configureHttpClient: client must provide a fetch function");
7252
- it = i.fetch.bind(i);
7270
+ rt = i.fetch.bind(i);
7253
7271
  }
7254
- function Jo() {
7255
- return it;
7272
+ function tl() {
7273
+ return rt;
7256
7274
  }
7257
- function Zo() {
7258
- it = typeof globalThis < "u" && globalThis.fetch ? globalThis.fetch.bind(globalThis) : typeof window < "u" && window.fetch ? window.fetch.bind(window) : null;
7275
+ function el() {
7276
+ rt = typeof globalThis < "u" && globalThis.fetch ? globalThis.fetch.bind(globalThis) : typeof window < "u" && window.fetch ? window.fetch.bind(window) : null;
7259
7277
  }
7260
7278
  class U {
7261
7279
  constructor(t, e) {
@@ -7268,7 +7286,7 @@ class U {
7268
7286
  };
7269
7287
  }
7270
7288
  notify() {
7271
- ya.schedule(() => {
7289
+ ba.schedule(() => {
7272
7290
  this.subscribers.forEach((t) => {
7273
7291
  try {
7274
7292
  t();
@@ -7279,7 +7297,7 @@ class U {
7279
7297
  });
7280
7298
  }
7281
7299
  async fetch(t) {
7282
- throw new F("Source fetch not implemented", "NOT_IMPLEMENTED");
7300
+ throw new N("Source fetch not implemented", "NOT_IMPLEMENTED");
7283
7301
  }
7284
7302
  async getValue(t) {
7285
7303
  const e = this.cache.get(this.cacheKey);
@@ -7294,7 +7312,7 @@ class U {
7294
7312
  const r = this.retryDelay * Math.pow(2, e), a = Math.random() * r * 0.5, o = r + a;
7295
7313
  return await new Promise((l) => setTimeout(l, o)), this._fetchWithRetry(t, e + 1);
7296
7314
  }
7297
- const n = s instanceof F ? s : new F(s.message || "Fetch failed", "FETCH_ERROR", s);
7315
+ const n = s instanceof N ? s : new N(s.message || "Fetch failed", "FETCH_ERROR", s);
7298
7316
  if (this.onError)
7299
7317
  try {
7300
7318
  this.onError(n);
@@ -7316,13 +7334,13 @@ class U {
7316
7334
  this.subscribers = [], this.pending = null;
7317
7335
  }
7318
7336
  }
7319
- class ba extends U {
7337
+ class Ea extends U {
7320
7338
  constructor(t, e) {
7321
7339
  super(t, e), this.method = t.method || "GET", this.headers = t.headers || {}, this.queryParams = t.query || {};
7322
7340
  }
7323
7341
  async fetch(t) {
7324
7342
  let e = this.config.source;
7325
- const s = dt("http");
7343
+ const s = pt("http");
7326
7344
  s?.baseURL && !e.startsWith("http://") && !e.startsWith("https://") && (e = s.baseURL + e.replace(/^\//, ""));
7327
7345
  for (const u in t)
7328
7346
  e = e.replace(`:${u}`, encodeURIComponent(t[u]));
@@ -7337,16 +7355,16 @@ class ba extends U {
7337
7355
  headers: { "Content-Type": "application/json", ...r, ...this.headers }
7338
7356
  };
7339
7357
  s?.withCredentials && (a.credentials = "include"), ["POST", "PUT", "PATCH"].includes(a.method) && (a.body = JSON.stringify(t));
7340
- const o = it;
7358
+ const o = rt;
7341
7359
  if (!o)
7342
- throw new F("No HTTP client available. Use configureHttpClient() to set one.", "NO_HTTP_CLIENT");
7360
+ throw new N("No HTTP client available. Use configureHttpClient() to set one.", "NO_HTTP_CLIENT");
7343
7361
  const l = await o(e, a), c = typeof l.ok == "boolean" ? l.ok : l.status >= 200 && l.status < 300, h = typeof l.status == "number" ? l.status : 0;
7344
7362
  if (!c)
7345
- throw new F(`HTTP ${h}`, "HTTP_ERROR");
7363
+ throw new N(`HTTP ${h}`, "HTTP_ERROR");
7346
7364
  return typeof l.json == "function" ? await l.json() : l.data !== void 0 ? l.data : l;
7347
7365
  }
7348
7366
  }
7349
- class xe extends U {
7367
+ class we extends U {
7350
7368
  constructor(t, e) {
7351
7369
  super(t, e), this.storageKey = t.source.replace("localStorage:", ""), this.defaultValue = t.default, this.sync = t.sync !== !1, this.sync && typeof window < "u" && (this._storageHandler = (s) => {
7352
7370
  s.key === this.storageKey && (this.cache.delete(this.cacheKey), this.notify());
@@ -7373,7 +7391,7 @@ class xe extends U {
7373
7391
  super.destroy(), this._storageHandler && window.removeEventListener("storage", this._storageHandler);
7374
7392
  }
7375
7393
  }
7376
- class xa extends U {
7394
+ class wa extends U {
7377
7395
  constructor(t, e) {
7378
7396
  super(t, e), this.paramName = t.source.replace("route:", "");
7379
7397
  }
@@ -7383,17 +7401,17 @@ class xa extends U {
7383
7401
  return e ? decodeURIComponent(e[1]) : new URLSearchParams(location.search).get(this.paramName) || "";
7384
7402
  }
7385
7403
  }
7386
- class Ea extends U {
7404
+ class ka extends U {
7387
7405
  async fetch(t) {
7388
7406
  return await this.config.source(t);
7389
7407
  }
7390
7408
  }
7391
- class wa extends U {
7409
+ class Ca extends U {
7392
7410
  async fetch() {
7393
7411
  return this.config.source;
7394
7412
  }
7395
7413
  }
7396
- class Ee extends U {
7414
+ class ke extends U {
7397
7415
  constructor(t, e) {
7398
7416
  super(t, e), this.ws = null, this.reconnect = t.reconnect !== !1, this.reconnectDelay = t.reconnectDelay || 3e3, this._reconnectAttempt = 0, this._maxReconnectDelay = t.maxReconnectDelay || 3e4, this.messageHandler = null, this._connected = !1, this._destroyed = !1;
7399
7417
  }
@@ -7411,7 +7429,7 @@ class Ee extends U {
7411
7429
  }
7412
7430
  this.cache.set(this.cacheKey, n, this.staleTime), this.notify();
7413
7431
  }, this.ws.onmessage = this.messageHandler, this.ws.onerror = (s) => {
7414
- this._connected || e(new F("WebSocket connection failed", "WS_ERROR", s));
7432
+ this._connected || e(new N("WebSocket connection failed", "WS_ERROR", s));
7415
7433
  }, this.ws.onclose = () => {
7416
7434
  if (this._connected = !1, this.reconnect && !this._destroyed) {
7417
7435
  const s = this.reconnectDelay * Math.pow(2, this._reconnectAttempt), n = Math.random() * s * 0.3, r = Math.min(s + n, this._maxReconnectDelay);
@@ -7422,7 +7440,7 @@ class Ee extends U {
7422
7440
  }
7423
7441
  };
7424
7442
  } catch (s) {
7425
- e(new F("WebSocket creation failed", "WS_ERROR", s));
7443
+ e(new N("WebSocket creation failed", "WS_ERROR", s));
7426
7444
  }
7427
7445
  });
7428
7446
  }
@@ -7433,21 +7451,21 @@ class Ee extends U {
7433
7451
  this._destroyed = !0, super.destroy(), this.ws && (this.ws.onmessage = null, this.ws.onclose = null, this.ws.close(), this.ws = null);
7434
7452
  }
7435
7453
  }
7436
- function we(i, t) {
7454
+ function Ce(i, t) {
7437
7455
  const e = i.source;
7438
- return typeof e == "function" ? new Ea(i, t) : typeof e == "string" && (e.startsWith("ws://") || e.startsWith("wss://")) ? new Ee(i, t) : typeof e == "string" && (e.startsWith("/") || e.startsWith("http")) ? new ba(i, t) : typeof e == "string" && e.startsWith("localStorage:") ? new xe(i, t) : typeof e == "string" && e.startsWith("route:") ? new xa(i, t) : new wa(i, t);
7456
+ return typeof e == "function" ? new ka(i, t) : typeof e == "string" && (e.startsWith("ws://") || e.startsWith("wss://")) ? new ke(i, t) : typeof e == "string" && (e.startsWith("/") || e.startsWith("http")) ? new Ea(i, t) : typeof e == "string" && e.startsWith("localStorage:") ? new we(i, t) : typeof e == "string" && e.startsWith("route:") ? new wa(i, t) : new Ca(i, t);
7439
7457
  }
7440
- function Go(i, t) {
7441
- const e = {}, s = new be(), n = [];
7458
+ function sl(i, t) {
7459
+ const e = {}, s = new Ee(), n = [];
7442
7460
  for (const r in t) {
7443
7461
  let p = function() {
7444
- return Ct(i);
7462
+ return St(i);
7445
7463
  }, a = t[r];
7446
7464
  typeof a == "string" && (a = { source: a });
7447
7465
  const o = {
7448
7466
  ...a,
7449
- cacheKey: a.cacheKey || `${r}-${JSON.stringify(Ct(i))}`
7450
- }, l = we(o, s), c = T(null), h = T(!0), d = T(null), u = T(null);
7467
+ cacheKey: a.cacheKey || `${r}-${JSON.stringify(St(i))}`
7468
+ }, l = Ce(o, s), c = I(null), h = I(!0), d = I(null), u = I(null);
7451
7469
  let f = 0;
7452
7470
  async function m() {
7453
7471
  const b = ++f;
@@ -7488,11 +7506,11 @@ function Go(i, t) {
7488
7506
  },
7489
7507
  // For StorageSource
7490
7508
  setValue(b) {
7491
- l instanceof xe && (l.setValue(b), c.value = b);
7509
+ l instanceof we && (l.setValue(b), c.value = b);
7492
7510
  },
7493
7511
  // For WebSocketSource
7494
7512
  send(b) {
7495
- l instanceof Ee && l.send(b);
7513
+ l instanceof ke && l.send(b);
7496
7514
  },
7497
7515
  _source: l
7498
7516
  };
@@ -7504,8 +7522,8 @@ function Go(i, t) {
7504
7522
  }
7505
7523
  }, window.__kupolaDepInstances || (window.__kupolaDepInstances = []), window.__kupolaDepInstances.push(e), e;
7506
7524
  }
7507
- function Qo(i) {
7508
- const t = new be(), e = we(i, t), s = T(null), n = T(!0), r = T(null);
7525
+ function il(i) {
7526
+ const t = new Ee(), e = Ce(i, t), s = I(null), n = I(!0), r = I(null);
7509
7527
  let a = 0;
7510
7528
  async function o() {
7511
7529
  const l = ++a;
@@ -7533,7 +7551,7 @@ function Qo(i) {
7533
7551
  }
7534
7552
  };
7535
7553
  }
7536
- function Ct(i) {
7554
+ function St(i) {
7537
7555
  const t = {};
7538
7556
  for (const e in i) {
7539
7557
  const s = i[e];
@@ -7541,11 +7559,11 @@ function Ct(i) {
7541
7559
  }
7542
7560
  return t;
7543
7561
  }
7544
- function tl() {
7562
+ function nl() {
7545
7563
  }
7546
- class ka {
7564
+ class Sa {
7547
7565
  constructor(t, e = {}) {
7548
- this.element = typeof t == "string" ? document.querySelector(t) : t, this.options = e, this.columns = (e.columns || []).map((s, n) => ({ ...s, _index: n })), this.rowKey = e.rowKey || "id", this._data = [], this._loading = !1, this.striped = e.striped !== !1, this.bordered = e.bordered || !1, this.hoverable = e.hoverable !== !1, this.compact = e.compact || !1, this.emptyText = e.emptyText || "暂无数据", this.loadingText = e.loadingText || "加载中...", this.multiSort = e.multiSort || !1, this._sorts = [], this._filterText = "", this._showPagination = e.pagination !== !1, this._pageSizes = e.pageSizes || [10, 20, 50, 100], this._pageSize = e.pageSize || 10, this._currentPage = 1, this._total = 0, this.selection = e.selection || null, this._selectedKeys = /* @__PURE__ */ new Set(), this.selectionColumnTitle = e.selectionColumnTitle || "", this.expandable = e.expandable || null, this._expandedKeys = /* @__PURE__ */ new Set(), this.expandColumnTitle = e.expandColumnTitle || "", this.editable = e.editable || !1, this._editingCell = null, this._editBuffer = {}, this.resizable = e.resizable || !1, this.draggable = e.draggable || !1, this._dragState = null, this.tree = e.tree || null, this._treeExpandedKeys = /* @__PURE__ */ new Set(), e.tree?.defaultExpandAll && (this._treeExpandAll = !0), this.virtualScroll = e.virtualScroll || null, this._scrollContainer = null, this._scrollHandler = null, this._resizeCleanups = [], this._filterDebounceTimer = null, this._reactiveCleanups = [], this.mergeCells = e.mergeCells || null, this.onSort = e.onSort || null, this.onPageChange = e.onPageChange || null, this.onRowClick = e.onRowClick || null, this.onFilter = e.onFilter || null, this.onSelect = e.onSelect || null, this.onExpand = e.onExpand || null, this.onEditSave = e.onEditSave || null, this.onEditCancel = e.onEditCancel || null, this.onRowDragEnd = e.onRowDragEnd || null, this.onColumnResize = e.onColumnResize || null, this.sortKey = T(null), this.sortOrder = T(null), this.currentPage = T(1), this.filterText = T(""), this.selectedKeys = T([]), this._init();
7566
+ this.element = typeof t == "string" ? document.querySelector(t) : t, this.options = e, this.columns = (e.columns || []).map((s, n) => ({ ...s, _index: n })), this.rowKey = e.rowKey || "id", this._data = [], this._loading = !1, this.striped = e.striped !== !1, this.bordered = e.bordered || !1, this.hoverable = e.hoverable !== !1, this.compact = e.compact || !1, this.emptyText = e.emptyText || "暂无数据", this.loadingText = e.loadingText || "加载中...", this.multiSort = e.multiSort || !1, this._sorts = [], this._filterText = "", this._showPagination = e.pagination !== !1, this._pageSizes = e.pageSizes || [10, 20, 50, 100], this._pageSize = e.pageSize || 10, this._currentPage = 1, this._total = 0, this.selection = e.selection || null, this._selectedKeys = /* @__PURE__ */ new Set(), this.selectionColumnTitle = e.selectionColumnTitle || "", this.expandable = e.expandable || null, this._expandedKeys = /* @__PURE__ */ new Set(), this.expandColumnTitle = e.expandColumnTitle || "", this.editable = e.editable || !1, this._editingCell = null, this._editBuffer = {}, this.resizable = e.resizable || !1, this.draggable = e.draggable || !1, this._dragState = null, this.tree = e.tree || null, this._treeExpandedKeys = /* @__PURE__ */ new Set(), e.tree?.defaultExpandAll && (this._treeExpandAll = !0), this.virtualScroll = e.virtualScroll || null, this._scrollContainer = null, this._scrollHandler = null, this._resizeCleanups = [], this._filterDebounceTimer = null, this._reactiveCleanups = [], this.mergeCells = e.mergeCells || null, this.onSort = e.onSort || null, this.onPageChange = e.onPageChange || null, this.onRowClick = e.onRowClick || null, this.onFilter = e.onFilter || null, this.onSelect = e.onSelect || null, this.onExpand = e.onExpand || null, this.onEditSave = e.onEditSave || null, this.onEditCancel = e.onEditCancel || null, this.onRowDragEnd = e.onRowDragEnd || null, this.onColumnResize = e.onColumnResize || null, this.sortKey = I(null), this.sortOrder = I(null), this.currentPage = I(1), this.filterText = I(""), this.selectedKeys = I([]), this._init();
7549
7567
  }
7550
7568
  _init() {
7551
7569
  this.element.classList.add("kupola-table-wrapper"), this.virtualScroll && this.element.classList.add("kupola-table-virtual-wrapper"), this.render();
@@ -8083,10 +8101,10 @@ class ka {
8083
8101
  this._filterDebounceTimer && (clearTimeout(this._filterDebounceTimer), this._filterDebounceTimer = null), this._resizeCleanups.forEach((t) => t()), this._resizeCleanups = [], this._reactiveCleanups.forEach((t) => t.unsubscribe()), this._reactiveCleanups = [], this.element.innerHTML = "", this.element.classList.remove("kupola-table-wrapper", "kupola-table-virtual-wrapper"), this._data = [], this._virtualData = null, this._dragState = null, this._editingCell = null, this._editBuffer = {};
8084
8102
  }
8085
8103
  }
8086
- function ke(i, t) {
8087
- return new ka(i, t);
8104
+ function Se(i, t) {
8105
+ return new Sa(i, t);
8088
8106
  }
8089
- function el() {
8107
+ function rl() {
8090
8108
  document.querySelectorAll("[data-kupola-table]").forEach((i) => {
8091
8109
  const t = i.getAttribute("data-kupola-table");
8092
8110
  let e = {};
@@ -8095,13 +8113,13 @@ function el() {
8095
8113
  e = JSON.parse(t);
8096
8114
  } catch {
8097
8115
  }
8098
- ke(i, e);
8116
+ Se(i, e);
8099
8117
  });
8100
8118
  }
8101
- E.register("table", ke);
8102
- class Ca {
8119
+ E.register("table", Se);
8120
+ class La {
8103
8121
  constructor(t, e = {}) {
8104
- this.element = typeof t == "string" ? document.querySelector(t) : t, this.options = e, this._current = e.current || 1, this._total = e.total || 0, this._pageSize = e.pageSize || 10, this._maxPages = e.maxPages || 7, this._showTotal = e.showTotal !== !1, this._showSizeChanger = e.showSizeChanger || !1, this._pageSizes = e.pageSizes || [10, 20, 50, 100], this._simple = e.simple || !1, this.current = T(this._current), this.total = T(this._total), this.onChange = e.onChange || null, this.onPageSizeChange = e.onPageSizeChange || null, this._init();
8122
+ this.element = typeof t == "string" ? document.querySelector(t) : t, this.options = e, this._current = e.current || 1, this._total = e.total || 0, this._pageSize = e.pageSize || 10, this._maxPages = e.maxPages || 7, this._showTotal = e.showTotal !== !1, this._showSizeChanger = e.showSizeChanger || !1, this._pageSizes = e.pageSizes || [10, 20, 50, 100], this._simple = e.simple || !1, this.current = I(this._current), this.total = I(this._total), this.onChange = e.onChange || null, this.onPageSizeChange = e.onPageSizeChange || null, this._init();
8105
8123
  }
8106
8124
  _init() {
8107
8125
  this.element.classList.add("kupola-pagination"), this.render();
@@ -8199,9 +8217,9 @@ class Ca {
8199
8217
  this.element.innerHTML = "", this.element.classList.remove("kupola-pagination");
8200
8218
  }
8201
8219
  }
8202
- let St = !1;
8203
- function Sa() {
8204
- if (St || typeof document > "u") return;
8220
+ let Lt = !1;
8221
+ function Da() {
8222
+ if (Lt || typeof document > "u") return;
8205
8223
  const i = document.createElement("style");
8206
8224
  i.textContent = `
8207
8225
  .kupola-pagination { display: flex; align-items: center; gap: 12px; flex-wrap: wrap; }
@@ -8217,13 +8235,13 @@ function Sa() {
8217
8235
  .kupola-pagination-jumper { font-size: 14px; color: #666; }
8218
8236
  .kupola-pagination-jumper input { width: 50px; height: 28px; margin: 0 4px; padding: 0 8px; border: 1px solid #d9d9d9; border-radius: 4px; text-align: center; font-size: 13px; }
8219
8237
  .kupola-pagination-jumper input:focus { outline: none; border-color: #1890ff; }
8220
- `, document.head.appendChild(i), St = !0;
8238
+ `, document.head.appendChild(i), Lt = !0;
8221
8239
  }
8222
- function sl(i, t) {
8223
- return Sa(), new Ca(i, t);
8240
+ function al(i, t) {
8241
+ return Da(), new La(i, t);
8224
8242
  }
8225
- let Lt = !1;
8226
- class La extends HTMLElement {
8243
+ let Dt = !1;
8244
+ class Ha extends HTMLElement {
8227
8245
  static get observedAttributes() {
8228
8246
  return ["open"];
8229
8247
  }
@@ -8245,7 +8263,7 @@ class La extends HTMLElement {
8245
8263
  }
8246
8264
  }
8247
8265
  }
8248
- class Da extends HTMLElement {
8266
+ class Ma extends HTMLElement {
8249
8267
  static get observedAttributes() {
8250
8268
  return ["title", "position"];
8251
8269
  }
@@ -8260,7 +8278,7 @@ class Da extends HTMLElement {
8260
8278
  }
8261
8279
  }
8262
8280
  }
8263
- class Ha extends HTMLElement {
8281
+ class Ta extends HTMLElement {
8264
8282
  connectedCallback() {
8265
8283
  this._render();
8266
8284
  }
@@ -8278,13 +8296,13 @@ class Ha extends HTMLElement {
8278
8296
  }), this.innerHTML = "", this.appendChild(t);
8279
8297
  }
8280
8298
  }
8281
- class Ma extends HTMLElement {
8299
+ class Ia extends HTMLElement {
8282
8300
  static get observedAttributes() {
8283
8301
  return ["title"];
8284
8302
  }
8285
8303
  // Content is read by parent <k-collapse> during its connectedCallback
8286
8304
  }
8287
- class Ia extends HTMLElement {
8305
+ class Aa extends HTMLElement {
8288
8306
  static get observedAttributes() {
8289
8307
  return ["position", "open"];
8290
8308
  }
@@ -8302,7 +8320,7 @@ class Ia extends HTMLElement {
8302
8320
  }
8303
8321
  }
8304
8322
  }
8305
- class Ta extends HTMLElement {
8323
+ class za extends HTMLElement {
8306
8324
  static get observedAttributes() {
8307
8325
  return ["title", "open"];
8308
8326
  }
@@ -8345,232 +8363,234 @@ class Ta extends HTMLElement {
8345
8363
  this.removeAttribute("open");
8346
8364
  }
8347
8365
  }
8348
- function il() {
8349
- if (Lt || typeof customElements > "u") return;
8350
- Lt = !0;
8366
+ function ol() {
8367
+ if (Dt || typeof customElements > "u") return;
8368
+ Dt = !0;
8351
8369
  const i = [
8352
- ["k-dropdown", La],
8353
- ["k-tooltip", Da],
8354
- ["k-collapse", Ha],
8355
- ["k-collapse-item", Ma],
8356
- ["k-drawer", Ia],
8357
- ["k-modal", Ta]
8370
+ ["k-dropdown", Ha],
8371
+ ["k-tooltip", Ma],
8372
+ ["k-collapse", Ta],
8373
+ ["k-collapse-item", Ia],
8374
+ ["k-drawer", Aa],
8375
+ ["k-modal", za]
8358
8376
  ];
8359
8377
  for (const [t, e] of i)
8360
8378
  customElements.get(t) || customElements.define(t, e);
8361
8379
  }
8362
8380
  export {
8363
8381
  X as BRAND_OPTIONS,
8364
- va as CacheEntry,
8365
- be as CacheManager,
8366
- Kr as Calendar,
8367
- Ar as Carousel,
8368
- Fr as Collapse,
8369
- Rr as ColorPicker,
8370
- vr as ComponentInitializerRegistry,
8371
- oa as Countdown,
8372
- Lr as Datepicker,
8373
- F as DependsError,
8382
+ xa as CacheEntry,
8383
+ Ee as CacheManager,
8384
+ Ur as Calendar,
8385
+ Pr as Carousel,
8386
+ Rr as Collapse,
8387
+ Kr as ColorPicker,
8388
+ xr as ComponentInitializerRegistry,
8389
+ ca as Countdown,
8390
+ Hr as Datepicker,
8391
+ N as DependsError,
8374
8392
  U as DependsSource,
8375
- Do as Dialog,
8376
- Pr as Drawer,
8377
- kr as Dropdown,
8378
- Ur as DynamicTags,
8379
- ba as FetchedSource,
8380
- qr as FileUpload,
8381
- Ea as FunctionSource,
8382
- wr as GlobalEvents,
8383
- Gr as Heatmap,
8384
- Ko as Icons,
8385
- de as ImagePreview,
8386
- G as KupolaComponent,
8387
- xr as KupolaComponentRegistry,
8388
- or as KupolaDataBind,
8389
- cr as KupolaEventBus,
8390
- ma as KupolaForm,
8391
- Jt as KupolaI18n,
8392
- ht as KupolaLifecycle,
8393
- Ca as KupolaPagination,
8394
- _t as KupolaStore,
8395
- lr as KupolaStoreManager,
8396
- ka as KupolaTable,
8397
- Pa as KupolaUtils,
8398
- sa as KupolaValidator,
8399
- Io as Message,
8393
+ Io as Dialog,
8394
+ Br as Drawer,
8395
+ Sr as Dropdown,
8396
+ Xr as DynamicTags,
8397
+ Ea as FetchedSource,
8398
+ Fr as FileUpload,
8399
+ ka as FunctionSource,
8400
+ Cr as GlobalEvents,
8401
+ ta as Heatmap,
8402
+ Xo as Icons,
8403
+ pe as ImagePreview,
8404
+ tt as KupolaComponent,
8405
+ wr as KupolaComponentRegistry,
8406
+ cr as KupolaDataBind,
8407
+ dr as KupolaEventBus,
8408
+ _a as KupolaForm,
8409
+ Gt as KupolaI18n,
8410
+ ut as KupolaLifecycle,
8411
+ La as KupolaPagination,
8412
+ vt as KupolaStore,
8413
+ hr as KupolaStoreManager,
8414
+ Sa as KupolaTable,
8415
+ Ba as KupolaUtils,
8416
+ na as KupolaValidator,
8417
+ Po as Message,
8400
8418
  $ as Modal,
8401
- Ho as Notification,
8402
- ca as NumberInput,
8403
- ge as PATHS,
8404
- xa as RouteSource,
8405
- _a as Scheduler,
8406
- Cr as Select,
8407
- da as SlideCaptcha,
8408
- Ir as Slider,
8409
- Jr as StatCard,
8410
- wa as StaticSource,
8411
- xe as StorageSource,
8412
- Xr as Tag,
8413
- Hr as Timepicker,
8414
- ta as Tooltip,
8415
- ia as VirtualList,
8416
- Ee as WebSocketSource,
8417
- So as alertModal,
8418
- bt as applyMixin,
8419
- Ns as arrayUtils,
8420
- Ja as bootstrapComponents,
8421
- yo as cleanupAllDropdowns,
8422
- fa as cleanupAllSlideCaptchas,
8423
- Wr as cleanupCalendar,
8424
- zr as cleanupCarousel,
8425
- Nr as cleanupCollapse,
8426
- Vr as cleanupColorPicker,
8427
- la as cleanupCountdown,
8428
- Dr as cleanupDatepicker,
8429
- $r as cleanupDrawer,
8430
- Gt as cleanupDropdown,
8431
- Yr as cleanupDynamicTags,
8432
- Or as cleanupFileUpload,
8433
- Qr as cleanupHeatmap,
8434
- Br as cleanupModal,
8435
- ha as cleanupNumberInput,
8436
- Sr as cleanupSelect,
8437
- pa as cleanupSlideCaptcha,
8438
- Tr as cleanupSlider,
8439
- Zr as cleanupStatCard,
8440
- jr as cleanupTag,
8441
- Mr as cleanupTimepicker,
8442
- ea as cleanupTooltip,
8443
- ra as cleanupVirtualList,
8444
- tl as clearCache,
8445
- jo as configureHttpClient,
8446
- Co as confirmModal,
8447
- Ra as createBrandPicker,
8448
- to as createI18n,
8449
- za as createLifecycle,
8450
- ne as createModal,
8451
- we as createSource,
8452
- Ba as createStore,
8453
- Na as createThemeToggle,
8454
- Gn as cryptoUtils,
8455
- dn as dateUtils,
8456
- un as debounce,
8457
- Qa as defineComponent,
8458
- Za as defineMixin,
8459
- uo as emit,
8460
- po as emitGlobal,
8461
- Ka as escapeHtml,
8462
- oo as formatCurrency,
8463
- ro as formatDate,
8464
- ao as formatNumber,
8465
- Ya as generateSecureId,
8466
- Oa as getBasePath,
8419
+ Ao as Notification,
8420
+ da as NumberInput,
8421
+ ye as PATHS,
8422
+ wa as RouteSource,
8423
+ va as Scheduler,
8424
+ Lr as Select,
8425
+ pa as SlideCaptcha,
8426
+ Ar as Slider,
8427
+ Gr as StatCard,
8428
+ Ca as StaticSource,
8429
+ we as StorageSource,
8430
+ Jr as Tag,
8431
+ Tr as Timepicker,
8432
+ sa as Tooltip,
8433
+ ra as VirtualList,
8434
+ ke as WebSocketSource,
8435
+ Mo as alertModal,
8436
+ xt as applyMixin,
8437
+ Vs as arrayUtils,
8438
+ to as bootstrapComponents,
8439
+ Eo as cleanupAllDropdowns,
8440
+ ga as cleanupAllSlideCaptchas,
8441
+ Yr as cleanupCalendar,
8442
+ $r as cleanupCarousel,
8443
+ Vr as cleanupCollapse,
8444
+ Wr as cleanupColorPicker,
8445
+ ha as cleanupCountdown,
8446
+ Mr as cleanupDatepicker,
8447
+ qr as cleanupDrawer,
8448
+ te as cleanupDropdown,
8449
+ jr as cleanupDynamicTags,
8450
+ Nr as cleanupFileUpload,
8451
+ ea as cleanupHeatmap,
8452
+ Or as cleanupModal,
8453
+ ua as cleanupNumberInput,
8454
+ Dr as cleanupSelect,
8455
+ ma as cleanupSlideCaptcha,
8456
+ zr as cleanupSlider,
8457
+ Qr as cleanupStatCard,
8458
+ Zr as cleanupTag,
8459
+ Ir as cleanupTimepicker,
8460
+ ia as cleanupTooltip,
8461
+ oa as cleanupVirtualList,
8462
+ nl as clearCache,
8463
+ Qo as configureHttpClient,
8464
+ Ho as confirmModal,
8465
+ Ua as createBrandPicker,
8466
+ no as createI18n,
8467
+ $a as createLifecycle,
8468
+ ae as createModal,
8469
+ Ce as createSource,
8470
+ Oa as createStore,
8471
+ Wa as createThemeToggle,
8472
+ tr as cryptoUtils,
8473
+ pn as dateUtils,
8474
+ fn as debounce,
8475
+ io as defineComponent,
8476
+ eo as defineMixin,
8477
+ go as emit,
8478
+ _o as emitGlobal,
8479
+ Xa as escapeHtml,
8480
+ uo as formatCurrency,
8481
+ co as formatDate,
8482
+ ho as formatNumber,
8483
+ Za as generateSecureId,
8484
+ Va as getBasePath,
8467
8485
  J as getBrand,
8468
- dt as getConfig,
8469
- ur as getDefaultBrand,
8470
- dr as getDefaultTheme,
8471
- Yo as getFormInstance,
8472
- Jo as getHttpClient,
8473
- Fa as getHttpConfig,
8474
- ut as getIconsPath,
8475
- go as getListenerCount,
8476
- no as getLocale,
8477
- fr as getMessageConfig,
8478
- mr as getNotificationConfig,
8479
- pr as getPerformanceConfig,
8480
- st as getSecurityConfig,
8481
- qa as getStore,
8482
- R as getTheme,
8486
+ pt as getConfig,
8487
+ fr as getDefaultBrand,
8488
+ pr as getDefaultTheme,
8489
+ Zo as getFormInstance,
8490
+ tl as getHttpClient,
8491
+ Ka as getHttpConfig,
8492
+ jt as getIconsPath,
8493
+ bo as getListenerCount,
8494
+ lo as getLocale,
8495
+ gr as getMessageConfig,
8496
+ _r as getNotificationConfig,
8497
+ mr as getPerformanceConfig,
8498
+ nt as getSecurityConfig,
8499
+ Fa as getStore,
8500
+ F as getTheme,
8483
8501
  j as getUiConfig,
8484
- gr as getValidationConfig,
8502
+ yr as getValidationConfig,
8485
8503
  H as globalEvents,
8486
- el as initAllTables,
8487
- ce as initCalendar,
8488
- $o as initCalendars,
8489
- ie as initCarousel,
8490
- wo as initCarousels,
8491
- oe as initCollapse,
8492
- zo as initCollapses,
8493
- le as initColorPicker,
8494
- Po as initColorPickers,
8495
- ye as initCountdown,
8496
- Wo as initCountdowns,
8497
- te as initDatepicker,
8498
- bo as initDatepickers,
8499
- lt as initDrawer,
8500
- ko as initDrawers,
8501
- Zt as initDropdown,
8502
- _o as initDropdowns,
8503
- he as initDynamicTags,
8504
- Bo as initDynamicTagsAll,
8505
- ae as initFileUpload,
8506
- Ao as initFileUploads,
8507
- ga as initFormValidation,
8508
- fe as initHeatmap,
8509
- Ro as initHeatmaps,
8510
- qo as initImagePreview,
8511
- To as initMessages,
8512
- re as initModal,
8513
- Lo as initModals,
8514
- Mo as initNotifications,
8515
- ve as initNumberInput,
8516
- Uo as initNumberInputs,
8517
- sl as initPagination,
8518
- Qt as initSelect,
8519
- vo as initSelects,
8520
- ua as initSlideCaptchas,
8521
- se as initSlider,
8522
- Eo as initSliders,
8523
- pe as initStatCard,
8524
- No as initStatCards,
8525
- ke as initTable,
8526
- ue as initTag,
8527
- Fo as initTags,
8528
- yr as initTheme,
8529
- ee as initTimepicker,
8530
- xo as initTimepickers,
8531
- me as initTooltip,
8532
- Vo as initTooltips,
8533
- na as initVirtualList,
8534
- xt as kupolaBootstrap,
8504
+ rl as initAllTables,
8505
+ de as initCalendar,
8506
+ Fo as initCalendars,
8507
+ re as initCarousel,
8508
+ Lo as initCarousels,
8509
+ ce as initCollapse,
8510
+ qo as initCollapses,
8511
+ he as initColorPicker,
8512
+ Oo as initColorPickers,
8513
+ be as initCountdown,
8514
+ jo as initCountdowns,
8515
+ se as initDatepicker,
8516
+ ko as initDatepickers,
8517
+ ht as initDrawer,
8518
+ Do as initDrawers,
8519
+ Qt as initDropdown,
8520
+ xo as initDropdowns,
8521
+ ue as initDynamicTags,
8522
+ No as initDynamicTagsAll,
8523
+ le as initFileUpload,
8524
+ Bo as initFileUploads,
8525
+ ya as initFormValidation,
8526
+ ge as initHeatmap,
8527
+ Uo as initHeatmaps,
8528
+ Ro as initImagePreview,
8529
+ $o as initMessages,
8530
+ oe as initModal,
8531
+ To as initModals,
8532
+ zo as initNotifications,
8533
+ xe as initNumberInput,
8534
+ Jo as initNumberInputs,
8535
+ al as initPagination,
8536
+ ee as initSelect,
8537
+ wo as initSelects,
8538
+ fa as initSlideCaptchas,
8539
+ ne as initSlider,
8540
+ So as initSliders,
8541
+ me as initStatCard,
8542
+ Wo as initStatCards,
8543
+ Se as initTable,
8544
+ fe as initTag,
8545
+ Ko as initTags,
8546
+ br as initTheme,
8547
+ ie as initTimepicker,
8548
+ Co as initTimepickers,
8549
+ _e as initTooltip,
8550
+ Yo as initTooltips,
8551
+ aa as initVirtualList,
8552
+ Et as kupolaBootstrap,
8535
8553
  O as kupolaData,
8536
- $a as kupolaEvents,
8537
- N as kupolaI18n,
8554
+ qa as kupolaEvents,
8555
+ R as kupolaI18n,
8538
8556
  E as kupolaInitializer,
8539
- Aa as kupolaLifecycle,
8540
- M as kupolaRegistry,
8541
- Ut as kupolaStoreManager,
8542
- Ua as maskData,
8543
- so as n,
8544
- zi as numberUtils,
8545
- oi as objectUtils,
8546
- ho as off,
8547
- mo as offAll,
8548
- fo as offByScope,
8549
- lo as on,
8550
- co as once,
8551
- rr as preloadUtils,
8552
- T as ref,
8553
- Xa as registerComponent,
8554
- ja as registerLazyComponent,
8555
- il as registerWebComponents,
8556
- ct as renderIcon,
8557
- Zo as resetHttpClient,
8558
- Va as sanitizeHtml,
8559
- ot as setBrand,
8560
- hr as setConfig,
8561
- io as setLocale,
8562
- at as setTheme,
8563
- Oo as showImagePreview,
8564
- Ge as stringUtils,
8565
- Wa as stripHtml,
8566
- _e as svg,
8567
- eo as t,
8568
- pn as throttle,
8569
- Go as useDeps,
8570
- Ga as useMixin,
8571
- Qo as useQuery,
8572
- Xo as validateForm,
8557
+ Pa as kupolaLifecycle,
8558
+ T as kupolaRegistry,
8559
+ Yt as kupolaStoreManager,
8560
+ Ja as maskData,
8561
+ ao as n,
8562
+ $i as numberUtils,
8563
+ ci as objectUtils,
8564
+ mo as off,
8565
+ vo as offAll,
8566
+ yo as offByScope,
8567
+ Na as offConfigChange,
8568
+ po as on,
8569
+ ur as onConfigChange,
8570
+ fo as once,
8571
+ or as preloadUtils,
8572
+ I as ref,
8573
+ Ga as registerComponent,
8574
+ Qa as registerLazyComponent,
8575
+ ol as registerWebComponents,
8576
+ dt as renderIcon,
8577
+ el as resetHttpClient,
8578
+ Ya as sanitizeHtml,
8579
+ lt as setBrand,
8580
+ Ra as setConfig,
8581
+ oo as setLocale,
8582
+ Q as setTheme,
8583
+ Vo as showImagePreview,
8584
+ ts as stringUtils,
8585
+ ja as stripHtml,
8586
+ ve as svg,
8587
+ ro as t,
8588
+ mn as throttle,
8589
+ sl as useDeps,
8590
+ so as useMixin,
8591
+ il as useQuery,
8592
+ Go as validateForm,
8573
8593
  P as validator,
8574
- Vt as validatorUtils
8594
+ Kt as validatorUtils
8575
8595
  };
8576
8596
  //# sourceMappingURL=kupola.esm.js.map