@evolver-fi/evolver-basics-admin-components 0.0.19-beta.1 → 0.0.20
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/EnumSelectFilter-DiJhYa2m.js +40 -0
- package/dist/EnumSelectFilter-DiJhYa2m.js.map +1 -0
- package/dist/{ExpandMore-CFLBmfHS.js → ExpandMore-D6gf2UVG.js} +2 -2
- package/dist/{ExpandMore-CFLBmfHS.js.map → ExpandMore-D6gf2UVG.js.map} +1 -1
- package/dist/FilterLink-CHw7-m82.js +43 -0
- package/dist/FilterLink-CHw7-m82.js.map +1 -0
- package/dist/{JwtTokensRoute-CavNQu9F.js → JwtTokensRoute-B3SgLM0q.js} +8 -7
- package/dist/{JwtTokensRoute-CavNQu9F.js.map → JwtTokensRoute-B3SgLM0q.js.map} +1 -1
- package/dist/ScheduledTasksRoute-CNhOAAKd.js +1152 -0
- package/dist/ScheduledTasksRoute-CNhOAAKd.js.map +1 -0
- package/dist/SingleLogMessageRoute-C9CL51r-.js +274 -0
- package/dist/SingleLogMessageRoute-C9CL51r-.js.map +1 -0
- package/dist/SingleMessageRoute-DaaWvgfS.js +293 -0
- package/dist/SingleMessageRoute-DaaWvgfS.js.map +1 -0
- package/dist/Table-DgRqEB1x.js +154 -0
- package/dist/Table-DgRqEB1x.js.map +1 -0
- package/dist/TableMetadataDisplay-C7RP2ZrM.js +122 -0
- package/dist/TableMetadataDisplay-C7RP2ZrM.js.map +1 -0
- package/dist/TextFilter-BKUfkFQe.js +70 -0
- package/dist/TextFilter-BKUfkFQe.js.map +1 -0
- package/dist/{TriggerablesRoute-BY72XS5U.js → TriggerablesRoute-opCAjNCv.js} +1075 -1055
- package/dist/TriggerablesRoute-opCAjNCv.js.map +1 -0
- package/dist/createSvgIcon-Cf1cru4R.js +3945 -0
- package/dist/createSvgIcon-Cf1cru4R.js.map +1 -0
- package/dist/evolverClient-B_TZXnpV.js +1602 -0
- package/dist/evolverClient-B_TZXnpV.js.map +1 -0
- package/dist/filter/index.js +11 -0
- package/dist/filter/index.js.map +1 -0
- package/dist/jwt-tokens/index.js +1 -1
- package/dist/main/index.js +48 -31
- package/dist/main/index.js.map +1 -1
- package/dist/message-log/index.js +1 -1
- package/dist/message-sending/index.js +1 -1
- package/dist/{parser-CI353PAC.js → parser-Bj3mcA83.js} +2 -2
- package/dist/{parser-CI353PAC.js.map → parser-Bj3mcA83.js.map} +1 -1
- package/dist/scheduled-tasks/index.js +9 -5
- package/dist/table/index.js +6 -0
- package/dist/table/index.js.map +1 -0
- package/dist/triggerables/index.js +5 -3
- package/dist/types/admin-components/src/components/filter/index.d.ts +5 -0
- package/dist/types/admin-components/src/components/table/index.d.ts +3 -0
- package/dist/types/admin-components/src/index.d.ts +3 -1
- package/dist/types/admin-components/src/routes/jwt-tokens/JwtTokensRoute.d.ts +1 -1
- package/dist/types/admin-components/src/routes/scheduled-tasks/action.d.ts +20 -0
- package/dist/types/admin-components/src/routes/scheduled-tasks/index.d.ts +3 -2
- package/dist/types/admin-components/src/routes/triggerables/action.d.ts +10 -0
- package/dist/types/admin-components/src/routes/triggerables/index.d.ts +2 -1
- package/dist/types/filter.d.ts +2 -0
- package/dist/types/table.d.ts +2 -0
- package/dist/{validation-BRENvwZ0.js → validation-DStiilqx.js} +2 -2
- package/dist/{validation-BRENvwZ0.js.map → validation-DStiilqx.js.map} +1 -1
- package/package.json +9 -1
- package/dist/ScheduledTaskFormRoute-CnVsqh-c.js +0 -1039
- package/dist/ScheduledTaskFormRoute-CnVsqh-c.js.map +0 -1
- package/dist/SingleLogMessageRoute-B6hkr7rG.js +0 -305
- package/dist/SingleLogMessageRoute-B6hkr7rG.js.map +0 -1
- package/dist/SingleMessageRoute-Bxix2rv7.js +0 -320
- package/dist/SingleMessageRoute-Bxix2rv7.js.map +0 -1
- package/dist/TableMetadataDisplay-DTDUH1KY.js +0 -330
- package/dist/TableMetadataDisplay-DTDUH1KY.js.map +0 -1
- package/dist/TriggerablesRoute-BY72XS5U.js.map +0 -1
- package/dist/createSvgIcon-DCKQGUI3.js +0 -5543
- package/dist/createSvgIcon-DCKQGUI3.js.map +0 -1
|
@@ -1,330 +0,0 @@
|
|
|
1
|
-
import { j as r } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
-
import { Box as u, IconButton as j, TablePagination as P, TableHead as M, TableRow as x, TableCell as h, TableBody as D, Table as I, FormHelperText as _, FormControl as E, OutlinedInput as V, InputAdornment as A, Stack as m } from "@mui/material";
|
|
3
|
-
import { d as R } from "./ExpandMore-CFLBmfHS.js";
|
|
4
|
-
import H, { memo as T, useMemo as z, useRef as k, useState as w } from "react";
|
|
5
|
-
import { r as f, i as b } from "./createSvgIcon-DCKQGUI3.js";
|
|
6
|
-
var g = {}, q = b;
|
|
7
|
-
Object.defineProperty(g, "__esModule", {
|
|
8
|
-
value: !0
|
|
9
|
-
});
|
|
10
|
-
var v = g.default = void 0, B = q(f()), U = r;
|
|
11
|
-
v = g.default = (0, B.default)(/* @__PURE__ */ (0, U.jsx)("path", {
|
|
12
|
-
d: "m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z"
|
|
13
|
-
}), "ExpandLess");
|
|
14
|
-
const W = (e, a) => a !== void 0 ? `${e}: ${a}` : "", F = ({ metadata: e, open: a }) => {
|
|
15
|
-
const n = a ? Object.entries(e) : Object.entries(e).slice(0, 1);
|
|
16
|
-
return r.jsx(u, { sx: { whiteSpace: "pre-line", padding: "10px" }, children: n.map(([s, i]) => W(s, i)).join(`
|
|
17
|
-
`) });
|
|
18
|
-
}, y = ({ metadata: e }) => {
|
|
19
|
-
const [a, n] = H.useState(!1), s = (i) => {
|
|
20
|
-
i.preventDefault(), i.stopPropagation(), n(!a);
|
|
21
|
-
};
|
|
22
|
-
return r.jsxs(u, { sx: { display: "flex", flexDirection: "row", alignItems: "flex-start" }, children: [r.jsx(j, { onClick: s, children: a ? r.jsx(v, {}) : r.jsx(R, {}) }), r.jsx(F, { open: a, metadata: e })] });
|
|
23
|
-
}, de = (e, a) => {
|
|
24
|
-
const n = e.trim(), s = new URLSearchParams();
|
|
25
|
-
if (!n)
|
|
26
|
-
return s;
|
|
27
|
-
const i = n.indexOf("-"), t = String(a);
|
|
28
|
-
if (i >= 0) {
|
|
29
|
-
const o = n.split("-", 2), d = o[0].trim(), c = o[1].trim();
|
|
30
|
-
return d && s.append(`${t}.min`, d), c && s.append(`${t}.max`, c), s;
|
|
31
|
-
}
|
|
32
|
-
return s.append(`${t}.min`, n), s.append(`${t}.max`, n), s;
|
|
33
|
-
}, N = /\d{4}-\d{2}-\d{2}((\s|T)\d{2}:\d{2}:\d{2})?/g, le = (e, a) => {
|
|
34
|
-
const n = (l) => l.length > 10 ? l : `${l} 00:00:00`, s = (l) => l.length > 10 ? l : `${l} 23:59:59`, i = e.trim(), t = new URLSearchParams();
|
|
35
|
-
if (!i)
|
|
36
|
-
return t;
|
|
37
|
-
const o = i.charAt(i.length - 1) === "-", d = i.indexOf("-") === 0, c = e.match(N);
|
|
38
|
-
if (!c || c.length === 0)
|
|
39
|
-
return t;
|
|
40
|
-
const p = String(a);
|
|
41
|
-
return c.length === 1 ? !o && !d ? (t.append(`${p}.min`, n(c[0])), t.append(`${p}.max`, s(c[0])), t) : (t.append(`${p}.${d ? "max" : "min"}`, d ? s(c[0]) : n(c[0])), t) : (t.append(`${p}.min`, n(c[0])), t.append(`${p}.max`, s(c[1])), t);
|
|
42
|
-
}, pe = (e) => e.slice(0, e.indexOf(".")).replace("T", " "), ue = (e) => r.jsx(y, { metadata: e }), me = (e, a) => {
|
|
43
|
-
const n = new URLSearchParams();
|
|
44
|
-
return e && Object.entries(e).forEach(([s, i]) => {
|
|
45
|
-
var t;
|
|
46
|
-
i && (((t = a == null ? void 0 : a[s]) == null ? void 0 : t.call(a, i, s)) ?? new URLSearchParams({ [s]: i })).forEach((d, c) => {
|
|
47
|
-
n.append(c, d);
|
|
48
|
-
});
|
|
49
|
-
}), n;
|
|
50
|
-
};
|
|
51
|
-
var $ = {}, Q = b;
|
|
52
|
-
Object.defineProperty($, "__esModule", {
|
|
53
|
-
value: !0
|
|
54
|
-
});
|
|
55
|
-
var O = $.default = void 0, G = Q(f()), J = r;
|
|
56
|
-
O = $.default = (0, G.default)(/* @__PURE__ */ (0, J.jsx)("path", {
|
|
57
|
-
d: "M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12z"
|
|
58
|
-
}), "Backspace");
|
|
59
|
-
var S = {}, X = b;
|
|
60
|
-
Object.defineProperty(S, "__esModule", {
|
|
61
|
-
value: !0
|
|
62
|
-
});
|
|
63
|
-
var Y = S.default = void 0, Z = X(f()), C = r;
|
|
64
|
-
Y = S.default = (0, Z.default)(/* @__PURE__ */ (0, C.jsx)("path", {
|
|
65
|
-
d: "M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z"
|
|
66
|
-
}), "ArrowBack");
|
|
67
|
-
const xe = (e) => {
|
|
68
|
-
if (!e || typeof e != "object" || !("metadata" in e))
|
|
69
|
-
return e;
|
|
70
|
-
const a = Array.isArray(e.metadata) && e.metadata.some((n) => "key" in n && n.key) ? Object.fromEntries(
|
|
71
|
-
e.metadata.map(({ key: n, value: s }) => [n, s])
|
|
72
|
-
) : e.metadata;
|
|
73
|
-
return { ...e, metadata: a };
|
|
74
|
-
}, he = ({
|
|
75
|
-
page: e,
|
|
76
|
-
rowsPerPage: a,
|
|
77
|
-
total: n,
|
|
78
|
-
onPageChange: s
|
|
79
|
-
}) => /* @__PURE__ */ r.jsx(
|
|
80
|
-
P,
|
|
81
|
-
{
|
|
82
|
-
component: "div",
|
|
83
|
-
count: n,
|
|
84
|
-
page: e,
|
|
85
|
-
rowsPerPage: a,
|
|
86
|
-
onPageChange: (i, t) => s(t),
|
|
87
|
-
rowsPerPageOptions: [],
|
|
88
|
-
showFirstButton: !0,
|
|
89
|
-
showLastButton: !0
|
|
90
|
-
}
|
|
91
|
-
), K = ({
|
|
92
|
-
columns: e,
|
|
93
|
-
filter: a,
|
|
94
|
-
defaultFilter: n,
|
|
95
|
-
onFilterChange: s
|
|
96
|
-
}) => {
|
|
97
|
-
const i = z(
|
|
98
|
-
() => e.some((t) => !!t.FilterComponent),
|
|
99
|
-
[e]
|
|
100
|
-
);
|
|
101
|
-
return /* @__PURE__ */ r.jsxs(
|
|
102
|
-
M,
|
|
103
|
-
{
|
|
104
|
-
sx: {
|
|
105
|
-
position: "sticky",
|
|
106
|
-
top: 0,
|
|
107
|
-
zIndex: 3,
|
|
108
|
-
bgcolor: "background.paper",
|
|
109
|
-
borderBottom: "1px solid",
|
|
110
|
-
borderColor: "divider"
|
|
111
|
-
},
|
|
112
|
-
children: [
|
|
113
|
-
/* @__PURE__ */ r.jsx(x, { children: e.map(({ key: t, title: o, minWidth: d }) => /* @__PURE__ */ r.jsx(
|
|
114
|
-
h,
|
|
115
|
-
{
|
|
116
|
-
sx: {
|
|
117
|
-
bgcolor: "primary.main",
|
|
118
|
-
color: "common.white",
|
|
119
|
-
minWidth: d
|
|
120
|
-
},
|
|
121
|
-
children: o
|
|
122
|
-
},
|
|
123
|
-
String(t)
|
|
124
|
-
)) }),
|
|
125
|
-
i && /* @__PURE__ */ r.jsx(x, { children: e.map(
|
|
126
|
-
({
|
|
127
|
-
key: t,
|
|
128
|
-
searchKey: o,
|
|
129
|
-
FilterComponent: d,
|
|
130
|
-
filterHelperText: c,
|
|
131
|
-
filterValidator: p
|
|
132
|
-
}) => /* @__PURE__ */ r.jsx(
|
|
133
|
-
h,
|
|
134
|
-
{
|
|
135
|
-
sx: { verticalAlign: "top" },
|
|
136
|
-
children: d && /* @__PURE__ */ r.jsx(
|
|
137
|
-
d,
|
|
138
|
-
{
|
|
139
|
-
name: o ?? String(t),
|
|
140
|
-
value: a == null ? void 0 : a[t],
|
|
141
|
-
defaultValue: n == null ? void 0 : n[t],
|
|
142
|
-
filter: a ?? n,
|
|
143
|
-
helperText: c,
|
|
144
|
-
validator: p,
|
|
145
|
-
onChange: s ? (l, L) => s({
|
|
146
|
-
...a ?? n,
|
|
147
|
-
...L ?? {},
|
|
148
|
-
[t]: l
|
|
149
|
-
}) : void 0
|
|
150
|
-
},
|
|
151
|
-
n ? `${String(t)}-${n[t]}` : void 0
|
|
152
|
-
)
|
|
153
|
-
},
|
|
154
|
-
`filter-${String(t)}`
|
|
155
|
-
)
|
|
156
|
-
) })
|
|
157
|
-
]
|
|
158
|
-
}
|
|
159
|
-
);
|
|
160
|
-
}, ee = T(K), te = ({
|
|
161
|
-
rows: e,
|
|
162
|
-
getRowId: a,
|
|
163
|
-
onRowClick: n,
|
|
164
|
-
columns: s
|
|
165
|
-
}) => /* @__PURE__ */ r.jsx(
|
|
166
|
-
D,
|
|
167
|
-
{
|
|
168
|
-
sx: {
|
|
169
|
-
" & .MuiTableRow-root:nth-of-type(odd)": {
|
|
170
|
-
bgcolor: "grey.100"
|
|
171
|
-
}
|
|
172
|
-
},
|
|
173
|
-
children: e.map((i) => /* @__PURE__ */ r.jsx(
|
|
174
|
-
x,
|
|
175
|
-
{
|
|
176
|
-
hover: !0,
|
|
177
|
-
onClick: n ? () => n(i) : void 0,
|
|
178
|
-
sx: { cursor: n ? "pointer" : "default" },
|
|
179
|
-
children: s.map(({ CellComponent: t, key: o, searchKey: d }) => /* @__PURE__ */ r.jsx(h, { children: t ? /* @__PURE__ */ r.jsx(
|
|
180
|
-
t,
|
|
181
|
-
{
|
|
182
|
-
rowKey: o,
|
|
183
|
-
searchKey: d,
|
|
184
|
-
row: i,
|
|
185
|
-
value: i[o]
|
|
186
|
-
}
|
|
187
|
-
) : String(i[o]) }, String(o)))
|
|
188
|
-
},
|
|
189
|
-
String(a(i))
|
|
190
|
-
))
|
|
191
|
-
}
|
|
192
|
-
), re = T(te), je = ({
|
|
193
|
-
columns: e,
|
|
194
|
-
rows: a,
|
|
195
|
-
filter: n,
|
|
196
|
-
defaultFilter: s,
|
|
197
|
-
onFilterChange: i,
|
|
198
|
-
getRowId: t,
|
|
199
|
-
onRowClick: o
|
|
200
|
-
}) => /* @__PURE__ */ r.jsxs(I, { size: "small", children: [
|
|
201
|
-
/* @__PURE__ */ r.jsx(
|
|
202
|
-
ee,
|
|
203
|
-
{
|
|
204
|
-
columns: e,
|
|
205
|
-
filter: n,
|
|
206
|
-
defaultFilter: s,
|
|
207
|
-
onFilterChange: i
|
|
208
|
-
}
|
|
209
|
-
),
|
|
210
|
-
/* @__PURE__ */ r.jsx(
|
|
211
|
-
re,
|
|
212
|
-
{
|
|
213
|
-
rows: a,
|
|
214
|
-
getRowId: t,
|
|
215
|
-
onRowClick: o,
|
|
216
|
-
columns: e
|
|
217
|
-
}
|
|
218
|
-
)
|
|
219
|
-
] }), fe = (e) => e.slice(0, e.indexOf(".")).replace("T", " "), be = (e) => /^\d*$/.test(e) ? void 0 : "Value must be numeric!", ge = (e) => /^[0-9]*\s*-{0,1}\s*[0-9]*$/.test(e) ? void 0 : "Value must be numeric or a range!", ve = (e) => /^(\d{4}-\d{2}-\d{2}((\s|T)\d{2}:\d{2}:\d{2})?){0,1}\s*-{0,1}\s*(\d{4}-\d{2}-\d{2}((\s|T)\d{2}:\d{2}:\d{2})?){0,1}$/.test(
|
|
220
|
-
e
|
|
221
|
-
) ? void 0 : "Value must be a date(time) or range!", ne = ({
|
|
222
|
-
helperText: e,
|
|
223
|
-
error: a
|
|
224
|
-
}) => /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
225
|
-
e && /* @__PURE__ */ r.jsx(_, { sx: { whiteSpace: "normal", overflowWrap: "anywhere" }, children: e }),
|
|
226
|
-
a && /* @__PURE__ */ r.jsx(_, { sx: { whiteSpace: "normal", overflowWrap: "anywhere" }, children: a })
|
|
227
|
-
] }), $e = ({
|
|
228
|
-
name: e,
|
|
229
|
-
value: a,
|
|
230
|
-
defaultValue: n,
|
|
231
|
-
onChange: s,
|
|
232
|
-
helperText: i,
|
|
233
|
-
validator: t
|
|
234
|
-
}) => {
|
|
235
|
-
const o = k(null), [d, c] = w(a ?? n ?? ""), p = t == null ? void 0 : t(d);
|
|
236
|
-
return /* @__PURE__ */ r.jsxs(E, { size: "small", error: !!p, variant: "outlined", fullWidth: !0, children: [
|
|
237
|
-
/* @__PURE__ */ r.jsx(
|
|
238
|
-
V,
|
|
239
|
-
{
|
|
240
|
-
name: e,
|
|
241
|
-
inputRef: o,
|
|
242
|
-
value: a,
|
|
243
|
-
defaultValue: n,
|
|
244
|
-
onChange: (l) => {
|
|
245
|
-
c(l.target.value), s == null || s(l.target.value);
|
|
246
|
-
},
|
|
247
|
-
endAdornment: /* @__PURE__ */ r.jsx(
|
|
248
|
-
A,
|
|
249
|
-
{
|
|
250
|
-
position: "end",
|
|
251
|
-
sx: { visibility: d ? "visible" : "hidden" },
|
|
252
|
-
children: /* @__PURE__ */ r.jsx(
|
|
253
|
-
j,
|
|
254
|
-
{
|
|
255
|
-
size: "small",
|
|
256
|
-
type: "submit",
|
|
257
|
-
onClick: () => {
|
|
258
|
-
s == null || s(""), c(""), o.current && (o.current.value = "", o.current.dispatchEvent(
|
|
259
|
-
new Event("input", { bubbles: !0 })
|
|
260
|
-
));
|
|
261
|
-
},
|
|
262
|
-
children: /* @__PURE__ */ r.jsx(O, {})
|
|
263
|
-
}
|
|
264
|
-
)
|
|
265
|
-
}
|
|
266
|
-
)
|
|
267
|
-
}
|
|
268
|
-
),
|
|
269
|
-
/* @__PURE__ */ r.jsx(ne, { helperText: i, error: p })
|
|
270
|
-
] });
|
|
271
|
-
}, Se = ({
|
|
272
|
-
value: e
|
|
273
|
-
}) => {
|
|
274
|
-
const [a, n] = w(!1), s = (t) => {
|
|
275
|
-
t.preventDefault(), t.stopPropagation(), n((o) => !o);
|
|
276
|
-
}, i = Object.keys(e).length;
|
|
277
|
-
return /* @__PURE__ */ r.jsxs(m, { children: [
|
|
278
|
-
/* @__PURE__ */ r.jsxs(m, { direction: "row", alignItems: "center", spacing: 1, children: [
|
|
279
|
-
/* @__PURE__ */ r.jsx(
|
|
280
|
-
j,
|
|
281
|
-
{
|
|
282
|
-
onClick: s,
|
|
283
|
-
sx: { maxWidth: "max-content", p: 0, mr: 1 },
|
|
284
|
-
children: a ? /* @__PURE__ */ r.jsx(v, {}) : /* @__PURE__ */ r.jsx(R, {})
|
|
285
|
-
}
|
|
286
|
-
),
|
|
287
|
-
/* @__PURE__ */ r.jsxs(u, { children: [
|
|
288
|
-
"(",
|
|
289
|
-
i,
|
|
290
|
-
")"
|
|
291
|
-
] })
|
|
292
|
-
] }),
|
|
293
|
-
/* @__PURE__ */ r.jsx(
|
|
294
|
-
m,
|
|
295
|
-
{
|
|
296
|
-
whiteSpace: "pre-line",
|
|
297
|
-
mt: a ? 1 : 0,
|
|
298
|
-
height: a ? "auto" : 0,
|
|
299
|
-
overflow: "hidden",
|
|
300
|
-
children: Object.entries(e).map(([t, o]) => /* @__PURE__ */ r.jsxs(r.Fragment, { children: [
|
|
301
|
-
/* @__PURE__ */ r.jsxs(u, { children: [
|
|
302
|
-
t,
|
|
303
|
-
":"
|
|
304
|
-
] }),
|
|
305
|
-
/* @__PURE__ */ r.jsx(u, { ml: 1, children: o })
|
|
306
|
-
] }, t))
|
|
307
|
-
}
|
|
308
|
-
)
|
|
309
|
-
] });
|
|
310
|
-
};
|
|
311
|
-
export {
|
|
312
|
-
ne as F,
|
|
313
|
-
he as P,
|
|
314
|
-
$e as T,
|
|
315
|
-
de as a,
|
|
316
|
-
pe as b,
|
|
317
|
-
me as c,
|
|
318
|
-
Y as d,
|
|
319
|
-
fe as e,
|
|
320
|
-
le as f,
|
|
321
|
-
ve as g,
|
|
322
|
-
be as h,
|
|
323
|
-
Se as i,
|
|
324
|
-
je as j,
|
|
325
|
-
O as k,
|
|
326
|
-
ue as l,
|
|
327
|
-
xe as m,
|
|
328
|
-
ge as n
|
|
329
|
-
};
|
|
330
|
-
//# sourceMappingURL=TableMetadataDisplay-DTDUH1KY.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TableMetadataDisplay-DTDUH1KY.js","sources":["../../node_modules/@mui/icons-material/ExpandLess.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/common/components/ListMetadata.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/common/components/listUtils.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/common/utils/filterUtils.js","../../node_modules/@mui/icons-material/Backspace.js","../../node_modules/@mui/icons-material/ArrowBack.js","../src/components/metadata/utils.ts","../src/components/table/Pagination.tsx","../src/components/table/Table.tsx","../src/common/format.ts","../src/common/validation.ts","../src/components/filter/FilterHelperTexts.tsx","../src/components/filter/TextFilter.tsx","../src/components/metadata/TableMetadataDisplay.tsx"],"sourcesContent":["\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"m12 8-6 6 1.41 1.41L12 10.83l4.59 4.58L18 14z\"\n}), 'ExpandLess');","import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport { Box, IconButton } from '@mui/material';\nimport ExpandLess from '@mui/icons-material/ExpandLess';\nimport ExpandMore from '@mui/icons-material/ExpandMore';\nimport React from 'react';\nconst formatSingleMetadata = (key, value) => {\n if (value !== undefined)\n return `${key}: ${value}`;\n return '';\n};\nconst Metadata = ({ metadata, open }) => {\n const metadataList = open ? Object.entries(metadata) : Object.entries(metadata).slice(0, 1);\n return (_jsx(Box, { sx: { whiteSpace: 'pre-line', padding: '10px' }, children: metadataList.map(([key, value]) => formatSingleMetadata(key, value)).join('\\n') }));\n};\nexport const ListMetadata = ({ metadata }) => {\n const [open, setOpen] = React.useState(false);\n const handleClick = (event) => {\n event.preventDefault();\n event.stopPropagation();\n setOpen(!open);\n };\n return (_jsxs(Box, { sx: { display: 'flex', flexDirection: 'row', alignItems: 'flex-start' }, children: [_jsx(IconButton, { onClick: handleClick, children: open ? _jsx(ExpandLess, {}) : _jsx(ExpandMore, {}) }), _jsx(Metadata, { open: open, metadata: metadata })] }));\n};\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { ListMetadata } from './ListMetadata';\n// TODO add typings for all the formatters so that only valid keys are passed\nexport const formatNumberRangeFilter = (value, key) => {\n const trimmed = value.trim();\n const result = new URLSearchParams();\n if (!trimmed) {\n return result;\n }\n const rangeSeparatorIndex = trimmed.indexOf('-');\n const keyStr = String(key);\n if (rangeSeparatorIndex >= 0) {\n const parts = trimmed.split('-', 2);\n const start = parts[0].trim();\n const end = parts[1].trim();\n if (start) {\n result.append(`${keyStr}.min`, start);\n }\n if (end) {\n result.append(`${keyStr}.max`, end);\n }\n return result;\n }\n result.append(`${keyStr}.min`, trimmed);\n result.append(`${keyStr}.max`, trimmed);\n return result;\n};\nconst datetimePattern = /\\d{4}-\\d{2}-\\d{2}((\\s|T)\\d{2}:\\d{2}:\\d{2})?/g;\nexport const formatDatetimeRangeFilter = (value, key) => {\n const formatMin = (value) => (value.length > 10 ? value : `${value} 00:00:00`);\n const formatMax = (value) => (value.length > 10 ? value : `${value} 23:59:59`);\n const trimmed = value.trim();\n const result = new URLSearchParams();\n if (!trimmed) {\n return result;\n }\n const isStartOnly = trimmed.charAt(trimmed.length - 1) === '-';\n const isEndOnly = trimmed.indexOf('-') === 0;\n const matches = value.match(datetimePattern);\n if (!matches || matches.length === 0) {\n return result;\n }\n const keyStr = String(key);\n if (matches.length === 1) {\n if (!isStartOnly && !isEndOnly) {\n result.append(`${keyStr}.min`, formatMin(matches[0]));\n result.append(`${keyStr}.max`, formatMax(matches[0]));\n return result;\n }\n result.append(`${keyStr}.${isEndOnly ? 'max' : 'min'}`, isEndOnly ? formatMax(matches[0]) : formatMin(matches[0]));\n return result;\n }\n result.append(`${keyStr}.min`, formatMin(matches[0]));\n result.append(`${keyStr}.max`, formatMax(matches[1]));\n return result;\n};\nexport const formatDateTime = (value) => value.slice(0, value.indexOf('.')).replace('T', ' ');\nexport const formatMetadata = (metadata) => {\n return _jsx(ListMetadata, { metadata: metadata });\n};\nexport const getParameterValueFormatters = (definitions) => {\n const result = {};\n definitions.forEach((definition) => {\n if (definition.paramValueFormatter) {\n result[definition.filterKey] = definition.paramValueFormatter;\n }\n });\n return result;\n};\n","export const filterFromUrlSearchParams = (query, keys) => {\n const filter = {};\n keys.forEach((k) => {\n const value = query.get(k.toString());\n if (value) {\n filter[k] = value.toString();\n }\n });\n return filter;\n};\n/**\n * Produce a filter value from a row value. Best effort recognition of the different types of objects.\n * @param rowValue\n * @returns\n */\nexport const filterValueFromRowValue = (rowValue) => {\n if (Array.isArray(rowValue)) {\n return formatKeyValueArray(rowValue);\n }\n else if (typeof rowValue === 'object') {\n return formatObject(rowValue);\n }\n return rowValue.toString();\n};\nexport const formatObject = (value) => {\n return Object.entries(value)\n .map(([k, v]) => `${k}=${v}`)\n .join(',');\n};\nexport const formatKeyValueArray = (value) => {\n return value.map((v) => `${v.key}=${v.value}`).join(',');\n};\nexport const createFilterQuery = (filters, formatterByKey) => {\n const result = new URLSearchParams();\n if (!filters) {\n return result;\n }\n Object.entries(filters).forEach(([key, value]) => {\n if (value) {\n const subResult = formatterByKey?.[key]?.(value, key) ?? new URLSearchParams({ [key]: value });\n subResult.forEach((subValue, subKey) => {\n result.append(subKey, subValue);\n });\n }\n });\n return result;\n};\n","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M22 3H7c-.69 0-1.23.35-1.59.88L0 12l5.41 8.11c.36.53.9.89 1.59.89h15c1.1 0 2-.9 2-2V5c0-1.1-.9-2-2-2m-3 12.59L17.59 17 14 13.41 10.41 17 9 15.59 12.59 12 9 8.41 10.41 7 14 10.59 17.59 7 19 8.41 15.41 12z\"\n}), 'Backspace');","\"use strict\";\n\"use client\";\n\nvar _interopRequireDefault = require(\"@babel/runtime/helpers/interopRequireDefault\");\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\nexports.default = void 0;\nvar _createSvgIcon = _interopRequireDefault(require(\"./utils/createSvgIcon\"));\nvar _jsxRuntime = require(\"react/jsx-runtime\");\nvar _default = exports.default = (0, _createSvgIcon.default)( /*#__PURE__*/(0, _jsxRuntime.jsx)(\"path\", {\n d: \"M20 11H7.83l5.59-5.59L12 4l-8 8 8 8 1.41-1.41L7.83 13H20z\"\n}), 'ArrowBack');","export const mapMetadata = (message: unknown): unknown => {\n if (!message || typeof message !== \"object\" || !(\"metadata\" in message))\n return message;\n\n const metadata =\n Array.isArray(message.metadata) &&\n message.metadata.some((m) => \"key\" in m && m.key)\n ? Object.fromEntries(\n message.metadata.map(({ key, value }) => [key, value])\n )\n : message.metadata;\n\n return { ...message, metadata };\n};\n","import { TablePagination } from \"@mui/material\";\n\nexport const Pagination = ({\n page,\n rowsPerPage,\n total,\n onPageChange,\n}: {\n /** zero-indexed page number */\n page: number;\n rowsPerPage: number;\n total: number;\n onPageChange: (page: number) => void;\n}) => {\n return (\n <TablePagination\n component=\"div\"\n count={total}\n page={page}\n rowsPerPage={rowsPerPage}\n onPageChange={(_, newPage) => onPageChange(newPage)}\n rowsPerPageOptions={[]}\n showFirstButton\n showLastButton\n />\n );\n};\n","import {\n Table as MuiTable,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n} from \"@mui/material\";\nimport { memo, useMemo } from \"react\";\nimport { Filter } from \"../filter/types\";\nimport { TableProps } from \"./types\";\n\nconst Head_ = <T, F extends Filter<T>>({\n columns,\n filter,\n defaultFilter,\n onFilterChange,\n}: Pick<\n TableProps<T, F>,\n \"columns\" | \"filter\" | \"onFilterChange\" | \"defaultFilter\"\n>) => {\n const hasFilters = useMemo(\n () => columns.some((col) => !!col.FilterComponent),\n [columns]\n );\n\n return (\n <TableHead\n sx={{\n position: \"sticky\",\n top: 0,\n zIndex: 3,\n bgcolor: \"background.paper\",\n borderBottom: \"1px solid\",\n borderColor: \"divider\",\n }}\n >\n <TableRow>\n {columns.map(({ key, title, minWidth }) => (\n <TableCell\n sx={{\n bgcolor: \"primary.main\",\n color: \"common.white\",\n minWidth,\n }}\n key={String(key)}\n >\n {title}\n </TableCell>\n ))}\n </TableRow>\n {hasFilters && (\n <TableRow>\n {columns.map(\n ({\n key,\n searchKey,\n FilterComponent,\n filterHelperText,\n filterValidator,\n }) => (\n <TableCell\n key={`filter-${String(key)}`}\n sx={{ verticalAlign: \"top\" }}\n >\n {FilterComponent && (\n <FilterComponent\n key={\n defaultFilter\n ? `${String(key)}-${defaultFilter[key]}`\n : undefined\n }\n name={searchKey ?? String(key)}\n value={filter?.[key]}\n defaultValue={defaultFilter?.[key]}\n filter={(filter ?? defaultFilter)!}\n helperText={filterHelperText}\n validator={filterValidator}\n onChange={\n onFilterChange\n ? (value, newFilter) =>\n onFilterChange({\n ...(filter ?? defaultFilter),\n ...(newFilter ?? ({} as F)),\n [key]: value,\n })\n : undefined\n }\n />\n )}\n </TableCell>\n )\n )}\n </TableRow>\n )}\n </TableHead>\n );\n};\n\n// memo does not handle generic types properly\nconst Head = memo(Head_) as unknown as typeof Head_;\n\nconst Body_ = <T, F extends Filter<T>>({\n rows,\n getRowId,\n onRowClick,\n columns,\n}: Pick<TableProps<T, F>, \"rows\" | \"getRowId\" | \"onRowClick\" | \"columns\">) => (\n <TableBody\n sx={{\n \" & .MuiTableRow-root:nth-of-type(odd)\": {\n bgcolor: \"grey.100\",\n },\n }}\n >\n {rows.map((row) => (\n <TableRow\n key={String(getRowId(row))}\n hover\n onClick={onRowClick ? () => onRowClick(row) : undefined}\n sx={{ cursor: onRowClick ? \"pointer\" : \"default\" }}\n >\n {columns.map(({ CellComponent, key, searchKey }) => (\n <TableCell key={String(key)}>\n {CellComponent ? (\n <CellComponent\n rowKey={key}\n searchKey={searchKey}\n row={row}\n value={row[key]}\n />\n ) : (\n String(row[key])\n )}\n </TableCell>\n ))}\n </TableRow>\n ))}\n </TableBody>\n);\n\n// memo does not handle generic types properly\nconst Body = memo(Body_) as unknown as typeof Body_;\n\nexport const Table = <T, F extends Filter<T>>({\n columns,\n rows,\n filter,\n defaultFilter,\n onFilterChange,\n getRowId,\n onRowClick,\n}: TableProps<T, F>) => {\n return (\n <MuiTable size=\"small\">\n <Head\n columns={columns}\n filter={filter}\n defaultFilter={defaultFilter}\n onFilterChange={onFilterChange}\n />\n <Body\n rows={rows}\n getRowId={getRowId}\n onRowClick={onRowClick}\n columns={columns}\n />\n </MuiTable>\n );\n};\n","export const formatDateTime = (value: string): string =>\n value.slice(0, value.indexOf(\".\")).replace(\"T\", \" \");\n","import { ValidationError } from \"./types\";\n\nexport const numberValidator = (value: string): ValidationError =>\n !/^\\d*$/.test(value) ? \"Value must be numeric!\" : undefined;\n\nexport const booleanValidator = (value: string): ValidationError =>\n !/^(true|false)$/.test(value) ? \"Value must be true or false!\" : undefined;\n\nexport const numberRangeValidator = (value: string): ValidationError =>\n !/^[0-9]*\\s*-{0,1}\\s*[0-9]*$/.test(value)\n ? \"Value must be numeric or a range!\"\n : undefined;\n\nexport const datetimeRangeValidator = (value: string): ValidationError =>\n !/^(\\d{4}-\\d{2}-\\d{2}((\\s|T)\\d{2}:\\d{2}:\\d{2})?){0,1}\\s*-{0,1}\\s*(\\d{4}-\\d{2}-\\d{2}((\\s|T)\\d{2}:\\d{2}:\\d{2})?){0,1}$/.test(\n value\n )\n ? \"Value must be a date(time) or range!\"\n : undefined;\n","import { FormHelperText } from \"@mui/material\";\n\nexport const FilterHelperTexts = ({\n helperText,\n error,\n}: {\n helperText?: React.ReactNode;\n error?: string;\n}) => (\n <>\n {helperText && (\n <FormHelperText sx={{ whiteSpace: \"normal\", overflowWrap: \"anywhere\" }}>\n {helperText}\n </FormHelperText>\n )}\n {error && (\n <FormHelperText sx={{ whiteSpace: \"normal\", overflowWrap: \"anywhere\" }}>\n {error}\n </FormHelperText>\n )}\n </>\n);\n","import Backspace from \"@mui/icons-material/Backspace\";\nimport {\n FormControl,\n IconButton,\n InputAdornment,\n OutlinedInput,\n} from \"@mui/material\";\nimport { useRef, useState } from \"react\";\nimport { FilterHelperTexts } from \"./FilterHelperTexts\";\nimport { GenericFilterProps } from \"./types\";\n\nexport const TextFilter = ({\n name,\n value,\n defaultValue,\n onChange,\n helperText,\n validator,\n}: GenericFilterProps<string>) => {\n const ref = useRef<HTMLInputElement>(null);\n\n const [localValue, setLocalValue] = useState(value ?? defaultValue ?? \"\");\n const error = validator?.(localValue);\n\n return (\n <FormControl size=\"small\" error={!!error} variant=\"outlined\" fullWidth>\n <OutlinedInput\n name={name}\n inputRef={ref}\n value={value}\n defaultValue={defaultValue}\n onChange={(e) => {\n setLocalValue(e.target.value);\n onChange?.(e.target.value);\n }}\n endAdornment={\n <InputAdornment\n position=\"end\"\n sx={{ visibility: localValue ? \"visible\" : \"hidden\" }}\n >\n <IconButton\n size=\"small\"\n type=\"submit\"\n onClick={() => {\n onChange?.(\"\");\n setLocalValue(\"\");\n if (ref.current) {\n ref.current.value = \"\";\n ref.current.dispatchEvent(\n new Event(\"input\", { bubbles: true })\n );\n }\n }}\n >\n <Backspace />\n </IconButton>\n </InputAdornment>\n }\n />\n <FilterHelperTexts helperText={helperText} error={error} />\n </FormControl>\n );\n};\n","import ExpandLess from \"@mui/icons-material/ExpandLess\";\nimport ExpandMore from \"@mui/icons-material/ExpandMore\";\nimport { Box, IconButton, Stack } from \"@mui/material\";\nimport { useState } from \"react\";\nimport { Fragment } from \"react/jsx-runtime\";\nimport { GenericCellProps } from \"../table/types\";\n\nexport const TableMetadataDisplay = ({\n value,\n}: GenericCellProps<Record<string, string>>) => {\n const [open, setOpen] = useState(false);\n const handleClick = (event: React.MouseEvent) => {\n event.preventDefault();\n event.stopPropagation();\n setOpen((prev) => !prev);\n };\n\n const amount = Object.keys(value).length;\n\n return (\n <Stack>\n <Stack direction=\"row\" alignItems=\"center\" spacing={1}>\n <IconButton\n onClick={handleClick}\n sx={{ maxWidth: \"max-content\", p: 0, mr: 1 }}\n >\n {open ? <ExpandLess /> : <ExpandMore />}\n </IconButton>\n <Box>({amount})</Box>\n </Stack>\n <Stack\n whiteSpace=\"pre-line\"\n mt={open ? 1 : 0}\n height={open ? \"auto\" : 0}\n overflow=\"hidden\"\n >\n {Object.entries(value).map(([k, v]) => (\n <Fragment key={k}>\n <Box>{k}:</Box>\n <Box ml={1}>{v}</Box>\n </Fragment>\n ))}\n </Stack>\n </Stack>\n );\n};\n"],"names":["_interopRequireDefault","require$$0","ExpandLess","default_1","_createSvgIcon","require$$1","_jsxRuntime","require$$2","formatSingleMetadata","key","value","Metadata","metadata","open","metadataList","_jsx","Box","ListMetadata","setOpen","React","handleClick","event","_jsxs","IconButton","ExpandMore","formatNumberRangeFilter","trimmed","result","rangeSeparatorIndex","keyStr","parts","start","end","datetimePattern","formatDatetimeRangeFilter","formatMin","formatMax","isStartOnly","isEndOnly","matches","formatDateTime","formatMetadata","createFilterQuery","filters","formatterByKey","_a","subValue","subKey","Backspace","ArrowBack","mapMetadata","message","m","Pagination","page","rowsPerPage","total","onPageChange","jsx","TablePagination","_","newPage","Head_","columns","filter","defaultFilter","onFilterChange","hasFilters","useMemo","col","jsxs","TableHead","TableRow","title","minWidth","TableCell","searchKey","FilterComponent","filterHelperText","filterValidator","newFilter","Head","memo","Body_","rows","getRowId","onRowClick","TableBody","row","CellComponent","Body","Table","MuiTable","numberValidator","numberRangeValidator","datetimeRangeValidator","FilterHelperTexts","helperText","error","Fragment","FormHelperText","TextFilter","name","defaultValue","onChange","validator","ref","useRef","localValue","setLocalValue","useState","FormControl","OutlinedInput","e","InputAdornment","TableMetadataDisplay","prev","amount","Stack","k","v"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|