wcz-test 4.7.0 → 4.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/index.d.ts +4 -11
- package/dist/index.js +329 -365
- package/dist/index.js.map +1 -1
- package/package.json +7 -5
package/dist/index.js
CHANGED
|
@@ -975,84 +975,43 @@ var require_prop_types = __commonJS({
|
|
|
975
975
|
// src/components/core/TypographyWithIcon.tsx
|
|
976
976
|
import { Stack, Typography } from "@mui/material";
|
|
977
977
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
978
|
-
var
|
|
979
|
-
|
|
980
|
-
|
|
981
|
-
|
|
982
|
-
|
|
983
|
-
|
|
984
|
-
|
|
985
|
-
|
|
986
|
-
|
|
987
|
-
"mb",
|
|
988
|
-
"ml",
|
|
989
|
-
"mx",
|
|
990
|
-
"my",
|
|
991
|
-
"padding",
|
|
992
|
-
"paddingTop",
|
|
993
|
-
"paddingRight",
|
|
994
|
-
"paddingBottom",
|
|
995
|
-
"paddingLeft",
|
|
996
|
-
"p",
|
|
997
|
-
"pt",
|
|
998
|
-
"pr",
|
|
999
|
-
"pb",
|
|
1000
|
-
"pl",
|
|
1001
|
-
"px",
|
|
1002
|
-
"py",
|
|
1003
|
-
"flexGrow",
|
|
1004
|
-
"flexShrink",
|
|
1005
|
-
"flexBasis",
|
|
1006
|
-
"flexDirection",
|
|
1007
|
-
"alignItems",
|
|
1008
|
-
"justifyContent",
|
|
1009
|
-
"position",
|
|
1010
|
-
"zIndex",
|
|
1011
|
-
"top",
|
|
1012
|
-
"right",
|
|
1013
|
-
"bottom",
|
|
1014
|
-
"left",
|
|
1015
|
-
"gridGap",
|
|
1016
|
-
"gridColumnGap",
|
|
1017
|
-
"gridRowGap",
|
|
1018
|
-
"gridColumn",
|
|
1019
|
-
"gridRow",
|
|
1020
|
-
"gridAutoFlow",
|
|
1021
|
-
"gap",
|
|
1022
|
-
"columnGap",
|
|
1023
|
-
"rowGap"
|
|
1024
|
-
];
|
|
1025
|
-
var TypographyWithIcon = ({ startIcon, endIcon, children, sx, gutterBottom, ...props }) => {
|
|
1026
|
-
const sxCopy = { ...sx };
|
|
1027
|
-
const stackStyles = {};
|
|
1028
|
-
for (const current of stackSxProps) {
|
|
1029
|
-
if (sxCopy[current]) {
|
|
1030
|
-
stackStyles[current] = sxCopy[current];
|
|
1031
|
-
delete sxCopy[current];
|
|
978
|
+
var TypographyWithIcon = ({ startIcon, endIcon, children, sx, ...props }) => {
|
|
979
|
+
const iconSx = {
|
|
980
|
+
display: "inline-flex",
|
|
981
|
+
alignItems: "center",
|
|
982
|
+
justifyContent: "center",
|
|
983
|
+
flexShrink: 0,
|
|
984
|
+
lineHeight: 0,
|
|
985
|
+
"& > svg": {
|
|
986
|
+
display: "block"
|
|
1032
987
|
}
|
|
1033
|
-
}
|
|
1034
|
-
return /* @__PURE__ */ jsxs(
|
|
1035
|
-
|
|
1036
|
-
|
|
1037
|
-
|
|
1038
|
-
|
|
1039
|
-
|
|
1040
|
-
|
|
1041
|
-
|
|
1042
|
-
|
|
1043
|
-
|
|
1044
|
-
|
|
1045
|
-
|
|
1046
|
-
|
|
1047
|
-
|
|
1048
|
-
|
|
988
|
+
};
|
|
989
|
+
return /* @__PURE__ */ jsxs(
|
|
990
|
+
Typography,
|
|
991
|
+
{
|
|
992
|
+
component: "span",
|
|
993
|
+
sx: {
|
|
994
|
+
display: "inline-flex",
|
|
995
|
+
alignItems: "center",
|
|
996
|
+
verticalAlign: "middle",
|
|
997
|
+
...sx
|
|
998
|
+
},
|
|
999
|
+
gap: 1,
|
|
1000
|
+
...props,
|
|
1001
|
+
children: [
|
|
1002
|
+
startIcon && /* @__PURE__ */ jsx(Stack, { component: "span", sx: iconSx, children: startIcon }),
|
|
1003
|
+
/* @__PURE__ */ jsx(Stack, { component: "span", sx: { display: "inline", lineHeight: "inherit" }, children }),
|
|
1004
|
+
endIcon && /* @__PURE__ */ jsx(Stack, { component: "span", sx: iconSx, children: endIcon })
|
|
1005
|
+
]
|
|
1006
|
+
}
|
|
1007
|
+
);
|
|
1049
1008
|
};
|
|
1050
1009
|
|
|
1051
|
-
// src/components/core/
|
|
1052
|
-
import { Box
|
|
1010
|
+
// src/components/core/Fullscreen.tsx
|
|
1011
|
+
import { Box } from "@mui/material";
|
|
1053
1012
|
import { useEffect, useRef, useState } from "react";
|
|
1054
|
-
import { jsx as
|
|
1055
|
-
var
|
|
1013
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
1014
|
+
var Fullscreen = ({ children, sx, ...props }) => {
|
|
1056
1015
|
const reference = useRef(null);
|
|
1057
1016
|
const [height, setHeight] = useState();
|
|
1058
1017
|
useEffect(() => {
|
|
@@ -1075,8 +1034,8 @@ var TableContainer = ({ children, sx, ...props }) => {
|
|
|
1075
1034
|
ro.disconnect();
|
|
1076
1035
|
};
|
|
1077
1036
|
}, []);
|
|
1078
|
-
return /* @__PURE__ */
|
|
1079
|
-
|
|
1037
|
+
return /* @__PURE__ */ jsx2(
|
|
1038
|
+
Box,
|
|
1080
1039
|
{
|
|
1081
1040
|
ref: reference,
|
|
1082
1041
|
sx: {
|
|
@@ -1084,43 +1043,26 @@ var TableContainer = ({ children, sx, ...props }) => {
|
|
|
1084
1043
|
flexDirection: "column",
|
|
1085
1044
|
minHeight: 0,
|
|
1086
1045
|
width: "100%",
|
|
1046
|
+
overflow: "auto",
|
|
1087
1047
|
...sx
|
|
1088
1048
|
},
|
|
1089
1049
|
height,
|
|
1090
1050
|
...props,
|
|
1091
|
-
children: /* @__PURE__ */
|
|
1051
|
+
children: /* @__PURE__ */ jsx2(Box, { sx: {
|
|
1092
1052
|
flex: 1,
|
|
1093
1053
|
minHeight: 0,
|
|
1094
|
-
height: "100%"
|
|
1095
|
-
|
|
1096
|
-
"& .MuiInputBase-root": {
|
|
1097
|
-
height: "100%"
|
|
1098
|
-
}
|
|
1099
|
-
},
|
|
1100
|
-
"& .MuiDataGrid-columnHeaderTitle": {
|
|
1101
|
-
fontWeight: 600
|
|
1102
|
-
},
|
|
1103
|
-
"& .Mui-error": {
|
|
1104
|
-
backgroundColor: theme.palette.error.main,
|
|
1105
|
-
color: theme.palette.error.contrastText
|
|
1106
|
-
},
|
|
1107
|
-
"& .MuiDataGrid-booleanCell[data-value='true']": {
|
|
1108
|
-
color: `${theme.palette.success.main} !important`
|
|
1109
|
-
},
|
|
1110
|
-
"& .MuiDataGrid-booleanCell[data-value='false']": {
|
|
1111
|
-
color: `${theme.palette.error.main} !important`
|
|
1112
|
-
}
|
|
1113
|
-
}), children })
|
|
1054
|
+
height: "100%"
|
|
1055
|
+
}, children })
|
|
1114
1056
|
}
|
|
1115
1057
|
);
|
|
1116
1058
|
};
|
|
1117
1059
|
|
|
1118
1060
|
// src/components/file/Dropzone.tsx
|
|
1119
1061
|
import CloudUpload from "@mui/icons-material/CloudUpload";
|
|
1120
|
-
import { Paper, Typography as
|
|
1062
|
+
import { Paper, Typography as Typography2, useTheme } from "@mui/material";
|
|
1121
1063
|
import { useDropzone } from "react-dropzone";
|
|
1122
1064
|
import { useTranslation } from "react-i18next";
|
|
1123
|
-
import { jsx as
|
|
1065
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
1124
1066
|
var baseStyle = {
|
|
1125
1067
|
flex: 1,
|
|
1126
1068
|
display: "flex",
|
|
@@ -1144,10 +1086,10 @@ var Dropzone = ({ sx, ...props }) => {
|
|
|
1144
1086
|
...isDragAccept ? { borderColor: theme.palette.success.main } : {},
|
|
1145
1087
|
...isDragReject ? { borderColor: theme.palette.error.main } : {}
|
|
1146
1088
|
};
|
|
1147
|
-
return /* @__PURE__ */
|
|
1148
|
-
/* @__PURE__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
1150
|
-
/* @__PURE__ */
|
|
1089
|
+
return /* @__PURE__ */ jsxs2(Paper, { variant: "outlined", ...getRootProps({ style }), sx, children: [
|
|
1090
|
+
/* @__PURE__ */ jsx3("input", { ...getInputProps(), style: { display: "none" } }),
|
|
1091
|
+
/* @__PURE__ */ jsx3(CloudUpload, {}),
|
|
1092
|
+
/* @__PURE__ */ jsx3(Typography2, { children: t2("Layout.File.DragSomeFilesHereOrClickToSelectThem") })
|
|
1151
1093
|
] });
|
|
1152
1094
|
};
|
|
1153
1095
|
|
|
@@ -1156,7 +1098,7 @@ import { useState as useState5 } from "react";
|
|
|
1156
1098
|
|
|
1157
1099
|
// src/components/file/fileViewer/FileViewerGrid.tsx
|
|
1158
1100
|
import MoreVert from "@mui/icons-material/MoreVert";
|
|
1159
|
-
import { Box as
|
|
1101
|
+
import { Box as Box2, IconButton, ImageListItem, ImageListItemBar, Stack as Stack3, Tooltip } from "@mui/material";
|
|
1160
1102
|
import { grey } from "@mui/material/colors";
|
|
1161
1103
|
import { Fragment, useEffect as useEffect2, useState as useState3 } from "react";
|
|
1162
1104
|
|
|
@@ -1187,23 +1129,23 @@ import { createContext as createContext2 } from "react";
|
|
|
1187
1129
|
var DialogsContext = createContext2({});
|
|
1188
1130
|
|
|
1189
1131
|
// src/hooks/DialogsHooks.tsx
|
|
1190
|
-
import { jsx as
|
|
1132
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1191
1133
|
function AlertDialog({ open, payload, onClose }) {
|
|
1192
1134
|
const { t: t2 } = useTranslation2();
|
|
1193
|
-
return /* @__PURE__ */
|
|
1194
|
-
/* @__PURE__ */
|
|
1195
|
-
/* @__PURE__ */
|
|
1196
|
-
/* @__PURE__ */
|
|
1135
|
+
return /* @__PURE__ */ jsxs3(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(), disableRestoreFocus: true, children: [
|
|
1136
|
+
/* @__PURE__ */ jsx4(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Alert") }),
|
|
1137
|
+
/* @__PURE__ */ jsx4(DialogContent, { children: payload.message }),
|
|
1138
|
+
/* @__PURE__ */ jsx4(DialogActions, { children: /* @__PURE__ */ jsx4(Button, { onClick: () => onClose(), autoFocus: true, children: t2("Layout.Dialog.Confirm") }) })
|
|
1197
1139
|
] });
|
|
1198
1140
|
}
|
|
1199
1141
|
function ConfirmDialog({ open, payload, onClose }) {
|
|
1200
1142
|
const { t: t2 } = useTranslation2();
|
|
1201
|
-
return /* @__PURE__ */
|
|
1202
|
-
/* @__PURE__ */
|
|
1203
|
-
/* @__PURE__ */
|
|
1204
|
-
/* @__PURE__ */
|
|
1205
|
-
/* @__PURE__ */
|
|
1206
|
-
/* @__PURE__ */
|
|
1143
|
+
return /* @__PURE__ */ jsxs3(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(false), disableRestoreFocus: true, children: [
|
|
1144
|
+
/* @__PURE__ */ jsx4(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Confirm") }),
|
|
1145
|
+
/* @__PURE__ */ jsx4(DialogContent, { children: payload.message }),
|
|
1146
|
+
/* @__PURE__ */ jsxs3(DialogActions, { children: [
|
|
1147
|
+
/* @__PURE__ */ jsx4(Button, { onClick: () => onClose(false), children: payload.cancelText ?? t2("Layout.Dialog.Cancel") }),
|
|
1148
|
+
/* @__PURE__ */ jsx4(Button, { onClick: () => onClose(true), autoFocus: true, children: t2("Layout.Dialog.Confirm") })
|
|
1207
1149
|
] })
|
|
1208
1150
|
] });
|
|
1209
1151
|
}
|
|
@@ -1226,15 +1168,15 @@ import { Upload as TusUpload } from "tus-js-client";
|
|
|
1226
1168
|
import { uuidv7 } from "uuidv7";
|
|
1227
1169
|
|
|
1228
1170
|
// src/components/core/AppTitle.tsx
|
|
1229
|
-
import { Chip, Stack as
|
|
1171
|
+
import { Chip, Stack as Stack2, Typography as Typography3 } from "@mui/material";
|
|
1230
1172
|
import { useRouterState } from "@tanstack/react-router";
|
|
1231
|
-
import { jsx as
|
|
1173
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1232
1174
|
var AppTitle = () => {
|
|
1233
1175
|
const title = useAppTitle();
|
|
1234
|
-
return /* @__PURE__ */
|
|
1235
|
-
/* @__PURE__ */
|
|
1236
|
-
/* @__PURE__ */
|
|
1237
|
-
import.meta.env.DEV && /* @__PURE__ */
|
|
1176
|
+
return /* @__PURE__ */ jsxs4(Stack2, { direction: "row", alignItems: "center", spacing: 2, flexGrow: 1, children: [
|
|
1177
|
+
/* @__PURE__ */ jsx5("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
|
|
1178
|
+
/* @__PURE__ */ jsx5(Typography3, { variant: "h6", children: title }),
|
|
1179
|
+
import.meta.env.DEV && /* @__PURE__ */ jsx5(Chip, { size: "small", label: "TEST", color: "info" })
|
|
1238
1180
|
] });
|
|
1239
1181
|
};
|
|
1240
1182
|
var useAppTitle = () => {
|
|
@@ -1274,7 +1216,7 @@ var rootRouteHead = ({ title }) => () => ({
|
|
|
1274
1216
|
{ rel: "apple-touch-icon", sizes: "180x180", href: "/apple-touch-icon.png" },
|
|
1275
1217
|
{ rel: "icon", type: "image/png", sizes: "32x32", href: "/favicon-32x32.png" },
|
|
1276
1218
|
{ rel: "icon", type: "image/png", sizes: "16x16", href: "/favicon-16x16.png" },
|
|
1277
|
-
{ rel: "manifest", href: "/manifest" },
|
|
1219
|
+
{ rel: "manifest", href: "/manifest.json" },
|
|
1278
1220
|
{ rel: "icon", href: "/favicon.ico" }
|
|
1279
1221
|
]
|
|
1280
1222
|
});
|
|
@@ -1446,7 +1388,7 @@ var useUploadFile = ({ subId, onSuccess, onError }) => {
|
|
|
1446
1388
|
};
|
|
1447
1389
|
|
|
1448
1390
|
// src/components/file/fileViewer/common/ActionsMenu.tsx
|
|
1449
|
-
import { jsx as
|
|
1391
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1450
1392
|
var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
1451
1393
|
const { t: t2 } = useTranslation3();
|
|
1452
1394
|
const { fileMetas, onDelete, actions } = useFile();
|
|
@@ -1470,7 +1412,7 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
|
1470
1412
|
onDelete({ remainingFileMetas, deletedFileMeta: meta });
|
|
1471
1413
|
}
|
|
1472
1414
|
};
|
|
1473
|
-
return /* @__PURE__ */
|
|
1415
|
+
return /* @__PURE__ */ jsx6(
|
|
1474
1416
|
Menu,
|
|
1475
1417
|
{
|
|
1476
1418
|
open: menu !== null,
|
|
@@ -1478,14 +1420,14 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
|
1478
1420
|
anchorReference: "anchorPosition",
|
|
1479
1421
|
variant: "menu",
|
|
1480
1422
|
anchorPosition: menu === null ? void 0 : { top: menu.mouseY, left: menu.mouseX },
|
|
1481
|
-
children: /* @__PURE__ */
|
|
1482
|
-
actions?.download !== false && /* @__PURE__ */
|
|
1483
|
-
/* @__PURE__ */
|
|
1484
|
-
/* @__PURE__ */
|
|
1423
|
+
children: /* @__PURE__ */ jsxs5(List, { disablePadding: true, children: [
|
|
1424
|
+
actions?.download !== false && /* @__PURE__ */ jsxs5(ListItemButton, { onClick: handleOnDownload, disabled: isDownloading, children: [
|
|
1425
|
+
/* @__PURE__ */ jsx6(ListItemIcon, { children: /* @__PURE__ */ jsx6(FileDownload, {}) }),
|
|
1426
|
+
/* @__PURE__ */ jsx6(ListItemText, { children: t2("Layout.File.Download") })
|
|
1485
1427
|
] }),
|
|
1486
|
-
actions?.delete !== false && /* @__PURE__ */
|
|
1487
|
-
/* @__PURE__ */
|
|
1488
|
-
/* @__PURE__ */
|
|
1428
|
+
actions?.delete !== false && /* @__PURE__ */ jsxs5(ListItemButton, { onClick: handleOnDelete, disabled: isDeleting, children: [
|
|
1429
|
+
/* @__PURE__ */ jsx6(ListItemIcon, { children: /* @__PURE__ */ jsx6(Delete, {}) }),
|
|
1430
|
+
/* @__PURE__ */ jsx6(ListItemText, { children: t2("Layout.File.Delete") })
|
|
1489
1431
|
] })
|
|
1490
1432
|
] })
|
|
1491
1433
|
}
|
|
@@ -1493,11 +1435,11 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
|
1493
1435
|
};
|
|
1494
1436
|
|
|
1495
1437
|
// src/components/file/fileViewer/FileViewerGrid.tsx
|
|
1496
|
-
import { jsx as
|
|
1438
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1497
1439
|
var IMAGE_SIZE = 150;
|
|
1498
1440
|
var FileViewerGrid = ({ sx, size, itemBar }) => {
|
|
1499
1441
|
const { fileMetas } = useFile();
|
|
1500
|
-
return /* @__PURE__ */
|
|
1442
|
+
return /* @__PURE__ */ jsx7(Stack3, { direction: "row", spacing: 1, sx: { overflow: "auto", ...sx }, children: fileMetas.map((fileMeta) => /* @__PURE__ */ jsx7(
|
|
1501
1443
|
GridFileViewerItem,
|
|
1502
1444
|
{
|
|
1503
1445
|
meta: fileMeta,
|
|
@@ -1539,10 +1481,10 @@ var GridFileViewerItem = ({ meta, size, itemBar }) => {
|
|
|
1539
1481
|
}
|
|
1540
1482
|
}
|
|
1541
1483
|
};
|
|
1542
|
-
return /* @__PURE__ */
|
|
1543
|
-
/* @__PURE__ */
|
|
1544
|
-
/* @__PURE__ */
|
|
1545
|
-
|
|
1484
|
+
return /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1485
|
+
/* @__PURE__ */ jsxs6(ImageListItem, { sx: { width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave, children: [
|
|
1486
|
+
/* @__PURE__ */ jsx7(
|
|
1487
|
+
Box2,
|
|
1546
1488
|
{
|
|
1547
1489
|
component: "img",
|
|
1548
1490
|
src: source,
|
|
@@ -1552,15 +1494,15 @@ var GridFileViewerItem = ({ meta, size, itemBar }) => {
|
|
|
1552
1494
|
sx: { cursor: "pointer", objectFit: "contain", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }
|
|
1553
1495
|
}
|
|
1554
1496
|
),
|
|
1555
|
-
itemBar !== "hidden" && showItemBar && /* @__PURE__ */
|
|
1497
|
+
itemBar !== "hidden" && showItemBar && /* @__PURE__ */ jsx7(
|
|
1556
1498
|
ImageListItemBar,
|
|
1557
1499
|
{
|
|
1558
|
-
title: /* @__PURE__ */
|
|
1559
|
-
actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1500
|
+
title: /* @__PURE__ */ jsx7(Tooltip, { title: meta.fileName, children: /* @__PURE__ */ jsx7(Box2, { children: meta.fileName }) }),
|
|
1501
|
+
actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx7(IconButton, { sx: { color: grey[100] }, onClick: openMenu, children: /* @__PURE__ */ jsx7(MoreVert, {}) })
|
|
1560
1502
|
}
|
|
1561
1503
|
)
|
|
1562
1504
|
] }),
|
|
1563
|
-
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1505
|
+
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx7(ActionsMenu, { meta, menu, setMenu })
|
|
1564
1506
|
] });
|
|
1565
1507
|
};
|
|
1566
1508
|
|
|
@@ -1571,11 +1513,11 @@ import MoreVert2 from "@mui/icons-material/MoreVert";
|
|
|
1571
1513
|
import SmartDisplay from "@mui/icons-material/SmartDisplay";
|
|
1572
1514
|
import { IconButton as IconButton2, List as List2, ListItemButton as ListItemButton2, ListItemIcon as ListItemIcon2, ListItemText as ListItemText2 } from "@mui/material";
|
|
1573
1515
|
import { Fragment as Fragment2, useState as useState4 } from "react";
|
|
1574
|
-
import { jsx as
|
|
1516
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1575
1517
|
var FileViewerList = ({ sx }) => {
|
|
1576
1518
|
const { fileMetas } = useFile();
|
|
1577
|
-
return /* @__PURE__ */
|
|
1578
|
-
(fileMeta) => /* @__PURE__ */
|
|
1519
|
+
return /* @__PURE__ */ jsx8(List2, { dense: true, sx, children: fileMetas.map(
|
|
1520
|
+
(fileMeta) => /* @__PURE__ */ jsx8(
|
|
1579
1521
|
ListFileViewerItem,
|
|
1580
1522
|
{
|
|
1581
1523
|
meta: fileMeta
|
|
@@ -1612,31 +1554,31 @@ var ListFileViewerItem = ({ meta }) => {
|
|
|
1612
1554
|
const icon = () => {
|
|
1613
1555
|
switch (meta.mediaType) {
|
|
1614
1556
|
case "image": {
|
|
1615
|
-
return /* @__PURE__ */
|
|
1557
|
+
return /* @__PURE__ */ jsx8(Image, {});
|
|
1616
1558
|
}
|
|
1617
1559
|
case "video": {
|
|
1618
|
-
return /* @__PURE__ */
|
|
1560
|
+
return /* @__PURE__ */ jsx8(SmartDisplay, {});
|
|
1619
1561
|
}
|
|
1620
1562
|
default: {
|
|
1621
|
-
return /* @__PURE__ */
|
|
1563
|
+
return /* @__PURE__ */ jsx8(AttachFile, {});
|
|
1622
1564
|
}
|
|
1623
1565
|
}
|
|
1624
1566
|
};
|
|
1625
|
-
return /* @__PURE__ */
|
|
1626
|
-
/* @__PURE__ */
|
|
1627
|
-
/* @__PURE__ */
|
|
1628
|
-
/* @__PURE__ */
|
|
1629
|
-
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1567
|
+
return /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
1568
|
+
/* @__PURE__ */ jsxs7(ListItemButton2, { onClick, children: [
|
|
1569
|
+
/* @__PURE__ */ jsx8(ListItemIcon2, { children: icon() }),
|
|
1570
|
+
/* @__PURE__ */ jsx8(ListItemText2, { primary: `${meta.fileName}.${meta.fileExtension}` }),
|
|
1571
|
+
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(IconButton2, { edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsx8(MoreVert2, {}) })
|
|
1630
1572
|
] }, meta.id),
|
|
1631
|
-
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1573
|
+
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(ActionsMenu, { meta, menu, setMenu })
|
|
1632
1574
|
] });
|
|
1633
1575
|
};
|
|
1634
1576
|
|
|
1635
1577
|
// src/components/file/fileViewer/ImageViewer.tsx
|
|
1636
1578
|
import Close from "@mui/icons-material/Close";
|
|
1637
|
-
import { Box as
|
|
1579
|
+
import { Box as Box3, Dialog as Dialog2, Fab } from "@mui/material";
|
|
1638
1580
|
import { useEffect as useEffect3 } from "react";
|
|
1639
|
-
import { jsx as
|
|
1581
|
+
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1640
1582
|
var ImageViewer = ({ metaId }) => {
|
|
1641
1583
|
const { fileMetas, setImageId } = useFile();
|
|
1642
1584
|
const meta = fileMetas.find((m) => m.id === metaId);
|
|
@@ -1679,28 +1621,28 @@ var ImageViewer = ({ metaId }) => {
|
|
|
1679
1621
|
};
|
|
1680
1622
|
const onClose = () => setImageId("");
|
|
1681
1623
|
if (!metaId) return null;
|
|
1682
|
-
return /* @__PURE__ */
|
|
1683
|
-
/* @__PURE__ */
|
|
1684
|
-
/* @__PURE__ */
|
|
1624
|
+
return /* @__PURE__ */ jsxs8(Dialog2, { open: true, onClose, maxWidth: "xl", children: [
|
|
1625
|
+
/* @__PURE__ */ jsx9(Box3, { component: "img", src: source, alt: metaId, sx: { maxWidth: "100vw", maxHeight: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" } } }),
|
|
1626
|
+
/* @__PURE__ */ jsx9(Fab, { size: "medium", onClick: onClose, sx: { position: "fixed", top: 8, right: 8 }, children: /* @__PURE__ */ jsx9(Close, {}) })
|
|
1685
1627
|
] });
|
|
1686
1628
|
};
|
|
1687
1629
|
|
|
1688
1630
|
// src/components/file/FileViewer.tsx
|
|
1689
|
-
import { jsx as
|
|
1631
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1690
1632
|
var FileViewer = ({ subId, onDelete, actions, children }) => {
|
|
1691
1633
|
const { data: fileMetas = [] } = useGetFileMetas(subId, { enabled: !!subId });
|
|
1692
1634
|
const [imageId, setImageId] = useState5("");
|
|
1693
1635
|
const components = { Grid: FileViewerGrid, List: FileViewerList };
|
|
1694
1636
|
if (fileMetas.length === 0) return null;
|
|
1695
|
-
return /* @__PURE__ */
|
|
1637
|
+
return /* @__PURE__ */ jsxs9(FileContext.Provider, { value: { fileMetas, onDelete, actions, setImageId }, children: [
|
|
1696
1638
|
children(components),
|
|
1697
|
-
/* @__PURE__ */
|
|
1639
|
+
/* @__PURE__ */ jsx10(ImageViewer, { metaId: imageId })
|
|
1698
1640
|
] });
|
|
1699
1641
|
};
|
|
1700
1642
|
|
|
1701
1643
|
// src/components/data-grid/ChipInputCell.tsx
|
|
1702
|
-
import { Chip as Chip2, Stack as
|
|
1703
|
-
import { jsx as
|
|
1644
|
+
import { Chip as Chip2, Stack as Stack4 } from "@mui/material";
|
|
1645
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1704
1646
|
var isArray = (value) => Array.isArray(value);
|
|
1705
1647
|
var ChipInputCell = ({ params, slotProps, getLabel }) => {
|
|
1706
1648
|
if (!params.value) return null;
|
|
@@ -1709,120 +1651,120 @@ var ChipInputCell = ({ params, slotProps, getLabel }) => {
|
|
|
1709
1651
|
return value;
|
|
1710
1652
|
};
|
|
1711
1653
|
if (isArray(params.value))
|
|
1712
|
-
return /* @__PURE__ */
|
|
1713
|
-
(value, index) => /* @__PURE__ */
|
|
1654
|
+
return /* @__PURE__ */ jsx11(Stack4, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map(
|
|
1655
|
+
(value, index) => /* @__PURE__ */ jsx11(Chip2, { label: getLabelValue(value), ...slotProps }, `${index + 1}-chip-input-cell`)
|
|
1714
1656
|
) });
|
|
1715
|
-
return /* @__PURE__ */
|
|
1657
|
+
return /* @__PURE__ */ jsx11(Chip2, { label: getLabelValue(params.value), ...slotProps });
|
|
1716
1658
|
};
|
|
1717
1659
|
|
|
1718
1660
|
// src/components/data-grid/EditableColumnHeader.tsx
|
|
1719
1661
|
import Edit from "@mui/icons-material/Edit";
|
|
1720
|
-
import { jsx as
|
|
1662
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1721
1663
|
var EditableColumnHeader = ({ colDef }) => {
|
|
1722
|
-
return /* @__PURE__ */
|
|
1664
|
+
return /* @__PURE__ */ jsx12(TypographyWithIcon, { endIcon: /* @__PURE__ */ jsx12(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
|
|
1723
1665
|
};
|
|
1724
1666
|
|
|
1725
1667
|
// src/components/router/RouterButton.tsx
|
|
1726
1668
|
import { Button as Button2 } from "@mui/material";
|
|
1727
1669
|
import { createLink } from "@tanstack/react-router";
|
|
1728
1670
|
import React3 from "react";
|
|
1729
|
-
import { jsx as
|
|
1671
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1730
1672
|
var Component = React3.forwardRef(function ButtonComponent(props, reference) {
|
|
1731
|
-
return /* @__PURE__ */
|
|
1673
|
+
return /* @__PURE__ */ jsx13(Button2, { ref: reference, component: "a", ...props });
|
|
1732
1674
|
});
|
|
1733
1675
|
var CreatedComponent = createLink(Component);
|
|
1734
1676
|
var RouterButton = (props) => {
|
|
1735
|
-
return /* @__PURE__ */
|
|
1677
|
+
return /* @__PURE__ */ jsx13(CreatedComponent, { ...props });
|
|
1736
1678
|
};
|
|
1737
1679
|
|
|
1738
1680
|
// src/components/router/RouterGridActionsCellItem.tsx
|
|
1739
1681
|
import { GridActionsCellItem } from "@mui/x-data-grid-premium";
|
|
1740
1682
|
import { createLink as createLink2 } from "@tanstack/react-router";
|
|
1741
1683
|
import React4 from "react";
|
|
1742
|
-
import { jsx as
|
|
1684
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1743
1685
|
var Component2 = React4.forwardRef(
|
|
1744
1686
|
function GridActionsCellItemComponent(props, reference) {
|
|
1745
|
-
return /* @__PURE__ */
|
|
1687
|
+
return /* @__PURE__ */ jsx14(GridActionsCellItem, { ref: reference, component: "a", ...props });
|
|
1746
1688
|
}
|
|
1747
1689
|
);
|
|
1748
1690
|
var CreatedComponent2 = createLink2(Component2);
|
|
1749
1691
|
var RouterGridActionsCellItem = (props) => {
|
|
1750
|
-
return /* @__PURE__ */
|
|
1692
|
+
return /* @__PURE__ */ jsx14(CreatedComponent2, { ...props });
|
|
1751
1693
|
};
|
|
1752
1694
|
|
|
1753
1695
|
// src/components/router/RouterIconButton.tsx
|
|
1754
1696
|
import { IconButton as IconButton3 } from "@mui/material";
|
|
1755
1697
|
import { createLink as createLink3 } from "@tanstack/react-router";
|
|
1756
1698
|
import React5 from "react";
|
|
1757
|
-
import { jsx as
|
|
1699
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1758
1700
|
var Component3 = React5.forwardRef(function IconButtonComponent(props, reference) {
|
|
1759
|
-
return /* @__PURE__ */
|
|
1701
|
+
return /* @__PURE__ */ jsx15(IconButton3, { ref: reference, component: "a", ...props });
|
|
1760
1702
|
});
|
|
1761
1703
|
var CreatedComponent3 = createLink3(Component3);
|
|
1762
1704
|
var RouterIconButton = (props) => {
|
|
1763
|
-
return /* @__PURE__ */
|
|
1705
|
+
return /* @__PURE__ */ jsx15(CreatedComponent3, { ...props });
|
|
1764
1706
|
};
|
|
1765
1707
|
|
|
1766
1708
|
// src/components/router/RouterLink.tsx
|
|
1767
1709
|
import { Link } from "@mui/material";
|
|
1768
1710
|
import { createLink as createLink4 } from "@tanstack/react-router";
|
|
1769
1711
|
import React6 from "react";
|
|
1770
|
-
import { jsx as
|
|
1712
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1771
1713
|
var Component4 = React6.forwardRef(function LinkComponent(props, reference) {
|
|
1772
|
-
return /* @__PURE__ */
|
|
1714
|
+
return /* @__PURE__ */ jsx16(Link, { ref: reference, ...props });
|
|
1773
1715
|
});
|
|
1774
1716
|
var CreatedComponent4 = createLink4(Component4);
|
|
1775
1717
|
var RouterLink = (props) => {
|
|
1776
|
-
return /* @__PURE__ */
|
|
1718
|
+
return /* @__PURE__ */ jsx16(CreatedComponent4, { ...props });
|
|
1777
1719
|
};
|
|
1778
1720
|
|
|
1779
1721
|
// src/components/router/RouterTab.tsx
|
|
1780
1722
|
import { Tab } from "@mui/material";
|
|
1781
1723
|
import { createLink as createLink5 } from "@tanstack/react-router";
|
|
1782
1724
|
import React7 from "react";
|
|
1783
|
-
import { jsx as
|
|
1725
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1784
1726
|
var Component5 = React7.forwardRef(function TabComponent(props, reference) {
|
|
1785
|
-
return /* @__PURE__ */
|
|
1727
|
+
return /* @__PURE__ */ jsx17(Tab, { ref: reference, component: "a", ...props });
|
|
1786
1728
|
});
|
|
1787
1729
|
var CreatedComponent5 = createLink5(Component5);
|
|
1788
1730
|
var RouterTab = (props) => {
|
|
1789
|
-
return /* @__PURE__ */
|
|
1731
|
+
return /* @__PURE__ */ jsx17(CreatedComponent5, { ...props });
|
|
1790
1732
|
};
|
|
1791
1733
|
|
|
1792
1734
|
// src/components/router/RouterListItemButton.tsx
|
|
1793
1735
|
import { ListItemButton as ListItemButton3 } from "@mui/material";
|
|
1794
1736
|
import { createLink as createLink6 } from "@tanstack/react-router";
|
|
1795
1737
|
import React8 from "react";
|
|
1796
|
-
import { jsx as
|
|
1738
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1797
1739
|
var Component6 = React8.forwardRef(function ButtonComponent2(props, reference) {
|
|
1798
|
-
return /* @__PURE__ */
|
|
1740
|
+
return /* @__PURE__ */ jsx18(ListItemButton3, { ref: reference, component: "a", ...props });
|
|
1799
1741
|
});
|
|
1800
1742
|
var CreatedComponent6 = createLink6(Component6);
|
|
1801
1743
|
var RouterListItemButton = (props) => {
|
|
1802
|
-
return /* @__PURE__ */
|
|
1744
|
+
return /* @__PURE__ */ jsx18(CreatedComponent6, { ...props });
|
|
1803
1745
|
};
|
|
1804
1746
|
|
|
1805
1747
|
// src/components/router/RouterNotFound.tsx
|
|
1806
|
-
import { Box as
|
|
1748
|
+
import { Box as Box4, Divider, Typography as Typography4 } from "@mui/material";
|
|
1807
1749
|
import { useTranslation as useTranslation4 } from "react-i18next";
|
|
1808
|
-
import { jsx as
|
|
1750
|
+
import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1809
1751
|
function RouterNotFound() {
|
|
1810
1752
|
const { t: t2 } = useTranslation4();
|
|
1811
|
-
return /* @__PURE__ */
|
|
1812
|
-
/* @__PURE__ */
|
|
1813
|
-
/* @__PURE__ */
|
|
1814
|
-
/* @__PURE__ */
|
|
1753
|
+
return /* @__PURE__ */ jsx19(Box4, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs10(Box4, { display: "flex", alignItems: "center", mb: 4, children: [
|
|
1754
|
+
/* @__PURE__ */ jsx19(Typography4, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
|
|
1755
|
+
/* @__PURE__ */ jsx19(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
|
|
1756
|
+
/* @__PURE__ */ jsx19(Typography4, { variant: "h5", component: "span", children: t2("Layout.ThisPageCouldNotBeFound") })
|
|
1815
1757
|
] }) });
|
|
1816
1758
|
}
|
|
1817
1759
|
|
|
1818
1760
|
// src/components/router/RouterError.tsx
|
|
1819
|
-
import { Box as
|
|
1820
|
-
import { jsx as
|
|
1761
|
+
import { Box as Box5, Divider as Divider2, Typography as Typography5 } from "@mui/material";
|
|
1762
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1821
1763
|
var RouterError = ({ error }) => {
|
|
1822
|
-
return /* @__PURE__ */
|
|
1823
|
-
/* @__PURE__ */
|
|
1824
|
-
/* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
1764
|
+
return /* @__PURE__ */ jsx20(Box5, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs11(Box5, { display: "flex", alignItems: "center", mb: 4, children: [
|
|
1765
|
+
/* @__PURE__ */ jsx20(Typography5, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: error.name || "500" }),
|
|
1766
|
+
/* @__PURE__ */ jsx20(Divider2, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
|
|
1767
|
+
/* @__PURE__ */ jsx20(Typography5, { variant: "h5", component: "span", children: error.message })
|
|
1826
1768
|
] }) });
|
|
1827
1769
|
};
|
|
1828
1770
|
|
|
@@ -2593,15 +2535,14 @@ var AdapterDayjs = class {
|
|
|
2593
2535
|
};
|
|
2594
2536
|
|
|
2595
2537
|
// src/providers/LayoutProvider.tsx
|
|
2596
|
-
import { useEffect as useEffect6 } from "react";
|
|
2538
|
+
import { useEffect as useEffect6, useEffectEvent } from "react";
|
|
2597
2539
|
import { useTranslation as useTranslation7 } from "react-i18next";
|
|
2598
2540
|
import * as z from "zod";
|
|
2599
|
-
import { cs, en } from "zod/locales";
|
|
2600
2541
|
|
|
2601
2542
|
// src/components/core/Layout.tsx
|
|
2602
2543
|
import Menu3 from "@mui/icons-material/Menu";
|
|
2603
2544
|
import MenuOpen from "@mui/icons-material/MenuOpen";
|
|
2604
|
-
import { AppBar, Box as
|
|
2545
|
+
import { AppBar, Box as Box9, CssBaseline, IconButton as IconButton5, InitColorSchemeScript, LinearProgress, Toolbar } from "@mui/material";
|
|
2605
2546
|
import { styled as styled2 } from "@mui/material/styles";
|
|
2606
2547
|
import { useIsFetching, useIsMutating } from "@tanstack/react-query";
|
|
2607
2548
|
import { Fragment as Fragment7 } from "react";
|
|
@@ -2609,7 +2550,7 @@ import useLocalStorageState from "use-local-storage-state";
|
|
|
2609
2550
|
|
|
2610
2551
|
// src/components/core/navigation/NavigationRail.tsx
|
|
2611
2552
|
import { useMediaQuery } from "@mui/material";
|
|
2612
|
-
import
|
|
2553
|
+
import Box7 from "@mui/material/Box";
|
|
2613
2554
|
import Drawer from "@mui/material/Drawer";
|
|
2614
2555
|
import { useTheme as useTheme2 } from "@mui/material/styles";
|
|
2615
2556
|
import { useNavigate, useRouterState as useRouterState2 } from "@tanstack/react-router";
|
|
@@ -2623,7 +2564,7 @@ import { Fragment as Fragment5, useEffect as useEffect5, useState as useState7 }
|
|
|
2623
2564
|
// src/components/core/navigation/NavigationListItem.tsx
|
|
2624
2565
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
2625
2566
|
import Avatar from "@mui/material/Avatar";
|
|
2626
|
-
import
|
|
2567
|
+
import Box6 from "@mui/material/Box";
|
|
2627
2568
|
import Popper from "@mui/material/Popper";
|
|
2628
2569
|
import ListItem from "@mui/material/ListItem";
|
|
2629
2570
|
import ListItemButton4 from "@mui/material/ListItemButton";
|
|
@@ -2631,10 +2572,10 @@ import ListItemIcon3 from "@mui/material/ListItemIcon";
|
|
|
2631
2572
|
import ListItemText3 from "@mui/material/ListItemText";
|
|
2632
2573
|
import Paper2 from "@mui/material/Paper";
|
|
2633
2574
|
import { styled } from "@mui/material/styles";
|
|
2634
|
-
import
|
|
2575
|
+
import Typography6 from "@mui/material/Typography";
|
|
2635
2576
|
import { Fragment as Fragment3, useMemo as useMemo3, useState as useState6 } from "react";
|
|
2636
2577
|
import { Collapse } from "@mui/material";
|
|
2637
|
-
import { Fragment as Fragment4, jsx as
|
|
2578
|
+
import { Fragment as Fragment4, jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2638
2579
|
var ICON_SIZE = 34;
|
|
2639
2580
|
var StyledNavButton = styled(ListItemButton4)(({ theme }) => ({
|
|
2640
2581
|
borderRadius: 8,
|
|
@@ -2678,13 +2619,13 @@ var StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({
|
|
|
2678
2619
|
}));
|
|
2679
2620
|
var IconOrAvatar = ({ item, collapsed }) => {
|
|
2680
2621
|
if (item.icon || collapsed) {
|
|
2681
|
-
return /* @__PURE__ */
|
|
2682
|
-
/* @__PURE__ */
|
|
2622
|
+
return /* @__PURE__ */ jsxs12(Box6, { sx: collapsed ? { position: "absolute", left: "50%", top: "calc(50% - 6px)", transform: "translate(-50%, -50%)" } : {}, children: [
|
|
2623
|
+
/* @__PURE__ */ jsxs12(ListItemIcon3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", minWidth: ICON_SIZE }, children: [
|
|
2683
2624
|
item.icon ?? null,
|
|
2684
|
-
!item.icon && collapsed ? /* @__PURE__ */
|
|
2625
|
+
!item.icon && collapsed ? /* @__PURE__ */ jsx21(Avatar, { sx: { width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }, children: item.title }) : null
|
|
2685
2626
|
] }),
|
|
2686
|
-
collapsed ? /* @__PURE__ */
|
|
2687
|
-
|
|
2627
|
+
collapsed ? /* @__PURE__ */ jsx21(
|
|
2628
|
+
Typography6,
|
|
2688
2629
|
{
|
|
2689
2630
|
variant: "caption",
|
|
2690
2631
|
sx: {
|
|
@@ -2707,7 +2648,7 @@ var IconOrAvatar = ({ item, collapsed }) => {
|
|
|
2707
2648
|
}
|
|
2708
2649
|
return null;
|
|
2709
2650
|
};
|
|
2710
|
-
var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */
|
|
2651
|
+
var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx21(
|
|
2711
2652
|
Popper,
|
|
2712
2653
|
{
|
|
2713
2654
|
open,
|
|
@@ -2718,7 +2659,7 @@ var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx22(
|
|
|
2718
2659
|
{ name: "preventOverflow", options: { padding: 8 } },
|
|
2719
2660
|
{ name: "flip", options: { fallbackPlacements: ["right-end", "left-start"] } }
|
|
2720
2661
|
],
|
|
2721
|
-
children: /* @__PURE__ */
|
|
2662
|
+
children: /* @__PURE__ */ jsx21(
|
|
2722
2663
|
Paper2,
|
|
2723
2664
|
{
|
|
2724
2665
|
sx: {
|
|
@@ -2760,9 +2701,9 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2760
2701
|
disabled,
|
|
2761
2702
|
sx: { px: 1.4, height: collapsed ? 60 : 48 }
|
|
2762
2703
|
};
|
|
2763
|
-
const buttonContent = /* @__PURE__ */
|
|
2764
|
-
/* @__PURE__ */
|
|
2765
|
-
!collapsed && /* @__PURE__ */
|
|
2704
|
+
const buttonContent = /* @__PURE__ */ jsxs12(Fragment4, { children: [
|
|
2705
|
+
/* @__PURE__ */ jsx21(IconOrAvatar, { item, collapsed }),
|
|
2706
|
+
!collapsed && /* @__PURE__ */ jsx21(
|
|
2766
2707
|
ListItemText3,
|
|
2767
2708
|
{
|
|
2768
2709
|
primary: item.title,
|
|
@@ -2770,9 +2711,9 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2770
2711
|
sx: { ml: 1.2, flex: 1, minWidth: 0, "& .MuiTypography-root": { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" } }
|
|
2771
2712
|
}
|
|
2772
2713
|
),
|
|
2773
|
-
item.children ? /* @__PURE__ */
|
|
2714
|
+
item.children ? /* @__PURE__ */ jsx21(ExpandMoreIcon, { sx: chevronSx }) : null
|
|
2774
2715
|
] });
|
|
2775
|
-
const listItem = /* @__PURE__ */
|
|
2716
|
+
const listItem = /* @__PURE__ */ jsxs12(
|
|
2776
2717
|
ListItem,
|
|
2777
2718
|
{
|
|
2778
2719
|
...item.children && collapsed ? {
|
|
@@ -2786,7 +2727,7 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2786
2727
|
} : {},
|
|
2787
2728
|
sx: { py: 0, px: 1, overflowX: "hidden" },
|
|
2788
2729
|
children: [
|
|
2789
|
-
shouldJustExpand ? /* @__PURE__ */
|
|
2730
|
+
shouldJustExpand ? /* @__PURE__ */ jsx21(StyledNavButton, { ...buttonProps, onClick: () => onClick?.(item), children: buttonContent }) : /* @__PURE__ */ jsx21(
|
|
2790
2731
|
StyledRouterButton,
|
|
2791
2732
|
{
|
|
2792
2733
|
...buttonProps,
|
|
@@ -2798,18 +2739,18 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2798
2739
|
children: buttonContent
|
|
2799
2740
|
}
|
|
2800
2741
|
),
|
|
2801
|
-
item.children && collapsed ? /* @__PURE__ */
|
|
2742
|
+
item.children && collapsed ? /* @__PURE__ */ jsx21(MiniPopover, { open: item.title === hoveredPopoverItem, anchorEl: anchorElement, children: renderNested?.(item.children) }) : null
|
|
2802
2743
|
]
|
|
2803
2744
|
}
|
|
2804
2745
|
);
|
|
2805
|
-
return /* @__PURE__ */
|
|
2746
|
+
return /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
2806
2747
|
listItem,
|
|
2807
|
-
item.children && !collapsed ? /* @__PURE__ */
|
|
2748
|
+
item.children && !collapsed ? /* @__PURE__ */ jsx21(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, children: renderNested?.(item.children) }) : null
|
|
2808
2749
|
] }, item.to);
|
|
2809
2750
|
};
|
|
2810
2751
|
|
|
2811
2752
|
// src/components/core/navigation/NavigationList.tsx
|
|
2812
|
-
import { jsx as
|
|
2753
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
2813
2754
|
var isPageItem = (item) => !("kind" in item);
|
|
2814
2755
|
var isDivider = (item) => "kind" in item && item.kind === "divider";
|
|
2815
2756
|
var isHeader = (item) => "kind" in item && item.kind === "header";
|
|
@@ -2819,7 +2760,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2819
2760
|
if (collapsed) setOpenKeys([]);
|
|
2820
2761
|
}, [collapsed]);
|
|
2821
2762
|
const toggleKey = (key) => setOpenKeys((previous) => previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]);
|
|
2822
|
-
const renderNested = (children) => /* @__PURE__ */
|
|
2763
|
+
const renderNested = (children) => /* @__PURE__ */ jsx22(
|
|
2823
2764
|
NavigationList,
|
|
2824
2765
|
{
|
|
2825
2766
|
subNavigation: children,
|
|
@@ -2832,7 +2773,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2832
2773
|
}
|
|
2833
2774
|
);
|
|
2834
2775
|
const filteredNavigation = subNavigation.filter((nav) => !nav.hidden);
|
|
2835
|
-
return /* @__PURE__ */
|
|
2776
|
+
return /* @__PURE__ */ jsx22(
|
|
2836
2777
|
List3,
|
|
2837
2778
|
{
|
|
2838
2779
|
sx: {
|
|
@@ -2845,7 +2786,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2845
2786
|
},
|
|
2846
2787
|
children: filteredNavigation.map((navItem, index) => {
|
|
2847
2788
|
if (isHeader(navItem)) {
|
|
2848
|
-
return /* @__PURE__ */
|
|
2789
|
+
return /* @__PURE__ */ jsx22(
|
|
2849
2790
|
ListSubheader,
|
|
2850
2791
|
{
|
|
2851
2792
|
sx: {
|
|
@@ -2868,13 +2809,13 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2868
2809
|
}
|
|
2869
2810
|
if (isDivider(navItem)) {
|
|
2870
2811
|
const nextItem = filteredNavigation[index + 1];
|
|
2871
|
-
return /* @__PURE__ */
|
|
2812
|
+
return /* @__PURE__ */ jsx22("li", { children: /* @__PURE__ */ jsx22(Divider3, { sx: { mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 } }) }, `divider-${depth}-${index}`);
|
|
2872
2813
|
}
|
|
2873
2814
|
if (!isPageItem(navItem)) return null;
|
|
2874
2815
|
const key = `item-${depth}-${index}`;
|
|
2875
2816
|
const uniqueItemKey = `${depth}-${index}-${navItem.title}`;
|
|
2876
|
-
if (renderItem) return /* @__PURE__ */
|
|
2877
|
-
return /* @__PURE__ */
|
|
2817
|
+
if (renderItem) return /* @__PURE__ */ jsx22(Fragment5, { children: renderItem(navItem, { collapsed: !!collapsed }) }, key);
|
|
2818
|
+
return /* @__PURE__ */ jsx22(
|
|
2878
2819
|
NavigationListItem,
|
|
2879
2820
|
{
|
|
2880
2821
|
item: navItem,
|
|
@@ -2895,7 +2836,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2895
2836
|
};
|
|
2896
2837
|
|
|
2897
2838
|
// src/components/core/navigation/NavigationRail.tsx
|
|
2898
|
-
import { jsx as
|
|
2839
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2899
2840
|
var MINI_WIDTH = 84;
|
|
2900
2841
|
var EXPANDED_WIDTH = 320;
|
|
2901
2842
|
var TOOLBAR_HEIGHT = 64;
|
|
@@ -2904,8 +2845,8 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
2904
2845
|
const routerState = useRouterState2();
|
|
2905
2846
|
const theme = useTheme2();
|
|
2906
2847
|
const showPermanent = useMediaQuery(theme.breakpoints.up("sm"));
|
|
2907
|
-
const drawerContent = (collapsed) => /* @__PURE__ */
|
|
2908
|
-
|
|
2848
|
+
const drawerContent = (collapsed) => /* @__PURE__ */ jsx23(
|
|
2849
|
+
Box7,
|
|
2909
2850
|
{
|
|
2910
2851
|
component: "nav",
|
|
2911
2852
|
sx: {
|
|
@@ -2918,7 +2859,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
2918
2859
|
overflowX: "hidden",
|
|
2919
2860
|
pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2
|
|
2920
2861
|
},
|
|
2921
|
-
children: /* @__PURE__ */
|
|
2862
|
+
children: /* @__PURE__ */ jsx23(
|
|
2922
2863
|
NavigationList,
|
|
2923
2864
|
{
|
|
2924
2865
|
subNavigation: navigation,
|
|
@@ -2934,7 +2875,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
2934
2875
|
}
|
|
2935
2876
|
);
|
|
2936
2877
|
if (showPermanent)
|
|
2937
|
-
return /* @__PURE__ */
|
|
2878
|
+
return /* @__PURE__ */ jsx23(
|
|
2938
2879
|
Drawer,
|
|
2939
2880
|
{
|
|
2940
2881
|
variant: "permanent",
|
|
@@ -2952,7 +2893,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
2952
2893
|
children: drawerContent(!expanded)
|
|
2953
2894
|
}
|
|
2954
2895
|
);
|
|
2955
|
-
return /* @__PURE__ */
|
|
2896
|
+
return /* @__PURE__ */ jsx23(Drawer, { open: expanded, onClose: () => setExpanded(false), children: drawerContent(!expanded) });
|
|
2956
2897
|
};
|
|
2957
2898
|
|
|
2958
2899
|
// src/components/core/ToolbarAccount.tsx
|
|
@@ -2966,41 +2907,30 @@ import Login from "@mui/icons-material/Login";
|
|
|
2966
2907
|
import Logout from "@mui/icons-material/Logout";
|
|
2967
2908
|
import SettingsBrightness from "@mui/icons-material/SettingsBrightness";
|
|
2968
2909
|
import Translate from "@mui/icons-material/Translate";
|
|
2969
|
-
import { Avatar as Avatar2, Box as
|
|
2910
|
+
import { Avatar as Avatar2, Box as Box8, IconButton as IconButton4, List as List4, ListItem as ListItem2, ListItemButton as ListItemButton5, ListItemIcon as ListItemIcon4, ListItemText as ListItemText4, ListSubheader as ListSubheader2, Menu as Menu2, Typography as Typography7, useColorScheme } from "@mui/material";
|
|
2970
2911
|
import { Fragment as Fragment6, useState as useState8 } from "react";
|
|
2971
2912
|
import { useTranslation as useTranslation5 } from "react-i18next";
|
|
2972
|
-
import
|
|
2913
|
+
import Done from "@mui/icons-material/Done";
|
|
2914
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2915
|
+
var capitalize = (value) => value && value.charAt(0).toUpperCase() + value.slice(1);
|
|
2973
2916
|
var ToolbarAccount = () => {
|
|
2974
2917
|
const [anchorElement, setAnchorElement] = useState8();
|
|
2975
2918
|
const [tab, setTab] = useState8("settings");
|
|
2976
2919
|
const open = Boolean(anchorElement);
|
|
2977
2920
|
const { t: t2, i18n } = useTranslation5();
|
|
2978
2921
|
const { mode, setMode } = useColorScheme();
|
|
2979
|
-
const
|
|
2980
|
-
|
|
2981
|
-
|
|
2982
|
-
|
|
2983
|
-
|
|
2984
|
-
|
|
2985
|
-
|
|
2922
|
+
const supportedLanguages = (Array.isArray(i18n.options.supportedLngs) ? i18n.options.supportedLngs : []).filter((lng) => lng !== "cimode");
|
|
2923
|
+
const languageDisplayNames = new Intl.DisplayNames([i18n.language], { type: "language" });
|
|
2924
|
+
const colorModes = [
|
|
2925
|
+
{ mode: "light", icon: LightMode, label: t2("Layout.Light") },
|
|
2926
|
+
{ mode: "dark", icon: DarkMode, label: t2("Layout.Dark") },
|
|
2927
|
+
{ mode: "system", icon: SettingsBrightness, label: t2("Layout.System") }
|
|
2928
|
+
];
|
|
2986
2929
|
const user = {
|
|
2987
2930
|
name: "Dalibor Homola",
|
|
2988
2931
|
employeeId: "C2503017",
|
|
2989
2932
|
department: "IT"
|
|
2990
2933
|
};
|
|
2991
|
-
const getModeText = () => {
|
|
2992
|
-
switch (mode) {
|
|
2993
|
-
case "light": {
|
|
2994
|
-
return t2("Layout.Light");
|
|
2995
|
-
}
|
|
2996
|
-
case "dark": {
|
|
2997
|
-
return t2("Layout.Dark");
|
|
2998
|
-
}
|
|
2999
|
-
default: {
|
|
3000
|
-
return t2("Layout.System");
|
|
3001
|
-
}
|
|
3002
|
-
}
|
|
3003
|
-
};
|
|
3004
2934
|
const usernameInitials = () => {
|
|
3005
2935
|
if (!user.name) return "";
|
|
3006
2936
|
const splittedName = user.name.split(" ");
|
|
@@ -3012,60 +2942,71 @@ var ToolbarAccount = () => {
|
|
|
3012
2942
|
setTimeout(() => setTab("settings"), 300);
|
|
3013
2943
|
};
|
|
3014
2944
|
const changeTab = (newTab) => () => setTab(newTab);
|
|
3015
|
-
const settings = /* @__PURE__ */
|
|
3016
|
-
/* @__PURE__ */
|
|
3017
|
-
/* @__PURE__ */
|
|
3018
|
-
/* @__PURE__ */
|
|
3019
|
-
/* @__PURE__ */
|
|
2945
|
+
const settings = /* @__PURE__ */ jsxs13(List4, { component: "nav", subheader: /* @__PURE__ */ jsx24(ListSubheader2, { sx: { backgroundColor: "transparent" }, children: t2("Layout.Settings") }), children: [
|
|
2946
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
|
|
2947
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Brightness4, {}) }),
|
|
2948
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Appearance"), secondary: colorModes.find((m) => m.mode === mode)?.label }),
|
|
2949
|
+
/* @__PURE__ */ jsx24(ChevronRight, {})
|
|
3020
2950
|
] }),
|
|
3021
|
-
/* @__PURE__ */
|
|
3022
|
-
/* @__PURE__ */
|
|
3023
|
-
/* @__PURE__ */
|
|
3024
|
-
/* @__PURE__ */
|
|
2951
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
|
|
2952
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Translate, {}) }),
|
|
2953
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Language"), secondary: capitalize(languageDisplayNames.of(i18n.language)) }),
|
|
2954
|
+
/* @__PURE__ */ jsx24(ChevronRight, {})
|
|
3025
2955
|
] })
|
|
3026
2956
|
] });
|
|
3027
|
-
const theme = /* @__PURE__ */
|
|
3028
|
-
/* @__PURE__ */
|
|
2957
|
+
const theme = /* @__PURE__ */ jsx24(List4, { subheader: /* @__PURE__ */ jsxs13(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
2958
|
+
/* @__PURE__ */ jsx24(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx24(ArrowBack, { fontSize: "small" }) }),
|
|
3029
2959
|
" ",
|
|
3030
2960
|
t2("Layout.Appearance")
|
|
3031
|
-
] }), children:
|
|
3032
|
-
|
|
3033
|
-
|
|
3034
|
-
|
|
3035
|
-
|
|
3036
|
-
|
|
3037
|
-
|
|
3038
|
-
|
|
3039
|
-
|
|
3040
|
-
|
|
3041
|
-
|
|
3042
|
-
|
|
3043
|
-
|
|
3044
|
-
|
|
3045
|
-
|
|
3046
|
-
|
|
2961
|
+
] }), children: colorModes.map(({ mode: modeValue, icon: Icon, label }) => /* @__PURE__ */ jsxs13(
|
|
2962
|
+
ListItemButton5,
|
|
2963
|
+
{
|
|
2964
|
+
onClick: () => {
|
|
2965
|
+
setMode(modeValue);
|
|
2966
|
+
closeMenu();
|
|
2967
|
+
},
|
|
2968
|
+
selected: mode === modeValue,
|
|
2969
|
+
children: [
|
|
2970
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Icon, {}) }),
|
|
2971
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: label })
|
|
2972
|
+
]
|
|
2973
|
+
},
|
|
2974
|
+
modeValue
|
|
2975
|
+
)) });
|
|
2976
|
+
const language = /* @__PURE__ */ jsx24(List4, { subheader: /* @__PURE__ */ jsxs13(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
2977
|
+
/* @__PURE__ */ jsx24(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx24(ArrowBack, { fontSize: "small" }) }),
|
|
3047
2978
|
" ",
|
|
3048
2979
|
t2("Layout.Language")
|
|
3049
|
-
] }), children:
|
|
3050
|
-
|
|
3051
|
-
|
|
3052
|
-
|
|
3053
|
-
|
|
3054
|
-
|
|
3055
|
-
|
|
3056
|
-
|
|
3057
|
-
|
|
3058
|
-
|
|
3059
|
-
|
|
3060
|
-
|
|
2980
|
+
] }), children: supportedLanguages.map(
|
|
2981
|
+
(languageCode) => /* @__PURE__ */ jsxs13(
|
|
2982
|
+
ListItemButton5,
|
|
2983
|
+
{
|
|
2984
|
+
onClick: () => i18n.changeLanguage(languageCode).finally(() => closeMenu()),
|
|
2985
|
+
selected: i18n.resolvedLanguage === languageCode,
|
|
2986
|
+
children: [
|
|
2987
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: i18n.resolvedLanguage === languageCode && /* @__PURE__ */ jsx24(Done, {}) }),
|
|
2988
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: capitalize(languageDisplayNames.of(languageCode)) })
|
|
2989
|
+
]
|
|
2990
|
+
},
|
|
2991
|
+
languageCode
|
|
2992
|
+
)
|
|
2993
|
+
) });
|
|
2994
|
+
return /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
2995
|
+
/* @__PURE__ */ jsx24(IconButton4, { size: "small", edge: "end", onClick: openMenu, children: user.name ? /* @__PURE__ */ jsx24(Avatar2, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 }, bgcolor: "primary.main" }, children: /* @__PURE__ */ jsx24(Typography7, { variant: "subtitle2", sx: { fontWeight: "bold", lineHeight: 0 }, children: usernameInitials() }) }) : /* @__PURE__ */ jsx24(AccountCircle, { fontSize: "large" }) }),
|
|
2996
|
+
/* @__PURE__ */ jsx24(Menu2, { anchorEl: anchorElement, open, onClose: closeMenu, children: /* @__PURE__ */ jsxs13(Box8, { sx: { width: 240 }, children: [
|
|
2997
|
+
/* @__PURE__ */ jsx24(List4, { children: user.name ? /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
2998
|
+
/* @__PURE__ */ jsx24(ListItem2, { children: /* @__PURE__ */ jsx24(ListItemText4, { primary: user.name, secondary: /* @__PURE__ */ jsxs13("span", { children: [
|
|
2999
|
+
/* @__PURE__ */ jsx24("span", { children: user.employeeId }),
|
|
3000
|
+
/* @__PURE__ */ jsx24("br", {}),
|
|
3001
|
+
/* @__PURE__ */ jsx24("span", { children: user.department })
|
|
3061
3002
|
] }) }) }),
|
|
3062
|
-
/* @__PURE__ */
|
|
3063
|
-
/* @__PURE__ */
|
|
3064
|
-
/* @__PURE__ */
|
|
3003
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: () => console.log("Logout"), children: [
|
|
3004
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Logout, { color: "error" }) }),
|
|
3005
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Logout") })
|
|
3065
3006
|
] })
|
|
3066
|
-
] }) : /* @__PURE__ */
|
|
3067
|
-
/* @__PURE__ */
|
|
3068
|
-
/* @__PURE__ */
|
|
3007
|
+
] }) : /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: () => console.log("Login"), children: [
|
|
3008
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Login, { color: "success" }) }),
|
|
3009
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.LogIn") })
|
|
3069
3010
|
] }) }),
|
|
3070
3011
|
tab === "settings" && settings,
|
|
3071
3012
|
tab === "theme" && theme,
|
|
@@ -3075,7 +3016,7 @@ var ToolbarAccount = () => {
|
|
|
3075
3016
|
};
|
|
3076
3017
|
|
|
3077
3018
|
// src/components/core/Layout.tsx
|
|
3078
|
-
import { jsx as
|
|
3019
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3079
3020
|
var DrawerHeader = styled2("div")(({ theme }) => ({
|
|
3080
3021
|
display: "flex",
|
|
3081
3022
|
alignItems: "center",
|
|
@@ -3087,11 +3028,11 @@ var Layout = (props) => {
|
|
|
3087
3028
|
const [navigationOpen, setNavigationOpen] = useLocalStorageState("navigationOpen", { defaultServerValue: false });
|
|
3088
3029
|
const isFetching = !!useIsFetching();
|
|
3089
3030
|
const isMutating = !!useIsMutating();
|
|
3090
|
-
return /* @__PURE__ */
|
|
3091
|
-
/* @__PURE__ */
|
|
3092
|
-
/* @__PURE__ */
|
|
3093
|
-
/* @__PURE__ */
|
|
3094
|
-
/* @__PURE__ */
|
|
3031
|
+
return /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
3032
|
+
/* @__PURE__ */ jsx25(InitColorSchemeScript, {}),
|
|
3033
|
+
/* @__PURE__ */ jsx25(CssBaseline, {}),
|
|
3034
|
+
/* @__PURE__ */ jsxs14(Box9, { sx: { display: "flex", height: "100dvh", maxHeight: "100dvh", overflow: "hidden", width: "100%" }, children: [
|
|
3035
|
+
/* @__PURE__ */ jsx25(
|
|
3095
3036
|
AppBar,
|
|
3096
3037
|
{
|
|
3097
3038
|
color: "transparent",
|
|
@@ -3101,27 +3042,27 @@ var Layout = (props) => {
|
|
|
3101
3042
|
borderColor: theme.vars?.palette.divider,
|
|
3102
3043
|
boxShadow: "none"
|
|
3103
3044
|
}),
|
|
3104
|
-
children: /* @__PURE__ */
|
|
3105
|
-
props.navigation && /* @__PURE__ */
|
|
3045
|
+
children: /* @__PURE__ */ jsxs14(Toolbar, { children: [
|
|
3046
|
+
props.navigation && /* @__PURE__ */ jsx25(
|
|
3106
3047
|
IconButton5,
|
|
3107
3048
|
{
|
|
3108
3049
|
onClick: () => setNavigationOpen((previous) => !previous),
|
|
3109
3050
|
sx: { marginRight: 2 },
|
|
3110
|
-
children: navigationOpen ? /* @__PURE__ */
|
|
3051
|
+
children: navigationOpen ? /* @__PURE__ */ jsx25(MenuOpen, {}) : /* @__PURE__ */ jsx25(Menu3, {})
|
|
3111
3052
|
}
|
|
3112
3053
|
),
|
|
3113
|
-
/* @__PURE__ */
|
|
3114
|
-
/* @__PURE__ */
|
|
3054
|
+
/* @__PURE__ */ jsx25(AppTitle, {}),
|
|
3055
|
+
/* @__PURE__ */ jsx25(ToolbarAccount, {})
|
|
3115
3056
|
] })
|
|
3116
3057
|
}
|
|
3117
3058
|
),
|
|
3118
|
-
props.navigation && /* @__PURE__ */
|
|
3119
|
-
/* @__PURE__ */
|
|
3120
|
-
/* @__PURE__ */
|
|
3121
|
-
/* @__PURE__ */
|
|
3059
|
+
props.navigation && /* @__PURE__ */ jsx25(NavigationRail, { navigation: props.navigation, expanded: navigationOpen ?? false, setExpanded: setNavigationOpen }),
|
|
3060
|
+
/* @__PURE__ */ jsxs14(Box9, { component: "main", sx: { flexGrow: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%", overflow: "hidden" }, children: [
|
|
3061
|
+
/* @__PURE__ */ jsx25(DrawerHeader, {}),
|
|
3062
|
+
/* @__PURE__ */ jsx25(Box9, { sx: { flex: 1, overflow: "auto", position: "relative" }, children: props.children })
|
|
3122
3063
|
] })
|
|
3123
3064
|
] }),
|
|
3124
|
-
(isFetching || isMutating) && /* @__PURE__ */
|
|
3065
|
+
(isFetching || isMutating) && /* @__PURE__ */ jsx25(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
|
|
3125
3066
|
] });
|
|
3126
3067
|
};
|
|
3127
3068
|
|
|
@@ -3882,6 +3823,30 @@ var useGetTheme = (theme) => {
|
|
|
3882
3823
|
};
|
|
3883
3824
|
}
|
|
3884
3825
|
},
|
|
3826
|
+
MuiDataGrid: {
|
|
3827
|
+
styleOverrides: {
|
|
3828
|
+
root: ({ theme: muiTheme }) => ({
|
|
3829
|
+
"& .MuiDataGrid-cell--editing": {
|
|
3830
|
+
"& .MuiInputBase-root": {
|
|
3831
|
+
height: "100%"
|
|
3832
|
+
}
|
|
3833
|
+
},
|
|
3834
|
+
"& .MuiDataGrid-columnHeaderTitle": {
|
|
3835
|
+
fontWeight: 600
|
|
3836
|
+
},
|
|
3837
|
+
"& .Mui-error": {
|
|
3838
|
+
backgroundColor: muiTheme.palette.error.main,
|
|
3839
|
+
color: muiTheme.palette.error.contrastText
|
|
3840
|
+
},
|
|
3841
|
+
"& .MuiDataGrid-booleanCell[data-value='true']": {
|
|
3842
|
+
color: `${muiTheme.palette.success.main} !important`
|
|
3843
|
+
},
|
|
3844
|
+
"& .MuiDataGrid-booleanCell[data-value='false']": {
|
|
3845
|
+
color: `${muiTheme.palette.error.main} !important`
|
|
3846
|
+
}
|
|
3847
|
+
})
|
|
3848
|
+
}
|
|
3849
|
+
},
|
|
3885
3850
|
...theme?.components
|
|
3886
3851
|
}
|
|
3887
3852
|
},
|
|
@@ -3893,7 +3858,7 @@ var useGetTheme = (theme) => {
|
|
|
3893
3858
|
|
|
3894
3859
|
// src/providers/DialogsProvider.tsx
|
|
3895
3860
|
import { useCallback, useId, useMemo as useMemo4, useRef as useRef3, useState as useState9 } from "react";
|
|
3896
|
-
import { jsx as
|
|
3861
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3897
3862
|
function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
3898
3863
|
const [stack, setStack] = useState9([]);
|
|
3899
3864
|
const keyPrefix = useId();
|
|
@@ -3945,9 +3910,9 @@ function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
|
3945
3910
|
return dialog;
|
|
3946
3911
|
});
|
|
3947
3912
|
const contextValue = useMemo4(() => ({ open: requestDialog, close: closeDialog }), [requestDialog, closeDialog]);
|
|
3948
|
-
return /* @__PURE__ */
|
|
3913
|
+
return /* @__PURE__ */ jsxs15(DialogsContext.Provider, { value: contextValue, children: [
|
|
3949
3914
|
children,
|
|
3950
|
-
stack.map(({ key, open, Component: Component7, payload, promise }) => /* @__PURE__ */
|
|
3915
|
+
stack.map(({ key, open, Component: Component7, payload, promise }) => /* @__PURE__ */ jsx26(
|
|
3951
3916
|
Component7,
|
|
3952
3917
|
{
|
|
3953
3918
|
payload,
|
|
@@ -3962,21 +3927,21 @@ function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
|
3962
3927
|
}
|
|
3963
3928
|
|
|
3964
3929
|
// src/providers/LayoutProvider.tsx
|
|
3965
|
-
import { jsx as
|
|
3930
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
3966
3931
|
var LayoutProvider = ({ navigation, theme, children }) => {
|
|
3967
3932
|
const { i18n } = useTranslation7();
|
|
3968
3933
|
const createdTheme = useGetTheme(theme);
|
|
3934
|
+
const languageChangedHandler = useEffectEvent(() => {
|
|
3935
|
+
z.config(z.core.locales[i18n.resolvedLanguage]());
|
|
3936
|
+
});
|
|
3969
3937
|
useEffect6(() => {
|
|
3970
|
-
|
|
3971
|
-
|
|
3972
|
-
};
|
|
3973
|
-
handler();
|
|
3974
|
-
i18n.on("languageChanged", handler);
|
|
3938
|
+
languageChangedHandler();
|
|
3939
|
+
i18n.on("languageChanged", languageChangedHandler);
|
|
3975
3940
|
return () => {
|
|
3976
|
-
i18n.off("languageChanged",
|
|
3941
|
+
i18n.off("languageChanged", languageChangedHandler);
|
|
3977
3942
|
};
|
|
3978
3943
|
}, []);
|
|
3979
|
-
return /* @__PURE__ */
|
|
3944
|
+
return /* @__PURE__ */ jsx27(ThemeProvider, { theme: createdTheme, children: /* @__PURE__ */ jsx27(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: i18n.resolvedLanguage, children: /* @__PURE__ */ jsx27(DialogsProvider, { children: /* @__PURE__ */ jsx27(Layout, { navigation, children }) }) }) });
|
|
3980
3945
|
};
|
|
3981
3946
|
|
|
3982
3947
|
// src/index.ts
|
|
@@ -3998,11 +3963,11 @@ var getFieldStatus = (field) => {
|
|
|
3998
3963
|
};
|
|
3999
3964
|
|
|
4000
3965
|
// src/components/form/FormAutocomplete.tsx
|
|
4001
|
-
import { jsx as
|
|
3966
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
4002
3967
|
var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
4003
3968
|
const field = useFieldContext();
|
|
4004
3969
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4005
|
-
return /* @__PURE__ */
|
|
3970
|
+
return /* @__PURE__ */ jsx28(
|
|
4006
3971
|
Autocomplete,
|
|
4007
3972
|
{
|
|
4008
3973
|
value: field.state.value,
|
|
@@ -4011,7 +3976,7 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
|
4011
3976
|
onBlur: field.handleBlur,
|
|
4012
3977
|
"aria-label": field.name,
|
|
4013
3978
|
...autocompleteProps,
|
|
4014
|
-
renderInput: (parameters) => /* @__PURE__ */
|
|
3979
|
+
renderInput: (parameters) => /* @__PURE__ */ jsx28(
|
|
4015
3980
|
TextField,
|
|
4016
3981
|
{
|
|
4017
3982
|
...parameters,
|
|
@@ -4027,15 +3992,15 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
|
4027
3992
|
|
|
4028
3993
|
// src/components/form/FormCheckbox.tsx
|
|
4029
3994
|
import { Checkbox, FormControl, FormControlLabel, FormHelperText } from "@mui/material";
|
|
4030
|
-
import { jsx as
|
|
3995
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4031
3996
|
var FormCheckbox = (props) => {
|
|
4032
3997
|
const field = useFieldContext();
|
|
4033
3998
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4034
|
-
return /* @__PURE__ */
|
|
4035
|
-
/* @__PURE__ */
|
|
3999
|
+
return /* @__PURE__ */ jsxs16(FormControl, { component: "fieldset", children: [
|
|
4000
|
+
/* @__PURE__ */ jsx29(
|
|
4036
4001
|
FormControlLabel,
|
|
4037
4002
|
{
|
|
4038
|
-
control: /* @__PURE__ */
|
|
4003
|
+
control: /* @__PURE__ */ jsx29(
|
|
4039
4004
|
Checkbox,
|
|
4040
4005
|
{
|
|
4041
4006
|
name: field.name,
|
|
@@ -4049,18 +4014,18 @@ var FormCheckbox = (props) => {
|
|
|
4049
4014
|
label: props.label ?? ""
|
|
4050
4015
|
}
|
|
4051
4016
|
),
|
|
4052
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4017
|
+
isTouched && hasError && /* @__PURE__ */ jsx29(FormHelperText, { error: hasError, children: helperText })
|
|
4053
4018
|
] });
|
|
4054
4019
|
};
|
|
4055
4020
|
|
|
4056
4021
|
// src/components/form/FormDatePicker.tsx
|
|
4057
4022
|
import { DatePicker } from "@mui/x-date-pickers-pro";
|
|
4058
4023
|
import dayjs2 from "dayjs";
|
|
4059
|
-
import { jsx as
|
|
4024
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
4060
4025
|
var FormDatePicker = (props) => {
|
|
4061
4026
|
const field = useFieldContext();
|
|
4062
4027
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4063
|
-
return /* @__PURE__ */
|
|
4028
|
+
return /* @__PURE__ */ jsx30(
|
|
4064
4029
|
DatePicker,
|
|
4065
4030
|
{
|
|
4066
4031
|
name: field.name,
|
|
@@ -4084,11 +4049,11 @@ var FormDatePicker = (props) => {
|
|
|
4084
4049
|
// src/components/form/FormDateTimePicker.tsx
|
|
4085
4050
|
import { DateTimePicker } from "@mui/x-date-pickers-pro";
|
|
4086
4051
|
import dayjs3 from "dayjs";
|
|
4087
|
-
import { jsx as
|
|
4052
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
4088
4053
|
var FormDateTimePicker = (props) => {
|
|
4089
4054
|
const field = useFieldContext();
|
|
4090
4055
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4091
|
-
return /* @__PURE__ */
|
|
4056
|
+
return /* @__PURE__ */ jsx31(
|
|
4092
4057
|
DateTimePicker,
|
|
4093
4058
|
{
|
|
4094
4059
|
name: field.name,
|
|
@@ -4112,11 +4077,11 @@ var FormDateTimePicker = (props) => {
|
|
|
4112
4077
|
// src/components/form/FormNumberField.tsx
|
|
4113
4078
|
import { TextField as TextField2 } from "@mui/material";
|
|
4114
4079
|
import { NumericFormat } from "react-number-format";
|
|
4115
|
-
import { jsx as
|
|
4080
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
4116
4081
|
var FormNumberField = ({ options, ...props }) => {
|
|
4117
4082
|
const field = useFieldContext();
|
|
4118
4083
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4119
|
-
return /* @__PURE__ */
|
|
4084
|
+
return /* @__PURE__ */ jsx32(
|
|
4120
4085
|
NumericFormat,
|
|
4121
4086
|
{
|
|
4122
4087
|
customInput: TextField2,
|
|
@@ -4135,13 +4100,13 @@ var FormNumberField = ({ options, ...props }) => {
|
|
|
4135
4100
|
|
|
4136
4101
|
// src/components/form/FormRadioGroup.tsx
|
|
4137
4102
|
import { FormControl as FormControl2, FormControlLabel as FormControlLabel2, FormHelperText as FormHelperText2, FormLabel, Radio, RadioGroup } from "@mui/material";
|
|
4138
|
-
import { jsx as
|
|
4103
|
+
import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4139
4104
|
var FormRadioGroup = ({ label, options, ...props }) => {
|
|
4140
4105
|
const field = useFieldContext();
|
|
4141
4106
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4142
|
-
return /* @__PURE__ */
|
|
4143
|
-
label && /* @__PURE__ */
|
|
4144
|
-
/* @__PURE__ */
|
|
4107
|
+
return /* @__PURE__ */ jsxs17(FormControl2, { component: "fieldset", children: [
|
|
4108
|
+
label && /* @__PURE__ */ jsx33(FormLabel, { component: "legend", children: label }),
|
|
4109
|
+
/* @__PURE__ */ jsx33(
|
|
4145
4110
|
RadioGroup,
|
|
4146
4111
|
{
|
|
4147
4112
|
name: field.name,
|
|
@@ -4150,30 +4115,30 @@ var FormRadioGroup = ({ label, options, ...props }) => {
|
|
|
4150
4115
|
onBlur: field.handleBlur,
|
|
4151
4116
|
"aria-label": field.name,
|
|
4152
4117
|
...props,
|
|
4153
|
-
children: options.map((option) => /* @__PURE__ */
|
|
4118
|
+
children: options.map((option) => /* @__PURE__ */ jsx33(
|
|
4154
4119
|
FormControlLabel2,
|
|
4155
4120
|
{
|
|
4156
4121
|
value: option.value,
|
|
4157
|
-
control: /* @__PURE__ */
|
|
4122
|
+
control: /* @__PURE__ */ jsx33(Radio, {}),
|
|
4158
4123
|
label: option.label
|
|
4159
4124
|
},
|
|
4160
4125
|
option.value
|
|
4161
4126
|
))
|
|
4162
4127
|
}
|
|
4163
4128
|
),
|
|
4164
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4129
|
+
isTouched && hasError && /* @__PURE__ */ jsx33(FormHelperText2, { error: hasError, children: helperText })
|
|
4165
4130
|
] });
|
|
4166
4131
|
};
|
|
4167
4132
|
|
|
4168
4133
|
// src/components/form/FormSlider.tsx
|
|
4169
4134
|
import { FormControl as FormControl3, FormHelperText as FormHelperText3, FormLabel as FormLabel2, Slider } from "@mui/material";
|
|
4170
|
-
import { jsx as
|
|
4135
|
+
import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4171
4136
|
var FormSlider = ({ label, ...props }) => {
|
|
4172
4137
|
const field = useFieldContext();
|
|
4173
4138
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4174
|
-
return /* @__PURE__ */
|
|
4175
|
-
label && /* @__PURE__ */
|
|
4176
|
-
/* @__PURE__ */
|
|
4139
|
+
return /* @__PURE__ */ jsxs18(FormControl3, { component: "fieldset", children: [
|
|
4140
|
+
label && /* @__PURE__ */ jsx34(FormLabel2, { children: label }),
|
|
4141
|
+
/* @__PURE__ */ jsx34(
|
|
4177
4142
|
Slider,
|
|
4178
4143
|
{
|
|
4179
4144
|
name: field.name,
|
|
@@ -4184,13 +4149,13 @@ var FormSlider = ({ label, ...props }) => {
|
|
|
4184
4149
|
...props
|
|
4185
4150
|
}
|
|
4186
4151
|
),
|
|
4187
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4152
|
+
isTouched && hasError && /* @__PURE__ */ jsx34(FormHelperText3, { error: hasError, children: helperText })
|
|
4188
4153
|
] });
|
|
4189
4154
|
};
|
|
4190
4155
|
|
|
4191
4156
|
// src/components/form/FormSubmitButton.tsx
|
|
4192
4157
|
import { Button as Button3 } from "@mui/material";
|
|
4193
|
-
import { jsx as
|
|
4158
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4194
4159
|
var FormSubmitButton = (props) => {
|
|
4195
4160
|
const form = useFormContext();
|
|
4196
4161
|
const handleClick = (event) => {
|
|
@@ -4198,7 +4163,7 @@ var FormSubmitButton = (props) => {
|
|
|
4198
4163
|
event.stopPropagation();
|
|
4199
4164
|
form.handleSubmit();
|
|
4200
4165
|
};
|
|
4201
|
-
return /* @__PURE__ */
|
|
4166
|
+
return /* @__PURE__ */ jsx35(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => /* @__PURE__ */ jsx35(
|
|
4202
4167
|
Button3,
|
|
4203
4168
|
{
|
|
4204
4169
|
loading: isSubmitting,
|
|
@@ -4213,15 +4178,15 @@ var FormSubmitButton = (props) => {
|
|
|
4213
4178
|
|
|
4214
4179
|
// src/components/form/FormSwitch.tsx
|
|
4215
4180
|
import { FormControl as FormControl4, FormControlLabel as FormControlLabel3, FormHelperText as FormHelperText4, Switch } from "@mui/material";
|
|
4216
|
-
import { jsx as
|
|
4181
|
+
import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4217
4182
|
var FormSwitch = (props) => {
|
|
4218
4183
|
const field = useFieldContext();
|
|
4219
4184
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4220
|
-
return /* @__PURE__ */
|
|
4221
|
-
/* @__PURE__ */
|
|
4185
|
+
return /* @__PURE__ */ jsxs19(FormControl4, { component: "fieldset", children: [
|
|
4186
|
+
/* @__PURE__ */ jsx36(
|
|
4222
4187
|
FormControlLabel3,
|
|
4223
4188
|
{
|
|
4224
|
-
control: /* @__PURE__ */
|
|
4189
|
+
control: /* @__PURE__ */ jsx36(
|
|
4225
4190
|
Switch,
|
|
4226
4191
|
{
|
|
4227
4192
|
name: field.name,
|
|
@@ -4235,17 +4200,17 @@ var FormSwitch = (props) => {
|
|
|
4235
4200
|
label: props.label ?? ""
|
|
4236
4201
|
}
|
|
4237
4202
|
),
|
|
4238
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4203
|
+
isTouched && hasError && /* @__PURE__ */ jsx36(FormHelperText4, { error: hasError, children: helperText })
|
|
4239
4204
|
] });
|
|
4240
4205
|
};
|
|
4241
4206
|
|
|
4242
4207
|
// src/components/form/FormTextField.tsx
|
|
4243
4208
|
import { TextField as TextField3 } from "@mui/material";
|
|
4244
|
-
import { jsx as
|
|
4209
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4245
4210
|
var FormTextField = (props) => {
|
|
4246
4211
|
const field = useFieldContext();
|
|
4247
4212
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4248
|
-
return /* @__PURE__ */
|
|
4213
|
+
return /* @__PURE__ */ jsx37(
|
|
4249
4214
|
TextField3,
|
|
4250
4215
|
{
|
|
4251
4216
|
name: field.name,
|
|
@@ -4290,8 +4255,8 @@ export {
|
|
|
4290
4255
|
Dropzone,
|
|
4291
4256
|
EditableColumnHeader,
|
|
4292
4257
|
FileViewer,
|
|
4258
|
+
Fullscreen,
|
|
4293
4259
|
LayoutProvider,
|
|
4294
|
-
PageHeader,
|
|
4295
4260
|
Platform,
|
|
4296
4261
|
RouterButton,
|
|
4297
4262
|
RouterError,
|
|
@@ -4301,7 +4266,6 @@ export {
|
|
|
4301
4266
|
RouterListItemButton,
|
|
4302
4267
|
RouterNotFound,
|
|
4303
4268
|
RouterTab,
|
|
4304
|
-
TableContainer,
|
|
4305
4269
|
TypographyWithIcon,
|
|
4306
4270
|
rootRouteHead,
|
|
4307
4271
|
t,
|