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

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 (65) hide show
  1. package/dist/EnumSelectFilter-DiJhYa2m.js +40 -0
  2. package/dist/EnumSelectFilter-DiJhYa2m.js.map +1 -0
  3. package/dist/{ExpandMore-CFLBmfHS.js → ExpandMore-D6gf2UVG.js} +2 -2
  4. package/dist/{ExpandMore-CFLBmfHS.js.map → ExpandMore-D6gf2UVG.js.map} +1 -1
  5. package/dist/FilterLink-CHw7-m82.js +43 -0
  6. package/dist/FilterLink-CHw7-m82.js.map +1 -0
  7. package/dist/{JwtTokensRoute-CavNQu9F.js → JwtTokensRoute-B3SgLM0q.js} +8 -7
  8. package/dist/{JwtTokensRoute-CavNQu9F.js.map → JwtTokensRoute-B3SgLM0q.js.map} +1 -1
  9. package/dist/ScheduledTasksRoute-CNhOAAKd.js +1152 -0
  10. package/dist/ScheduledTasksRoute-CNhOAAKd.js.map +1 -0
  11. package/dist/SingleLogMessageRoute-BT4ghiqv.js +305 -0
  12. package/dist/SingleLogMessageRoute-BT4ghiqv.js.map +1 -0
  13. package/dist/SingleMessageRoute-DaaWvgfS.js +293 -0
  14. package/dist/SingleMessageRoute-DaaWvgfS.js.map +1 -0
  15. package/dist/Table-DgRqEB1x.js +154 -0
  16. package/dist/Table-DgRqEB1x.js.map +1 -0
  17. package/dist/TableMetadataDisplay-C7RP2ZrM.js +122 -0
  18. package/dist/TableMetadataDisplay-C7RP2ZrM.js.map +1 -0
  19. package/dist/TextFilter-BKUfkFQe.js +70 -0
  20. package/dist/TextFilter-BKUfkFQe.js.map +1 -0
  21. package/dist/{TriggerablesRoute-BY72XS5U.js → TriggerablesRoute-opCAjNCv.js} +1075 -1055
  22. package/dist/TriggerablesRoute-opCAjNCv.js.map +1 -0
  23. package/dist/createSvgIcon-Cf1cru4R.js +3945 -0
  24. package/dist/createSvgIcon-Cf1cru4R.js.map +1 -0
  25. package/dist/evolverClient-B_TZXnpV.js +1602 -0
  26. package/dist/evolverClient-B_TZXnpV.js.map +1 -0
  27. package/dist/filter/index.js +11 -0
  28. package/dist/filter/index.js.map +1 -0
  29. package/dist/jwt-tokens/index.js +1 -1
  30. package/dist/main/index.js +48 -31
  31. package/dist/main/index.js.map +1 -1
  32. package/dist/message-log/index.js +1 -1
  33. package/dist/message-sending/index.js +1 -1
  34. package/dist/{parser-CI353PAC.js → parser-Bj3mcA83.js} +2 -2
  35. package/dist/{parser-CI353PAC.js.map → parser-Bj3mcA83.js.map} +1 -1
  36. package/dist/scheduled-tasks/index.js +9 -5
  37. package/dist/table/index.js +6 -0
  38. package/dist/table/index.js.map +1 -0
  39. package/dist/triggerables/index.js +5 -3
  40. package/dist/types/admin-components/src/components/filter/index.d.ts +5 -0
  41. package/dist/types/admin-components/src/components/table/index.d.ts +3 -0
  42. package/dist/types/admin-components/src/index.d.ts +3 -1
  43. package/dist/types/admin-components/src/routes/jwt-tokens/JwtTokensRoute.d.ts +1 -1
  44. package/dist/types/admin-components/src/routes/message-log/loader.d.ts +1 -1
  45. package/dist/types/admin-components/src/routes/message-log/types.d.ts +2 -0
  46. package/dist/types/admin-components/src/routes/scheduled-tasks/action.d.ts +20 -0
  47. package/dist/types/admin-components/src/routes/scheduled-tasks/index.d.ts +3 -2
  48. package/dist/types/admin-components/src/routes/triggerables/action.d.ts +10 -0
  49. package/dist/types/admin-components/src/routes/triggerables/index.d.ts +2 -1
  50. package/dist/types/filter.d.ts +2 -0
  51. package/dist/types/table.d.ts +2 -0
  52. package/dist/{validation-BRENvwZ0.js → validation-DStiilqx.js} +2 -2
  53. package/dist/{validation-BRENvwZ0.js.map → validation-DStiilqx.js.map} +1 -1
  54. package/package.json +9 -1
  55. package/dist/ScheduledTaskFormRoute-CnVsqh-c.js +0 -1039
  56. package/dist/ScheduledTaskFormRoute-CnVsqh-c.js.map +0 -1
  57. package/dist/SingleLogMessageRoute-B6hkr7rG.js +0 -305
  58. package/dist/SingleLogMessageRoute-B6hkr7rG.js.map +0 -1
  59. package/dist/SingleMessageRoute-Bxix2rv7.js +0 -320
  60. package/dist/SingleMessageRoute-Bxix2rv7.js.map +0 -1
  61. package/dist/TableMetadataDisplay-DTDUH1KY.js +0 -330
  62. package/dist/TableMetadataDisplay-DTDUH1KY.js.map +0 -1
  63. package/dist/TriggerablesRoute-BY72XS5U.js.map +0 -1
  64. package/dist/createSvgIcon-DCKQGUI3.js +0 -5543
  65. package/dist/createSvgIcon-DCKQGUI3.js.map +0 -1
