@object-ui/plugin-grid 3.4.0 → 4.0.1

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.
package/dist/index.js CHANGED
@@ -278,16 +278,47 @@ function He(e) {
278
278
  }
279
279
  //#endregion
280
280
  //#region src/useGroupedData.ts
281
- function Ue(e, t) {
282
- return t.map((t) => String(e[t.field] ?? "")).join(" / ");
281
+ function Ue(e) {
282
+ if (e == null || e === "") return "";
283
+ if (Array.isArray(e)) return e.map((e) => Ue(e)).join("|");
284
+ if (typeof e == "object") {
285
+ let t = e.id ?? e._id ?? e.pk ?? e.value;
286
+ if (t != null && t !== "") return String(t);
287
+ let n = e.name ?? e.label ?? e.title;
288
+ if (n != null && n !== "") return String(n);
289
+ try {
290
+ return JSON.stringify(e);
291
+ } catch {
292
+ return "";
293
+ }
294
+ }
295
+ return String(e);
283
296
  }
284
297
  function We(e, t) {
285
- return t.map((t) => {
286
- let n = e[t.field];
298
+ return Ue(e[t]);
299
+ }
300
+ function Ge(e, t, n) {
301
+ if (e == null || e === "") return "(empty)";
302
+ if (n) {
303
+ let r = n(t, e);
304
+ if (r !== void 0 && r !== "") return r;
305
+ }
306
+ if (Array.isArray(e)) return e.map((e) => {
307
+ if (n) {
308
+ let r = n(t, e);
309
+ if (r !== void 0 && r !== "") return r;
310
+ }
311
+ return Ge(e, t);
312
+ }).join(", ") || "(empty)";
313
+ if (typeof e == "object") {
314
+ let t = e.name ?? e.label ?? e.title ?? e.display_name ?? e.displayName ?? e.fullName ?? e.full_name;
315
+ if (t != null && t !== "") return String(t);
316
+ let n = e.id ?? e._id ?? e.pk;
287
317
  return n != null && n !== "" ? String(n) : "(empty)";
288
- }).join(" / ");
318
+ }
319
+ return String(e);
289
320
  }
290
- function Ge(e, t) {
321
+ function Ke(e, t) {
291
322
  return t.map(({ field: t, type: n }) => {
292
323
  let r = e.map((e) => Number(e[t])).filter((e) => Number.isFinite(e)), i;
293
324
  switch (n) {
@@ -315,57 +346,67 @@ function Ge(e, t) {
315
346
  };
316
347
  });
317
348
  }
318
- function Ke(e, t, n) {
349
+ function qe(e, t, n) {
319
350
  let r = e.localeCompare(t, void 0, {
320
351
  numeric: !0,
321
352
  sensitivity: "base"
322
353
  });
323
354
  return n === "desc" ? -r : r;
324
355
  }
325
- function qe(e, t, n) {
326
- let i = e?.fields, o = !!(i && i.length > 0), [c, l] = s({}), u = a(() => i ? i.some((e) => e.collapsed) : !1, [i]);
356
+ function Je(e, t, n, i) {
357
+ let o = e?.fields, c = !!(o && o.length > 0), [l, u] = s({});
327
358
  return {
328
359
  groups: a(() => {
329
- if (!o || !i) return [];
330
- let e = /* @__PURE__ */ new Map(), r = [];
331
- for (let n of t) {
332
- let t = Ue(n, i);
333
- e.has(t) || (e.set(t, {
334
- label: We(n, i),
335
- rows: []
336
- }), r.push(t)), e.get(t).rows.push(n);
337
- }
338
- let a = i[0]?.order ?? "asc";
339
- return r.sort((e, t) => Ke(e, t, a)), r.map((t) => {
340
- let r = e.get(t), i = t in c ? c[t] : u, a = n && n.length > 0 ? Ge(r.rows, n) : [];
341
- return {
342
- key: t,
343
- label: r.label,
344
- rows: r.rows,
345
- collapsed: i,
346
- aggregations: a
347
- };
348
- });
360
+ if (!c || !o) return [];
361
+ let e = (t, r, a) => {
362
+ if (r >= o.length) return [];
363
+ let s = o[r], c = /* @__PURE__ */ new Map(), u = [];
364
+ for (let e of t) {
365
+ let t = We(e, s.field);
366
+ c.has(t) || (c.set(t, {
367
+ label: Ge(e[s.field], s.field, i),
368
+ rows: []
369
+ }), u.push(t)), c.get(t).rows.push(e);
370
+ }
371
+ let d = s.order ?? "asc";
372
+ return u.sort((e, t) => qe(c.get(e)?.label ?? e, c.get(t)?.label ?? t, d)), u.map((t) => {
373
+ let i = c.get(t), u = a ? `${a}__${r}:${t}` : `${r}:${t}`, d = !!s.collapsed, f = u in l ? l[u] : d, p = n && n.length > 0 ? Ke(i.rows, n) : [], m = r + 1 < o.length ? e(i.rows, r + 1, u) : [];
374
+ return {
375
+ key: u,
376
+ label: i.label,
377
+ field: s.field,
378
+ depth: r,
379
+ rows: i.rows,
380
+ collapsed: f,
381
+ aggregations: p,
382
+ subgroups: m
383
+ };
384
+ });
385
+ };
386
+ return e(t, 0, "");
349
387
  }, [
350
388
  t,
351
- i,
352
389
  o,
353
390
  c,
354
- u,
355
- n
391
+ l,
392
+ n,
393
+ i
356
394
  ]),
357
- isGrouped: o,
395
+ isGrouped: c,
358
396
  toggleGroup: r((e) => {
359
- l((t) => ({
360
- ...t,
361
- [e]: t[e] === void 0 ? !u : !t[e]
362
- }));
363
- }, [u])
397
+ u((t) => {
398
+ let n = e.split("__").pop() || "", r = /^(\d+):/.exec(n), i = r ? Number(r[1]) : 0, a = !!o?.[i]?.collapsed;
399
+ return {
400
+ ...t,
401
+ [e]: t[e] === void 0 ? !a : !t[e]
402
+ };
403
+ });
404
+ }, [o])
364
405
  };
365
406
  }
366
407
  //#endregion
367
408
  //#region src/GroupRow.tsx
368
- var Je = ({ groupKey: e, label: t, count: n, collapsed: r, aggregations: i, onToggle: a, children: o }) => /* @__PURE__ */ (0, Z.jsxs)("div", {
409
+ var Ye = ({ groupKey: e, label: t, count: n, collapsed: r, aggregations: i, onToggle: a, children: o }) => /* @__PURE__ */ (0, Z.jsxs)("div", {
369
410
  className: "border rounded-md",
370
411
  "data-testid": `group-row-${e}`,
371
412
  children: [/* @__PURE__ */ (0, Z.jsxs)("button", {
@@ -403,10 +444,10 @@ var Je = ({ groupKey: e, label: t, count: n, collapsed: r, aggregations: i, onTo
403
444
  });
404
445
  //#endregion
405
446
  //#region src/useColumnSummary.ts
406
- function Ye(e) {
447
+ function Xe(e) {
407
448
  return typeof e == "string" ? { type: e } : e;
408
449
  }
409
- function Xe(e, t) {
450
+ function Ze(e, t) {
410
451
  if (t.length === 0) return null;
411
452
  switch (e) {
412
453
  case "count": return t.length;
@@ -417,7 +458,7 @@ function Xe(e, t) {
417
458
  default: return null;
418
459
  }
419
460
  }
420
- function Ze(e, t) {
461
+ function Qe(e, t) {
421
462
  return t === null ? "" : `${{
422
463
  count: "Count",
423
464
  sum: "Sum",
@@ -426,7 +467,7 @@ function Ze(e, t) {
426
467
  max: "Max"
427
468
  }[e] || e}: ${e === "avg" ? t.toLocaleString(void 0, { maximumFractionDigits: 2 }) : t.toLocaleString()}`;
428
469
  }
429
- function Qe(e, t) {
470
+ function $e(e, t) {
430
471
  return a(() => {
431
472
  let n = /* @__PURE__ */ new Map();
432
473
  if (!e || e.length === 0 || t.length === 0) return {
@@ -435,7 +476,7 @@ function Qe(e, t) {
435
476
  };
436
477
  for (let r of e) {
437
478
  if (!r.summary) continue;
438
- let e = Ye(r.summary), i = e.field || r.field, a = [];
479
+ let e = Xe(r.summary), i = e.field || r.field, a = [];
439
480
  for (let e of t) {
440
481
  let t = e[i];
441
482
  if (t != null && typeof t == "number" && !isNaN(t)) a.push(t);
@@ -448,11 +489,11 @@ function Qe(e, t) {
448
489
  if (e.type === "count") {
449
490
  let e = t.filter((e) => e[i] != null && e[i] !== "").length;
450
491
  o = e > 0 ? e : null;
451
- } else o = Xe(e.type, a);
492
+ } else o = Ze(e.type, a);
452
493
  n.set(r.field, {
453
494
  field: r.field,
454
495
  value: o,
455
- label: Ze(e.type, o)
496
+ label: Qe(e.type, o)
456
497
  });
457
498
  }
458
499
  return {
@@ -463,10 +504,10 @@ function Qe(e, t) {
463
504
  }
464
505
  //#endregion
465
506
  //#region src/components/RowActionMenu.tsx
466
- function $e(e) {
507
+ function et(e) {
467
508
  return e.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
468
509
  }
469
- var et = ({ row: e, rowActions: t, canEdit: n, canDelete: r, onEdit: i, onDelete: a, onAction: o }) => /* @__PURE__ */ (0, Z.jsxs)(D, { children: [/* @__PURE__ */ (0, Z.jsx)(A, {
510
+ var tt = ({ row: e, rowActions: t, canEdit: n, canDelete: r, onEdit: i, onDelete: a, onAction: o }) => /* @__PURE__ */ (0, Z.jsxs)(D, { children: [/* @__PURE__ */ (0, Z.jsx)(A, {
470
511
  asChild: !0,
471
512
  children: /* @__PURE__ */ (0, Z.jsxs)(T, {
472
513
  variant: "ghost",
@@ -492,10 +533,10 @@ var et = ({ row: e, rowActions: t, canEdit: n, canDelete: r, onEdit: i, onDelete
492
533
  t?.map((t) => /* @__PURE__ */ (0, Z.jsx)(k, {
493
534
  onClick: () => o?.(t, e),
494
535
  "data-testid": `row-action-${t}`,
495
- children: $e(t)
536
+ children: et(t)
496
537
  }, t))
497
538
  ]
498
- })] }), tt = ({ selectedRows: e, actions: t, onAction: n, onClearSelection: r }) => !t || t.length === 0 || e.length === 0 ? null : /* @__PURE__ */ (0, Z.jsxs)("div", {
539
+ })] }), nt = ({ selectedRows: e, actions: t, onAction: n, onClearSelection: r }) => !t || t.length === 0 || e.length === 0 ? null : /* @__PURE__ */ (0, Z.jsxs)("div", {
499
540
  className: "border-t px-4 py-1.5 flex items-center gap-2 text-xs bg-primary/5 shrink-0",
500
541
  "data-testid": "bulk-actions-bar",
501
542
  children: [
@@ -511,7 +552,7 @@ var et = ({ row: e, rowActions: t, canEdit: n, canDelete: r, onEdit: i, onDelete
511
552
  className: "h-6 px-2 text-xs",
512
553
  onClick: () => n?.(t, e),
513
554
  "data-testid": `bulk-action-${t}`,
514
- children: $e(t)
555
+ children: et(t)
515
556
  }, t))
516
557
  }),
517
558
  /* @__PURE__ */ (0, Z.jsx)(T, {
@@ -522,7 +563,7 @@ var et = ({ row: e, rowActions: t, canEdit: n, canDelete: r, onEdit: i, onDelete
522
563
  children: "Clear"
523
564
  })
524
565
  ]
525
- }), nt = {
566
+ }), rt = {
526
567
  "grid.actions": "Actions",
527
568
  "grid.edit": "Edit",
528
569
  "grid.delete": "Delete",
@@ -534,26 +575,26 @@ var et = ({ row: e, rowActions: t, canEdit: n, canDelete: r, onEdit: i, onDelete
534
575
  "grid.refreshing": "Refreshing…",
535
576
  "grid.openRecord": "Open record"
536
577
  };
537
- function rt() {
578
+ function it() {
538
579
  try {
539
580
  let e = h();
540
581
  return e.t("grid.actions") === "grid.actions" ? { t: (e, t) => {
541
- let n = nt[e] || e;
582
+ let n = rt[e] || e;
542
583
  if (t) for (let [e, r] of Object.entries(t)) n = n.replace(`{{${e}}}`, String(r));
543
584
  return n;
544
585
  } } : { t: e.t };
545
586
  } catch {
546
587
  return { t: (e, t) => {
547
- let n = nt[e] || e;
588
+ let n = rt[e] || e;
548
589
  if (t) for (let [e, r] of Object.entries(t)) n = n.replace(`{{${e}}}`, String(r));
549
590
  return n;
550
591
  } };
551
592
  }
552
593
  }
553
- function it(e) {
594
+ function at(e) {
554
595
  if (e != null) return typeof e == "string" ? e : void 0;
555
596
  }
556
- function at(e) {
597
+ function ot(e) {
557
598
  return e.data ? Array.isArray(e.data) ? {
558
599
  provider: "value",
559
600
  items: e.data
@@ -565,11 +606,11 @@ function at(e) {
565
606
  object: e.objectName
566
607
  } : null;
567
608
  }
568
- function ot(e) {
609
+ function st(e) {
569
610
  if (!(!e || e.length === 0)) return typeof e[0] == "object" && e[0], e;
570
611
  }
571
- var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, onRowClick: h, onCellChange: _, onRowSave: ee, onBatchSave: te, onAddRecord: ne, ...re }) => {
572
- let [E, ie] = s([]), [D, O] = s(!0), [k, A] = s(null), { t: M } = rt(), { fieldLabel: ce, translateOptions: F } = g(), [I, L] = s(null), [R, le] = s(!1), [ue, de] = s(0), [z, B] = s(!1), [fe, V] = s(!1), H = pe({ dataSource: n }), [U, he] = s(e.rowHeight ?? "compact"), [ge, ve] = s([]), ye = t.useMemo(() => e.id ? `grid-columns-${e.objectName}-${e.id}` : `grid-columns-${e.objectName}`, [e.objectName, e.id]), [W, xe] = s(() => {
612
+ var ct = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, onRowClick: h, onCellChange: _, onRowSave: ee, onBatchSave: te, onAddRecord: ne, ...re }) => {
613
+ let [E, ie] = s([]), [D, O] = s(!0), [k, A] = s(null), { t: M } = it(), { fieldLabel: ce, translateOptions: F } = g(), [I, L] = s(null), [R, le] = s(!1), [ue, de] = s(0), [z, B] = s(!1), [fe, V] = s(!1), H = pe({ dataSource: n }), [U, he] = s(e.rowHeight ?? "compact"), [ge, ve] = s([]), ye = t.useMemo(() => e.id ? `grid-columns-${e.objectName}-${e.id}` : `grid-columns-${e.objectName}`, [e.objectName, e.id]), [W, xe] = s(() => {
573
614
  try {
574
615
  let e = localStorage.getItem(ye);
575
616
  return e ? JSON.parse(e) : {};
@@ -593,7 +634,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
593
634
  let e = () => le(window.innerWidth < 480);
594
635
  return e(), window.addEventListener("resize", e), () => window.removeEventListener("resize", e);
595
636
  }, []);
596
- let ke = re.data, Ne = p(e.bind), Fe = at(e), G = t.useMemo(() => ke && Array.isArray(ke) ? {
637
+ let ke = re.data, Ne = p(e.bind), Fe = ot(e), G = t.useMemo(() => ke && Array.isArray(ke) ? {
597
638
  provider: "value",
598
639
  items: ke
599
640
  } : Ne && Array.isArray(Ne) ? {
@@ -633,7 +674,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
633
674
  return (async () => {
634
675
  O(!0), A(null);
635
676
  try {
636
- let r = null, i = ot(Y) || J;
677
+ let r = null, i = st(Y) || J;
637
678
  if (q && n) if (typeof n.getObjectSchema == "function") {
638
679
  let e = await n.getObjectSchema(q);
639
680
  if (t) return;
@@ -722,10 +763,48 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
722
763
  return "style" in e && e.style && Object.assign(t, e.style), "backgroundColor" in e && e.backgroundColor && (t.backgroundColor = e.backgroundColor), "textColor" in e && e.textColor && (t.color = e.textColor), "borderColor" in e && e.borderColor && (t.borderColor = e.borderColor), t;
723
764
  }
724
765
  }
725
- }, [e.conditionalFormatting]), { groups: Ke, isGrouped: Ye, toggleGroup: Xe } = qe(e.grouping, E), { summaries: Ze, hasSummary: nt } = Qe(t.useMemo(() => {
726
- let t = ot(e.columns);
766
+ }, [e.conditionalFormatting]), Ke = t.useMemo(() => {
767
+ let t = e.grouping;
768
+ if (!t?.fields?.length) return;
769
+ let n = /* @__PURE__ */ new Map();
770
+ for (let r of t.fields) {
771
+ let t = r.field, i = I?.fields?.[t], a = st(e.columns)?.find?.((e) => typeof e == "object" && e?.field === t), o = a?.type || i?.type, s = a?.options || i?.options, c = /* @__PURE__ */ new Map();
772
+ if (Array.isArray(s) && s.length > 0) {
773
+ let n = e.objectName ? F(e.objectName, t, s) : s;
774
+ for (let e of n) if (e && e.value !== void 0 && e.value !== null) {
775
+ let t = e.label;
776
+ c.set(String(e.value), String(t ?? e.value));
777
+ }
778
+ }
779
+ n.set(t, {
780
+ type: o || void 0,
781
+ options: c.size > 0 ? c : void 0
782
+ });
783
+ }
784
+ return (e, t) => {
785
+ let r = n.get(e);
786
+ if (r) {
787
+ if (r.options) {
788
+ let e = r.options.get(String(t));
789
+ if (e !== void 0) return e;
790
+ }
791
+ if (r.type === "boolean" || typeof t == "boolean") {
792
+ if (t === !0 || t === "true") return M("grid.booleanTrue", "Yes");
793
+ if (t === !1 || t === "false") return M("grid.booleanFalse", "No");
794
+ }
795
+ }
796
+ };
797
+ }, [
798
+ e.grouping,
799
+ e.columns,
800
+ e.objectName,
801
+ I,
802
+ F,
803
+ M
804
+ ]), { groups: qe, isGrouped: Xe, toggleGroup: Ze } = Je(e.grouping, E, void 0, Ke), { summaries: Qe, hasSummary: rt } = $e(t.useMemo(() => {
805
+ let t = st(e.columns);
727
806
  if (t && t.length > 0 && typeof t[0] == "object") return t;
728
- }, [e.columns]), E), st = r(() => {
807
+ }, [e.columns]), E), ct = r(() => {
729
808
  let t = (e) => e && {
730
809
  text: /* @__PURE__ */ (0, Z.jsx)(Ie, { className: "h-3.5 w-3.5" }),
731
810
  number: /* @__PURE__ */ (0, Z.jsx)(Oe, { className: "h-3.5 w-3.5" }),
@@ -815,7 +894,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
815
894
  if (typeof t == "string" && /^\d{4}-\d{2}-\d{2}T\d{2}:\d{2}/.test(t)) return "datetime";
816
895
  }
817
896
  return null;
818
- }, r = ot(Y);
897
+ }, r = st(Y);
819
898
  if (r) {
820
899
  if (r.length > 0 && typeof r[0] == "object" && r[0] !== null) {
821
900
  let i = r[0];
@@ -844,7 +923,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
844
923
  };
845
924
  });
846
925
  if ("field" in i) return r.filter((e) => e?.field && typeof e.field == "string" && !e.hidden).map((r, i) => {
847
- let a = it(r.label) || r.field.charAt(0).toUpperCase() + r.field.slice(1).replace(/_/g, " "), o = e.objectName ? ce(e.objectName, r.field, a) : a, s, c = I?.fields?.[r.field], l = r.type || c?.type || n({ field: r.field }) || null, u = l ? S(l) : null, d = {
926
+ let a = at(r.label) || r.field.charAt(0).toUpperCase() + r.field.slice(1).replace(/_/g, " "), o = e.objectName ? ce(e.objectName, r.field, a) : a, s, c = I?.fields?.[r.field], l = r.type || c?.type || n({ field: r.field }) || null, u = l ? S(l) : null, d = {
848
927
  name: r.field,
849
928
  type: l || "text"
850
929
  };
@@ -882,7 +961,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
882
961
  }
883
962
  });
884
963
  },
885
- children: $e(r.action)
964
+ children: et(r.action)
886
965
  }) : u ? (e) => /* @__PURE__ */ (0, Z.jsx)(u, {
887
966
  value: e,
888
967
  field: d
@@ -1064,10 +1143,10 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1064
1143
  ce,
1065
1144
  F,
1066
1145
  e.objectName
1067
- ]), ct = r((t) => {
1146
+ ]), lt = r((t) => {
1068
1147
  let n = e.exportOptions, r = n?.maxRecords || 0, i = n?.includeHeaders !== !1, a = n?.fileNamePrefix || e.objectName || "export";
1069
1148
  if ((t === "csv" || t === "xlsx" || t === "json") && H.isSupported && e.objectName && !K && n?.streaming !== !1) {
1070
- let n = st().filter((e) => e.accessorKey !== "_actions").map((e) => e.accessorKey).filter(Boolean);
1149
+ let n = ct().filter((e) => e.accessorKey !== "_actions").map((e) => e.accessorKey).filter(Boolean);
1071
1150
  B(!1), V(!0), H.start(e.objectName, {
1072
1151
  format: t === "json" ? "json" : t,
1073
1152
  fields: n.length ? n : void 0,
@@ -1084,7 +1163,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1084
1163
  return t.includes(",") || t.includes("\"") || t.includes("\n") || t.includes("\r") ? `"${t.replace(/"/g, "\"\"")}"` : t;
1085
1164
  };
1086
1165
  if (t === "csv") {
1087
- let e = st().filter((e) => e.accessorKey !== "_actions"), t = e.map((e) => e.accessorKey), n = e.map((e) => e.header), r = [];
1166
+ let e = ct().filter((e) => e.accessorKey !== "_actions"), t = e.map((e) => e.accessorKey), n = e.map((e) => e.header), r = [];
1088
1167
  i && r.push(n.join(",")), o.forEach((e) => {
1089
1168
  r.push(t.map((t) => c(e[t])).join(","));
1090
1169
  }), s(new Blob([r.join("\n")], { type: "text/csv;charset=utf-8;" }), `${a}.csv`);
@@ -1094,7 +1173,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1094
1173
  E,
1095
1174
  e.exportOptions,
1096
1175
  e.objectName,
1097
- st,
1176
+ ct,
1098
1177
  H,
1099
1178
  K
1100
1179
  ]);
@@ -1132,8 +1211,8 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1132
1211
  children: M("grid.loading")
1133
1212
  })]
1134
1213
  });
1135
- let lt = [...st()];
1136
- if (W.widths && (lt = lt.map((e) => {
1214
+ let ut = [...ct()];
1215
+ if (W.widths && (ut = ut.map((e) => {
1137
1216
  let t = W.widths?.[e.accessorKey];
1138
1217
  return t ? {
1139
1218
  ...e,
@@ -1141,12 +1220,12 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1141
1220
  } : e;
1142
1221
  })), W.order && W.order.length > 0) {
1143
1222
  let e = new Map(W.order.map((e, t) => [e, t]));
1144
- lt.sort((t, n) => (e.get(t.accessorKey) ?? Infinity) - (e.get(n.accessorKey) ?? Infinity));
1223
+ ut.sort((t, n) => (e.get(t.accessorKey) ?? Infinity) - (e.get(n.accessorKey) ?? Infinity));
1145
1224
  }
1146
- let $ = "operations" in e ? e.operations : void 0, ut = $ && ($.update || $.delete), dt = e.rowActions && e.rowActions.length > 0, ft = ut || dt ? [...lt, {
1225
+ let $ = "operations" in e ? e.operations : void 0, dt = $ && ($.update || $.delete), ft = e.rowActions && e.rowActions.length > 0, pt = dt || ft ? [...ut, {
1147
1226
  header: M("grid.actions"),
1148
1227
  accessorKey: "_actions",
1149
- cell: (t, n) => /* @__PURE__ */ (0, Z.jsx)(et, {
1228
+ cell: (t, n) => /* @__PURE__ */ (0, Z.jsx)(tt, {
1150
1229
  row: n,
1151
1230
  rowActions: e.rowActions,
1152
1231
  canEdit: !!($?.update && a),
@@ -1159,28 +1238,28 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1159
1238
  })
1160
1239
  }),
1161
1240
  sortable: !1
1162
- }] : lt, pt = ft.filter((e) => e.pinned === "left"), mt = ft.filter((e) => e.pinned === "right"), ht = ft.filter((e) => !e.pinned), gt = pt.length > 0 || mt.length > 0, _t = "sticky right-0 z-10 bg-background border-l border-border", vt = gt ? [
1163
- ...pt,
1164
- ...ht,
1165
- ...mt.map((e) => ({
1241
+ }] : ut, mt = pt.filter((e) => e.pinned === "left"), ht = pt.filter((e) => e.pinned === "right"), gt = pt.filter((e) => !e.pinned), _t = mt.length > 0 || ht.length > 0, vt = "sticky right-0 z-10 bg-background border-l border-border", yt = _t ? [
1242
+ ...mt,
1243
+ ...gt,
1244
+ ...ht.map((e) => ({
1166
1245
  ...e,
1167
- className: [e.className, _t].filter(Boolean).join(" "),
1168
- cellClassName: [e.cellClassName, _t].filter(Boolean).join(" ")
1246
+ className: [e.className, vt].filter(Boolean).join(" "),
1247
+ cellClassName: [e.cellClassName, vt].filter(Boolean).join(" ")
1169
1248
  }))
1170
- ] : ft, yt = gt ? pt.length : e.frozenColumns ?? 1, bt = e.batchActions ?? e.bulkActions, xt = bt && bt.length > 0, St = !1;
1171
- e.selection?.type ? St = e.selection.type === "none" ? !1 : e.selection.type : e.selectable === void 0 ? xt && (St = "multiple") : St = e.selectable;
1172
- let Ct = e.pagination === void 0 ? e.showPagination === void 0 ? !0 : e.showPagination : !0, wt = e.pagination?.pageSize || e.pageSize || 10, Tt = e.searchableFields === void 0 ? e.showSearch === void 0 ? !0 : e.showSearch : e.searchableFields.length > 0, Et = {
1249
+ ] : pt, bt = _t ? mt.length : e.frozenColumns ?? 1, xt = e.batchActions ?? e.bulkActions, St = xt && xt.length > 0, Ct = !1;
1250
+ e.selection?.type ? Ct = e.selection.type === "none" ? !1 : e.selection.type : e.selectable === void 0 ? St && (Ct = "multiple") : Ct = e.selectable;
1251
+ let wt = e.pagination === void 0 ? e.showPagination === void 0 ? !0 : e.showPagination : !0, Tt = e.pagination?.pageSize || e.pageSize || 10, Et = e.searchableFields === void 0 ? e.showSearch === void 0 ? !0 : e.showSearch : e.searchableFields.length > 0, Dt = {
1173
1252
  type: "data-table",
1174
1253
  caption: e.label || e.title,
1175
- columns: vt,
1254
+ columns: yt,
1176
1255
  data: E,
1177
- pagination: Ct,
1178
- pageSize: wt,
1179
- searchable: Tt,
1180
- selectable: St,
1256
+ pagination: wt,
1257
+ pageSize: Tt,
1258
+ searchable: Et,
1259
+ selectable: Ct,
1181
1260
  sortable: !0,
1182
1261
  exportable: $?.export,
1183
- rowActions: !!(e.editable && ut),
1262
+ rowActions: !!(e.editable && dt),
1184
1263
  resizableColumns: e.resizable ?? e.resizableColumns ?? !0,
1185
1264
  reorderableColumns: e.reorderableColumns ?? !1,
1186
1265
  editable: e.editable ?? !1,
@@ -1192,7 +1271,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1192
1271
  onAddRecord: ne,
1193
1272
  rowClassName: e.rowColor ? (e, t) => We(e) : void 0,
1194
1273
  rowStyle: e.conditionalFormatting?.length ? (e, t) => Ge(e) : void 0,
1195
- frozenColumns: yt,
1274
+ frozenColumns: bt,
1196
1275
  onSelectionChange: (e) => {
1197
1276
  ve(e), c?.(e);
1198
1277
  },
@@ -1215,15 +1294,15 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1215
1294
  order: e
1216
1295
  });
1217
1296
  }
1218
- }, Dt = (e) => ({
1219
- ...Et,
1297
+ }, Ot = (e) => ({
1298
+ ...Dt,
1220
1299
  caption: void 0,
1221
1300
  data: e,
1222
1301
  pagination: !1,
1223
1302
  searchable: !1
1224
- }), Ot = e.label ? `${e.label} Detail` : e.objectName ? `${e.objectName.charAt(0).toUpperCase() + e.objectName.slice(1)} Detail` : "Record Detail";
1225
- if (R && E.length > 0 && !Ye) {
1226
- let e = st().filter((e) => e.accessorKey !== "_actions"), t = /* @__PURE__ */ new Map();
1303
+ }), kt = e.label ? `${e.label} Detail` : e.objectName ? `${e.objectName.charAt(0).toUpperCase() + e.objectName.slice(1)} Detail` : "Record Detail";
1304
+ if (R && E.length > 0 && !Xe) {
1305
+ let e = ct().filter((e) => e.accessorKey !== "_actions"), t = /* @__PURE__ */ new Map();
1227
1306
  e.forEach((e) => t.set(e.accessorKey, e));
1228
1307
  let n = e[0], r = [
1229
1308
  "amount",
@@ -1328,7 +1407,7 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1328
1407
  })
1329
1408
  }), Q.isOverlay && /* @__PURE__ */ (0, Z.jsx)(oe, {
1330
1409
  ...Q,
1331
- title: Ot,
1410
+ title: kt,
1332
1411
  children: (e) => /* @__PURE__ */ (0, Z.jsx)("div", {
1333
1412
  className: "space-y-3",
1334
1413
  children: Object.entries(e).map(([e, t]) => /* @__PURE__ */ (0, Z.jsxs)("div", {
@@ -1344,23 +1423,23 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1344
1423
  })
1345
1424
  })] });
1346
1425
  }
1347
- let kt = () => {
1426
+ let At = () => {
1348
1427
  he((e) => e === "compact" ? "short" : e === "short" ? "medium" : e === "medium" ? "tall" : e === "tall" ? "extra_tall" : "compact");
1349
- }, At = {
1428
+ }, jt = {
1350
1429
  compact: Me,
1351
1430
  short: je,
1352
1431
  medium: Ae,
1353
1432
  tall: me,
1354
1433
  extra_tall: me
1355
- }[U], jt = e.rowHeight !== void 0, Mt = e.exportOptions || jt ? /* @__PURE__ */ (0, Z.jsxs)("div", {
1434
+ }[U], Mt = e.rowHeight !== void 0, Nt = e.exportOptions || Mt ? /* @__PURE__ */ (0, Z.jsxs)("div", {
1356
1435
  className: "flex items-center justify-end gap-1 px-2 py-1",
1357
- children: [jt && /* @__PURE__ */ (0, Z.jsxs)(T, {
1436
+ children: [Mt && /* @__PURE__ */ (0, Z.jsxs)(T, {
1358
1437
  variant: "ghost",
1359
1438
  size: "sm",
1360
1439
  className: "h-7 px-2 text-muted-foreground hover:text-primary text-xs",
1361
- onClick: kt,
1440
+ onClick: At,
1362
1441
  title: `Row height: ${U}`,
1363
- children: [/* @__PURE__ */ (0, Z.jsx)(At, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ (0, Z.jsx)("span", {
1442
+ children: [/* @__PURE__ */ (0, Z.jsx)(jt, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ (0, Z.jsx)("span", {
1364
1443
  className: "hidden sm:inline capitalize",
1365
1444
  children: U
1366
1445
  })]
@@ -1387,13 +1466,13 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1387
1466
  variant: "ghost",
1388
1467
  size: "sm",
1389
1468
  className: "w-full justify-start h-8 text-xs",
1390
- onClick: () => ct(e),
1469
+ onClick: () => lt(e),
1391
1470
  children: [/* @__PURE__ */ (0, Z.jsx)(Ce, { className: "h-3.5 w-3.5 mr-2" }), M("grid.exportAs", { format: e.toUpperCase() })]
1392
1471
  }, e))
1393
1472
  })
1394
1473
  })]
1395
1474
  })]
1396
- }) : null, Nt = (e) => {
1475
+ }) : null, Pt = (e) => {
1397
1476
  let t = [
1398
1477
  "_id",
1399
1478
  "id",
@@ -1478,13 +1557,13 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1478
1557
  })]
1479
1558
  })]
1480
1559
  });
1481
- }, Pt = nt ? /* @__PURE__ */ (0, Z.jsx)("div", {
1560
+ }, Ft = rt ? /* @__PURE__ */ (0, Z.jsx)("div", {
1482
1561
  className: "border-t bg-muted/30 px-2 py-1.5",
1483
1562
  "data-testid": "column-summary-footer",
1484
1563
  children: /* @__PURE__ */ (0, Z.jsx)("div", {
1485
1564
  className: "flex gap-4 text-xs text-muted-foreground font-medium",
1486
- children: vt.filter((e) => Ze.has(e.accessorKey)).map((e) => {
1487
- let t = Ze.get(e.accessorKey);
1565
+ children: yt.filter((e) => Qe.has(e.accessorKey)).map((e) => {
1566
+ let t = Qe.get(e.accessorKey);
1488
1567
  return /* @__PURE__ */ (0, Z.jsxs)("span", {
1489
1568
  "data-testid": `summary-${e.accessorKey}`,
1490
1569
  children: [
@@ -1495,18 +1574,24 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1495
1574
  }, e.accessorKey);
1496
1575
  })
1497
1576
  })
1498
- }) : null, Ft = Ye ? /* @__PURE__ */ (0, Z.jsx)("div", {
1499
- className: "space-y-2",
1500
- children: Ke.map((e) => /* @__PURE__ */ (0, Z.jsx)(Je, {
1577
+ }) : null, It = (e) => /* @__PURE__ */ (0, Z.jsx)("div", {
1578
+ style: e.depth > 0 ? { marginLeft: e.depth * 16 } : void 0,
1579
+ children: /* @__PURE__ */ (0, Z.jsx)(Ye, {
1501
1580
  groupKey: e.key,
1502
1581
  label: e.label,
1503
1582
  count: e.rows.length,
1504
1583
  collapsed: e.collapsed,
1505
1584
  aggregations: e.aggregations,
1506
- onToggle: Xe,
1507
- children: /* @__PURE__ */ (0, Z.jsx)(d, { schema: Dt(e.rows) })
1508
- }, e.key))
1509
- }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(d, { schema: Et }), Pt] }), It = /* @__PURE__ */ (0, Z.jsx)(ae, {
1585
+ onToggle: Ze,
1586
+ children: e.subgroups.length > 0 ? /* @__PURE__ */ (0, Z.jsx)("div", {
1587
+ className: "space-y-2 p-2",
1588
+ children: e.subgroups.map(It)
1589
+ }) : /* @__PURE__ */ (0, Z.jsx)(d, { schema: Ot(e.rows) })
1590
+ })
1591
+ }, e.key), Lt = Xe ? /* @__PURE__ */ (0, Z.jsx)("div", {
1592
+ className: "space-y-2",
1593
+ children: qe.map(It)
1594
+ }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(d, { schema: Dt }), Ft] }), Rt = /* @__PURE__ */ (0, Z.jsx)(ae, {
1510
1595
  open: fe,
1511
1596
  onOpenChange: V,
1512
1597
  job: H,
@@ -1515,13 +1600,13 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1515
1600
  });
1516
1601
  return Q.isOverlay && Q.mode === "split" ? /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [/* @__PURE__ */ (0, Z.jsx)(oe, {
1517
1602
  ...Q,
1518
- title: Ot,
1603
+ title: kt,
1519
1604
  mainContent: /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
1520
- Mt,
1521
- Ft,
1522
- /* @__PURE__ */ (0, Z.jsx)(tt, {
1605
+ Nt,
1606
+ Lt,
1607
+ /* @__PURE__ */ (0, Z.jsx)(nt, {
1523
1608
  selectedRows: ge,
1524
- actions: bt ?? [],
1609
+ actions: xt ?? [],
1525
1610
  onAction: (e, t) => Ue({
1526
1611
  type: e,
1527
1612
  params: { records: t }
@@ -1529,8 +1614,8 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1529
1614
  onClearSelection: () => ve([])
1530
1615
  })
1531
1616
  ] }),
1532
- children: (e) => Nt(e)
1533
- }), It] }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
1617
+ children: (e) => Pt(e)
1618
+ }), Rt] }) : /* @__PURE__ */ (0, Z.jsxs)("div", {
1534
1619
  ref: Te,
1535
1620
  className: "relative h-full",
1536
1621
  children: [
@@ -1539,11 +1624,11 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1539
1624
  style: { height: De },
1540
1625
  children: M(Ee ? "grid.refreshing" : "grid.pullToRefresh")
1541
1626
  }),
1542
- Mt,
1543
- Ft,
1544
- /* @__PURE__ */ (0, Z.jsx)(tt, {
1627
+ Nt,
1628
+ Lt,
1629
+ /* @__PURE__ */ (0, Z.jsx)(nt, {
1545
1630
  selectedRows: ge,
1546
- actions: bt ?? [],
1631
+ actions: xt ?? [],
1547
1632
  onAction: (e, t) => Ue({
1548
1633
  type: e,
1549
1634
  params: { records: t }
@@ -1552,16 +1637,16 @@ var st = ({ schema: e, dataSource: n, onEdit: a, onDelete: o, onRowSelect: c, on
1552
1637
  }),
1553
1638
  Q.isOverlay && /* @__PURE__ */ (0, Z.jsx)(oe, {
1554
1639
  ...Q,
1555
- title: Ot,
1556
- children: (e) => Nt(e)
1640
+ title: kt,
1641
+ children: (e) => Pt(e)
1557
1642
  }),
1558
- It
1643
+ Rt
1559
1644
  ]
1560
1645
  });
1561
1646
  };
1562
1647
  //#endregion
1563
1648
  //#region ../../node_modules/.pnpm/@tanstack+virtual-core@3.14.0/node_modules/@tanstack/virtual-core/dist/esm/utils.js
1564
- function ct(e, t, n) {
1649
+ function lt(e, t, n) {
1565
1650
  let r = n.initialDeps ?? [], i, a = !0;
1566
1651
  function o() {
1567
1652
  let o;
@@ -1586,26 +1671,26 @@ function ct(e, t, n) {
1586
1671
  r = e;
1587
1672
  }, o;
1588
1673
  }
1589
- function lt(e, t) {
1674
+ function ut(e, t) {
1590
1675
  if (e === void 0) throw Error(`Unexpected undefined${t ? `: ${t}` : ""}`);
1591
1676
  return e;
1592
1677
  }
1593
- var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1678
+ var $ = (e, t) => Math.abs(e - t) < 1.01, dt = (e, t, n) => {
1594
1679
  let r;
1595
1680
  return function(...i) {
1596
1681
  e.clearTimeout(r), r = e.setTimeout(() => t.apply(this, i), n);
1597
1682
  };
1598
- }, dt = (e) => {
1683
+ }, ft = (e) => {
1599
1684
  let { offsetWidth: t, offsetHeight: n } = e;
1600
1685
  return {
1601
1686
  width: t,
1602
1687
  height: n
1603
1688
  };
1604
- }, ft = (e) => e, pt = (e) => {
1689
+ }, pt = (e) => e, mt = (e) => {
1605
1690
  let t = Math.max(e.startIndex - e.overscan, 0), n = Math.min(e.endIndex + e.overscan, e.count - 1), r = [];
1606
1691
  for (let e = t; e <= n; e++) r.push(e);
1607
1692
  return r;
1608
- }, mt = (e, t) => {
1693
+ }, ht = (e, t) => {
1609
1694
  let n = e.scrollElement;
1610
1695
  if (!n) return;
1611
1696
  let r = e.targetWindow;
@@ -1617,7 +1702,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1617
1702
  height: Math.round(r)
1618
1703
  });
1619
1704
  };
1620
- if (i(dt(n)), !r.ResizeObserver) return () => {};
1705
+ if (i(ft(n)), !r.ResizeObserver) return () => {};
1621
1706
  let a = new r.ResizeObserver((t) => {
1622
1707
  let r = () => {
1623
1708
  let e = t[0];
@@ -1631,43 +1716,43 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1631
1716
  return;
1632
1717
  }
1633
1718
  }
1634
- i(dt(n));
1719
+ i(ft(n));
1635
1720
  };
1636
1721
  e.options.useAnimationFrameWithResizeObserver ? requestAnimationFrame(r) : r();
1637
1722
  });
1638
1723
  return a.observe(n, { box: "border-box" }), () => {
1639
1724
  a.unobserve(n);
1640
1725
  };
1641
- }, ht = { passive: !0 }, gt = typeof window > "u" ? !0 : "onscrollend" in window, _t = (e, t) => {
1726
+ }, gt = { passive: !0 }, _t = typeof window > "u" ? !0 : "onscrollend" in window, vt = (e, t) => {
1642
1727
  let n = e.scrollElement;
1643
1728
  if (!n) return;
1644
1729
  let r = e.targetWindow;
1645
1730
  if (!r) return;
1646
- let i = 0, a = e.options.useScrollendEvent && gt ? () => void 0 : ut(r, () => {
1731
+ let i = 0, a = e.options.useScrollendEvent && _t ? () => void 0 : dt(r, () => {
1647
1732
  t(i, !1);
1648
1733
  }, e.options.isScrollingResetDelay), o = (r) => () => {
1649
1734
  let { horizontal: o, isRtl: s } = e.options;
1650
1735
  i = o ? n.scrollLeft * (s && -1 || 1) : n.scrollTop, a(), t(i, r);
1651
1736
  }, s = o(!0), c = o(!1);
1652
- n.addEventListener("scroll", s, ht);
1653
- let l = e.options.useScrollendEvent && gt;
1654
- return l && n.addEventListener("scrollend", c, ht), () => {
1737
+ n.addEventListener("scroll", s, gt);
1738
+ let l = e.options.useScrollendEvent && _t;
1739
+ return l && n.addEventListener("scrollend", c, gt), () => {
1655
1740
  n.removeEventListener("scroll", s), l && n.removeEventListener("scrollend", c);
1656
1741
  };
1657
- }, vt = (e, t, n) => {
1742
+ }, yt = (e, t, n) => {
1658
1743
  if (t?.borderBoxSize) {
1659
1744
  let e = t.borderBoxSize[0];
1660
1745
  if (e) return Math.round(e[n.options.horizontal ? "inlineSize" : "blockSize"]);
1661
1746
  }
1662
1747
  return e[n.options.horizontal ? "offsetWidth" : "offsetHeight"];
1663
- }, yt = (e, { adjustments: t = 0, behavior: n }, r) => {
1748
+ }, bt = (e, { adjustments: t = 0, behavior: n }, r) => {
1664
1749
  var i, a;
1665
1750
  let o = e + t;
1666
1751
  (a = (i = r.scrollElement)?.scrollTo) == null || a.call(i, {
1667
1752
  [r.options.horizontal ? "left" : "top"]: o,
1668
1753
  behavior: n
1669
1754
  });
1670
- }, bt = class {
1755
+ }, xt = class {
1671
1756
  constructor(e) {
1672
1757
  this.unsubs = [], this.scrollElement = null, this.targetWindow = null, this.isScrolling = !1, this.scrollState = null, this.measurementsCache = [], this.itemSizeCache = /* @__PURE__ */ new Map(), this.laneAssignments = /* @__PURE__ */ new Map(), this.pendingMeasuredCacheIndexes = [], this.prevLanes = void 0, this.lanesChangedFlag = !1, this.lanesSettling = !1, this.scrollRect = null, this.scrollOffset = null, this.scrollDirection = null, this.scrollAdjustments = 0, this.elementsCache = /* @__PURE__ */ new Map(), this.now = () => {
1673
1758
  var e;
@@ -1706,10 +1791,10 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1706
1791
  scrollPaddingStart: 0,
1707
1792
  scrollPaddingEnd: 0,
1708
1793
  horizontal: !1,
1709
- getItemKey: ft,
1710
- rangeExtractor: pt,
1794
+ getItemKey: pt,
1795
+ rangeExtractor: mt,
1711
1796
  onChange: () => {},
1712
- measureElement: vt,
1797
+ measureElement: yt,
1713
1798
  initialRect: {
1714
1799
  width: 0,
1715
1800
  height: 0
@@ -1730,7 +1815,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1730
1815
  }, this.notify = (e) => {
1731
1816
  var t, n;
1732
1817
  (n = (t = this.options).onChange) == null || n.call(t, this, e);
1733
- }, this.maybeNotify = ct(() => (this.calculateRange(), [
1818
+ }, this.maybeNotify = lt(() => (this.calculateRange(), [
1734
1819
  this.isScrolling,
1735
1820
  this.range ? this.range.startIndex : null,
1736
1821
  this.range ? this.range.endIndex : null
@@ -1775,7 +1860,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1775
1860
  if (a == null || t.end > a.end ? r.set(t.lane, t) : t.end < a.end && n.set(t.lane, !0), n.size === this.options.lanes) break;
1776
1861
  }
1777
1862
  return r.size === this.options.lanes ? Array.from(r.values()).sort((e, t) => e.end === t.end ? e.index - t.index : e.end - t.end)[0] : void 0;
1778
- }, this.getMeasurementOptions = ct(() => [
1863
+ }, this.getMeasurementOptions = lt(() => [
1779
1864
  this.options.count,
1780
1865
  this.options.paddingStart,
1781
1866
  this.options.scrollMargin,
@@ -1791,7 +1876,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1791
1876
  enabled: i,
1792
1877
  lanes: a,
1793
1878
  laneAssignmentMode: o
1794
- }), { key: !1 }), this.getMeasurements = ct(() => [this.getMeasurementOptions(), this.itemSizeCache], ({ count: e, paddingStart: t, scrollMargin: n, getItemKey: r, enabled: i, lanes: a, laneAssignmentMode: o }, s) => {
1879
+ }), { key: !1 }), this.getMeasurements = lt(() => [this.getMeasurementOptions(), this.itemSizeCache], ({ count: e, paddingStart: t, scrollMargin: n, getItemKey: r, enabled: i, lanes: a, laneAssignmentMode: o }, s) => {
1795
1880
  if (!i) return this.measurementsCache = [], this.itemSizeCache.clear(), this.laneAssignments.clear(), [];
1796
1881
  if (this.laneAssignments.size > e) for (let t of this.laneAssignments.keys()) t >= e && this.laneAssignments.delete(t);
1797
1882
  this.lanesChangedFlag && (this.lanesChangedFlag = !1, this.lanesSettling = !0, this.measurementsCache = [], this.itemSizeCache.clear(), this.laneAssignments.clear(), this.pendingMeasuredCacheIndexes = []), this.measurementsCache.length === 0 && !this.lanesSettling && (this.measurementsCache = this.options.initialMeasurementsCache, this.measurementsCache.forEach((e) => {
@@ -1828,12 +1913,12 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1828
1913
  }, {
1829
1914
  key: process.env.NODE_ENV !== "production" && "getMeasurements",
1830
1915
  debug: () => this.options.debug
1831
- }), this.calculateRange = ct(() => [
1916
+ }), this.calculateRange = lt(() => [
1832
1917
  this.getMeasurements(),
1833
1918
  this.getSize(),
1834
1919
  this.getScrollOffset(),
1835
1920
  this.options.lanes
1836
- ], (e, t, n, r) => this.range = e.length > 0 && t > 0 ? St({
1921
+ ], (e, t, n, r) => this.range = e.length > 0 && t > 0 ? Ct({
1837
1922
  measurements: e,
1838
1923
  outerSize: t,
1839
1924
  scrollOffset: n,
@@ -1841,7 +1926,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1841
1926
  }) : null, {
1842
1927
  key: process.env.NODE_ENV !== "production" && "calculateRange",
1843
1928
  debug: () => this.options.debug
1844
- }), this.getVirtualIndexes = ct(() => {
1929
+ }), this.getVirtualIndexes = lt(() => {
1845
1930
  let e = null, t = null, n = this.calculateRange();
1846
1931
  return n && (e = n.startIndex, t = n.endIndex), this.maybeNotify.updateDeps([
1847
1932
  this.isScrolling,
@@ -1890,7 +1975,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1890
1975
  adjustments: this.scrollAdjustments += r,
1891
1976
  behavior: void 0
1892
1977
  })), this.pendingMeasuredCacheIndexes.push(n.index), this.itemSizeCache = new Map(this.itemSizeCache.set(n.key, t)), this.notify(!1));
1893
- }, this.getVirtualItems = ct(() => [this.getVirtualIndexes(), this.getMeasurements()], (e, t) => {
1978
+ }, this.getVirtualItems = lt(() => [this.getVirtualIndexes(), this.getMeasurements()], (e, t) => {
1894
1979
  let n = [];
1895
1980
  for (let r = 0, i = e.length; r < i; r++) {
1896
1981
  let i = t[e[r]];
@@ -1902,7 +1987,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
1902
1987
  debug: () => this.options.debug
1903
1988
  }), this.getVirtualItemForOffset = (e) => {
1904
1989
  let t = this.getMeasurements();
1905
- if (t.length !== 0) return lt(t[xt(0, t.length - 1, (e) => lt(t[e]).start, e)]);
1990
+ if (t.length !== 0) return ut(t[St(0, t.length - 1, (e) => ut(t[e]).start, e)]);
1906
1991
  }, this.getMaxScrollOffset = () => {
1907
1992
  if (!this.scrollElement) return 0;
1908
1993
  if ("scrollHeight" in this.scrollElement) return this.options.horizontal ? this.scrollElement.scrollWidth - this.scrollElement.clientWidth : this.scrollElement.scrollHeight - this.scrollElement.clientHeight;
@@ -2017,7 +2102,7 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
2017
2102
  }));
2018
2103
  this.scheduleScrollReconcile();
2019
2104
  }
2020
- }, xt = (e, t, n, r) => {
2105
+ }, St = (e, t, n, r) => {
2021
2106
  for (; e <= t;) {
2022
2107
  let i = (e + t) / 2 | 0, a = n(i);
2023
2108
  if (a < r) e = i + 1;
@@ -2026,13 +2111,13 @@ var $ = (e, t) => Math.abs(e - t) < 1.01, ut = (e, t, n) => {
2026
2111
  }
2027
2112
  return e > 0 ? e - 1 : 0;
2028
2113
  };
2029
- function St({ measurements: e, outerSize: t, scrollOffset: n, lanes: r }) {
2114
+ function Ct({ measurements: e, outerSize: t, scrollOffset: n, lanes: r }) {
2030
2115
  let i = e.length - 1, a = (t) => e[t].start;
2031
2116
  if (e.length <= r) return {
2032
2117
  startIndex: 0,
2033
2118
  endIndex: i
2034
2119
  };
2035
- let o = xt(0, i, a, n), s = o;
2120
+ let o = St(0, i, a, n), s = o;
2036
2121
  if (r === 1) for (; s < i && e[s].end < n + t;) s++;
2037
2122
  else if (r > 1) {
2038
2123
  let a = Array(r).fill(0);
@@ -2054,29 +2139,29 @@ function St({ measurements: e, outerSize: t, scrollOffset: n, lanes: r }) {
2054
2139
  }
2055
2140
  //#endregion
2056
2141
  //#region ../../node_modules/.pnpm/@tanstack+react-virtual@3.13.24_react-dom@19.2.5_react@19.2.5__react@19.2.5/node_modules/@tanstack/react-virtual/dist/esm/index.js
2057
- var Ct = typeof document < "u" ? e.useLayoutEffect : e.useEffect;
2058
- function wt({ useFlushSync: t = !0, ...n }) {
2142
+ var wt = typeof document < "u" ? e.useLayoutEffect : e.useEffect;
2143
+ function Tt({ useFlushSync: t = !0, ...n }) {
2059
2144
  let r = e.useReducer(() => ({}), {})[1], i = {
2060
2145
  ...n,
2061
2146
  onChange: (e, i) => {
2062
2147
  var a;
2063
2148
  t && i ? q(r) : r(), (a = n.onChange) == null || a.call(n, e, i);
2064
2149
  }
2065
- }, [a] = e.useState(() => new bt(i));
2066
- return a.setOptions(i), Ct(() => a._didMount(), []), Ct(() => a._willUpdate()), a;
2150
+ }, [a] = e.useState(() => new xt(i));
2151
+ return a.setOptions(i), wt(() => a._didMount(), []), wt(() => a._willUpdate()), a;
2067
2152
  }
2068
- function Tt(e) {
2069
- return wt({
2070
- observeElementRect: mt,
2071
- observeElementOffset: _t,
2072
- scrollToFn: yt,
2153
+ function Et(e) {
2154
+ return Tt({
2155
+ observeElementRect: ht,
2156
+ observeElementOffset: vt,
2157
+ scrollToFn: bt,
2073
2158
  ...e
2074
2159
  });
2075
2160
  }
2076
2161
  //#endregion
2077
2162
  //#region src/VirtualGrid.tsx
2078
- var Et = ({ data: e, columns: t, rowHeight: n = 40, height: r = 600, className: i = "", headerClassName: a = "", rowClassName: s, onRowClick: c, overscan: l = 5 }) => {
2079
- let u = o(null), d = Tt({
2163
+ var Dt = ({ data: e, columns: t, rowHeight: n = 40, height: r = 600, className: i = "", headerClassName: a = "", rowClassName: s, onRowClick: c, overscan: l = 5 }) => {
2164
+ let u = o(null), d = Et({
2080
2165
  count: e.length,
2081
2166
  getScrollElement: () => u.current,
2082
2167
  estimateSize: () => n,
@@ -2143,8 +2228,8 @@ var Et = ({ data: e, columns: t, rowHeight: n = 40, height: r = 600, className:
2143
2228
  })
2144
2229
  ]
2145
2230
  });
2146
- }, Dt = 10;
2147
- function Ot(e) {
2231
+ }, Ot = 10;
2232
+ function kt(e) {
2148
2233
  let t = [], n = [], r = "", i = !1;
2149
2234
  for (let a = 0; a < e.length; a++) {
2150
2235
  let o = e[a], s = e[a + 1];
@@ -2152,7 +2237,7 @@ function Ot(e) {
2152
2237
  }
2153
2238
  return n.push(r.trim()), n.some((e) => e !== "") && t.push(n), t;
2154
2239
  }
2155
- function kt(e, t) {
2240
+ function At(e, t) {
2156
2241
  if (!e) return !0;
2157
2242
  switch (t) {
2158
2243
  case "number":
@@ -2171,7 +2256,7 @@ function kt(e, t) {
2171
2256
  default: return !0;
2172
2257
  }
2173
2258
  }
2174
- function At(e, t) {
2259
+ function jt(e, t) {
2175
2260
  let n = {};
2176
2261
  return e.forEach((e, r) => {
2177
2262
  let i = e.toLowerCase().replace(/[_\s-]/g, ""), a = t.find((e) => {
@@ -2181,7 +2266,7 @@ function At(e, t) {
2181
2266
  a && (n[r] = a.name);
2182
2267
  }), n;
2183
2268
  }
2184
- function jt() {
2269
+ function Mt() {
2185
2270
  if (typeof window > "u") return null;
2186
2271
  try {
2187
2272
  return window.localStorage;
@@ -2189,7 +2274,7 @@ function jt() {
2189
2274
  return null;
2190
2275
  }
2191
2276
  }
2192
- function Mt(e, t) {
2277
+ function Nt(e, t) {
2193
2278
  if (!e) return [];
2194
2279
  try {
2195
2280
  let n = e.getItem(t);
@@ -2200,26 +2285,26 @@ function Mt(e, t) {
2200
2285
  return [];
2201
2286
  }
2202
2287
  }
2203
- function Nt(e, t, n) {
2288
+ function Pt(e, t, n) {
2204
2289
  if (e) try {
2205
2290
  e.setItem(t, JSON.stringify(n));
2206
2291
  } catch {}
2207
2292
  }
2208
- function Pt(e, t) {
2293
+ function Ft(e, t) {
2209
2294
  let n = {};
2210
2295
  return Object.entries(t).forEach(([t, r]) => {
2211
2296
  let i = e[Number(t)];
2212
2297
  i && (n[i.trim().toLowerCase()] = r);
2213
2298
  }), n;
2214
2299
  }
2215
- function Ft(e, t, n) {
2300
+ function It(e, t, n) {
2216
2301
  let r = new Set(n.map((e) => e.name)), i = {};
2217
2302
  return t.forEach((t, n) => {
2218
2303
  let a = e.mapping[t.trim().toLowerCase()];
2219
2304
  a && r.has(a) && (i[n] = a);
2220
2305
  }), i;
2221
2306
  }
2222
- function It(e, t, n) {
2307
+ function Lt(e, t, n) {
2223
2308
  let r = [], i = {};
2224
2309
  for (let a of t) {
2225
2310
  let t = e[a.csvIdx] ?? "";
@@ -2231,7 +2316,7 @@ function It(e, t, n) {
2231
2316
  });
2232
2317
  continue;
2233
2318
  }
2234
- if (t && !kt(t, a.field.type)) {
2319
+ if (t && !At(t, a.field.type)) {
2235
2320
  r.push({
2236
2321
  row: n,
2237
2322
  field: a.field.name,
@@ -2246,7 +2331,7 @@ function It(e, t, n) {
2246
2331
  errors: r
2247
2332
  };
2248
2333
  }
2249
- var Lt = ({ onFileLoaded: e }) => {
2334
+ var Rt = ({ onFileLoaded: e }) => {
2250
2335
  let [t, n] = s(!1), [i, a] = s(null), o = r((t) => {
2251
2336
  if (a(null), !t.name.endsWith(".csv")) {
2252
2337
  a("Only CSV files are supported.");
@@ -2254,7 +2339,7 @@ var Lt = ({ onFileLoaded: e }) => {
2254
2339
  }
2255
2340
  let n = new FileReader();
2256
2341
  n.onload = (t) => {
2257
- let n = Ot(t.target?.result);
2342
+ let n = kt(t.target?.result);
2258
2343
  if (n.length < 2) {
2259
2344
  a("File must contain a header row and at least one data row.");
2260
2345
  return;
@@ -2305,7 +2390,7 @@ var Lt = ({ onFileLoaded: e }) => {
2305
2390
  ]
2306
2391
  })]
2307
2392
  });
2308
- }, Rt = ({ templates: e, selectedId: t, onSelect: n, onSaveAs: r, onDelete: i, disabled: a }) => {
2393
+ }, zt = ({ templates: e, selectedId: t, onSelect: n, onSaveAs: r, onDelete: i, disabled: a }) => {
2309
2394
  let [o, c] = s(""), [l, u] = s(!1);
2310
2395
  return /* @__PURE__ */ (0, Z.jsxs)("div", {
2311
2396
  className: "mb-3 flex flex-wrap items-center gap-2 rounded-md border bg-muted/30 p-2",
@@ -2383,12 +2468,12 @@ var Lt = ({ onFileLoaded: e }) => {
2383
2468
  })
2384
2469
  ]
2385
2470
  });
2386
- }, zt = ({ headers: e, fields: t, mapping: n, onMappingChange: i, templates: o, selectedTemplateId: s, onSelectTemplate: c, onSaveTemplate: l, onDeleteTemplate: u }) => {
2471
+ }, Bt = ({ headers: e, fields: t, mapping: n, onMappingChange: i, templates: o, selectedTemplateId: s, onSelectTemplate: c, onSaveTemplate: l, onDeleteTemplate: u }) => {
2387
2472
  let d = a(() => new Set(Object.values(n)), [n]), f = r((e, t) => {
2388
2473
  let r = { ...n };
2389
2474
  t === "__skip__" ? delete r[e] : r[e] = t, i(r);
2390
2475
  }, [n, i]);
2391
- return /* @__PURE__ */ (0, Z.jsxs)("div", { children: [/* @__PURE__ */ (0, Z.jsx)(Rt, {
2476
+ return /* @__PURE__ */ (0, Z.jsxs)("div", { children: [/* @__PURE__ */ (0, Z.jsx)(zt, {
2392
2477
  templates: o,
2393
2478
  selectedId: s,
2394
2479
  onSelect: c,
@@ -2438,7 +2523,7 @@ var Lt = ({ onFileLoaded: e }) => {
2438
2523
  })
2439
2524
  ] }, r)) })] })
2440
2525
  })] });
2441
- }, Bt = ({ headers: e, rows: t, mapping: n, fields: i, corrections: o, onCorrect: s }) => {
2526
+ }, Vt = ({ headers: e, rows: t, mapping: n, fields: i, corrections: o, onCorrect: s }) => {
2442
2527
  let c = a(() => Object.entries(n).map(([t, n]) => ({
2443
2528
  csvIdx: Number(t),
2444
2529
  header: e[Number(t)],
@@ -2447,14 +2532,14 @@ var Lt = ({ onFileLoaded: e }) => {
2447
2532
  n,
2448
2533
  e,
2449
2534
  i
2450
- ]), l = t.slice(0, Dt), u = r((e, t) => {
2535
+ ]), l = t.slice(0, Ot), u = r((e, t) => {
2451
2536
  let n = o[e]?.[t];
2452
2537
  return n === void 0 ? l[e]?.[t] ?? "" : n;
2453
2538
  }, [o, l]), d = a(() => l.map((e, t) => {
2454
2539
  let n = {};
2455
2540
  for (let e of c) {
2456
2541
  let r = u(t, e.csvIdx);
2457
- e.field.required && !r ? n[e.csvIdx] = "Required" : r && !kt(r, e.field.type) && (n[e.csvIdx] = `Invalid ${e.field.type}`);
2542
+ e.field.required && !r ? n[e.csvIdx] = "Required" : r && !At(r, e.field.type) && (n[e.csvIdx] = `Invalid ${e.field.type}`);
2458
2543
  }
2459
2544
  return n;
2460
2545
  }), [
@@ -2533,14 +2618,14 @@ var Lt = ({ onFileLoaded: e }) => {
2533
2618
  })
2534
2619
  ]
2535
2620
  });
2536
- }, Vt = ({ objectName: e, objectLabel: n, fields: o, dataSource: c, onComplete: l, onCancel: u, open: d, onOpenChange: f, onErrorMode: p = "skip", templateStorageKey: m, templateStorage: h }) => {
2537
- let [g, _] = s("upload"), [v, y] = s([]), [b, x] = s([]), [S, C] = s({}), [D, O] = s(!1), [k, A] = s(0), [j, ae] = s(null), [M, oe] = s({}), se = n ?? e, N = a(() => h === void 0 ? jt() : h, [h]), P = m ?? `objectui:import-templates:${e}`, [F, I] = s(() => Mt(N, P)), [L, R] = s(null);
2621
+ }, Ht = ({ objectName: e, objectLabel: n, fields: o, dataSource: c, onComplete: l, onCancel: u, open: d, onOpenChange: f, onErrorMode: p = "skip", templateStorageKey: m, templateStorage: h }) => {
2622
+ let [g, _] = s("upload"), [v, y] = s([]), [b, x] = s([]), [S, C] = s({}), [D, O] = s(!1), [k, A] = s(0), [j, ae] = s(null), [M, oe] = s({}), se = n ?? e, N = a(() => h === void 0 ? Mt() : h, [h]), P = m ?? `objectui:import-templates:${e}`, [F, I] = s(() => Nt(N, P)), [L, R] = s(null);
2538
2623
  i(() => {
2539
- I(Mt(N, P));
2624
+ I(Nt(N, P));
2540
2625
  }, [N, P]);
2541
2626
  let le = r((e) => {
2542
2627
  let t = F.find((t) => t.id === e);
2543
- t && (R(e), C(Ft(t, v, o)));
2628
+ t && (R(e), C(It(t, v, o)));
2544
2629
  }, [
2545
2630
  F,
2546
2631
  v,
@@ -2549,10 +2634,10 @@ var Lt = ({ onFileLoaded: e }) => {
2549
2634
  let t = {
2550
2635
  id: `tpl-${Date.now().toString(36)}-${Math.random().toString(36).slice(2, 6)}`,
2551
2636
  name: e,
2552
- mapping: Pt(v, S),
2637
+ mapping: Ft(v, S),
2553
2638
  updatedAt: Date.now()
2554
2639
  }, n = [...F, t];
2555
- I(n), R(t.id), Nt(N, P, n);
2640
+ I(n), R(t.id), Pt(N, P, n);
2556
2641
  }, [
2557
2642
  F,
2558
2643
  v,
@@ -2562,7 +2647,7 @@ var Lt = ({ onFileLoaded: e }) => {
2562
2647
  ]), de = r(() => {
2563
2648
  if (!L) return;
2564
2649
  let e = F.filter((e) => e.id !== L);
2565
- I(e), R(null), Nt(N, P, e);
2650
+ I(e), R(null), Pt(N, P, e);
2566
2651
  }, [
2567
2652
  F,
2568
2653
  L,
@@ -2577,7 +2662,7 @@ var Lt = ({ onFileLoaded: e }) => {
2577
2662
  let e = new Set(Object.values(S));
2578
2663
  return o.filter((t) => t.required && !e.has(t.name));
2579
2664
  }, [o, S]), fe = r((e, t) => {
2580
- y(e), x(t), C(At(e, o)), oe({}), _("mapping");
2665
+ y(e), x(t), C(jt(e, o)), oe({}), _("mapping");
2581
2666
  }, [o]), V = r(async () => {
2582
2667
  O(!0), A(0);
2583
2668
  let t = [], n = 0, r = 0, i = Object.entries(S).map(([e, t]) => ({
@@ -2585,7 +2670,7 @@ var Lt = ({ onFileLoaded: e }) => {
2585
2670
  field: o.find((e) => e.name === t)
2586
2671
  }));
2587
2672
  for (let a = 0; a < b.length; a++) {
2588
- let o = b[a], s = M[a], { record: l, errors: u } = It(s ? o.map((e, t) => s[t] === void 0 ? e : s[t]) : o, i, a + 1);
2673
+ let o = b[a], s = M[a], { record: l, errors: u } = Lt(s ? o.map((e, t) => s[t] === void 0 ? e : s[t]) : o, i, a + 1);
2589
2674
  if (u.length > 0) {
2590
2675
  if (r++, t.push(...u), p === "stop") break;
2591
2676
  } else try {
@@ -2701,8 +2786,8 @@ var Lt = ({ onFileLoaded: e }) => {
2701
2786
  })
2702
2787
  ]
2703
2788
  }) : /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
2704
- g === "upload" && /* @__PURE__ */ (0, Z.jsx)(Lt, { onFileLoaded: fe }),
2705
- g === "mapping" && /* @__PURE__ */ (0, Z.jsx)(zt, {
2789
+ g === "upload" && /* @__PURE__ */ (0, Z.jsx)(Rt, { onFileLoaded: fe }),
2790
+ g === "mapping" && /* @__PURE__ */ (0, Z.jsx)(Bt, {
2706
2791
  headers: v,
2707
2792
  fields: o,
2708
2793
  mapping: S,
@@ -2713,7 +2798,7 @@ var Lt = ({ onFileLoaded: e }) => {
2713
2798
  onSaveTemplate: ue,
2714
2799
  onDeleteTemplate: de
2715
2800
  }),
2716
- g === "preview" && /* @__PURE__ */ (0, Z.jsx)(Bt, {
2801
+ g === "preview" && /* @__PURE__ */ (0, Z.jsx)(Vt, {
2717
2802
  headers: v,
2718
2803
  rows: b,
2719
2804
  mapping: S,
@@ -2772,7 +2857,7 @@ var Lt = ({ onFileLoaded: e }) => {
2772
2857
  };
2773
2858
  //#endregion
2774
2859
  //#region src/InlineEditing.tsx
2775
- function Ht({ value: e, onSave: t, onCancel: n, validate: a, type: c = "text", placeholder: l, editing: u = !1, className: d, disabled: f = !1 }) {
2860
+ function Ut({ value: e, onSave: t, onCancel: n, validate: a, type: c = "text", placeholder: l, editing: u = !1, className: d, disabled: f = !1 }) {
2776
2861
  let [p, m] = s(u), [h, g] = s(String(e ?? "")), [_, v] = s(), [y, b] = s(!1), x = o(null);
2777
2862
  i(() => {
2778
2863
  p || g(String(e ?? ""));
@@ -2882,7 +2967,7 @@ function Ht({ value: e, onSave: t, onCancel: n, validate: a, type: c = "text", p
2882
2967
  }
2883
2968
  //#endregion
2884
2969
  //#region src/useCellClipboard.ts
2885
- function Ut(e) {
2970
+ function Wt(e) {
2886
2971
  return {
2887
2972
  startRow: Math.min(e.startRow, e.endRow),
2888
2973
  startCol: Math.min(e.startCol, e.endCol),
@@ -2890,10 +2975,10 @@ function Ut(e) {
2890
2975
  endCol: Math.max(e.startCol, e.endCol)
2891
2976
  };
2892
2977
  }
2893
- function Wt({ data: e, columns: t, onPaste: n, enabled: a = !0 }) {
2978
+ function Gt({ data: e, columns: t, onPaste: n, enabled: a = !0 }) {
2894
2979
  let [o, c] = s(null), l = r(() => {
2895
2980
  if (!a || !o) return;
2896
- let { startRow: n, startCol: r, endRow: i, endCol: s } = Ut(o), c = [];
2981
+ let { startRow: n, startCol: r, endRow: i, endCol: s } = Wt(o), c = [];
2897
2982
  for (let a = n; a <= i; a++) {
2898
2983
  let n = e[a];
2899
2984
  if (!n) continue;
@@ -2913,7 +2998,7 @@ function Wt({ data: e, columns: t, onPaste: n, enabled: a = !0 }) {
2913
2998
  t
2914
2999
  ]), u = r(() => {
2915
3000
  if (!a || !o || !n) return;
2916
- let { startRow: r, startCol: i } = Ut(o);
3001
+ let { startRow: r, startCol: i } = Wt(o);
2917
3002
  navigator.clipboard.readText().then((a) => {
2918
3003
  let o = [], s = a.split("\n");
2919
3004
  for (let n = 0; n < s.length; n++) {
@@ -2956,7 +3041,7 @@ function Wt({ data: e, columns: t, onPaste: n, enabled: a = !0 }) {
2956
3041
  }
2957
3042
  //#endregion
2958
3043
  //#region src/useGradientColor.ts
2959
- var Gt = [
3044
+ var Kt = [
2960
3045
  {
2961
3046
  position: 0,
2962
3047
  className: "bg-green-100"
@@ -2970,7 +3055,7 @@ var Gt = [
2970
3055
  className: "bg-red-100"
2971
3056
  }
2972
3057
  ];
2973
- function Kt(e, t) {
3058
+ function qt(e, t) {
2974
3059
  let n = Infinity, r = -Infinity;
2975
3060
  for (let i of e) {
2976
3061
  let e = Number(i[t]);
@@ -2978,7 +3063,7 @@ function Kt(e, t) {
2978
3063
  }
2979
3064
  return Number.isFinite(n) ? [n, r] : [0, 0];
2980
3065
  }
2981
- function qt(e, t) {
3066
+ function Jt(e, t) {
2982
3067
  if (t.length === 0) return "";
2983
3068
  if (t.length === 1) return t[0].className;
2984
3069
  let n = t[0], r = Math.abs(e - n.position);
@@ -2988,11 +3073,11 @@ function qt(e, t) {
2988
3073
  }
2989
3074
  return n.className;
2990
3075
  }
2991
- function Jt(e) {
2992
- let { field: t, data: n, min: i, max: o, stops: s = Gt } = e, [c, l] = a(() => Kt(n, t), [n, t]), u = i ?? c, d = o ?? l;
3076
+ function Yt(e) {
3077
+ let { field: t, data: n, min: i, max: o, stops: s = Kt } = e, [c, l] = a(() => qt(n, t), [n, t]), u = i ?? c, d = o ?? l;
2993
3078
  return r((e) => {
2994
3079
  let n = Number(e[t]);
2995
- if (Number.isFinite(n)) return d === u ? s.length > 0 ? s[0].className : void 0 : qt(Math.max(0, Math.min(1, (n - u) / (d - u))), s);
3080
+ if (Number.isFinite(n)) return d === u ? s.length > 0 ? s[0].className : void 0 : Jt(Math.max(0, Math.min(1, (n - u) / (d - u))), s);
2996
3081
  }, [
2997
3082
  t,
2998
3083
  u,
@@ -3002,8 +3087,8 @@ function Jt(e) {
3002
3087
  }
3003
3088
  //#endregion
3004
3089
  //#region src/useGroupReorder.ts
3005
- var Yt = "text/x-group-key";
3006
- function Xt({ groupKeys: e }) {
3090
+ var Xt = "text/x-group-key";
3091
+ function Zt({ groupKeys: e }) {
3007
3092
  let [t, n] = s(e), [a, o] = s(null);
3008
3093
  return i(() => {
3009
3094
  n((t) => {
@@ -3022,14 +3107,14 @@ function Xt({ groupKeys: e }) {
3022
3107
  });
3023
3108
  }, []),
3024
3109
  onDragStart: r((e, t) => {
3025
- e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData(Yt, t), o(t);
3110
+ e.dataTransfer.effectAllowed = "move", e.dataTransfer.setData(Xt, t), o(t);
3026
3111
  }, []),
3027
3112
  onDragOver: r((e) => {
3028
3113
  e.preventDefault(), e.dataTransfer.dropEffect = "move";
3029
3114
  }, []),
3030
3115
  onDrop: r((e, t) => {
3031
3116
  e.preventDefault();
3032
- let r = e.dataTransfer.getData(Yt);
3117
+ let r = e.dataTransfer.getData(Xt);
3033
3118
  !r || r === t || n((e) => {
3034
3119
  let n = e.indexOf(r), i = e.indexOf(t);
3035
3120
  if (n === -1 || i === -1) return e;
@@ -3045,7 +3130,7 @@ function Xt({ groupKeys: e }) {
3045
3130
  }
3046
3131
  //#endregion
3047
3132
  //#region src/FormulaBar.tsx
3048
- function Zt({ value: e, onChange: t, onConfirm: n, onCancel: a, activeCell: c, disabled: l = !1, className: u }) {
3133
+ function Qt({ value: e, onChange: t, onConfirm: n, onCancel: a, activeCell: c, disabled: l = !1, className: u }) {
3049
3134
  let [d, f] = s(!1), [p, m] = s(e), h = o(null);
3050
3135
  i(() => {
3051
3136
  d || m(e);
@@ -3105,7 +3190,7 @@ function Zt({ value: e, onChange: t, onConfirm: n, onCancel: a, activeCell: c, d
3105
3190
  }
3106
3191
  //#endregion
3107
3192
  //#region src/SplitPaneGrid.tsx
3108
- function Qt({ frozenWidth: e, onResize: t, minFrozenWidth: n = 100, minScrollableWidth: i = 200, left: a, right: c, className: l }) {
3193
+ function $t({ frozenWidth: e, onResize: t, minFrozenWidth: n = 100, minScrollableWidth: i = 200, left: a, right: c, className: l }) {
3109
3194
  let u = o(null), [d, f] = s(e), p = o(!1), m = o(0), h = o(0), g = t ? e : d, _ = r((e) => {
3110
3195
  e.preventDefault(), p.current = !0, m.current = e.clientX, h.current = g;
3111
3196
  let r = (e) => {
@@ -3147,15 +3232,15 @@ function Qt({ frozenWidth: e, onResize: t, minFrozenWidth: n = 100, minScrollabl
3147
3232
  }
3148
3233
  //#endregion
3149
3234
  //#region src/index.tsx
3150
- var $t = ({ schema: e, ...t }) => {
3235
+ var en = ({ schema: e, ...t }) => {
3151
3236
  let { dataSource: n } = _() || {};
3152
- return /* @__PURE__ */ (0, Z.jsx)(st, {
3237
+ return /* @__PURE__ */ (0, Z.jsx)(ct, {
3153
3238
  schema: e,
3154
3239
  dataSource: n,
3155
3240
  ...t
3156
3241
  });
3157
3242
  };
3158
- c.register("object-grid", $t, {
3243
+ c.register("object-grid", en, {
3159
3244
  namespace: "plugin-grid",
3160
3245
  label: "Object Grid",
3161
3246
  category: "plugin",
@@ -3177,7 +3262,7 @@ c.register("object-grid", $t, {
3177
3262
  label: "Filters"
3178
3263
  }
3179
3264
  ]
3180
- }), c.register("grid", $t, {
3265
+ }), c.register("grid", en, {
3181
3266
  namespace: "view",
3182
3267
  label: "Data Grid",
3183
3268
  category: "view",
@@ -3201,7 +3286,7 @@ c.register("object-grid", $t, {
3201
3286
  ]
3202
3287
  }), c.register("import-wizard", ({ schema: e, ...t }) => {
3203
3288
  let { dataSource: n } = _() || {};
3204
- return /* @__PURE__ */ (0, Z.jsx)(Vt, {
3289
+ return /* @__PURE__ */ (0, Z.jsx)(Ht, {
3205
3290
  objectName: e.objectName,
3206
3291
  objectLabel: e.objectLabel,
3207
3292
  fields: e.fields ?? [],
@@ -3225,4 +3310,4 @@ c.register("object-grid", $t, {
3225
3310
  }]
3226
3311
  });
3227
3312
  //#endregion
3228
- export { tt as BulkActionBar, Zt as FormulaBar, Je as GroupRow, Vt as ImportWizard, Ht as InlineEditing, st as ObjectGrid, $t as ObjectGridRenderer, et as RowActionMenu, Qt as SplitPaneGrid, Et as VirtualGrid, $e as formatActionLabel, Wt as useCellClipboard, Qe as useColumnSummary, Jt as useGradientColor, Xt as useGroupReorder, qe as useGroupedData, He as useRowColor };
3313
+ export { nt as BulkActionBar, Qt as FormulaBar, Ye as GroupRow, Ht as ImportWizard, Ut as InlineEditing, ct as ObjectGrid, en as ObjectGridRenderer, tt as RowActionMenu, $t as SplitPaneGrid, Dt as VirtualGrid, et as formatActionLabel, Gt as useCellClipboard, $e as useColumnSummary, Yt as useGradientColor, Zt as useGroupReorder, Je as useGroupedData, He as useRowColor };