@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/CHANGELOG.md +23 -0
- package/dist/index.js +311 -226
- package/dist/index.umd.cjs +7 -7
- package/dist/packages/plugin-grid/src/useGroupedData.d.ts +25 -4
- package/package.json +8 -8
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
|
|
282
|
-
|
|
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
|
|
286
|
-
|
|
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
|
-
}
|
|
318
|
+
}
|
|
319
|
+
return String(e);
|
|
289
320
|
}
|
|
290
|
-
function
|
|
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
|
|
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
|
|
326
|
-
let
|
|
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 (!
|
|
330
|
-
let e =
|
|
331
|
-
|
|
332
|
-
let
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
338
|
-
|
|
339
|
-
|
|
340
|
-
let
|
|
341
|
-
return {
|
|
342
|
-
|
|
343
|
-
|
|
344
|
-
|
|
345
|
-
|
|
346
|
-
|
|
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
|
-
|
|
355
|
-
n
|
|
391
|
+
l,
|
|
392
|
+
n,
|
|
393
|
+
i
|
|
356
394
|
]),
|
|
357
|
-
isGrouped:
|
|
395
|
+
isGrouped: c,
|
|
358
396
|
toggleGroup: r((e) => {
|
|
359
|
-
|
|
360
|
-
|
|
361
|
-
|
|
362
|
-
|
|
363
|
-
|
|
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
|
|
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
|
|
447
|
+
function Xe(e) {
|
|
407
448
|
return typeof e == "string" ? { type: e } : e;
|
|
408
449
|
}
|
|
409
|
-
function
|
|
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
|
|
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
|
|
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 =
|
|
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 =
|
|
492
|
+
} else o = Ze(e.type, a);
|
|
452
493
|
n.set(r.field, {
|
|
453
494
|
field: r.field,
|
|
454
495
|
value: o,
|
|
455
|
-
label:
|
|
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
|
|
507
|
+
function et(e) {
|
|
467
508
|
return e.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
|
|
468
509
|
}
|
|
469
|
-
var
|
|
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:
|
|
536
|
+
children: et(t)
|
|
496
537
|
}, t))
|
|
497
538
|
]
|
|
498
|
-
})] }),
|
|
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:
|
|
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
|
-
}),
|
|
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
|
|
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 =
|
|
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 =
|
|
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
|
|
594
|
+
function at(e) {
|
|
554
595
|
if (e != null) return typeof e == "string" ? e : void 0;
|
|
555
596
|
}
|
|
556
|
-
function
|
|
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
|
|
609
|
+
function st(e) {
|
|
569
610
|
if (!(!e || e.length === 0)) return typeof e[0] == "object" && e[0], e;
|
|
570
611
|
}
|
|
571
|
-
var
|
|
572
|
-
let [E, ie] = s([]), [D, O] = s(!0), [k, A] = s(null), { t: M } =
|
|
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 =
|
|
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 =
|
|
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]),
|
|
726
|
-
let t =
|
|
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),
|
|
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 =
|
|
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 =
|
|
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:
|
|
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
|
-
]),
|
|
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 =
|
|
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 =
|
|
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
|
-
|
|
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
|
|
1136
|
-
if (W.widths && (
|
|
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
|
-
|
|
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,
|
|
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)(
|
|
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
|
-
}] :
|
|
1163
|
-
...
|
|
1164
|
-
...
|
|
1165
|
-
...
|
|
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,
|
|
1168
|
-
cellClassName: [e.cellClassName,
|
|
1246
|
+
className: [e.className, vt].filter(Boolean).join(" "),
|
|
1247
|
+
cellClassName: [e.cellClassName, vt].filter(Boolean).join(" ")
|
|
1169
1248
|
}))
|
|
1170
|
-
] :
|
|
1171
|
-
e.selection?.type ?
|
|
1172
|
-
let
|
|
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:
|
|
1254
|
+
columns: yt,
|
|
1176
1255
|
data: E,
|
|
1177
|
-
pagination:
|
|
1178
|
-
pageSize:
|
|
1179
|
-
searchable:
|
|
1180
|
-
selectable:
|
|
1256
|
+
pagination: wt,
|
|
1257
|
+
pageSize: Tt,
|
|
1258
|
+
searchable: Et,
|
|
1259
|
+
selectable: Ct,
|
|
1181
1260
|
sortable: !0,
|
|
1182
1261
|
exportable: $?.export,
|
|
1183
|
-
rowActions: !!(e.editable &&
|
|
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:
|
|
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
|
-
},
|
|
1219
|
-
...
|
|
1297
|
+
}, Ot = (e) => ({
|
|
1298
|
+
...Dt,
|
|
1220
1299
|
caption: void 0,
|
|
1221
1300
|
data: e,
|
|
1222
1301
|
pagination: !1,
|
|
1223
1302
|
searchable: !1
|
|
1224
|
-
}),
|
|
1225
|
-
if (R && E.length > 0 && !
|
|
1226
|
-
let e =
|
|
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:
|
|
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
|
|
1426
|
+
let At = () => {
|
|
1348
1427
|
he((e) => e === "compact" ? "short" : e === "short" ? "medium" : e === "medium" ? "tall" : e === "tall" ? "extra_tall" : "compact");
|
|
1349
|
-
},
|
|
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],
|
|
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: [
|
|
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:
|
|
1440
|
+
onClick: At,
|
|
1362
1441
|
title: `Row height: ${U}`,
|
|
1363
|
-
children: [/* @__PURE__ */ (0, Z.jsx)(
|
|
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: () =>
|
|
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,
|
|
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
|
-
},
|
|
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:
|
|
1487
|
-
let t =
|
|
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,
|
|
1499
|
-
|
|
1500
|
-
children:
|
|
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:
|
|
1507
|
-
children: /* @__PURE__ */ (0, Z.jsx)(
|
|
1508
|
-
|
|
1509
|
-
|
|
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:
|
|
1603
|
+
title: kt,
|
|
1519
1604
|
mainContent: /* @__PURE__ */ (0, Z.jsxs)(Z.Fragment, { children: [
|
|
1520
|
-
|
|
1521
|
-
|
|
1522
|
-
/* @__PURE__ */ (0, Z.jsx)(
|
|
1605
|
+
Nt,
|
|
1606
|
+
Lt,
|
|
1607
|
+
/* @__PURE__ */ (0, Z.jsx)(nt, {
|
|
1523
1608
|
selectedRows: ge,
|
|
1524
|
-
actions:
|
|
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) =>
|
|
1533
|
-
}),
|
|
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
|
-
|
|
1543
|
-
|
|
1544
|
-
/* @__PURE__ */ (0, Z.jsx)(
|
|
1627
|
+
Nt,
|
|
1628
|
+
Lt,
|
|
1629
|
+
/* @__PURE__ */ (0, Z.jsx)(nt, {
|
|
1545
1630
|
selectedRows: ge,
|
|
1546
|
-
actions:
|
|
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:
|
|
1556
|
-
children: (e) =>
|
|
1640
|
+
title: kt,
|
|
1641
|
+
children: (e) => Pt(e)
|
|
1557
1642
|
}),
|
|
1558
|
-
|
|
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
|
|
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
|
|
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,
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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(
|
|
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(
|
|
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
|
-
},
|
|
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 &&
|
|
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,
|
|
1653
|
-
let l = e.options.useScrollendEvent &&
|
|
1654
|
-
return l && n.addEventListener("scrollend", c,
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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:
|
|
1710
|
-
rangeExtractor:
|
|
1794
|
+
getItemKey: pt,
|
|
1795
|
+
rangeExtractor: mt,
|
|
1711
1796
|
onChange: () => {},
|
|
1712
|
-
measureElement:
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 =
|
|
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 ?
|
|
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 =
|
|
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 =
|
|
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
|
|
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
|
-
},
|
|
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
|
|
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 =
|
|
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
|
|
2058
|
-
function
|
|
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
|
|
2066
|
-
return a.setOptions(i),
|
|
2150
|
+
}, [a] = e.useState(() => new xt(i));
|
|
2151
|
+
return a.setOptions(i), wt(() => a._didMount(), []), wt(() => a._willUpdate()), a;
|
|
2067
2152
|
}
|
|
2068
|
-
function
|
|
2069
|
-
return
|
|
2070
|
-
observeElementRect:
|
|
2071
|
-
observeElementOffset:
|
|
2072
|
-
scrollToFn:
|
|
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
|
|
2079
|
-
let u = o(null), d =
|
|
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
|
-
},
|
|
2147
|
-
function
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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
|
|
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 && !
|
|
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
|
|
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 =
|
|
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
|
-
},
|
|
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
|
-
},
|
|
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)(
|
|
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
|
-
},
|
|
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,
|
|
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 && !
|
|
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
|
-
},
|
|
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 ?
|
|
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(
|
|
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(
|
|
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:
|
|
2637
|
+
mapping: Ft(v, S),
|
|
2553
2638
|
updatedAt: Date.now()
|
|
2554
2639
|
}, n = [...F, t];
|
|
2555
|
-
I(n), R(t.id),
|
|
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),
|
|
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(
|
|
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 } =
|
|
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)(
|
|
2705
|
-
g === "mapping" && /* @__PURE__ */ (0, Z.jsx)(
|
|
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)(
|
|
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
|
|
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
|
|
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
|
|
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 } =
|
|
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 } =
|
|
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
|
|
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
|
|
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
|
|
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
|
|
2992
|
-
let { field: t, data: n, min: i, max: o, stops: s =
|
|
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 :
|
|
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
|
|
3006
|
-
function
|
|
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(
|
|
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(
|
|
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
|
|
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
|
|
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
|
|
3235
|
+
var en = ({ schema: e, ...t }) => {
|
|
3151
3236
|
let { dataSource: n } = _() || {};
|
|
3152
|
-
return /* @__PURE__ */ (0, Z.jsx)(
|
|
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",
|
|
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",
|
|
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)(
|
|
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 {
|
|
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 };
|