@@ -0,0 +1,305 @@
1
+ import { filterFromUrlSearchParams as S, getBackendClient as y } from "@evolver-fi/evolver-basics";
2
+ import { j as t } from "./jsx-runtime-B6kdoens.js";
3
+ import "react";
4
+ import { g as f, c as v, a as w } from "./evolverClient-B_TZXnpV.js";
5
+ import { Button as m, Grid as l, TextField as F, TableContainer as T } from "@mui/material";
6
+ import "./parser-Bj3mcA83.js";
7
+ import { c as R, f as k, a as g, d as L, b as M, m as q, e as P, g as $, n as p, h as z, T as H } from "./TableMetadataDisplay-C7RP2ZrM.js";
8
+ import { Link as W, useNavigate as j, useSearchParams as B, useLoaderData as C, Form as K } from "react-router";
9
+ import { T as V, P as D } from "./Table-DgRqEB1x.js";
10
+ import { F as I } from "./FilterLink-CHw7-m82.js";
11
+ import { T as i } from "./TextFilter-BKUfkFQe.js";
12
+ import "axios";
13
+ const U = {
14
+ s: k,
15
+ d: g,
16
+ rqs: g,
17
+ rps: g
18
+ }, b = (e, s) => {
19
+ const r = s || f(), a = new URLSearchParams();
20
+ R(e, U).forEach((d, u) => a.append(u, d));
21
+ const o = a.toString() ? `?${a.toString()}` : "";
22
+ return r.get(`log${o}`);
23
+ }, E = (e, s) => (s || f()).get(`log/${e}`), h = v("logs/fetchLogs", async (e, s) => {
24
+ const r = await b(e);
25
+ return r.status !== 200 ? s.rejectWithValue({
26
+ message: "Failed to fetch logs."
27
+ }) : r.data;
28
+ }), A = {
29
+ logMessages: [],
30
+ logMessageTotalCount: 0,
31
+ status: "loading",
32
+ filters: {
33
+ page: "0",
34
+ size: "100"
35
+ }
36
+ };
37
+ w({
38
+ name: "log",
39
+ initialState: A,
40
+ reducers: {
41
+ updateLogs(e, { payload: s }) {
42
+ e.logMessages = s;
43
+ },
44
+ updateFilters(e, { payload: s }) {
45
+ e.filters = { ...e.filters, ...s };
46
+ },
47
+ clearFilters(e, { payload: s }) {
48
+ const r = { ...e.filters };
49
+ s.forEach((a) => {
50
+ delete r[a];
51
+ }), e.filters = r;
52
+ }
53
+ },
54
+ extraReducers: (e) => {
55
+ e.addCase(h.pending, (s) => {
56
+ s.status = "loading", s.error = "undefined";
57
+ }), e.addCase(h.fulfilled, (s, { payload: r }) => {
58
+ s.logMessages = r.content, s.logMessageTotalCount = r.totalElements, s.status = "succeeded";
59
+ }), e.addCase(h.rejected, (s, { payload: r }) => {
60
+ r && (s.error = r.message), s.status = "failed";
61
+ });
62
+ }
63
+ });
64
+ const n = ({ label: e, value: s, isWide: r, isFull: a }) => t.jsx(l, { item: !0, xs: 12, sm: a ? 12 : 6, md: a ? 12 : r ? 6 : 3, children: t.jsx(F, { label: e, value: s, InputProps: {
65
+ readOnly: !0
66
+ }, InputLabelProps: {
67
+ style: { fontSize: 20 }
68
+ }, multiline: !0, fullWidth: !0 }) }), N = ({ message: e, backAction: s, downloadDataAction: r }) => t.jsxs(t.Fragment, { children: [t.jsx(m, { variant: "contained", startIcon: t.jsx(L, {}), onClick: () => s(), sx: {
69
+ marginBottom: 0.5,
70
+ width: 200,
71
+ backgroundColor: "secondary.main"
72
+ }, children: "Back" }), e ? t.jsxs(l, { container: !0, direction: "row", justifyContent: "flex-start", spacing: 2, children: [t.jsx(l, { item: !0, xs: 12, md: 12, lg: 12, children: t.jsx("h1", { children: "Message Details" }) }), t.jsx(n, { label: "Sent At", value: M(e.startTime) }), t.jsx(n, { label: "Duration, ms", value: e.durationMs }), t.jsx(n, { label: "App Server", value: e.appServer }), t.jsx(n, { label: "App Version", value: e.appVersion }), t.jsx(n, { label: "Type", value: e.messageType }), t.jsx(n, { label: "Protocol", value: e.protocol }), t.jsx(n, { label: "Requesting system", value: e.requestingSystem }), t.jsx(n, { label: "Responding system", value: e.respondingSystem }), t.jsxs(l, { item: !0, container: !0, xs: 12, spacing: 2, children: [t.jsx(n, { label: "Request headers", value: e.requestHeaders, isWide: !0 }), t.jsx(n, { label: "Response headers", value: e.responseHeaders, isWide: !0 })] }), t.jsx(n, { label: "Address", value: e.address, isFull: !0 }), t.jsx(n, { label: "Status code", value: e.statusCode }), t.jsx(n, { label: "Status message", value: e.statusMessage }), t.jsx(n, { label: "Message chain ID", value: e.messageChainId }), t.jsx(n, { label: "Request Size (B)", value: e.requestSize }), t.jsx(n, { label: "Response Size (B)", value: e.responseSize }), t.jsx(l, { item: !0, container: !0, xs: 12, spacing: 2, children: t.jsx(n, { label: "Metadata", value: Object.entries(e.metadata).map(([a, o]) => `${a} = ${o}`).join(`
73
+ `), isFull: !0 }) }), t.jsxs(l, { container: !0, item: !0, direction: "row", xs: 12, spacing: 2, children: [t.jsx(l, { item: !0, xs: 12, md: 3, children: t.jsx(m, { disabled: e.requestSize === 0, variant: "contained", onClick: () => r(e.id, "request"), sx: { margin: 1, width: 200 }, children: "Download Request" }) }), t.jsx(l, { item: !0, xs: 12, md: 3, children: t.jsx(m, { disabled: e.responseSize === 0, variant: "contained", onClick: () => r(e.id, "response"), sx: { margin: 1, width: 200 }, children: "Download Response" }) })] })] }) : t.jsx("p", { children: "No message data found" })] }), O = [
74
+ "v",
75
+ // App version
76
+ "srv",
77
+ // App server
78
+ "m",
79
+ // Message type
80
+ "p",
81
+ // Protocol
82
+ "s",
83
+ // StartTime
84
+ "d",
85
+ // Duration Ms
86
+ "c",
87
+ // Status code
88
+ "mci",
89
+ // Message chain ID
90
+ "rqsn",
91
+ // Requesting system name
92
+ "rpsn",
93
+ // Responding system name
94
+ "rqs",
95
+ // Request size
96
+ "rps",
97
+ // Response size
98
+ "md",
99
+ // Metadata
100
+ "page",
101
+ "size"
102
+ ], G = (e) => async ({ request: s }) => {
103
+ try {
104
+ const r = new URL(s.url), a = S(
105
+ r.searchParams,
106
+ [...O]
107
+ ), o = await b(a, e);
108
+ if (o.status !== 200)
109
+ throw new Error(`Failed to fetch logs: ${o.data}`);
110
+ return o.data;
111
+ } catch (r) {
112
+ throw console.error(r), r;
113
+ }
114
+ }, ce = G(), Q = (e) => async ({ params: s }) => {
115
+ if (!s.id)
116
+ throw new Error("No message id provided");
117
+ try {
118
+ const { id: r } = s, a = await E(r, e);
119
+ if (a.status !== 200)
120
+ throw new Error(`Failed to fetch message: ${a.data}`);
121
+ return q(a.data);
122
+ } catch (r) {
123
+ throw console.error(r), r;
124
+ }
125
+ }, ue = Q(), x = ({
126
+ size: e,
127
+ id: s,
128
+ type: r
129
+ }) => e && /* @__PURE__ */ t.jsx(
130
+ W,
131
+ {
132
+ to: `${y().defaults.baseURL}/log/${s}/${r}?pretty=true`,
133
+ onClick: (a) => a.stopPropagation(),
134
+ children: e
135
+ }
136
+ ), _ = [
137
+ {
138
+ key: "startTime",
139
+ title: "Start time",
140
+ CellComponent: ({ value: e }) => P(e),
141
+ minWidth: 250,
142
+ searchKey: "s",
143
+ filterHelperText: "yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss",
144
+ filterValidator: $,
145
+ FilterComponent: i
146
+ },
147
+ {
148
+ key: "durationMs",
149
+ title: "Duration, ms",
150
+ minWidth: 100,
151
+ searchKey: "d",
152
+ filterHelperText: "number - ?number",
153
+ filterValidator: p,
154
+ FilterComponent: i
155
+ },
156
+ {
157
+ key: "messageType",
158
+ title: "Type",
159
+ minWidth: 100,
160
+ searchKey: "m",
161
+ filterHelperText: "e.g. ControlValue/list",
162
+ FilterComponent: i
163
+ },
164
+ {
165
+ key: "protocol",
166
+ title: "Protocol",
167
+ minWidth: 100,
168
+ searchKey: "p",
169
+ filterHelperText: "e.g. http",
170
+ FilterComponent: i
171
+ },
172
+ {
173
+ key: "requestingSystem",
174
+ title: "Requesting System",
175
+ minWidth: 100,
176
+ searchKey: "rqsn",
177
+ FilterComponent: i
178
+ },
179
+ {
180
+ key: "respondingSystem",
181
+ title: "Responding System",
182
+ minWidth: 100,
183
+ searchKey: "rpsn",
184
+ FilterComponent: i
185
+ },
186
+ {
187
+ key: "statusCode",
188
+ title: "Status",
189
+ minWidth: 100,
190
+ searchKey: "c",
191
+ filterHelperText: "e.g. 400",
192
+ FilterComponent: i
193
+ },
194
+ {
195
+ key: "messageChainId",
196
+ title: "Message Chain ID",
197
+ CellComponent: I,
198
+ minWidth: 150,
199
+ searchKey: "mci",
200
+ filterHelperText: "e.g. 123",
201
+ filterValidator: z,
202
+ FilterComponent: i
203
+ },
204
+ {
205
+ key: "requestSize",
206
+ title: "Request size",
207
+ CellComponent: ({ value: e, row: s }) => /* @__PURE__ */ t.jsx(x, { size: e, id: s.id, type: "request" }),
208
+ minWidth: 150,
209
+ searchKey: "rqs",
210
+ filterHelperText: "number - ?number",
211
+ filterValidator: p,
212
+ FilterComponent: i
213
+ },
214
+ {
215
+ key: "responseSize",
216
+ title: "Response size",
217
+ CellComponent: ({ value: e, row: s }) => /* @__PURE__ */ t.jsx(x, { size: e, id: s.id, type: "response" }),
218
+ minWidth: 150,
219
+ searchKey: "rps",
220
+ filterHelperText: "number - ?number",
221
+ filterValidator: p,
222
+ FilterComponent: i
223
+ },
224
+ {
225
+ key: "metadata",
226
+ title: "Metadata",
227
+ CellComponent: H,
228
+ minWidth: 150,
229
+ searchKey: "md",
230
+ filterHelperText: "A=a, B=b",
231
+ FilterComponent: i
232
+ }
233
+ ], J = ({ id: e }) => e, X = (e) => ({
234
+ appVersion: e.get("v") ?? "",
235
+ messageType: e.get("m") ?? "",
236
+ protocol: e.get("p") ?? "",
237
+ startTime: e.get("s") ?? "",
238
+ durationMs: e.get("d") ?? "",
239
+ statusCode: e.get("c") ?? "",
240
+ messageChainId: e.get("mci") ?? "",
241
+ requestSize: e.get("rqs") ?? "",
242
+ responseSize: e.get("rps") ?? "",
243
+ metadata: e.get("md") ?? "",
244
+ requestingSystem: e.get("rqsn") ?? "",
245
+ respondingSystem: e.get("rpsn") ?? ""
246
+ }), me = () => {
247
+ const e = j(), [s, r] = B(), a = C();
248
+ return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
249
+ /* @__PURE__ */ t.jsxs(K, { method: "get", children: [
250
+ /* @__PURE__ */ t.jsx(T, { sx: { height: "calc(100vh - 130px)" }, children: /* @__PURE__ */ t.jsx(
251
+ V,
252
+ {
253
+ columns: _,
254
+ rows: a.content,
255
+ getRowId: J,
256
+ onRowClick: (o) => e(`./${o.id}`, { relative: "path" }),
257
+ defaultFilter: X(s)
258
+ }
259
+ ) }),
260
+ /* @__PURE__ */ t.jsx("input", { type: "submit", hidden: !0 })
261
+ ] }),
262
+ /* @__PURE__ */ t.jsx(
263
+ D,
264
+ {
265
+ page: a.number,
266
+ rowsPerPage: a.size,
267
+ total: a.totalElements,
268
+ onPageChange: (o) => {
269
+ const d = new URLSearchParams(s);
270
+ d.set("page", String(o)), r(d);
271
+ }
272
+ }
273
+ )
274
+ ] });
275
+ }, ge = () => {
276
+ const e = j(), s = C();
277
+ return /* @__PURE__ */ t.jsx(
278
+ N,
279
+ {
280
+ message: s,
281
+ backAction: () => e("..", { relative: "path" }),
282
+ downloadDataAction: async function(r, a) {
283
+ try {
284
+ const o = await y().get(`/log/${r}/${a}?pretty=true`, {
285
+ responseType: "blob"
286
+ }), d = new Blob([o.data], {
287
+ type: o.headers["content-type"] || "application/octet-stream"
288
+ }), u = window.URL.createObjectURL(d), c = document.createElement("a");
289
+ c.href = u, c.download = `log-${r}-${a}.txt`, document.body.appendChild(c), c.click(), document.body.removeChild(c), window.URL.revokeObjectURL(u);
290
+ } catch (o) {
291
+ console.error("Failed to download log data:", o);
292
+ }
293
+ }
294
+ }
295
+ );
296
+ };
297
+ export {
298
+ me as M,
299
+ ge as S,
300
+ Q as a,
301
+ G as g,
302
+ ce as l,
303
+ ue as s
304
+ };
305
+ //# sourceMappingURL=SingleLogMessageRoute-BT4ghiqv.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"SingleLogMessageRoute-BT4ghiqv.js","sources":["../../node_modules/@evolver-fi/evolver-basics/dist/esm/message-log/utils/index.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/message-log/actions/index.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/message-log/slices/logSlice.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/message-log/components/LogMessageComponent.js","../src/routes/message-log/loader.ts","../src/routes/message-log/messageLogColumns.tsx","../src/routes/message-log/MessageLogRoute.tsx","../src/routes/message-log/SingleLogMessageRoute.tsx"],"sourcesContent":["import { formatDatetimeRangeFilter, formatNumberRangeFilter, } from '../../common/components/listUtils';\nimport { getBackendClient } from '../../common/evolverClient';\nimport { createFilterQuery } from '../../common/utils/filterUtils';\nexport const formatterByKey = {\n s: formatDatetimeRangeFilter,\n d: formatNumberRangeFilter,\n rqs: formatNumberRangeFilter,\n rps: formatNumberRangeFilter,\n};\nexport const fetchLogs = (logFilters, backendClient) => {\n const client = backendClient || getBackendClient();\n const searchParams = new URLSearchParams();\n createFilterQuery(logFilters, formatterByKey).forEach((value, key) => searchParams.append(key, value));\n const searchParamsString = searchParams.toString() ? `?${searchParams.toString()}` : '';\n return client.get(`log${searchParamsString}`);\n};\nexport const fetchLogById = (id, backendClient) => {\n const client = backendClient || getBackendClient();\n return client.get(`log/${id}`);\n};\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { fetchLogs } from '../utils';\nexport const fetchLogsAction = createAsyncThunk('logs/fetchLogs', async (logFilters, thunkApi) => {\n const response = await fetchLogs(logFilters);\n if (response.status !== 200) {\n return thunkApi.rejectWithValue({\n message: 'Failed to fetch logs.',\n });\n }\n return response.data;\n});\n","import { createSlice } from '@reduxjs/toolkit';\nimport { fetchLogsAction } from '../actions';\nconst initialState = {\n logMessages: [],\n logMessageTotalCount: 0,\n status: 'loading',\n filters: {\n page: '0',\n size: '100',\n },\n};\nexport const logSlice = createSlice({\n name: 'log',\n initialState,\n reducers: {\n updateLogs(state, { payload }) {\n state.logMessages = payload;\n },\n updateFilters(state, { payload }) {\n state.filters = { ...state.filters, ...payload };\n },\n clearFilters(state, { payload }) {\n const filters = { ...state.filters };\n payload.forEach((element) => {\n delete filters[element];\n });\n state.filters = filters;\n },\n },\n extraReducers: (builder) => {\n builder.addCase(fetchLogsAction.pending, (state) => {\n state.status = 'loading';\n state.error = 'undefined';\n });\n builder.addCase(fetchLogsAction.fulfilled, (state, { payload }) => {\n state.logMessages = payload.content;\n state.logMessageTotalCount = payload.totalElements;\n state.status = 'succeeded';\n });\n builder.addCase(fetchLogsAction.rejected, (state, { payload }) => {\n if (payload) {\n state.error = payload.message;\n }\n state.status = 'failed';\n });\n },\n});\nexport const { updateLogs, updateFilters, clearFilters } = logSlice.actions;\nexport const selectLogs = (state) => state.logs.logMessages;\nexport const selectLogMessageTotalCount = (state) => state.logs.logMessageTotalCount;\nexport const selectFilters = (state) => state.logs.filters;\nexport const selectStatus = (state) => state.logs.status;\nexport default logSlice.reducer;\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport ArrowBackIcon from '@mui/icons-material/ArrowBack';\nimport { Button, Grid, TextField } from '@mui/material';\nimport { formatDateTime } from '../../common/components/listUtils';\nconst LogMessageField = ({ label, value, isWide, isFull, }) => (_jsx(Grid, { item: true, xs: 12, sm: isFull ? 12 : 6, md: isFull ? 12 : isWide ? 6 : 3, children: _jsx(TextField, { label: label, value: value, InputProps: {\n readOnly: true,\n }, InputLabelProps: {\n style: { fontSize: 20 },\n }, multiline: true, fullWidth: true }) }));\nconst LogMessageComponent = ({ message, backAction, downloadDataAction, }) => {\n return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: \"contained\", startIcon: _jsx(ArrowBackIcon, {}), onClick: () => backAction(), sx: {\n marginBottom: 0.5,\n width: 200,\n backgroundColor: 'secondary.main',\n }, children: \"Back\" }), message ? (_jsxs(Grid, { container: true, direction: \"row\", justifyContent: \"flex-start\", spacing: 2, children: [_jsx(Grid, { item: true, xs: 12, md: 12, lg: 12, children: _jsx(\"h1\", { children: \"Message Details\" }) }), _jsx(LogMessageField, { label: \"Sent At\", value: formatDateTime(message.startTime) }), _jsx(LogMessageField, { label: \"Duration, ms\", value: message.durationMs }), _jsx(LogMessageField, { label: \"App Server\", value: message.appServer }), _jsx(LogMessageField, { label: \"App Version\", value: message.appVersion }), _jsx(LogMessageField, { label: \"Type\", value: message.messageType }), _jsx(LogMessageField, { label: \"Protocol\", value: message.protocol }), _jsx(LogMessageField, { label: \"Requesting system\", value: message.requestingSystem }), _jsx(LogMessageField, { label: \"Responding system\", value: message.respondingSystem }), _jsxs(Grid, { item: true, container: true, xs: 12, spacing: 2, children: [_jsx(LogMessageField, { label: \"Request headers\", value: message.requestHeaders, isWide: true }), _jsx(LogMessageField, { label: \"Response headers\", value: message.responseHeaders, isWide: true })] }), _jsx(LogMessageField, { label: \"Address\", value: message.address, isFull: true }), _jsx(LogMessageField, { label: \"Status code\", value: message.statusCode }), _jsx(LogMessageField, { label: \"Status message\", value: message.statusMessage }), _jsx(LogMessageField, { label: \"Message chain ID\", value: message.messageChainId }), _jsx(LogMessageField, { label: \"Request Size (B)\", value: message.requestSize }), _jsx(LogMessageField, { label: \"Response Size (B)\", value: message.responseSize }), _jsx(Grid, { item: true, container: true, xs: 12, spacing: 2, children: _jsx(LogMessageField, { label: \"Metadata\", value: Object.entries(message.metadata)\n .map(([key, value]) => `${key} = ${value}`)\n .join('\\n'), isFull: true }) }), _jsxs(Grid, { container: true, item: true, direction: \"row\", xs: 12, spacing: 2, children: [_jsx(Grid, { item: true, xs: 12, md: 3, children: _jsx(Button, { disabled: message.requestSize === 0, variant: \"contained\", onClick: () => downloadDataAction(message.id, 'request'), sx: { margin: 1, width: 200 }, children: \"Download Request\" }) }), _jsx(Grid, { item: true, xs: 12, md: 3, children: _jsx(Button, { disabled: message.responseSize === 0, variant: \"contained\", onClick: () => downloadDataAction(message.id, 'response'), sx: { margin: 1, width: 200 }, children: \"Download Response\" }) })] })] })) : (_jsx(\"p\", { children: \"No message data found\" }))] }));\n};\nexport default LogMessageComponent;\n","import { filterFromUrlSearchParams } from \"@evolver-fi/evolver-basics\";\nimport {\n fetchLogById,\n fetchLogs,\n LogMessage,\n LogMessageResponse,\n} from \"@evolver-fi/evolver-basics/message-log\";\nimport { AxiosInstance } from \"axios\";\nimport { LoaderFunction, LoaderFunctionArgs } from \"react-router\";\nimport { mapMetadata } from \"../../components/metadata/utils\";\n\nconst filterKeys = [\n \"v\", // App version\n \"srv\", // App server\n \"m\", // Message type\n \"p\", // Protocol\n \"s\", // StartTime\n \"d\", // Duration Ms\n \"c\", // Status code\n \"mci\", // Message chain ID\n \"rqsn\", // Requesting system name\n \"rpsn\", // Responding system name\n \"rqs\", // Request size\n \"rps\", // Response size\n \"md\", // Metadata\n \"page\",\n \"size\",\n] as const;\n\ntype BackendFilter = {\n [k in (typeof filterKeys)[number]]?: string;\n};\n\nexport const getMessageLogLoader =\n (backendClient?: AxiosInstance) =>\n async ({ request }: LoaderFunctionArgs): Promise<LogMessageResponse> => {\n try {\n const requestUrl = new URL(request.url);\n\n const filter = filterFromUrlSearchParams<BackendFilter>(\n requestUrl.searchParams,\n [...filterKeys],\n );\n\n const logs = await fetchLogs(filter, backendClient);\n\n if (logs.status !== 200) {\n throw new Error(`Failed to fetch logs: ${logs.data}`);\n }\n\n return logs.data;\n } catch (error) {\n console.error(error);\n throw error;\n }\n };\n\nexport const loader: LoaderFunction = getMessageLogLoader();\n\nexport const getSingleLogMessageLoader =\n (backendClient?: AxiosInstance) =>\n async ({ params }: LoaderFunctionArgs): Promise<LogMessage> => {\n if (!params.id) {\n throw new Error(\"No message id provided\"); // shouldn't route here without an id\n }\n try {\n const { id } = params;\n const response = await fetchLogById(id, backendClient);\n\n if (response.status !== 200) {\n throw new Error(`Failed to fetch message: ${response.data}`);\n }\n\n return mapMetadata(response.data) as LogMessage;\n } catch (error) {\n console.error(error);\n throw error;\n }\n };\n\nexport const singleLogMessageLoader: LoaderFunction =\n getSingleLogMessageLoader();\n","import { getBackendClient } from \"@evolver-fi/evolver-basics\";\nimport { Link } from \"react-router\";\nimport { formatDateTime } from \"../../common/format\";\nimport {\n datetimeRangeValidator,\n numberRangeValidator,\n numberValidator,\n} from \"../../common/validation\";\nimport { FilterLink } from \"../../components/filter/FilterLink\";\nimport { TextFilter } from \"../../components/filter/TextFilter\";\nimport { TableMetadataDisplay } from \"../../components/metadata/TableMetadataDisplay\";\nimport { ColumnDefinitions } from \"../../components/table/types\";\nimport { LogFilter, LogMessage } from \"./types\";\n\nconst LogBodyLink = ({\n size,\n id,\n type,\n}: {\n size: number;\n id: number;\n type: string;\n}) =>\n size ? (\n <Link\n to={`${getBackendClient().defaults.baseURL}/log/${id}/${type}?pretty=true`}\n onClick={(e) => e.stopPropagation()}\n >\n {size}\n </Link>\n ) : (\n size\n );\n\nexport const messageLogColumns: ColumnDefinitions<LogMessage, LogFilter> = [\n {\n key: \"startTime\",\n title: \"Start time\",\n CellComponent: ({ value }) => formatDateTime(value),\n minWidth: 250,\n searchKey: \"s\",\n filterHelperText: \"yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss\",\n filterValidator: datetimeRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"durationMs\",\n title: \"Duration, ms\",\n minWidth: 100,\n searchKey: \"d\",\n filterHelperText: \"number - ?number\",\n filterValidator: numberRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"messageType\",\n title: \"Type\",\n minWidth: 100,\n searchKey: \"m\",\n filterHelperText: \"e.g. ControlValue/list\",\n FilterComponent: TextFilter,\n },\n {\n key: \"protocol\",\n title: \"Protocol\",\n minWidth: 100,\n searchKey: \"p\",\n filterHelperText: \"e.g. http\",\n FilterComponent: TextFilter,\n },\n {\n key: \"requestingSystem\",\n title: \"Requesting System\",\n minWidth: 100,\n searchKey: \"rqsn\",\n FilterComponent: TextFilter,\n },\n {\n key: \"respondingSystem\",\n title: \"Responding System\",\n minWidth: 100,\n searchKey: \"rpsn\",\n FilterComponent: TextFilter,\n },\n {\n key: \"statusCode\",\n title: \"Status\",\n minWidth: 100,\n searchKey: \"c\",\n filterHelperText: \"e.g. 400\",\n FilterComponent: TextFilter,\n },\n {\n key: \"messageChainId\",\n title: \"Message Chain ID\",\n CellComponent: FilterLink,\n minWidth: 150,\n searchKey: \"mci\",\n filterHelperText: \"e.g. 123\",\n filterValidator: numberValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"requestSize\",\n title: \"Request size\",\n CellComponent: ({ value, row }) => (\n <LogBodyLink size={value} id={row.id} type=\"request\" />\n ),\n minWidth: 150,\n searchKey: \"rqs\",\n filterHelperText: \"number - ?number\",\n filterValidator: numberRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"responseSize\",\n title: \"Response size\",\n CellComponent: ({ value, row }) => (\n <LogBodyLink size={value} id={row.id} type=\"response\" />\n ),\n minWidth: 150,\n searchKey: \"rps\",\n filterHelperText: \"number - ?number\",\n filterValidator: numberRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"metadata\",\n title: \"Metadata\",\n CellComponent: TableMetadataDisplay,\n minWidth: 150,\n searchKey: \"md\",\n filterHelperText: \"A=a, B=b\",\n FilterComponent: TextFilter,\n },\n];\n","import {\n Form,\n useLoaderData,\n useNavigate,\n useSearchParams,\n} from \"react-router\";\n\nimport { TableContainer } from \"@mui/material\";\nimport { Pagination } from \"../../components/table/Pagination\";\nimport { Table } from \"../../components/table/Table\";\nimport { messageLogColumns } from \"./messageLogColumns\";\nimport { LogFilter, LogMessageResponse } from \"./types\";\n\nconst getRowId = ({ id }: { id: number }) => id;\n\nconst searchParamsToFilter = (params: URLSearchParams): LogFilter => ({\n appVersion: params.get(\"v\") ?? \"\",\n messageType: params.get(\"m\") ?? \"\",\n protocol: params.get(\"p\") ?? \"\",\n startTime: params.get(\"s\") ?? \"\",\n durationMs: params.get(\"d\") ?? \"\",\n statusCode: params.get(\"c\") ?? \"\",\n messageChainId: params.get(\"mci\") ?? \"\",\n requestSize: params.get(\"rqs\") ?? \"\",\n responseSize: params.get(\"rps\") ?? \"\",\n metadata: params.get(\"md\") ?? \"\",\n requestingSystem: params.get(\"rqsn\") ?? \"\",\n respondingSystem: params.get(\"rpsn\") ?? \"\",\n});\n\nconst MessageLogRoute = () => {\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n const logMessageResponse = useLoaderData() as LogMessageResponse;\n\n return (\n <>\n <Form method=\"get\">\n <TableContainer sx={{ height: \"calc(100vh - 130px)\" }}>\n <Table\n columns={messageLogColumns}\n rows={logMessageResponse.content}\n getRowId={getRowId}\n onRowClick={(row) => navigate(`./${row.id}`, { relative: \"path\" })}\n defaultFilter={searchParamsToFilter(searchParams)}\n />\n </TableContainer>\n <input type=\"submit\" hidden />\n </Form>\n <Pagination\n page={logMessageResponse.number}\n rowsPerPage={logMessageResponse.size}\n total={logMessageResponse.totalElements}\n onPageChange={(page) => {\n const newParams = new URLSearchParams(searchParams);\n newParams.set(\"page\", String(page));\n setSearchParams(newParams);\n }}\n />\n </>\n );\n};\n\nexport default MessageLogRoute;\n","import { getBackendClient } from \"@evolver-fi/evolver-basics\";\nimport {\n LogMessage,\n LogMessageComponent,\n} from \"@evolver-fi/evolver-basics/message-log\";\nimport { useLoaderData, useNavigate } from \"react-router\";\n\nconst SingleMessageRoute = () => {\n const navigate = useNavigate();\n const message = useLoaderData() as LogMessage;\n\n return (\n <LogMessageComponent\n message={message}\n backAction={() => navigate(\"..\", { relative: \"path\" })}\n downloadDataAction={async function (id: number, type: string): Promise<void> {\n try {\n const response = await getBackendClient().get(`/log/${id}/${type}?pretty=true`, {\n responseType: 'blob'\n });\n\n const blob = new Blob([response.data], {\n type: response.headers['content-type'] || 'application/octet-stream'\n });\n const url = window.URL.createObjectURL(blob);\n\n const link = document.createElement('a');\n link.href = url;\n link.download = `log-${id}-${type}.txt`;\n document.body.appendChild(link);\n link.click();\n\n document.body.removeChild(link);\n window.URL.revokeObjectURL(url);\n } catch (error) {\n console.error('Failed to download log data:', error);\n }\n }}\n />\n );\n};\n\nexport default SingleMessageRoute;\n"],"names":["formatterByKey","formatDatetimeRangeFilter","formatNumberRangeFilter","fetchLogs","logFilters","backendClient","client","getBackendClient","searchParams","createFilterQuery","value","key","searchParamsString","fetchLogById","id","fetchLogsAction","createAsyncThunk","thunkApi","response","initialState","createSlice","state","payload","filters","element","builder","LogMessageField","label","isWide","isFull","_jsx","Grid","TextField","LogMessageComponent","message","backAction","downloadDataAction","_jsxs","_Fragment","Button","ArrowBackIcon","formatDateTime","filterKeys","getMessageLogLoader","request","requestUrl","filter","filterFromUrlSearchParams","logs","error","loader","getSingleLogMessageLoader","params","mapMetadata","singleLogMessageLoader","LogBodyLink","size","type","jsx","Link","e","messageLogColumns","datetimeRangeValidator","TextFilter","numberRangeValidator","FilterLink","numberValidator","row","TableMetadataDisplay","getRowId","searchParamsToFilter","MessageLogRoute","navigate","useNavigate","setSearchParams","useSearchParams","logMessageResponse","useLoaderData","jsxs","Fragment","Form","TableContainer","Table","Pagination","page","newParams","SingleMessageRoute","blob","url","link"],"mappings":"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","x_google_ignoreList":[0,1,2,3]}
@@ -0,0 +1,293 @@
1
+ import { filterFromUrlSearchParams as k } from "@evolver-fi/evolver-basics";
2
+ import { j as t } from "./jsx-runtime-B6kdoens.js";
3
+ import T, { useEffect as B } from "react";
4
+ import { g as A, c as V, a as G } from "./evolverClient-B_TZXnpV.js";
5
+ import { Grid as f, TextField as E, InputAdornment as C, IconButton as I, Button as W, FormControl as R, Select as $, MenuItem as K, Checkbox as U, FormHelperText as _, TableContainer as z } from "@mui/material";
6
+ import { c as O, f as L, a as Y, d as q, b as x, i as Q, m as J, e as S, g as F, h as b, n as X, T as Z } from "./TableMetadataDisplay-C7RP2ZrM.js";
7
+ import { useNavigate as H, useSearchParams as ee, useLoaderData as P, Form as te } from "react-router";
8
+ import { T as ae, P as re } from "./Table-DgRqEB1x.js";
9
+ import { c as ie } from "./EnumSelectFilter-DiJhYa2m.js";
10
+ import { d as M, T as g } from "./TextFilter-BKUfkFQe.js";
11
+ import { d as N, n as D, a as le } from "./validation-DStiilqx.js";
12
+ import "axios";
13
+ const se = ({ filterValue: e, validationError: a, setFilterValue: r }) => {
14
+ const [i, l] = (e == null ? void 0 : e.split("-")) || "", [o, p] = T.useState(i), [c, y] = T.useState(l);
15
+ return B(() => {
16
+ const d = `${o || ""}${c || o ? "-" : ""}${c || ""}`;
17
+ r(d);
18
+ }, [o, c]), t.jsxs(f, { container: !0, direction: "row", spacing: 1, children: [t.jsx(f, { item: !0, xs: 12, xl: 6, children: t.jsx(E, { size: "small", error: !!a, helperText: a || "Start", value: o || "", onChange: (d) => {
19
+ p(`${d.target.value}:00`);
20
+ }, fullWidth: !0, InputProps: {
21
+ endAdornment: o && o.length > 0 ? t.jsx(C, { position: "end", children: t.jsx(I, { onClick: (d) => {
22
+ d.preventDefault(), d.stopPropagation(), p(void 0);
23
+ }, size: "small", children: t.jsx(M, {}) }) }) : void 0
24
+ } }) }), t.jsx(f, { item: !0, xs: 12, xl: 6, children: t.jsx(E, { size: "small", value: c || "", helperText: "End", onChange: (d) => {
25
+ y(`${d.target.value}:00`);
26
+ }, fullWidth: !0, InputProps: {
27
+ endAdornment: c && c.length > 0 ? t.jsx(C, { position: "end", children: t.jsx(I, { onClick: (d) => {
28
+ d.preventDefault(), d.stopPropagation(), y(void 0);
29
+ }, size: "small", children: t.jsx(M, {}) }) }) : void 0
30
+ } }) })] });
31
+ }, ne = {
32
+ ct: L,
33
+ lut: L,
34
+ fc: Y
35
+ }, w = (e, a) => {
36
+ const r = a || A(), i = new URLSearchParams();
37
+ O(e, ne).forEach((o, p) => i.append(p, o));
38
+ const l = i.toString() ? `?${i.toString()}` : "";
39
+ return r.get(`message${l}`);
40
+ }, oe = (e, a) => (a || A()).get(`message/${e}`), j = V("messages/fetchMessages", async (e, a) => {
41
+ const r = await w(e);
42
+ return r.status !== 200 ? a.rejectWithValue({
43
+ message: "Failed to fetch messages."
44
+ }) : r.data;
45
+ }), de = {
46
+ messages: [],
47
+ messageTotalCount: 0,
48
+ status: "loading",
49
+ filters: {
50
+ page: "0",
51
+ size: "100"
52
+ }
53
+ };
54
+ G({
55
+ name: "message",
56
+ initialState: de,
57
+ reducers: {
58
+ updateMessages(e, { payload: a }) {
59
+ e.messages = a;
60
+ },
61
+ updateFilters(e, { payload: a }) {
62
+ e.filters = { ...e.filters, ...a };
63
+ }
64
+ },
65
+ extraReducers: (e) => {
66
+ e.addCase(j.pending, (a) => {
67
+ a.status = "loading", a.error = "undefined";
68
+ }), e.addCase(j.fulfilled, (a, { payload: r }) => {
69
+ a.messages = r.content, a.messageTotalCount = r.totalElements, a.status = "succeeded";
70
+ }), e.addCase(j.rejected, (a, { payload: r }) => {
71
+ r && (a.error = r.message), a.status = "failed";
72
+ });
73
+ }
74
+ });
75
+ const m = ({ label: e, value: a, isFull: r }) => t.jsx(f, { item: !0, xs: 12, sm: r ? 12 : 6, md: r ? 12 : 3, children: t.jsx(E, { label: e, value: a, InputProps: {
76
+ readOnly: !0
77
+ }, InputLabelProps: {
78
+ style: { fontSize: 20 }
79
+ }, multiline: !0, fullWidth: !0 }) }), me = ({ message: e, backAction: a }) => t.jsxs(t.Fragment, { children: [t.jsx(W, { variant: "contained", startIcon: t.jsx(q, {}), onClick: () => a(), sx: {
80
+ backgroundColor: "secondary.main",
81
+ marginBottom: 0.5,
82
+ width: 200
83
+ }, children: "Back" }), e ? t.jsxs(f, { container: !0, direction: "row", justifyContent: "center", spacing: 2, children: [t.jsx(f, { item: !0, xs: 12, children: t.jsx("h1", { children: "Message Details" }) }), t.jsx(m, { label: "State", value: e.state }), t.jsx(m, { label: "MessageChain ID", value: e.messageChainId }), t.jsx(m, { label: "Creation time", value: x(e.creationTime) }), t.jsx(m, { label: "Last updated time", value: x(e.lastUpdatedTime) }), t.jsx(m, { label: "Fail count", value: e.failCount }), t.jsx(m, { label: "MessageGroup Id", value: e.messageGroupId }), t.jsx(m, { label: "Priority", value: e.priority }), t.jsx(m, { label: "Message target config", value: e.messageTargetConfig.messageType }), t.jsx(m, { label: "Target system", value: e.targetSystem }), t.jsx(m, { label: "Message type", value: e.messageType }), t.jsx(m, { label: "Target Uri", value: e.targetUri, isFull: !0 }), t.jsx(m, { label: "Metadata", value: Object.entries(e.metadata).map(([r, i]) => `${r} = ${i}`).join(`
84
+ `), isFull: !0 })] }) : t.jsx("p", { children: "No message data found" })] });
85
+ var u;
86
+ (function(e) {
87
+ e.DELAYED = "DELAYED", e.PENDING = "PENDING", e.SENDING = "SENDING", e.SENT = "SENT", e.FAILED = "FAILED", e.DISABLED = "DISABLED";
88
+ })(u || (u = {}));
89
+ var v;
90
+ (function(e) {
91
+ e.ENABLED = "ENABLED", e.LOG_ONLY = "LOG_ONLY", e.PAUSED = "PAUSED", e.DISABLED = "DISABLED";
92
+ })(v || (v = {}));
93
+ const ce = "null", ue = "!null";
94
+ function ge(e) {
95
+ return typeof e == "string";
96
+ }
97
+ const pe = ({ filterValue: e, validationError: a, setFilterValue: r, enumValues: i }) => {
98
+ var d;
99
+ const l = [
100
+ { label: "None", value: ce },
101
+ { label: "Any", value: ue },
102
+ ...i
103
+ ], o = (n) => {
104
+ const s = l.find((h) => h.value === n || h.label === n);
105
+ return s == null ? void 0 : s.label;
106
+ }, p = (n) => {
107
+ const s = l.find((h) => h.label === n);
108
+ return (s == null ? void 0 : s.value) ?? (s == null ? void 0 : s.label);
109
+ }, c = (n) => {
110
+ const { target: { value: s } } = n;
111
+ if (ge(s)) {
112
+ r(s);
113
+ return;
114
+ }
115
+ const h = s.map(p).filter(Boolean);
116
+ r(h.join(",") || "");
117
+ }, y = ((d = e == null ? void 0 : e.split(",")) == null ? void 0 : d.map((n) => o(n) ?? "")) ?? [];
118
+ return t.jsx(t.Fragment, { children: t.jsxs(R, { sx: { width: 300 }, children: [t.jsx($, { size: "small", labelId: "demo-multiple-checkbox-label", id: "demo-multiple-checkbox", multiple: !0, value: y, onChange: c, renderValue: (n) => n.join(", "), error: !!a, children: l.map((n) => t.jsxs(K, { value: n.label, children: [t.jsx(U, { checked: y.find((s) => s === n.label) !== void 0 }), n.label] }, n.label)) }), a && t.jsx(_, { children: a })] }) });
119
+ }, he = (e) => (a) => t.jsx(pe, { enumValues: e, ...a });
120
+ N, N, he([
121
+ { label: u.DELAYED },
122
+ { label: u.PENDING },
123
+ { label: u.SENDING },
124
+ { label: u.SENT },
125
+ { label: u.FAILED },
126
+ { label: u.DISABLED }
127
+ ]), D, D, le, D;
128
+ const fe = (e) => async ({ params: a }) => {
129
+ try {
130
+ if (!a.id)
131
+ throw new Error("No message id provided");
132
+ const r = await oe(a.id, e);
133
+ if (r.status !== 200)
134
+ throw new Error(`Failed to fetch message: ${r.data}`);
135
+ return r.data;
136
+ } catch (r) {
137
+ throw console.error(r), r;
138
+ }
139
+ }, He = fe(), ye = (e) => async ({ request: a }) => {
140
+ try {
141
+ const r = new URL(a.url), i = k(
142
+ r.searchParams,
143
+ ["s", "mci", "ct", "lut", "fc", "mgi", "p", "md", "page", "size"]
144
+ // TODO: should sort be included?
145
+ ), l = await w(i, e);
146
+ if (l.status !== 200)
147
+ throw new Error(`Failed to fetch messages: ${l.data}`);
148
+ return J(l.data);
149
+ } catch (r) {
150
+ throw console.error(r), r;
151
+ }
152
+ }, Pe = ye(), xe = [
153
+ {
154
+ key: "creationTime",
155
+ title: "Creation time",
156
+ CellComponent: ({ value: e }) => S(e),
157
+ minWidth: 250,
158
+ searchKey: "ct",
159
+ filterHelperText: "yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss",
160
+ filterValidator: F,
161
+ FilterComponent: g
162
+ },
163
+ {
164
+ key: "lastUpdatedTime",
165
+ title: "Last updated time",
166
+ CellComponent: ({ value: e }) => S(e),
167
+ minWidth: 250,
168
+ searchKey: "lut",
169
+ filterHelperText: "yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss",
170
+ filterValidator: F,
171
+ FilterComponent: g
172
+ },
173
+ {
174
+ key: "state",
175
+ title: "State",
176
+ minWidth: 130,
177
+ searchKey: "s",
178
+ filterHelperText: "e.g. SENT",
179
+ FilterComponent: ie([
180
+ { label: "DELAYED", value: "DELAYED" },
181
+ { label: "PENDING", value: "PENDING" },
182
+ { label: "SENDING", value: "SENDING" },
183
+ { label: "SENT", value: "SENT" },
184
+ { label: "FAILED", value: "FAILED" },
185
+ { label: "DISABLED", value: "DISABLED" }
186
+ ])
187
+ },
188
+ {
189
+ key: "messageChainId",
190
+ title: "Message Chain ID",
191
+ minWidth: 150,
192
+ searchKey: "mci",
193
+ filterHelperText: "e.g. 123",
194
+ filterValidator: b,
195
+ FilterComponent: g
196
+ },
197
+ {
198
+ key: "messageGroupId",
199
+ title: "Message Group ID",
200
+ minWidth: 150,
201
+ searchKey: "mgi",
202
+ filterHelperText: "e.g. 123",
203
+ filterValidator: b,
204
+ FilterComponent: g
205
+ },
206
+ {
207
+ key: "failCount",
208
+ title: "Fail count",
209
+ minWidth: 150,
210
+ searchKey: "fc",
211
+ filterHelperText: "number - ?number",
212
+ filterValidator: X,
213
+ FilterComponent: g
214
+ },
215
+ {
216
+ key: "priority",
217
+ title: "Priority",
218
+ minWidth: 150,
219
+ searchKey: "p",
220
+ filterHelperText: "e.g. 123",
221
+ filterValidator: b,
222
+ FilterComponent: g
223
+ },
224
+ {
225
+ key: "metadata",
226
+ title: "Metadata",
227
+ CellComponent: Z,
228
+ minWidth: 150,
229
+ searchKey: "md",
230
+ filterHelperText: "A=a, B=b",
231
+ FilterComponent: g
232
+ }
233
+ ], be = ({ id: e }) => e, De = (e) => ({
234
+ state: e.get("s") ?? "",
235
+ messageChainId: e.get("mci") ?? "",
236
+ creationTime: e.get("ct") ?? "",
237
+ lastUpdatedTime: e.get("lut") ?? "",
238
+ failCount: e.get("fc") ?? "",
239
+ messageGroupId: e.get("mgi") ?? "",
240
+ priority: e.get("p") ?? "",
241
+ metadata: e.get("md") ?? ""
242
+ }), we = () => {
243
+ const e = H(), [a, r] = ee(), i = P();
244
+ return /* @__PURE__ */ t.jsxs(t.Fragment, { children: [
245
+ /* @__PURE__ */ t.jsxs(te, { method: "get", children: [
246
+ /* @__PURE__ */ t.jsx(z, { sx: { height: "calc(100vh - 130px)" }, children: /* @__PURE__ */ t.jsx(
247
+ ae,
248
+ {
249
+ columns: xe,
250
+ rows: i.content,
251
+ getRowId: be,
252
+ onRowClick: (l) => e(`./${l.id}`, { relative: "path" }),
253
+ defaultFilter: De(a)
254
+ }
255
+ ) }),
256
+ /* @__PURE__ */ t.jsx("input", { type: "submit", hidden: !0 })
257
+ ] }),
258
+ /* @__PURE__ */ t.jsx(
259
+ re,
260
+ {
261
+ page: i.number,
262
+ rowsPerPage: i.size,
263
+ total: i.totalElements,
264
+ onPageChange: (l) => {
265
+ const o = new URLSearchParams(a);
266
+ o.set("page", String(l)), r(o);
267
+ }
268
+ }
269
+ )
270
+ ] });
271
+ }, ke = () => {
272
+ const e = P(), a = H(), r = () => {
273
+ a(-1);
274
+ }, i = (l, o) => {
275
+ };
276
+ return e ? /* @__PURE__ */ t.jsx(
277
+ me,
278
+ {
279
+ message: e,
280
+ backAction: r,
281
+ downloadDataAction: i
282
+ }
283
+ ) : /* @__PURE__ */ t.jsx("div", { children: "Loading..." });
284
+ };
285
+ export {
286
+ we as M,
287
+ ke as S,
288
+ fe as a,
289
+ ye as g,
290
+ Pe as m,
291
+ He as s
292
+ };
293
+ //# sourceMappingURL=SingleMessageRoute-DaaWvgfS.js.map