@object-ui/plugin-list 4.7.0 → 5.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 +94 -0
- package/dist/index.js +908 -850
- package/dist/index.umd.cjs +2 -2
- package/dist/packages/plugin-list/src/ListView.d.ts.map +1 -1
- package/dist/packages/plugin-list/src/components/TabBar.d.ts +8 -0
- package/dist/packages/plugin-list/src/components/TabBar.d.ts.map +1 -1
- package/dist/packages/plugin-list/src/index.d.ts +1 -1
- package/dist/packages/plugin-list/src/index.d.ts.map +1 -1
- package/package.json +16 -16
package/dist/index.js
CHANGED
|
@@ -1,24 +1,24 @@
|
|
|
1
1
|
import { ComponentRegistry as e, buildExpandFields as t, evaluatePlainCondition as n, normalizeQuickFilter as r, normalizeQuickFilters 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
|
-
import { Button as d, Card as f, CardContent as p,
|
|
5
|
-
import { Activity as
|
|
6
|
-
import { Fragment as
|
|
7
|
-
import { useObjectLabel as
|
|
8
|
-
import { SchemaRenderer as
|
|
9
|
-
import { usePullToRefresh as
|
|
10
|
-
import { usePermissions as
|
|
11
|
-
import { getCellRenderer as
|
|
4
|
+
import { Button as d, Card as f, CardContent as p, DropdownMenu as m, DropdownMenuContent as h, DropdownMenuItem as g, DropdownMenuTrigger as _, FilterBuilder as v, GroupingEditor as ee, Input as y, LookupValuePicker as b, NavigationOverlay as te, Popover as x, PopoverContent as S, PopoverTrigger as C, RefreshIndicator as ne, SortBuilder as re, cn as w } from "@object-ui/components";
|
|
5
|
+
import { Activity as ie, ArrowUpDown as T, Calendar as E, CheckSquare as ae, ChevronDown as D, ChevronRight as O, Download as k, EyeOff as oe, GanttChartSquare as A, Grid as se, Group as ce, Images as j, Inbox as le, LayoutGrid as ue, Map as de, Paintbrush as fe, Plus as pe, Printer as me, Rows2 as he, Rows3 as ge, Rows4 as _e, Search as ve, Settings2 as ye, Share2 as be, SlidersHorizontal as xe, Trash2 as Se, X as Ce, icons as we } from "lucide-react";
|
|
6
|
+
import { Fragment as Te, jsx as M, jsxs as N } from "react/jsx-runtime";
|
|
7
|
+
import { useObjectLabel as Ee, useObjectTranslation as De, useSafeFieldLabel as Oe } from "@object-ui/i18n";
|
|
8
|
+
import { SchemaRenderer as ke, SchemaRendererContext as P, useDataScope as Ae, useDensityMode as je, useNavigationOverlay as Me, useSafeFieldLabel as Ne } from "@object-ui/react";
|
|
9
|
+
import { usePullToRefresh as Pe } from "@object-ui/mobile";
|
|
10
|
+
import { usePermissions as Fe } from "@object-ui/permissions";
|
|
11
|
+
import { getCellRenderer as Ie, resolveCellRendererType as Le } from "@object-ui/fields";
|
|
12
12
|
//#region src/ViewSwitcher.tsx
|
|
13
|
-
var
|
|
14
|
-
grid: /* @__PURE__ */
|
|
15
|
-
kanban: /* @__PURE__ */
|
|
16
|
-
gallery: /* @__PURE__ */
|
|
17
|
-
calendar: /* @__PURE__ */
|
|
18
|
-
timeline: /* @__PURE__ */
|
|
19
|
-
gantt: /* @__PURE__ */
|
|
20
|
-
map: /* @__PURE__ */
|
|
21
|
-
},
|
|
13
|
+
var F = {
|
|
14
|
+
grid: /* @__PURE__ */ M(se, { className: "h-4 w-4" }),
|
|
15
|
+
kanban: /* @__PURE__ */ M(ue, { className: "h-4 w-4" }),
|
|
16
|
+
gallery: /* @__PURE__ */ M(j, { className: "h-4 w-4" }),
|
|
17
|
+
calendar: /* @__PURE__ */ M(E, { className: "h-4 w-4" }),
|
|
18
|
+
timeline: /* @__PURE__ */ M(ie, { className: "h-4 w-4" }),
|
|
19
|
+
gantt: /* @__PURE__ */ M(A, { className: "h-4 w-4" }),
|
|
20
|
+
map: /* @__PURE__ */ M(de, { className: "h-4 w-4" })
|
|
21
|
+
}, I = {
|
|
22
22
|
grid: "Grid",
|
|
23
23
|
kanban: "Kanban",
|
|
24
24
|
gallery: "Gallery",
|
|
@@ -26,7 +26,7 @@ var je = {
|
|
|
26
26
|
timeline: "Timeline",
|
|
27
27
|
gantt: "Gantt",
|
|
28
28
|
map: "Map"
|
|
29
|
-
},
|
|
29
|
+
}, Re = ({ currentView: e, availableViews: t = ["grid", "kanban"], onViewChange: n, className: r, animated: i = !0 }) => {
|
|
30
30
|
let o = a.useCallback((t) => {
|
|
31
31
|
if (!i || t === e) {
|
|
32
32
|
n(t);
|
|
@@ -38,21 +38,21 @@ var je = {
|
|
|
38
38
|
e,
|
|
39
39
|
n
|
|
40
40
|
]);
|
|
41
|
-
return /* @__PURE__ */
|
|
42
|
-
className:
|
|
41
|
+
return /* @__PURE__ */ M("div", {
|
|
42
|
+
className: w("flex items-center gap-1 bg-transparent oui-view-switcher", r),
|
|
43
43
|
children: t.map((t) => {
|
|
44
44
|
let n = e === t;
|
|
45
|
-
return /* @__PURE__ */
|
|
45
|
+
return /* @__PURE__ */ N("button", {
|
|
46
46
|
type: "button",
|
|
47
47
|
onClick: () => o(t),
|
|
48
|
-
"aria-label":
|
|
49
|
-
title:
|
|
48
|
+
"aria-label": I[t],
|
|
49
|
+
title: I[t],
|
|
50
50
|
"aria-pressed": n,
|
|
51
51
|
"data-state": n ? "on" : "off",
|
|
52
|
-
className:
|
|
53
|
-
children: [
|
|
52
|
+
className: w("inline-flex items-center justify-center whitespace-nowrap rounded-md text-sm font-medium ring-offset-background transition-all focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring focus-visible:ring-offset-2 disabled:pointer-events-none disabled:opacity-50", "hover:bg-muted hover:text-muted-foreground", "gap-2 px-3 py-2", "data-[state=on]:bg-background data-[state=on]:text-foreground data-[state=on]:shadow-sm border-transparent border data-[state=on]:border-border/50"),
|
|
53
|
+
children: [F[t], /* @__PURE__ */ M("span", {
|
|
54
54
|
className: "hidden sm:inline-block text-xs font-medium",
|
|
55
|
-
children:
|
|
55
|
+
children: I[t]
|
|
56
56
|
})]
|
|
57
57
|
}, t);
|
|
58
58
|
})
|
|
@@ -60,119 +60,161 @@ var je = {
|
|
|
60
60
|
};
|
|
61
61
|
//#endregion
|
|
62
62
|
//#region src/components/TabBar.tsx
|
|
63
|
-
function
|
|
64
|
-
return e ?
|
|
63
|
+
function ze(e) {
|
|
64
|
+
return e ? we[e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("")] ?? null : null;
|
|
65
65
|
}
|
|
66
|
-
function
|
|
66
|
+
function Be(e) {
|
|
67
67
|
return e.filter((e) => e.pinned || e.visible !== "false" && e.visible !== !1).sort((e, t) => (e.order ?? 0) - (t.order ?? 0));
|
|
68
68
|
}
|
|
69
|
-
var
|
|
70
|
-
let i = a.useMemo(() =>
|
|
69
|
+
var Ve = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
70
|
+
let i = a.useMemo(() => Be(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) => {
|
|
71
71
|
c(e.name), n?.(e);
|
|
72
72
|
}, [n]);
|
|
73
|
-
return i.length === 0 ? null : /* @__PURE__ */
|
|
74
|
-
className:
|
|
73
|
+
return i.length === 0 ? null : /* @__PURE__ */ M("div", {
|
|
74
|
+
className: w("px-2 sm:px-4 py-1 flex items-center gap-0.5 bg-background", r),
|
|
75
75
|
"data-testid": "view-tabs",
|
|
76
76
|
role: "tablist",
|
|
77
77
|
children: i.map((e) => {
|
|
78
|
-
let t =
|
|
79
|
-
return /* @__PURE__ */
|
|
78
|
+
let t = ze(e.icon), n = l === e.name;
|
|
79
|
+
return /* @__PURE__ */ N(d, {
|
|
80
80
|
variant: "ghost",
|
|
81
81
|
size: "sm",
|
|
82
|
-
className:
|
|
82
|
+
className: w("h-7 px-2.5 py-1 text-xs rounded-md transition-colors duration-150", n ? "font-medium text-foreground bg-muted" : "text-muted-foreground hover:text-foreground hover:bg-transparent"),
|
|
83
83
|
"data-testid": `view-tab-${e.name}`,
|
|
84
84
|
role: "tab",
|
|
85
85
|
"aria-selected": n,
|
|
86
86
|
onClick: () => u(e),
|
|
87
|
-
children: [t && /* @__PURE__ */
|
|
87
|
+
children: [t && /* @__PURE__ */ M(t, { className: "h-3 w-3 mr-1.5" }), e.label]
|
|
88
88
|
}, e.name);
|
|
89
89
|
})
|
|
90
90
|
});
|
|
91
|
+
}, He = ({ tabs: e, activeTab: t, onTabChange: n, className: r }) => {
|
|
92
|
+
let i = a.useMemo(() => Be(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) => {
|
|
93
|
+
c(e.name), n?.(e);
|
|
94
|
+
}, [n]);
|
|
95
|
+
if (i.length === 0) return null;
|
|
96
|
+
let p = ze(u?.icon);
|
|
97
|
+
return /* @__PURE__ */ M("div", {
|
|
98
|
+
className: w("px-2 py-1", r),
|
|
99
|
+
"data-testid": "view-tabs-select",
|
|
100
|
+
children: /* @__PURE__ */ N(m, { children: [/* @__PURE__ */ M(_, {
|
|
101
|
+
asChild: !0,
|
|
102
|
+
children: /* @__PURE__ */ N(d, {
|
|
103
|
+
variant: "ghost",
|
|
104
|
+
size: "sm",
|
|
105
|
+
className: "h-7 px-2 text-xs font-medium text-foreground gap-1.5 max-w-[60vw] truncate",
|
|
106
|
+
"aria-label": "Switch view",
|
|
107
|
+
children: [
|
|
108
|
+
p && /* @__PURE__ */ M(p, { className: "h-3.5 w-3.5 shrink-0" }),
|
|
109
|
+
/* @__PURE__ */ M("span", {
|
|
110
|
+
className: "truncate",
|
|
111
|
+
children: u?.label ?? ""
|
|
112
|
+
}),
|
|
113
|
+
/* @__PURE__ */ M(D, { className: "h-3.5 w-3.5 shrink-0 text-muted-foreground" })
|
|
114
|
+
]
|
|
115
|
+
})
|
|
116
|
+
}), /* @__PURE__ */ M(h, {
|
|
117
|
+
align: "start",
|
|
118
|
+
className: "w-56 max-h-72 overflow-y-auto",
|
|
119
|
+
children: i.map((e) => {
|
|
120
|
+
let t = ze(e.icon);
|
|
121
|
+
return /* @__PURE__ */ N(g, {
|
|
122
|
+
onClick: () => f(e),
|
|
123
|
+
className: w("text-sm", l === e.name && "font-medium bg-muted"),
|
|
124
|
+
"data-testid": `view-tab-select-${e.name}`,
|
|
125
|
+
children: [t && /* @__PURE__ */ M(t, { className: "h-3.5 w-3.5 mr-2 shrink-0" }), /* @__PURE__ */ M("span", {
|
|
126
|
+
className: "truncate",
|
|
127
|
+
children: e.label
|
|
128
|
+
})]
|
|
129
|
+
}, e.name);
|
|
130
|
+
})
|
|
131
|
+
})] })
|
|
132
|
+
});
|
|
91
133
|
};
|
|
92
134
|
//#endregion
|
|
93
135
|
//#region src/components/ViewSettingsPopover.tsx
|
|
94
|
-
function
|
|
136
|
+
function L({ title: e, badge: t, onClear: n, clearLabel: r, defaultOpen: i = !0, children: o }) {
|
|
95
137
|
let [s, c] = a.useState(i);
|
|
96
|
-
return /* @__PURE__ */
|
|
138
|
+
return /* @__PURE__ */ N("div", {
|
|
97
139
|
className: "border-b last:border-b-0",
|
|
98
|
-
children: [/* @__PURE__ */
|
|
140
|
+
children: [/* @__PURE__ */ N("div", {
|
|
99
141
|
className: "flex items-center justify-between px-3 py-2",
|
|
100
|
-
children: [/* @__PURE__ */
|
|
142
|
+
children: [/* @__PURE__ */ N("button", {
|
|
101
143
|
type: "button",
|
|
102
144
|
onClick: () => c((e) => !e),
|
|
103
145
|
className: "flex items-center gap-1.5 text-xs font-medium text-foreground/80 hover:text-foreground",
|
|
104
146
|
children: [
|
|
105
|
-
/* @__PURE__ */
|
|
147
|
+
/* @__PURE__ */ M(D, { className: w("h-3.5 w-3.5 transition-transform", !s && "-rotate-90") }),
|
|
106
148
|
e,
|
|
107
|
-
typeof t == "number" && t > 0 && /* @__PURE__ */
|
|
149
|
+
typeof t == "number" && t > 0 && /* @__PURE__ */ M("span", {
|
|
108
150
|
className: "ml-1 inline-flex h-4 min-w-[16px] items-center justify-center rounded-full bg-primary/10 px-1 text-[10px] text-primary tabular-nums",
|
|
109
151
|
children: t
|
|
110
152
|
})
|
|
111
153
|
]
|
|
112
|
-
}), n && /* @__PURE__ */
|
|
154
|
+
}), n && /* @__PURE__ */ M("button", {
|
|
113
155
|
type: "button",
|
|
114
156
|
onClick: n,
|
|
115
157
|
className: "text-[11px] text-muted-foreground hover:text-foreground",
|
|
116
158
|
children: r
|
|
117
159
|
})]
|
|
118
|
-
}), s && /* @__PURE__ */
|
|
160
|
+
}), s && /* @__PURE__ */ M("div", {
|
|
119
161
|
className: "px-3 pb-3",
|
|
120
162
|
children: o
|
|
121
163
|
})]
|
|
122
164
|
});
|
|
123
165
|
}
|
|
124
|
-
function
|
|
125
|
-
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:
|
|
166
|
+
function Ue(e) {
|
|
167
|
+
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 } = e, [g, _] = a.useState(!1), v = [
|
|
126
168
|
!!i?.fields?.length,
|
|
127
169
|
!!c?.field,
|
|
128
170
|
f && f.mode !== "compact",
|
|
129
171
|
(m?.size ?? 0) > 0
|
|
130
|
-
].filter(Boolean).length,
|
|
131
|
-
return /* @__PURE__ */
|
|
132
|
-
open:
|
|
133
|
-
onOpenChange:
|
|
134
|
-
children: [/* @__PURE__ */
|
|
172
|
+
].filter(Boolean).length, y = f?.mode === "compact" ? _e : f?.mode === "comfortable" ? ge : he, b = t("list.viewSettings", { defaultValue: "View settings" });
|
|
173
|
+
return /* @__PURE__ */ N(x, {
|
|
174
|
+
open: g,
|
|
175
|
+
onOpenChange: _,
|
|
176
|
+
children: [/* @__PURE__ */ M(C, {
|
|
135
177
|
asChild: !0,
|
|
136
|
-
children: /* @__PURE__ */
|
|
178
|
+
children: /* @__PURE__ */ N(d, {
|
|
137
179
|
variant: "ghost",
|
|
138
180
|
size: "sm",
|
|
139
|
-
"aria-label":
|
|
140
|
-
title:
|
|
141
|
-
className:
|
|
181
|
+
"aria-label": b,
|
|
182
|
+
title: b,
|
|
183
|
+
className: w("h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", v > 0 && "text-foreground font-medium"),
|
|
142
184
|
"data-testid": "view-settings-trigger",
|
|
143
185
|
children: [
|
|
144
|
-
/* @__PURE__ */
|
|
145
|
-
/* @__PURE__ */
|
|
186
|
+
/* @__PURE__ */ M(ye, { className: "h-3.5 w-3.5 sm:mr-1.5" }),
|
|
187
|
+
/* @__PURE__ */ M("span", {
|
|
146
188
|
className: "hidden sm:inline",
|
|
147
|
-
children:
|
|
189
|
+
children: b
|
|
148
190
|
}),
|
|
149
|
-
|
|
191
|
+
v > 0 && /* @__PURE__ */ M("span", {
|
|
150
192
|
className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
|
|
151
|
-
children:
|
|
193
|
+
children: v
|
|
152
194
|
})
|
|
153
195
|
]
|
|
154
196
|
})
|
|
155
|
-
}), /* @__PURE__ */
|
|
197
|
+
}), /* @__PURE__ */ N(S, {
|
|
156
198
|
align: "end",
|
|
157
199
|
className: "w-80 p-0",
|
|
158
200
|
"data-testid": "view-settings-content",
|
|
159
201
|
children: [
|
|
160
|
-
/* @__PURE__ */
|
|
202
|
+
/* @__PURE__ */ N("div", {
|
|
161
203
|
className: "px-3 py-2 border-b",
|
|
162
|
-
children: [/* @__PURE__ */
|
|
204
|
+
children: [/* @__PURE__ */ M("div", {
|
|
163
205
|
className: "text-sm font-semibold",
|
|
164
|
-
children:
|
|
165
|
-
}), /* @__PURE__ */
|
|
206
|
+
children: b
|
|
207
|
+
}), /* @__PURE__ */ M("div", {
|
|
166
208
|
className: "text-[11px] text-muted-foreground",
|
|
167
209
|
children: t("list.viewSettingsHint", { defaultValue: "Grouping, color, density, and visible fields." })
|
|
168
210
|
})]
|
|
169
211
|
}),
|
|
170
|
-
r && o && /* @__PURE__ */
|
|
212
|
+
r && o && /* @__PURE__ */ M(L, {
|
|
171
213
|
title: t("list.group", { defaultValue: "Group" }),
|
|
172
214
|
badge: i?.fields?.length || 0,
|
|
173
215
|
onClear: i ? () => o(void 0) : void 0,
|
|
174
216
|
clearLabel: t("list.clear", { defaultValue: "Clear" }),
|
|
175
|
-
children: /* @__PURE__ */
|
|
217
|
+
children: /* @__PURE__ */ M(ee, {
|
|
176
218
|
value: i,
|
|
177
219
|
fieldOptions: n.map((e) => ({
|
|
178
220
|
value: e.name,
|
|
@@ -187,15 +229,15 @@ function Ie(e) {
|
|
|
187
229
|
onChange: (e) => o(e)
|
|
188
230
|
})
|
|
189
231
|
}),
|
|
190
|
-
s && l && /* @__PURE__ */
|
|
232
|
+
s && l && /* @__PURE__ */ N(L, {
|
|
191
233
|
title: t("list.color", { defaultValue: "Row color" }),
|
|
192
234
|
onClear: c ? () => l(void 0) : void 0,
|
|
193
235
|
clearLabel: t("list.clear", { defaultValue: "Clear" }),
|
|
194
236
|
defaultOpen: !!c,
|
|
195
|
-
children: [/* @__PURE__ */
|
|
237
|
+
children: [/* @__PURE__ */ M("label", {
|
|
196
238
|
className: "block text-[11px] text-muted-foreground mb-1",
|
|
197
239
|
children: t("list.colorByField", { defaultValue: "Color by field" })
|
|
198
|
-
}), /* @__PURE__ */
|
|
240
|
+
}), /* @__PURE__ */ N("select", {
|
|
199
241
|
className: "w-full h-8 rounded border border-input bg-background px-2 text-xs",
|
|
200
242
|
value: c?.field || "",
|
|
201
243
|
onChange: (e) => {
|
|
@@ -206,55 +248,55 @@ function Ie(e) {
|
|
|
206
248
|
} : void 0);
|
|
207
249
|
},
|
|
208
250
|
"data-testid": "color-field-select",
|
|
209
|
-
children: [/* @__PURE__ */
|
|
251
|
+
children: [/* @__PURE__ */ M("option", {
|
|
210
252
|
value: "",
|
|
211
253
|
children: t("list.none", { defaultValue: "None" })
|
|
212
|
-
}), n.map((e) => /* @__PURE__ */
|
|
254
|
+
}), n.map((e) => /* @__PURE__ */ M("option", {
|
|
213
255
|
value: e.name,
|
|
214
256
|
children: e.label || e.name
|
|
215
257
|
}, e.name))]
|
|
216
258
|
})]
|
|
217
259
|
}),
|
|
218
|
-
u && f && /* @__PURE__ */
|
|
260
|
+
u && f && /* @__PURE__ */ M(L, {
|
|
219
261
|
title: t("grid.toolbar.densityMode", { defaultValue: "Density" }),
|
|
220
262
|
defaultOpen: f.mode !== "compact",
|
|
221
|
-
children: /* @__PURE__ */
|
|
263
|
+
children: /* @__PURE__ */ N("div", {
|
|
222
264
|
className: "flex items-center gap-2",
|
|
223
|
-
children: [/* @__PURE__ */
|
|
265
|
+
children: [/* @__PURE__ */ N(d, {
|
|
224
266
|
variant: "outline",
|
|
225
267
|
size: "sm",
|
|
226
268
|
className: "h-7 gap-1.5",
|
|
227
269
|
onClick: f.cycle,
|
|
228
270
|
"data-testid": "view-settings-density-cycle",
|
|
229
|
-
children: [/* @__PURE__ */
|
|
271
|
+
children: [/* @__PURE__ */ M(y, { className: "h-3.5 w-3.5" }), /* @__PURE__ */ M("span", {
|
|
230
272
|
className: "text-xs",
|
|
231
273
|
children: f.mode === "compact" ? t("grid.toolbar.densityCompact", { defaultValue: "Compact" }) : f.mode === "comfortable" ? t("grid.toolbar.densityComfortable", { defaultValue: "Comfortable" }) : t("grid.toolbar.densitySpacious", { defaultValue: "Spacious" })
|
|
232
274
|
})]
|
|
233
|
-
}), /* @__PURE__ */
|
|
275
|
+
}), /* @__PURE__ */ M("span", {
|
|
234
276
|
className: "text-[11px] text-muted-foreground",
|
|
235
277
|
children: t("grid.toolbar.densityCycleShortHint", { defaultValue: "Click to cycle" })
|
|
236
278
|
})]
|
|
237
279
|
})
|
|
238
280
|
}),
|
|
239
|
-
p && m &&
|
|
281
|
+
p && m && h && /* @__PURE__ */ M(L, {
|
|
240
282
|
title: t("list.hideFieldsTitle", { defaultValue: "Hide fields" }),
|
|
241
283
|
badge: m.size,
|
|
242
|
-
onClear: m.size > 0 ? () =>
|
|
284
|
+
onClear: m.size > 0 ? () => h(/* @__PURE__ */ new Set()) : void 0,
|
|
243
285
|
clearLabel: t("list.showAll", { defaultValue: "Show all" }),
|
|
244
286
|
defaultOpen: m.size > 0,
|
|
245
|
-
children: /* @__PURE__ */
|
|
287
|
+
children: /* @__PURE__ */ M("div", {
|
|
246
288
|
className: "max-h-48 overflow-y-auto space-y-0.5",
|
|
247
|
-
children: n.map((e) => /* @__PURE__ */
|
|
289
|
+
children: n.map((e) => /* @__PURE__ */ N("label", {
|
|
248
290
|
className: "flex items-center gap-2 text-xs py-1 px-1 rounded hover:bg-muted cursor-pointer",
|
|
249
|
-
children: [/* @__PURE__ */
|
|
291
|
+
children: [/* @__PURE__ */ M("input", {
|
|
250
292
|
type: "checkbox",
|
|
251
293
|
checked: !m.has(e.name),
|
|
252
294
|
onChange: () => {
|
|
253
295
|
let t = new Set(m);
|
|
254
|
-
t.has(e.name) ? t.delete(e.name) : t.add(e.name),
|
|
296
|
+
t.has(e.name) ? t.delete(e.name) : t.add(e.name), h(t);
|
|
255
297
|
},
|
|
256
298
|
className: "rounded border-input"
|
|
257
|
-
}), /* @__PURE__ */
|
|
299
|
+
}), /* @__PURE__ */ M("span", {
|
|
258
300
|
className: "truncate",
|
|
259
301
|
children: e.label || e.name
|
|
260
302
|
})]
|
|
@@ -267,23 +309,23 @@ function Ie(e) {
|
|
|
267
309
|
}
|
|
268
310
|
//#endregion
|
|
269
311
|
//#region src/UserFilters.tsx
|
|
270
|
-
function
|
|
312
|
+
function R() {
|
|
271
313
|
try {
|
|
272
|
-
let { t: e } =
|
|
314
|
+
let { t: e } = De(), t = e("common.more");
|
|
273
315
|
return !t || t === "common.more" ? "More" : t;
|
|
274
316
|
} catch {
|
|
275
317
|
return "More";
|
|
276
318
|
}
|
|
277
319
|
}
|
|
278
|
-
var
|
|
320
|
+
var z = new Set([
|
|
279
321
|
"lookup",
|
|
280
322
|
"master_detail",
|
|
281
323
|
"user",
|
|
282
324
|
"owner"
|
|
283
325
|
]);
|
|
284
|
-
function
|
|
326
|
+
function We({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisible: i, className: a }) {
|
|
285
327
|
switch (e.element) {
|
|
286
|
-
case "dropdown": return /* @__PURE__ */
|
|
328
|
+
case "dropdown": return /* @__PURE__ */ M(B, {
|
|
287
329
|
fields: e.fields || [],
|
|
288
330
|
objectDef: t,
|
|
289
331
|
data: n,
|
|
@@ -291,14 +333,14 @@ function ze({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisib
|
|
|
291
333
|
maxVisible: i,
|
|
292
334
|
className: a
|
|
293
335
|
});
|
|
294
|
-
case "tabs": return /* @__PURE__ */
|
|
336
|
+
case "tabs": return /* @__PURE__ */ M(V, {
|
|
295
337
|
tabs: e.tabs || [],
|
|
296
338
|
showAllRecords: e.showAllRecords !== !1,
|
|
297
339
|
allowAddTab: e.allowAddTab,
|
|
298
340
|
onFilterChange: r,
|
|
299
341
|
className: a
|
|
300
342
|
});
|
|
301
|
-
case "toggle": return /* @__PURE__ */
|
|
343
|
+
case "toggle": return /* @__PURE__ */ M(H, {
|
|
302
344
|
fields: e.fields || [],
|
|
303
345
|
onFilterChange: r,
|
|
304
346
|
className: a
|
|
@@ -306,7 +348,7 @@ function ze({ config: e, objectDef: t, data: n = [], onFilterChange: r, maxVisib
|
|
|
306
348
|
default: return null;
|
|
307
349
|
}
|
|
308
350
|
}
|
|
309
|
-
function
|
|
351
|
+
function Ge(e, t, n, r) {
|
|
310
352
|
return e.map((e) => {
|
|
311
353
|
let i = e.options ? [...e.options] : [], a = e.type, o, s, c;
|
|
312
354
|
if (t?.fields) {
|
|
@@ -343,13 +385,13 @@ function Be(e, t, n, r) {
|
|
|
343
385
|
};
|
|
344
386
|
});
|
|
345
387
|
}
|
|
346
|
-
function
|
|
347
|
-
let { fieldLabel: s, translateOptions: c } =
|
|
388
|
+
function B({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i, className: o }) {
|
|
389
|
+
let { fieldLabel: s, translateOptions: c } = Oe(), l = R(), u = t?.name, [d, f] = a.useState(() => {
|
|
348
390
|
let t = {};
|
|
349
391
|
return e.forEach((e) => {
|
|
350
392
|
e.defaultValues && e.defaultValues.length > 0 && (t[e.field] = e.defaultValues);
|
|
351
393
|
}), t;
|
|
352
|
-
}), p = a.useMemo(() =>
|
|
394
|
+
}), p = a.useMemo(() => Ge(e, t, n, {
|
|
353
395
|
objectName: u,
|
|
354
396
|
fieldLabel: s,
|
|
355
397
|
translateOptions: c
|
|
@@ -376,37 +418,37 @@ function z({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i,
|
|
|
376
418
|
a.useEffect(() => {
|
|
377
419
|
Object.values(d).some((e) => e.length > 0) && m(d);
|
|
378
420
|
}, []);
|
|
379
|
-
let g = i !== void 0 && i < p.length ? p.slice(0, i) : p,
|
|
380
|
-
let t = d[e.field] || [], n = t.length > 0, r =
|
|
381
|
-
return /* @__PURE__ */
|
|
421
|
+
let g = i !== void 0 && i < p.length ? p.slice(0, i) : p, _ = i !== void 0 && i < p.length ? p.slice(i) : [], v = (e) => {
|
|
422
|
+
let t = d[e.field] || [], n = t.length > 0, r = z.has(e.type || "") && e.options.length === 0 && (e.referenceTo || e.type === "user" || e.type === "owner"), i = r ? "w-72" : "w-56";
|
|
423
|
+
return /* @__PURE__ */ N(x, { children: [/* @__PURE__ */ M(C, {
|
|
382
424
|
asChild: !0,
|
|
383
|
-
children: /* @__PURE__ */
|
|
425
|
+
children: /* @__PURE__ */ N("button", {
|
|
384
426
|
"data-testid": `filter-badge-${e.field}`,
|
|
385
|
-
className:
|
|
427
|
+
className: w("inline-flex items-center gap-1 h-7 px-2 text-xs transition-colors shrink-0 rounded-md", n ? "text-foreground font-medium" : "text-muted-foreground hover:text-foreground"),
|
|
386
428
|
children: [
|
|
387
|
-
/* @__PURE__ */
|
|
429
|
+
/* @__PURE__ */ M("span", {
|
|
388
430
|
className: "truncate max-w-[100px]",
|
|
389
431
|
children: e.label || e.field
|
|
390
432
|
}),
|
|
391
|
-
n && /* @__PURE__ */
|
|
433
|
+
n && /* @__PURE__ */ M("span", {
|
|
392
434
|
className: "text-[10px] text-muted-foreground/80 tabular-nums",
|
|
393
435
|
children: t.length
|
|
394
436
|
}),
|
|
395
|
-
n ? /* @__PURE__ */
|
|
437
|
+
n ? /* @__PURE__ */ M(Ce, {
|
|
396
438
|
className: "h-3 w-3 opacity-60 hover:opacity-100",
|
|
397
439
|
"data-testid": `filter-clear-${e.field}`,
|
|
398
440
|
onClick: (t) => {
|
|
399
441
|
t.stopPropagation(), h(e.field, []);
|
|
400
442
|
}
|
|
401
|
-
}) : /* @__PURE__ */
|
|
443
|
+
}) : /* @__PURE__ */ M(D, { className: "h-3 w-3 opacity-60" })
|
|
402
444
|
]
|
|
403
445
|
})
|
|
404
|
-
}), /* @__PURE__ */
|
|
446
|
+
}), /* @__PURE__ */ M(S, {
|
|
405
447
|
align: "start",
|
|
406
|
-
className:
|
|
407
|
-
children: r ? /* @__PURE__ */
|
|
448
|
+
className: w(i, "p-2"),
|
|
449
|
+
children: r ? /* @__PURE__ */ M("div", {
|
|
408
450
|
"data-testid": `filter-lookup-${e.field}`,
|
|
409
|
-
children: /* @__PURE__ */
|
|
451
|
+
children: /* @__PURE__ */ M(b, {
|
|
410
452
|
field: {
|
|
411
453
|
value: e.field,
|
|
412
454
|
label: e.label || e.field,
|
|
@@ -422,16 +464,16 @@ function z({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i,
|
|
|
422
464
|
h(e.field, n);
|
|
423
465
|
}
|
|
424
466
|
})
|
|
425
|
-
}) : /* @__PURE__ */
|
|
467
|
+
}) : /* @__PURE__ */ M("div", {
|
|
426
468
|
className: "max-h-60 overflow-y-auto space-y-0.5",
|
|
427
469
|
"data-testid": `filter-options-${e.field}`,
|
|
428
|
-
children: e.options.length === 0 ? /* @__PURE__ */
|
|
470
|
+
children: e.options.length === 0 ? /* @__PURE__ */ M("div", {
|
|
429
471
|
className: "px-2 py-3 text-center text-xs text-muted-foreground",
|
|
430
472
|
children: "No options"
|
|
431
|
-
}) : e.options.map((n) => /* @__PURE__ */
|
|
432
|
-
className:
|
|
473
|
+
}) : e.options.map((n) => /* @__PURE__ */ N("label", {
|
|
474
|
+
className: w("flex items-center gap-2 text-sm py-1.5 px-2 rounded cursor-pointer", t.includes(n.value) ? "bg-primary/5 text-primary" : "hover:bg-muted"),
|
|
433
475
|
children: [
|
|
434
|
-
/* @__PURE__ */
|
|
476
|
+
/* @__PURE__ */ M("input", {
|
|
435
477
|
type: "checkbox",
|
|
436
478
|
checked: t.includes(n.value),
|
|
437
479
|
onChange: () => {
|
|
@@ -440,15 +482,15 @@ function z({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i,
|
|
|
440
482
|
},
|
|
441
483
|
className: "rounded border-input"
|
|
442
484
|
}),
|
|
443
|
-
n.color && /* @__PURE__ */
|
|
485
|
+
n.color && /* @__PURE__ */ M("span", {
|
|
444
486
|
className: "h-2.5 w-2.5 rounded-full shrink-0",
|
|
445
487
|
style: { backgroundColor: n.color }
|
|
446
488
|
}),
|
|
447
|
-
/* @__PURE__ */
|
|
489
|
+
/* @__PURE__ */ M("span", {
|
|
448
490
|
className: "truncate flex-1",
|
|
449
491
|
children: n.label
|
|
450
492
|
}),
|
|
451
|
-
n.count !== void 0 && /* @__PURE__ */
|
|
493
|
+
n.count !== void 0 && /* @__PURE__ */ M("span", {
|
|
452
494
|
className: "text-xs text-muted-foreground",
|
|
453
495
|
children: n.count
|
|
454
496
|
})
|
|
@@ -457,39 +499,39 @@ function z({ fields: e, objectDef: t, data: n, onFilterChange: r, maxVisible: i,
|
|
|
457
499
|
})
|
|
458
500
|
})] }, e.field);
|
|
459
501
|
};
|
|
460
|
-
return /* @__PURE__ */
|
|
461
|
-
className:
|
|
502
|
+
return /* @__PURE__ */ M("div", {
|
|
503
|
+
className: w("flex items-center gap-0.5 overflow-x-auto", o),
|
|
462
504
|
"data-testid": "user-filters-dropdown",
|
|
463
|
-
children: p.length === 0 ? /* @__PURE__ */
|
|
505
|
+
children: p.length === 0 ? /* @__PURE__ */ M("span", {
|
|
464
506
|
className: "text-xs text-muted-foreground",
|
|
465
507
|
"data-testid": "user-filters-empty",
|
|
466
508
|
children: "No filter fields"
|
|
467
|
-
}) : /* @__PURE__ */
|
|
509
|
+
}) : /* @__PURE__ */ N(Te, { children: [g.map(v), _.length > 0 && /* @__PURE__ */ N(x, { children: [/* @__PURE__ */ M(C, {
|
|
468
510
|
asChild: !0,
|
|
469
|
-
children: /* @__PURE__ */
|
|
511
|
+
children: /* @__PURE__ */ N("button", {
|
|
470
512
|
"data-testid": "user-filters-more",
|
|
471
513
|
className: "inline-flex items-center gap-1 h-7 px-2 text-xs text-muted-foreground hover:text-foreground transition-colors shrink-0 rounded-md",
|
|
472
514
|
children: [
|
|
473
|
-
/* @__PURE__ */
|
|
474
|
-
/* @__PURE__ */
|
|
515
|
+
/* @__PURE__ */ M("span", { children: l }),
|
|
516
|
+
/* @__PURE__ */ M("span", {
|
|
475
517
|
className: "text-[10px] text-muted-foreground/80 tabular-nums",
|
|
476
|
-
children:
|
|
518
|
+
children: _.length
|
|
477
519
|
}),
|
|
478
|
-
/* @__PURE__ */
|
|
520
|
+
/* @__PURE__ */ M(D, { className: "h-3 w-3 opacity-60" })
|
|
479
521
|
]
|
|
480
522
|
})
|
|
481
|
-
}), /* @__PURE__ */
|
|
523
|
+
}), /* @__PURE__ */ M(S, {
|
|
482
524
|
align: "start",
|
|
483
525
|
className: "w-64 p-2",
|
|
484
526
|
"data-testid": "user-filters-more-content",
|
|
485
|
-
children: /* @__PURE__ */
|
|
527
|
+
children: /* @__PURE__ */ M("div", {
|
|
486
528
|
className: "space-y-1",
|
|
487
|
-
children:
|
|
529
|
+
children: _.map(v)
|
|
488
530
|
})
|
|
489
531
|
})] })] })
|
|
490
532
|
});
|
|
491
533
|
}
|
|
492
|
-
function
|
|
534
|
+
function V({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, className: i }) {
|
|
493
535
|
let [o, s] = a.useState(() => e.find((e) => e.default)?.id || (t ? "__all__" : e[0]?.id || "")), c = a.useCallback((t) => {
|
|
494
536
|
s(t), r(t === "__all__" ? [] : e.find((e) => e.id === t)?.filters || []);
|
|
495
537
|
}, [e, r]), l = a.useMemo(() => {
|
|
@@ -503,23 +545,23 @@ function B({ tabs: e, showAllRecords: t, allowAddTab: n, onFilterChange: r, clas
|
|
|
503
545
|
return a.useEffect(() => {
|
|
504
546
|
let t = e.find((e) => e.default);
|
|
505
547
|
t && r(t.filters || []);
|
|
506
|
-
}, []), /* @__PURE__ */
|
|
507
|
-
className:
|
|
548
|
+
}, []), /* @__PURE__ */ N("div", {
|
|
549
|
+
className: w("flex items-center gap-0.5 overflow-x-auto", i),
|
|
508
550
|
"data-testid": "user-filters-tabs",
|
|
509
|
-
children: [l.map((e) => /* @__PURE__ */
|
|
551
|
+
children: [l.map((e) => /* @__PURE__ */ M("button", {
|
|
510
552
|
"data-testid": `filter-tab-${e.id}`,
|
|
511
553
|
onClick: () => c(e.id),
|
|
512
|
-
className:
|
|
554
|
+
className: w("inline-flex items-center h-7 px-3 text-xs font-medium rounded-md transition-colors shrink-0", o === e.id ? "bg-primary text-primary-foreground" : "text-muted-foreground hover:text-foreground hover:bg-muted"),
|
|
513
555
|
children: e.label
|
|
514
|
-
}, e.id)), n && /* @__PURE__ */
|
|
556
|
+
}, e.id)), n && /* @__PURE__ */ M("button", {
|
|
515
557
|
className: "inline-flex items-center justify-center h-7 w-7 rounded-md text-muted-foreground hover:text-foreground hover:bg-muted shrink-0",
|
|
516
558
|
"data-testid": "filter-tab-add",
|
|
517
559
|
title: "Add filter tab",
|
|
518
|
-
children: /* @__PURE__ */
|
|
560
|
+
children: /* @__PURE__ */ M(pe, { className: "h-3.5 w-3.5" })
|
|
519
561
|
})]
|
|
520
562
|
});
|
|
521
563
|
}
|
|
522
|
-
function
|
|
564
|
+
function H({ fields: e, onFilterChange: t, className: n }) {
|
|
523
565
|
let [r, i] = a.useState(() => {
|
|
524
566
|
let t = /* @__PURE__ */ new Set();
|
|
525
567
|
return e.forEach((e) => {
|
|
@@ -546,10 +588,10 @@ function Ve({ fields: e, onFilterChange: t, className: n }) {
|
|
|
546
588
|
};
|
|
547
589
|
return a.useEffect(() => {
|
|
548
590
|
r.size > 0 && o(r);
|
|
549
|
-
}, []), /* @__PURE__ */
|
|
550
|
-
className:
|
|
591
|
+
}, []), /* @__PURE__ */ M("div", {
|
|
592
|
+
className: w("flex items-center gap-1 overflow-x-auto", n),
|
|
551
593
|
"data-testid": "user-filters-toggle",
|
|
552
|
-
children: e.map((e) => /* @__PURE__ */
|
|
594
|
+
children: e.map((e) => /* @__PURE__ */ M(d, {
|
|
553
595
|
variant: r.has(e.field) ? "default" : "outline",
|
|
554
596
|
size: "sm",
|
|
555
597
|
className: "h-7 px-3 text-xs shrink-0",
|
|
@@ -561,7 +603,7 @@ function Ve({ fields: e, onFilterChange: t, className: n }) {
|
|
|
561
603
|
}
|
|
562
604
|
//#endregion
|
|
563
605
|
//#region src/ListView.tsx
|
|
564
|
-
function
|
|
606
|
+
function Ke(e) {
|
|
565
607
|
switch (e) {
|
|
566
608
|
case "equals":
|
|
567
609
|
case "eq": return "=";
|
|
@@ -585,10 +627,10 @@ function He(e) {
|
|
|
585
627
|
default: return e;
|
|
586
628
|
}
|
|
587
629
|
}
|
|
588
|
-
function
|
|
630
|
+
function qe(e) {
|
|
589
631
|
if (!Array.isArray(e) || e.length < 3) return e;
|
|
590
632
|
let [t, n, r] = e;
|
|
591
|
-
return typeof t == "string" && (t === "and" || t === "or") ? [t, ...e.slice(1).map((e) => Array.isArray(e) ?
|
|
633
|
+
return typeof t == "string" && (t === "and" || t === "or") ? [t, ...e.slice(1).map((e) => Array.isArray(e) ? qe(e) : e)] : n === "in" && Array.isArray(r) ? r.length === 0 ? [] : r.length === 1 ? [
|
|
592
634
|
t,
|
|
593
635
|
"=",
|
|
594
636
|
r[0]
|
|
@@ -606,15 +648,15 @@ function V(e) {
|
|
|
606
648
|
e
|
|
607
649
|
])] : e;
|
|
608
650
|
}
|
|
609
|
-
function
|
|
651
|
+
function Je(e) {
|
|
610
652
|
return e.replace(/_/g, " ").replace(/\b\w/g, (e) => e.toUpperCase());
|
|
611
653
|
}
|
|
612
|
-
function
|
|
613
|
-
return !Array.isArray(e) || e.length === 0 ? [] : e.map((e) => Array.isArray(e) ?
|
|
654
|
+
function Ye(e) {
|
|
655
|
+
return !Array.isArray(e) || e.length === 0 ? [] : e.map((e) => Array.isArray(e) ? qe(e) : e).filter((e) => Array.isArray(e) && e.length > 0);
|
|
614
656
|
}
|
|
615
|
-
function
|
|
657
|
+
function Xe(e) {
|
|
616
658
|
if (!e || !e.conditions || e.conditions.length === 0) return [];
|
|
617
|
-
let t =
|
|
659
|
+
let t = Ye(e.conditions.map((e) => e.operator === "isEmpty" ? [
|
|
618
660
|
e.field,
|
|
619
661
|
"=",
|
|
620
662
|
null
|
|
@@ -624,12 +666,12 @@ function Ge(e) {
|
|
|
624
666
|
null
|
|
625
667
|
] : [
|
|
626
668
|
e.field,
|
|
627
|
-
|
|
669
|
+
Ke(e.operator),
|
|
628
670
|
e.value
|
|
629
671
|
]));
|
|
630
672
|
return t.length === 0 ? [] : t.length === 1 ? t[0] : [e.logic, ...t];
|
|
631
673
|
}
|
|
632
|
-
function
|
|
674
|
+
function Ze(e, t) {
|
|
633
675
|
if (!t || t.length === 0) return {};
|
|
634
676
|
for (let r of t) {
|
|
635
677
|
let t = !1, i = ("condition" in r ? r.condition : void 0) || ("expression" in r ? r.expression : void 0) || void 0;
|
|
@@ -664,11 +706,12 @@ function H(e, t) {
|
|
|
664
706
|
}
|
|
665
707
|
return {};
|
|
666
708
|
}
|
|
667
|
-
var
|
|
709
|
+
var Qe = {
|
|
668
710
|
"list.recordCount": "{{count}} records",
|
|
669
711
|
"list.recordCountOne": "{{count}} record",
|
|
670
712
|
"list.noItems": "No items found",
|
|
671
713
|
"list.noItemsMessage": "There are no records to display. Try adjusting your filters or adding new data.",
|
|
714
|
+
"list.loading": "Loading records…",
|
|
672
715
|
"list.search": "Search",
|
|
673
716
|
"list.filter": "Filter",
|
|
674
717
|
"list.filterRecords": "Filter Records",
|
|
@@ -703,58 +746,58 @@ var Ke = {
|
|
|
703
746
|
"grid.toolbar.densityCycleShortHint": "Click to cycle",
|
|
704
747
|
"list.viewSettings": "View settings",
|
|
705
748
|
"list.viewSettingsHint": "Grouping, color, density, and visible fields."
|
|
706
|
-
},
|
|
707
|
-
let n =
|
|
749
|
+
}, $e = (e, t, n) => n, et = (e, t) => {
|
|
750
|
+
let n = Qe[e] || e;
|
|
708
751
|
if (t) for (let [e, r] of Object.entries(t)) n = n.replace(`{{${e}}}`, String(r));
|
|
709
752
|
return n;
|
|
710
753
|
};
|
|
711
|
-
function
|
|
754
|
+
function tt() {
|
|
712
755
|
try {
|
|
713
|
-
let e =
|
|
714
|
-
return e.t("list.recordCount") === "list.recordCount" ? { t:
|
|
756
|
+
let e = De();
|
|
757
|
+
return e.t("list.recordCount") === "list.recordCount" ? { t: et } : { t: e.t };
|
|
715
758
|
} catch {
|
|
716
|
-
return { t:
|
|
759
|
+
return { t: et };
|
|
717
760
|
}
|
|
718
761
|
}
|
|
719
|
-
function
|
|
762
|
+
function nt() {
|
|
720
763
|
try {
|
|
721
|
-
let { fieldLabel: e } =
|
|
764
|
+
let { fieldLabel: e } = Ee();
|
|
722
765
|
return { fieldLabel: e };
|
|
723
766
|
} catch {
|
|
724
|
-
return { fieldLabel:
|
|
767
|
+
return { fieldLabel: $e };
|
|
725
768
|
}
|
|
726
769
|
}
|
|
727
|
-
var
|
|
728
|
-
let { t:
|
|
770
|
+
var U = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChange: s, onSortChange: c, onSearchChange: l, onHiddenFieldsChange: u, onColumnStateChange: f, onRowClick: p, showViewSwitcher: m = !1, ...h }, g) => {
|
|
771
|
+
let { t: _ } = tt(), { fieldLabel: b } = nt(), { translateOptions: ie } = Oe(), E = a.useMemo(() => e.viewType ? e : {
|
|
729
772
|
...e,
|
|
730
773
|
viewType: "grid"
|
|
731
|
-
}, [e]),
|
|
732
|
-
let e =
|
|
774
|
+
}, [e]), D = a.useCallback((e, t) => E.objectName ? b(E.objectName, e, t) : t, [E.objectName, b]), O = a.useMemo(() => {
|
|
775
|
+
let e = E.userActions, t = E.addRecord?.enabled === !0 && e?.addRecordForm !== !1;
|
|
733
776
|
return {
|
|
734
|
-
showSearch: e?.search === void 0 ?
|
|
735
|
-
showSort: e?.sort === void 0 ?
|
|
736
|
-
showFilters: e?.filter === void 0 ?
|
|
737
|
-
showDensity: e?.rowHeight === void 0 ?
|
|
738
|
-
showHideFields:
|
|
739
|
-
showGroup:
|
|
740
|
-
showColor:
|
|
741
|
-
compactToolbar:
|
|
777
|
+
showSearch: e?.search === void 0 ? E.showSearch !== !1 : e.search,
|
|
778
|
+
showSort: e?.sort === void 0 ? E.showSort !== !1 : e.sort,
|
|
779
|
+
showFilters: e?.filter === void 0 ? E.showFilters !== !1 : e.filter,
|
|
780
|
+
showDensity: e?.rowHeight === void 0 ? E.showDensity !== !1 : e.rowHeight,
|
|
781
|
+
showHideFields: E.showHideFields === !0,
|
|
782
|
+
showGroup: E.showGroup !== !1,
|
|
783
|
+
showColor: E.showColor === !0,
|
|
784
|
+
compactToolbar: E.compactToolbar === !0,
|
|
742
785
|
showAddRecord: t,
|
|
743
|
-
addRecordPosition:
|
|
786
|
+
addRecordPosition: E.addRecord?.position === "bottom" ? "bottom" : "top"
|
|
744
787
|
};
|
|
745
788
|
}, [
|
|
746
|
-
|
|
747
|
-
|
|
748
|
-
|
|
749
|
-
|
|
750
|
-
|
|
751
|
-
|
|
752
|
-
|
|
753
|
-
|
|
754
|
-
|
|
755
|
-
|
|
756
|
-
|
|
757
|
-
]), [
|
|
789
|
+
E.userActions,
|
|
790
|
+
E.showSearch,
|
|
791
|
+
E.showSort,
|
|
792
|
+
E.showFilters,
|
|
793
|
+
E.showDensity,
|
|
794
|
+
E.showHideFields,
|
|
795
|
+
E.showGroup,
|
|
796
|
+
E.showColor,
|
|
797
|
+
E.compactToolbar,
|
|
798
|
+
E.addRecord,
|
|
799
|
+
E.userActions?.addRecordForm
|
|
800
|
+
]), [A, se] = a.useState(E.viewType), [j, ue] = a.useState(""), [de, ye] = a.useState(!1), [Ee, De] = a.useState(!1), [P, Ae] = a.useState(() => E.sort && E.sort.length > 0 ? E.sort.map((e) => {
|
|
758
801
|
if (typeof e == "string") {
|
|
759
802
|
let t = e.trim().split(/\s+/);
|
|
760
803
|
return {
|
|
@@ -768,9 +811,9 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
768
811
|
field: e.field,
|
|
769
812
|
order: e.order || "asc"
|
|
770
813
|
};
|
|
771
|
-
}) : []),
|
|
814
|
+
}) : []), Ne = a.useMemo(() => JSON.stringify(E.sort || []), [E.sort]);
|
|
772
815
|
a.useEffect(() => {
|
|
773
|
-
|
|
816
|
+
E.sort && E.sort.length > 0 ? Ae(E.sort.map((e) => {
|
|
774
817
|
if (typeof e == "string") {
|
|
775
818
|
let t = e.trim().split(/\s+/);
|
|
776
819
|
return {
|
|
@@ -785,42 +828,42 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
785
828
|
order: e.order || "asc"
|
|
786
829
|
};
|
|
787
830
|
})) : Ae([]);
|
|
788
|
-
}, [
|
|
789
|
-
let [
|
|
831
|
+
}, [Ne]);
|
|
832
|
+
let [Ie, Le] = a.useState(!1), [F, I] = a.useState({
|
|
790
833
|
id: "root",
|
|
791
834
|
logic: "and",
|
|
792
835
|
conditions: []
|
|
793
|
-
}), [
|
|
794
|
-
if (!(!
|
|
795
|
-
}),
|
|
796
|
-
if (
|
|
836
|
+
}), [ze, Be] = a.useState(() => {
|
|
837
|
+
if (!(!E.tabs || E.tabs.length === 0)) return E.tabs.find((e) => e.isDefault)?.name ?? E.tabs[0]?.name;
|
|
838
|
+
}), L = a.useCallback((e) => {
|
|
839
|
+
if (Be(e.name), e.filter) {
|
|
797
840
|
let t = {
|
|
798
841
|
id: `tab-filter-${e.name}`,
|
|
799
842
|
logic: e.filter.logic || "and",
|
|
800
843
|
conditions: e.filter.conditions || []
|
|
801
844
|
};
|
|
802
|
-
|
|
845
|
+
I(t), s?.(t);
|
|
803
846
|
} else {
|
|
804
847
|
let e = {
|
|
805
848
|
id: "root",
|
|
806
849
|
logic: "and",
|
|
807
850
|
conditions: []
|
|
808
851
|
};
|
|
809
|
-
|
|
852
|
+
I(e), s?.(e);
|
|
810
853
|
}
|
|
811
|
-
}, [s]),
|
|
812
|
-
a.useImperativeHandle(
|
|
813
|
-
if (!(!
|
|
814
|
-
e.resource ===
|
|
854
|
+
}, [s]), R = h.dataSource, [z, Ge] = a.useState([]), [B, V] = a.useState(() => !(Array.isArray(E.data) || E.data && typeof E.data == "object" && E.data.provider === "value" && Array.isArray(E.data.items))), [H, Ke] = a.useState(null), [qe, Ze] = a.useState(!1), [Qe, $e] = a.useState(0), [et, U] = a.useState(!1);
|
|
855
|
+
a.useImperativeHandle(g, () => ({ refresh: () => $e((e) => e + 1) }), []), a.useEffect(() => {
|
|
856
|
+
if (!(!R?.onMutation || !E.objectName || E.refreshTrigger)) return R.onMutation((e) => {
|
|
857
|
+
e.resource === E.objectName && $e((e) => e + 1);
|
|
815
858
|
});
|
|
816
859
|
}, [
|
|
817
|
-
|
|
818
|
-
|
|
819
|
-
|
|
860
|
+
R,
|
|
861
|
+
E.objectName,
|
|
862
|
+
E.refreshTrigger
|
|
820
863
|
]);
|
|
821
|
-
let [
|
|
822
|
-
if (
|
|
823
|
-
let e = typeof
|
|
864
|
+
let [rt, it] = a.useState(void 0), W = rt ?? E.pagination?.pageSize ?? 100, G = a.useMemo(() => {
|
|
865
|
+
if (E.grouping?.fields?.length) return E.grouping;
|
|
866
|
+
let e = typeof E.groupBy == "string" ? E.groupBy.trim() : "", t = typeof E.groupBy2 == "string" ? E.groupBy2.trim() : "", n = [];
|
|
824
867
|
return e && n.push({
|
|
825
868
|
field: e,
|
|
826
869
|
order: "asc",
|
|
@@ -831,21 +874,21 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
831
874
|
collapsed: !1
|
|
832
875
|
}), n.length > 0 ? { fields: n } : void 0;
|
|
833
876
|
}, [
|
|
834
|
-
|
|
835
|
-
|
|
836
|
-
|
|
837
|
-
]), [
|
|
877
|
+
E.grouping,
|
|
878
|
+
E.groupBy,
|
|
879
|
+
E.groupBy2
|
|
880
|
+
]), [K, at] = a.useState(G), [ot, st] = a.useState(!1), ct = a.useRef(G);
|
|
838
881
|
a.useEffect(() => {
|
|
839
|
-
|
|
840
|
-
}, [
|
|
841
|
-
let [
|
|
882
|
+
ct.current !== G && (ct.current = G, at(G));
|
|
883
|
+
}, [G]);
|
|
884
|
+
let [q, lt] = a.useState(E.rowColor), [ut, dt] = a.useState(!1), [ft, pt] = a.useState([]), mt = a.useRef(0), [ht, gt] = a.useState(() => {
|
|
842
885
|
let e = /* @__PURE__ */ new Set();
|
|
843
|
-
return
|
|
886
|
+
return E.quickFilters?.forEach((t) => {
|
|
844
887
|
let n = r(t);
|
|
845
888
|
n.defaultActive && e.add(n.id);
|
|
846
889
|
}), e;
|
|
847
|
-
}), [
|
|
848
|
-
if (
|
|
890
|
+
}), [_t, vt] = a.useState([]), yt = a.useMemo(() => {
|
|
891
|
+
if (E.userFilters) return E.userFilters;
|
|
849
892
|
if (!H?.fields) return;
|
|
850
893
|
let e = new Set([
|
|
851
894
|
"select",
|
|
@@ -854,73 +897,73 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
854
897
|
]), t = [], n = Array.isArray(H.fields) ? H.fields.map((e) => [e.name, e]) : Object.entries(H.fields);
|
|
855
898
|
for (let [r, i] of n) (e.has(i.type) || i.options && !i.type) && t.push({
|
|
856
899
|
field: r,
|
|
857
|
-
label:
|
|
900
|
+
label: D(r, i.label || r),
|
|
858
901
|
type: i.type === "boolean" ? "boolean" : i.type === "multi-select" ? "multi-select" : "select"
|
|
859
902
|
});
|
|
860
903
|
if (t.length !== 0) return {
|
|
861
904
|
element: "dropdown",
|
|
862
905
|
fields: t
|
|
863
906
|
};
|
|
864
|
-
}, [
|
|
907
|
+
}, [E.userFilters, H]), [J, bt] = a.useState(() => new Set(E.hiddenFields || [])), xt = a.useMemo(() => JSON.stringify(E.hiddenFields || []), [E.hiddenFields]);
|
|
865
908
|
a.useEffect(() => {
|
|
866
|
-
|
|
867
|
-
}, [
|
|
868
|
-
let
|
|
869
|
-
|
|
870
|
-
}, [u]), [
|
|
871
|
-
if (
|
|
872
|
-
}, [
|
|
909
|
+
bt(new Set(E.hiddenFields || []));
|
|
910
|
+
}, [xt]);
|
|
911
|
+
let St = a.useCallback((e) => {
|
|
912
|
+
bt(e), u?.(Array.from(e));
|
|
913
|
+
}, [u]), [Ct, wt] = a.useState(!1), [Tt, Et] = a.useState(!1), Y = a.useMemo(() => i(E.quickFilters), [E.quickFilters]), X = a.useMemo(() => {
|
|
914
|
+
if (E.exportOptions) return Array.isArray(E.exportOptions) ? { formats: E.exportOptions } : E.exportOptions;
|
|
915
|
+
}, [E.exportOptions]), Z = je(a.useMemo(() => E.densityMode ? E.densityMode : E.rowHeight ? {
|
|
873
916
|
compact: "compact",
|
|
874
917
|
short: "compact",
|
|
875
918
|
medium: "comfortable",
|
|
876
919
|
tall: "spacious",
|
|
877
920
|
extra_tall: "spacious"
|
|
878
|
-
}[
|
|
879
|
-
if (typeof window > "u") return
|
|
921
|
+
}[E.rowHeight] || "comfortable" : "compact", [E.densityMode, E.rowHeight]), { onChange: E.onDensityChange }), Dt = a.useMemo(() => `objectui:gallery:density:${E.objectName ?? "default"}`, [E.objectName]), [Q, Ot] = a.useState(() => {
|
|
922
|
+
if (typeof window > "u") return E.gallery?.cardSize ?? "medium";
|
|
880
923
|
try {
|
|
881
|
-
let e = window.localStorage.getItem(
|
|
924
|
+
let e = window.localStorage.getItem(Dt);
|
|
882
925
|
if (e === "small" || e === "medium" || e === "large") return e;
|
|
883
926
|
} catch {}
|
|
884
|
-
return
|
|
885
|
-
}),
|
|
886
|
-
|
|
927
|
+
return E.gallery?.cardSize ?? "medium";
|
|
928
|
+
}), kt = a.useCallback(() => {
|
|
929
|
+
Ot((e) => {
|
|
887
930
|
let t = e === "large" ? "medium" : e === "medium" ? "small" : "large";
|
|
888
931
|
try {
|
|
889
|
-
window.localStorage.setItem(
|
|
932
|
+
window.localStorage.setItem(Dt, t);
|
|
890
933
|
} catch {}
|
|
891
934
|
return t;
|
|
892
935
|
});
|
|
893
|
-
}, [
|
|
936
|
+
}, [Dt]), { ref: At, isRefreshing: jt, pullDistance: Mt } = Pe({
|
|
894
937
|
onRefresh: a.useCallback(async () => {
|
|
895
|
-
|
|
938
|
+
$e((e) => e + 1);
|
|
896
939
|
}, []),
|
|
897
|
-
enabled: !!
|
|
898
|
-
}),
|
|
940
|
+
enabled: !!R && !!E.objectName
|
|
941
|
+
}), Nt = a.useMemo(() => E.id ? `listview-${E.objectName}-${E.id}-view` : `listview-${E.objectName}-view`, [E.objectName, E.id]);
|
|
899
942
|
a.useEffect(() => {
|
|
900
943
|
let e = !0;
|
|
901
|
-
return
|
|
902
|
-
if (!
|
|
903
|
-
|
|
944
|
+
return Ze(!1), Ke(null), (async () => {
|
|
945
|
+
if (!R || !E.objectName) {
|
|
946
|
+
Ze(!0);
|
|
904
947
|
return;
|
|
905
948
|
}
|
|
906
|
-
if (typeof
|
|
907
|
-
|
|
949
|
+
if (typeof R.getObjectSchema != "function") {
|
|
950
|
+
Ze(!0);
|
|
908
951
|
return;
|
|
909
952
|
}
|
|
910
953
|
try {
|
|
911
|
-
let t = await
|
|
954
|
+
let t = await R.getObjectSchema(E.objectName);
|
|
912
955
|
e && Ke(t);
|
|
913
956
|
} catch (e) {
|
|
914
957
|
console.warn("Failed to fetch object schema for ListView:", e);
|
|
915
958
|
} finally {
|
|
916
|
-
e &&
|
|
959
|
+
e && Ze(!0);
|
|
917
960
|
}
|
|
918
961
|
})(), () => {
|
|
919
962
|
e = !1;
|
|
920
963
|
};
|
|
921
|
-
}, [
|
|
922
|
-
let
|
|
923
|
-
let e = Array.isArray(
|
|
964
|
+
}, [E.objectName, R]);
|
|
965
|
+
let Pt = a.useMemo(() => {
|
|
966
|
+
let e = Array.isArray(E.fields) ? E.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], n = new Set(e), r = (e) => {
|
|
924
967
|
if (!e) return;
|
|
925
968
|
let t = [
|
|
926
969
|
e.groupField,
|
|
@@ -944,140 +987,142 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
944
987
|
];
|
|
945
988
|
for (let e of t) typeof e == "string" && e && n.add(e);
|
|
946
989
|
};
|
|
947
|
-
r(
|
|
990
|
+
r(E.kanban), r(E.options?.kanban), r(E.calendar), r(E.options?.calendar), r(E.gallery), r(E.options?.gallery), r(E.timeline), r(E.options?.timeline), r(E.gantt), r(E.options?.gantt);
|
|
948
991
|
let i = n.size > 0 ? Array.from(n) : void 0;
|
|
949
992
|
return t(H?.fields, i);
|
|
950
993
|
}, [
|
|
951
994
|
H?.fields,
|
|
952
|
-
|
|
953
|
-
|
|
954
|
-
|
|
955
|
-
|
|
956
|
-
|
|
957
|
-
|
|
958
|
-
|
|
959
|
-
]),
|
|
995
|
+
E.fields,
|
|
996
|
+
E.kanban,
|
|
997
|
+
E.calendar,
|
|
998
|
+
E.gallery,
|
|
999
|
+
E.timeline,
|
|
1000
|
+
E.gantt,
|
|
1001
|
+
E.options
|
|
1002
|
+
]), $ = Fe();
|
|
960
1003
|
a.useEffect(() => {
|
|
961
|
-
let e = !0, t = ++
|
|
962
|
-
if (
|
|
963
|
-
let e =
|
|
1004
|
+
let e = !0, t = ++mt.current;
|
|
1005
|
+
if (E.data && typeof E.data == "object" && !Array.isArray(E.data)) {
|
|
1006
|
+
let e = E.data;
|
|
964
1007
|
if (e.provider === "value" && Array.isArray(e.items)) {
|
|
965
1008
|
let t = e.items;
|
|
966
|
-
if (
|
|
967
|
-
let e =
|
|
1009
|
+
if (j) {
|
|
1010
|
+
let e = j.toLowerCase();
|
|
968
1011
|
t = t.filter((t) => Object.values(t).some((t) => t != null && String(t).toLowerCase().includes(e)));
|
|
969
1012
|
}
|
|
970
|
-
|
|
1013
|
+
Ge(t), V(!1), U(!1);
|
|
971
1014
|
return;
|
|
972
1015
|
}
|
|
973
1016
|
}
|
|
974
|
-
if (Array.isArray(
|
|
975
|
-
let e =
|
|
976
|
-
if (
|
|
977
|
-
let t =
|
|
1017
|
+
if (Array.isArray(E.data)) {
|
|
1018
|
+
let e = E.data;
|
|
1019
|
+
if (j) {
|
|
1020
|
+
let t = j.toLowerCase();
|
|
978
1021
|
e = e.filter((e) => Object.values(e).some((e) => e != null && String(e).toLowerCase().includes(t)));
|
|
979
1022
|
}
|
|
980
|
-
|
|
1023
|
+
Ge(e), V(!1), U(!1);
|
|
981
1024
|
return;
|
|
982
1025
|
}
|
|
983
1026
|
return qe ? ((async () => {
|
|
984
|
-
if (!
|
|
985
|
-
V(!
|
|
986
|
-
|
|
987
|
-
|
|
988
|
-
|
|
989
|
-
|
|
990
|
-
|
|
991
|
-
|
|
992
|
-
|
|
993
|
-
|
|
994
|
-
|
|
995
|
-
|
|
996
|
-
|
|
997
|
-
|
|
998
|
-
|
|
999
|
-
|
|
1000
|
-
|
|
1001
|
-
|
|
1002
|
-
|
|
1003
|
-
|
|
1004
|
-
|
|
1005
|
-
|
|
1006
|
-
|
|
1007
|
-
|
|
1008
|
-
|
|
1009
|
-
|
|
1010
|
-
|
|
1011
|
-
|
|
1012
|
-
|
|
1013
|
-
|
|
1014
|
-
|
|
1015
|
-
|
|
1016
|
-
|
|
1017
|
-
|
|
1018
|
-
|
|
1019
|
-
|
|
1020
|
-
|
|
1021
|
-
|
|
1022
|
-
|
|
1023
|
-
|
|
1024
|
-
|
|
1025
|
-
|
|
1026
|
-
|
|
1027
|
-
|
|
1028
|
-
]
|
|
1029
|
-
|
|
1030
|
-
|
|
1031
|
-
|
|
1032
|
-
|
|
1033
|
-
|
|
1034
|
-
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
1049
|
-
|
|
1050
|
-
|
|
1051
|
-
|
|
1052
|
-
|
|
1053
|
-
|
|
1054
|
-
|
|
1055
|
-
|
|
1027
|
+
if (!R || !E.objectName) {
|
|
1028
|
+
V(!1);
|
|
1029
|
+
return;
|
|
1030
|
+
}
|
|
1031
|
+
V(!0);
|
|
1032
|
+
try {
|
|
1033
|
+
let n = [], r = E.filters || [], i = Xe(F), a = [];
|
|
1034
|
+
Y && ht.size > 0 && Y.forEach((e) => {
|
|
1035
|
+
ht.has(e.id) && e.filters && e.filters.length > 0 && a.push(e.filters);
|
|
1036
|
+
});
|
|
1037
|
+
let o = Ye(_t), s = [
|
|
1038
|
+
...r.length > 0 ? [r] : [],
|
|
1039
|
+
...i.length > 0 ? [i] : [],
|
|
1040
|
+
...a,
|
|
1041
|
+
...o
|
|
1042
|
+
].filter((e) => Array.isArray(e) && e.length > 0);
|
|
1043
|
+
s.length > 1 ? n = ["and", ...s] : s.length === 1 && (n = s[0]);
|
|
1044
|
+
let c = P.length > 0 ? P.filter((e) => e.field).map((e) => ({
|
|
1045
|
+
field: e.field,
|
|
1046
|
+
order: e.order
|
|
1047
|
+
})) : void 0, l = (() => {
|
|
1048
|
+
let e = Array.isArray(E.fields) ? E.fields.map((e) => typeof e == "string" ? e : e?.field).filter((e) => typeof e == "string" && e.length > 0) : [], t = $?.isLoaded && E.objectName ? e.filter((e) => $.checkField(E.objectName, e, "read")) : e;
|
|
1049
|
+
if (t.length === 0) return;
|
|
1050
|
+
let n = new Set(["id"]);
|
|
1051
|
+
for (let e of t) n.add(e);
|
|
1052
|
+
for (let e of Pt) n.add(e);
|
|
1053
|
+
let r = (e) => {
|
|
1054
|
+
if (!e) return;
|
|
1055
|
+
let t = [
|
|
1056
|
+
e.groupField,
|
|
1057
|
+
e.groupBy,
|
|
1058
|
+
e.titleField,
|
|
1059
|
+
e.cardTitle,
|
|
1060
|
+
e.startDateField,
|
|
1061
|
+
e.endDateField,
|
|
1062
|
+
e.dateField,
|
|
1063
|
+
e.endField,
|
|
1064
|
+
e.colorField,
|
|
1065
|
+
e.allDayField,
|
|
1066
|
+
e.coverField,
|
|
1067
|
+
e.imageField,
|
|
1068
|
+
e.subtitleField,
|
|
1069
|
+
e.swimlaneField,
|
|
1070
|
+
e.valueField,
|
|
1071
|
+
...Array.isArray(e.cardFields) ? e.cardFields : [],
|
|
1072
|
+
...Array.isArray(e.visibleFields) ? e.visibleFields : [],
|
|
1073
|
+
...Array.isArray(e.metaFields) ? e.metaFields : []
|
|
1074
|
+
];
|
|
1075
|
+
for (let e of t) typeof e == "string" && e && n.add(e);
|
|
1076
|
+
};
|
|
1077
|
+
r(E.kanban), r(E.options?.kanban), r(E.calendar), r(E.options?.calendar), r(E.gallery), r(E.options?.gallery), r(E.timeline), r(E.options?.timeline);
|
|
1078
|
+
{
|
|
1079
|
+
let e = E.timeline ?? E.options?.timeline;
|
|
1080
|
+
e && !Array.isArray(e.metaFields) && (n.add("status"), n.add("priority"));
|
|
1081
|
+
}
|
|
1082
|
+
return r(E.gantt), r(E.options?.gantt), Array.from(n);
|
|
1083
|
+
})(), u = Array.isArray(n) ? n.length > 0 : !!n && Object.keys(n).length > 0, d = await R.find(E.objectName, {
|
|
1084
|
+
...u ? { $filter: n } : {},
|
|
1085
|
+
$orderby: c,
|
|
1086
|
+
$top: W,
|
|
1087
|
+
...l ? { $select: l } : {},
|
|
1088
|
+
...Pt.length > 0 ? { $expand: Pt } : {},
|
|
1089
|
+
...j ? {
|
|
1090
|
+
$search: j,
|
|
1091
|
+
...E.searchableFields && E.searchableFields.length > 0 ? { $searchFields: E.searchableFields } : {}
|
|
1092
|
+
} : {}
|
|
1093
|
+
});
|
|
1094
|
+
if (!e || t !== mt.current) return;
|
|
1095
|
+
let f = [];
|
|
1096
|
+
Array.isArray(d) ? f = d : d && typeof d == "object" && (Array.isArray(d.data) ? f = d.data : Array.isArray(d.records) ? f = d.records : Array.isArray(d.value) && (f = d.value)), Ge(f), U(f.length >= W);
|
|
1097
|
+
} catch (e) {
|
|
1098
|
+
t === mt.current && console.error("ListView data fetch error:", e);
|
|
1099
|
+
} finally {
|
|
1100
|
+
e && t === mt.current && V(!1);
|
|
1056
1101
|
}
|
|
1057
1102
|
})(), () => {
|
|
1058
1103
|
e = !1;
|
|
1059
1104
|
}) : void 0;
|
|
1060
1105
|
}, [
|
|
1061
|
-
|
|
1062
|
-
|
|
1063
|
-
|
|
1064
|
-
|
|
1065
|
-
|
|
1066
|
-
|
|
1067
|
-
|
|
1068
|
-
pt,
|
|
1069
|
-
J,
|
|
1106
|
+
E.objectName,
|
|
1107
|
+
E.data,
|
|
1108
|
+
R,
|
|
1109
|
+
E.filters,
|
|
1110
|
+
W,
|
|
1111
|
+
P,
|
|
1112
|
+
F,
|
|
1070
1113
|
ht,
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
1074
|
-
|
|
1114
|
+
Y,
|
|
1115
|
+
_t,
|
|
1116
|
+
Qe,
|
|
1117
|
+
j,
|
|
1118
|
+
E.searchableFields,
|
|
1119
|
+
Pt,
|
|
1075
1120
|
qe,
|
|
1076
|
-
|
|
1077
|
-
|
|
1121
|
+
E.refreshTrigger,
|
|
1122
|
+
$
|
|
1078
1123
|
]);
|
|
1079
|
-
let
|
|
1080
|
-
if (
|
|
1124
|
+
let Ft = a.useMemo(() => {
|
|
1125
|
+
if (E.appearance?.allowedVisualizations && E.appearance.allowedVisualizations.length > 0) return E.appearance.allowedVisualizations.filter((e) => [
|
|
1081
1126
|
"grid",
|
|
1082
1127
|
"kanban",
|
|
1083
1128
|
"gallery",
|
|
@@ -1087,7 +1132,7 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1087
1132
|
"map"
|
|
1088
1133
|
].includes(e));
|
|
1089
1134
|
let e = ["grid"];
|
|
1090
|
-
return (
|
|
1135
|
+
return (E.kanban?.groupField || E.options?.kanban?.groupField) && e.push("kanban"), (E.gallery?.coverField || E.gallery?.imageField || E.options?.gallery?.imageField) && e.push("gallery"), (E.calendar?.startDateField || E.options?.calendar?.startDateField) && e.push("calendar"), (E.timeline?.startDateField || E.options?.timeline?.startDateField || E.options?.timeline?.dateField || E.options?.calendar?.startDateField) && e.push("timeline"), (E.gantt?.startDateField || E.options?.gantt?.startDateField) && e.push("gantt"), (E.options?.map?.locationField || E.options?.map?.latitudeField && E.options?.map?.longitudeField) && e.push("map"), E.viewType && !e.includes(E.viewType) && [
|
|
1091
1136
|
"grid",
|
|
1092
1137
|
"kanban",
|
|
1093
1138
|
"calendar",
|
|
@@ -1095,45 +1140,45 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1095
1140
|
"gantt",
|
|
1096
1141
|
"map",
|
|
1097
1142
|
"gallery"
|
|
1098
|
-
].includes(
|
|
1143
|
+
].includes(E.viewType) && e.push(E.viewType), e;
|
|
1099
1144
|
}, [
|
|
1100
|
-
|
|
1101
|
-
|
|
1102
|
-
|
|
1103
|
-
|
|
1104
|
-
|
|
1105
|
-
|
|
1106
|
-
|
|
1107
|
-
|
|
1145
|
+
E.options,
|
|
1146
|
+
E.viewType,
|
|
1147
|
+
E.kanban,
|
|
1148
|
+
E.calendar,
|
|
1149
|
+
E.gantt,
|
|
1150
|
+
E.gallery,
|
|
1151
|
+
E.timeline,
|
|
1152
|
+
E.appearance?.allowedVisualizations
|
|
1108
1153
|
]);
|
|
1109
1154
|
a.useEffect(() => {
|
|
1110
|
-
|
|
1111
|
-
}, [
|
|
1112
|
-
let
|
|
1113
|
-
|
|
1155
|
+
E.viewType && se(E.viewType);
|
|
1156
|
+
}, [E.viewType]);
|
|
1157
|
+
let It = a.useCallback((e) => {
|
|
1158
|
+
se(e);
|
|
1114
1159
|
try {
|
|
1115
|
-
localStorage.setItem(
|
|
1160
|
+
localStorage.setItem(Nt, e);
|
|
1116
1161
|
} catch (e) {
|
|
1117
1162
|
console.warn("Failed to save view preference to localStorage:", e);
|
|
1118
1163
|
}
|
|
1119
1164
|
o?.(e);
|
|
1120
|
-
}, [
|
|
1121
|
-
|
|
1122
|
-
}, [l]),
|
|
1123
|
-
navigation:
|
|
1124
|
-
objectName:
|
|
1125
|
-
onNavigate:
|
|
1165
|
+
}, [Nt, o]), Lt = a.useCallback((e) => {
|
|
1166
|
+
ue(e), l?.(e);
|
|
1167
|
+
}, [l]), Rt = Me({
|
|
1168
|
+
navigation: E.navigation,
|
|
1169
|
+
objectName: E.objectName,
|
|
1170
|
+
onNavigate: E.onNavigate,
|
|
1126
1171
|
onRowClick: p
|
|
1127
|
-
}),
|
|
1128
|
-
let e =
|
|
1129
|
-
if (Array.isArray(e) || (e = []),
|
|
1172
|
+
}), zt = a.useMemo(() => {
|
|
1173
|
+
let e = E.fields || [];
|
|
1174
|
+
if (Array.isArray(e) || (e = []), $?.isLoaded && E.objectName && (e = e.filter((e) => {
|
|
1130
1175
|
let t = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field;
|
|
1131
|
-
return t ?
|
|
1132
|
-
})),
|
|
1176
|
+
return t ? $.checkField(E.objectName, t, "read") : !0;
|
|
1177
|
+
})), J.size > 0 && (e = e.filter((e) => {
|
|
1133
1178
|
let t = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field;
|
|
1134
|
-
return t != null && !
|
|
1135
|
-
})),
|
|
1136
|
-
let t = new Map(
|
|
1179
|
+
return t != null && !J.has(t);
|
|
1180
|
+
})), E.fieldOrder && E.fieldOrder.length > 0) {
|
|
1181
|
+
let t = new Map(E.fieldOrder.map((e, t) => [e, t]));
|
|
1137
1182
|
e = [...e].sort((e, n) => {
|
|
1138
1183
|
let r = typeof e == "string" ? e : e?.name || e?.fieldName || e?.field, i = typeof n == "string" ? n : n?.name || n?.fieldName || n?.field;
|
|
1139
1184
|
return (t.get(r) ?? Infinity) - (t.get(i) ?? Infinity);
|
|
@@ -1141,131 +1186,131 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1141
1186
|
}
|
|
1142
1187
|
return e;
|
|
1143
1188
|
}, [
|
|
1144
|
-
|
|
1145
|
-
|
|
1146
|
-
|
|
1147
|
-
|
|
1148
|
-
|
|
1149
|
-
]),
|
|
1150
|
-
let e =
|
|
1151
|
-
objectName:
|
|
1152
|
-
fields:
|
|
1153
|
-
filters:
|
|
1154
|
-
sort:
|
|
1189
|
+
E.fields,
|
|
1190
|
+
E.objectName,
|
|
1191
|
+
J,
|
|
1192
|
+
E.fieldOrder,
|
|
1193
|
+
$
|
|
1194
|
+
]), Bt = a.useMemo(() => {
|
|
1195
|
+
let e = Z.mode === "compact" ? "compact" : Z.mode === "spacious" ? "tall" : "medium", t = {
|
|
1196
|
+
objectName: E.objectName,
|
|
1197
|
+
fields: zt,
|
|
1198
|
+
filters: E.filters,
|
|
1199
|
+
sort: P,
|
|
1155
1200
|
className: "h-full w-full",
|
|
1156
1201
|
showSearch: !1,
|
|
1157
|
-
onRowClick:
|
|
1202
|
+
onRowClick: Rt.handleClick,
|
|
1158
1203
|
rowHeight: e,
|
|
1159
1204
|
hideRowHeightToggle: !0,
|
|
1160
|
-
...
|
|
1161
|
-
...
|
|
1205
|
+
...E.striped == null ? {} : { striped: E.striped },
|
|
1206
|
+
...E.bordered == null ? {} : { bordered: E.bordered },
|
|
1162
1207
|
...f ? { onColumnStateChange: f } : {},
|
|
1163
|
-
...
|
|
1208
|
+
...E.columnState ? { columnState: E.columnState } : {}
|
|
1164
1209
|
};
|
|
1165
|
-
switch (
|
|
1210
|
+
switch (A) {
|
|
1166
1211
|
case "grid": return {
|
|
1167
1212
|
type: "object-grid",
|
|
1168
1213
|
...t,
|
|
1169
|
-
columns:
|
|
1170
|
-
...
|
|
1171
|
-
...
|
|
1172
|
-
...
|
|
1173
|
-
...
|
|
1174
|
-
...
|
|
1175
|
-
...
|
|
1176
|
-
...
|
|
1177
|
-
...
|
|
1178
|
-
...
|
|
1179
|
-
...
|
|
1180
|
-
...
|
|
1181
|
-
...
|
|
1182
|
-
...
|
|
1183
|
-
...
|
|
1214
|
+
columns: zt,
|
|
1215
|
+
...E.conditionalFormatting ? { conditionalFormatting: E.conditionalFormatting } : {},
|
|
1216
|
+
...E.inlineEdit == null ? {} : { editable: E.inlineEdit },
|
|
1217
|
+
...E.wrapHeaders == null ? {} : { wrapHeaders: E.wrapHeaders },
|
|
1218
|
+
...E.virtualScroll == null ? {} : { virtualScroll: E.virtualScroll },
|
|
1219
|
+
...E.resizable == null ? {} : { resizable: E.resizable },
|
|
1220
|
+
...E.selection ? { selection: E.selection } : {},
|
|
1221
|
+
...E.pagination ? { pagination: E.pagination } : {},
|
|
1222
|
+
...K ? { grouping: K } : {},
|
|
1223
|
+
...q ? { rowColor: q } : {},
|
|
1224
|
+
...E.rowActions ? { rowActions: E.rowActions } : {},
|
|
1225
|
+
...E.rowActionDefs ? { rowActionDefs: E.rowActionDefs } : {},
|
|
1226
|
+
...E.bulkActions ? { batchActions: E.bulkActions } : {},
|
|
1227
|
+
...E.bulkActionDefs ? { bulkActionDefs: E.bulkActionDefs } : {},
|
|
1228
|
+
...E.options?.grid || {}
|
|
1184
1229
|
};
|
|
1185
1230
|
case "kanban": return {
|
|
1186
1231
|
type: "object-kanban",
|
|
1187
1232
|
...t,
|
|
1188
|
-
groupBy:
|
|
1189
|
-
groupField:
|
|
1190
|
-
...
|
|
1191
|
-
cardFields:
|
|
1192
|
-
...
|
|
1193
|
-
...
|
|
1194
|
-
...
|
|
1233
|
+
groupBy: E.kanban?.groupField || E.options?.kanban?.groupField || "status",
|
|
1234
|
+
groupField: E.kanban?.groupField || E.options?.kanban?.groupField || "status",
|
|
1235
|
+
...E.kanban?.titleField || E.options?.kanban?.titleField ? { titleField: E.kanban?.titleField || E.options?.kanban?.titleField } : {},
|
|
1236
|
+
cardFields: E.kanban?.cardFields || zt || [],
|
|
1237
|
+
...K ? { grouping: K } : {},
|
|
1238
|
+
...E.options?.kanban || {},
|
|
1239
|
+
...E.kanban || {}
|
|
1195
1240
|
};
|
|
1196
1241
|
case "calendar": return {
|
|
1197
1242
|
type: "object-calendar",
|
|
1198
1243
|
...t,
|
|
1199
|
-
startDateField:
|
|
1200
|
-
endDateField:
|
|
1201
|
-
...
|
|
1202
|
-
...
|
|
1203
|
-
...
|
|
1204
|
-
...
|
|
1244
|
+
startDateField: E.calendar?.startDateField || E.options?.calendar?.startDateField || "start_date",
|
|
1245
|
+
endDateField: E.calendar?.endDateField || E.options?.calendar?.endDateField || "end_date",
|
|
1246
|
+
...E.calendar?.titleField || E.options?.calendar?.titleField ? { titleField: E.calendar?.titleField || E.options?.calendar?.titleField } : {},
|
|
1247
|
+
...E.calendar?.defaultView ? { defaultView: E.calendar.defaultView } : {},
|
|
1248
|
+
...E.options?.calendar || {},
|
|
1249
|
+
...E.calendar || {}
|
|
1205
1250
|
};
|
|
1206
1251
|
case "gallery": {
|
|
1207
1252
|
let e = {
|
|
1208
|
-
...
|
|
1209
|
-
...
|
|
1210
|
-
cardSize:
|
|
1253
|
+
...E.options?.gallery || {},
|
|
1254
|
+
...E.gallery || {},
|
|
1255
|
+
cardSize: Q
|
|
1211
1256
|
};
|
|
1212
1257
|
return {
|
|
1213
1258
|
type: "object-gallery",
|
|
1214
1259
|
...t,
|
|
1215
1260
|
gallery: Object.keys(e).length > 0 ? e : void 0,
|
|
1216
|
-
imageField:
|
|
1217
|
-
titleField:
|
|
1218
|
-
subtitleField:
|
|
1219
|
-
...
|
|
1261
|
+
imageField: E.gallery?.coverField || E.gallery?.imageField || E.options?.gallery?.imageField,
|
|
1262
|
+
titleField: E.gallery?.titleField || E.options?.gallery?.titleField || "name",
|
|
1263
|
+
subtitleField: E.gallery?.subtitleField || E.options?.gallery?.subtitleField,
|
|
1264
|
+
...K ? { grouping: K } : {}
|
|
1220
1265
|
};
|
|
1221
1266
|
}
|
|
1222
1267
|
case "timeline": {
|
|
1223
1268
|
let e = {
|
|
1224
|
-
...
|
|
1225
|
-
...
|
|
1269
|
+
...E.options?.timeline || {},
|
|
1270
|
+
...E.timeline || {}
|
|
1226
1271
|
};
|
|
1227
1272
|
return {
|
|
1228
1273
|
type: "object-timeline",
|
|
1229
1274
|
...t,
|
|
1230
1275
|
timeline: Object.keys(e).length > 0 ? e : void 0,
|
|
1231
|
-
startDateField:
|
|
1232
|
-
titleField:
|
|
1233
|
-
...
|
|
1234
|
-
...
|
|
1235
|
-
...
|
|
1236
|
-
...
|
|
1276
|
+
startDateField: E.timeline?.startDateField || E.options?.timeline?.startDateField || E.options?.timeline?.dateField || "created_at",
|
|
1277
|
+
titleField: E.timeline?.titleField || E.options?.timeline?.titleField || "name",
|
|
1278
|
+
...E.timeline?.endDateField ? { endDateField: E.timeline.endDateField } : {},
|
|
1279
|
+
...E.timeline?.groupByField ? { groupByField: E.timeline.groupByField } : {},
|
|
1280
|
+
...E.timeline?.colorField ? { colorField: E.timeline.colorField } : {},
|
|
1281
|
+
...E.timeline?.scale ? { scale: E.timeline.scale } : {}
|
|
1237
1282
|
};
|
|
1238
1283
|
}
|
|
1239
1284
|
case "gantt": return {
|
|
1240
1285
|
type: "object-gantt",
|
|
1241
1286
|
...t,
|
|
1242
|
-
startDateField:
|
|
1243
|
-
endDateField:
|
|
1244
|
-
progressField:
|
|
1245
|
-
dependenciesField:
|
|
1246
|
-
...
|
|
1247
|
-
...
|
|
1248
|
-
...
|
|
1287
|
+
startDateField: E.gantt?.startDateField || E.options?.gantt?.startDateField || "start_date",
|
|
1288
|
+
endDateField: E.gantt?.endDateField || E.options?.gantt?.endDateField || "end_date",
|
|
1289
|
+
progressField: E.gantt?.progressField || E.options?.gantt?.progressField || "progress",
|
|
1290
|
+
dependenciesField: E.gantt?.dependenciesField || E.options?.gantt?.dependenciesField || "dependencies",
|
|
1291
|
+
...E.gantt?.titleField ? { titleField: E.gantt.titleField } : {},
|
|
1292
|
+
...E.options?.gantt || {},
|
|
1293
|
+
...E.gantt || {}
|
|
1249
1294
|
};
|
|
1250
1295
|
case "map": return {
|
|
1251
1296
|
type: "object-map",
|
|
1252
1297
|
...t,
|
|
1253
|
-
locationField:
|
|
1254
|
-
...
|
|
1298
|
+
locationField: E.options?.map?.locationField || "location",
|
|
1299
|
+
...E.options?.map || {}
|
|
1255
1300
|
};
|
|
1256
1301
|
default: return t;
|
|
1257
1302
|
}
|
|
1258
1303
|
}, [
|
|
1259
|
-
|
|
1260
|
-
|
|
1261
|
-
|
|
1262
|
-
|
|
1263
|
-
G,
|
|
1304
|
+
A,
|
|
1305
|
+
E,
|
|
1306
|
+
P,
|
|
1307
|
+
zt,
|
|
1264
1308
|
K,
|
|
1265
|
-
|
|
1266
|
-
|
|
1267
|
-
Z
|
|
1268
|
-
|
|
1309
|
+
q,
|
|
1310
|
+
Rt.handleClick,
|
|
1311
|
+
Z.mode,
|
|
1312
|
+
Q
|
|
1313
|
+
]), Vt = F.conditions && F.conditions.length > 0, Ht = a.useMemo(() => {
|
|
1269
1314
|
let e, t = (e, t) => {
|
|
1270
1315
|
if (!t) return;
|
|
1271
1316
|
let n = Array.isArray(t) ? t.map((e) => ({
|
|
@@ -1277,17 +1322,17 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1277
1322
|
label: t?.label || e,
|
|
1278
1323
|
...t
|
|
1279
1324
|
}));
|
|
1280
|
-
return
|
|
1325
|
+
return E.objectName ? ie(E.objectName, e, n) : n;
|
|
1281
1326
|
};
|
|
1282
1327
|
if (e = H?.fields ? Object.entries(H.fields).map(([e, n]) => ({
|
|
1283
1328
|
value: e,
|
|
1284
|
-
label:
|
|
1329
|
+
label: D(e, n.label || e),
|
|
1285
1330
|
type: n.type || "text",
|
|
1286
1331
|
options: t(e, n.options),
|
|
1287
1332
|
referenceTo: n.reference_to || n.reference,
|
|
1288
1333
|
displayField: n.display_field || n.reference_field,
|
|
1289
1334
|
idField: n.id_field
|
|
1290
|
-
})) : (
|
|
1335
|
+
})) : (E.fields || []).map((e) => {
|
|
1291
1336
|
if (typeof e == "string") return {
|
|
1292
1337
|
value: e,
|
|
1293
1338
|
label: e,
|
|
@@ -1296,34 +1341,34 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1296
1341
|
let n = e.name || e.fieldName;
|
|
1297
1342
|
return {
|
|
1298
1343
|
value: n,
|
|
1299
|
-
label:
|
|
1344
|
+
label: D(n, e.label || e.name),
|
|
1300
1345
|
type: e.type || "text",
|
|
1301
1346
|
options: t(n, e.options),
|
|
1302
1347
|
referenceTo: e.reference_to || e.reference,
|
|
1303
1348
|
displayField: e.display_field || e.reference_field,
|
|
1304
1349
|
idField: e.id_field
|
|
1305
1350
|
};
|
|
1306
|
-
}),
|
|
1307
|
-
let t = new Set(
|
|
1351
|
+
}), E.filterableFields && E.filterableFields.length > 0) {
|
|
1352
|
+
let t = new Set(E.filterableFields);
|
|
1308
1353
|
e = e.filter((e) => t.has(e.value));
|
|
1309
1354
|
}
|
|
1310
1355
|
return e;
|
|
1311
1356
|
}, [
|
|
1312
1357
|
H,
|
|
1313
|
-
|
|
1314
|
-
|
|
1315
|
-
|
|
1316
|
-
|
|
1317
|
-
|
|
1318
|
-
]),
|
|
1319
|
-
|
|
1358
|
+
E.fields,
|
|
1359
|
+
E.filterableFields,
|
|
1360
|
+
E.objectName,
|
|
1361
|
+
D,
|
|
1362
|
+
ie
|
|
1363
|
+
]), Ut = a.useCallback((e) => {
|
|
1364
|
+
gt((t) => {
|
|
1320
1365
|
let n = new Set(t);
|
|
1321
1366
|
return n.has(e) ? n.delete(e) : n.add(e), n;
|
|
1322
1367
|
});
|
|
1323
|
-
}, []),
|
|
1324
|
-
let t =
|
|
1368
|
+
}, []), Wt = a.useCallback((e) => {
|
|
1369
|
+
let t = X, n = t?.maxRecords || 0, r = t?.includeHeaders !== !1, i = t?.fileNamePrefix || E.objectName || "export", a = n > 0 ? z.slice(0, n) : z;
|
|
1325
1370
|
if (e === "csv") {
|
|
1326
|
-
let e =
|
|
1371
|
+
let e = zt.map((e) => typeof e == "string" ? e : e.name || e.fieldName || e.field), t = [];
|
|
1327
1372
|
r && t.push(e.join(",")), a.forEach((n) => {
|
|
1328
1373
|
t.push(e.map((e) => {
|
|
1329
1374
|
let t = n[e], r;
|
|
@@ -1336,127 +1381,138 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1336
1381
|
let e = new Blob([JSON.stringify(a, null, 2)], { type: "application/json" }), t = URL.createObjectURL(e), n = document.createElement("a");
|
|
1337
1382
|
n.href = t, n.download = `${i}.json`, n.click(), URL.revokeObjectURL(t);
|
|
1338
1383
|
}
|
|
1339
|
-
|
|
1384
|
+
Et(!1);
|
|
1340
1385
|
}, [
|
|
1341
|
-
|
|
1342
|
-
|
|
1343
|
-
|
|
1344
|
-
|
|
1345
|
-
]),
|
|
1386
|
+
z,
|
|
1387
|
+
zt,
|
|
1388
|
+
X,
|
|
1389
|
+
E.objectName
|
|
1390
|
+
]), Gt = a.useMemo(() => (E.fields || []).map((e) => {
|
|
1346
1391
|
if (typeof e == "string") return {
|
|
1347
1392
|
name: e,
|
|
1348
|
-
label:
|
|
1393
|
+
label: D(e, e)
|
|
1349
1394
|
};
|
|
1350
1395
|
let t = e.name || e.fieldName || e.field;
|
|
1351
1396
|
return {
|
|
1352
1397
|
name: t,
|
|
1353
|
-
label:
|
|
1398
|
+
label: D(t, e.label || e.name || e.field)
|
|
1354
1399
|
};
|
|
1355
|
-
}), [
|
|
1356
|
-
return /* @__PURE__ */
|
|
1357
|
-
ref:
|
|
1358
|
-
className:
|
|
1359
|
-
...
|
|
1360
|
-
...
|
|
1361
|
-
...
|
|
1400
|
+
}), [E.fields, D]);
|
|
1401
|
+
return /* @__PURE__ */ N("div", {
|
|
1402
|
+
ref: At,
|
|
1403
|
+
className: w("flex flex-col h-full bg-background relative min-w-0 overflow-hidden", n),
|
|
1404
|
+
...E.aria?.label ? { "aria-label": E.aria.label } : {},
|
|
1405
|
+
...E.aria?.describedBy ? { "aria-describedby": E.aria.describedBy } : {},
|
|
1406
|
+
...E.aria?.live ? { "aria-live": E.aria.live } : {},
|
|
1362
1407
|
role: "region",
|
|
1363
1408
|
children: [
|
|
1364
|
-
|
|
1409
|
+
Mt > 0 && /* @__PURE__ */ M("div", {
|
|
1365
1410
|
className: "flex items-center justify-center text-xs text-muted-foreground",
|
|
1366
|
-
style: { height:
|
|
1367
|
-
children:
|
|
1411
|
+
style: { height: Mt },
|
|
1412
|
+
children: _(jt ? "list.refreshing" : "list.pullToRefresh")
|
|
1368
1413
|
}),
|
|
1369
|
-
|
|
1414
|
+
m && /* @__PURE__ */ M("div", {
|
|
1370
1415
|
className: "px-4 py-1 flex items-center bg-background",
|
|
1371
|
-
children: /* @__PURE__ */
|
|
1372
|
-
currentView:
|
|
1373
|
-
availableViews:
|
|
1374
|
-
onViewChange:
|
|
1416
|
+
children: /* @__PURE__ */ M(Re, {
|
|
1417
|
+
currentView: A,
|
|
1418
|
+
availableViews: Ft,
|
|
1419
|
+
onViewChange: It
|
|
1375
1420
|
})
|
|
1376
1421
|
}),
|
|
1377
|
-
|
|
1422
|
+
E.description && E.appearance?.showDescription !== !1 && /* @__PURE__ */ M("div", {
|
|
1378
1423
|
className: "px-4 pt-1.5 text-xs text-muted-foreground bg-background",
|
|
1379
1424
|
"data-testid": "view-description",
|
|
1380
|
-
children: typeof
|
|
1425
|
+
children: typeof E.description == "string" ? E.description : ""
|
|
1381
1426
|
}),
|
|
1382
|
-
/* @__PURE__ */
|
|
1427
|
+
/* @__PURE__ */ N("div", {
|
|
1383
1428
|
className: "border-b px-2 sm:px-4 py-1.5 flex items-center justify-between gap-1 sm:gap-2 bg-background",
|
|
1384
|
-
children: [/* @__PURE__ */
|
|
1429
|
+
children: [/* @__PURE__ */ N("div", {
|
|
1385
1430
|
className: "flex items-center gap-2 overflow-x-auto min-w-0",
|
|
1386
1431
|
children: [
|
|
1387
|
-
|
|
1388
|
-
|
|
1389
|
-
|
|
1390
|
-
|
|
1391
|
-
|
|
1392
|
-
|
|
1393
|
-
|
|
1394
|
-
|
|
1395
|
-
|
|
1432
|
+
E.tabs && E.tabs.length > 0 && /* @__PURE__ */ N(Te, { children: [/* @__PURE__ */ M("div", {
|
|
1433
|
+
className: "hidden sm:block shrink-0",
|
|
1434
|
+
children: /* @__PURE__ */ M(Ve, {
|
|
1435
|
+
tabs: E.tabs,
|
|
1436
|
+
activeTab: ze,
|
|
1437
|
+
onTabChange: L,
|
|
1438
|
+
className: "!px-0 !py-0"
|
|
1439
|
+
})
|
|
1440
|
+
}), /* @__PURE__ */ M("div", {
|
|
1441
|
+
className: "sm:hidden shrink-0",
|
|
1442
|
+
children: /* @__PURE__ */ M(He, {
|
|
1443
|
+
tabs: E.tabs,
|
|
1444
|
+
activeTab: ze,
|
|
1445
|
+
onTabChange: L,
|
|
1446
|
+
className: "!px-0 !py-0"
|
|
1447
|
+
})
|
|
1448
|
+
})] }),
|
|
1449
|
+
E.tabs && E.tabs.length > 0 && yt && /* @__PURE__ */ M("div", { className: "hidden sm:block h-4 w-px bg-border/60 mx-1 shrink-0" }),
|
|
1450
|
+
yt && /* @__PURE__ */ M("div", {
|
|
1451
|
+
className: "shrink-0 min-w-0 overflow-x-auto",
|
|
1396
1452
|
"data-testid": "user-filters",
|
|
1397
|
-
children: /* @__PURE__ */
|
|
1398
|
-
config:
|
|
1453
|
+
children: /* @__PURE__ */ M(We, {
|
|
1454
|
+
config: yt,
|
|
1399
1455
|
objectDef: H,
|
|
1400
|
-
data:
|
|
1401
|
-
onFilterChange:
|
|
1456
|
+
data: z,
|
|
1457
|
+
onFilterChange: vt,
|
|
1402
1458
|
maxVisible: 3
|
|
1403
1459
|
})
|
|
1404
1460
|
})
|
|
1405
1461
|
]
|
|
1406
|
-
}), /* @__PURE__ */
|
|
1462
|
+
}), /* @__PURE__ */ N("div", {
|
|
1407
1463
|
className: "flex items-center gap-0 shrink-0 rounded-lg border border-border bg-muted/40 p-0.5 shadow-sm",
|
|
1408
1464
|
children: [
|
|
1409
|
-
|
|
1410
|
-
open:
|
|
1411
|
-
onOpenChange:
|
|
1412
|
-
children: [/* @__PURE__ */
|
|
1465
|
+
O.showHideFields && !O.compactToolbar && /* @__PURE__ */ N(x, {
|
|
1466
|
+
open: Ct,
|
|
1467
|
+
onOpenChange: wt,
|
|
1468
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1413
1469
|
asChild: !0,
|
|
1414
|
-
children: /* @__PURE__ */
|
|
1470
|
+
children: /* @__PURE__ */ N(d, {
|
|
1415
1471
|
variant: "ghost",
|
|
1416
1472
|
size: "sm",
|
|
1417
|
-
className:
|
|
1473
|
+
className: w("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", J.size > 0 && "text-primary"),
|
|
1418
1474
|
children: [
|
|
1419
|
-
/* @__PURE__ */
|
|
1420
|
-
/* @__PURE__ */
|
|
1475
|
+
/* @__PURE__ */ M(oe, { className: "h-3.5 w-3.5 mr-1.5" }),
|
|
1476
|
+
/* @__PURE__ */ M("span", {
|
|
1421
1477
|
className: "hidden sm:inline",
|
|
1422
|
-
children:
|
|
1478
|
+
children: _("list.hideFields")
|
|
1423
1479
|
}),
|
|
1424
|
-
|
|
1480
|
+
J.size > 0 && /* @__PURE__ */ M("span", {
|
|
1425
1481
|
className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
|
|
1426
|
-
children:
|
|
1482
|
+
children: J.size
|
|
1427
1483
|
})
|
|
1428
1484
|
]
|
|
1429
1485
|
})
|
|
1430
|
-
}), /* @__PURE__ */
|
|
1486
|
+
}), /* @__PURE__ */ M(S, {
|
|
1431
1487
|
align: "start",
|
|
1432
1488
|
className: "w-64 p-3",
|
|
1433
|
-
children: /* @__PURE__ */
|
|
1489
|
+
children: /* @__PURE__ */ N("div", {
|
|
1434
1490
|
className: "space-y-2",
|
|
1435
|
-
children: [/* @__PURE__ */
|
|
1491
|
+
children: [/* @__PURE__ */ N("div", {
|
|
1436
1492
|
className: "flex items-center justify-between border-b pb-2",
|
|
1437
|
-
children: [/* @__PURE__ */
|
|
1493
|
+
children: [/* @__PURE__ */ M("h4", {
|
|
1438
1494
|
className: "font-medium text-sm",
|
|
1439
|
-
children:
|
|
1440
|
-
}),
|
|
1495
|
+
children: _("list.hideFieldsTitle")
|
|
1496
|
+
}), J.size > 0 && /* @__PURE__ */ M(d, {
|
|
1441
1497
|
variant: "ghost",
|
|
1442
1498
|
size: "sm",
|
|
1443
1499
|
className: "h-6 px-2 text-xs",
|
|
1444
|
-
onClick: () =>
|
|
1445
|
-
children:
|
|
1500
|
+
onClick: () => St(/* @__PURE__ */ new Set()),
|
|
1501
|
+
children: _("list.showAll")
|
|
1446
1502
|
})]
|
|
1447
|
-
}), /* @__PURE__ */
|
|
1503
|
+
}), /* @__PURE__ */ M("div", {
|
|
1448
1504
|
className: "max-h-60 overflow-y-auto space-y-1",
|
|
1449
|
-
children:
|
|
1505
|
+
children: Gt.map((e) => /* @__PURE__ */ N("label", {
|
|
1450
1506
|
className: "flex items-center gap-2 text-sm py-1 px-1 rounded hover:bg-muted cursor-pointer",
|
|
1451
|
-
children: [/* @__PURE__ */
|
|
1507
|
+
children: [/* @__PURE__ */ M("input", {
|
|
1452
1508
|
type: "checkbox",
|
|
1453
|
-
checked: !
|
|
1509
|
+
checked: !J.has(e.name),
|
|
1454
1510
|
onChange: () => {
|
|
1455
|
-
let t = new Set(
|
|
1456
|
-
t.has(e.name) ? t.delete(e.name) : t.add(e.name),
|
|
1511
|
+
let t = new Set(J);
|
|
1512
|
+
t.has(e.name) ? t.delete(e.name) : t.add(e.name), St(t);
|
|
1457
1513
|
},
|
|
1458
1514
|
className: "rounded border-input"
|
|
1459
|
-
}), /* @__PURE__ */
|
|
1515
|
+
}), /* @__PURE__ */ M("span", {
|
|
1460
1516
|
className: "truncate",
|
|
1461
1517
|
children: e.label
|
|
1462
1518
|
})]
|
|
@@ -1465,143 +1521,143 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1465
1521
|
})
|
|
1466
1522
|
})]
|
|
1467
1523
|
}),
|
|
1468
|
-
|
|
1469
|
-
|
|
1470
|
-
open:
|
|
1471
|
-
onOpenChange:
|
|
1472
|
-
children: [/* @__PURE__ */
|
|
1524
|
+
O.showHideFields && !O.compactToolbar && (O.showFilters || O.showSort || O.showGroup) && /* @__PURE__ */ M("div", { className: "hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0" }),
|
|
1525
|
+
O.showFilters && /* @__PURE__ */ N(x, {
|
|
1526
|
+
open: Ie,
|
|
1527
|
+
onOpenChange: Le,
|
|
1528
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1473
1529
|
asChild: !0,
|
|
1474
|
-
children: /* @__PURE__ */
|
|
1530
|
+
children: /* @__PURE__ */ N(d, {
|
|
1475
1531
|
variant: "ghost",
|
|
1476
1532
|
size: "sm",
|
|
1477
|
-
className:
|
|
1533
|
+
className: w("h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", Vt && "text-foreground font-medium"),
|
|
1478
1534
|
children: [
|
|
1479
|
-
/* @__PURE__ */
|
|
1480
|
-
/* @__PURE__ */
|
|
1535
|
+
/* @__PURE__ */ M(xe, { className: "h-3.5 w-3.5 mr-1.5" }),
|
|
1536
|
+
/* @__PURE__ */ M("span", {
|
|
1481
1537
|
className: "hidden sm:inline",
|
|
1482
|
-
children:
|
|
1538
|
+
children: _("list.filter")
|
|
1483
1539
|
}),
|
|
1484
|
-
|
|
1540
|
+
Vt && /* @__PURE__ */ M("span", {
|
|
1485
1541
|
className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
|
|
1486
|
-
children:
|
|
1542
|
+
children: F.conditions?.length || 0
|
|
1487
1543
|
})
|
|
1488
1544
|
]
|
|
1489
1545
|
})
|
|
1490
|
-
}), /* @__PURE__ */
|
|
1546
|
+
}), /* @__PURE__ */ M(S, {
|
|
1491
1547
|
align: "start",
|
|
1492
1548
|
className: "w-[calc(100vw-2rem)] sm:w-[600px] max-w-[600px] p-3 sm:p-4",
|
|
1493
|
-
children: /* @__PURE__ */
|
|
1549
|
+
children: /* @__PURE__ */ N("div", {
|
|
1494
1550
|
className: "space-y-4",
|
|
1495
|
-
children: [/* @__PURE__ */
|
|
1551
|
+
children: [/* @__PURE__ */ M("div", {
|
|
1496
1552
|
className: "flex items-center justify-between border-b pb-2",
|
|
1497
|
-
children: /* @__PURE__ */
|
|
1553
|
+
children: /* @__PURE__ */ M("h4", {
|
|
1498
1554
|
className: "font-medium text-sm",
|
|
1499
|
-
children:
|
|
1555
|
+
children: _("list.filterRecords")
|
|
1500
1556
|
})
|
|
1501
|
-
}), /* @__PURE__ */
|
|
1502
|
-
fields:
|
|
1503
|
-
value:
|
|
1557
|
+
}), /* @__PURE__ */ M(v, {
|
|
1558
|
+
fields: Ht,
|
|
1559
|
+
value: F,
|
|
1504
1560
|
onChange: (e) => {
|
|
1505
|
-
|
|
1561
|
+
I(e), s && s(e);
|
|
1506
1562
|
}
|
|
1507
1563
|
})]
|
|
1508
1564
|
})
|
|
1509
1565
|
})]
|
|
1510
1566
|
}),
|
|
1511
|
-
|
|
1512
|
-
open:
|
|
1513
|
-
onOpenChange:
|
|
1514
|
-
children: [/* @__PURE__ */
|
|
1567
|
+
O.showGroup && !O.compactToolbar && /* @__PURE__ */ N(x, {
|
|
1568
|
+
open: ot,
|
|
1569
|
+
onOpenChange: st,
|
|
1570
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1515
1571
|
asChild: !0,
|
|
1516
|
-
children: /* @__PURE__ */
|
|
1572
|
+
children: /* @__PURE__ */ N(d, {
|
|
1517
1573
|
variant: "ghost",
|
|
1518
1574
|
size: "sm",
|
|
1519
|
-
className:
|
|
1575
|
+
className: w("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", K && "text-foreground font-medium"),
|
|
1520
1576
|
children: [
|
|
1521
|
-
/* @__PURE__ */
|
|
1522
|
-
/* @__PURE__ */
|
|
1577
|
+
/* @__PURE__ */ M(ce, { className: "h-3.5 w-3.5 mr-1.5" }),
|
|
1578
|
+
/* @__PURE__ */ M("span", {
|
|
1523
1579
|
className: "hidden sm:inline",
|
|
1524
|
-
children:
|
|
1580
|
+
children: _("list.group")
|
|
1525
1581
|
}),
|
|
1526
|
-
|
|
1582
|
+
K && K.fields?.length > 0 && /* @__PURE__ */ M("span", {
|
|
1527
1583
|
className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
|
|
1528
|
-
children:
|
|
1584
|
+
children: K.fields.length
|
|
1529
1585
|
})
|
|
1530
1586
|
]
|
|
1531
1587
|
})
|
|
1532
|
-
}), /* @__PURE__ */
|
|
1588
|
+
}), /* @__PURE__ */ M(S, {
|
|
1533
1589
|
align: "start",
|
|
1534
1590
|
className: "w-72 p-3",
|
|
1535
|
-
children: /* @__PURE__ */
|
|
1591
|
+
children: /* @__PURE__ */ N("div", {
|
|
1536
1592
|
className: "space-y-2",
|
|
1537
|
-
children: [/* @__PURE__ */
|
|
1593
|
+
children: [/* @__PURE__ */ N("div", {
|
|
1538
1594
|
className: "flex items-center justify-between border-b pb-2",
|
|
1539
|
-
children: [/* @__PURE__ */
|
|
1595
|
+
children: [/* @__PURE__ */ M("h4", {
|
|
1540
1596
|
className: "font-medium text-sm",
|
|
1541
|
-
children:
|
|
1542
|
-
}),
|
|
1597
|
+
children: _("list.groupBy")
|
|
1598
|
+
}), K && /* @__PURE__ */ M(d, {
|
|
1543
1599
|
variant: "ghost",
|
|
1544
1600
|
size: "sm",
|
|
1545
1601
|
className: "h-6 px-2 text-xs",
|
|
1546
|
-
onClick: () =>
|
|
1602
|
+
onClick: () => at(void 0),
|
|
1547
1603
|
"data-testid": "clear-grouping",
|
|
1548
|
-
children:
|
|
1604
|
+
children: _("list.clear")
|
|
1549
1605
|
})]
|
|
1550
|
-
}), /* @__PURE__ */
|
|
1606
|
+
}), /* @__PURE__ */ M("div", {
|
|
1551
1607
|
"data-testid": "group-field-list",
|
|
1552
|
-
children: /* @__PURE__ */
|
|
1553
|
-
value:
|
|
1554
|
-
fieldOptions:
|
|
1608
|
+
children: /* @__PURE__ */ M(ee, {
|
|
1609
|
+
value: K,
|
|
1610
|
+
fieldOptions: Gt.map((e) => ({
|
|
1555
1611
|
value: e.name,
|
|
1556
1612
|
label: e.label || e.name
|
|
1557
1613
|
})),
|
|
1558
1614
|
maxLevels: 3,
|
|
1559
1615
|
labels: {
|
|
1560
|
-
addGroup:
|
|
1561
|
-
collapseTitle:
|
|
1562
|
-
removeTitle:
|
|
1616
|
+
addGroup: _("list.addGroup", { defaultValue: "Add group field" }),
|
|
1617
|
+
collapseTitle: _("list.collapsedByDefault", { defaultValue: "Collapsed by default" }),
|
|
1618
|
+
removeTitle: _("list.removeGroup", { defaultValue: "Remove" })
|
|
1563
1619
|
},
|
|
1564
|
-
onChange: (e) =>
|
|
1620
|
+
onChange: (e) => at(e)
|
|
1565
1621
|
})
|
|
1566
1622
|
})]
|
|
1567
1623
|
})
|
|
1568
1624
|
})]
|
|
1569
1625
|
}),
|
|
1570
|
-
|
|
1571
|
-
open:
|
|
1626
|
+
O.showSort && /* @__PURE__ */ N(x, {
|
|
1627
|
+
open: Ee,
|
|
1572
1628
|
onOpenChange: De,
|
|
1573
|
-
children: [/* @__PURE__ */
|
|
1629
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1574
1630
|
asChild: !0,
|
|
1575
|
-
children: /* @__PURE__ */
|
|
1631
|
+
children: /* @__PURE__ */ N(d, {
|
|
1576
1632
|
variant: "ghost",
|
|
1577
1633
|
size: "sm",
|
|
1578
|
-
className:
|
|
1634
|
+
className: w("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", P.length > 0 && "text-foreground font-medium"),
|
|
1579
1635
|
children: [
|
|
1580
|
-
/* @__PURE__ */
|
|
1581
|
-
/* @__PURE__ */
|
|
1636
|
+
/* @__PURE__ */ M(T, { className: "h-3.5 w-3.5 mr-1.5" }),
|
|
1637
|
+
/* @__PURE__ */ M("span", {
|
|
1582
1638
|
className: "hidden sm:inline",
|
|
1583
|
-
children:
|
|
1639
|
+
children: _("list.sort")
|
|
1584
1640
|
}),
|
|
1585
|
-
|
|
1641
|
+
P.length > 0 && /* @__PURE__ */ M("span", {
|
|
1586
1642
|
className: "ml-1 flex h-4 min-w-[16px] items-center justify-center text-[10px] font-medium text-muted-foreground tabular-nums",
|
|
1587
|
-
children:
|
|
1643
|
+
children: P.length
|
|
1588
1644
|
})
|
|
1589
1645
|
]
|
|
1590
1646
|
})
|
|
1591
|
-
}), /* @__PURE__ */
|
|
1647
|
+
}), /* @__PURE__ */ M(S, {
|
|
1592
1648
|
align: "start",
|
|
1593
1649
|
className: "w-[calc(100vw-2rem)] sm:w-[600px] max-w-[600px] p-3 sm:p-4",
|
|
1594
|
-
children: /* @__PURE__ */
|
|
1650
|
+
children: /* @__PURE__ */ N("div", {
|
|
1595
1651
|
className: "space-y-4",
|
|
1596
|
-
children: [/* @__PURE__ */
|
|
1652
|
+
children: [/* @__PURE__ */ M("div", {
|
|
1597
1653
|
className: "flex items-center justify-between border-b pb-2",
|
|
1598
|
-
children: /* @__PURE__ */
|
|
1654
|
+
children: /* @__PURE__ */ M("h4", {
|
|
1599
1655
|
className: "font-medium text-sm",
|
|
1600
|
-
children:
|
|
1656
|
+
children: _("list.sortRecords")
|
|
1601
1657
|
})
|
|
1602
|
-
}), /* @__PURE__ */
|
|
1603
|
-
fields:
|
|
1604
|
-
value:
|
|
1658
|
+
}), /* @__PURE__ */ M(re, {
|
|
1659
|
+
fields: Ht,
|
|
1660
|
+
value: P,
|
|
1605
1661
|
onChange: (e) => {
|
|
1606
1662
|
Ae(e), c && c(e);
|
|
1607
1663
|
}
|
|
@@ -1609,60 +1665,60 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1609
1665
|
})
|
|
1610
1666
|
})]
|
|
1611
1667
|
}),
|
|
1612
|
-
!
|
|
1613
|
-
|
|
1614
|
-
open:
|
|
1615
|
-
onOpenChange:
|
|
1616
|
-
children: [/* @__PURE__ */
|
|
1668
|
+
!O.compactToolbar && (O.showFilters || O.showSort || O.showGroup) && (O.showColor || O.showDensity) && /* @__PURE__ */ M("div", { className: "hidden sm:block h-5 w-px bg-border/50 mx-1 shrink-0" }),
|
|
1669
|
+
O.showColor && !O.compactToolbar && /* @__PURE__ */ N(x, {
|
|
1670
|
+
open: ut,
|
|
1671
|
+
onOpenChange: dt,
|
|
1672
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1617
1673
|
asChild: !0,
|
|
1618
|
-
children: /* @__PURE__ */
|
|
1674
|
+
children: /* @__PURE__ */ N(d, {
|
|
1619
1675
|
variant: "ghost",
|
|
1620
1676
|
size: "sm",
|
|
1621
|
-
className:
|
|
1622
|
-
children: [/* @__PURE__ */
|
|
1677
|
+
className: w("hidden sm:inline-flex h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", q && "text-foreground font-medium"),
|
|
1678
|
+
children: [/* @__PURE__ */ M(fe, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ M("span", {
|
|
1623
1679
|
className: "hidden sm:inline",
|
|
1624
|
-
children:
|
|
1680
|
+
children: _("list.color")
|
|
1625
1681
|
})]
|
|
1626
1682
|
})
|
|
1627
|
-
}), /* @__PURE__ */
|
|
1683
|
+
}), /* @__PURE__ */ M(S, {
|
|
1628
1684
|
align: "start",
|
|
1629
1685
|
className: "w-64 p-3",
|
|
1630
|
-
children: /* @__PURE__ */
|
|
1686
|
+
children: /* @__PURE__ */ N("div", {
|
|
1631
1687
|
className: "space-y-2",
|
|
1632
|
-
children: [/* @__PURE__ */
|
|
1688
|
+
children: [/* @__PURE__ */ N("div", {
|
|
1633
1689
|
className: "flex items-center justify-between border-b pb-2",
|
|
1634
|
-
children: [/* @__PURE__ */
|
|
1690
|
+
children: [/* @__PURE__ */ M("h4", {
|
|
1635
1691
|
className: "font-medium text-sm",
|
|
1636
|
-
children:
|
|
1637
|
-
}),
|
|
1692
|
+
children: _("list.rowColor")
|
|
1693
|
+
}), q && /* @__PURE__ */ M(d, {
|
|
1638
1694
|
variant: "ghost",
|
|
1639
1695
|
size: "sm",
|
|
1640
1696
|
className: "h-6 px-2 text-xs",
|
|
1641
|
-
onClick: () =>
|
|
1697
|
+
onClick: () => lt(void 0),
|
|
1642
1698
|
"data-testid": "clear-row-color",
|
|
1643
|
-
children:
|
|
1699
|
+
children: _("list.clear")
|
|
1644
1700
|
})]
|
|
1645
|
-
}), /* @__PURE__ */
|
|
1701
|
+
}), /* @__PURE__ */ N("div", {
|
|
1646
1702
|
className: "space-y-2",
|
|
1647
1703
|
"data-testid": "color-field-list",
|
|
1648
|
-
children: [/* @__PURE__ */
|
|
1704
|
+
children: [/* @__PURE__ */ M("label", {
|
|
1649
1705
|
className: "text-xs text-muted-foreground",
|
|
1650
|
-
children:
|
|
1651
|
-
}), /* @__PURE__ */
|
|
1706
|
+
children: _("list.colorByField")
|
|
1707
|
+
}), /* @__PURE__ */ N("select", {
|
|
1652
1708
|
className: "w-full h-8 rounded border border-input bg-background px-2 text-xs",
|
|
1653
|
-
value:
|
|
1709
|
+
value: q?.field || "",
|
|
1654
1710
|
onChange: (e) => {
|
|
1655
1711
|
let t = e.target.value;
|
|
1656
|
-
|
|
1712
|
+
lt(t ? {
|
|
1657
1713
|
field: t,
|
|
1658
|
-
colors:
|
|
1714
|
+
colors: q?.colors || {}
|
|
1659
1715
|
} : void 0);
|
|
1660
1716
|
},
|
|
1661
1717
|
"data-testid": "color-field-select",
|
|
1662
|
-
children: [/* @__PURE__ */
|
|
1718
|
+
children: [/* @__PURE__ */ M("option", {
|
|
1663
1719
|
value: "",
|
|
1664
|
-
children:
|
|
1665
|
-
}),
|
|
1720
|
+
children: _("list.none")
|
|
1721
|
+
}), Gt.map((e) => /* @__PURE__ */ M("option", {
|
|
1666
1722
|
value: e.name,
|
|
1667
1723
|
children: e.label
|
|
1668
1724
|
}, e.name))]
|
|
@@ -1671,304 +1727,306 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1671
1727
|
})
|
|
1672
1728
|
})]
|
|
1673
1729
|
}),
|
|
1674
|
-
|
|
1675
|
-
let e =
|
|
1730
|
+
O.showDensity && !O.compactToolbar && A !== "gallery" && (() => {
|
|
1731
|
+
let e = Z.mode === "compact" ? _e : Z.mode === "comfortable" ? ge : he, t = Z.mode === "compact" ? _("grid.toolbar.densityCompact", { defaultValue: "Compact" }) : Z.mode === "comfortable" ? _("grid.toolbar.densityComfortable", { defaultValue: "Comfortable" }) : _("grid.toolbar.densitySpacious", { defaultValue: "Spacious" }), n = `${_("grid.toolbar.densityMode", { defaultValue: "Density" })}: ${t}`, r = _("grid.toolbar.densityCycleHint", {
|
|
1676
1732
|
defaultValue: "{{label}} (click to cycle)",
|
|
1677
1733
|
label: n
|
|
1678
1734
|
});
|
|
1679
|
-
return /* @__PURE__ */
|
|
1735
|
+
return /* @__PURE__ */ M(d, {
|
|
1680
1736
|
variant: "ghost",
|
|
1681
1737
|
size: "sm",
|
|
1682
1738
|
"aria-label": n,
|
|
1683
|
-
className:
|
|
1684
|
-
onClick:
|
|
1739
|
+
className: w("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150", Z.mode !== "compact" && "text-foreground font-medium"),
|
|
1740
|
+
onClick: Z.cycle,
|
|
1685
1741
|
title: r,
|
|
1686
|
-
children: /* @__PURE__ */
|
|
1742
|
+
children: /* @__PURE__ */ M(e, { className: "h-3.5 w-3.5" })
|
|
1687
1743
|
});
|
|
1688
1744
|
})(),
|
|
1689
|
-
|
|
1690
|
-
let e =
|
|
1745
|
+
O.showDensity && !O.compactToolbar && A === "gallery" && (() => {
|
|
1746
|
+
let e = Q === "small" ? _e : Q === "medium" ? ge : he, t = Q === "small" ? _("grid.toolbar.densityCompact", { defaultValue: "Compact" }) : Q === "medium" ? _("grid.toolbar.densityComfortable", { defaultValue: "Comfortable" }) : _("grid.toolbar.densitySpacious", { defaultValue: "Spacious" }), n = `${_("grid.toolbar.densityMode", { defaultValue: "Density" })}: ${t}`, r = _("grid.toolbar.densityCycleHint", {
|
|
1691
1747
|
defaultValue: "{{label}} (click to cycle)",
|
|
1692
1748
|
label: n
|
|
1693
1749
|
});
|
|
1694
|
-
return /* @__PURE__ */
|
|
1750
|
+
return /* @__PURE__ */ M(d, {
|
|
1695
1751
|
variant: "ghost",
|
|
1696
1752
|
size: "sm",
|
|
1697
1753
|
"aria-label": n,
|
|
1698
|
-
className:
|
|
1699
|
-
onClick:
|
|
1754
|
+
className: w("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary transition-colors duration-150", Q !== "small" && "text-foreground font-medium"),
|
|
1755
|
+
onClick: kt,
|
|
1700
1756
|
title: r,
|
|
1701
|
-
children: /* @__PURE__ */
|
|
1757
|
+
children: /* @__PURE__ */ M(e, { className: "h-3.5 w-3.5" })
|
|
1702
1758
|
});
|
|
1703
1759
|
})(),
|
|
1704
|
-
|
|
1705
|
-
|
|
1706
|
-
|
|
1707
|
-
|
|
1708
|
-
|
|
1709
|
-
|
|
1710
|
-
|
|
1711
|
-
|
|
1712
|
-
|
|
1713
|
-
|
|
1714
|
-
|
|
1715
|
-
|
|
1716
|
-
|
|
1717
|
-
|
|
1718
|
-
hiddenFields: q,
|
|
1719
|
-
updateHiddenFields: bt
|
|
1720
|
-
})
|
|
1721
|
-
}),
|
|
1722
|
-
A.compactToolbar && (A.showGroup || A.showColor || A.showDensity || A.showHideFields) && /* @__PURE__ */ P(Ie, {
|
|
1723
|
-
t: E,
|
|
1724
|
-
allFields: Ht,
|
|
1725
|
-
showGroup: A.showGroup,
|
|
1726
|
-
groupingConfig: G,
|
|
1727
|
-
setGroupingConfig: rt,
|
|
1728
|
-
showColor: A.showColor,
|
|
1729
|
-
rowColorConfig: K,
|
|
1730
|
-
setRowColorConfig: st,
|
|
1731
|
-
showDensity: A.showDensity,
|
|
1732
|
-
density: X,
|
|
1733
|
-
showHideFields: A.showHideFields,
|
|
1734
|
-
hiddenFields: q,
|
|
1735
|
-
updateHiddenFields: bt
|
|
1760
|
+
O.compactToolbar && (O.showGroup || O.showColor || O.showDensity || O.showHideFields) && /* @__PURE__ */ M(Ue, {
|
|
1761
|
+
t: _,
|
|
1762
|
+
allFields: Gt,
|
|
1763
|
+
showGroup: O.showGroup,
|
|
1764
|
+
groupingConfig: K,
|
|
1765
|
+
setGroupingConfig: at,
|
|
1766
|
+
showColor: O.showColor,
|
|
1767
|
+
rowColorConfig: q,
|
|
1768
|
+
setRowColorConfig: lt,
|
|
1769
|
+
showDensity: O.showDensity,
|
|
1770
|
+
density: Z,
|
|
1771
|
+
showHideFields: O.showHideFields,
|
|
1772
|
+
hiddenFields: J,
|
|
1773
|
+
updateHiddenFields: St
|
|
1736
1774
|
}),
|
|
1737
|
-
(
|
|
1738
|
-
|
|
1739
|
-
open:
|
|
1740
|
-
onOpenChange:
|
|
1741
|
-
children: [/* @__PURE__ */
|
|
1775
|
+
(O.showColor || O.showDensity || O.compactToolbar) && X && E.allowExport !== !1 && /* @__PURE__ */ M("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }),
|
|
1776
|
+
X && E.allowExport !== !1 && /* @__PURE__ */ N(x, {
|
|
1777
|
+
open: Tt,
|
|
1778
|
+
onOpenChange: Et,
|
|
1779
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1742
1780
|
asChild: !0,
|
|
1743
|
-
children: /* @__PURE__ */
|
|
1781
|
+
children: /* @__PURE__ */ N(d, {
|
|
1744
1782
|
variant: "ghost",
|
|
1745
1783
|
size: "sm",
|
|
1746
1784
|
className: "h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1747
|
-
children: [/* @__PURE__ */
|
|
1785
|
+
children: [/* @__PURE__ */ M(k, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ M("span", {
|
|
1748
1786
|
className: "hidden sm:inline",
|
|
1749
|
-
children:
|
|
1787
|
+
children: _("list.export")
|
|
1750
1788
|
})]
|
|
1751
1789
|
})
|
|
1752
|
-
}), /* @__PURE__ */
|
|
1790
|
+
}), /* @__PURE__ */ M(S, {
|
|
1753
1791
|
align: "start",
|
|
1754
1792
|
className: "w-48 p-2",
|
|
1755
|
-
children: /* @__PURE__ */
|
|
1793
|
+
children: /* @__PURE__ */ M("div", {
|
|
1756
1794
|
className: "space-y-1",
|
|
1757
|
-
children: (
|
|
1795
|
+
children: (X.formats || ["csv", "json"]).map((e) => /* @__PURE__ */ N(d, {
|
|
1758
1796
|
variant: "ghost",
|
|
1759
1797
|
size: "sm",
|
|
1760
1798
|
className: "w-full justify-start h-8 text-xs",
|
|
1761
|
-
onClick: () =>
|
|
1762
|
-
children: [/* @__PURE__ */
|
|
1799
|
+
onClick: () => Wt(e),
|
|
1800
|
+
children: [/* @__PURE__ */ M(k, { className: "h-3.5 w-3.5 mr-2" }), _("list.exportAs", { format: e.toUpperCase() })]
|
|
1763
1801
|
}, e))
|
|
1764
1802
|
})
|
|
1765
1803
|
})]
|
|
1766
1804
|
}),
|
|
1767
|
-
(
|
|
1805
|
+
(E.sharing?.enabled || E.sharing?.type) && /* @__PURE__ */ N(d, {
|
|
1768
1806
|
variant: "ghost",
|
|
1769
1807
|
size: "sm",
|
|
1770
1808
|
className: "h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1771
|
-
title: `Sharing: ${
|
|
1809
|
+
title: `Sharing: ${E.sharing?.visibility || E.sharing?.type || "private"}`,
|
|
1772
1810
|
"data-testid": "share-button",
|
|
1773
|
-
children: [/* @__PURE__ */
|
|
1811
|
+
children: [/* @__PURE__ */ M(be, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ M("span", {
|
|
1774
1812
|
className: "hidden sm:inline",
|
|
1775
|
-
children:
|
|
1813
|
+
children: _("list.share")
|
|
1776
1814
|
})]
|
|
1777
1815
|
}),
|
|
1778
|
-
|
|
1816
|
+
E.allowPrinting && /* @__PURE__ */ N(d, {
|
|
1779
1817
|
variant: "ghost",
|
|
1780
1818
|
size: "sm",
|
|
1781
1819
|
className: "h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1782
1820
|
onClick: () => window.print(),
|
|
1783
1821
|
"data-testid": "print-button",
|
|
1784
|
-
children: [/* @__PURE__ */
|
|
1822
|
+
children: [/* @__PURE__ */ M(me, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ M("span", {
|
|
1785
1823
|
className: "hidden sm:inline",
|
|
1786
|
-
children:
|
|
1824
|
+
children: _("list.print")
|
|
1787
1825
|
})]
|
|
1788
1826
|
}),
|
|
1789
1827
|
(() => {
|
|
1790
|
-
let e =
|
|
1791
|
-
return
|
|
1828
|
+
let e = E.allowPrinting || E.sharing?.enabled || E.sharing?.type || X && E.allowExport !== !1;
|
|
1829
|
+
return O.showSearch && e ? /* @__PURE__ */ M("div", { className: "h-5 w-px bg-border/50 mx-1 shrink-0" }) : null;
|
|
1792
1830
|
})(),
|
|
1793
|
-
|
|
1794
|
-
open:
|
|
1795
|
-
onOpenChange:
|
|
1796
|
-
children: [/* @__PURE__ */
|
|
1831
|
+
O.showSearch && /* @__PURE__ */ N(x, {
|
|
1832
|
+
open: de,
|
|
1833
|
+
onOpenChange: ye,
|
|
1834
|
+
children: [/* @__PURE__ */ M(C, {
|
|
1797
1835
|
asChild: !0,
|
|
1798
|
-
children: /* @__PURE__ */
|
|
1836
|
+
children: /* @__PURE__ */ M(d, {
|
|
1799
1837
|
variant: "ghost",
|
|
1800
1838
|
size: "sm",
|
|
1801
|
-
className:
|
|
1839
|
+
className: w("hidden sm:inline-flex h-7 w-7 p-0 text-muted-foreground hover:text-primary text-xs transition-colors duration-150", j && "text-foreground font-medium"),
|
|
1802
1840
|
"data-testid": "search-icon-button",
|
|
1803
|
-
title:
|
|
1804
|
-
children: /* @__PURE__ */
|
|
1841
|
+
title: _("list.search"),
|
|
1842
|
+
children: /* @__PURE__ */ M(ve, { className: "h-3.5 w-3.5" })
|
|
1805
1843
|
})
|
|
1806
|
-
}), /* @__PURE__ */
|
|
1844
|
+
}), /* @__PURE__ */ M(S, {
|
|
1807
1845
|
align: "end",
|
|
1808
1846
|
className: "w-[calc(100vw-2rem)] sm:w-64 p-2",
|
|
1809
1847
|
"data-testid": "search-popover",
|
|
1810
|
-
children: /* @__PURE__ */
|
|
1848
|
+
children: /* @__PURE__ */ N("div", {
|
|
1811
1849
|
className: "relative",
|
|
1812
1850
|
children: [
|
|
1813
|
-
/* @__PURE__ */
|
|
1814
|
-
/* @__PURE__ */
|
|
1815
|
-
placeholder:
|
|
1816
|
-
value:
|
|
1817
|
-
onChange: (e) =>
|
|
1851
|
+
/* @__PURE__ */ M(ve, { className: "absolute left-2 top-1/2 -translate-y-1/2 h-3.5 w-3.5 text-muted-foreground" }),
|
|
1852
|
+
/* @__PURE__ */ M(y, {
|
|
1853
|
+
placeholder: _("list.search") + "...",
|
|
1854
|
+
value: j,
|
|
1855
|
+
onChange: (e) => Lt(e.target.value),
|
|
1818
1856
|
className: "pl-7 h-8 text-xs",
|
|
1819
1857
|
autoFocus: !0
|
|
1820
1858
|
}),
|
|
1821
|
-
|
|
1859
|
+
j && /* @__PURE__ */ M(d, {
|
|
1822
1860
|
variant: "ghost",
|
|
1823
1861
|
size: "sm",
|
|
1824
1862
|
className: "absolute right-0.5 top-1/2 -translate-y-1/2 h-5 w-5 p-0 hover:bg-muted-foreground/20",
|
|
1825
|
-
onClick: () =>
|
|
1826
|
-
children: /* @__PURE__ */
|
|
1863
|
+
onClick: () => Lt(""),
|
|
1864
|
+
children: /* @__PURE__ */ M(Ce, { className: "h-3 w-3" })
|
|
1827
1865
|
})
|
|
1828
1866
|
]
|
|
1829
1867
|
})
|
|
1830
1868
|
})]
|
|
1831
1869
|
}),
|
|
1832
|
-
|
|
1870
|
+
O.showAddRecord && O.addRecordPosition === "top" && /* @__PURE__ */ N(d, {
|
|
1833
1871
|
variant: "ghost",
|
|
1834
1872
|
size: "sm",
|
|
1835
1873
|
className: "h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1836
1874
|
"data-testid": "add-record-button",
|
|
1837
|
-
onClick: () =>
|
|
1838
|
-
children: [/* @__PURE__ */
|
|
1875
|
+
onClick: () => h.onAddRecord?.(),
|
|
1876
|
+
children: [/* @__PURE__ */ M(pe, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ M("span", {
|
|
1839
1877
|
className: "hidden sm:inline",
|
|
1840
|
-
children:
|
|
1878
|
+
children: _("list.addRecord")
|
|
1841
1879
|
})]
|
|
1842
1880
|
})
|
|
1843
1881
|
]
|
|
1844
1882
|
})]
|
|
1845
1883
|
}),
|
|
1846
|
-
|
|
1847
|
-
className: "border-b px-2 sm:px-4 py-1
|
|
1884
|
+
Y && Y.length > 0 && /* @__PURE__ */ M("div", {
|
|
1885
|
+
className: "hidden sm:flex border-b px-2 sm:px-4 py-1 items-center gap-1 flex-wrap bg-background",
|
|
1848
1886
|
"data-testid": "quick-filters",
|
|
1849
|
-
children:
|
|
1850
|
-
let t =
|
|
1851
|
-
return /* @__PURE__ */
|
|
1887
|
+
children: Y.map((e) => {
|
|
1888
|
+
let t = ht.has(e.id), n = e.icon ? we[e.icon.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("")] ?? null : null;
|
|
1889
|
+
return /* @__PURE__ */ N(d, {
|
|
1852
1890
|
variant: t ? "default" : "outline",
|
|
1853
1891
|
size: "sm",
|
|
1854
1892
|
className: "h-7 px-3 text-xs",
|
|
1855
|
-
onClick: () =>
|
|
1856
|
-
children: [n && /* @__PURE__ */
|
|
1893
|
+
onClick: () => Ut(e.id),
|
|
1894
|
+
children: [n && /* @__PURE__ */ M(n, { className: "h-3 w-3 mr-1.5" }), e.label]
|
|
1857
1895
|
}, e.id);
|
|
1858
1896
|
})
|
|
1859
1897
|
}),
|
|
1860
|
-
/* @__PURE__ */
|
|
1898
|
+
/* @__PURE__ */ N("div", {
|
|
1861
1899
|
className: "flex-1 min-h-0 bg-background relative overflow-hidden animate-in fade-in-0 duration-200",
|
|
1862
|
-
children:
|
|
1863
|
-
|
|
1864
|
-
|
|
1900
|
+
children: [/* @__PURE__ */ M(ne, { active: B && z.length > 0 }), B && z.length === 0 ? /* @__PURE__ */ N("div", {
|
|
1901
|
+
className: "flex flex-col h-full min-h-[200px] p-4 gap-2",
|
|
1902
|
+
"data-testid": "list-loading",
|
|
1903
|
+
role: "status",
|
|
1904
|
+
"aria-live": "polite",
|
|
1905
|
+
"aria-busy": "true",
|
|
1906
|
+
children: [/* @__PURE__ */ M("span", {
|
|
1907
|
+
className: "sr-only",
|
|
1908
|
+
children: _("list.loading")
|
|
1909
|
+
}), [
|
|
1910
|
+
0,
|
|
1911
|
+
1,
|
|
1912
|
+
2,
|
|
1913
|
+
3,
|
|
1914
|
+
4,
|
|
1915
|
+
5
|
|
1916
|
+
].map((e) => /* @__PURE__ */ M("div", {
|
|
1917
|
+
className: "h-9 rounded bg-muted/60 animate-pulse",
|
|
1918
|
+
style: { opacity: Math.max(.25, 1 - e * .12) }
|
|
1919
|
+
}, e))]
|
|
1920
|
+
}) : !B && z.length === 0 && A === "grid" ? (() => {
|
|
1921
|
+
let e = E.emptyState?.icon;
|
|
1922
|
+
return /* @__PURE__ */ N("div", {
|
|
1865
1923
|
className: "flex flex-col items-center justify-center h-full min-h-[200px] text-center p-8",
|
|
1866
1924
|
"data-testid": "empty-state",
|
|
1867
1925
|
children: [
|
|
1868
|
-
/* @__PURE__ */
|
|
1869
|
-
/* @__PURE__ */
|
|
1926
|
+
/* @__PURE__ */ M(e ? we[e.split("-").map((e) => e.charAt(0).toUpperCase() + e.slice(1)).join("")] ?? le : le, { className: "h-12 w-12 text-muted-foreground/50 mb-4" }),
|
|
1927
|
+
/* @__PURE__ */ M("h3", {
|
|
1870
1928
|
className: "text-lg font-medium text-foreground mb-1",
|
|
1871
|
-
children: (typeof
|
|
1929
|
+
children: (typeof E.emptyState?.title == "string" ? E.emptyState.title : void 0) ?? _("list.noItems")
|
|
1872
1930
|
}),
|
|
1873
|
-
/* @__PURE__ */
|
|
1931
|
+
/* @__PURE__ */ M("p", {
|
|
1874
1932
|
className: "text-sm text-muted-foreground max-w-md",
|
|
1875
|
-
children: (typeof
|
|
1933
|
+
children: (typeof E.emptyState?.message == "string" ? E.emptyState.message : void 0) ?? _("list.noItemsMessage")
|
|
1876
1934
|
}),
|
|
1877
|
-
|
|
1935
|
+
O.showAddRecord && /* @__PURE__ */ N(d, {
|
|
1878
1936
|
variant: "default",
|
|
1879
1937
|
size: "sm",
|
|
1880
1938
|
className: "mt-4",
|
|
1881
1939
|
"data-testid": "empty-state-add-record",
|
|
1882
|
-
onClick: () =>
|
|
1883
|
-
children: [/* @__PURE__ */
|
|
1940
|
+
onClick: () => h.onAddRecord?.(),
|
|
1941
|
+
children: [/* @__PURE__ */ M(pe, { className: "h-4 w-4 mr-1.5" }), _("list.addRecord")]
|
|
1884
1942
|
})
|
|
1885
1943
|
]
|
|
1886
1944
|
});
|
|
1887
|
-
})() : /* @__PURE__ */
|
|
1888
|
-
schema:
|
|
1889
|
-
...
|
|
1890
|
-
data:
|
|
1891
|
-
loading:
|
|
1892
|
-
onRowSelect:
|
|
1893
|
-
})
|
|
1894
|
-
},
|
|
1895
|
-
|
|
1945
|
+
})() : /* @__PURE__ */ M(ke, {
|
|
1946
|
+
schema: Bt,
|
|
1947
|
+
...h,
|
|
1948
|
+
data: z,
|
|
1949
|
+
loading: B,
|
|
1950
|
+
onRowSelect: pt
|
|
1951
|
+
})]
|
|
1952
|
+
}, A),
|
|
1953
|
+
O.showAddRecord && O.addRecordPosition === "bottom" && /* @__PURE__ */ M("div", {
|
|
1896
1954
|
className: "border-t px-2 sm:px-4 py-1 bg-background shrink-0",
|
|
1897
|
-
children: /* @__PURE__ */
|
|
1955
|
+
children: /* @__PURE__ */ N(d, {
|
|
1898
1956
|
variant: "ghost",
|
|
1899
1957
|
size: "sm",
|
|
1900
1958
|
className: "h-7 px-2 text-muted-foreground hover:text-primary text-xs transition-colors duration-150",
|
|
1901
1959
|
"data-testid": "add-record-button",
|
|
1902
|
-
onClick: () =>
|
|
1903
|
-
children: [/* @__PURE__ */
|
|
1960
|
+
onClick: () => h.onAddRecord?.(),
|
|
1961
|
+
children: [/* @__PURE__ */ M(pe, { className: "h-3.5 w-3.5 mr-1.5" }), /* @__PURE__ */ M("span", {
|
|
1904
1962
|
className: "hidden sm:inline",
|
|
1905
|
-
children:
|
|
1963
|
+
children: _("list.addRecord")
|
|
1906
1964
|
})]
|
|
1907
1965
|
})
|
|
1908
1966
|
}),
|
|
1909
|
-
|
|
1967
|
+
E.bulkActions && E.bulkActions.length > 0 && ft.length > 0 && A !== "grid" && /* @__PURE__ */ N("div", {
|
|
1910
1968
|
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",
|
|
1911
1969
|
role: "region",
|
|
1912
1970
|
"aria-label": "Bulk actions",
|
|
1913
1971
|
"data-testid": "bulk-actions-bar",
|
|
1914
1972
|
children: [
|
|
1915
|
-
/* @__PURE__ */
|
|
1916
|
-
/* @__PURE__ */
|
|
1973
|
+
/* @__PURE__ */ M(ae, { className: "h-3.5 w-3.5 text-primary shrink-0" }),
|
|
1974
|
+
/* @__PURE__ */ N("span", {
|
|
1917
1975
|
className: "font-medium",
|
|
1918
1976
|
children: [
|
|
1919
|
-
|
|
1977
|
+
ft.length,
|
|
1920
1978
|
" ",
|
|
1921
|
-
|
|
1979
|
+
ft.length === 1 ? "item" : "items",
|
|
1922
1980
|
" selected"
|
|
1923
1981
|
]
|
|
1924
1982
|
}),
|
|
1925
|
-
/* @__PURE__ */
|
|
1983
|
+
/* @__PURE__ */ M("div", {
|
|
1926
1984
|
className: "flex items-center gap-1.5 ml-3",
|
|
1927
|
-
children:
|
|
1928
|
-
let t = String(e).toLowerCase(), n = t.includes("delete") || t.includes("remove") || t.includes("destroy"), r = n ?
|
|
1929
|
-
return /* @__PURE__ */
|
|
1985
|
+
children: E.bulkActions.map((e) => {
|
|
1986
|
+
let t = String(e).toLowerCase(), n = t.includes("delete") || t.includes("remove") || t.includes("destroy"), r = n ? Se : null;
|
|
1987
|
+
return /* @__PURE__ */ N(d, {
|
|
1930
1988
|
variant: n ? "destructive" : "outline",
|
|
1931
1989
|
size: "sm",
|
|
1932
1990
|
className: "h-7 px-2.5 text-xs gap-1.5",
|
|
1933
|
-
onClick: () =>
|
|
1991
|
+
onClick: () => h.onBulkAction?.(e, ft),
|
|
1934
1992
|
"data-testid": `bulk-action-${e}`,
|
|
1935
|
-
children: [r && /* @__PURE__ */
|
|
1993
|
+
children: [r && /* @__PURE__ */ M(r, { className: "h-3 w-3" }), Je(e)]
|
|
1936
1994
|
}, e);
|
|
1937
1995
|
})
|
|
1938
1996
|
}),
|
|
1939
|
-
/* @__PURE__ */
|
|
1997
|
+
/* @__PURE__ */ N(d, {
|
|
1940
1998
|
variant: "ghost",
|
|
1941
1999
|
size: "sm",
|
|
1942
2000
|
className: "h-7 px-2 text-xs ml-auto gap-1",
|
|
1943
|
-
onClick: () =>
|
|
1944
|
-
children: [/* @__PURE__ */
|
|
2001
|
+
onClick: () => pt([]),
|
|
2002
|
+
children: [/* @__PURE__ */ M(Ce, { className: "h-3 w-3" }), "Clear"]
|
|
1945
2003
|
})
|
|
1946
2004
|
]
|
|
1947
2005
|
}),
|
|
1948
|
-
!
|
|
2006
|
+
!B && z.length > 0 && E.showRecordCount !== !1 && /* @__PURE__ */ N("div", {
|
|
1949
2007
|
className: "border-t px-4 py-2 flex items-center gap-3 text-xs text-muted-foreground bg-background shrink-0",
|
|
1950
2008
|
"data-testid": "record-count-bar",
|
|
1951
2009
|
children: [
|
|
1952
|
-
/* @__PURE__ */
|
|
2010
|
+
/* @__PURE__ */ M("span", {
|
|
1953
2011
|
className: "font-medium text-foreground/80",
|
|
1954
|
-
children:
|
|
2012
|
+
children: z.length === 1 ? _("list.recordCountOne", { count: z.length }) : _("list.recordCount", { count: z.length })
|
|
1955
2013
|
}),
|
|
1956
|
-
|
|
2014
|
+
et && /* @__PURE__ */ M("span", {
|
|
1957
2015
|
className: "text-amber-600",
|
|
1958
2016
|
"data-testid": "data-limit-warning",
|
|
1959
|
-
children:
|
|
2017
|
+
children: _("list.dataLimitReached", { limit: W })
|
|
1960
2018
|
}),
|
|
1961
|
-
|
|
2019
|
+
E.pagination?.pageSizeOptions && E.pagination.pageSizeOptions.length > 0 && /* @__PURE__ */ N("div", {
|
|
1962
2020
|
className: "ml-auto flex items-center gap-2",
|
|
1963
|
-
children: [/* @__PURE__ */
|
|
2021
|
+
children: [/* @__PURE__ */ M("span", { children: _("table.rowsPerPage", { defaultValue: "Rows per page" }) }), /* @__PURE__ */ M("select", {
|
|
1964
2022
|
"data-testid": "page-size-selector",
|
|
1965
2023
|
className: "h-7 w-[72px] px-2 py-1 text-xs rounded-md border border-input bg-background",
|
|
1966
|
-
value: String(
|
|
2024
|
+
value: String(W),
|
|
1967
2025
|
onChange: (e) => {
|
|
1968
2026
|
let t = Number(e.target.value);
|
|
1969
|
-
|
|
2027
|
+
it(t), h.onPageSizeChange && h.onPageSizeChange(t);
|
|
1970
2028
|
},
|
|
1971
|
-
children:
|
|
2029
|
+
children: E.pagination.pageSizeOptions.map((e) => /* @__PURE__ */ M("option", {
|
|
1972
2030
|
value: String(e),
|
|
1973
2031
|
children: e
|
|
1974
2032
|
}, e))
|
|
@@ -1976,17 +2034,17 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1976
2034
|
})
|
|
1977
2035
|
]
|
|
1978
2036
|
}),
|
|
1979
|
-
|
|
1980
|
-
...
|
|
1981
|
-
title:
|
|
1982
|
-
children: (e) => /* @__PURE__ */
|
|
2037
|
+
Rt.isOverlay && /* @__PURE__ */ M(te, {
|
|
2038
|
+
...Rt,
|
|
2039
|
+
title: E.label ? `${E.label} Detail` : E.objectName ? `${E.objectName.charAt(0).toUpperCase() + E.objectName.slice(1)} Detail` : "Record Detail",
|
|
2040
|
+
children: (e) => /* @__PURE__ */ M("div", {
|
|
1983
2041
|
className: "space-y-3",
|
|
1984
|
-
children: Object.entries(e).map(([e, t]) => /* @__PURE__ */
|
|
2042
|
+
children: Object.entries(e).map(([e, t]) => /* @__PURE__ */ N("div", {
|
|
1985
2043
|
className: "flex flex-col",
|
|
1986
|
-
children: [/* @__PURE__ */
|
|
2044
|
+
children: [/* @__PURE__ */ M("span", {
|
|
1987
2045
|
className: "text-xs font-medium text-muted-foreground uppercase tracking-wide",
|
|
1988
2046
|
children: e.replace(/_/g, " ")
|
|
1989
|
-
}), /* @__PURE__ */
|
|
2047
|
+
}), /* @__PURE__ */ M("span", {
|
|
1990
2048
|
className: "text-sm",
|
|
1991
2049
|
children: String(t ?? "—")
|
|
1992
2050
|
})]
|
|
@@ -1996,18 +2054,18 @@ var Xe = a.forwardRef(({ schema: e, className: n, onViewChange: o, onFilterChang
|
|
|
1996
2054
|
]
|
|
1997
2055
|
});
|
|
1998
2056
|
});
|
|
1999
|
-
|
|
2057
|
+
U.displayName = "ListView";
|
|
2000
2058
|
//#endregion
|
|
2001
2059
|
//#region src/ObjectGallery.tsx
|
|
2002
|
-
var
|
|
2060
|
+
var rt = {
|
|
2003
2061
|
small: "grid-cols-2 sm:grid-cols-3 md:grid-cols-4 lg:grid-cols-5 xl:grid-cols-6",
|
|
2004
2062
|
medium: "grid-cols-1 sm:grid-cols-2 md:grid-cols-3 lg:grid-cols-4",
|
|
2005
2063
|
large: "grid-cols-1 sm:grid-cols-1 md:grid-cols-2 lg:grid-cols-3"
|
|
2006
|
-
},
|
|
2064
|
+
}, it = {
|
|
2007
2065
|
small: "aspect-square",
|
|
2008
2066
|
medium: "aspect-[4/3]",
|
|
2009
2067
|
large: "aspect-[16/10]"
|
|
2010
|
-
},
|
|
2068
|
+
}, W = [
|
|
2011
2069
|
{
|
|
2012
2070
|
bg: "from-indigo-500/15 via-indigo-500/5 to-purple-500/10",
|
|
2013
2071
|
ring: "ring-indigo-500/15",
|
|
@@ -2039,17 +2097,17 @@ var Ze = {
|
|
|
2039
2097
|
text: "text-violet-600/70 dark:text-violet-300/70"
|
|
2040
2098
|
}
|
|
2041
2099
|
];
|
|
2042
|
-
function
|
|
2100
|
+
function G(e) {
|
|
2043
2101
|
let t = 5381;
|
|
2044
2102
|
for (let n = 0; n < e.length; n++) t = (t << 5) + t + e.charCodeAt(n);
|
|
2045
|
-
return
|
|
2103
|
+
return W[Math.abs(t) % W.length];
|
|
2046
2104
|
}
|
|
2047
|
-
var
|
|
2048
|
-
let { schema: n } = e, r = s(
|
|
2105
|
+
var K = (e) => {
|
|
2106
|
+
let { schema: n } = e, r = s(P), i = e.dataSource || r?.dataSource, a = Ae(n.bind), [d, m] = u([]), [h, g] = u(!1), [_, v] = u(null), ee = Me({
|
|
2049
2107
|
navigation: n.navigation,
|
|
2050
2108
|
objectName: n.objectName,
|
|
2051
2109
|
onRowClick: e.onRowClick ?? e.onCardClick
|
|
2052
|
-
}),
|
|
2110
|
+
}), y = n.gallery, b = y?.coverField ?? n.imageField ?? "image", x = y?.coverFit ?? "cover", S = y?.cardSize ?? "medium", C = y?.titleField ?? n.titleField ?? "name", ne = y?.visibleFields, { fieldOptionLabel: re } = Ne(), ie = o((e) => {
|
|
2053
2111
|
let t = _?.fields?.[e], r = { name: e };
|
|
2054
2112
|
if (t) {
|
|
2055
2113
|
t.type && (r.type = t.type), t.label && (r.label = t.label), t.options && (r.options = t.options), t.currency && (r.currency = t.currency), t.precision !== void 0 && (r.precision = t.precision), t.format && (r.format = t.format);
|
|
@@ -2074,7 +2132,7 @@ var tt = (e) => {
|
|
|
2074
2132
|
return (async () => {
|
|
2075
2133
|
if (!(!i || typeof i.getObjectSchema != "function" || !n.objectName)) try {
|
|
2076
2134
|
let t = await i.getObjectSchema(n.objectName);
|
|
2077
|
-
e &&
|
|
2135
|
+
e && v(t);
|
|
2078
2136
|
} catch (e) {
|
|
2079
2137
|
console.warn("Failed to fetch object def for ObjectGallery", e);
|
|
2080
2138
|
}
|
|
@@ -2119,15 +2177,15 @@ var tt = (e) => {
|
|
|
2119
2177
|
e.data,
|
|
2120
2178
|
_
|
|
2121
2179
|
]);
|
|
2122
|
-
let
|
|
2123
|
-
|
|
2180
|
+
let T = e.data || a || n.data || d || [], E = l(() => T.some((e) => typeof e[b] == "string" && !!e[b]), [T, b]), ae = !!y?.coverField || E, k = n.grouping?.fields, oe = !!(k && k.length > 0), [A, se] = u({}), ce = l(() => k ? k.some((e) => e.collapsed) : !1, [k]), j = o((e) => {
|
|
2181
|
+
se((t) => ({
|
|
2124
2182
|
...t,
|
|
2125
|
-
[e]: t[e] === void 0 ? !
|
|
2183
|
+
[e]: t[e] === void 0 ? !ce : !t[e]
|
|
2126
2184
|
}));
|
|
2127
|
-
}, [
|
|
2185
|
+
}, [ce]), le = l(() => {
|
|
2128
2186
|
if (!oe || !k) return [];
|
|
2129
2187
|
let e = /* @__PURE__ */ new Map(), t = [];
|
|
2130
|
-
for (let n of
|
|
2188
|
+
for (let n of T) {
|
|
2131
2189
|
let r = k.map((e) => String(n[e.field] ?? "")).join(" / ");
|
|
2132
2190
|
if (!e.has(r)) {
|
|
2133
2191
|
let i = k.map((e) => {
|
|
@@ -2149,7 +2207,7 @@ var tt = (e) => {
|
|
|
2149
2207
|
});
|
|
2150
2208
|
return n === "desc" ? -r : r;
|
|
2151
2209
|
}), t.map((t) => {
|
|
2152
|
-
let n = e.get(t), r = t in A ? A[t] :
|
|
2210
|
+
let n = e.get(t), r = t in A ? A[t] : ce;
|
|
2153
2211
|
return {
|
|
2154
2212
|
key: t,
|
|
2155
2213
|
label: n.label,
|
|
@@ -2158,64 +2216,64 @@ var tt = (e) => {
|
|
|
2158
2216
|
};
|
|
2159
2217
|
});
|
|
2160
2218
|
}, [
|
|
2161
|
-
|
|
2219
|
+
T,
|
|
2162
2220
|
k,
|
|
2163
2221
|
oe,
|
|
2164
2222
|
A,
|
|
2165
|
-
|
|
2223
|
+
ce
|
|
2166
2224
|
]);
|
|
2167
|
-
if (h && !
|
|
2225
|
+
if (h && !T.length) return /* @__PURE__ */ M("div", {
|
|
2168
2226
|
className: "p-4 text-sm text-muted-foreground",
|
|
2169
2227
|
children: "Loading Gallery..."
|
|
2170
2228
|
});
|
|
2171
|
-
if (!
|
|
2229
|
+
if (!T.length) return /* @__PURE__ */ M("div", {
|
|
2172
2230
|
className: "p-4 text-sm text-muted-foreground",
|
|
2173
2231
|
children: "No items to display"
|
|
2174
2232
|
});
|
|
2175
|
-
let
|
|
2176
|
-
let i = t.id ?? t._id ?? r, a = String(t[
|
|
2177
|
-
return /* @__PURE__ */
|
|
2233
|
+
let ue = (t, r) => {
|
|
2234
|
+
let i = t.id ?? t._id ?? r, a = String(t[C] ?? "Untitled"), o = t[b], s = G(String(i) + "|" + a);
|
|
2235
|
+
return /* @__PURE__ */ N(f, {
|
|
2178
2236
|
role: "listitem",
|
|
2179
|
-
className:
|
|
2180
|
-
onClick: (e) =>
|
|
2237
|
+
className: w("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"),
|
|
2238
|
+
onClick: (e) => ee.handleClick(t, e),
|
|
2181
2239
|
children: [
|
|
2182
|
-
!ae && /* @__PURE__ */
|
|
2240
|
+
!ae && /* @__PURE__ */ M("div", {
|
|
2183
2241
|
"aria-hidden": !0,
|
|
2184
|
-
className:
|
|
2242
|
+
className: w("absolute inset-x-0 top-0 h-[3px] bg-gradient-to-r", s.bg)
|
|
2185
2243
|
}),
|
|
2186
|
-
/* @__PURE__ */
|
|
2187
|
-
className:
|
|
2244
|
+
/* @__PURE__ */ M("div", {
|
|
2245
|
+
className: w("w-full overflow-hidden relative", it[S]),
|
|
2188
2246
|
hidden: !ae,
|
|
2189
|
-
children: o ? /* @__PURE__ */
|
|
2247
|
+
children: o ? /* @__PURE__ */ M("img", {
|
|
2190
2248
|
src: o,
|
|
2191
2249
|
alt: a,
|
|
2192
|
-
className:
|
|
2193
|
-
}) : /* @__PURE__ */
|
|
2194
|
-
className:
|
|
2195
|
-
children: /* @__PURE__ */
|
|
2196
|
-
className:
|
|
2250
|
+
className: w("h-full w-full transition-transform duration-300 ease-out group-hover:scale-[1.04]", x === "cover" && "object-cover", x === "contain" && "object-contain")
|
|
2251
|
+
}) : /* @__PURE__ */ M("div", {
|
|
2252
|
+
className: w("flex h-full w-full items-center justify-center bg-gradient-to-br ring-1 ring-inset", s.bg, s.ring),
|
|
2253
|
+
children: /* @__PURE__ */ M("span", {
|
|
2254
|
+
className: w("text-5xl font-semibold tracking-tight opacity-90", s.text),
|
|
2197
2255
|
children: a[0]?.toUpperCase()
|
|
2198
2256
|
})
|
|
2199
2257
|
})
|
|
2200
2258
|
}),
|
|
2201
|
-
/* @__PURE__ */
|
|
2202
|
-
className:
|
|
2203
|
-
children: [/* @__PURE__ */
|
|
2259
|
+
/* @__PURE__ */ N(p, {
|
|
2260
|
+
className: w("p-3", ae && "border-t border-border/60"),
|
|
2261
|
+
children: [/* @__PURE__ */ M("h3", {
|
|
2204
2262
|
className: "font-semibold tracking-tight truncate text-sm leading-tight text-foreground",
|
|
2205
2263
|
title: a,
|
|
2206
2264
|
children: a
|
|
2207
|
-
}),
|
|
2265
|
+
}), ne && ne.length > 0 && /* @__PURE__ */ M("div", {
|
|
2208
2266
|
className: "mt-1.5 space-y-1",
|
|
2209
|
-
children:
|
|
2267
|
+
children: ne.map((e) => {
|
|
2210
2268
|
let n = t[e];
|
|
2211
2269
|
if (n == null || n === "") return null;
|
|
2212
2270
|
let r = ie(e);
|
|
2213
|
-
return /* @__PURE__ */
|
|
2271
|
+
return /* @__PURE__ */ M("div", {
|
|
2214
2272
|
className: "text-xs text-muted-foreground truncate [&_*]:!text-xs",
|
|
2215
2273
|
onClick: (e) => {
|
|
2216
2274
|
e.target.closest("a,button") && e.stopPropagation();
|
|
2217
2275
|
},
|
|
2218
|
-
children: /* @__PURE__ */
|
|
2276
|
+
children: /* @__PURE__ */ M(Ie(Le(r) || r.type || "text"), {
|
|
2219
2277
|
value: n,
|
|
2220
2278
|
field: r
|
|
2221
2279
|
})
|
|
@@ -2225,40 +2283,40 @@ var tt = (e) => {
|
|
|
2225
2283
|
})
|
|
2226
2284
|
]
|
|
2227
2285
|
}, i);
|
|
2228
|
-
},
|
|
2229
|
-
className:
|
|
2286
|
+
}, de = (e) => /* @__PURE__ */ M("div", {
|
|
2287
|
+
className: w("grid gap-4 p-4 auto-rows-min content-start", rt[S], n.className),
|
|
2230
2288
|
role: "list",
|
|
2231
|
-
children: e.map((e, t) =>
|
|
2289
|
+
children: e.map((e, t) => ue(e, t))
|
|
2232
2290
|
});
|
|
2233
|
-
return /* @__PURE__ */
|
|
2291
|
+
return /* @__PURE__ */ N(Te, { children: [oe ? /* @__PURE__ */ M("div", {
|
|
2234
2292
|
className: "space-y-2",
|
|
2235
|
-
children:
|
|
2293
|
+
children: le.map((e) => /* @__PURE__ */ N("div", {
|
|
2236
2294
|
className: "border rounded-md",
|
|
2237
|
-
children: [/* @__PURE__ */
|
|
2295
|
+
children: [/* @__PURE__ */ N("button", {
|
|
2238
2296
|
type: "button",
|
|
2239
2297
|
className: "flex w-full items-center gap-2 px-3 py-2 text-sm font-medium text-left bg-muted/50 hover:bg-muted transition-colors",
|
|
2240
|
-
onClick: () =>
|
|
2298
|
+
onClick: () => j(e.key),
|
|
2241
2299
|
children: [
|
|
2242
|
-
e.collapsed ? /* @__PURE__ */
|
|
2243
|
-
/* @__PURE__ */
|
|
2244
|
-
/* @__PURE__ */
|
|
2300
|
+
e.collapsed ? /* @__PURE__ */ M(O, { className: "h-4 w-4 shrink-0" }) : /* @__PURE__ */ M(D, { className: "h-4 w-4 shrink-0" }),
|
|
2301
|
+
/* @__PURE__ */ M("span", { children: e.label }),
|
|
2302
|
+
/* @__PURE__ */ M("span", {
|
|
2245
2303
|
className: "ml-auto text-xs text-muted-foreground",
|
|
2246
2304
|
children: e.items.length
|
|
2247
2305
|
})
|
|
2248
2306
|
]
|
|
2249
|
-
}), !e.collapsed &&
|
|
2307
|
+
}), !e.collapsed && de(e.items)]
|
|
2250
2308
|
}, e.key))
|
|
2251
|
-
}) :
|
|
2252
|
-
...
|
|
2309
|
+
}) : de(T), ee.isOverlay && /* @__PURE__ */ M(te, {
|
|
2310
|
+
...ee,
|
|
2253
2311
|
title: "Gallery Item",
|
|
2254
|
-
children: (e) => /* @__PURE__ */
|
|
2312
|
+
children: (e) => /* @__PURE__ */ M("div", {
|
|
2255
2313
|
className: "space-y-3",
|
|
2256
|
-
children: Object.entries(e).map(([e, t]) => /* @__PURE__ */
|
|
2314
|
+
children: Object.entries(e).map(([e, t]) => /* @__PURE__ */ N("div", {
|
|
2257
2315
|
className: "flex flex-col",
|
|
2258
|
-
children: [/* @__PURE__ */
|
|
2316
|
+
children: [/* @__PURE__ */ M("span", {
|
|
2259
2317
|
className: "text-xs font-medium text-muted-foreground uppercase tracking-wide",
|
|
2260
2318
|
children: e.replace(/_/g, " ")
|
|
2261
|
-
}), /* @__PURE__ */
|
|
2319
|
+
}), /* @__PURE__ */ M("span", {
|
|
2262
2320
|
className: "text-sm",
|
|
2263
2321
|
children: String(t ?? "—")
|
|
2264
2322
|
})]
|
|
@@ -2266,11 +2324,11 @@ var tt = (e) => {
|
|
|
2266
2324
|
})
|
|
2267
2325
|
})] });
|
|
2268
2326
|
};
|
|
2269
|
-
e.register("object-gallery",
|
|
2327
|
+
e.register("object-gallery", K, {
|
|
2270
2328
|
namespace: "plugin-list",
|
|
2271
2329
|
label: "Gallery View",
|
|
2272
2330
|
category: "view"
|
|
2273
|
-
}), e.register("list-view",
|
|
2331
|
+
}), e.register("list-view", U, {
|
|
2274
2332
|
namespace: "plugin-list",
|
|
2275
2333
|
label: "List View",
|
|
2276
2334
|
category: "Views",
|
|
@@ -2347,7 +2405,7 @@ e.register("object-gallery", tt, {
|
|
|
2347
2405
|
sort: [],
|
|
2348
2406
|
options: {}
|
|
2349
2407
|
}
|
|
2350
|
-
}), e.register("list",
|
|
2408
|
+
}), e.register("list", U, {
|
|
2351
2409
|
namespace: "view",
|
|
2352
2410
|
category: "view",
|
|
2353
2411
|
label: "List",
|
|
@@ -2418,4 +2476,4 @@ e.register("object-gallery", tt, {
|
|
|
2418
2476
|
]
|
|
2419
2477
|
});
|
|
2420
2478
|
//#endregion
|
|
2421
|
-
export {
|
|
2479
|
+
export { U as ListView, K as ObjectGallery, Ve as TabBar, He as TabBarSelect, We as UserFilters, Re as ViewSwitcher, Ze as evaluateConditionalFormatting, qe as normalizeFilterCondition, Ye as normalizeFilters };
|