@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
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleLogMessageRoute-C9CL51r-.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 fetchLogs,\n LogMessageResponse,\n LogFilter,\n fetchLogById,\n LogMessage,\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\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<LogFilter>(\n requestUrl.searchParams,\n [\n \"c\",\n \"p\",\n \"s\",\n \"page\",\n \"size\",\n \"v\",\n \"m\",\n \"p\",\n \"d\",\n \"mci\",\n \"rqs\",\n \"rps\",\n \"md\",\n ]\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}`}\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: \"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});\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}`, {\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","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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SingleMessageRoute-DaaWvgfS.js","sources":["../../node_modules/@evolver-fi/evolver-basics/dist/esm/common/components/DateTimeRangeFilterField.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/messages/utils/index.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/messages/actions/index.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/messages/slices/messageSlice.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/messages/components/MessageComponent.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/messages/types/index.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/common/types/index.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/common/components/EnumSelectFilterField.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/crud/filterUtils.js","../../node_modules/@evolver-fi/evolver-basics/dist/esm/messages/components/messageListColumnDefinitions.js","../src/routes/message-sending/loader.ts","../src/routes/message-sending/messageSendingColumns.tsx","../src/routes/message-sending/MessageSendingRoute.tsx","../src/routes/message-sending/SingleMessageRoute.tsx"],"sourcesContent":["import { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nimport React, { useEffect } from 'react';\nimport { Grid, IconButton, InputAdornment, TextField } from '@mui/material';\nimport Backspace from '@mui/icons-material/Backspace';\nconst DateTimeRangeFilterField = ({ filterValue, validationError, setFilterValue, }) => {\n const [initialStartDateTime, initialEndDateTime] = filterValue?.split('-') || '';\n const [startDateTime, setStartDateTime] = React.useState(initialStartDateTime);\n const [endDateTime, setEndDateTime] = React.useState(initialEndDateTime);\n useEffect(() => {\n const value = `${startDateTime || ''}${endDateTime || startDateTime ? '-' : ''}${endDateTime || ''}`;\n setFilterValue(value);\n }, [startDateTime, endDateTime]);\n return (_jsxs(Grid, { container: true, direction: \"row\", spacing: 1, children: [_jsx(Grid, { item: true, xs: 12, xl: 6, children: _jsx(TextField, { size: \"small\", error: !!validationError, helperText: validationError || 'Start', value: startDateTime || '', onChange: (event) => {\n setStartDateTime(`${event.target.value}:00`);\n }, fullWidth: true, InputProps: {\n endAdornment: startDateTime && startDateTime.length > 0 ? (_jsx(InputAdornment, { position: \"end\", children: _jsx(IconButton, { onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n setStartDateTime(undefined);\n }, size: \"small\", children: _jsx(Backspace, {}) }) })) : undefined,\n } }) }), _jsx(Grid, { item: true, xs: 12, xl: 6, children: _jsx(TextField, { size: \"small\", value: endDateTime || '', helperText: \"End\", onChange: (event) => {\n setEndDateTime(`${event.target.value}:00`);\n }, fullWidth: true, InputProps: {\n endAdornment: endDateTime && endDateTime.length > 0 ? (_jsx(InputAdornment, { position: \"end\", children: _jsx(IconButton, { onClick: (e) => {\n e.preventDefault();\n e.stopPropagation();\n setEndDateTime(undefined);\n }, size: \"small\", children: _jsx(Backspace, {}) }) })) : undefined,\n } }) })] }));\n};\nexport default DateTimeRangeFilterField;\n","import { formatDatetimeRangeFilter, formatNumberRangeFilter, } from '../../common/components/listUtils';\nimport { getBackendClient } from '../../common/evolverClient';\nimport { createFilterQuery } from '../../common/utils/filterUtils';\nexport const formatterByKey = {\n ct: formatDatetimeRangeFilter,\n lut: formatDatetimeRangeFilter,\n fc: formatNumberRangeFilter,\n};\nexport const fetchMessages = (filters, backendClient) => {\n const client = backendClient || getBackendClient();\n const searchParams = new URLSearchParams();\n createFilterQuery(filters, formatterByKey).forEach((value, key) => searchParams.append(key, value));\n const searchParamsString = searchParams.toString() ? `?${searchParams.toString()}` : '';\n return client.get(`message${searchParamsString}`);\n};\nexport const fetchMessageById = (id, backendClient) => {\n const client = backendClient || getBackendClient();\n return client.get(`message/${id}`);\n};\n","import { createAsyncThunk } from '@reduxjs/toolkit';\nimport { fetchMessages } from '../utils';\nexport const fetchMessagesAction = createAsyncThunk('messages/fetchMessages', async (filters, thunkApi) => {\n const response = await fetchMessages(filters);\n if (response.status !== 200) {\n return thunkApi.rejectWithValue({\n message: 'Failed to fetch messages.',\n });\n }\n return response.data;\n});\n","import { createSlice } from '@reduxjs/toolkit';\nimport { fetchMessagesAction } from '../actions';\nconst initialState = {\n messages: [],\n messageTotalCount: 0,\n status: 'loading',\n filters: {\n page: '0',\n size: '100',\n },\n};\nexport const messageSlice = createSlice({\n name: 'message',\n initialState,\n reducers: {\n updateMessages(state, { payload }) {\n state.messages = payload;\n },\n updateFilters(state, { payload }) {\n state.filters = { ...state.filters, ...payload };\n },\n },\n extraReducers: (builder) => {\n builder.addCase(fetchMessagesAction.pending, (state) => {\n state.status = 'loading';\n state.error = 'undefined';\n });\n builder.addCase(fetchMessagesAction.fulfilled, (state, { payload }) => {\n state.messages = payload.content;\n state.messageTotalCount = payload.totalElements;\n state.status = 'succeeded';\n });\n builder.addCase(fetchMessagesAction.rejected, (state, { payload }) => {\n if (payload) {\n state.error = payload.message;\n }\n state.status = 'failed';\n });\n },\n});\nexport const { updateMessages, updateFilters } = messageSlice.actions;\nexport const selectMessages = (state) => state.messages.messages;\nexport const selectMessageTotalCount = (state) => state.messages.messageTotalCount;\nexport const selectFilters = (state) => state.messages.filters;\nexport const selectStatus = (state) => state.messages.status;\nexport default messageSlice.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 MessageField = ({ label, value, isFull }) => (_jsx(Grid, { item: true, xs: 12, sm: isFull ? 12 : 6, md: isFull ? 12 : 3, children: _jsx(TextField, { label: label, value: value, InputProps: {\n readOnly: true,\n }, InputLabelProps: {\n style: { fontSize: 20 },\n }, multiline: true, fullWidth: true }) }));\nconst MessageComponent = ({ message, backAction, }) => {\n return (_jsxs(_Fragment, { children: [_jsx(Button, { variant: \"contained\", startIcon: _jsx(ArrowBackIcon, {}), onClick: () => backAction(), sx: {\n backgroundColor: 'secondary.main',\n marginBottom: 0.5,\n width: 200,\n }, children: \"Back\" }), message ? (_jsxs(Grid, { container: true, direction: \"row\", justifyContent: \"center\", spacing: 2, children: [_jsx(Grid, { item: true, xs: 12, children: _jsx(\"h1\", { children: \"Message Details\" }) }), _jsx(MessageField, { label: \"State\", value: message.state }), _jsx(MessageField, { label: \"MessageChain ID\", value: message.messageChainId }), _jsx(MessageField, { label: \"Creation time\", value: formatDateTime(message.creationTime) }), _jsx(MessageField, { label: \"Last updated time\", value: formatDateTime(message.lastUpdatedTime) }), _jsx(MessageField, { label: \"Fail count\", value: message.failCount }), _jsx(MessageField, { label: \"MessageGroup Id\", value: message.messageGroupId }), _jsx(MessageField, { label: \"Priority\", value: message.priority }), _jsx(MessageField, { label: \"Message target config\", value: message.messageTargetConfig.messageType }), _jsx(MessageField, { label: \"Target system\", value: message.targetSystem }), _jsx(MessageField, { label: \"Message type\", value: message.messageType }), _jsx(MessageField, { label: \"Target Uri\", value: message.targetUri, isFull: true }), _jsx(MessageField, { label: \"Metadata\", value: Object.entries(message.metadata)\n .map(([key, value]) => `${key} = ${value}`)\n .join('\\n'), isFull: true })] })) : (_jsx(\"p\", { children: \"No message data found\" }))] }));\n};\nexport default MessageComponent;\n","export var MessageStatus;\n(function (MessageStatus) {\n MessageStatus[\"DELAYED\"] = \"DELAYED\";\n MessageStatus[\"PENDING\"] = \"PENDING\";\n MessageStatus[\"SENDING\"] = \"SENDING\";\n MessageStatus[\"SENT\"] = \"SENT\";\n MessageStatus[\"FAILED\"] = \"FAILED\";\n MessageStatus[\"DISABLED\"] = \"DISABLED\";\n})(MessageStatus || (MessageStatus = {}));\nexport var MessageTargetConfigStatus;\n(function (MessageTargetConfigStatus) {\n MessageTargetConfigStatus[\"ENABLED\"] = \"ENABLED\";\n MessageTargetConfigStatus[\"LOG_ONLY\"] = \"LOG_ONLY\";\n MessageTargetConfigStatus[\"PAUSED\"] = \"PAUSED\";\n MessageTargetConfigStatus[\"DISABLED\"] = \"DISABLED\";\n})(MessageTargetConfigStatus || (MessageTargetConfigStatus = {}));\n","export const NULL_VALUE = 'null';\nexport const NOT_NULL_VALUE = '!null';\n","import { jsx as _jsx, jsxs as _jsxs, Fragment as _Fragment } from \"react/jsx-runtime\";\nimport { Checkbox, FormControl, FormHelperText, MenuItem, Select, } from '@mui/material';\nimport { NOT_NULL_VALUE, NULL_VALUE } from '../types';\nfunction isString(data) {\n return typeof data === 'string';\n}\nconst EnumSelectFilterField = ({ filterValue, validationError, setFilterValue, enumValues, }) => {\n const selectValues = [\n { label: 'None', value: NULL_VALUE },\n { label: 'Any', value: NOT_NULL_VALUE },\n ...enumValues,\n ];\n const findLabelByValue = (value) => {\n const entry = selectValues.find((sv) => sv.value === value || sv.label === value);\n return entry?.label;\n };\n const findValueByLabel = (label) => {\n const entry = selectValues.find((sv) => sv.label === label);\n return entry?.value ?? entry?.label;\n };\n const handleChange = (event) => {\n const { target: { value }, } = event;\n if (isString(value)) {\n setFilterValue(value);\n return;\n }\n const newValue = value.map(findValueByLabel).filter(Boolean);\n setFilterValue(newValue.join(',') || '');\n };\n const formattedFilterValue = filterValue?.split(',')?.map((v) => findLabelByValue(v) ?? '') ?? [];\n return (_jsx(_Fragment, { children: _jsxs(FormControl, { sx: { width: 300 }, children: [_jsx(Select, { size: \"small\", labelId: \"demo-multiple-checkbox-label\", id: \"demo-multiple-checkbox\", multiple: true, value: formattedFilterValue, onChange: handleChange, renderValue: (selected) => selected.join(', '), error: !!validationError, children: selectValues.map((flow) => (_jsxs(MenuItem, { value: flow.label, children: [_jsx(Checkbox, { checked: formattedFilterValue.find((sv) => sv === flow.label) !== undefined }), flow.label] }, flow.label))) }), validationError && _jsx(FormHelperText, { children: validationError })] }) }));\n};\nexport default EnumSelectFilterField;\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport EnumSelectFilterField from '../common/components/EnumSelectFilterField';\nexport const createEnumSelectFilter = (field) => {\n if (field.type === 'enum') {\n const selectValues = field.enumValues.map((v) => ({\n label: v,\n }));\n return createSelectFilterRenderer(selectValues);\n }\n return undefined;\n};\nexport const createSelectFilterRenderer = (enumValues) => {\n // eslint-disable-next-line react/display-name\n return (props) => (_jsx(EnumSelectFilterField, { enumValues: enumValues, ...props }));\n};\n","import { jsx as _jsx } from \"react/jsx-runtime\";\nimport { MessageStatus } from '../types';\nimport { formatDateTime, formatMetadata } from '../../common/components/listUtils';\nimport { datetimeRangeValidator, numberRangeValidator, numberValidator, } from '../../common/utils/validation';\nimport DateTimeRangeFilterField from '../../common/components/DateTimeRangeFilterField';\nimport { createSelectFilterRenderer } from '../../crud/filterUtils';\nconst definition = [\n {\n id: 'creationTime',\n label: 'Creation time',\n renderValue: (value) => formatDateTime(value),\n minWidth: 250,\n filterKey: 'ct',\n filterHelper: 'yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss',\n filterValidator: datetimeRangeValidator,\n renderFilter: (props) => _jsx(DateTimeRangeFilterField, { ...props }),\n },\n {\n id: 'lastUpdatedTime',\n label: 'Last updated time',\n renderValue: (value) => formatDateTime(value),\n minWidth: 250,\n filterKey: 'lut',\n filterHelper: 'yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss',\n filterValidator: datetimeRangeValidator,\n },\n {\n id: 'state',\n label: 'State',\n minWidth: 100,\n filterKey: 's',\n filterHelper: 'e.g. SENT',\n renderFilter: createSelectFilterRenderer([\n { label: MessageStatus.DELAYED },\n { label: MessageStatus.PENDING },\n { label: MessageStatus.SENDING },\n { label: MessageStatus.SENT },\n { label: MessageStatus.FAILED },\n { label: MessageStatus.DISABLED },\n ]),\n },\n {\n id: 'messageChainId',\n label: 'Message Chain ID',\n minWidth: 150,\n filterKey: 'mci',\n filterHelper: 'e.g. 123',\n filterValidator: numberValidator,\n },\n {\n id: 'messageGroupId',\n label: 'Message Group ID',\n minWidth: 150,\n filterKey: 'mgi',\n filterHelper: 'e.g. 123',\n filterValidator: numberValidator,\n },\n {\n id: 'failCount',\n label: 'Fail count',\n minWidth: 150,\n filterKey: 'fc',\n filterHelper: 'number - ?number',\n filterValidator: numberRangeValidator,\n },\n {\n id: 'priority',\n label: 'Priority',\n minWidth: 150,\n filterKey: 'p',\n filterHelper: 'eg. 123',\n filterValidator: numberValidator,\n },\n {\n id: 'metadata',\n label: 'Metadata',\n renderValue: (value) => formatMetadata(value),\n minWidth: 150,\n filterKey: 'md',\n filterHelper: 'A=a, B=b',\n },\n];\nexport default definition;\n","import { filterFromUrlSearchParams } from \"@evolver-fi/evolver-basics\";\nimport {\n fetchMessageById,\n fetchMessages,\n MessageFilter,\n} from \"@evolver-fi/evolver-basics/messages\";\nimport { AxiosInstance } from \"axios\";\nimport { LoaderFunction, LoaderFunctionArgs } from \"react-router\";\nimport { mapMetadata } from \"../../components/metadata/utils\";\n\nexport const getSingleMessageLoader =\n (backendClient?: AxiosInstance) =>\n async ({ params }: LoaderFunctionArgs) => {\n try {\n if (!params.id) {\n throw new Error(\"No message id provided\"); // shouldn't route here without an id\n }\n const response = await fetchMessageById(params.id, backendClient);\n\n if (response.status !== 200) {\n throw new Error(`Failed to fetch message: ${response.data}`);\n }\n\n return response.data;\n } catch (error) {\n console.error(error);\n throw error;\n }\n };\n\nexport const singleMessageLoader: LoaderFunction = getSingleMessageLoader();\n\nexport const getMessageListLoader =\n (backendClient?: AxiosInstance) =>\n async ({ request }: LoaderFunctionArgs) => {\n try {\n const requestUrl = new URL(request.url);\n const filter = filterFromUrlSearchParams<MessageFilter>(\n requestUrl.searchParams,\n [\"s\", \"mci\", \"ct\", \"lut\", \"fc\", \"mgi\", \"p\", \"md\", \"page\", \"size\"] // TODO: should sort be included?\n );\n\n const response = await fetchMessages(filter, backendClient);\n if (response.status !== 200) {\n throw new Error(`Failed to fetch messages: ${response.data}`);\n }\n\n return mapMetadata(response.data);\n } catch (error) {\n console.error(error);\n throw error;\n }\n };\n\nexport const messageListLoader: LoaderFunction = getMessageListLoader();\n","import { formatDateTime } from \"../../common/format\";\nimport {\n datetimeRangeValidator,\n numberRangeValidator,\n numberValidator,\n} from \"../../common/validation\";\nimport { createEnumSelectFilter } from \"../../components/filter/EnumSelectFilter\";\nimport { TextFilter } from \"../../components/filter/TextFilter\";\nimport { TableMetadataDisplay } from \"../../components/metadata/TableMetadataDisplay\";\nimport { ColumnDefinitions } from \"../../components/table/types\";\nimport { MessageData, MessageFilter } from \"./types\";\n\nexport const messageSendingColumns: ColumnDefinitions<\n MessageData,\n MessageFilter\n> = [\n {\n key: \"creationTime\",\n title: \"Creation time\",\n CellComponent: ({ value }) => formatDateTime(value),\n minWidth: 250,\n searchKey: \"ct\",\n filterHelperText: \"yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss\",\n filterValidator: datetimeRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"lastUpdatedTime\",\n title: \"Last updated time\",\n CellComponent: ({ value }) => formatDateTime(value),\n minWidth: 250,\n searchKey: \"lut\",\n filterHelperText: \"yyyy-MM-dd HH:mm:ss - ?yyyy-MM-dd HH:mm:ss\",\n filterValidator: datetimeRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"state\",\n title: \"State\",\n minWidth: 130,\n searchKey: \"s\",\n filterHelperText: \"e.g. SENT\",\n FilterComponent: createEnumSelectFilter([\n { label: \"DELAYED\", value: \"DELAYED\" },\n { label: \"PENDING\", value: \"PENDING\" },\n { label: \"SENDING\", value: \"SENDING\" },\n { label: \"SENT\", value: \"SENT\" },\n { label: \"FAILED\", value: \"FAILED\" },\n { label: \"DISABLED\", value: \"DISABLED\" },\n ]),\n },\n {\n key: \"messageChainId\",\n title: \"Message Chain ID\",\n minWidth: 150,\n searchKey: \"mci\",\n filterHelperText: \"e.g. 123\",\n filterValidator: numberValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"messageGroupId\",\n title: \"Message Group ID\",\n minWidth: 150,\n searchKey: \"mgi\",\n filterHelperText: \"e.g. 123\",\n filterValidator: numberValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"failCount\",\n title: \"Fail count\",\n minWidth: 150,\n searchKey: \"fc\",\n filterHelperText: \"number - ?number\",\n filterValidator: numberRangeValidator,\n FilterComponent: TextFilter,\n },\n {\n key: \"priority\",\n title: \"Priority\",\n minWidth: 150,\n searchKey: \"p\",\n filterHelperText: \"e.g. 123\",\n filterValidator: numberValidator,\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 { TableContainer } from \"@mui/material\";\nimport {\n Form,\n useLoaderData,\n useNavigate,\n useSearchParams,\n} from \"react-router\";\nimport { Pagination } from \"../../components/table/Pagination\";\nimport { Table } from \"../../components/table/Table\";\nimport { messageSendingColumns } from \"./messageSendingColumns\";\nimport { MessageFilter, MessageResponse } from \"./types\";\n\nconst getRowId = ({ id }: { id: number }) => id;\n\nconst searchParamsToFilter = (params: URLSearchParams): MessageFilter => ({\n state: params.get(\"s\") ?? \"\",\n messageChainId: params.get(\"mci\") ?? \"\",\n creationTime: params.get(\"ct\") ?? \"\",\n lastUpdatedTime: params.get(\"lut\") ?? \"\",\n failCount: params.get(\"fc\") ?? \"\",\n messageGroupId: params.get(\"mgi\") ?? \"\",\n priority: params.get(\"p\") ?? \"\",\n metadata: params.get(\"md\") ?? \"\",\n});\n\nconst MessageSendingRoute = () => {\n const navigate = useNavigate();\n const [searchParams, setSearchParams] = useSearchParams();\n const messageResponse = useLoaderData() as MessageResponse;\n\n return (\n <>\n <Form method=\"get\">\n <TableContainer sx={{ height: \"calc(100vh - 130px)\" }}>\n <Table\n columns={messageSendingColumns}\n rows={messageResponse.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={messageResponse.number}\n rowsPerPage={messageResponse.size}\n total={messageResponse.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 MessageSendingRoute;\n","import { Message, MessageComponent } from \"@evolver-fi/evolver-basics/messages\";\nimport { useLoaderData, useNavigate } from \"react-router\";\n\nconst SingleMessageRoute = () => {\n const message = useLoaderData() as Message;\n\n const navigate = useNavigate();\n\n const handleBackAction = () => {\n navigate(-1);\n };\n\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n const handleDownloadDataAction = (_id: number, _type: string) => {\n // download data from /messages/:id/download\n // TODO: download not implemented in the component library\n };\n\n if (!message) {\n return <div>Loading...</div>; // TODO: handle 404, maybe in the loader?\n }\n\n // TODO: insert some messages into the backend and actually test this\n return (\n <MessageComponent\n message={message}\n backAction={handleBackAction}\n downloadDataAction={handleDownloadDataAction}\n />\n );\n};\n\nexport default SingleMessageRoute;\n"],"names":["DateTimeRangeFilterField","filterValue","validationError","setFilterValue","initialStartDateTime","initialEndDateTime","startDateTime","setStartDateTime","React","endDateTime","setEndDateTime","useEffect","value","_jsxs","Grid","_jsx","TextField","event","InputAdornment","IconButton","e","Backspace","formatterByKey","formatDatetimeRangeFilter","formatNumberRangeFilter","fetchMessages","filters","backendClient","client","getBackendClient","searchParams","createFilterQuery","key","searchParamsString","fetchMessageById","id","fetchMessagesAction","createAsyncThunk","thunkApi","response","initialState","createSlice","state","payload","builder","MessageField","label","isFull","MessageComponent","message","backAction","_Fragment","Button","ArrowBackIcon","formatDateTime","MessageStatus","MessageTargetConfigStatus","NULL_VALUE","NOT_NULL_VALUE","isString","data","EnumSelectFilterField","enumValues","selectValues","findLabelByValue","entry","sv","findValueByLabel","handleChange","newValue","formattedFilterValue","_a","v","FormControl","Select","selected","flow","MenuItem","Checkbox","FormHelperText","createSelectFilterRenderer","props","datetimeRangeValidator","numberValidator","numberRangeValidator","getSingleMessageLoader","params","error","singleMessageLoader","getMessageListLoader","request","requestUrl","filter","filterFromUrlSearchParams","mapMetadata","messageListLoader","messageSendingColumns","TextFilter","createEnumSelectFilter","TableMetadataDisplay","getRowId","searchParamsToFilter","MessageSendingRoute","navigate","useNavigate","setSearchParams","useSearchParams","messageResponse","useLoaderData","jsxs","Fragment","Form","jsx","TableContainer","Table","row","Pagination","page","newParams","SingleMessageRoute","handleBackAction","handleDownloadDataAction","_id","_type"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8,9]}
|
|
@@ -0,0 +1,154 @@
|
|
|
1
|
+
import { j as r } from "./jsx-runtime-B6kdoens.js";
|
|
2
|
+
import { TablePagination as b, TableHead as T, TableRow as d, TableCell as c, TableBody as l, Table as v } from "@mui/material";
|
|
3
|
+
import { memo as p, useMemo as u } from "react";
|
|
4
|
+
const M = ({
|
|
5
|
+
page: n,
|
|
6
|
+
rowsPerPage: a,
|
|
7
|
+
total: s,
|
|
8
|
+
onPageChange: e
|
|
9
|
+
}) => /* @__PURE__ */ r.jsx(
|
|
10
|
+
b,
|
|
11
|
+
{
|
|
12
|
+
component: "div",
|
|
13
|
+
count: s,
|
|
14
|
+
page: n,
|
|
15
|
+
rowsPerPage: a,
|
|
16
|
+
onPageChange: (i, o) => e(o),
|
|
17
|
+
rowsPerPageOptions: [],
|
|
18
|
+
showFirstButton: !0,
|
|
19
|
+
showLastButton: !0
|
|
20
|
+
}
|
|
21
|
+
), S = ({
|
|
22
|
+
columns: n,
|
|
23
|
+
filter: a,
|
|
24
|
+
defaultFilter: s,
|
|
25
|
+
onFilterChange: e
|
|
26
|
+
}) => {
|
|
27
|
+
const i = u(
|
|
28
|
+
() => n.some((o) => !!o.FilterComponent),
|
|
29
|
+
[n]
|
|
30
|
+
);
|
|
31
|
+
return /* @__PURE__ */ r.jsxs(
|
|
32
|
+
T,
|
|
33
|
+
{
|
|
34
|
+
sx: {
|
|
35
|
+
position: "sticky",
|
|
36
|
+
top: 0,
|
|
37
|
+
zIndex: 3,
|
|
38
|
+
bgcolor: "background.paper",
|
|
39
|
+
borderBottom: "1px solid",
|
|
40
|
+
borderColor: "divider"
|
|
41
|
+
},
|
|
42
|
+
children: [
|
|
43
|
+
/* @__PURE__ */ r.jsx(d, { children: n.map(({ key: o, title: t, minWidth: x }) => /* @__PURE__ */ r.jsx(
|
|
44
|
+
c,
|
|
45
|
+
{
|
|
46
|
+
sx: {
|
|
47
|
+
bgcolor: "primary.main",
|
|
48
|
+
color: "common.white",
|
|
49
|
+
minWidth: x
|
|
50
|
+
},
|
|
51
|
+
children: t
|
|
52
|
+
},
|
|
53
|
+
String(o)
|
|
54
|
+
)) }),
|
|
55
|
+
i && /* @__PURE__ */ r.jsx(d, { children: n.map(
|
|
56
|
+
({
|
|
57
|
+
key: o,
|
|
58
|
+
searchKey: t,
|
|
59
|
+
FilterComponent: x,
|
|
60
|
+
filterHelperText: g,
|
|
61
|
+
filterValidator: m
|
|
62
|
+
}) => /* @__PURE__ */ r.jsx(
|
|
63
|
+
c,
|
|
64
|
+
{
|
|
65
|
+
sx: { verticalAlign: "top" },
|
|
66
|
+
children: x && /* @__PURE__ */ r.jsx(
|
|
67
|
+
x,
|
|
68
|
+
{
|
|
69
|
+
name: t ?? String(o),
|
|
70
|
+
value: a == null ? void 0 : a[o],
|
|
71
|
+
defaultValue: s == null ? void 0 : s[o],
|
|
72
|
+
filter: a ?? s,
|
|
73
|
+
helperText: g,
|
|
74
|
+
validator: m,
|
|
75
|
+
onChange: e ? (h, j) => e({
|
|
76
|
+
...a ?? s,
|
|
77
|
+
...j ?? {},
|
|
78
|
+
[o]: h
|
|
79
|
+
}) : void 0
|
|
80
|
+
},
|
|
81
|
+
s ? `${String(o)}-${s[o]}` : void 0
|
|
82
|
+
)
|
|
83
|
+
},
|
|
84
|
+
`filter-${String(o)}`
|
|
85
|
+
)
|
|
86
|
+
) })
|
|
87
|
+
]
|
|
88
|
+
}
|
|
89
|
+
);
|
|
90
|
+
}, B = p(S), P = ({
|
|
91
|
+
rows: n,
|
|
92
|
+
getRowId: a,
|
|
93
|
+
onRowClick: s,
|
|
94
|
+
columns: e
|
|
95
|
+
}) => /* @__PURE__ */ r.jsx(
|
|
96
|
+
l,
|
|
97
|
+
{
|
|
98
|
+
sx: {
|
|
99
|
+
" & .MuiTableRow-root:nth-of-type(odd)": {
|
|
100
|
+
bgcolor: "grey.100"
|
|
101
|
+
}
|
|
102
|
+
},
|
|
103
|
+
children: n.map((i) => /* @__PURE__ */ r.jsx(
|
|
104
|
+
d,
|
|
105
|
+
{
|
|
106
|
+
hover: !0,
|
|
107
|
+
onClick: s ? () => s(i) : void 0,
|
|
108
|
+
sx: { cursor: s ? "pointer" : "default" },
|
|
109
|
+
children: e.map(({ CellComponent: o, key: t, searchKey: x }) => /* @__PURE__ */ r.jsx(c, { children: o ? /* @__PURE__ */ r.jsx(
|
|
110
|
+
o,
|
|
111
|
+
{
|
|
112
|
+
rowKey: t,
|
|
113
|
+
searchKey: x,
|
|
114
|
+
row: i,
|
|
115
|
+
value: i[t]
|
|
116
|
+
}
|
|
117
|
+
) : String(i[t]) }, String(t)))
|
|
118
|
+
},
|
|
119
|
+
String(a(i))
|
|
120
|
+
))
|
|
121
|
+
}
|
|
122
|
+
), $ = p(P), w = ({
|
|
123
|
+
columns: n,
|
|
124
|
+
rows: a,
|
|
125
|
+
filter: s,
|
|
126
|
+
defaultFilter: e,
|
|
127
|
+
onFilterChange: i,
|
|
128
|
+
getRowId: o,
|
|
129
|
+
onRowClick: t
|
|
130
|
+
}) => /* @__PURE__ */ r.jsxs(v, { size: "small", children: [
|
|
131
|
+
/* @__PURE__ */ r.jsx(
|
|
132
|
+
B,
|
|
133
|
+
{
|
|
134
|
+
columns: n,
|
|
135
|
+
filter: s,
|
|
136
|
+
defaultFilter: e,
|
|
137
|
+
onFilterChange: i
|
|
138
|
+
}
|
|
139
|
+
),
|
|
140
|
+
/* @__PURE__ */ r.jsx(
|
|
141
|
+
$,
|
|
142
|
+
{
|
|
143
|
+
rows: a,
|
|
144
|
+
getRowId: o,
|
|
145
|
+
onRowClick: t,
|
|
146
|
+
columns: n
|
|
147
|
+
}
|
|
148
|
+
)
|
|
149
|
+
] });
|
|
150
|
+
export {
|
|
151
|
+
M as P,
|
|
152
|
+
w as T
|
|
153
|
+
};
|
|
154
|
+
//# sourceMappingURL=Table-DgRqEB1x.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Table-DgRqEB1x.js","sources":["../src/components/table/Pagination.tsx","../src/components/table/Table.tsx"],"sourcesContent":["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"],"names":["Pagination","page","rowsPerPage","total","onPageChange","jsx","TablePagination","_","newPage","Head_","columns","filter","defaultFilter","onFilterChange","hasFilters","useMemo","col","jsxs","TableHead","TableRow","key","title","minWidth","TableCell","searchKey","FilterComponent","filterHelperText","filterValidator","value","newFilter","Head","memo","Body_","rows","getRowId","onRowClick","TableBody","row","CellComponent","Body","Table","MuiTable"],"mappings":"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"}
|