@evolver-fi/evolver-basics-admin-components 0.0.12 → 0.0.19

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.
Files changed (57) hide show
  1. package/dist/ConfirmButton-jayUa8_J.js.map +1 -1
  2. package/dist/{ExpandMore-CCOUGfS4.js → ExpandMore-CFLBmfHS.js} +2 -2
  3. package/dist/{ExpandMore-CCOUGfS4.js.map → ExpandMore-CFLBmfHS.js.map} +1 -1
  4. package/dist/{JwtTokensRoute-DKaxXWe8.js → JwtTokensRoute-CavNQu9F.js} +3 -3
  5. package/dist/JwtTokensRoute-CavNQu9F.js.map +1 -0
  6. package/dist/{ScheduledTaskFormRoute-BpHIsRQr.js → ScheduledTaskFormRoute-CnVsqh-c.js} +11 -10
  7. package/dist/ScheduledTaskFormRoute-CnVsqh-c.js.map +1 -0
  8. package/dist/SingleLogMessageRoute-B6hkr7rG.js +305 -0
  9. package/dist/SingleLogMessageRoute-B6hkr7rG.js.map +1 -0
  10. package/dist/SingleMessageRoute-Bxix2rv7.js +320 -0
  11. package/dist/SingleMessageRoute-Bxix2rv7.js.map +1 -0
  12. package/dist/TableMetadataDisplay-DTDUH1KY.js +330 -0
  13. package/dist/TableMetadataDisplay-DTDUH1KY.js.map +1 -0
  14. package/dist/{TriggerablesRoute-CHtOEVBR.js → TriggerablesRoute-BY72XS5U.js} +3 -3
  15. package/dist/TriggerablesRoute-BY72XS5U.js.map +1 -0
  16. package/dist/{createSvgIcon-DHqCx8A0.js → createSvgIcon-DCKQGUI3.js} +963 -953
  17. package/dist/createSvgIcon-DCKQGUI3.js.map +1 -0
  18. package/dist/jwt-tokens/index.js +1 -1
  19. package/dist/main/index.js +5 -5
  20. package/dist/message-log/index.js +1 -1
  21. package/dist/message-sending/index.js +1 -1
  22. package/dist/{validation-C1lKYJJR.js → parser-CI353PAC.js} +470 -486
  23. package/dist/parser-CI353PAC.js.map +1 -0
  24. package/dist/scheduled-tasks/index.js +1 -1
  25. package/dist/triggerables/index.js +1 -1
  26. package/dist/types/admin-components/src/common/format.d.ts +1 -0
  27. package/dist/types/admin-components/src/common/types.d.ts +27 -0
  28. package/dist/types/admin-components/src/common/validation.d.ts +5 -0
  29. package/dist/types/admin-components/src/components/filter/EnumSelectFilter.d.ts +11 -0
  30. package/dist/types/admin-components/src/components/filter/FilterHelperTexts.d.ts +4 -0
  31. package/dist/types/admin-components/src/components/filter/FilterLink.d.ts +2 -0
  32. package/dist/types/admin-components/src/components/filter/TextFilter.d.ts +2 -0
  33. package/dist/types/admin-components/src/components/filter/types.d.ts +20 -0
  34. package/dist/types/admin-components/src/components/metadata/TableMetadataDisplay.d.ts +2 -0
  35. package/dist/types/admin-components/src/components/metadata/utils.d.ts +1 -0
  36. package/dist/types/admin-components/src/components/table/Pagination.d.ts +7 -0
  37. package/dist/types/admin-components/src/components/table/Table.d.ts +3 -0
  38. package/dist/types/admin-components/src/components/table/types.d.ts +48 -0
  39. package/dist/types/admin-components/src/routes/message-log/messageLogColumns.d.ts +3 -0
  40. package/dist/types/admin-components/src/routes/message-log/types.d.ts +35 -0
  41. package/dist/types/admin-components/src/routes/message-sending/loader.d.ts +1 -1
  42. package/dist/types/admin-components/src/routes/message-sending/messageSendingColumns.d.ts +3 -0
  43. package/dist/types/admin-components/src/routes/message-sending/types.d.ts +41 -0
  44. package/dist/validation-BRENvwZ0.js +22 -0
  45. package/dist/validation-BRENvwZ0.js.map +1 -0
  46. package/package.json +6 -3
  47. package/dist/ArrowBack-C8PcQDeL.js +0 -161
  48. package/dist/ArrowBack-C8PcQDeL.js.map +0 -1
  49. package/dist/JwtTokensRoute-DKaxXWe8.js.map +0 -1
  50. package/dist/ScheduledTaskFormRoute-BpHIsRQr.js.map +0 -1
  51. package/dist/SingleLogMessageRoute-i_AbkS5G.js +0 -245
  52. package/dist/SingleLogMessageRoute-i_AbkS5G.js.map +0 -1
  53. package/dist/SingleMessageRoute-Dh7BWlPt.js +0 -254
  54. package/dist/SingleMessageRoute-Dh7BWlPt.js.map +0 -1
  55. package/dist/TriggerablesRoute-CHtOEVBR.js.map +0 -1
  56. package/dist/createSvgIcon-DHqCx8A0.js.map +0 -1
  57. package/dist/validation-C1lKYJJR.js.map +0 -1
@@ -0,0 +1,330 @@
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
@@ -0,0 +1 @@
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]}
@@ -2,9 +2,9 @@ import { j as p } from "./jsx-runtime-B6kdoens.js";
2
2
  import * as m from "react";
3
3
  import Z, { Children as an, isValidElement as Se, cloneElement as Re, useState as Ne } from "react";
4
4
  import { Card as ln, CardHeader as cn, CircularProgress as un, CardContent as ct, Typography as ce, CardActions as dn, Tooltip as ut, IconButton as dt, Collapse as pn, Box as fn, TextField as gn, Button as hn } from "@mui/material";
5
- import { P as t, _ as f, B as w, g as we, c as Me, a as Nt, r as mn, i as vn, C as bn, D as A, E as Oe, F as xn, G as yn, H as X, I as J, J as P, K as $e, L as Y, M as Q, N as Ot, O as En, Q as Ee, U as K, d as ve, V as pt, W as ft, X as $t, Y as Tn, Z as ke, $ as Ye, a0 as Cn, a1 as Sn, a2 as Rn } from "./createSvgIcon-DHqCx8A0.js";
5
+ import { P as t, _ as f, B as w, g as we, c as Me, a as Nt, r as mn, i as vn, C as bn, D as A, E as Oe, F as xn, G as yn, H as X, I as J, J as P, K as $e, L as Y, M as Q, N as Ot, O as En, Q as Ee, U as K, d as ve, V as pt, W as ft, X as $t, Y as Tn, Z as ke, $ as Ye, a0 as Cn, a1 as Sn, a2 as Rn } from "./createSvgIcon-DCKQGUI3.js";
6
6
  import { ThemeContext as Nn, keyframes as Ze } from "@emotion/react";
7
- import { d as jt } from "./ExpandMore-CCOUGfS4.js";
7
+ import { d as jt } from "./ExpandMore-CFLBmfHS.js";
8
8
  import Te from "react-dom";
9
9
  import { useNavigate as On, useRevalidator as $n, useLoaderData as jn } from "react-router";
10
10
  function Pe(e, n) {
@@ -3533,4 +3533,4 @@ export {
3533
3533
  zr as g,
3534
3534
  Xr as l
3535
3535
  };
3536
- //# sourceMappingURL=TriggerablesRoute-CHtOEVBR.js.map
3536
+ //# sourceMappingURL=TriggerablesRoute-BY72XS5U.js.map