@object-ui/plugin-list 14.0.0 → 15.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +95 -0
- package/dist/ListView.d.ts +26 -5
- package/dist/ListView.d.ts.map +1 -1
- package/dist/index.js +285 -329
- package/dist/index.umd.cjs +2 -2
- package/package.json +16 -16
package/dist/index.js
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { ComponentRegistry as e, buildExpandFields as t, buildExportFileName as n,
|
|
1
|
+
import { ComponentRegistry as e, buildExpandFields as t, buildExportFileName as n, getRecordDisplayName as r, resolveConditionalFormatting as i } from "@object-ui/core";
|
|
2
2
|
import * as a from "react";
|
|
3
3
|
import { useCallback as o, useContext as s, useEffect as c, useMemo as l, useState as u } from "react";
|
|
4
4
|
import { Button as d, Card as f, CardContent as p, DataEmptyState as m, DropdownMenu as h, DropdownMenuContent as g, DropdownMenuItem as _, DropdownMenuTrigger as v, FilterBuilder as ee, GroupingEditor as y, Input as b, LookupValuePicker as x, NavigationOverlay as te, Popover as S, PopoverContent as C, PopoverTrigger as w, RefreshIndicator as T, SortBuilder as ne, cn as E } from "@object-ui/components";
|
|
@@ -6,9 +6,10 @@ import { Activity as D, AlertTriangle as re, ArrowUpDown as O, BarChart3 as ie,
|
|
|
6
6
|
import { Fragment as ke, jsx as I, jsxs as L } from "react/jsx-runtime";
|
|
7
7
|
import { useObjectLabel as Ae, useObjectTranslation as R, useSafeFieldLabel as je } from "@object-ui/i18n";
|
|
8
8
|
import { SchemaRenderer as Me, SchemaRendererContext as Ne, useDataScope as Pe, useDensityMode as Fe, useNavigationOverlay as Ie, useSafeFieldLabel as Le } from "@object-ui/react";
|
|
9
|
-
import {
|
|
10
|
-
import {
|
|
11
|
-
import {
|
|
9
|
+
import { detectStatusField as Re } from "@object-ui/types";
|
|
10
|
+
import { usePullToRefresh as ze } from "@object-ui/mobile";
|
|
11
|
+
import { usePermissions as Be } from "@object-ui/permissions";
|
|
12
|
+
import { getCellRenderer as Ve, resolveCellRendererType as He } from "@object-ui/fields";
|
|
12
13
|
//#region src/ViewSwitcher.tsx
|
|
13
14
|
var z = {
|
|
14
15
|
grid: /* @__PURE__ */ I(ue, { className: "h-4 w-4" }),
|
|
@@ -30,7 +31,7 @@ var z = {
|
|
|
30
31
|
map: "Map",
|
|
31
32
|
chart: "Chart",
|
|
32
33
|
tree: "Tree"
|
|
33
|
-
},
|
|
34
|
+
}, Ue = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
|
|
34
35
|
let [o, s] = a.useState(!1), c = a.useCallback((t) => {
|
|
35
36
|
s(!1), t !== e && (i && typeof document < "u" && "startViewTransition" in document ? document.startViewTransition(() => n(t)) : n(t));
|
|
36
37
|
}, [
|
|
@@ -97,7 +98,7 @@ var z = {
|
|
|
97
98
|
}, t))
|
|
98
99
|
})]
|
|
99
100
|
});
|
|
100
|
-
},
|
|
101
|
+
}, We = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
|
|
101
102
|
let o = a.useCallback((t) => {
|
|
102
103
|
if (!i || t === e) {
|
|
103
104
|
n(t);
|
|
@@ -131,7 +132,7 @@ var z = {
|
|
|
131
132
|
};
|
|
132
133
|
//#endregion
|
|
133
134
|
//#region src/components/ViewSettingsPopover.tsx
|
|
134
|
-
function
|
|
135
|
+
function Ge({ title: e, badge: t, onClear: n, clearLabel: r, defaultOpen: i = !0, children: o }) {
|
|
135
136
|
let [s, c] = a.useState(i);
|
|
136
137
|
return /* @__PURE__ */ L("div", {
|
|
137
138
|
className: "border-b last:border-b-0",
|
|
@@ -161,7 +162,7 @@ function We({ title: e, badge: t, onClear: n, clearLabel: r, defaultOpen: i = !0
|
|
|
161
162
|
})]
|
|
162
163
|
});
|
|
163
164
|
}
|
|
164
|
-
function
|
|
165
|
+
function Ke(e) {
|
|
165
166
|
let { t, allFields: n, showGroup: r, groupingConfig: i, setGroupingConfig: o, showColor: s, rowColorConfig: c, setRowColorConfig: l, showDensity: u, density: f, showHideFields: p, hiddenFields: m, updateHiddenFields: h, showInlineEdit: g, inlineEdit: _, setInlineEdit: v } = e, [ee, b] = a.useState(!1), x = [
|
|
166
167
|
!!i?.fields?.length,
|
|
167
168
|
!!c?.field,
|
|
@@ -208,7 +209,7 @@ function Ge(e) {
|
|
|
208
209
|
children: t("list.viewSettingsHint", { defaultValue: "Grouping, color, density, and visible fields." })
|
|
209
210
|
})]
|
|
210
211
|
}),
|
|
211
|
-
r && o && /* @__PURE__ */ I(
|
|
212
|
+
r && o && /* @__PURE__ */ I(Ge, {
|
|
212
213
|
title: t("list.group", { defaultValue: "Group" }),
|
|
213
214
|
badge: i?.fields?.length || 0,
|
|
214
215
|
onClear: i ? () => o(void 0) : void 0,
|
|
@@ -228,7 +229,7 @@ function Ge(e) {
|
|
|
228
229
|
onChange: (e) => o(e)
|
|
229
230
|
})
|
|
230
231
|
}),
|
|
231
|
-
s && l && /* @__PURE__ */ L(
|
|
232
|
+
s && l && /* @__PURE__ */ L(Ge, {
|
|
232
233
|
title: t("list.color", { defaultValue: "Row color" }),
|
|
233
234
|
onClear: c ? () => l(void 0) : void 0,
|
|
234
235
|
clearLabel: t("list.clear", { defaultValue: "Clear" }),
|
|
@@ -256,7 +257,7 @@ function Ge(e) {
|
|
|
256
257
|
}, e.name))]
|
|
257
258
|
})]
|
|
258
259
|
}),
|
|
259
|
-
u && f && /* @__PURE__ */ I(
|
|
260
|
+
u && f && /* @__PURE__ */ I(Ge, {
|
|
260
261
|
title: t("grid.toolbar.densityMode", { defaultValue: "Density" }),
|
|
261
262
|
defaultOpen: f.mode !== "compact",
|
|
262
263
|
children: /* @__PURE__ */ L("div", {
|
|
@@ -277,7 +278,7 @@ function Ge(e) {
|
|
|
277
278
|
})]
|
|
278
279
|
})
|
|
279
280
|
}),
|
|
280
|
-
g && v && /* @__PURE__ */ I(
|
|
281
|
+
g && v && /* @__PURE__ */ I(Ge, {
|
|
281
282
|
title: t("list.recordEditingTitle", { defaultValue: "Record editing" }),
|
|
282
283
|
defaultOpen: !!_,
|
|
283
284
|
children: /* @__PURE__ */ L("label", {
|
|
@@ -291,7 +292,7 @@ function Ge(e) {
|
|
|
291
292
|
}), /* @__PURE__ */ I("span", { children: t("list.inlineEditLabel", { defaultValue: "Edit records inline (click a cell to edit)" }) })]
|
|
292
293
|
})
|
|
293
294
|
}),
|
|
294
|
-
p && m && h && /* @__PURE__ */ I(
|
|
295
|
+
p && m && h && /* @__PURE__ */ I(Ge, {
|
|
295
296
|
title: t("list.hideFieldsTitle", { defaultValue: "Hide fields" }),
|
|
296
297
|
badge: m.size,
|
|
297
298
|
onClear: m.size > 0 ? () => h(/* @__PURE__ */ new Set()) : void 0,
|
|
@@ -322,7 +323,7 @@ function Ge(e) {
|
|
|
322
323
|
}
|
|
323
324
|
//#endregion
|
|
324
325
|
//#region src/UserFilters.tsx
|
|
325
|
-
function
|
|
326
|
+
function qe() {
|
|
326
327
|
try {
|
|
327
328
|
let { t: e } = R(), t = e("common.more");
|
|
328
329
|
return !t || t === "common.more" ? "More" : t;
|
|
@@ -336,7 +337,7 @@ var V = /* @__PURE__ */ new Set([
|
|
|
336
337
|
"user",
|
|
337
338
|
"owner"
|
|
338
339
|
]);
|
|
339
|
-
function
|
|
340
|
+
function Je(e) {
|
|
340
341
|
switch (e) {
|
|
341
342
|
case void 0:
|
|
342
343
|
case "equals":
|
|
@@ -359,15 +360,15 @@ function H(e) {
|
|
|
359
360
|
label: typeof e.label == "string" ? e.label : e.label?.toString?.() ?? e.id ?? e.name,
|
|
360
361
|
filters: Array.isArray(e.filters) ? e.filters : Array.isArray(e.filter) ? e.filter.filter((e) => e && typeof e.field == "string").map((e) => [
|
|
361
362
|
e.field,
|
|
362
|
-
|
|
363
|
+
Je(e.operator),
|
|
363
364
|
e.value
|
|
364
365
|
]) : [],
|
|
365
366
|
default: e.default ?? e.isDefault
|
|
366
367
|
}));
|
|
367
368
|
}
|
|
368
|
-
function
|
|
369
|
+
function Ye({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisible: i, className: a, initialSelections: o, onSelectionsChange: s }) {
|
|
369
370
|
switch (e.element) {
|
|
370
|
-
case "dropdown": return /* @__PURE__ */ I(
|
|
371
|
+
case "dropdown": return /* @__PURE__ */ I(Xe, {
|
|
371
372
|
fields: e.fields || [],
|
|
372
373
|
objectDef: t,
|
|
373
374
|
data: n,
|
|
@@ -377,7 +378,7 @@ function Je({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisib
|
|
|
377
378
|
initialSelections: o,
|
|
378
379
|
onSelectionsChange: s
|
|
379
380
|
});
|
|
380
|
-
case "tabs": return /* @__PURE__ */ I(
|
|
381
|
+
case "tabs": return /* @__PURE__ */ I(Ze, {
|
|
381
382
|
tabs: H(e.tabs || []),
|
|
382
383
|
showAllRecords: e.showAllRecords !== !1,
|
|
383
384
|
allowAddTab: e.allowAddTab,
|
|
@@ -391,10 +392,10 @@ function Je({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisib
|
|
|
391
392
|
}
|
|
392
393
|
function U(e, t, n, r) {
|
|
393
394
|
return e.map((e) => {
|
|
394
|
-
let i = e.options ? [...e.options] : [], a = e.type, o, s, c;
|
|
395
|
+
let i = e.options ? [...e.options] : [], a = e.type, o, s, c, l;
|
|
395
396
|
if (t?.fields) {
|
|
396
397
|
let n = Array.isArray(t.fields) ? t.fields.find((t) => t.name === e.field) : t.fields[e.field];
|
|
397
|
-
n && (a ||= n.type, o = n.reference_to ?? n.reference, s = n.display_field ?? n.reference_field, c = n.id_field, i.length === 0 && n.options && (i = Array.isArray(n.options) ? n.options.map((e) => ({
|
|
398
|
+
n && (a ||= n.type, l = n.label, o = n.reference_to ?? n.reference, s = n.display_field ?? n.reference_field, c = n.id_field, i.length === 0 && n.options && (i = Array.isArray(n.options) ? n.options.map((e) => ({
|
|
398
399
|
label: e.label ?? String(e.value ?? e),
|
|
399
400
|
value: e.value ?? e,
|
|
400
401
|
color: e.color
|
|
@@ -414,10 +415,15 @@ function U(e, t, n, r) {
|
|
|
414
415
|
...t,
|
|
415
416
|
count: n.filter((n) => n[e.field] === t.value).length
|
|
416
417
|
})));
|
|
417
|
-
let
|
|
418
|
-
|
|
418
|
+
let u = e.label ?? l;
|
|
419
|
+
if (r?.objectName) {
|
|
420
|
+
i = r.translateOptions(r.objectName, e.field, i);
|
|
421
|
+
let t = e.label || l, n = r.fieldLabel(r.objectName, e.field, t || e.field);
|
|
422
|
+
u = n === e.field && t ? t : n;
|
|
423
|
+
}
|
|
424
|
+
return {
|
|
419
425
|
...e,
|
|
420
|
-
label:
|
|
426
|
+
label: u,
|
|
421
427
|
type: a,
|
|
422
428
|
options: i,
|
|
423
429
|
referenceTo: o,
|
|
@@ -426,8 +432,8 @@ function U(e, t, n, r) {
|
|
|
426
432
|
};
|
|
427
433
|
});
|
|
428
434
|
}
|
|
429
|
-
function
|
|
430
|
-
let { fieldLabel: l, translateOptions: u } = je(), d =
|
|
435
|
+
function Xe({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i, className: o, initialSelections: s, onSelectionsChange: c }) {
|
|
436
|
+
let { fieldLabel: l, translateOptions: u } = je(), d = qe(), f = t?.name, [p, m] = a.useState(() => {
|
|
431
437
|
let t = {};
|
|
432
438
|
return e.forEach((e) => {
|
|
433
439
|
e.defaultValues && e.defaultValues.length > 0 && (t[e.field] = e.defaultValues);
|
|
@@ -595,7 +601,7 @@ function Ye({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i
|
|
|
595
601
|
})] })] })
|
|
596
602
|
});
|
|
597
603
|
}
|
|
598
|
-
function
|
|
604
|
+
function Ze({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, className: i, initialTab: o, onSelectionsChange: s }) {
|
|
599
605
|
let [c, l] = a.useState(() => o && (o === "__all__" || e.some((e) => e.id === o)) ? o : e.find((e) => e.default)?.id || (t ? "__all__" : e[0]?.id || "")), u = a.useCallback((t) => {
|
|
600
606
|
l(t), r(t === "__all__" ? [] : e.find((e) => e.id === t)?.filters || []), s?.({ _tab: [t] });
|
|
601
607
|
}, [
|
|
@@ -636,7 +642,7 @@ function Xe({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, cla
|
|
|
636
642
|
}
|
|
637
643
|
//#endregion
|
|
638
644
|
//#region src/ListView.tsx
|
|
639
|
-
function
|
|
645
|
+
function Qe(e) {
|
|
640
646
|
switch (e) {
|
|
641
647
|
case "equals":
|
|
642
648
|
case "eq": return "=";
|
|
@@ -685,15 +691,32 @@ function W(e) {
|
|
|
685
691
|
e
|
|
686
692
|
])] : e;
|
|
687
693
|
}
|
|
688
|
-
function
|
|
694
|
+
function $e(e) {
|
|
695
|
+
let t = typeof e == "string" ? [e] : Array.isArray(e) ? e : [], n = [];
|
|
696
|
+
for (let e of t) if (typeof e == "string") {
|
|
697
|
+
let t = e.trim().split(/\s+/);
|
|
698
|
+
if (!t[0]) continue;
|
|
699
|
+
n.push({
|
|
700
|
+
id: crypto.randomUUID(),
|
|
701
|
+
field: t[0],
|
|
702
|
+
order: t[1]?.toLowerCase() === "desc" ? "desc" : "asc"
|
|
703
|
+
});
|
|
704
|
+
} else e && typeof e == "object" && typeof e.field == "string" && n.push({
|
|
705
|
+
id: crypto.randomUUID(),
|
|
706
|
+
field: e.field,
|
|
707
|
+
order: e.order || "asc"
|
|
708
|
+
});
|
|
709
|
+
return n;
|
|
710
|
+
}
|
|
711
|
+
function et(e) {
|
|
689
712
|
return e.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
|
|
690
713
|
}
|
|
691
|
-
function
|
|
714
|
+
function tt(e) {
|
|
692
715
|
return !Array.isArray(e) || e.length === 0 ? [] : e.map((e) => Array.isArray(e) ? W(e) : e).filter((e) => Array.isArray(e) && e.length > 0);
|
|
693
716
|
}
|
|
694
|
-
function
|
|
717
|
+
function nt(e) {
|
|
695
718
|
if (!e || !e.conditions || e.conditions.length === 0) return [];
|
|
696
|
-
let t =
|
|
719
|
+
let t = tt(e.conditions.filter((e) => {
|
|
697
720
|
if (e.operator === "isEmpty" || e.operator === "isNotEmpty") return !0;
|
|
698
721
|
let t = e.value;
|
|
699
722
|
return !(t == null || t === "" || Array.isArray(t) && t.length === 0);
|
|
@@ -707,47 +730,15 @@ function et(e) {
|
|
|
707
730
|
null
|
|
708
731
|
] : [
|
|
709
732
|
e.field,
|
|
710
|
-
|
|
733
|
+
Qe(e.operator),
|
|
711
734
|
e.value
|
|
712
735
|
]));
|
|
713
736
|
return t.length === 0 ? [] : t.length === 1 ? t[0] : [e.logic, ...t];
|
|
714
737
|
}
|
|
715
|
-
function
|
|
716
|
-
|
|
717
|
-
for (let n of t) {
|
|
718
|
-
let t = !1, i = ("condition" in n ? n.condition : void 0) || ("expression" in n ? n.expression : void 0) || void 0;
|
|
719
|
-
if (i) t = r(i, e);
|
|
720
|
-
else if ("field" in n && "operator" in n && n.field && n.operator) {
|
|
721
|
-
let r = e[n.field];
|
|
722
|
-
switch (n.operator) {
|
|
723
|
-
case "equals":
|
|
724
|
-
t = r === n.value;
|
|
725
|
-
break;
|
|
726
|
-
case "not_equals":
|
|
727
|
-
t = r !== n.value;
|
|
728
|
-
break;
|
|
729
|
-
case "contains":
|
|
730
|
-
t = typeof r == "string" && typeof n.value == "string" && r.includes(n.value);
|
|
731
|
-
break;
|
|
732
|
-
case "greater_than":
|
|
733
|
-
t = typeof r == "number" && typeof n.value == "number" && r > n.value;
|
|
734
|
-
break;
|
|
735
|
-
case "less_than":
|
|
736
|
-
t = typeof r == "number" && typeof n.value == "number" && r < n.value;
|
|
737
|
-
break;
|
|
738
|
-
case "in":
|
|
739
|
-
t = Array.isArray(n.value) && n.value.includes(r);
|
|
740
|
-
break;
|
|
741
|
-
}
|
|
742
|
-
}
|
|
743
|
-
if (t) {
|
|
744
|
-
let e = {};
|
|
745
|
-
return "style" in n && n.style && Object.assign(e, n.style), "backgroundColor" in n && n.backgroundColor && (e.backgroundColor = n.backgroundColor), "textColor" in n && n.textColor && (e.color = n.textColor), "borderColor" in n && n.borderColor && (e.borderColor = n.borderColor), e;
|
|
746
|
-
}
|
|
747
|
-
}
|
|
748
|
-
return {};
|
|
738
|
+
function G(e, t, n) {
|
|
739
|
+
return i(e, t, n);
|
|
749
740
|
}
|
|
750
|
-
var
|
|
741
|
+
var K = {
|
|
751
742
|
"list.recordCount": "{{count}} records",
|
|
752
743
|
"list.recordCountOne": "{{count}} record",
|
|
753
744
|
"list.noItems": "No items found",
|
|
@@ -794,8 +785,8 @@ var G = {
|
|
|
794
785
|
"grid.toolbar.densityCycleShortHint": "Click to cycle",
|
|
795
786
|
"list.viewSettings": "View settings",
|
|
796
787
|
"list.viewSettingsHint": "Grouping, color, density, and visible fields."
|
|
797
|
-
},
|
|
798
|
-
let n =
|
|
788
|
+
}, rt = (e, t) => {
|
|
789
|
+
let n = K[e] || e;
|
|
799
790
|
if (t) for (let [e, r] of Object.entries(t)) n = n.replace(`{{${e}}}`, String(r));
|
|
800
791
|
return n;
|
|
801
792
|
};
|
|
@@ -808,27 +799,19 @@ function it() {
|
|
|
808
799
|
}
|
|
809
800
|
}
|
|
810
801
|
function at() {
|
|
811
|
-
|
|
812
|
-
|
|
813
|
-
|
|
814
|
-
|
|
815
|
-
|
|
816
|
-
|
|
817
|
-
};
|
|
818
|
-
} catch {
|
|
819
|
-
return {
|
|
820
|
-
fieldLabel: nt,
|
|
821
|
-
actionLabel: void 0,
|
|
822
|
-
objectLabel: void 0
|
|
823
|
-
};
|
|
824
|
-
}
|
|
802
|
+
let { fieldLabel: e, actionLabel: t, objectLabel: n } = Ae();
|
|
803
|
+
return {
|
|
804
|
+
fieldLabel: e,
|
|
805
|
+
actionLabel: t,
|
|
806
|
+
objectLabel: n
|
|
807
|
+
};
|
|
825
808
|
}
|
|
826
|
-
var
|
|
809
|
+
var ot = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange: o, onSortChange: s, onSearchChange: c, onHiddenFieldsChange: l, onInlineEditChange: u, onColumnStateChange: f, onRowClick: p, showViewSwitcher: h, userFilterSelections: g, onUserFilterSelectionsChange: _, initialFilters: v, initialSearchTerm: x, ...D }, ie) => {
|
|
827
810
|
let k = h ?? e?.showViewSwitcher ?? !1, { t: A } = it(), { fieldLabel: j, actionLabel: oe, objectLabel: le } = at(), { translateOptions: ue } = je(), M = a.useMemo(() => e.viewType && e.viewType !== "list" ? e : {
|
|
828
811
|
...e,
|
|
829
812
|
viewType: "grid"
|
|
830
813
|
}, [e]), N = a.useCallback((e, t) => M.objectName ? j(M.objectName, e, t) : t, [M.objectName, j]), pe = a.useCallback((e) => {
|
|
831
|
-
let t =
|
|
814
|
+
let t = et(e);
|
|
832
815
|
return M.objectName && typeof oe == "function" ? oe(M.objectName, e, t) : t;
|
|
833
816
|
}, [M.objectName, oe]), P = a.useMemo(() => {
|
|
834
817
|
let e = M.userActions, t = M.addRecord?.enabled === !0 && e?.addRecordForm !== !1;
|
|
@@ -856,49 +839,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
856
839
|
M.compactToolbar,
|
|
857
840
|
M.addRecord,
|
|
858
841
|
M.userActions?.addRecordForm
|
|
859
|
-
]), [F, Ae] = a.useState(M.viewType), [R, Ne] = a.useState(() => x ?? ""), [Pe, Le] = a.useState(!1), [
|
|
860
|
-
if (typeof e == "string") {
|
|
861
|
-
let t = e.trim().split(/\s+/);
|
|
862
|
-
return {
|
|
863
|
-
id: crypto.randomUUID(),
|
|
864
|
-
field: t[0],
|
|
865
|
-
order: t[1]?.toLowerCase() === "desc" ? "desc" : "asc"
|
|
866
|
-
};
|
|
867
|
-
}
|
|
868
|
-
return {
|
|
869
|
-
id: crypto.randomUUID(),
|
|
870
|
-
field: e.field,
|
|
871
|
-
order: e.order || "asc"
|
|
872
|
-
};
|
|
873
|
-
}) : []), Ue = a.useMemo(() => JSON.stringify(M.sort || []), [M.sort]);
|
|
842
|
+
]), [F, Ae] = a.useState(M.viewType), [R, Ne] = a.useState(() => x ?? ""), [Pe, Le] = a.useState(!1), [Ve, He] = a.useState(!1), [z, B] = a.useState(() => $e(M.sort)), We = a.useMemo(() => JSON.stringify(M.sort || []), [M.sort]);
|
|
874
843
|
a.useEffect(() => {
|
|
875
|
-
|
|
876
|
-
|
|
877
|
-
|
|
878
|
-
return {
|
|
879
|
-
id: crypto.randomUUID(),
|
|
880
|
-
field: t[0],
|
|
881
|
-
order: t[1]?.toLowerCase() === "desc" ? "desc" : "asc"
|
|
882
|
-
};
|
|
883
|
-
}
|
|
884
|
-
return {
|
|
885
|
-
id: crypto.randomUUID(),
|
|
886
|
-
field: e.field,
|
|
887
|
-
order: e.order || "asc"
|
|
888
|
-
};
|
|
889
|
-
})) : B([]);
|
|
890
|
-
}, [Ue]);
|
|
891
|
-
let [We, Ke] = a.useState(!1), [V, qe] = a.useState(() => v && Array.isArray(v.conditions) ? v : {
|
|
844
|
+
B($e(M.sort));
|
|
845
|
+
}, [We]);
|
|
846
|
+
let [Ge, qe] = a.useState(!1), [V, Je] = a.useState(() => v && Array.isArray(v.conditions) ? v : {
|
|
892
847
|
id: "root",
|
|
893
848
|
logic: "and",
|
|
894
849
|
conditions: []
|
|
895
|
-
}), H = D.dataSource, [U,
|
|
896
|
-
a.useImperativeHandle(ie, () => ({ refresh: () =>
|
|
850
|
+
}), H = D.dataSource, [U, Xe] = a.useState([]), [Ze, Qe] = a.useState(null), [W, G] = a.useState(() => !(Array.isArray(M.data) || M.data && typeof M.data == "object" && M.data.provider === "value" && Array.isArray(M.data.items) || M.viewType === "gantt" && M.data && typeof M.data == "object" && !Array.isArray(M.data) && M.data.provider === "api")), [K, rt] = a.useState(null), [ot, st] = a.useState(!1), [ct, lt] = a.useState(0), [ut, dt] = a.useState(!1);
|
|
851
|
+
a.useImperativeHandle(ie, () => ({ refresh: () => lt((e) => e + 1) }), []), a.useEffect(() => {
|
|
897
852
|
if (!(!H?.onMutation || !M.objectName)) return H.onMutation((e) => {
|
|
898
|
-
e.resource === M.objectName &&
|
|
853
|
+
e.resource === M.objectName && lt((e) => e + 1);
|
|
899
854
|
});
|
|
900
855
|
}, [H, M.objectName]);
|
|
901
|
-
let [
|
|
856
|
+
let [ft, pt] = a.useState(void 0), q = ft ?? M.pagination?.pageSize ?? 100, [mt, ht] = a.useState(1), [gt, _t] = a.useState(null), vt = a.useMemo(() => {
|
|
902
857
|
if (M.grouping?.fields?.length) return M.grouping;
|
|
903
858
|
let e = typeof M.groupBy == "string" ? M.groupBy.trim() : "", t = typeof M.groupBy2 == "string" ? M.groupBy2.trim() : "", n = [];
|
|
904
859
|
return e && n.push({
|
|
@@ -914,19 +869,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
914
869
|
M.grouping,
|
|
915
870
|
M.groupBy,
|
|
916
871
|
M.groupBy2
|
|
917
|
-
]), [J,
|
|
872
|
+
]), [J, yt] = a.useState(vt), [bt, xt] = a.useState(!1), St = a.useRef(vt);
|
|
918
873
|
a.useEffect(() => {
|
|
919
|
-
|
|
920
|
-
}, [
|
|
921
|
-
let [Y,
|
|
874
|
+
St.current !== vt && (St.current = vt, yt(vt));
|
|
875
|
+
}, [vt]);
|
|
876
|
+
let [Y, Ct] = a.useState(M.rowColor), [wt, Tt] = a.useState(!1), [Et, Dt] = a.useState([]), Ot = a.useRef(0), [X, kt] = a.useState([]), At = a.useMemo(() => {
|
|
922
877
|
let e = M.userFilters;
|
|
923
878
|
if (!e) return;
|
|
924
|
-
if (e.element === "tabs" || e.fields && e.fields.length > 0 || !
|
|
879
|
+
if (e.element === "tabs" || e.fields && e.fields.length > 0 || !K?.fields) return e;
|
|
925
880
|
let t = /* @__PURE__ */ new Set([
|
|
926
881
|
"select",
|
|
927
882
|
"multi-select",
|
|
928
883
|
"boolean"
|
|
929
|
-
]), n = [], r = Array.isArray(
|
|
884
|
+
]), n = [], r = Array.isArray(K.fields) ? K.fields.map((e) => [e.name, e]) : Object.entries(K.fields);
|
|
930
885
|
for (let [e, i] of r) (t.has(i.type) || i.options && !i.type) && n.push({
|
|
931
886
|
field: e,
|
|
932
887
|
label: N(e, i.label || e),
|
|
@@ -938,21 +893,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
938
893
|
};
|
|
939
894
|
}, [
|
|
940
895
|
M.userFilters,
|
|
941
|
-
|
|
896
|
+
K,
|
|
942
897
|
N
|
|
943
|
-
]), [Z,
|
|
898
|
+
]), [Z, jt] = a.useState(() => new Set(M.hiddenFields || [])), Mt = a.useMemo(() => JSON.stringify(M.hiddenFields || []), [M.hiddenFields]);
|
|
944
899
|
a.useEffect(() => {
|
|
945
|
-
|
|
946
|
-
}, [
|
|
947
|
-
let
|
|
948
|
-
|
|
949
|
-
}, [l]), [
|
|
900
|
+
jt(new Set(M.hiddenFields || []));
|
|
901
|
+
}, [Mt]);
|
|
902
|
+
let Nt = a.useCallback((e) => {
|
|
903
|
+
jt(e), l?.(Array.from(e));
|
|
904
|
+
}, [l]), [Pt, Ft] = a.useState(!1), [It, Lt] = a.useState(() => !!M.inlineEdit);
|
|
950
905
|
a.useEffect(() => {
|
|
951
|
-
|
|
906
|
+
Lt(!!M.inlineEdit);
|
|
952
907
|
}, [M.inlineEdit]);
|
|
953
|
-
let
|
|
954
|
-
|
|
955
|
-
}, [u]), [
|
|
908
|
+
let Rt = a.useCallback((e) => {
|
|
909
|
+
Lt(e), u?.(e);
|
|
910
|
+
}, [u]), [zt, Bt] = a.useState(!1), [Vt, Ht] = a.useState(!1), [Ut, Wt] = a.useState(null), Gt = M.allowExport !== !1 && M.operations?.export !== !1, Kt = a.useMemo(() => {
|
|
956
911
|
if (M.exportOptions) return Array.isArray(M.exportOptions) ? { formats: M.exportOptions } : M.exportOptions;
|
|
957
912
|
}, [M.exportOptions]), Q = Fe(a.useMemo(() => M.densityMode ? M.densityMode : M.rowHeight ? {
|
|
958
913
|
compact: "compact",
|
|
@@ -960,51 +915,51 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
960
915
|
medium: "comfortable",
|
|
961
916
|
tall: "spacious",
|
|
962
917
|
extra_tall: "spacious"
|
|
963
|
-
}[M.rowHeight] || "comfortable" : "compact", [M.densityMode, M.rowHeight]), { onChange: M.onDensityChange }),
|
|
918
|
+
}[M.rowHeight] || "comfortable" : "compact", [M.densityMode, M.rowHeight]), { onChange: M.onDensityChange }), qt = a.useMemo(() => `objectui:gallery:density:${M.objectName ?? "default"}`, [M.objectName]), [Jt, Yt] = a.useState(() => {
|
|
964
919
|
if (typeof window > "u") return M.gallery?.cardSize ?? "medium";
|
|
965
920
|
try {
|
|
966
|
-
let e = window.localStorage.getItem(
|
|
921
|
+
let e = window.localStorage.getItem(qt);
|
|
967
922
|
if (e === "small" || e === "medium" || e === "large") return e;
|
|
968
923
|
} catch {}
|
|
969
924
|
return M.gallery?.cardSize ?? "medium";
|
|
970
|
-
}),
|
|
971
|
-
|
|
925
|
+
}), Xt = a.useCallback(() => {
|
|
926
|
+
Yt((e) => {
|
|
972
927
|
let t = e === "large" ? "medium" : e === "medium" ? "small" : "large";
|
|
973
928
|
try {
|
|
974
|
-
window.localStorage.setItem(
|
|
929
|
+
window.localStorage.setItem(qt, t);
|
|
975
930
|
} catch {}
|
|
976
931
|
return t;
|
|
977
932
|
});
|
|
978
|
-
}, [
|
|
933
|
+
}, [qt]), { ref: Zt, isRefreshing: Qt, pullDistance: $t } = ze({
|
|
979
934
|
onRefresh: a.useCallback(async () => {
|
|
980
|
-
|
|
935
|
+
lt((e) => e + 1);
|
|
981
936
|
}, []),
|
|
982
937
|
enabled: !!H && !!M.objectName
|
|
983
|
-
}),
|
|
938
|
+
}), en = a.useMemo(() => M.id ? `listview-${M.objectName}-${M.id}-view` : `listview-${M.objectName}-view`, [M.objectName, M.id]);
|
|
984
939
|
a.useEffect(() => {
|
|
985
940
|
let e = !0;
|
|
986
|
-
return
|
|
941
|
+
return st(!1), rt(null), (async () => {
|
|
987
942
|
if (!H || !M.objectName) {
|
|
988
|
-
|
|
943
|
+
st(!0);
|
|
989
944
|
return;
|
|
990
945
|
}
|
|
991
946
|
if (typeof H.getObjectSchema != "function") {
|
|
992
|
-
|
|
947
|
+
st(!0);
|
|
993
948
|
return;
|
|
994
949
|
}
|
|
995
950
|
try {
|
|
996
951
|
let t = await H.getObjectSchema(M.objectName);
|
|
997
|
-
e &&
|
|
952
|
+
e && rt(t);
|
|
998
953
|
} catch (e) {
|
|
999
954
|
console.warn("Failed to fetch object schema for ListView:", e);
|
|
1000
955
|
} finally {
|
|
1001
|
-
e &&
|
|
956
|
+
e && st(!0);
|
|
1002
957
|
}
|
|
1003
958
|
})(), () => {
|
|
1004
959
|
e = !1;
|
|
1005
960
|
};
|
|
1006
961
|
}, [M.objectName, H]);
|
|
1007
|
-
let
|
|
962
|
+
let tn = a.useMemo(() => {
|
|
1008
963
|
let e = Array.isArray(M.fields) ? M.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], n = new Set(e), r = (e) => {
|
|
1009
964
|
if (!e) return;
|
|
1010
965
|
let t = [
|
|
@@ -1031,9 +986,9 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1031
986
|
};
|
|
1032
987
|
r(M.kanban), r(M.options?.kanban), r(M.calendar), r(M.options?.calendar), r(M.gallery), r(M.options?.gallery), r(M.timeline), r(M.options?.timeline), r(M.gantt), r(M.options?.gantt);
|
|
1033
988
|
let i = n.size > 0 ? Array.from(n) : void 0;
|
|
1034
|
-
return t(
|
|
989
|
+
return t(K?.fields, i);
|
|
1035
990
|
}, [
|
|
1036
|
-
|
|
991
|
+
K?.fields,
|
|
1037
992
|
M.fields,
|
|
1038
993
|
M.kanban,
|
|
1039
994
|
M.calendar,
|
|
@@ -1041,9 +996,9 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1041
996
|
M.timeline,
|
|
1042
997
|
M.gantt,
|
|
1043
998
|
M.options
|
|
1044
|
-
]),
|
|
999
|
+
]), nn = Be(), rn = F === "gantt" && !!M.data && typeof M.data == "object" && !Array.isArray(M.data) && M.data.provider === "api";
|
|
1045
1000
|
a.useEffect(() => {
|
|
1046
|
-
let e = !0, t = ++
|
|
1001
|
+
let e = !0, t = ++Ot.current;
|
|
1047
1002
|
if (M.data && typeof M.data == "object" && !Array.isArray(M.data)) {
|
|
1048
1003
|
let e = M.data;
|
|
1049
1004
|
if (e.provider === "value" && Array.isArray(e.items)) {
|
|
@@ -1052,7 +1007,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1052
1007
|
let e = R.toLowerCase();
|
|
1053
1008
|
t = t.filter((t) => Object.values(t).some((t) => t != null && String(t).toLowerCase().includes(e)));
|
|
1054
1009
|
}
|
|
1055
|
-
|
|
1010
|
+
Xe(t), G(!1), dt(!1);
|
|
1056
1011
|
return;
|
|
1057
1012
|
}
|
|
1058
1013
|
}
|
|
@@ -1062,21 +1017,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1062
1017
|
let t = R.toLowerCase();
|
|
1063
1018
|
e = e.filter((e) => Object.values(e).some((e) => e != null && String(e).toLowerCase().includes(t)));
|
|
1064
1019
|
}
|
|
1065
|
-
|
|
1020
|
+
Xe(e), G(!1), dt(!1);
|
|
1066
1021
|
return;
|
|
1067
1022
|
}
|
|
1068
|
-
if (
|
|
1069
|
-
|
|
1023
|
+
if (rn) {
|
|
1024
|
+
G(!1), dt(!1);
|
|
1070
1025
|
return;
|
|
1071
1026
|
}
|
|
1072
|
-
return
|
|
1027
|
+
return ot ? ((async () => {
|
|
1073
1028
|
if (!H || !M.objectName) {
|
|
1074
|
-
|
|
1029
|
+
G(!1);
|
|
1075
1030
|
return;
|
|
1076
1031
|
}
|
|
1077
|
-
|
|
1032
|
+
G(!0), Qe(null);
|
|
1078
1033
|
try {
|
|
1079
|
-
let n = [], r = M.filters || [], i =
|
|
1034
|
+
let n = [], r = M.filters || [], i = nt(V), a = tt(X), o = [
|
|
1080
1035
|
...r.length > 0 ? [r] : [],
|
|
1081
1036
|
...i.length > 0 ? [i] : [],
|
|
1082
1037
|
...a
|
|
@@ -1086,13 +1041,13 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1086
1041
|
field: e.field,
|
|
1087
1042
|
order: e.order
|
|
1088
1043
|
})) : void 0, c = (() => {
|
|
1089
|
-
let e = Array.isArray(M.fields) ? M.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], t =
|
|
1044
|
+
let e = Array.isArray(M.fields) ? M.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], t = nn?.isLoaded && M.objectName ? e.filter((e) => nn.checkField(M.objectName, e, "read")) : e;
|
|
1090
1045
|
if (t.length === 0) return;
|
|
1091
1046
|
let n = /* @__PURE__ */ new Set(["id"]);
|
|
1092
1047
|
for (let e of t) n.add(e);
|
|
1093
|
-
for (let e of
|
|
1048
|
+
for (let e of tn) n.add(e);
|
|
1094
1049
|
let r = (() => {
|
|
1095
|
-
let e =
|
|
1050
|
+
let e = K?.fields;
|
|
1096
1051
|
if (!e) return null;
|
|
1097
1052
|
let t = Array.isArray(e) ? e.map((e) => e?.name).filter((e) => typeof e == "string") : Object.keys(e), n = new Set(t);
|
|
1098
1053
|
return n.add("id"), n.add("created_at"), n.add("updated_at"), n;
|
|
@@ -1128,27 +1083,27 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1128
1083
|
e && !Array.isArray(e.metaFields) && (i("status"), i("priority"));
|
|
1129
1084
|
}
|
|
1130
1085
|
return a(M.gantt), a(M.options?.gantt), Array.from(n);
|
|
1131
|
-
})(), l = Array.isArray(n) ? n.length > 0 : !!n && Object.keys(n).length > 0, u = F === "grid" && !J?.fields?.length, d = u ? (
|
|
1086
|
+
})(), l = Array.isArray(n) ? n.length > 0 : !!n && Object.keys(n).length > 0, u = F === "grid" && !J?.fields?.length, d = u ? (mt - 1) * q : 0, f = await H.find(M.objectName, {
|
|
1132
1087
|
...l ? { $filter: n } : {},
|
|
1133
1088
|
$orderby: s,
|
|
1134
1089
|
$top: q,
|
|
1135
1090
|
...d > 0 ? { $skip: d } : {},
|
|
1136
1091
|
...c ? { $select: c } : {},
|
|
1137
|
-
|
|
1092
|
+
...tn.length > 0 ? { $expand: tn } : {},
|
|
1138
1093
|
...R ? {
|
|
1139
1094
|
$search: R,
|
|
1140
1095
|
...M.searchableFields && M.searchableFields.length > 0 ? { $searchFields: M.searchableFields } : {}
|
|
1141
1096
|
} : {}
|
|
1142
1097
|
});
|
|
1143
|
-
if (!e || t !==
|
|
1098
|
+
if (!e || t !== Ot.current) return;
|
|
1144
1099
|
let p = [];
|
|
1145
|
-
Array.isArray(f) ? p = f : f && typeof f == "object" && (Array.isArray(f.data) ? p = f.data : Array.isArray(f.records) ? p = f.records : Array.isArray(f.value) && (p = f.value)),
|
|
1100
|
+
Array.isArray(f) ? p = f : f && typeof f == "object" && (Array.isArray(f.data) ? p = f.data : Array.isArray(f.records) ? p = f.records : Array.isArray(f.value) && (p = f.value)), Xe(p);
|
|
1146
1101
|
let m = f && typeof f == "object" ? f.total ?? f.count : void 0, h = typeof m == "number" ? m : null;
|
|
1147
|
-
|
|
1102
|
+
_t(u ? h : null), dt(!(u && h != null) && p.length >= q);
|
|
1148
1103
|
} catch (e) {
|
|
1149
|
-
t ===
|
|
1104
|
+
t === Ot.current && (console.error("ListView data fetch error:", e), Xe([]), Qe(e?.message ? String(e.message) : String(e ?? "Unknown error")));
|
|
1150
1105
|
} finally {
|
|
1151
|
-
e && t ===
|
|
1106
|
+
e && t === Ot.current && G(!1);
|
|
1152
1107
|
}
|
|
1153
1108
|
})(), () => {
|
|
1154
1109
|
e = !1;
|
|
@@ -1162,19 +1117,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1162
1117
|
z,
|
|
1163
1118
|
V,
|
|
1164
1119
|
X,
|
|
1165
|
-
|
|
1120
|
+
ct,
|
|
1166
1121
|
R,
|
|
1167
1122
|
M.searchableFields,
|
|
1168
|
-
|
|
1169
|
-
|
|
1123
|
+
tn,
|
|
1124
|
+
ot,
|
|
1170
1125
|
M.refreshTrigger,
|
|
1171
|
-
|
|
1172
|
-
|
|
1126
|
+
nn,
|
|
1127
|
+
mt,
|
|
1173
1128
|
F,
|
|
1174
1129
|
J,
|
|
1175
|
-
|
|
1130
|
+
rn
|
|
1176
1131
|
]);
|
|
1177
|
-
let
|
|
1132
|
+
let an = JSON.stringify([
|
|
1178
1133
|
M.objectName,
|
|
1179
1134
|
M.filters,
|
|
1180
1135
|
q,
|
|
@@ -1184,11 +1139,11 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1184
1139
|
R,
|
|
1185
1140
|
F,
|
|
1186
1141
|
J
|
|
1187
|
-
]),
|
|
1142
|
+
]), on = a.useRef(an);
|
|
1188
1143
|
a.useEffect(() => {
|
|
1189
|
-
|
|
1190
|
-
}, [
|
|
1191
|
-
let
|
|
1144
|
+
on.current !== an && (on.current = an, ht(1));
|
|
1145
|
+
}, [an]);
|
|
1146
|
+
let sn = a.useMemo(() => {
|
|
1192
1147
|
let e = ["grid"];
|
|
1193
1148
|
(M.kanban?.groupByField || M.kanban?.groupField || M.options?.kanban?.groupField) && e.push("kanban"), (M.gallery?.coverField || M.gallery?.imageField || M.options?.gallery?.imageField) && e.push("gallery"), (M.calendar?.startDateField || M.options?.calendar?.startDateField) && e.push("calendar"), (M.timeline?.startDateField || M.options?.timeline?.startDateField || M.options?.timeline?.dateField || M.options?.calendar?.startDateField) && e.push("timeline"), (M.gantt?.startDateField || M.options?.gantt?.startDateField) && e.push("gantt"), (M.options?.map?.locationField || M.options?.map?.latitudeField && M.options?.map?.longitudeField) && e.push("map"), (M.tree?.parentField || M.options?.tree?.parentField || M.viewType === "tree") && e.push("tree"), M.viewType && !e.includes(M.viewType) && [
|
|
1194
1149
|
"grid",
|
|
@@ -1221,26 +1176,26 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1221
1176
|
a.useEffect(() => {
|
|
1222
1177
|
M.viewType && Ae(M.viewType);
|
|
1223
1178
|
}, [M.viewType]);
|
|
1224
|
-
let
|
|
1179
|
+
let cn = a.useCallback((e) => {
|
|
1225
1180
|
Ae(e);
|
|
1226
1181
|
try {
|
|
1227
|
-
localStorage.setItem(
|
|
1182
|
+
localStorage.setItem(en, e);
|
|
1228
1183
|
} catch (e) {
|
|
1229
1184
|
console.warn("Failed to save view preference to localStorage:", e);
|
|
1230
1185
|
}
|
|
1231
1186
|
i?.(e);
|
|
1232
|
-
}, [
|
|
1187
|
+
}, [en, i]), ln = a.useCallback((e) => {
|
|
1233
1188
|
Ne(e), c?.(e);
|
|
1234
|
-
}, [c]),
|
|
1189
|
+
}, [c]), un = Ie({
|
|
1235
1190
|
navigation: M.navigation,
|
|
1236
1191
|
objectName: M.objectName,
|
|
1237
1192
|
onNavigate: M.onNavigate,
|
|
1238
1193
|
onRowClick: p
|
|
1239
1194
|
}), $ = a.useMemo(() => {
|
|
1240
1195
|
let e = M.fields || [];
|
|
1241
|
-
if (Array.isArray(e) || (e = []),
|
|
1196
|
+
if (Array.isArray(e) || (e = []), nn?.isLoaded && M.objectName && (e = e.filter((e) => {
|
|
1242
1197
|
let t = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field;
|
|
1243
|
-
return !t ||
|
|
1198
|
+
return !t || nn.checkField(M.objectName, t, "read");
|
|
1244
1199
|
})), Z.size > 0 && (e = e.filter((e) => {
|
|
1245
1200
|
let t = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field;
|
|
1246
1201
|
return t != null && !Z.has(t);
|
|
@@ -1257,8 +1212,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1257
1212
|
M.objectName,
|
|
1258
1213
|
Z,
|
|
1259
1214
|
M.fieldOrder,
|
|
1260
|
-
|
|
1261
|
-
]),
|
|
1215
|
+
nn
|
|
1216
|
+
]), dn = a.useMemo(() => {
|
|
1262
1217
|
let e = Q.mode === "compact" ? "compact" : Q.mode === "spacious" ? "tall" : "medium", t = {
|
|
1263
1218
|
objectName: M.objectName,
|
|
1264
1219
|
fields: $,
|
|
@@ -1266,7 +1221,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1266
1221
|
sort: z,
|
|
1267
1222
|
className: "h-full w-full",
|
|
1268
1223
|
showSearch: !1,
|
|
1269
|
-
onRowClick:
|
|
1224
|
+
onRowClick: un.handleClick,
|
|
1270
1225
|
rowHeight: e,
|
|
1271
1226
|
hideRowHeightToggle: !0,
|
|
1272
1227
|
...M.striped == null ? {} : { striped: M.striped },
|
|
@@ -1281,7 +1236,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1281
1236
|
...t,
|
|
1282
1237
|
columns: $,
|
|
1283
1238
|
...M.conditionalFormatting ? { conditionalFormatting: M.conditionalFormatting } : {},
|
|
1284
|
-
editable:
|
|
1239
|
+
editable: It,
|
|
1285
1240
|
...M.wrapHeaders == null ? {} : { wrapHeaders: M.wrapHeaders },
|
|
1286
1241
|
...M.virtualScroll == null ? {} : { virtualScroll: M.virtualScroll },
|
|
1287
1242
|
...M.resizable == null ? {} : { resizable: M.resizable },
|
|
@@ -1298,8 +1253,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1298
1253
|
case "kanban": return {
|
|
1299
1254
|
type: "object-kanban",
|
|
1300
1255
|
...t,
|
|
1301
|
-
groupBy: M.kanban?.groupField || M.options?.kanban?.groupField ||
|
|
1302
|
-
groupField: M.kanban?.groupField || M.options?.kanban?.groupField ||
|
|
1256
|
+
groupBy: M.kanban?.groupField || M.options?.kanban?.groupField || Re(K) || void 0,
|
|
1257
|
+
groupField: M.kanban?.groupField || M.options?.kanban?.groupField || Re(K) || void 0,
|
|
1303
1258
|
...M.kanban?.titleField || M.options?.kanban?.titleField ? { titleField: M.kanban?.titleField || M.options?.kanban?.titleField } : {},
|
|
1304
1259
|
cardFields: M.kanban?.cardFields || $ || [],
|
|
1305
1260
|
...J ? { grouping: J } : {},
|
|
@@ -1320,7 +1275,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1320
1275
|
let e = {
|
|
1321
1276
|
...M.options?.gallery || {},
|
|
1322
1277
|
...M.gallery || {},
|
|
1323
|
-
cardSize:
|
|
1278
|
+
cardSize: Jt
|
|
1324
1279
|
};
|
|
1325
1280
|
return {
|
|
1326
1281
|
type: "object-gallery",
|
|
@@ -1424,11 +1379,12 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1424
1379
|
$,
|
|
1425
1380
|
J,
|
|
1426
1381
|
Y,
|
|
1427
|
-
|
|
1382
|
+
un.handleClick,
|
|
1428
1383
|
Q.mode,
|
|
1429
|
-
|
|
1430
|
-
|
|
1431
|
-
|
|
1384
|
+
Jt,
|
|
1385
|
+
It,
|
|
1386
|
+
K
|
|
1387
|
+
]), fn = V.conditions && V.conditions.length > 0, pn = a.useMemo(() => {
|
|
1432
1388
|
let e, t = (e, t) => {
|
|
1433
1389
|
if (!t) return;
|
|
1434
1390
|
let n = Array.isArray(t) ? t.map((e) => ({
|
|
@@ -1442,7 +1398,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1442
1398
|
}));
|
|
1443
1399
|
return M.objectName ? ue(M.objectName, e, n) : n;
|
|
1444
1400
|
};
|
|
1445
|
-
if (e =
|
|
1401
|
+
if (e = K?.fields ? Object.entries(K.fields).map(([e, n]) => ({
|
|
1446
1402
|
value: e,
|
|
1447
1403
|
label: N(e, n.label || e),
|
|
1448
1404
|
type: n.type || "text",
|
|
@@ -1472,22 +1428,22 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1472
1428
|
}
|
|
1473
1429
|
return e;
|
|
1474
1430
|
}, [
|
|
1475
|
-
|
|
1431
|
+
K,
|
|
1476
1432
|
M.fields,
|
|
1477
1433
|
M.filterableFields,
|
|
1478
1434
|
M.objectName,
|
|
1479
1435
|
N,
|
|
1480
1436
|
ue
|
|
1481
|
-
]),
|
|
1482
|
-
if (!
|
|
1483
|
-
let t =
|
|
1437
|
+
]), mn = a.useCallback((e) => {
|
|
1438
|
+
if (!Gt) return;
|
|
1439
|
+
let t = Kt, r = t?.maxRecords || 0, i = t?.includeHeaders !== !1, a = K?.label && K?.name && typeof le == "function" ? le(K) : K?.label, o = (e) => n(e, {
|
|
1484
1440
|
prefix: t?.fileNamePrefix,
|
|
1485
1441
|
label: a,
|
|
1486
1442
|
objectName: M.objectName,
|
|
1487
1443
|
viewLabel: M.label || M.title
|
|
1488
1444
|
});
|
|
1489
1445
|
if ((e === "csv" || e === "xlsx" || e === "json") && typeof H?.exportDownload == "function" && M.objectName && t?.streaming !== !1) {
|
|
1490
|
-
let t = $.map((e) => typeof e == "string" ? e : e.name || e.fieldName || e.field).filter(Boolean), n = M.filters || [], a =
|
|
1446
|
+
let t = $.map((e) => typeof e == "string" ? e : e.name || e.fieldName || e.field).filter(Boolean), n = M.filters || [], a = nt(V), s = tt(X), c = [
|
|
1491
1447
|
...n.length > 0 ? [n] : [],
|
|
1492
1448
|
...a.length > 0 ? [a] : [],
|
|
1493
1449
|
...s
|
|
@@ -1495,7 +1451,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1495
1451
|
field: e.field,
|
|
1496
1452
|
direction: e.order
|
|
1497
1453
|
})) : void 0;
|
|
1498
|
-
|
|
1454
|
+
Wt(null), Ht(!0), (async () => {
|
|
1499
1455
|
try {
|
|
1500
1456
|
let n = await H.exportDownload(M.objectName, {
|
|
1501
1457
|
format: e,
|
|
@@ -1505,11 +1461,11 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1505
1461
|
includeHeaders: i,
|
|
1506
1462
|
limit: r > 0 ? r : void 0
|
|
1507
1463
|
}), a = URL.createObjectURL(n), s = document.createElement("a");
|
|
1508
|
-
s.href = a, s.download = o(e), s.rel = "noopener", document.body.appendChild(s), s.click(), s.remove(), URL.revokeObjectURL(a),
|
|
1464
|
+
s.href = a, s.download = o(e), s.rel = "noopener", document.body.appendChild(s), s.click(), s.remove(), URL.revokeObjectURL(a), Bt(!1);
|
|
1509
1465
|
} catch (e) {
|
|
1510
|
-
console.error("ListView export failed:", e),
|
|
1466
|
+
console.error("ListView export failed:", e), Wt(e instanceof Error ? e.message : String(e));
|
|
1511
1467
|
} finally {
|
|
1512
|
-
|
|
1468
|
+
Ht(!1);
|
|
1513
1469
|
}
|
|
1514
1470
|
})();
|
|
1515
1471
|
return;
|
|
@@ -1529,21 +1485,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1529
1485
|
let e = new Blob([JSON.stringify(s, null, 2)], { type: "application/json" }), t = URL.createObjectURL(e), n = document.createElement("a");
|
|
1530
1486
|
n.href = t, n.download = o("json"), n.click(), URL.revokeObjectURL(t);
|
|
1531
1487
|
}
|
|
1532
|
-
|
|
1488
|
+
Bt(!1);
|
|
1533
1489
|
}, [
|
|
1534
1490
|
U,
|
|
1535
1491
|
$,
|
|
1536
|
-
|
|
1492
|
+
Kt,
|
|
1537
1493
|
M.objectName,
|
|
1538
1494
|
M.filters,
|
|
1539
|
-
|
|
1495
|
+
Gt,
|
|
1540
1496
|
H,
|
|
1541
1497
|
V,
|
|
1542
1498
|
X,
|
|
1543
1499
|
z,
|
|
1544
|
-
|
|
1500
|
+
K,
|
|
1545
1501
|
le
|
|
1546
|
-
]),
|
|
1502
|
+
]), hn = a.useMemo(() => (M.fields || []).map((e) => {
|
|
1547
1503
|
if (typeof e == "string") return {
|
|
1548
1504
|
name: e,
|
|
1549
1505
|
label: N(e, e)
|
|
@@ -1555,7 +1511,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1555
1511
|
};
|
|
1556
1512
|
}), [M.fields, N]);
|
|
1557
1513
|
return /* @__PURE__ */ L("div", {
|
|
1558
|
-
ref:
|
|
1514
|
+
ref: Zt,
|
|
1559
1515
|
className: E("flex flex-col h-full bg-background relative min-w-0 overflow-hidden", r),
|
|
1560
1516
|
...M.aria?.label ? { "aria-label": M.aria.label } : {},
|
|
1561
1517
|
...M.aria?.describedBy ? { "aria-describedby": M.aria.describedBy } : {},
|
|
@@ -1564,10 +1520,10 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1564
1520
|
"aria-busy": W || void 0,
|
|
1565
1521
|
"data-state": W ? "loading" : "idle",
|
|
1566
1522
|
children: [
|
|
1567
|
-
|
|
1523
|
+
$t > 0 && /* @__PURE__ */ I("div", {
|
|
1568
1524
|
className: "flex items-center justify-center text-xs text-muted-foreground",
|
|
1569
|
-
style: { height:
|
|
1570
|
-
children: A(
|
|
1525
|
+
style: { height: $t },
|
|
1526
|
+
children: A(Qt ? "list.refreshing" : "list.pullToRefresh")
|
|
1571
1527
|
}),
|
|
1572
1528
|
M.description && M.appearance?.showDescription !== !1 && /* @__PURE__ */ I("div", {
|
|
1573
1529
|
className: "px-4 pt-1.5 text-xs text-muted-foreground bg-background",
|
|
@@ -1578,14 +1534,14 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1578
1534
|
className: "border-b px-2 sm:px-4 py-1.5 flex items-center justify-between gap-1 sm:gap-2 bg-background",
|
|
1579
1535
|
children: [/* @__PURE__ */ I("div", {
|
|
1580
1536
|
className: "flex items-center gap-2 overflow-x-auto min-w-0",
|
|
1581
|
-
children:
|
|
1537
|
+
children: At && /* @__PURE__ */ I("div", {
|
|
1582
1538
|
className: "shrink-0 min-w-0 overflow-x-auto",
|
|
1583
1539
|
"data-testid": "user-filters",
|
|
1584
|
-
children: /* @__PURE__ */ I(
|
|
1585
|
-
config:
|
|
1586
|
-
objectDef:
|
|
1540
|
+
children: /* @__PURE__ */ I(Ye, {
|
|
1541
|
+
config: At,
|
|
1542
|
+
objectDef: K,
|
|
1587
1543
|
data: U,
|
|
1588
|
-
onFilterChange:
|
|
1544
|
+
onFilterChange: kt,
|
|
1589
1545
|
maxVisible: 3,
|
|
1590
1546
|
initialSelections: g,
|
|
1591
1547
|
onSelectionsChange: _
|
|
@@ -1594,16 +1550,16 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1594
1550
|
}), /* @__PURE__ */ L("div", {
|
|
1595
1551
|
className: "flex items-center gap-0 shrink-0 rounded-lg border border-border bg-muted/40 p-0.5 shadow-sm",
|
|
1596
1552
|
children: [
|
|
1597
|
-
k && /* @__PURE__ */ L(ke, { children: [/* @__PURE__ */ I(
|
|
1553
|
+
k && /* @__PURE__ */ L(ke, { children: [/* @__PURE__ */ I(Ue, {
|
|
1598
1554
|
currentView: F,
|
|
1599
|
-
availableViews:
|
|
1600
|
-
onViewChange:
|
|
1555
|
+
availableViews: sn,
|
|
1556
|
+
onViewChange: cn
|
|
1601
1557
|
}), /* @__PURE__ */ I("div", { className: "h-4 w-px bg-border/60 mx-0.5" })] }),
|
|
1602
1558
|
F === "grid" && u && !P.compactToolbar && /* @__PURE__ */ L(d, {
|
|
1603
1559
|
variant: "ghost",
|
|
1604
1560
|
size: "sm",
|
|
1605
|
-
onClick: () =>
|
|
1606
|
-
className: E("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1561
|
+
onClick: () => Rt(!It),
|
|
1562
|
+
className: E("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", It && "text-primary"),
|
|
1607
1563
|
title: A("list.inlineEditLabel", { defaultValue: "Edit records inline (click a cell to edit)" }),
|
|
1608
1564
|
"data-testid": "toolbar-inline-edit-toggle",
|
|
1609
1565
|
children: [/* @__PURE__ */ I(ge, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ I("span", {
|
|
@@ -1612,8 +1568,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1612
1568
|
})]
|
|
1613
1569
|
}),
|
|
1614
1570
|
P.showHideFields && !P.compactToolbar && /* @__PURE__ */ L(S, {
|
|
1615
|
-
open:
|
|
1616
|
-
onOpenChange:
|
|
1571
|
+
open: Pt,
|
|
1572
|
+
onOpenChange: Ft,
|
|
1617
1573
|
children: [/* @__PURE__ */ I(w, {
|
|
1618
1574
|
asChild: !0,
|
|
1619
1575
|
children: /* @__PURE__ */ L(d, {
|
|
@@ -1646,19 +1602,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1646
1602
|
variant: "ghost",
|
|
1647
1603
|
size: "sm",
|
|
1648
1604
|
className: "h-6 px-2 text-xs",
|
|
1649
|
-
onClick: () =>
|
|
1605
|
+
onClick: () => Nt(/* @__PURE__ */ new Set()),
|
|
1650
1606
|
children: A("list.showAll")
|
|
1651
1607
|
})]
|
|
1652
1608
|
}), /* @__PURE__ */ I("div", {
|
|
1653
1609
|
className: "max-h-60 overflow-y-auto space-y-1",
|
|
1654
|
-
children:
|
|
1610
|
+
children: hn.map((e) => /* @__PURE__ */ L("label", {
|
|
1655
1611
|
className: "flex items-center gap-2 text-sm py-1 px-1 rounded hover:bg-muted cursor-pointer",
|
|
1656
1612
|
children: [/* @__PURE__ */ I("input", {
|
|
1657
1613
|
type: "checkbox",
|
|
1658
1614
|
checked: !Z.has(e.name),
|
|
1659
1615
|
onChange: () => {
|
|
1660
1616
|
let t = new Set(Z);
|
|
1661
|
-
t.has(e.name) ? t.delete(e.name) : t.add(e.name),
|
|
1617
|
+
t.has(e.name) ? t.delete(e.name) : t.add(e.name), Nt(t);
|
|
1662
1618
|
},
|
|
1663
1619
|
className: "rounded border-input"
|
|
1664
1620
|
}), /* @__PURE__ */ I("span", {
|
|
@@ -1672,21 +1628,21 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1672
1628
|
}),
|
|
1673
1629
|
P.showHideFields && !P.compactToolbar && (P.showFilters || P.showSort || P.showGroup) && /* @__PURE__ */ I("div", { className: "hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0" }),
|
|
1674
1630
|
P.showFilters && /* @__PURE__ */ L(S, {
|
|
1675
|
-
open:
|
|
1676
|
-
onOpenChange:
|
|
1631
|
+
open: Ge,
|
|
1632
|
+
onOpenChange: qe,
|
|
1677
1633
|
children: [/* @__PURE__ */ I(w, {
|
|
1678
1634
|
asChild: !0,
|
|
1679
1635
|
children: /* @__PURE__ */ L(d, {
|
|
1680
1636
|
variant: "ghost",
|
|
1681
1637
|
size: "sm",
|
|
1682
|
-
className: E("h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1638
|
+
className: E("h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", fn && "text-foreground font-medium"),
|
|
1683
1639
|
children: [
|
|
1684
1640
|
/* @__PURE__ */ I(Te, { className: "h-3.5 w-3.5 mr-1.5" }),
|
|
1685
1641
|
/* @__PURE__ */ I("span", {
|
|
1686
1642
|
className: "hidden sm:inline",
|
|
1687
1643
|
children: A("list.filter")
|
|
1688
1644
|
}),
|
|
1689
|
-
|
|
1645
|
+
fn && /* @__PURE__ */ I("span", {
|
|
1690
1646
|
className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
|
|
1691
1647
|
children: V.conditions?.length || 0
|
|
1692
1648
|
})
|
|
@@ -1704,18 +1660,18 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1704
1660
|
children: A("list.filterRecords")
|
|
1705
1661
|
})
|
|
1706
1662
|
}), /* @__PURE__ */ I(ee, {
|
|
1707
|
-
fields:
|
|
1663
|
+
fields: pn,
|
|
1708
1664
|
value: V,
|
|
1709
1665
|
onChange: (e) => {
|
|
1710
|
-
|
|
1666
|
+
Je(e), o && o(e);
|
|
1711
1667
|
}
|
|
1712
1668
|
})]
|
|
1713
1669
|
})
|
|
1714
1670
|
})]
|
|
1715
1671
|
}),
|
|
1716
1672
|
P.showGroup && !P.compactToolbar && /* @__PURE__ */ L(S, {
|
|
1717
|
-
open:
|
|
1718
|
-
onOpenChange:
|
|
1673
|
+
open: bt,
|
|
1674
|
+
onOpenChange: xt,
|
|
1719
1675
|
children: [/* @__PURE__ */ I(w, {
|
|
1720
1676
|
asChild: !0,
|
|
1721
1677
|
children: /* @__PURE__ */ L(d, {
|
|
@@ -1748,7 +1704,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1748
1704
|
variant: "ghost",
|
|
1749
1705
|
size: "sm",
|
|
1750
1706
|
className: "h-6 px-2 text-xs",
|
|
1751
|
-
onClick: () =>
|
|
1707
|
+
onClick: () => yt(void 0),
|
|
1752
1708
|
"data-testid": "clear-grouping",
|
|
1753
1709
|
children: A("list.clear")
|
|
1754
1710
|
})]
|
|
@@ -1756,7 +1712,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1756
1712
|
"data-testid": "group-field-list",
|
|
1757
1713
|
children: /* @__PURE__ */ I(y, {
|
|
1758
1714
|
value: J,
|
|
1759
|
-
fieldOptions:
|
|
1715
|
+
fieldOptions: hn.map((e) => ({
|
|
1760
1716
|
value: e.name,
|
|
1761
1717
|
label: e.label || e.name
|
|
1762
1718
|
})),
|
|
@@ -1766,15 +1722,15 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1766
1722
|
collapseTitle: A("list.collapsedByDefault", { defaultValue: "Collapsed by default" }),
|
|
1767
1723
|
removeTitle: A("list.removeGroup", { defaultValue: "Remove" })
|
|
1768
1724
|
},
|
|
1769
|
-
onChange: (e) =>
|
|
1725
|
+
onChange: (e) => yt(e)
|
|
1770
1726
|
})
|
|
1771
1727
|
})]
|
|
1772
1728
|
})
|
|
1773
1729
|
})]
|
|
1774
1730
|
}),
|
|
1775
1731
|
P.showSort && /* @__PURE__ */ L(S, {
|
|
1776
|
-
open:
|
|
1777
|
-
onOpenChange:
|
|
1732
|
+
open: Ve,
|
|
1733
|
+
onOpenChange: He,
|
|
1778
1734
|
children: [/* @__PURE__ */ I(w, {
|
|
1779
1735
|
asChild: !0,
|
|
1780
1736
|
children: /* @__PURE__ */ L(d, {
|
|
@@ -1805,7 +1761,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1805
1761
|
children: A("list.sortRecords")
|
|
1806
1762
|
})
|
|
1807
1763
|
}), /* @__PURE__ */ I(ne, {
|
|
1808
|
-
fields:
|
|
1764
|
+
fields: pn,
|
|
1809
1765
|
value: z,
|
|
1810
1766
|
onChange: (e) => {
|
|
1811
1767
|
B(e), s && s(e);
|
|
@@ -1816,8 +1772,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1816
1772
|
}),
|
|
1817
1773
|
!P.compactToolbar && (P.showFilters || P.showSort || P.showGroup) && (P.showColor || P.showDensity) && /* @__PURE__ */ I("div", { className: "hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0" }),
|
|
1818
1774
|
P.showColor && !P.compactToolbar && /* @__PURE__ */ L(S, {
|
|
1819
|
-
open:
|
|
1820
|
-
onOpenChange:
|
|
1775
|
+
open: wt,
|
|
1776
|
+
onOpenChange: Tt,
|
|
1821
1777
|
children: [/* @__PURE__ */ I(w, {
|
|
1822
1778
|
asChild: !0,
|
|
1823
1779
|
children: /* @__PURE__ */ L(d, {
|
|
@@ -1843,7 +1799,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1843
1799
|
variant: "ghost",
|
|
1844
1800
|
size: "sm",
|
|
1845
1801
|
className: "h-6 px-2 text-xs",
|
|
1846
|
-
onClick: () =>
|
|
1802
|
+
onClick: () => Ct(void 0),
|
|
1847
1803
|
"data-testid": "clear-row-color",
|
|
1848
1804
|
children: A("list.clear")
|
|
1849
1805
|
})]
|
|
@@ -1858,7 +1814,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1858
1814
|
value: Y?.field || "",
|
|
1859
1815
|
onChange: (e) => {
|
|
1860
1816
|
let t = e.target.value;
|
|
1861
|
-
|
|
1817
|
+
Ct(t ? {
|
|
1862
1818
|
field: t,
|
|
1863
1819
|
colors: Y?.colors || {}
|
|
1864
1820
|
} : void 0);
|
|
@@ -1867,7 +1823,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1867
1823
|
children: [/* @__PURE__ */ I("option", {
|
|
1868
1824
|
value: "",
|
|
1869
1825
|
children: A("list.none")
|
|
1870
|
-
}),
|
|
1826
|
+
}), hn.map((e) => /* @__PURE__ */ I("option", {
|
|
1871
1827
|
value: e.name,
|
|
1872
1828
|
children: e.label
|
|
1873
1829
|
}, e.name))]
|
|
@@ -1892,7 +1848,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1892
1848
|
});
|
|
1893
1849
|
})(),
|
|
1894
1850
|
P.showDensity && !P.compactToolbar && F === "gallery" && (() => {
|
|
1895
|
-
let e =
|
|
1851
|
+
let e = Jt === "small" ? Se : Jt === "medium" ? xe : be, t = Jt === "small" ? A("grid.toolbar.densityCompact", { defaultValue: "Compact" }) : Jt === "medium" ? A("grid.toolbar.densityComfortable", { defaultValue: "Comfortable" }) : A("grid.toolbar.densitySpacious", { defaultValue: "Spacious" }), n = `${A("grid.toolbar.densityMode", { defaultValue: "Density" })}: ${t}`, r = A("grid.toolbar.densityCycleHint", {
|
|
1896
1852
|
defaultValue: "{{label}} (click to cycle)",
|
|
1897
1853
|
label: n
|
|
1898
1854
|
});
|
|
@@ -1900,34 +1856,34 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1900
1856
|
variant: "ghost",
|
|
1901
1857
|
size: "sm",
|
|
1902
1858
|
"aria-label": n,
|
|
1903
|
-
className: E("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150",
|
|
1904
|
-
onClick:
|
|
1859
|
+
className: E("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150", Jt !== "small" && "text-foreground font-medium"),
|
|
1860
|
+
onClick: Xt,
|
|
1905
1861
|
title: r,
|
|
1906
1862
|
children: /* @__PURE__ */ I(e, { className: "h-3.5 w-3.5" })
|
|
1907
1863
|
});
|
|
1908
1864
|
})(),
|
|
1909
|
-
P.compactToolbar && (P.showGroup || P.showColor || P.showDensity || P.showHideFields) && /* @__PURE__ */ I(
|
|
1865
|
+
P.compactToolbar && (P.showGroup || P.showColor || P.showDensity || P.showHideFields) && /* @__PURE__ */ I(Ke, {
|
|
1910
1866
|
t: A,
|
|
1911
|
-
allFields:
|
|
1867
|
+
allFields: hn,
|
|
1912
1868
|
showGroup: P.showGroup,
|
|
1913
1869
|
groupingConfig: J,
|
|
1914
|
-
setGroupingConfig:
|
|
1870
|
+
setGroupingConfig: yt,
|
|
1915
1871
|
showColor: P.showColor,
|
|
1916
1872
|
rowColorConfig: Y,
|
|
1917
|
-
setRowColorConfig:
|
|
1873
|
+
setRowColorConfig: Ct,
|
|
1918
1874
|
showDensity: P.showDensity,
|
|
1919
1875
|
density: Q,
|
|
1920
1876
|
showHideFields: P.showHideFields,
|
|
1921
1877
|
hiddenFields: Z,
|
|
1922
|
-
updateHiddenFields:
|
|
1878
|
+
updateHiddenFields: Nt,
|
|
1923
1879
|
showInlineEdit: F === "grid",
|
|
1924
|
-
inlineEdit:
|
|
1925
|
-
setInlineEdit:
|
|
1880
|
+
inlineEdit: It,
|
|
1881
|
+
setInlineEdit: Rt
|
|
1926
1882
|
}),
|
|
1927
|
-
(P.showColor || P.showDensity || P.compactToolbar) &&
|
|
1928
|
-
|
|
1929
|
-
open:
|
|
1930
|
-
onOpenChange:
|
|
1883
|
+
(P.showColor || P.showDensity || P.compactToolbar) && Kt && Gt && /* @__PURE__ */ I("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }),
|
|
1884
|
+
Kt && Gt && /* @__PURE__ */ L(S, {
|
|
1885
|
+
open: zt,
|
|
1886
|
+
onOpenChange: Bt,
|
|
1931
1887
|
children: [/* @__PURE__ */ I(w, {
|
|
1932
1888
|
asChild: !0,
|
|
1933
1889
|
children: /* @__PURE__ */ L(d, {
|
|
@@ -1944,18 +1900,18 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1944
1900
|
className: "w-48 p-2",
|
|
1945
1901
|
children: /* @__PURE__ */ L("div", {
|
|
1946
1902
|
className: "space-y-1",
|
|
1947
|
-
children: [(
|
|
1903
|
+
children: [(Kt.formats || ["csv", "json"]).map((e) => /* @__PURE__ */ L(d, {
|
|
1948
1904
|
variant: "ghost",
|
|
1949
1905
|
size: "sm",
|
|
1950
1906
|
className: "w-full justify-start h-8 text-xs",
|
|
1951
|
-
disabled:
|
|
1952
|
-
onClick: () =>
|
|
1953
|
-
children: [
|
|
1954
|
-
}, e)),
|
|
1907
|
+
disabled: Vt,
|
|
1908
|
+
onClick: () => mn(e),
|
|
1909
|
+
children: [Vt ? /* @__PURE__ */ I(me, { className: "h-3.5 w-3.5 mr-2 animate-spin" }) : /* @__PURE__ */ I(se, { className: "h-3.5 w-3.5 mr-2" }), A("list.exportAs", { format: e.toUpperCase() })]
|
|
1910
|
+
}, e)), Ut && /* @__PURE__ */ I("div", {
|
|
1955
1911
|
className: "px-2 py-1 text-xs",
|
|
1956
1912
|
style: { color: "var(--destructive, #ef4444)" },
|
|
1957
1913
|
role: "alert",
|
|
1958
|
-
children:
|
|
1914
|
+
children: Ut
|
|
1959
1915
|
})]
|
|
1960
1916
|
})
|
|
1961
1917
|
})]
|
|
@@ -1983,7 +1939,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
1983
1939
|
})]
|
|
1984
1940
|
}),
|
|
1985
1941
|
(() => {
|
|
1986
|
-
let e = M.allowPrinting || M.sharing?.enabled || M.sharing?.type ||
|
|
1942
|
+
let e = M.allowPrinting || M.sharing?.enabled || M.sharing?.type || Kt && Gt;
|
|
1987
1943
|
return P.showSearch && e ? /* @__PURE__ */ I("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }) : null;
|
|
1988
1944
|
})(),
|
|
1989
1945
|
P.showSearch && /* @__PURE__ */ L(S, {
|
|
@@ -2014,7 +1970,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2014
1970
|
/* @__PURE__ */ I(b, {
|
|
2015
1971
|
placeholder: A("list.search") + "...",
|
|
2016
1972
|
value: R,
|
|
2017
|
-
onChange: (e) =>
|
|
1973
|
+
onChange: (e) => ln(e.target.value),
|
|
2018
1974
|
className: "pl-7 h-8 text-xs",
|
|
2019
1975
|
autoFocus: !0
|
|
2020
1976
|
}),
|
|
@@ -2022,7 +1978,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2022
1978
|
variant: "ghost",
|
|
2023
1979
|
size: "sm",
|
|
2024
1980
|
className: "absolute right-0.5 top-1/2 -translate-y-1/2 h-5 w-5 p-0 hover:bg-muted-foreground/20",
|
|
2025
|
-
onClick: () =>
|
|
1981
|
+
onClick: () => ln(""),
|
|
2026
1982
|
children: /* @__PURE__ */ I(De, { className: "h-3 w-3" })
|
|
2027
1983
|
})
|
|
2028
1984
|
]
|
|
@@ -2045,7 +2001,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2045
2001
|
}),
|
|
2046
2002
|
/* @__PURE__ */ L("div", {
|
|
2047
2003
|
className: "flex-1 min-h-0 bg-background relative overflow-hidden animate-in fade-in-0 duration-200",
|
|
2048
|
-
children: [/* @__PURE__ */ I(T, { active: W && U.length > 0 }),
|
|
2004
|
+
children: [/* @__PURE__ */ I(T, { active: W && U.length > 0 }), Ze && U.length === 0 ? /* @__PURE__ */ I(m, {
|
|
2049
2005
|
"data-testid": "list-error-state",
|
|
2050
2006
|
className: "h-full min-h-[200px] p-8 gap-1 [&>h3]:text-lg [&>h3]:font-medium [&>h3]:text-foreground [&>p]:max-w-md",
|
|
2051
2007
|
icon: /* @__PURE__ */ I(re, { className: "h-12 w-12 text-destructive/60" }),
|
|
@@ -2056,7 +2012,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2056
2012
|
variant: "outline",
|
|
2057
2013
|
size: "sm",
|
|
2058
2014
|
"data-testid": "list-error-retry",
|
|
2059
|
-
onClick: () =>
|
|
2015
|
+
onClick: () => lt((e) => e + 1),
|
|
2060
2016
|
children: [/* @__PURE__ */ I(ye, { className: "h-4 w-4 mr-1.5" }), A("list.retry")]
|
|
2061
2017
|
})
|
|
2062
2018
|
}) : W && U.length === 0 ? /* @__PURE__ */ L("div", {
|
|
@@ -2097,19 +2053,19 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2097
2053
|
}) : void 0
|
|
2098
2054
|
});
|
|
2099
2055
|
})() : /* @__PURE__ */ I(Me, {
|
|
2100
|
-
schema:
|
|
2056
|
+
schema: dn,
|
|
2101
2057
|
...D,
|
|
2102
|
-
...
|
|
2058
|
+
...rn ? {} : { data: U },
|
|
2103
2059
|
loading: W,
|
|
2104
|
-
onRowSelect:
|
|
2105
|
-
...F === "grid" && !J?.fields?.length &&
|
|
2060
|
+
onRowSelect: Dt,
|
|
2061
|
+
...F === "grid" && !J?.fields?.length && gt != null ? {
|
|
2106
2062
|
manualPagination: !0,
|
|
2107
|
-
rowCount:
|
|
2108
|
-
page:
|
|
2063
|
+
rowCount: gt,
|
|
2064
|
+
page: mt,
|
|
2109
2065
|
pageSize: q,
|
|
2110
|
-
onPageChange: (e) =>
|
|
2066
|
+
onPageChange: (e) => ht(e),
|
|
2111
2067
|
onPageSizeChange: (e) => {
|
|
2112
|
-
|
|
2068
|
+
pt(e), ht(1);
|
|
2113
2069
|
}
|
|
2114
2070
|
} : {}
|
|
2115
2071
|
})]
|
|
@@ -2128,7 +2084,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2128
2084
|
})]
|
|
2129
2085
|
})
|
|
2130
2086
|
}),
|
|
2131
|
-
M.bulkActions && M.bulkActions.length > 0 &&
|
|
2087
|
+
M.bulkActions && M.bulkActions.length > 0 && Et.length > 0 && F !== "grid" && /* @__PURE__ */ L("div", {
|
|
2132
2088
|
className: "border-t border-primary/30 px-4 py-2 flex items-center gap-2 text-xs bg-primary/10 text-foreground shrink-0 shadow-sm",
|
|
2133
2089
|
role: "region",
|
|
2134
2090
|
"aria-label": "Bulk actions",
|
|
@@ -2138,9 +2094,9 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2138
2094
|
/* @__PURE__ */ L("span", {
|
|
2139
2095
|
className: "font-medium",
|
|
2140
2096
|
children: [
|
|
2141
|
-
|
|
2097
|
+
Et.length,
|
|
2142
2098
|
" ",
|
|
2143
|
-
|
|
2099
|
+
Et.length === 1 ? "item" : "items",
|
|
2144
2100
|
" selected"
|
|
2145
2101
|
]
|
|
2146
2102
|
}),
|
|
@@ -2152,7 +2108,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2152
2108
|
variant: n ? "destructive" : "outline",
|
|
2153
2109
|
size: "sm",
|
|
2154
2110
|
className: "h-7 px-2.5 text-xs gap-1.5",
|
|
2155
|
-
onClick: () => D.onBulkAction?.(e,
|
|
2111
|
+
onClick: () => D.onBulkAction?.(e, Et),
|
|
2156
2112
|
"data-testid": `bulk-action-${e}`,
|
|
2157
2113
|
children: [r && /* @__PURE__ */ I(r, { className: "h-3 w-3" }), pe(e)]
|
|
2158
2114
|
}, e);
|
|
@@ -2162,7 +2118,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2162
2118
|
variant: "ghost",
|
|
2163
2119
|
size: "sm",
|
|
2164
2120
|
className: "h-7 px-2 text-xs ml-auto gap-1",
|
|
2165
|
-
onClick: () =>
|
|
2121
|
+
onClick: () => Dt([]),
|
|
2166
2122
|
children: [/* @__PURE__ */ I(De, { className: "h-3 w-3" }), "Clear"]
|
|
2167
2123
|
})
|
|
2168
2124
|
]
|
|
@@ -2175,7 +2131,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2175
2131
|
className: "font-medium text-foreground/80",
|
|
2176
2132
|
children: U.length === 1 ? A("list.recordCountOne", { count: U.length }) : A("list.recordCount", { count: U.length })
|
|
2177
2133
|
}),
|
|
2178
|
-
|
|
2134
|
+
ut && /* @__PURE__ */ I("span", {
|
|
2179
2135
|
className: "text-amber-600",
|
|
2180
2136
|
"data-testid": "data-limit-warning",
|
|
2181
2137
|
children: A("list.dataLimitReached", { limit: q })
|
|
@@ -2188,7 +2144,7 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2188
2144
|
value: String(q),
|
|
2189
2145
|
onChange: (e) => {
|
|
2190
2146
|
let t = Number(e.target.value);
|
|
2191
|
-
|
|
2147
|
+
pt(t), D.onPageSizeChange && D.onPageSizeChange(t);
|
|
2192
2148
|
},
|
|
2193
2149
|
children: M.pagination.pageSizeOptions.map((e) => /* @__PURE__ */ I("option", {
|
|
2194
2150
|
value: String(e),
|
|
@@ -2198,8 +2154,8 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2198
2154
|
})
|
|
2199
2155
|
]
|
|
2200
2156
|
}),
|
|
2201
|
-
|
|
2202
|
-
...
|
|
2157
|
+
un.isOverlay && /* @__PURE__ */ I(te, {
|
|
2158
|
+
...un,
|
|
2203
2159
|
title: M.label ? `${M.label} Detail` : M.objectName ? `${M.objectName.charAt(0).toUpperCase() + M.objectName.slice(1)} Detail` : "Record Detail",
|
|
2204
2160
|
children: (e) => /* @__PURE__ */ I("div", {
|
|
2205
2161
|
className: "space-y-3",
|
|
@@ -2218,24 +2174,24 @@ var K = a.forwardRef(({ schema: e, className: r, onViewChange: i, onFilterChange
|
|
|
2218
2174
|
]
|
|
2219
2175
|
});
|
|
2220
2176
|
});
|
|
2221
|
-
|
|
2177
|
+
ot.displayName = "ListView";
|
|
2222
2178
|
//#endregion
|
|
2223
2179
|
//#region src/ObjectGallery.tsx
|
|
2224
|
-
var
|
|
2180
|
+
var st = {
|
|
2225
2181
|
small: "grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6",
|
|
2226
2182
|
medium: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
|
|
2227
2183
|
large: "grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
2228
|
-
},
|
|
2184
|
+
}, ct = {
|
|
2229
2185
|
small: "aspect-square",
|
|
2230
2186
|
medium: "aspect-[4/3]",
|
|
2231
2187
|
large: "aspect-[16/10]"
|
|
2232
|
-
},
|
|
2188
|
+
}, lt = /* @__PURE__ */ new Set([
|
|
2233
2189
|
"number",
|
|
2234
2190
|
"currency",
|
|
2235
2191
|
"percent",
|
|
2236
2192
|
"integer",
|
|
2237
2193
|
"decimal"
|
|
2238
|
-
]),
|
|
2194
|
+
]), ut = [
|
|
2239
2195
|
{
|
|
2240
2196
|
bg: "from-indigo-500/15 via-indigo-500/5 to-purple-500/10",
|
|
2241
2197
|
ring: "ring-indigo-500/15",
|
|
@@ -2267,12 +2223,12 @@ var ot = {
|
|
|
2267
2223
|
text: "text-violet-600/70 dark:text-violet-300/70"
|
|
2268
2224
|
}
|
|
2269
2225
|
];
|
|
2270
|
-
function
|
|
2226
|
+
function dt(e) {
|
|
2271
2227
|
let t = 5381;
|
|
2272
2228
|
for (let n = 0; n < e.length; n++) t = (t << 5) + t + e.charCodeAt(n);
|
|
2273
|
-
return
|
|
2229
|
+
return ut[Math.abs(t) % ut.length];
|
|
2274
2230
|
}
|
|
2275
|
-
var
|
|
2231
|
+
var ft = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i, hidden: a }) => {
|
|
2276
2232
|
let [o, s] = u(!1), c = !!e && !o;
|
|
2277
2233
|
return /* @__PURE__ */ I("div", {
|
|
2278
2234
|
className: E("w-full overflow-hidden relative", r),
|
|
@@ -2300,7 +2256,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2300
2256
|
})
|
|
2301
2257
|
})
|
|
2302
2258
|
});
|
|
2303
|
-
},
|
|
2259
|
+
}, pt = ({ imageUrl: e, title: t, placeholder: n }) => {
|
|
2304
2260
|
let [r, i] = u(!1), a = !!e && !r;
|
|
2305
2261
|
return /* @__PURE__ */ I("div", {
|
|
2306
2262
|
className: E("flex h-11 w-11 shrink-0 items-center justify-center rounded-xl bg-gradient-to-br ring-1 ring-inset", n.bg, n.ring),
|
|
@@ -2315,8 +2271,8 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2315
2271
|
children: t[0]?.toUpperCase()
|
|
2316
2272
|
})
|
|
2317
2273
|
});
|
|
2318
|
-
},
|
|
2319
|
-
let { schema: n } = e,
|
|
2274
|
+
}, q = (e) => {
|
|
2275
|
+
let { schema: n } = e, i = s(Ne), a = e.dataSource || i?.dataSource, d = Pe(n.bind), [m, h] = u([]), [g, _] = u(!1), [v, ee] = u(null), y = Ie({
|
|
2320
2276
|
navigation: n.navigation,
|
|
2321
2277
|
objectName: n.objectName,
|
|
2322
2278
|
onRowClick: e.onRowClick ?? e.onCardClick
|
|
@@ -2453,7 +2409,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2453
2409
|
children: T.map((t) => {
|
|
2454
2410
|
let n = e[t];
|
|
2455
2411
|
if (n == null || n === "") return null;
|
|
2456
|
-
let r = re(t), i =
|
|
2412
|
+
let r = re(t), i = He(r) || r.type || "text", a = Ve(i), o = r?.label && String(r.label).trim() ? String(r.label) : void 0, s = o != null && lt.has(i);
|
|
2457
2413
|
return /* @__PURE__ */ L("div", {
|
|
2458
2414
|
className: E("text-xs text-muted-foreground truncate [&_*]:!text-xs", s && "flex items-baseline gap-1.5"),
|
|
2459
2415
|
onClick: (e) => {
|
|
@@ -2468,8 +2424,8 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2468
2424
|
})]
|
|
2469
2425
|
}, t);
|
|
2470
2426
|
})
|
|
2471
|
-
}), M = (t,
|
|
2472
|
-
let a = t.id ?? t._id ??
|
|
2427
|
+
}), M = (t, i) => {
|
|
2428
|
+
let a = t.id ?? t._id ?? i, o = (w != null && t[w] != null && t[w] !== "" ? String(t[w]) : void 0) ?? r(v, t), s = t[x], c = dt(String(a) + "|" + o), l = E("group relative overflow-hidden border-border/60 bg-card", "transition-all duration-200 ease-out", "hover:shadow-lg hover:border-border hover:-translate-y-0.5", (e.onCardClick || e.onRowClick || n.navigation) && "cursor-pointer");
|
|
2473
2429
|
return ie && S === "contain" ? /* @__PURE__ */ L(f, {
|
|
2474
2430
|
role: "listitem",
|
|
2475
2431
|
className: l,
|
|
@@ -2481,7 +2437,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2481
2437
|
className: "p-4",
|
|
2482
2438
|
children: /* @__PURE__ */ L("div", {
|
|
2483
2439
|
className: "flex items-start gap-3",
|
|
2484
|
-
children: [/* @__PURE__ */ I(
|
|
2440
|
+
children: [/* @__PURE__ */ I(pt, {
|
|
2485
2441
|
imageUrl: s,
|
|
2486
2442
|
title: o,
|
|
2487
2443
|
placeholder: c
|
|
@@ -2504,11 +2460,11 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2504
2460
|
"aria-hidden": !0,
|
|
2505
2461
|
className: E("absolute inset-x-0 top-0 h-[3px] bg-gradient-to-r", c.bg)
|
|
2506
2462
|
}),
|
|
2507
|
-
/* @__PURE__ */ I(
|
|
2463
|
+
/* @__PURE__ */ I(ft, {
|
|
2508
2464
|
imageUrl: s,
|
|
2509
2465
|
title: o,
|
|
2510
2466
|
coverFit: S,
|
|
2511
|
-
aspectClass:
|
|
2467
|
+
aspectClass: ct[C],
|
|
2512
2468
|
placeholder: c,
|
|
2513
2469
|
hidden: !ie
|
|
2514
2470
|
}),
|
|
@@ -2523,7 +2479,7 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2523
2479
|
]
|
|
2524
2480
|
}, a);
|
|
2525
2481
|
}, fe = (e) => /* @__PURE__ */ I("div", {
|
|
2526
|
-
className: E("grid gap-4 p-4 auto-rows-min content-start",
|
|
2482
|
+
className: E("grid gap-4 p-4 auto-rows-min content-start", st[C], n.className),
|
|
2527
2483
|
role: "list",
|
|
2528
2484
|
children: e.map((e, t) => M(e, t))
|
|
2529
2485
|
});
|
|
@@ -2563,21 +2519,21 @@ var dt = ({ imageUrl: e, title: t, coverFit: n, aspectClass: r, placeholder: i,
|
|
|
2563
2519
|
})
|
|
2564
2520
|
})] });
|
|
2565
2521
|
};
|
|
2566
|
-
e.register("object-gallery",
|
|
2522
|
+
e.register("object-gallery", q, {
|
|
2567
2523
|
namespace: "plugin-list",
|
|
2568
2524
|
label: "Gallery View",
|
|
2569
2525
|
category: "view"
|
|
2570
2526
|
});
|
|
2571
2527
|
//#endregion
|
|
2572
2528
|
//#region src/components/TabBar.tsx
|
|
2573
|
-
function
|
|
2529
|
+
function mt(e) {
|
|
2574
2530
|
return e ? Oe[e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("")] ?? null : null;
|
|
2575
2531
|
}
|
|
2576
|
-
function
|
|
2532
|
+
function ht(e) {
|
|
2577
2533
|
return e.filter((e) => e.pinned || e.visible !== "false" && e.visible !== !1).sort((e, t) => (e.order ?? 0) - (t.order ?? 0));
|
|
2578
2534
|
}
|
|
2579
|
-
var
|
|
2580
|
-
let i = a.useMemo(() =>
|
|
2535
|
+
var gt = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
2536
|
+
let i = a.useMemo(() => ht(e), [e]), o = a.useMemo(() => i.find((e) => e.isDefault)?.name ?? i[0]?.name, [i]), [s, c] = a.useState(o), l = t ?? s, u = a.useCallback((e) => {
|
|
2581
2537
|
c(e.name), n?.(e);
|
|
2582
2538
|
}, [n]);
|
|
2583
2539
|
return i.length === 0 ? null : /* @__PURE__ */ I("div", {
|
|
@@ -2585,7 +2541,7 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
|
2585
2541
|
"data-testid": "view-tabs",
|
|
2586
2542
|
role: "tablist",
|
|
2587
2543
|
children: i.map((e) => {
|
|
2588
|
-
let t =
|
|
2544
|
+
let t = mt(e.icon), n = l === e.name;
|
|
2589
2545
|
return /* @__PURE__ */ L(d, {
|
|
2590
2546
|
variant: "ghost",
|
|
2591
2547
|
size: "sm",
|
|
@@ -2598,12 +2554,12 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
|
2598
2554
|
}, e.name);
|
|
2599
2555
|
})
|
|
2600
2556
|
});
|
|
2601
|
-
},
|
|
2602
|
-
let i = a.useMemo(() =>
|
|
2557
|
+
}, _t = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
2558
|
+
let i = a.useMemo(() => ht(e), [e]), o = a.useMemo(() => i.find((e) => e.isDefault)?.name ?? i[0]?.name, [i]), [s, c] = a.useState(o), l = t ?? s, u = a.useMemo(() => i.find((e) => e.name === l) ?? i[0], [i, l]), f = a.useCallback((e) => {
|
|
2603
2559
|
c(e.name), n?.(e);
|
|
2604
2560
|
}, [n]);
|
|
2605
2561
|
if (i.length === 0) return null;
|
|
2606
|
-
let p =
|
|
2562
|
+
let p = mt(u?.icon);
|
|
2607
2563
|
return /* @__PURE__ */ I("div", {
|
|
2608
2564
|
className: E("px-2 py-1", r),
|
|
2609
2565
|
"data-testid": "view-tabs-select",
|
|
@@ -2627,7 +2583,7 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
|
2627
2583
|
align: "start",
|
|
2628
2584
|
className: "w-56 max-h-72 overflow-y-auto",
|
|
2629
2585
|
children: i.map((e) => {
|
|
2630
|
-
let t =
|
|
2586
|
+
let t = mt(e.icon);
|
|
2631
2587
|
return /* @__PURE__ */ L(_, {
|
|
2632
2588
|
onClick: () => f(e),
|
|
2633
2589
|
className: E("text-sm", l === e.name && "font-medium bg-muted"),
|
|
@@ -2641,7 +2597,7 @@ var ht = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
|
2641
2597
|
})] })
|
|
2642
2598
|
});
|
|
2643
2599
|
};
|
|
2644
|
-
e.register("list-view",
|
|
2600
|
+
e.register("list-view", ot, {
|
|
2645
2601
|
namespace: "plugin-list",
|
|
2646
2602
|
label: "List View",
|
|
2647
2603
|
category: "Views",
|
|
@@ -2718,7 +2674,7 @@ e.register("list-view", K, {
|
|
|
2718
2674
|
sort: [],
|
|
2719
2675
|
options: {}
|
|
2720
2676
|
}
|
|
2721
|
-
}), e.register("list",
|
|
2677
|
+
}), e.register("list", ot, {
|
|
2722
2678
|
namespace: "view",
|
|
2723
2679
|
skipFallback: !0,
|
|
2724
2680
|
category: "view",
|
|
@@ -2790,4 +2746,4 @@ e.register("list-view", K, {
|
|
|
2790
2746
|
]
|
|
2791
2747
|
});
|
|
2792
2748
|
//#endregion
|
|
2793
|
-
export {
|
|
2749
|
+
export { ot as ListView, q as ObjectGallery, gt as TabBar, _t as TabBarSelect, Ye as UserFilters, We as ViewSwitcher, Ue as ViewSwitcherDropdown, G as evaluateConditionalFormatting, W as normalizeFilterCondition, tt as normalizeFilters };
|