wcz-test 4.6.12 → 4.8.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 +360 -373
- package/dist/index.js.map +1 -1
- package/package.json +10 -11
package/dist/index.js
CHANGED
|
@@ -1038,21 +1038,11 @@ var TypographyWithIcon = ({ startIcon, endIcon, children, sx, gutterBottom, ...p
|
|
|
1038
1038
|
] });
|
|
1039
1039
|
};
|
|
1040
1040
|
|
|
1041
|
-
// src/components/core/
|
|
1042
|
-
import { Box
|
|
1043
|
-
import { jsx as jsx2, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
1044
|
-
var PageHeader = ({ title, action, sx }) => {
|
|
1045
|
-
return /* @__PURE__ */ jsxs2(Stack2, { direction: "row", justifyContent: "space-between", alignItems: "center", sx: { py: 2, ...sx }, children: [
|
|
1046
|
-
/* @__PURE__ */ jsx2(Typography2, { variant: "h4", fontWeight: 600, children: title }),
|
|
1047
|
-
action && /* @__PURE__ */ jsx2(Box, { children: action })
|
|
1048
|
-
] });
|
|
1049
|
-
};
|
|
1050
|
-
|
|
1051
|
-
// src/components/core/TableContainer.tsx
|
|
1052
|
-
import { Box as Box2 } from "@mui/material";
|
|
1041
|
+
// src/components/core/Fullscreen.tsx
|
|
1042
|
+
import { Box } from "@mui/material";
|
|
1053
1043
|
import { useEffect, useRef, useState } from "react";
|
|
1054
|
-
import { jsx as
|
|
1055
|
-
var
|
|
1044
|
+
import { jsx as jsx2 } from "react/jsx-runtime";
|
|
1045
|
+
var Fullscreen = ({ children, sx, ...props }) => {
|
|
1056
1046
|
const reference = useRef(null);
|
|
1057
1047
|
const [height, setHeight] = useState();
|
|
1058
1048
|
useEffect(() => {
|
|
@@ -1075,8 +1065,8 @@ var TableContainer = ({ children, sx, ...props }) => {
|
|
|
1075
1065
|
ro.disconnect();
|
|
1076
1066
|
};
|
|
1077
1067
|
}, []);
|
|
1078
|
-
return /* @__PURE__ */
|
|
1079
|
-
|
|
1068
|
+
return /* @__PURE__ */ jsx2(
|
|
1069
|
+
Box,
|
|
1080
1070
|
{
|
|
1081
1071
|
ref: reference,
|
|
1082
1072
|
sx: {
|
|
@@ -1084,43 +1074,26 @@ var TableContainer = ({ children, sx, ...props }) => {
|
|
|
1084
1074
|
flexDirection: "column",
|
|
1085
1075
|
minHeight: 0,
|
|
1086
1076
|
width: "100%",
|
|
1077
|
+
overflow: "auto",
|
|
1087
1078
|
...sx
|
|
1088
1079
|
},
|
|
1089
1080
|
height,
|
|
1090
1081
|
...props,
|
|
1091
|
-
children: /* @__PURE__ */
|
|
1082
|
+
children: /* @__PURE__ */ jsx2(Box, { sx: {
|
|
1092
1083
|
flex: 1,
|
|
1093
1084
|
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 })
|
|
1085
|
+
height: "100%"
|
|
1086
|
+
}, children })
|
|
1114
1087
|
}
|
|
1115
1088
|
);
|
|
1116
1089
|
};
|
|
1117
1090
|
|
|
1118
1091
|
// src/components/file/Dropzone.tsx
|
|
1119
1092
|
import CloudUpload from "@mui/icons-material/CloudUpload";
|
|
1120
|
-
import { Paper, Typography as
|
|
1093
|
+
import { Paper, Typography as Typography2, useTheme } from "@mui/material";
|
|
1121
1094
|
import { useDropzone } from "react-dropzone";
|
|
1122
1095
|
import { useTranslation } from "react-i18next";
|
|
1123
|
-
import { jsx as
|
|
1096
|
+
import { jsx as jsx3, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
1124
1097
|
var baseStyle = {
|
|
1125
1098
|
flex: 1,
|
|
1126
1099
|
display: "flex",
|
|
@@ -1144,10 +1117,10 @@ var Dropzone = ({ sx, ...props }) => {
|
|
|
1144
1117
|
...isDragAccept ? { borderColor: theme.palette.success.main } : {},
|
|
1145
1118
|
...isDragReject ? { borderColor: theme.palette.error.main } : {}
|
|
1146
1119
|
};
|
|
1147
|
-
return /* @__PURE__ */
|
|
1148
|
-
/* @__PURE__ */
|
|
1149
|
-
/* @__PURE__ */
|
|
1150
|
-
/* @__PURE__ */
|
|
1120
|
+
return /* @__PURE__ */ jsxs2(Paper, { variant: "outlined", ...getRootProps({ style }), sx, children: [
|
|
1121
|
+
/* @__PURE__ */ jsx3("input", { ...getInputProps(), style: { display: "none" } }),
|
|
1122
|
+
/* @__PURE__ */ jsx3(CloudUpload, {}),
|
|
1123
|
+
/* @__PURE__ */ jsx3(Typography2, { children: t2("Layout.File.DragSomeFilesHereOrClickToSelectThem") })
|
|
1151
1124
|
] });
|
|
1152
1125
|
};
|
|
1153
1126
|
|
|
@@ -1156,7 +1129,7 @@ import { useState as useState5 } from "react";
|
|
|
1156
1129
|
|
|
1157
1130
|
// src/components/file/fileViewer/FileViewerGrid.tsx
|
|
1158
1131
|
import MoreVert from "@mui/icons-material/MoreVert";
|
|
1159
|
-
import { Box as
|
|
1132
|
+
import { Box as Box2, IconButton, ImageListItem, ImageListItemBar, Stack as Stack3, Tooltip } from "@mui/material";
|
|
1160
1133
|
import { grey } from "@mui/material/colors";
|
|
1161
1134
|
import { Fragment, useEffect as useEffect2, useState as useState3 } from "react";
|
|
1162
1135
|
|
|
@@ -1187,23 +1160,23 @@ import { createContext as createContext2 } from "react";
|
|
|
1187
1160
|
var DialogsContext = createContext2({});
|
|
1188
1161
|
|
|
1189
1162
|
// src/hooks/DialogsHooks.tsx
|
|
1190
|
-
import { jsx as
|
|
1163
|
+
import { jsx as jsx4, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1191
1164
|
function AlertDialog({ open, payload, onClose }) {
|
|
1192
1165
|
const { t: t2 } = useTranslation2();
|
|
1193
|
-
return /* @__PURE__ */
|
|
1194
|
-
/* @__PURE__ */
|
|
1195
|
-
/* @__PURE__ */
|
|
1196
|
-
/* @__PURE__ */
|
|
1166
|
+
return /* @__PURE__ */ jsxs3(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(), disableRestoreFocus: true, children: [
|
|
1167
|
+
/* @__PURE__ */ jsx4(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Alert") }),
|
|
1168
|
+
/* @__PURE__ */ jsx4(DialogContent, { children: payload.message }),
|
|
1169
|
+
/* @__PURE__ */ jsx4(DialogActions, { children: /* @__PURE__ */ jsx4(Button, { onClick: () => onClose(), autoFocus: true, children: t2("Layout.Dialog.Confirm") }) })
|
|
1197
1170
|
] });
|
|
1198
1171
|
}
|
|
1199
1172
|
function ConfirmDialog({ open, payload, onClose }) {
|
|
1200
1173
|
const { t: t2 } = useTranslation2();
|
|
1201
|
-
return /* @__PURE__ */
|
|
1202
|
-
/* @__PURE__ */
|
|
1203
|
-
/* @__PURE__ */
|
|
1204
|
-
/* @__PURE__ */
|
|
1205
|
-
/* @__PURE__ */
|
|
1206
|
-
/* @__PURE__ */
|
|
1174
|
+
return /* @__PURE__ */ jsxs3(Dialog, { maxWidth: "xs", fullWidth: true, open, onClose: () => onClose(false), disableRestoreFocus: true, children: [
|
|
1175
|
+
/* @__PURE__ */ jsx4(DialogTitle, { children: payload.title ?? t2("Layout.Dialog.Confirm") }),
|
|
1176
|
+
/* @__PURE__ */ jsx4(DialogContent, { children: payload.message }),
|
|
1177
|
+
/* @__PURE__ */ jsxs3(DialogActions, { children: [
|
|
1178
|
+
/* @__PURE__ */ jsx4(Button, { onClick: () => onClose(false), children: payload.cancelText ?? t2("Layout.Dialog.Cancel") }),
|
|
1179
|
+
/* @__PURE__ */ jsx4(Button, { onClick: () => onClose(true), autoFocus: true, children: t2("Layout.Dialog.Confirm") })
|
|
1207
1180
|
] })
|
|
1208
1181
|
] });
|
|
1209
1182
|
}
|
|
@@ -1226,15 +1199,15 @@ import { Upload as TusUpload } from "tus-js-client";
|
|
|
1226
1199
|
import { uuidv7 } from "uuidv7";
|
|
1227
1200
|
|
|
1228
1201
|
// src/components/core/AppTitle.tsx
|
|
1229
|
-
import { Chip, Stack as
|
|
1202
|
+
import { Chip, Stack as Stack2, Typography as Typography3 } from "@mui/material";
|
|
1230
1203
|
import { useRouterState } from "@tanstack/react-router";
|
|
1231
|
-
import { jsx as
|
|
1204
|
+
import { jsx as jsx5, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1232
1205
|
var AppTitle = () => {
|
|
1233
1206
|
const title = useAppTitle();
|
|
1234
|
-
return /* @__PURE__ */
|
|
1235
|
-
/* @__PURE__ */
|
|
1236
|
-
/* @__PURE__ */
|
|
1237
|
-
import.meta.env.DEV && /* @__PURE__ */
|
|
1207
|
+
return /* @__PURE__ */ jsxs4(Stack2, { direction: "row", alignItems: "center", spacing: 2, flexGrow: 1, children: [
|
|
1208
|
+
/* @__PURE__ */ jsx5("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
|
|
1209
|
+
/* @__PURE__ */ jsx5(Typography3, { variant: "h6", children: title }),
|
|
1210
|
+
import.meta.env.DEV && /* @__PURE__ */ jsx5(Chip, { size: "small", label: "TEST", color: "info" })
|
|
1238
1211
|
] });
|
|
1239
1212
|
};
|
|
1240
1213
|
var useAppTitle = () => {
|
|
@@ -1274,7 +1247,7 @@ var rootRouteHead = ({ title }) => () => ({
|
|
|
1274
1247
|
{ rel: "apple-touch-icon", sizes: "180x180", href: "/apple-touch-icon.png" },
|
|
1275
1248
|
{ rel: "icon", type: "image/png", sizes: "32x32", href: "/favicon-32x32.png" },
|
|
1276
1249
|
{ rel: "icon", type: "image/png", sizes: "16x16", href: "/favicon-16x16.png" },
|
|
1277
|
-
{ rel: "manifest", href: "/
|
|
1250
|
+
{ rel: "manifest", href: "/manifest" },
|
|
1278
1251
|
{ rel: "icon", href: "/favicon.ico" }
|
|
1279
1252
|
]
|
|
1280
1253
|
});
|
|
@@ -1446,7 +1419,7 @@ var useUploadFile = ({ subId, onSuccess, onError }) => {
|
|
|
1446
1419
|
};
|
|
1447
1420
|
|
|
1448
1421
|
// src/components/file/fileViewer/common/ActionsMenu.tsx
|
|
1449
|
-
import { jsx as
|
|
1422
|
+
import { jsx as jsx6, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1450
1423
|
var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
1451
1424
|
const { t: t2 } = useTranslation3();
|
|
1452
1425
|
const { fileMetas, onDelete, actions } = useFile();
|
|
@@ -1470,7 +1443,7 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
|
1470
1443
|
onDelete({ remainingFileMetas, deletedFileMeta: meta });
|
|
1471
1444
|
}
|
|
1472
1445
|
};
|
|
1473
|
-
return /* @__PURE__ */
|
|
1446
|
+
return /* @__PURE__ */ jsx6(
|
|
1474
1447
|
Menu,
|
|
1475
1448
|
{
|
|
1476
1449
|
open: menu !== null,
|
|
@@ -1478,14 +1451,14 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
|
1478
1451
|
anchorReference: "anchorPosition",
|
|
1479
1452
|
variant: "menu",
|
|
1480
1453
|
anchorPosition: menu === null ? void 0 : { top: menu.mouseY, left: menu.mouseX },
|
|
1481
|
-
children: /* @__PURE__ */
|
|
1482
|
-
actions?.download !== false && /* @__PURE__ */
|
|
1483
|
-
/* @__PURE__ */
|
|
1484
|
-
/* @__PURE__ */
|
|
1454
|
+
children: /* @__PURE__ */ jsxs5(List, { disablePadding: true, children: [
|
|
1455
|
+
actions?.download !== false && /* @__PURE__ */ jsxs5(ListItemButton, { onClick: handleOnDownload, disabled: isDownloading, children: [
|
|
1456
|
+
/* @__PURE__ */ jsx6(ListItemIcon, { children: /* @__PURE__ */ jsx6(FileDownload, {}) }),
|
|
1457
|
+
/* @__PURE__ */ jsx6(ListItemText, { children: t2("Layout.File.Download") })
|
|
1485
1458
|
] }),
|
|
1486
|
-
actions?.delete !== false && /* @__PURE__ */
|
|
1487
|
-
/* @__PURE__ */
|
|
1488
|
-
/* @__PURE__ */
|
|
1459
|
+
actions?.delete !== false && /* @__PURE__ */ jsxs5(ListItemButton, { onClick: handleOnDelete, disabled: isDeleting, children: [
|
|
1460
|
+
/* @__PURE__ */ jsx6(ListItemIcon, { children: /* @__PURE__ */ jsx6(Delete, {}) }),
|
|
1461
|
+
/* @__PURE__ */ jsx6(ListItemText, { children: t2("Layout.File.Delete") })
|
|
1489
1462
|
] })
|
|
1490
1463
|
] })
|
|
1491
1464
|
}
|
|
@@ -1493,11 +1466,11 @@ var ActionsMenu = ({ meta, menu, setMenu }) => {
|
|
|
1493
1466
|
};
|
|
1494
1467
|
|
|
1495
1468
|
// src/components/file/fileViewer/FileViewerGrid.tsx
|
|
1496
|
-
import { jsx as
|
|
1469
|
+
import { jsx as jsx7, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1497
1470
|
var IMAGE_SIZE = 150;
|
|
1498
1471
|
var FileViewerGrid = ({ sx, size, itemBar }) => {
|
|
1499
1472
|
const { fileMetas } = useFile();
|
|
1500
|
-
return /* @__PURE__ */
|
|
1473
|
+
return /* @__PURE__ */ jsx7(Stack3, { direction: "row", spacing: 1, sx: { overflow: "auto", ...sx }, children: fileMetas.map((fileMeta) => /* @__PURE__ */ jsx7(
|
|
1501
1474
|
GridFileViewerItem,
|
|
1502
1475
|
{
|
|
1503
1476
|
meta: fileMeta,
|
|
@@ -1539,10 +1512,10 @@ var GridFileViewerItem = ({ meta, size, itemBar }) => {
|
|
|
1539
1512
|
}
|
|
1540
1513
|
}
|
|
1541
1514
|
};
|
|
1542
|
-
return /* @__PURE__ */
|
|
1543
|
-
/* @__PURE__ */
|
|
1544
|
-
/* @__PURE__ */
|
|
1545
|
-
|
|
1515
|
+
return /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1516
|
+
/* @__PURE__ */ jsxs6(ImageListItem, { sx: { width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }, onMouseEnter: handleOnMouseEnter, onMouseLeave: handleOnMouseLeave, children: [
|
|
1517
|
+
/* @__PURE__ */ jsx7(
|
|
1518
|
+
Box2,
|
|
1546
1519
|
{
|
|
1547
1520
|
component: "img",
|
|
1548
1521
|
src: source,
|
|
@@ -1552,15 +1525,15 @@ var GridFileViewerItem = ({ meta, size, itemBar }) => {
|
|
|
1552
1525
|
sx: { cursor: "pointer", objectFit: "contain", width: size ?? IMAGE_SIZE, height: size ?? IMAGE_SIZE }
|
|
1553
1526
|
}
|
|
1554
1527
|
),
|
|
1555
|
-
itemBar !== "hidden" && showItemBar && /* @__PURE__ */
|
|
1528
|
+
itemBar !== "hidden" && showItemBar && /* @__PURE__ */ jsx7(
|
|
1556
1529
|
ImageListItemBar,
|
|
1557
1530
|
{
|
|
1558
|
-
title: /* @__PURE__ */
|
|
1559
|
-
actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1531
|
+
title: /* @__PURE__ */ jsx7(Tooltip, { title: meta.fileName, children: /* @__PURE__ */ jsx7(Box2, { children: meta.fileName }) }),
|
|
1532
|
+
actionIcon: (actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx7(IconButton, { sx: { color: grey[100] }, onClick: openMenu, children: /* @__PURE__ */ jsx7(MoreVert, {}) })
|
|
1560
1533
|
}
|
|
1561
1534
|
)
|
|
1562
1535
|
] }),
|
|
1563
|
-
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1536
|
+
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx7(ActionsMenu, { meta, menu, setMenu })
|
|
1564
1537
|
] });
|
|
1565
1538
|
};
|
|
1566
1539
|
|
|
@@ -1571,11 +1544,11 @@ import MoreVert2 from "@mui/icons-material/MoreVert";
|
|
|
1571
1544
|
import SmartDisplay from "@mui/icons-material/SmartDisplay";
|
|
1572
1545
|
import { IconButton as IconButton2, List as List2, ListItemButton as ListItemButton2, ListItemIcon as ListItemIcon2, ListItemText as ListItemText2 } from "@mui/material";
|
|
1573
1546
|
import { Fragment as Fragment2, useState as useState4 } from "react";
|
|
1574
|
-
import { jsx as
|
|
1547
|
+
import { jsx as jsx8, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
1575
1548
|
var FileViewerList = ({ sx }) => {
|
|
1576
1549
|
const { fileMetas } = useFile();
|
|
1577
|
-
return /* @__PURE__ */
|
|
1578
|
-
(fileMeta) => /* @__PURE__ */
|
|
1550
|
+
return /* @__PURE__ */ jsx8(List2, { dense: true, sx, children: fileMetas.map(
|
|
1551
|
+
(fileMeta) => /* @__PURE__ */ jsx8(
|
|
1579
1552
|
ListFileViewerItem,
|
|
1580
1553
|
{
|
|
1581
1554
|
meta: fileMeta
|
|
@@ -1612,31 +1585,31 @@ var ListFileViewerItem = ({ meta }) => {
|
|
|
1612
1585
|
const icon = () => {
|
|
1613
1586
|
switch (meta.mediaType) {
|
|
1614
1587
|
case "image": {
|
|
1615
|
-
return /* @__PURE__ */
|
|
1588
|
+
return /* @__PURE__ */ jsx8(Image, {});
|
|
1616
1589
|
}
|
|
1617
1590
|
case "video": {
|
|
1618
|
-
return /* @__PURE__ */
|
|
1591
|
+
return /* @__PURE__ */ jsx8(SmartDisplay, {});
|
|
1619
1592
|
}
|
|
1620
1593
|
default: {
|
|
1621
|
-
return /* @__PURE__ */
|
|
1594
|
+
return /* @__PURE__ */ jsx8(AttachFile, {});
|
|
1622
1595
|
}
|
|
1623
1596
|
}
|
|
1624
1597
|
};
|
|
1625
|
-
return /* @__PURE__ */
|
|
1626
|
-
/* @__PURE__ */
|
|
1627
|
-
/* @__PURE__ */
|
|
1628
|
-
/* @__PURE__ */
|
|
1629
|
-
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1598
|
+
return /* @__PURE__ */ jsxs7(Fragment2, { children: [
|
|
1599
|
+
/* @__PURE__ */ jsxs7(ListItemButton2, { onClick, children: [
|
|
1600
|
+
/* @__PURE__ */ jsx8(ListItemIcon2, { children: icon() }),
|
|
1601
|
+
/* @__PURE__ */ jsx8(ListItemText2, { primary: `${meta.fileName}.${meta.fileExtension}` }),
|
|
1602
|
+
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(IconButton2, { edge: "end", onClick: openMenu, children: /* @__PURE__ */ jsx8(MoreVert2, {}) })
|
|
1630
1603
|
] }, meta.id),
|
|
1631
|
-
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */
|
|
1604
|
+
(actions?.download !== false || actions.delete !== false) && /* @__PURE__ */ jsx8(ActionsMenu, { meta, menu, setMenu })
|
|
1632
1605
|
] });
|
|
1633
1606
|
};
|
|
1634
1607
|
|
|
1635
1608
|
// src/components/file/fileViewer/ImageViewer.tsx
|
|
1636
1609
|
import Close from "@mui/icons-material/Close";
|
|
1637
|
-
import { Box as
|
|
1610
|
+
import { Box as Box3, Dialog as Dialog2, Fab } from "@mui/material";
|
|
1638
1611
|
import { useEffect as useEffect3 } from "react";
|
|
1639
|
-
import { jsx as
|
|
1612
|
+
import { jsx as jsx9, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
1640
1613
|
var ImageViewer = ({ metaId }) => {
|
|
1641
1614
|
const { fileMetas, setImageId } = useFile();
|
|
1642
1615
|
const meta = fileMetas.find((m) => m.id === metaId);
|
|
@@ -1679,28 +1652,28 @@ var ImageViewer = ({ metaId }) => {
|
|
|
1679
1652
|
};
|
|
1680
1653
|
const onClose = () => setImageId("");
|
|
1681
1654
|
if (!metaId) return null;
|
|
1682
|
-
return /* @__PURE__ */
|
|
1683
|
-
/* @__PURE__ */
|
|
1684
|
-
/* @__PURE__ */
|
|
1655
|
+
return /* @__PURE__ */ jsxs8(Dialog2, { open: true, onClose, maxWidth: "xl", children: [
|
|
1656
|
+
/* @__PURE__ */ jsx9(Box3, { component: "img", src: source, alt: metaId, sx: { maxWidth: "100vw", maxHeight: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" } } }),
|
|
1657
|
+
/* @__PURE__ */ jsx9(Fab, { size: "medium", onClick: onClose, sx: { position: "fixed", top: 8, right: 8 }, children: /* @__PURE__ */ jsx9(Close, {}) })
|
|
1685
1658
|
] });
|
|
1686
1659
|
};
|
|
1687
1660
|
|
|
1688
1661
|
// src/components/file/FileViewer.tsx
|
|
1689
|
-
import { jsx as
|
|
1662
|
+
import { jsx as jsx10, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
1690
1663
|
var FileViewer = ({ subId, onDelete, actions, children }) => {
|
|
1691
1664
|
const { data: fileMetas = [] } = useGetFileMetas(subId, { enabled: !!subId });
|
|
1692
1665
|
const [imageId, setImageId] = useState5("");
|
|
1693
1666
|
const components = { Grid: FileViewerGrid, List: FileViewerList };
|
|
1694
1667
|
if (fileMetas.length === 0) return null;
|
|
1695
|
-
return /* @__PURE__ */
|
|
1668
|
+
return /* @__PURE__ */ jsxs9(FileContext.Provider, { value: { fileMetas, onDelete, actions, setImageId }, children: [
|
|
1696
1669
|
children(components),
|
|
1697
|
-
/* @__PURE__ */
|
|
1670
|
+
/* @__PURE__ */ jsx10(ImageViewer, { metaId: imageId })
|
|
1698
1671
|
] });
|
|
1699
1672
|
};
|
|
1700
1673
|
|
|
1701
1674
|
// src/components/data-grid/ChipInputCell.tsx
|
|
1702
|
-
import { Chip as Chip2, Stack as
|
|
1703
|
-
import { jsx as
|
|
1675
|
+
import { Chip as Chip2, Stack as Stack4 } from "@mui/material";
|
|
1676
|
+
import { jsx as jsx11 } from "react/jsx-runtime";
|
|
1704
1677
|
var isArray = (value) => Array.isArray(value);
|
|
1705
1678
|
var ChipInputCell = ({ params, slotProps, getLabel }) => {
|
|
1706
1679
|
if (!params.value) return null;
|
|
@@ -1709,123 +1682,126 @@ var ChipInputCell = ({ params, slotProps, getLabel }) => {
|
|
|
1709
1682
|
return value;
|
|
1710
1683
|
};
|
|
1711
1684
|
if (isArray(params.value))
|
|
1712
|
-
return /* @__PURE__ */
|
|
1713
|
-
(value, index) => /* @__PURE__ */
|
|
1685
|
+
return /* @__PURE__ */ jsx11(Stack4, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map(
|
|
1686
|
+
(value, index) => /* @__PURE__ */ jsx11(Chip2, { label: getLabelValue(value), ...slotProps }, `${index + 1}-chip-input-cell`)
|
|
1714
1687
|
) });
|
|
1715
|
-
return /* @__PURE__ */
|
|
1688
|
+
return /* @__PURE__ */ jsx11(Chip2, { label: getLabelValue(params.value), ...slotProps });
|
|
1716
1689
|
};
|
|
1717
1690
|
|
|
1718
1691
|
// src/components/data-grid/EditableColumnHeader.tsx
|
|
1719
1692
|
import Edit from "@mui/icons-material/Edit";
|
|
1720
|
-
import { jsx as
|
|
1693
|
+
import { jsx as jsx12 } from "react/jsx-runtime";
|
|
1721
1694
|
var EditableColumnHeader = ({ colDef }) => {
|
|
1722
|
-
return /* @__PURE__ */
|
|
1695
|
+
return /* @__PURE__ */ jsx12(TypographyWithIcon, { endIcon: /* @__PURE__ */ jsx12(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
|
|
1723
1696
|
};
|
|
1724
1697
|
|
|
1725
1698
|
// src/components/router/RouterButton.tsx
|
|
1726
1699
|
import { Button as Button2 } from "@mui/material";
|
|
1727
1700
|
import { createLink } from "@tanstack/react-router";
|
|
1728
1701
|
import React3 from "react";
|
|
1729
|
-
import { jsx as
|
|
1702
|
+
import { jsx as jsx13 } from "react/jsx-runtime";
|
|
1730
1703
|
var Component = React3.forwardRef(function ButtonComponent(props, reference) {
|
|
1731
|
-
return /* @__PURE__ */
|
|
1704
|
+
return /* @__PURE__ */ jsx13(Button2, { ref: reference, component: "a", ...props });
|
|
1732
1705
|
});
|
|
1733
1706
|
var CreatedComponent = createLink(Component);
|
|
1734
1707
|
var RouterButton = (props) => {
|
|
1735
|
-
return /* @__PURE__ */
|
|
1708
|
+
return /* @__PURE__ */ jsx13(CreatedComponent, { ...props });
|
|
1736
1709
|
};
|
|
1737
1710
|
|
|
1738
1711
|
// src/components/router/RouterGridActionsCellItem.tsx
|
|
1739
1712
|
import { GridActionsCellItem } from "@mui/x-data-grid-premium";
|
|
1740
1713
|
import { createLink as createLink2 } from "@tanstack/react-router";
|
|
1741
1714
|
import React4 from "react";
|
|
1742
|
-
import { jsx as
|
|
1715
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
1743
1716
|
var Component2 = React4.forwardRef(
|
|
1744
1717
|
function GridActionsCellItemComponent(props, reference) {
|
|
1745
|
-
return /* @__PURE__ */
|
|
1718
|
+
return /* @__PURE__ */ jsx14(GridActionsCellItem, { ref: reference, component: "a", ...props });
|
|
1746
1719
|
}
|
|
1747
1720
|
);
|
|
1748
1721
|
var CreatedComponent2 = createLink2(Component2);
|
|
1749
1722
|
var RouterGridActionsCellItem = (props) => {
|
|
1750
|
-
return /* @__PURE__ */
|
|
1723
|
+
return /* @__PURE__ */ jsx14(CreatedComponent2, { ...props });
|
|
1751
1724
|
};
|
|
1752
1725
|
|
|
1753
1726
|
// src/components/router/RouterIconButton.tsx
|
|
1754
1727
|
import { IconButton as IconButton3 } from "@mui/material";
|
|
1755
1728
|
import { createLink as createLink3 } from "@tanstack/react-router";
|
|
1756
1729
|
import React5 from "react";
|
|
1757
|
-
import { jsx as
|
|
1730
|
+
import { jsx as jsx15 } from "react/jsx-runtime";
|
|
1758
1731
|
var Component3 = React5.forwardRef(function IconButtonComponent(props, reference) {
|
|
1759
|
-
return /* @__PURE__ */
|
|
1732
|
+
return /* @__PURE__ */ jsx15(IconButton3, { ref: reference, component: "a", ...props });
|
|
1760
1733
|
});
|
|
1761
1734
|
var CreatedComponent3 = createLink3(Component3);
|
|
1762
1735
|
var RouterIconButton = (props) => {
|
|
1763
|
-
return /* @__PURE__ */
|
|
1736
|
+
return /* @__PURE__ */ jsx15(CreatedComponent3, { ...props });
|
|
1764
1737
|
};
|
|
1765
1738
|
|
|
1766
1739
|
// src/components/router/RouterLink.tsx
|
|
1767
1740
|
import { Link } from "@mui/material";
|
|
1768
1741
|
import { createLink as createLink4 } from "@tanstack/react-router";
|
|
1769
1742
|
import React6 from "react";
|
|
1770
|
-
import { jsx as
|
|
1743
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
1771
1744
|
var Component4 = React6.forwardRef(function LinkComponent(props, reference) {
|
|
1772
|
-
return /* @__PURE__ */
|
|
1745
|
+
return /* @__PURE__ */ jsx16(Link, { ref: reference, ...props });
|
|
1773
1746
|
});
|
|
1774
1747
|
var CreatedComponent4 = createLink4(Component4);
|
|
1775
1748
|
var RouterLink = (props) => {
|
|
1776
|
-
return /* @__PURE__ */
|
|
1749
|
+
return /* @__PURE__ */ jsx16(CreatedComponent4, { ...props });
|
|
1777
1750
|
};
|
|
1778
1751
|
|
|
1779
1752
|
// src/components/router/RouterTab.tsx
|
|
1780
1753
|
import { Tab } from "@mui/material";
|
|
1781
1754
|
import { createLink as createLink5 } from "@tanstack/react-router";
|
|
1782
1755
|
import React7 from "react";
|
|
1783
|
-
import { jsx as
|
|
1756
|
+
import { jsx as jsx17 } from "react/jsx-runtime";
|
|
1784
1757
|
var Component5 = React7.forwardRef(function TabComponent(props, reference) {
|
|
1785
|
-
return /* @__PURE__ */
|
|
1758
|
+
return /* @__PURE__ */ jsx17(Tab, { ref: reference, component: "a", ...props });
|
|
1786
1759
|
});
|
|
1787
1760
|
var CreatedComponent5 = createLink5(Component5);
|
|
1788
1761
|
var RouterTab = (props) => {
|
|
1789
|
-
return /* @__PURE__ */
|
|
1762
|
+
return /* @__PURE__ */ jsx17(CreatedComponent5, { ...props });
|
|
1790
1763
|
};
|
|
1791
1764
|
|
|
1792
1765
|
// src/components/router/RouterListItemButton.tsx
|
|
1793
1766
|
import { ListItemButton as ListItemButton3 } from "@mui/material";
|
|
1794
1767
|
import { createLink as createLink6 } from "@tanstack/react-router";
|
|
1795
1768
|
import React8 from "react";
|
|
1796
|
-
import { jsx as
|
|
1769
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
1797
1770
|
var Component6 = React8.forwardRef(function ButtonComponent2(props, reference) {
|
|
1798
|
-
return /* @__PURE__ */
|
|
1771
|
+
return /* @__PURE__ */ jsx18(ListItemButton3, { ref: reference, component: "a", ...props });
|
|
1799
1772
|
});
|
|
1800
1773
|
var CreatedComponent6 = createLink6(Component6);
|
|
1801
1774
|
var RouterListItemButton = (props) => {
|
|
1802
|
-
return /* @__PURE__ */
|
|
1775
|
+
return /* @__PURE__ */ jsx18(CreatedComponent6, { ...props });
|
|
1803
1776
|
};
|
|
1804
1777
|
|
|
1805
1778
|
// src/components/router/RouterNotFound.tsx
|
|
1806
|
-
import { Box as
|
|
1779
|
+
import { Box as Box4, Divider, Typography as Typography4 } from "@mui/material";
|
|
1807
1780
|
import { useTranslation as useTranslation4 } from "react-i18next";
|
|
1808
|
-
import { jsx as
|
|
1781
|
+
import { jsx as jsx19, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
1809
1782
|
function RouterNotFound() {
|
|
1810
1783
|
const { t: t2 } = useTranslation4();
|
|
1811
|
-
return /* @__PURE__ */
|
|
1812
|
-
/* @__PURE__ */
|
|
1813
|
-
/* @__PURE__ */
|
|
1814
|
-
/* @__PURE__ */
|
|
1784
|
+
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: [
|
|
1785
|
+
/* @__PURE__ */ jsx19(Typography4, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
|
|
1786
|
+
/* @__PURE__ */ jsx19(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
|
|
1787
|
+
/* @__PURE__ */ jsx19(Typography4, { variant: "h5", component: "span", children: t2("Layout.ThisPageCouldNotBeFound") })
|
|
1815
1788
|
] }) });
|
|
1816
1789
|
}
|
|
1817
1790
|
|
|
1818
1791
|
// src/components/router/RouterError.tsx
|
|
1819
|
-
import { Box as
|
|
1820
|
-
import { jsx as
|
|
1792
|
+
import { Box as Box5, Divider as Divider2, Typography as Typography5 } from "@mui/material";
|
|
1793
|
+
import { jsx as jsx20, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
1821
1794
|
var RouterError = ({ error }) => {
|
|
1822
|
-
return /* @__PURE__ */
|
|
1823
|
-
/* @__PURE__ */
|
|
1824
|
-
/* @__PURE__ */
|
|
1825
|
-
/* @__PURE__ */
|
|
1795
|
+
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: [
|
|
1796
|
+
/* @__PURE__ */ jsx20(Typography5, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: error.name || "500" }),
|
|
1797
|
+
/* @__PURE__ */ jsx20(Divider2, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
|
|
1798
|
+
/* @__PURE__ */ jsx20(Typography5, { variant: "h5", component: "span", children: error.message })
|
|
1826
1799
|
] }) });
|
|
1827
1800
|
};
|
|
1828
1801
|
|
|
1802
|
+
// src/providers/LayoutProvider.tsx
|
|
1803
|
+
import { ThemeProvider } from "@mui/material";
|
|
1804
|
+
|
|
1829
1805
|
// node_modules/@babel/runtime/helpers/esm/extends.js
|
|
1830
1806
|
function _extends() {
|
|
1831
1807
|
return _extends = Object.assign ? Object.assign.bind() : function(n) {
|
|
@@ -2591,97 +2567,14 @@ var AdapterDayjs = class {
|
|
|
2591
2567
|
|
|
2592
2568
|
// src/providers/LayoutProvider.tsx
|
|
2593
2569
|
import { useEffect as useEffect6 } from "react";
|
|
2570
|
+
import { useTranslation as useTranslation7 } from "react-i18next";
|
|
2594
2571
|
import * as z from "zod";
|
|
2595
2572
|
import { cs, en } from "zod/locales";
|
|
2596
2573
|
|
|
2597
|
-
// src/providers/DialogsProvider.tsx
|
|
2598
|
-
import { useCallback, useId, useMemo as useMemo3, useRef as useRef3, useState as useState6 } from "react";
|
|
2599
|
-
import { jsx as jsx22, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
2600
|
-
function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
2601
|
-
const [stack, setStack] = useState6([]);
|
|
2602
|
-
const keyPrefix = useId();
|
|
2603
|
-
const nextId = useRef3(0);
|
|
2604
|
-
const dialogMetadata = useRef3(/* @__PURE__ */ new WeakMap());
|
|
2605
|
-
const requestDialog = useEventCallback_default(function open(Component7, payload, options = {}) {
|
|
2606
|
-
const { onClose = async () => {
|
|
2607
|
-
} } = options;
|
|
2608
|
-
let resolve;
|
|
2609
|
-
const promise = new Promise((resolveImpl) => {
|
|
2610
|
-
resolve = resolveImpl;
|
|
2611
|
-
});
|
|
2612
|
-
const key = `${keyPrefix}-${nextId.current}`;
|
|
2613
|
-
nextId.current += 1;
|
|
2614
|
-
const newEntry = {
|
|
2615
|
-
key,
|
|
2616
|
-
open: true,
|
|
2617
|
-
promise,
|
|
2618
|
-
Component: Component7,
|
|
2619
|
-
payload,
|
|
2620
|
-
onClose,
|
|
2621
|
-
resolve
|
|
2622
|
-
};
|
|
2623
|
-
dialogMetadata.current.set(promise, newEntry);
|
|
2624
|
-
setStack((previousStack) => [...previousStack, newEntry]);
|
|
2625
|
-
return promise;
|
|
2626
|
-
});
|
|
2627
|
-
const removeDialogFromStack = useCallback((dialog) => {
|
|
2628
|
-
setStack((previousStack) => previousStack.filter((entry) => entry.promise !== dialog));
|
|
2629
|
-
dialogMetadata.current.delete(dialog);
|
|
2630
|
-
}, []);
|
|
2631
|
-
const closeDialogUi = useEventCallback_default(function closeDialogUi2(dialog) {
|
|
2632
|
-
setStack(
|
|
2633
|
-
(previousStack) => previousStack.map((entry) => entry.promise === dialog ? { ...entry, open: false } : entry)
|
|
2634
|
-
);
|
|
2635
|
-
setTimeout(() => removeDialogFromStack(dialog), unmountAfter);
|
|
2636
|
-
});
|
|
2637
|
-
const closeDialog = useEventCallback_default(async function closeDialog2(dialog, result) {
|
|
2638
|
-
const entryToClose = dialogMetadata.current.get(dialog);
|
|
2639
|
-
if (!entryToClose) {
|
|
2640
|
-
throw new Error("Dialog not found in stack");
|
|
2641
|
-
}
|
|
2642
|
-
try {
|
|
2643
|
-
await entryToClose.onClose(result);
|
|
2644
|
-
} finally {
|
|
2645
|
-
entryToClose.resolve(result);
|
|
2646
|
-
closeDialogUi(dialog);
|
|
2647
|
-
}
|
|
2648
|
-
return dialog;
|
|
2649
|
-
});
|
|
2650
|
-
const contextValue = useMemo3(() => ({ open: requestDialog, close: closeDialog }), [requestDialog, closeDialog]);
|
|
2651
|
-
return /* @__PURE__ */ jsxs13(DialogsContext.Provider, { value: contextValue, children: [
|
|
2652
|
-
children,
|
|
2653
|
-
stack.map(({ key, open, Component: Component7, payload, promise }) => /* @__PURE__ */ jsx22(
|
|
2654
|
-
Component7,
|
|
2655
|
-
{
|
|
2656
|
-
payload,
|
|
2657
|
-
open,
|
|
2658
|
-
onClose: async (result) => {
|
|
2659
|
-
await closeDialog(promise, result);
|
|
2660
|
-
}
|
|
2661
|
-
},
|
|
2662
|
-
key
|
|
2663
|
-
))
|
|
2664
|
-
] });
|
|
2665
|
-
}
|
|
2666
|
-
|
|
2667
|
-
// src/providers/LayoutProvider.tsx
|
|
2668
|
-
import { ThemeProvider } from "@mui/material";
|
|
2669
|
-
|
|
2670
|
-
// src/utils/i18n.ts
|
|
2671
|
-
import i18n from "i18next";
|
|
2672
|
-
import LanguageDetector from "i18next-browser-languagedetector";
|
|
2673
|
-
import HttpBackend from "i18next-http-backend";
|
|
2674
|
-
import { initReactI18next } from "react-i18next";
|
|
2675
|
-
import { default as default2 } from "i18next";
|
|
2676
|
-
i18n.use(HttpBackend).use(LanguageDetector).use(initReactI18next).init({
|
|
2677
|
-
fallbackLng: "en",
|
|
2678
|
-
interpolation: { escapeValue: false }
|
|
2679
|
-
});
|
|
2680
|
-
|
|
2681
2574
|
// src/components/core/Layout.tsx
|
|
2682
2575
|
import Menu3 from "@mui/icons-material/Menu";
|
|
2683
2576
|
import MenuOpen from "@mui/icons-material/MenuOpen";
|
|
2684
|
-
import { AppBar, Box as
|
|
2577
|
+
import { AppBar, Box as Box9, CssBaseline, IconButton as IconButton5, InitColorSchemeScript, LinearProgress, Toolbar } from "@mui/material";
|
|
2685
2578
|
import { styled as styled2 } from "@mui/material/styles";
|
|
2686
2579
|
import { useIsFetching, useIsMutating } from "@tanstack/react-query";
|
|
2687
2580
|
import { Fragment as Fragment7 } from "react";
|
|
@@ -2689,7 +2582,7 @@ import useLocalStorageState from "use-local-storage-state";
|
|
|
2689
2582
|
|
|
2690
2583
|
// src/components/core/navigation/NavigationRail.tsx
|
|
2691
2584
|
import { useMediaQuery } from "@mui/material";
|
|
2692
|
-
import
|
|
2585
|
+
import Box7 from "@mui/material/Box";
|
|
2693
2586
|
import Drawer from "@mui/material/Drawer";
|
|
2694
2587
|
import { useTheme as useTheme2 } from "@mui/material/styles";
|
|
2695
2588
|
import { useNavigate, useRouterState as useRouterState2 } from "@tanstack/react-router";
|
|
@@ -2698,12 +2591,12 @@ import { useNavigate, useRouterState as useRouterState2 } from "@tanstack/react-
|
|
|
2698
2591
|
import Divider3 from "@mui/material/Divider";
|
|
2699
2592
|
import List3 from "@mui/material/List";
|
|
2700
2593
|
import ListSubheader from "@mui/material/ListSubheader";
|
|
2701
|
-
import { Fragment as Fragment5, useEffect as useEffect5, useState as
|
|
2594
|
+
import { Fragment as Fragment5, useEffect as useEffect5, useState as useState7 } from "react";
|
|
2702
2595
|
|
|
2703
2596
|
// src/components/core/navigation/NavigationListItem.tsx
|
|
2704
2597
|
import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
|
|
2705
2598
|
import Avatar from "@mui/material/Avatar";
|
|
2706
|
-
import
|
|
2599
|
+
import Box6 from "@mui/material/Box";
|
|
2707
2600
|
import Popper from "@mui/material/Popper";
|
|
2708
2601
|
import ListItem from "@mui/material/ListItem";
|
|
2709
2602
|
import ListItemButton4 from "@mui/material/ListItemButton";
|
|
@@ -2711,10 +2604,10 @@ import ListItemIcon3 from "@mui/material/ListItemIcon";
|
|
|
2711
2604
|
import ListItemText3 from "@mui/material/ListItemText";
|
|
2712
2605
|
import Paper2 from "@mui/material/Paper";
|
|
2713
2606
|
import { styled } from "@mui/material/styles";
|
|
2714
|
-
import
|
|
2715
|
-
import { Fragment as Fragment3, useMemo as
|
|
2607
|
+
import Typography6 from "@mui/material/Typography";
|
|
2608
|
+
import { Fragment as Fragment3, useMemo as useMemo3, useState as useState6 } from "react";
|
|
2716
2609
|
import { Collapse } from "@mui/material";
|
|
2717
|
-
import { Fragment as Fragment4, jsx as
|
|
2610
|
+
import { Fragment as Fragment4, jsx as jsx21, jsxs as jsxs12 } from "react/jsx-runtime";
|
|
2718
2611
|
var ICON_SIZE = 34;
|
|
2719
2612
|
var StyledNavButton = styled(ListItemButton4)(({ theme }) => ({
|
|
2720
2613
|
borderRadius: 8,
|
|
@@ -2758,13 +2651,13 @@ var StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({
|
|
|
2758
2651
|
}));
|
|
2759
2652
|
var IconOrAvatar = ({ item, collapsed }) => {
|
|
2760
2653
|
if (item.icon || collapsed) {
|
|
2761
|
-
return /* @__PURE__ */
|
|
2762
|
-
/* @__PURE__ */
|
|
2654
|
+
return /* @__PURE__ */ jsxs12(Box6, { sx: collapsed ? { position: "absolute", left: "50%", top: "calc(50% - 6px)", transform: "translate(-50%, -50%)" } : {}, children: [
|
|
2655
|
+
/* @__PURE__ */ jsxs12(ListItemIcon3, { sx: { display: "flex", alignItems: "center", justifyContent: "center", minWidth: ICON_SIZE }, children: [
|
|
2763
2656
|
item.icon ?? null,
|
|
2764
|
-
!item.icon && collapsed ? /* @__PURE__ */
|
|
2657
|
+
!item.icon && collapsed ? /* @__PURE__ */ jsx21(Avatar, { sx: { width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }, children: item.title }) : null
|
|
2765
2658
|
] }),
|
|
2766
|
-
collapsed ? /* @__PURE__ */
|
|
2767
|
-
|
|
2659
|
+
collapsed ? /* @__PURE__ */ jsx21(
|
|
2660
|
+
Typography6,
|
|
2768
2661
|
{
|
|
2769
2662
|
variant: "caption",
|
|
2770
2663
|
sx: {
|
|
@@ -2787,7 +2680,7 @@ var IconOrAvatar = ({ item, collapsed }) => {
|
|
|
2787
2680
|
}
|
|
2788
2681
|
return null;
|
|
2789
2682
|
};
|
|
2790
|
-
var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */
|
|
2683
|
+
var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx21(
|
|
2791
2684
|
Popper,
|
|
2792
2685
|
{
|
|
2793
2686
|
open,
|
|
@@ -2798,7 +2691,7 @@ var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx23(
|
|
|
2798
2691
|
{ name: "preventOverflow", options: { padding: 8 } },
|
|
2799
2692
|
{ name: "flip", options: { fallbackPlacements: ["right-end", "left-start"] } }
|
|
2800
2693
|
],
|
|
2801
|
-
children: /* @__PURE__ */
|
|
2694
|
+
children: /* @__PURE__ */ jsx21(
|
|
2802
2695
|
Paper2,
|
|
2803
2696
|
{
|
|
2804
2697
|
sx: {
|
|
@@ -2814,9 +2707,9 @@ var MiniPopover = ({ open, anchorEl, children }) => /* @__PURE__ */ jsx23(
|
|
|
2814
2707
|
}
|
|
2815
2708
|
);
|
|
2816
2709
|
var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, onClick, renderNested, onClose }) => {
|
|
2817
|
-
const [hoveredPopoverItem, setHoveredPopoverItem] =
|
|
2818
|
-
const [anchorElement, setAnchorElement] =
|
|
2819
|
-
const chevronSx =
|
|
2710
|
+
const [hoveredPopoverItem, setHoveredPopoverItem] = useState6(null);
|
|
2711
|
+
const [anchorElement, setAnchorElement] = useState6(null);
|
|
2712
|
+
const chevronSx = useMemo3(() => {
|
|
2820
2713
|
if (collapsed && isSidebarFullyCollapsed && item.children) {
|
|
2821
2714
|
return {
|
|
2822
2715
|
fontSize: 18,
|
|
@@ -2840,9 +2733,9 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2840
2733
|
disabled,
|
|
2841
2734
|
sx: { px: 1.4, height: collapsed ? 60 : 48 }
|
|
2842
2735
|
};
|
|
2843
|
-
const buttonContent = /* @__PURE__ */
|
|
2844
|
-
/* @__PURE__ */
|
|
2845
|
-
!collapsed && /* @__PURE__ */
|
|
2736
|
+
const buttonContent = /* @__PURE__ */ jsxs12(Fragment4, { children: [
|
|
2737
|
+
/* @__PURE__ */ jsx21(IconOrAvatar, { item, collapsed }),
|
|
2738
|
+
!collapsed && /* @__PURE__ */ jsx21(
|
|
2846
2739
|
ListItemText3,
|
|
2847
2740
|
{
|
|
2848
2741
|
primary: item.title,
|
|
@@ -2850,9 +2743,9 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2850
2743
|
sx: { ml: 1.2, flex: 1, minWidth: 0, "& .MuiTypography-root": { whiteSpace: "nowrap", overflow: "hidden", textOverflow: "ellipsis" } }
|
|
2851
2744
|
}
|
|
2852
2745
|
),
|
|
2853
|
-
item.children ? /* @__PURE__ */
|
|
2746
|
+
item.children ? /* @__PURE__ */ jsx21(ExpandMoreIcon, { sx: chevronSx }) : null
|
|
2854
2747
|
] });
|
|
2855
|
-
const listItem = /* @__PURE__ */
|
|
2748
|
+
const listItem = /* @__PURE__ */ jsxs12(
|
|
2856
2749
|
ListItem,
|
|
2857
2750
|
{
|
|
2858
2751
|
...item.children && collapsed ? {
|
|
@@ -2866,7 +2759,7 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2866
2759
|
} : {},
|
|
2867
2760
|
sx: { py: 0, px: 1, overflowX: "hidden" },
|
|
2868
2761
|
children: [
|
|
2869
|
-
shouldJustExpand ? /* @__PURE__ */
|
|
2762
|
+
shouldJustExpand ? /* @__PURE__ */ jsx21(StyledNavButton, { ...buttonProps, onClick: () => onClick?.(item), children: buttonContent }) : /* @__PURE__ */ jsx21(
|
|
2870
2763
|
StyledRouterButton,
|
|
2871
2764
|
{
|
|
2872
2765
|
...buttonProps,
|
|
@@ -2878,28 +2771,28 @@ var NavigationListItem = ({ item, isOpen, selected, disabled, collapsed, isSideb
|
|
|
2878
2771
|
children: buttonContent
|
|
2879
2772
|
}
|
|
2880
2773
|
),
|
|
2881
|
-
item.children && collapsed ? /* @__PURE__ */
|
|
2774
|
+
item.children && collapsed ? /* @__PURE__ */ jsx21(MiniPopover, { open: item.title === hoveredPopoverItem, anchorEl: anchorElement, children: renderNested?.(item.children) }) : null
|
|
2882
2775
|
]
|
|
2883
2776
|
}
|
|
2884
2777
|
);
|
|
2885
|
-
return /* @__PURE__ */
|
|
2778
|
+
return /* @__PURE__ */ jsxs12(Fragment3, { children: [
|
|
2886
2779
|
listItem,
|
|
2887
|
-
item.children && !collapsed ? /* @__PURE__ */
|
|
2780
|
+
item.children && !collapsed ? /* @__PURE__ */ jsx21(Collapse, { in: isOpen, timeout: "auto", unmountOnExit: true, children: renderNested?.(item.children) }) : null
|
|
2888
2781
|
] }, item.to);
|
|
2889
2782
|
};
|
|
2890
2783
|
|
|
2891
2784
|
// src/components/core/navigation/NavigationList.tsx
|
|
2892
|
-
import { jsx as
|
|
2785
|
+
import { jsx as jsx22 } from "react/jsx-runtime";
|
|
2893
2786
|
var isPageItem = (item) => !("kind" in item);
|
|
2894
2787
|
var isDivider = (item) => "kind" in item && item.kind === "divider";
|
|
2895
2788
|
var isHeader = (item) => "kind" in item && item.kind === "header";
|
|
2896
2789
|
var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, expandedWidth, renderItem, activePath, onNavigate, onClose }) => {
|
|
2897
|
-
const [openKeys, setOpenKeys] =
|
|
2790
|
+
const [openKeys, setOpenKeys] = useState7([]);
|
|
2898
2791
|
useEffect5(() => {
|
|
2899
2792
|
if (collapsed) setOpenKeys([]);
|
|
2900
2793
|
}, [collapsed]);
|
|
2901
2794
|
const toggleKey = (key) => setOpenKeys((previous) => previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]);
|
|
2902
|
-
const renderNested = (children) => /* @__PURE__ */
|
|
2795
|
+
const renderNested = (children) => /* @__PURE__ */ jsx22(
|
|
2903
2796
|
NavigationList,
|
|
2904
2797
|
{
|
|
2905
2798
|
subNavigation: children,
|
|
@@ -2912,7 +2805,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2912
2805
|
}
|
|
2913
2806
|
);
|
|
2914
2807
|
const filteredNavigation = subNavigation.filter((nav) => !nav.hidden);
|
|
2915
|
-
return /* @__PURE__ */
|
|
2808
|
+
return /* @__PURE__ */ jsx22(
|
|
2916
2809
|
List3,
|
|
2917
2810
|
{
|
|
2918
2811
|
sx: {
|
|
@@ -2925,7 +2818,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2925
2818
|
},
|
|
2926
2819
|
children: filteredNavigation.map((navItem, index) => {
|
|
2927
2820
|
if (isHeader(navItem)) {
|
|
2928
|
-
return /* @__PURE__ */
|
|
2821
|
+
return /* @__PURE__ */ jsx22(
|
|
2929
2822
|
ListSubheader,
|
|
2930
2823
|
{
|
|
2931
2824
|
sx: {
|
|
@@ -2948,13 +2841,13 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2948
2841
|
}
|
|
2949
2842
|
if (isDivider(navItem)) {
|
|
2950
2843
|
const nextItem = filteredNavigation[index + 1];
|
|
2951
|
-
return /* @__PURE__ */
|
|
2844
|
+
return /* @__PURE__ */ jsx22("li", { children: /* @__PURE__ */ jsx22(Divider3, { sx: { mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 } }) }, `divider-${depth}-${index}`);
|
|
2952
2845
|
}
|
|
2953
2846
|
if (!isPageItem(navItem)) return null;
|
|
2954
2847
|
const key = `item-${depth}-${index}`;
|
|
2955
2848
|
const uniqueItemKey = `${depth}-${index}-${navItem.title}`;
|
|
2956
|
-
if (renderItem) return /* @__PURE__ */
|
|
2957
|
-
return /* @__PURE__ */
|
|
2849
|
+
if (renderItem) return /* @__PURE__ */ jsx22(Fragment5, { children: renderItem(navItem, { collapsed: !!collapsed }) }, key);
|
|
2850
|
+
return /* @__PURE__ */ jsx22(
|
|
2958
2851
|
NavigationListItem,
|
|
2959
2852
|
{
|
|
2960
2853
|
item: navItem,
|
|
@@ -2975,7 +2868,7 @@ var NavigationList = ({ subNavigation, depth = 0, collapsed, isPopover, isSideba
|
|
|
2975
2868
|
};
|
|
2976
2869
|
|
|
2977
2870
|
// src/components/core/navigation/NavigationRail.tsx
|
|
2978
|
-
import { jsx as
|
|
2871
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2979
2872
|
var MINI_WIDTH = 84;
|
|
2980
2873
|
var EXPANDED_WIDTH = 320;
|
|
2981
2874
|
var TOOLBAR_HEIGHT = 64;
|
|
@@ -2984,8 +2877,8 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
2984
2877
|
const routerState = useRouterState2();
|
|
2985
2878
|
const theme = useTheme2();
|
|
2986
2879
|
const showPermanent = useMediaQuery(theme.breakpoints.up("sm"));
|
|
2987
|
-
const drawerContent = (collapsed) => /* @__PURE__ */
|
|
2988
|
-
|
|
2880
|
+
const drawerContent = (collapsed) => /* @__PURE__ */ jsx23(
|
|
2881
|
+
Box7,
|
|
2989
2882
|
{
|
|
2990
2883
|
component: "nav",
|
|
2991
2884
|
sx: {
|
|
@@ -2998,7 +2891,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
2998
2891
|
overflowX: "hidden",
|
|
2999
2892
|
pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2
|
|
3000
2893
|
},
|
|
3001
|
-
children: /* @__PURE__ */
|
|
2894
|
+
children: /* @__PURE__ */ jsx23(
|
|
3002
2895
|
NavigationList,
|
|
3003
2896
|
{
|
|
3004
2897
|
subNavigation: navigation,
|
|
@@ -3014,7 +2907,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
3014
2907
|
}
|
|
3015
2908
|
);
|
|
3016
2909
|
if (showPermanent)
|
|
3017
|
-
return /* @__PURE__ */
|
|
2910
|
+
return /* @__PURE__ */ jsx23(
|
|
3018
2911
|
Drawer,
|
|
3019
2912
|
{
|
|
3020
2913
|
variant: "permanent",
|
|
@@ -3032,7 +2925,7 @@ var NavigationRail = ({ navigation, expanded, setExpanded }) => {
|
|
|
3032
2925
|
children: drawerContent(!expanded)
|
|
3033
2926
|
}
|
|
3034
2927
|
);
|
|
3035
|
-
return /* @__PURE__ */
|
|
2928
|
+
return /* @__PURE__ */ jsx23(Drawer, { open: expanded, onClose: () => setExpanded(false), children: drawerContent(!expanded) });
|
|
3036
2929
|
};
|
|
3037
2930
|
|
|
3038
2931
|
// src/components/core/ToolbarAccount.tsx
|
|
@@ -3046,18 +2939,18 @@ import Login from "@mui/icons-material/Login";
|
|
|
3046
2939
|
import Logout from "@mui/icons-material/Logout";
|
|
3047
2940
|
import SettingsBrightness from "@mui/icons-material/SettingsBrightness";
|
|
3048
2941
|
import Translate from "@mui/icons-material/Translate";
|
|
3049
|
-
import { Avatar as Avatar2, Box as
|
|
3050
|
-
import { Fragment as Fragment6, useState as
|
|
2942
|
+
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";
|
|
2943
|
+
import { Fragment as Fragment6, useState as useState8 } from "react";
|
|
3051
2944
|
import { useTranslation as useTranslation5 } from "react-i18next";
|
|
3052
|
-
import { jsx as
|
|
2945
|
+
import { jsx as jsx24, jsxs as jsxs13 } from "react/jsx-runtime";
|
|
3053
2946
|
var ToolbarAccount = () => {
|
|
3054
|
-
const [anchorElement, setAnchorElement] =
|
|
3055
|
-
const [tab, setTab] =
|
|
2947
|
+
const [anchorElement, setAnchorElement] = useState8();
|
|
2948
|
+
const [tab, setTab] = useState8("settings");
|
|
3056
2949
|
const open = Boolean(anchorElement);
|
|
3057
|
-
const { t: t2, i18n
|
|
2950
|
+
const { t: t2, i18n } = useTranslation5();
|
|
3058
2951
|
const { mode, setMode } = useColorScheme();
|
|
3059
2952
|
const changeLanguage = (newLanguage) => () => {
|
|
3060
|
-
|
|
2953
|
+
i18n.changeLanguage(newLanguage).finally(() => closeMenu());
|
|
3061
2954
|
};
|
|
3062
2955
|
const changeMode = (newMode) => () => {
|
|
3063
2956
|
setMode(newMode);
|
|
@@ -3092,60 +2985,60 @@ var ToolbarAccount = () => {
|
|
|
3092
2985
|
setTimeout(() => setTab("settings"), 300);
|
|
3093
2986
|
};
|
|
3094
2987
|
const changeTab = (newTab) => () => setTab(newTab);
|
|
3095
|
-
const settings = /* @__PURE__ */
|
|
3096
|
-
/* @__PURE__ */
|
|
3097
|
-
/* @__PURE__ */
|
|
3098
|
-
/* @__PURE__ */
|
|
3099
|
-
/* @__PURE__ */
|
|
2988
|
+
const settings = /* @__PURE__ */ jsxs13(List4, { component: "nav", subheader: /* @__PURE__ */ jsx24(ListSubheader2, { sx: { backgroundColor: "transparent" }, children: t2("Layout.Settings") }), children: [
|
|
2989
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
|
|
2990
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Brightness4, {}) }),
|
|
2991
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Appearance"), secondary: getModeText() }),
|
|
2992
|
+
/* @__PURE__ */ jsx24(ChevronRight, {})
|
|
3100
2993
|
] }),
|
|
3101
|
-
/* @__PURE__ */
|
|
3102
|
-
/* @__PURE__ */
|
|
3103
|
-
/* @__PURE__ */
|
|
3104
|
-
/* @__PURE__ */
|
|
2994
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
|
|
2995
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Translate, {}) }),
|
|
2996
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Language"), secondary: i18n.resolvedLanguage === "en" ? "English" : "\u010Ce\u0161tina" }),
|
|
2997
|
+
/* @__PURE__ */ jsx24(ChevronRight, {})
|
|
3105
2998
|
] })
|
|
3106
2999
|
] });
|
|
3107
|
-
const theme = /* @__PURE__ */
|
|
3108
|
-
/* @__PURE__ */
|
|
3000
|
+
const theme = /* @__PURE__ */ jsxs13(List4, { subheader: /* @__PURE__ */ jsxs13(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
3001
|
+
/* @__PURE__ */ jsx24(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx24(ArrowBack, { fontSize: "small" }) }),
|
|
3109
3002
|
" ",
|
|
3110
3003
|
t2("Layout.Appearance")
|
|
3111
3004
|
] }), children: [
|
|
3112
|
-
/* @__PURE__ */
|
|
3113
|
-
/* @__PURE__ */
|
|
3114
|
-
/* @__PURE__ */
|
|
3005
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeMode("light"), disabled: mode === "light", children: [
|
|
3006
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(LightMode, {}) }),
|
|
3007
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Light") })
|
|
3115
3008
|
] }),
|
|
3116
|
-
/* @__PURE__ */
|
|
3117
|
-
/* @__PURE__ */
|
|
3118
|
-
/* @__PURE__ */
|
|
3009
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeMode("dark"), disabled: mode === "dark", children: [
|
|
3010
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(DarkMode, {}) }),
|
|
3011
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Dark") })
|
|
3119
3012
|
] }),
|
|
3120
|
-
/* @__PURE__ */
|
|
3121
|
-
/* @__PURE__ */
|
|
3122
|
-
/* @__PURE__ */
|
|
3013
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: changeMode("system"), disabled: mode === "system", children: [
|
|
3014
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(SettingsBrightness, {}) }),
|
|
3015
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.System") })
|
|
3123
3016
|
] })
|
|
3124
3017
|
] });
|
|
3125
|
-
const language = /* @__PURE__ */
|
|
3126
|
-
/* @__PURE__ */
|
|
3018
|
+
const language = /* @__PURE__ */ jsxs13(List4, { subheader: /* @__PURE__ */ jsxs13(ListSubheader2, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
3019
|
+
/* @__PURE__ */ jsx24(IconButton4, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx24(ArrowBack, { fontSize: "small" }) }),
|
|
3127
3020
|
" ",
|
|
3128
3021
|
t2("Layout.Language")
|
|
3129
3022
|
] }), children: [
|
|
3130
|
-
/* @__PURE__ */
|
|
3131
|
-
/* @__PURE__ */
|
|
3023
|
+
/* @__PURE__ */ jsx24(ListItemButton5, { onClick: changeLanguage("en"), disabled: i18n.resolvedLanguage === "en", children: /* @__PURE__ */ jsx24(ListItemText4, { primary: "English" }) }),
|
|
3024
|
+
/* @__PURE__ */ jsx24(ListItemButton5, { onClick: changeLanguage("cs"), disabled: i18n.resolvedLanguage === "cs", children: /* @__PURE__ */ jsx24(ListItemText4, { primary: "\u010Ce\u0161tina" }) })
|
|
3132
3025
|
] });
|
|
3133
|
-
return /* @__PURE__ */
|
|
3134
|
-
/* @__PURE__ */
|
|
3135
|
-
/* @__PURE__ */
|
|
3136
|
-
/* @__PURE__ */
|
|
3137
|
-
/* @__PURE__ */
|
|
3138
|
-
/* @__PURE__ */
|
|
3139
|
-
/* @__PURE__ */
|
|
3140
|
-
/* @__PURE__ */
|
|
3026
|
+
return /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
3027
|
+
/* @__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" }) }),
|
|
3028
|
+
/* @__PURE__ */ jsx24(Menu2, { anchorEl: anchorElement, open, onClose: closeMenu, children: /* @__PURE__ */ jsxs13(Box8, { sx: { width: 240 }, children: [
|
|
3029
|
+
/* @__PURE__ */ jsx24(List4, { children: user.name ? /* @__PURE__ */ jsxs13(Fragment6, { children: [
|
|
3030
|
+
/* @__PURE__ */ jsx24(ListItem2, { children: /* @__PURE__ */ jsx24(ListItemText4, { primary: user.name, secondary: /* @__PURE__ */ jsxs13("span", { children: [
|
|
3031
|
+
/* @__PURE__ */ jsx24("span", { children: user.employeeId }),
|
|
3032
|
+
/* @__PURE__ */ jsx24("br", {}),
|
|
3033
|
+
/* @__PURE__ */ jsx24("span", { children: user.department })
|
|
3141
3034
|
] }) }) }),
|
|
3142
|
-
/* @__PURE__ */
|
|
3143
|
-
/* @__PURE__ */
|
|
3144
|
-
/* @__PURE__ */
|
|
3035
|
+
/* @__PURE__ */ jsxs13(ListItemButton5, { onClick: () => console.log("Logout"), children: [
|
|
3036
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Logout, { color: "error" }) }),
|
|
3037
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.Logout") })
|
|
3145
3038
|
] })
|
|
3146
|
-
] }) : /* @__PURE__ */
|
|
3147
|
-
/* @__PURE__ */
|
|
3148
|
-
/* @__PURE__ */
|
|
3039
|
+
] }) : /* @__PURE__ */ jsxs13(ListItemButton5, { onClick: () => console.log("Login"), children: [
|
|
3040
|
+
/* @__PURE__ */ jsx24(ListItemIcon4, { children: /* @__PURE__ */ jsx24(Login, { color: "success" }) }),
|
|
3041
|
+
/* @__PURE__ */ jsx24(ListItemText4, { primary: t2("Layout.LogIn") })
|
|
3149
3042
|
] }) }),
|
|
3150
3043
|
tab === "settings" && settings,
|
|
3151
3044
|
tab === "theme" && theme,
|
|
@@ -3155,7 +3048,7 @@ var ToolbarAccount = () => {
|
|
|
3155
3048
|
};
|
|
3156
3049
|
|
|
3157
3050
|
// src/components/core/Layout.tsx
|
|
3158
|
-
import { jsx as
|
|
3051
|
+
import { jsx as jsx25, jsxs as jsxs14 } from "react/jsx-runtime";
|
|
3159
3052
|
var DrawerHeader = styled2("div")(({ theme }) => ({
|
|
3160
3053
|
display: "flex",
|
|
3161
3054
|
alignItems: "center",
|
|
@@ -3167,11 +3060,11 @@ var Layout = (props) => {
|
|
|
3167
3060
|
const [navigationOpen, setNavigationOpen] = useLocalStorageState("navigationOpen", { defaultServerValue: false });
|
|
3168
3061
|
const isFetching = !!useIsFetching();
|
|
3169
3062
|
const isMutating = !!useIsMutating();
|
|
3170
|
-
return /* @__PURE__ */
|
|
3171
|
-
/* @__PURE__ */
|
|
3172
|
-
/* @__PURE__ */
|
|
3173
|
-
/* @__PURE__ */
|
|
3174
|
-
/* @__PURE__ */
|
|
3063
|
+
return /* @__PURE__ */ jsxs14(Fragment7, { children: [
|
|
3064
|
+
/* @__PURE__ */ jsx25(InitColorSchemeScript, {}),
|
|
3065
|
+
/* @__PURE__ */ jsx25(CssBaseline, {}),
|
|
3066
|
+
/* @__PURE__ */ jsxs14(Box9, { sx: { display: "flex", height: "100dvh", maxHeight: "100dvh", overflow: "hidden", width: "100%" }, children: [
|
|
3067
|
+
/* @__PURE__ */ jsx25(
|
|
3175
3068
|
AppBar,
|
|
3176
3069
|
{
|
|
3177
3070
|
color: "transparent",
|
|
@@ -3181,27 +3074,27 @@ var Layout = (props) => {
|
|
|
3181
3074
|
borderColor: theme.vars?.palette.divider,
|
|
3182
3075
|
boxShadow: "none"
|
|
3183
3076
|
}),
|
|
3184
|
-
children: /* @__PURE__ */
|
|
3185
|
-
props.navigation && /* @__PURE__ */
|
|
3077
|
+
children: /* @__PURE__ */ jsxs14(Toolbar, { children: [
|
|
3078
|
+
props.navigation && /* @__PURE__ */ jsx25(
|
|
3186
3079
|
IconButton5,
|
|
3187
3080
|
{
|
|
3188
3081
|
onClick: () => setNavigationOpen((previous) => !previous),
|
|
3189
3082
|
sx: { marginRight: 2 },
|
|
3190
|
-
children: navigationOpen ? /* @__PURE__ */
|
|
3083
|
+
children: navigationOpen ? /* @__PURE__ */ jsx25(MenuOpen, {}) : /* @__PURE__ */ jsx25(Menu3, {})
|
|
3191
3084
|
}
|
|
3192
3085
|
),
|
|
3193
|
-
/* @__PURE__ */
|
|
3194
|
-
/* @__PURE__ */
|
|
3086
|
+
/* @__PURE__ */ jsx25(AppTitle, {}),
|
|
3087
|
+
/* @__PURE__ */ jsx25(ToolbarAccount, {})
|
|
3195
3088
|
] })
|
|
3196
3089
|
}
|
|
3197
3090
|
),
|
|
3198
|
-
props.navigation && /* @__PURE__ */
|
|
3199
|
-
/* @__PURE__ */
|
|
3200
|
-
/* @__PURE__ */
|
|
3201
|
-
/* @__PURE__ */
|
|
3091
|
+
props.navigation && /* @__PURE__ */ jsx25(NavigationRail, { navigation: props.navigation, expanded: navigationOpen ?? false, setExpanded: setNavigationOpen }),
|
|
3092
|
+
/* @__PURE__ */ jsxs14(Box9, { component: "main", sx: { flexGrow: 1, display: "flex", flexDirection: "column", minWidth: 0, height: "100%", overflow: "hidden" }, children: [
|
|
3093
|
+
/* @__PURE__ */ jsx25(DrawerHeader, {}),
|
|
3094
|
+
/* @__PURE__ */ jsx25(Box9, { sx: { flex: 1, overflow: "auto", position: "relative" }, children: props.children })
|
|
3202
3095
|
] })
|
|
3203
3096
|
] }),
|
|
3204
|
-
(isFetching || isMutating) && /* @__PURE__ */
|
|
3097
|
+
(isFetching || isMutating) && /* @__PURE__ */ jsx25(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
|
|
3205
3098
|
] });
|
|
3206
3099
|
};
|
|
3207
3100
|
|
|
@@ -3914,7 +3807,7 @@ import { useTranslation as useTranslation6 } from "react-i18next";
|
|
|
3914
3807
|
var WISTRON_PRIMARY_COLOR = "#00506E";
|
|
3915
3808
|
var WISTRON_SECONDARY_COLOR = "#64DC00";
|
|
3916
3809
|
var useGetTheme = (theme) => {
|
|
3917
|
-
const { i18n
|
|
3810
|
+
const { i18n } = useTranslation6();
|
|
3918
3811
|
return createTheme(
|
|
3919
3812
|
{
|
|
3920
3813
|
cssVariables: {
|
|
@@ -3962,30 +3855,125 @@ var useGetTheme = (theme) => {
|
|
|
3962
3855
|
};
|
|
3963
3856
|
}
|
|
3964
3857
|
},
|
|
3858
|
+
MuiDataGrid: {
|
|
3859
|
+
styleOverrides: {
|
|
3860
|
+
root: ({ theme: muiTheme }) => ({
|
|
3861
|
+
"& .MuiDataGrid-cell--editing": {
|
|
3862
|
+
"& .MuiInputBase-root": {
|
|
3863
|
+
height: "100%"
|
|
3864
|
+
}
|
|
3865
|
+
},
|
|
3866
|
+
"& .MuiDataGrid-columnHeaderTitle": {
|
|
3867
|
+
fontWeight: 600
|
|
3868
|
+
},
|
|
3869
|
+
"& .Mui-error": {
|
|
3870
|
+
backgroundColor: muiTheme.palette.error.main,
|
|
3871
|
+
color: muiTheme.palette.error.contrastText
|
|
3872
|
+
},
|
|
3873
|
+
"& .MuiDataGrid-booleanCell[data-value='true']": {
|
|
3874
|
+
color: `${muiTheme.palette.success.main} !important`
|
|
3875
|
+
},
|
|
3876
|
+
"& .MuiDataGrid-booleanCell[data-value='false']": {
|
|
3877
|
+
color: `${muiTheme.palette.error.main} !important`
|
|
3878
|
+
}
|
|
3879
|
+
})
|
|
3880
|
+
}
|
|
3881
|
+
},
|
|
3965
3882
|
...theme?.components
|
|
3966
3883
|
}
|
|
3967
3884
|
},
|
|
3968
|
-
|
|
3969
|
-
|
|
3970
|
-
|
|
3885
|
+
i18n.resolvedLanguage === "cs" ? csCZ : enUS2,
|
|
3886
|
+
i18n.resolvedLanguage === "cs" ? csCZ2 : enUS,
|
|
3887
|
+
i18n.resolvedLanguage === "cs" ? csCZ3 : enUS3
|
|
3971
3888
|
);
|
|
3972
3889
|
};
|
|
3973
3890
|
|
|
3891
|
+
// src/providers/DialogsProvider.tsx
|
|
3892
|
+
import { useCallback, useId, useMemo as useMemo4, useRef as useRef3, useState as useState9 } from "react";
|
|
3893
|
+
import { jsx as jsx26, jsxs as jsxs15 } from "react/jsx-runtime";
|
|
3894
|
+
function DialogsProvider({ children, unmountAfter = 1e3 }) {
|
|
3895
|
+
const [stack, setStack] = useState9([]);
|
|
3896
|
+
const keyPrefix = useId();
|
|
3897
|
+
const nextId = useRef3(0);
|
|
3898
|
+
const dialogMetadata = useRef3(/* @__PURE__ */ new WeakMap());
|
|
3899
|
+
const requestDialog = useEventCallback_default(function open(Component7, payload, options = {}) {
|
|
3900
|
+
const { onClose = async () => {
|
|
3901
|
+
} } = options;
|
|
3902
|
+
let resolve;
|
|
3903
|
+
const promise = new Promise((resolveImpl) => {
|
|
3904
|
+
resolve = resolveImpl;
|
|
3905
|
+
});
|
|
3906
|
+
const key = `${keyPrefix}-${nextId.current}`;
|
|
3907
|
+
nextId.current += 1;
|
|
3908
|
+
const newEntry = {
|
|
3909
|
+
key,
|
|
3910
|
+
open: true,
|
|
3911
|
+
promise,
|
|
3912
|
+
Component: Component7,
|
|
3913
|
+
payload,
|
|
3914
|
+
onClose,
|
|
3915
|
+
resolve
|
|
3916
|
+
};
|
|
3917
|
+
dialogMetadata.current.set(promise, newEntry);
|
|
3918
|
+
setStack((previousStack) => [...previousStack, newEntry]);
|
|
3919
|
+
return promise;
|
|
3920
|
+
});
|
|
3921
|
+
const removeDialogFromStack = useCallback((dialog) => {
|
|
3922
|
+
setStack((previousStack) => previousStack.filter((entry) => entry.promise !== dialog));
|
|
3923
|
+
dialogMetadata.current.delete(dialog);
|
|
3924
|
+
}, []);
|
|
3925
|
+
const closeDialogUi = useEventCallback_default(function closeDialogUi2(dialog) {
|
|
3926
|
+
setStack(
|
|
3927
|
+
(previousStack) => previousStack.map((entry) => entry.promise === dialog ? { ...entry, open: false } : entry)
|
|
3928
|
+
);
|
|
3929
|
+
setTimeout(() => removeDialogFromStack(dialog), unmountAfter);
|
|
3930
|
+
});
|
|
3931
|
+
const closeDialog = useEventCallback_default(async function closeDialog2(dialog, result) {
|
|
3932
|
+
const entryToClose = dialogMetadata.current.get(dialog);
|
|
3933
|
+
if (!entryToClose) {
|
|
3934
|
+
throw new Error("Dialog not found in stack");
|
|
3935
|
+
}
|
|
3936
|
+
try {
|
|
3937
|
+
await entryToClose.onClose(result);
|
|
3938
|
+
} finally {
|
|
3939
|
+
entryToClose.resolve(result);
|
|
3940
|
+
closeDialogUi(dialog);
|
|
3941
|
+
}
|
|
3942
|
+
return dialog;
|
|
3943
|
+
});
|
|
3944
|
+
const contextValue = useMemo4(() => ({ open: requestDialog, close: closeDialog }), [requestDialog, closeDialog]);
|
|
3945
|
+
return /* @__PURE__ */ jsxs15(DialogsContext.Provider, { value: contextValue, children: [
|
|
3946
|
+
children,
|
|
3947
|
+
stack.map(({ key, open, Component: Component7, payload, promise }) => /* @__PURE__ */ jsx26(
|
|
3948
|
+
Component7,
|
|
3949
|
+
{
|
|
3950
|
+
payload,
|
|
3951
|
+
open,
|
|
3952
|
+
onClose: async (result) => {
|
|
3953
|
+
await closeDialog(promise, result);
|
|
3954
|
+
}
|
|
3955
|
+
},
|
|
3956
|
+
key
|
|
3957
|
+
))
|
|
3958
|
+
] });
|
|
3959
|
+
}
|
|
3960
|
+
|
|
3974
3961
|
// src/providers/LayoutProvider.tsx
|
|
3975
|
-
import { jsx as
|
|
3962
|
+
import { jsx as jsx27 } from "react/jsx-runtime";
|
|
3976
3963
|
var LayoutProvider = ({ navigation, theme, children }) => {
|
|
3964
|
+
const { i18n } = useTranslation7();
|
|
3977
3965
|
const createdTheme = useGetTheme(theme);
|
|
3978
3966
|
useEffect6(() => {
|
|
3979
3967
|
const handler = () => {
|
|
3980
|
-
z.config(
|
|
3968
|
+
z.config(i18n.resolvedLanguage === "cs" ? cs() : en());
|
|
3981
3969
|
};
|
|
3982
3970
|
handler();
|
|
3983
|
-
|
|
3971
|
+
i18n.on("languageChanged", handler);
|
|
3984
3972
|
return () => {
|
|
3985
|
-
|
|
3973
|
+
i18n.off("languageChanged", handler);
|
|
3986
3974
|
};
|
|
3987
3975
|
}, []);
|
|
3988
|
-
return /* @__PURE__ */
|
|
3976
|
+
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 }) }) }) });
|
|
3989
3977
|
};
|
|
3990
3978
|
|
|
3991
3979
|
// src/index.ts
|
|
@@ -4007,11 +3995,11 @@ var getFieldStatus = (field) => {
|
|
|
4007
3995
|
};
|
|
4008
3996
|
|
|
4009
3997
|
// src/components/form/FormAutocomplete.tsx
|
|
4010
|
-
import { jsx as
|
|
3998
|
+
import { jsx as jsx28 } from "react/jsx-runtime";
|
|
4011
3999
|
var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
4012
4000
|
const field = useFieldContext();
|
|
4013
4001
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4014
|
-
return /* @__PURE__ */
|
|
4002
|
+
return /* @__PURE__ */ jsx28(
|
|
4015
4003
|
Autocomplete,
|
|
4016
4004
|
{
|
|
4017
4005
|
value: field.state.value,
|
|
@@ -4020,7 +4008,7 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
|
4020
4008
|
onBlur: field.handleBlur,
|
|
4021
4009
|
"aria-label": field.name,
|
|
4022
4010
|
...autocompleteProps,
|
|
4023
|
-
renderInput: (parameters) => /* @__PURE__ */
|
|
4011
|
+
renderInput: (parameters) => /* @__PURE__ */ jsx28(
|
|
4024
4012
|
TextField,
|
|
4025
4013
|
{
|
|
4026
4014
|
...parameters,
|
|
@@ -4036,15 +4024,15 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
|
4036
4024
|
|
|
4037
4025
|
// src/components/form/FormCheckbox.tsx
|
|
4038
4026
|
import { Checkbox, FormControl, FormControlLabel, FormHelperText } from "@mui/material";
|
|
4039
|
-
import { jsx as
|
|
4027
|
+
import { jsx as jsx29, jsxs as jsxs16 } from "react/jsx-runtime";
|
|
4040
4028
|
var FormCheckbox = (props) => {
|
|
4041
4029
|
const field = useFieldContext();
|
|
4042
4030
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4043
|
-
return /* @__PURE__ */
|
|
4044
|
-
/* @__PURE__ */
|
|
4031
|
+
return /* @__PURE__ */ jsxs16(FormControl, { component: "fieldset", children: [
|
|
4032
|
+
/* @__PURE__ */ jsx29(
|
|
4045
4033
|
FormControlLabel,
|
|
4046
4034
|
{
|
|
4047
|
-
control: /* @__PURE__ */
|
|
4035
|
+
control: /* @__PURE__ */ jsx29(
|
|
4048
4036
|
Checkbox,
|
|
4049
4037
|
{
|
|
4050
4038
|
name: field.name,
|
|
@@ -4058,18 +4046,18 @@ var FormCheckbox = (props) => {
|
|
|
4058
4046
|
label: props.label ?? ""
|
|
4059
4047
|
}
|
|
4060
4048
|
),
|
|
4061
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4049
|
+
isTouched && hasError && /* @__PURE__ */ jsx29(FormHelperText, { error: hasError, children: helperText })
|
|
4062
4050
|
] });
|
|
4063
4051
|
};
|
|
4064
4052
|
|
|
4065
4053
|
// src/components/form/FormDatePicker.tsx
|
|
4066
4054
|
import { DatePicker } from "@mui/x-date-pickers-pro";
|
|
4067
4055
|
import dayjs2 from "dayjs";
|
|
4068
|
-
import { jsx as
|
|
4056
|
+
import { jsx as jsx30 } from "react/jsx-runtime";
|
|
4069
4057
|
var FormDatePicker = (props) => {
|
|
4070
4058
|
const field = useFieldContext();
|
|
4071
4059
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4072
|
-
return /* @__PURE__ */
|
|
4060
|
+
return /* @__PURE__ */ jsx30(
|
|
4073
4061
|
DatePicker,
|
|
4074
4062
|
{
|
|
4075
4063
|
name: field.name,
|
|
@@ -4093,11 +4081,11 @@ var FormDatePicker = (props) => {
|
|
|
4093
4081
|
// src/components/form/FormDateTimePicker.tsx
|
|
4094
4082
|
import { DateTimePicker } from "@mui/x-date-pickers-pro";
|
|
4095
4083
|
import dayjs3 from "dayjs";
|
|
4096
|
-
import { jsx as
|
|
4084
|
+
import { jsx as jsx31 } from "react/jsx-runtime";
|
|
4097
4085
|
var FormDateTimePicker = (props) => {
|
|
4098
4086
|
const field = useFieldContext();
|
|
4099
4087
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4100
|
-
return /* @__PURE__ */
|
|
4088
|
+
return /* @__PURE__ */ jsx31(
|
|
4101
4089
|
DateTimePicker,
|
|
4102
4090
|
{
|
|
4103
4091
|
name: field.name,
|
|
@@ -4121,11 +4109,11 @@ var FormDateTimePicker = (props) => {
|
|
|
4121
4109
|
// src/components/form/FormNumberField.tsx
|
|
4122
4110
|
import { TextField as TextField2 } from "@mui/material";
|
|
4123
4111
|
import { NumericFormat } from "react-number-format";
|
|
4124
|
-
import { jsx as
|
|
4112
|
+
import { jsx as jsx32 } from "react/jsx-runtime";
|
|
4125
4113
|
var FormNumberField = ({ options, ...props }) => {
|
|
4126
4114
|
const field = useFieldContext();
|
|
4127
4115
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4128
|
-
return /* @__PURE__ */
|
|
4116
|
+
return /* @__PURE__ */ jsx32(
|
|
4129
4117
|
NumericFormat,
|
|
4130
4118
|
{
|
|
4131
4119
|
customInput: TextField2,
|
|
@@ -4144,13 +4132,13 @@ var FormNumberField = ({ options, ...props }) => {
|
|
|
4144
4132
|
|
|
4145
4133
|
// src/components/form/FormRadioGroup.tsx
|
|
4146
4134
|
import { FormControl as FormControl2, FormControlLabel as FormControlLabel2, FormHelperText as FormHelperText2, FormLabel, Radio, RadioGroup } from "@mui/material";
|
|
4147
|
-
import { jsx as
|
|
4135
|
+
import { jsx as jsx33, jsxs as jsxs17 } from "react/jsx-runtime";
|
|
4148
4136
|
var FormRadioGroup = ({ label, options, ...props }) => {
|
|
4149
4137
|
const field = useFieldContext();
|
|
4150
4138
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4151
|
-
return /* @__PURE__ */
|
|
4152
|
-
label && /* @__PURE__ */
|
|
4153
|
-
/* @__PURE__ */
|
|
4139
|
+
return /* @__PURE__ */ jsxs17(FormControl2, { component: "fieldset", children: [
|
|
4140
|
+
label && /* @__PURE__ */ jsx33(FormLabel, { component: "legend", children: label }),
|
|
4141
|
+
/* @__PURE__ */ jsx33(
|
|
4154
4142
|
RadioGroup,
|
|
4155
4143
|
{
|
|
4156
4144
|
name: field.name,
|
|
@@ -4159,30 +4147,30 @@ var FormRadioGroup = ({ label, options, ...props }) => {
|
|
|
4159
4147
|
onBlur: field.handleBlur,
|
|
4160
4148
|
"aria-label": field.name,
|
|
4161
4149
|
...props,
|
|
4162
|
-
children: options.map((option) => /* @__PURE__ */
|
|
4150
|
+
children: options.map((option) => /* @__PURE__ */ jsx33(
|
|
4163
4151
|
FormControlLabel2,
|
|
4164
4152
|
{
|
|
4165
4153
|
value: option.value,
|
|
4166
|
-
control: /* @__PURE__ */
|
|
4154
|
+
control: /* @__PURE__ */ jsx33(Radio, {}),
|
|
4167
4155
|
label: option.label
|
|
4168
4156
|
},
|
|
4169
4157
|
option.value
|
|
4170
4158
|
))
|
|
4171
4159
|
}
|
|
4172
4160
|
),
|
|
4173
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4161
|
+
isTouched && hasError && /* @__PURE__ */ jsx33(FormHelperText2, { error: hasError, children: helperText })
|
|
4174
4162
|
] });
|
|
4175
4163
|
};
|
|
4176
4164
|
|
|
4177
4165
|
// src/components/form/FormSlider.tsx
|
|
4178
4166
|
import { FormControl as FormControl3, FormHelperText as FormHelperText3, FormLabel as FormLabel2, Slider } from "@mui/material";
|
|
4179
|
-
import { jsx as
|
|
4167
|
+
import { jsx as jsx34, jsxs as jsxs18 } from "react/jsx-runtime";
|
|
4180
4168
|
var FormSlider = ({ label, ...props }) => {
|
|
4181
4169
|
const field = useFieldContext();
|
|
4182
4170
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4183
|
-
return /* @__PURE__ */
|
|
4184
|
-
label && /* @__PURE__ */
|
|
4185
|
-
/* @__PURE__ */
|
|
4171
|
+
return /* @__PURE__ */ jsxs18(FormControl3, { component: "fieldset", children: [
|
|
4172
|
+
label && /* @__PURE__ */ jsx34(FormLabel2, { children: label }),
|
|
4173
|
+
/* @__PURE__ */ jsx34(
|
|
4186
4174
|
Slider,
|
|
4187
4175
|
{
|
|
4188
4176
|
name: field.name,
|
|
@@ -4193,13 +4181,13 @@ var FormSlider = ({ label, ...props }) => {
|
|
|
4193
4181
|
...props
|
|
4194
4182
|
}
|
|
4195
4183
|
),
|
|
4196
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4184
|
+
isTouched && hasError && /* @__PURE__ */ jsx34(FormHelperText3, { error: hasError, children: helperText })
|
|
4197
4185
|
] });
|
|
4198
4186
|
};
|
|
4199
4187
|
|
|
4200
4188
|
// src/components/form/FormSubmitButton.tsx
|
|
4201
4189
|
import { Button as Button3 } from "@mui/material";
|
|
4202
|
-
import { jsx as
|
|
4190
|
+
import { jsx as jsx35 } from "react/jsx-runtime";
|
|
4203
4191
|
var FormSubmitButton = (props) => {
|
|
4204
4192
|
const form = useFormContext();
|
|
4205
4193
|
const handleClick = (event) => {
|
|
@@ -4207,7 +4195,7 @@ var FormSubmitButton = (props) => {
|
|
|
4207
4195
|
event.stopPropagation();
|
|
4208
4196
|
form.handleSubmit();
|
|
4209
4197
|
};
|
|
4210
|
-
return /* @__PURE__ */
|
|
4198
|
+
return /* @__PURE__ */ jsx35(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => /* @__PURE__ */ jsx35(
|
|
4211
4199
|
Button3,
|
|
4212
4200
|
{
|
|
4213
4201
|
loading: isSubmitting,
|
|
@@ -4222,15 +4210,15 @@ var FormSubmitButton = (props) => {
|
|
|
4222
4210
|
|
|
4223
4211
|
// src/components/form/FormSwitch.tsx
|
|
4224
4212
|
import { FormControl as FormControl4, FormControlLabel as FormControlLabel3, FormHelperText as FormHelperText4, Switch } from "@mui/material";
|
|
4225
|
-
import { jsx as
|
|
4213
|
+
import { jsx as jsx36, jsxs as jsxs19 } from "react/jsx-runtime";
|
|
4226
4214
|
var FormSwitch = (props) => {
|
|
4227
4215
|
const field = useFieldContext();
|
|
4228
4216
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4229
|
-
return /* @__PURE__ */
|
|
4230
|
-
/* @__PURE__ */
|
|
4217
|
+
return /* @__PURE__ */ jsxs19(FormControl4, { component: "fieldset", children: [
|
|
4218
|
+
/* @__PURE__ */ jsx36(
|
|
4231
4219
|
FormControlLabel3,
|
|
4232
4220
|
{
|
|
4233
|
-
control: /* @__PURE__ */
|
|
4221
|
+
control: /* @__PURE__ */ jsx36(
|
|
4234
4222
|
Switch,
|
|
4235
4223
|
{
|
|
4236
4224
|
name: field.name,
|
|
@@ -4244,17 +4232,17 @@ var FormSwitch = (props) => {
|
|
|
4244
4232
|
label: props.label ?? ""
|
|
4245
4233
|
}
|
|
4246
4234
|
),
|
|
4247
|
-
isTouched && hasError && /* @__PURE__ */
|
|
4235
|
+
isTouched && hasError && /* @__PURE__ */ jsx36(FormHelperText4, { error: hasError, children: helperText })
|
|
4248
4236
|
] });
|
|
4249
4237
|
};
|
|
4250
4238
|
|
|
4251
4239
|
// src/components/form/FormTextField.tsx
|
|
4252
4240
|
import { TextField as TextField3 } from "@mui/material";
|
|
4253
|
-
import { jsx as
|
|
4241
|
+
import { jsx as jsx37 } from "react/jsx-runtime";
|
|
4254
4242
|
var FormTextField = (props) => {
|
|
4255
4243
|
const field = useFieldContext();
|
|
4256
4244
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
4257
|
-
return /* @__PURE__ */
|
|
4245
|
+
return /* @__PURE__ */ jsx37(
|
|
4258
4246
|
TextField3,
|
|
4259
4247
|
{
|
|
4260
4248
|
name: field.name,
|
|
@@ -4291,16 +4279,16 @@ var { useAppForm: useLayoutForm, withForm: withLayoutForm } = createFormHook({
|
|
|
4291
4279
|
});
|
|
4292
4280
|
|
|
4293
4281
|
// src/index.ts
|
|
4294
|
-
import { default as
|
|
4295
|
-
import { useTranslation as
|
|
4282
|
+
import { default as default2 } from "use-local-storage-state";
|
|
4283
|
+
import { useTranslation as useTranslation8 } from "react-i18next";
|
|
4296
4284
|
import { t } from "i18next";
|
|
4297
4285
|
export {
|
|
4298
4286
|
ChipInputCell,
|
|
4299
4287
|
Dropzone,
|
|
4300
4288
|
EditableColumnHeader,
|
|
4301
4289
|
FileViewer,
|
|
4290
|
+
Fullscreen,
|
|
4302
4291
|
LayoutProvider,
|
|
4303
|
-
PageHeader,
|
|
4304
4292
|
Platform,
|
|
4305
4293
|
RouterButton,
|
|
4306
4294
|
RouterError,
|
|
@@ -4310,7 +4298,6 @@ export {
|
|
|
4310
4298
|
RouterListItemButton,
|
|
4311
4299
|
RouterNotFound,
|
|
4312
4300
|
RouterTab,
|
|
4313
|
-
TableContainer,
|
|
4314
4301
|
TypographyWithIcon,
|
|
4315
4302
|
rootRouteHead,
|
|
4316
4303
|
t,
|
|
@@ -4324,9 +4311,9 @@ export {
|
|
|
4324
4311
|
useGetFileMetas,
|
|
4325
4312
|
useGetFileThumbnail,
|
|
4326
4313
|
useLayoutForm,
|
|
4327
|
-
|
|
4314
|
+
default2 as useLocalStorageState,
|
|
4328
4315
|
useOpenFile,
|
|
4329
|
-
|
|
4316
|
+
useTranslation8 as useTranslation,
|
|
4330
4317
|
useUpdateFileMeta,
|
|
4331
4318
|
useUploadFile,
|
|
4332
4319
|
uuidv72 as uuidv7,
|