wcz-test 2.7.0 → 2.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 +15 -15
- package/dist/index.js +221 -116
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -1067,57 +1067,79 @@ import { Button } from "@mui/material";
|
|
|
1067
1067
|
import { createLink } from "@tanstack/react-router";
|
|
1068
1068
|
import React from "react";
|
|
1069
1069
|
import { jsx as jsx4 } from "react/jsx-runtime";
|
|
1070
|
-
var
|
|
1071
|
-
var
|
|
1070
|
+
var Component = React.forwardRef((props, ref) => /* @__PURE__ */ jsx4(Button, { ref, component: "a", ...props }));
|
|
1071
|
+
var CreatedComponent = createLink(Component);
|
|
1072
1072
|
var RouterButton = (props) => {
|
|
1073
|
-
return /* @__PURE__ */ jsx4(
|
|
1073
|
+
return /* @__PURE__ */ jsx4(CreatedComponent, { preload: "intent", ...props });
|
|
1074
1074
|
};
|
|
1075
1075
|
|
|
1076
|
-
// src/components/router/
|
|
1077
|
-
import {
|
|
1076
|
+
// src/components/router/RouterGridActionsCellItem.tsx
|
|
1077
|
+
import { GridActionsCellItem } from "@mui/x-data-grid-premium";
|
|
1078
1078
|
import { createLink as createLink2 } from "@tanstack/react-router";
|
|
1079
1079
|
import React2 from "react";
|
|
1080
1080
|
import { jsx as jsx5 } from "react/jsx-runtime";
|
|
1081
|
-
var
|
|
1082
|
-
(props, ref) => /* @__PURE__ */ jsx5(
|
|
1081
|
+
var Component2 = React2.forwardRef(
|
|
1082
|
+
(props, ref) => /* @__PURE__ */ jsx5(GridActionsCellItem, { ref, component: "a", ...props })
|
|
1083
1083
|
);
|
|
1084
|
-
var
|
|
1085
|
-
var
|
|
1086
|
-
return /* @__PURE__ */ jsx5(
|
|
1084
|
+
var CreatedComponent2 = createLink2(Component2);
|
|
1085
|
+
var RouterGridActionsCellItem = (props) => {
|
|
1086
|
+
return /* @__PURE__ */ jsx5(CreatedComponent2, { preload: "intent", ...props });
|
|
1087
1087
|
};
|
|
1088
1088
|
|
|
1089
|
-
// src/components/router/
|
|
1090
|
-
import {
|
|
1089
|
+
// src/components/router/RouterIconButton.tsx
|
|
1090
|
+
import { IconButton } from "@mui/material";
|
|
1091
1091
|
import { createLink as createLink3 } from "@tanstack/react-router";
|
|
1092
1092
|
import React3 from "react";
|
|
1093
1093
|
import { jsx as jsx6 } from "react/jsx-runtime";
|
|
1094
|
-
var
|
|
1095
|
-
var
|
|
1094
|
+
var Component3 = React3.forwardRef((props, ref) => /* @__PURE__ */ jsx6(IconButton, { ref, component: "a", ...props }));
|
|
1095
|
+
var CreatedComponent3 = createLink3(Component3);
|
|
1096
|
+
var RouterIconButton = (props) => {
|
|
1097
|
+
return /* @__PURE__ */ jsx6(CreatedComponent3, { preload: "intent", ...props });
|
|
1098
|
+
};
|
|
1099
|
+
|
|
1100
|
+
// src/components/router/RouterLink.tsx
|
|
1101
|
+
import { Link } from "@mui/material";
|
|
1102
|
+
import { createLink as createLink4 } from "@tanstack/react-router";
|
|
1103
|
+
import React4 from "react";
|
|
1104
|
+
import { jsx as jsx7 } from "react/jsx-runtime";
|
|
1105
|
+
var Component4 = React4.forwardRef((props, ref) => /* @__PURE__ */ jsx7(Link, { ref, ...props }));
|
|
1106
|
+
var CreatedComponent4 = createLink4(Component4);
|
|
1107
|
+
var RouterLink = (props) => {
|
|
1108
|
+
return /* @__PURE__ */ jsx7(CreatedComponent4, { preload: "intent", ...props });
|
|
1109
|
+
};
|
|
1110
|
+
|
|
1111
|
+
// src/components/router/RouterTab.tsx
|
|
1112
|
+
import { Tab } from "@mui/material";
|
|
1113
|
+
import { createLink as createLink5 } from "@tanstack/react-router";
|
|
1114
|
+
import React5 from "react";
|
|
1115
|
+
import { jsx as jsx8 } from "react/jsx-runtime";
|
|
1116
|
+
var Component5 = React5.forwardRef((props, ref) => /* @__PURE__ */ jsx8(Tab, { ref, component: "a", ...props }));
|
|
1117
|
+
var CreatedComponent5 = createLink5(Component5);
|
|
1096
1118
|
var RouterTab = (props) => {
|
|
1097
|
-
return /* @__PURE__ */
|
|
1119
|
+
return /* @__PURE__ */ jsx8(CreatedComponent5, { preload: "intent", ...props });
|
|
1098
1120
|
};
|
|
1099
1121
|
|
|
1100
1122
|
// src/components/router/RouterNotFound.tsx
|
|
1101
1123
|
import { Box, Divider, Typography as Typography2 } from "@mui/material";
|
|
1102
1124
|
import { useTranslation } from "react-i18next";
|
|
1103
|
-
import { jsx as
|
|
1125
|
+
import { jsx as jsx9, jsxs as jsxs2 } from "react/jsx-runtime";
|
|
1104
1126
|
function RouterNotFound() {
|
|
1105
1127
|
const { t } = useTranslation();
|
|
1106
|
-
return /* @__PURE__ */
|
|
1107
|
-
/* @__PURE__ */
|
|
1108
|
-
/* @__PURE__ */
|
|
1109
|
-
/* @__PURE__ */
|
|
1128
|
+
return /* @__PURE__ */ jsx9(Box, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs2(Box, { display: "flex", alignItems: "center", mb: 4, children: [
|
|
1129
|
+
/* @__PURE__ */ jsx9(Typography2, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "404" }),
|
|
1130
|
+
/* @__PURE__ */ jsx9(Divider, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
|
|
1131
|
+
/* @__PURE__ */ jsx9(Typography2, { variant: "h5", component: "span", children: t("Layout.ThisPageCouldNotBeFound") })
|
|
1110
1132
|
] }) });
|
|
1111
1133
|
}
|
|
1112
1134
|
|
|
1113
1135
|
// src/components/router/RouterError.tsx
|
|
1114
1136
|
import { Box as Box2, Divider as Divider2, Typography as Typography3 } from "@mui/material";
|
|
1115
|
-
import { jsx as
|
|
1137
|
+
import { jsx as jsx10, jsxs as jsxs3 } from "react/jsx-runtime";
|
|
1116
1138
|
var RouterError = ({ error }) => {
|
|
1117
|
-
return /* @__PURE__ */
|
|
1118
|
-
/* @__PURE__ */
|
|
1119
|
-
/* @__PURE__ */
|
|
1120
|
-
/* @__PURE__ */
|
|
1139
|
+
return /* @__PURE__ */ jsx10(Box2, { height: "100vh", display: "flex", flexDirection: "column", alignItems: "center", justifyContent: "center", textAlign: "center", px: 2, children: /* @__PURE__ */ jsxs3(Box2, { display: "flex", alignItems: "center", mb: 4, children: [
|
|
1140
|
+
/* @__PURE__ */ jsx10(Typography3, { variant: "h3", component: "span", fontWeight: 500, sx: { lineHeight: 1 }, children: "500" }),
|
|
1141
|
+
/* @__PURE__ */ jsx10(Divider2, { orientation: "vertical", flexItem: true, sx: { mx: 3 } }),
|
|
1142
|
+
/* @__PURE__ */ jsx10(Typography3, { variant: "h5", component: "span", children: error.message })
|
|
1121
1143
|
] }) });
|
|
1122
1144
|
};
|
|
1123
1145
|
|
|
@@ -1151,12 +1173,14 @@ function _objectWithoutPropertiesLoose(r, e) {
|
|
|
1151
1173
|
|
|
1152
1174
|
// node_modules/@mui/x-date-pickers/esm/LocalizationProvider/LocalizationProvider.js
|
|
1153
1175
|
var import_prop_types = __toESM(require_prop_types(), 1);
|
|
1154
|
-
import * as
|
|
1176
|
+
import * as React6 from "react";
|
|
1155
1177
|
import { useThemeProps } from "@mui/material/styles";
|
|
1156
1178
|
import { jsx as _jsx } from "react/jsx-runtime";
|
|
1157
1179
|
var _excluded = ["localeText"];
|
|
1158
|
-
var MuiPickersAdapterContext = /* @__PURE__ */
|
|
1159
|
-
if (process.env.NODE_ENV !== "production")
|
|
1180
|
+
var MuiPickersAdapterContext = /* @__PURE__ */ React6.createContext(null);
|
|
1181
|
+
if (process.env.NODE_ENV !== "production") {
|
|
1182
|
+
MuiPickersAdapterContext.displayName = "MuiPickersAdapterContext";
|
|
1183
|
+
}
|
|
1160
1184
|
var LocalizationProvider = function LocalizationProvider2(inProps) {
|
|
1161
1185
|
const {
|
|
1162
1186
|
localeText: inLocaleText
|
|
@@ -1164,7 +1188,7 @@ var LocalizationProvider = function LocalizationProvider2(inProps) {
|
|
|
1164
1188
|
const {
|
|
1165
1189
|
utils: parentUtils,
|
|
1166
1190
|
localeText: parentLocaleText
|
|
1167
|
-
} =
|
|
1191
|
+
} = React6.useContext(MuiPickersAdapterContext) ?? {
|
|
1168
1192
|
utils: void 0,
|
|
1169
1193
|
localeText: void 0
|
|
1170
1194
|
};
|
|
@@ -1182,8 +1206,8 @@ var LocalizationProvider = function LocalizationProvider2(inProps) {
|
|
|
1182
1206
|
adapterLocale,
|
|
1183
1207
|
localeText: themeLocaleText
|
|
1184
1208
|
} = props;
|
|
1185
|
-
const localeText =
|
|
1186
|
-
const utils =
|
|
1209
|
+
const localeText = React6.useMemo(() => _extends({}, themeLocaleText, parentLocaleText, inLocaleText), [themeLocaleText, parentLocaleText, inLocaleText]);
|
|
1210
|
+
const utils = React6.useMemo(() => {
|
|
1187
1211
|
if (!DateAdapter) {
|
|
1188
1212
|
if (parentUtils) {
|
|
1189
1213
|
return parentUtils;
|
|
@@ -1201,7 +1225,7 @@ var LocalizationProvider = function LocalizationProvider2(inProps) {
|
|
|
1201
1225
|
}
|
|
1202
1226
|
return adapter;
|
|
1203
1227
|
}, [DateAdapter, adapterLocale, dateFormats, dateLibInstance, parentUtils]);
|
|
1204
|
-
const defaultDates =
|
|
1228
|
+
const defaultDates = React6.useMemo(() => {
|
|
1205
1229
|
if (!utils) {
|
|
1206
1230
|
return null;
|
|
1207
1231
|
}
|
|
@@ -1210,7 +1234,7 @@ var LocalizationProvider = function LocalizationProvider2(inProps) {
|
|
|
1210
1234
|
maxDate: utils.date("2099-12-31T00:00:00.000")
|
|
1211
1235
|
};
|
|
1212
1236
|
}, [utils]);
|
|
1213
|
-
const contextValue =
|
|
1237
|
+
const contextValue = React6.useMemo(() => {
|
|
1214
1238
|
return {
|
|
1215
1239
|
utils,
|
|
1216
1240
|
defaultDates,
|
|
@@ -1222,7 +1246,6 @@ var LocalizationProvider = function LocalizationProvider2(inProps) {
|
|
|
1222
1246
|
children
|
|
1223
1247
|
});
|
|
1224
1248
|
};
|
|
1225
|
-
if (process.env.NODE_ENV !== "production") LocalizationProvider.displayName = "LocalizationProvider";
|
|
1226
1249
|
process.env.NODE_ENV !== "production" ? LocalizationProvider.propTypes = {
|
|
1227
1250
|
// ----------------------------- Warning --------------------------------
|
|
1228
1251
|
// | These PropTypes are generated from the TypeScript type definitions |
|
|
@@ -1803,26 +1826,26 @@ var LayoutContext = createContext2({});
|
|
|
1803
1826
|
var useLayout = () => useContext2(LayoutContext);
|
|
1804
1827
|
|
|
1805
1828
|
// src/components/core/AppTitle.tsx
|
|
1806
|
-
import { jsx as
|
|
1829
|
+
import { jsx as jsx11, jsxs as jsxs4 } from "react/jsx-runtime";
|
|
1807
1830
|
var AppTitle = () => {
|
|
1808
1831
|
const { appTitle } = useLayout();
|
|
1809
1832
|
return /* @__PURE__ */ jsxs4(Stack3, { direction: "row", alignItems: "center", spacing: 2, children: [
|
|
1810
|
-
/* @__PURE__ */
|
|
1811
|
-
/* @__PURE__ */
|
|
1833
|
+
/* @__PURE__ */ jsx11("img", { src: "/favicon-32x32.png", alt: "app-logo", loading: "lazy" }),
|
|
1834
|
+
/* @__PURE__ */ jsx11(Typography4, { variant: "h6", children: appTitle })
|
|
1812
1835
|
] });
|
|
1813
1836
|
};
|
|
1814
1837
|
|
|
1815
1838
|
// src/components/core/DevelopmentBanner.tsx
|
|
1816
1839
|
import { Close } from "@mui/icons-material";
|
|
1817
|
-
import { Fade, Grid, IconButton, Paper, Typography as Typography5 } from "@mui/material";
|
|
1840
|
+
import { Fade, Grid, IconButton as IconButton2, Paper, Typography as Typography5 } from "@mui/material";
|
|
1818
1841
|
import { useState } from "react";
|
|
1819
1842
|
import { useTranslation as useTranslation2 } from "react-i18next";
|
|
1820
|
-
import { jsx as
|
|
1843
|
+
import { jsx as jsx12, jsxs as jsxs5 } from "react/jsx-runtime";
|
|
1821
1844
|
var DevelopmentBanner = ({ hasNavigationRoutes }) => {
|
|
1822
1845
|
const { t } = useTranslation2();
|
|
1823
1846
|
const [bannerOpen, setBannerOpen] = useState(true);
|
|
1824
1847
|
const closeBanner = () => setBannerOpen(false);
|
|
1825
|
-
return /* @__PURE__ */
|
|
1848
|
+
return /* @__PURE__ */ jsx12(Fade, { appear: false, in: bannerOpen, children: /* @__PURE__ */ jsx12(Paper, { square: true, elevation: 3, tabIndex: -1, sx: {
|
|
1826
1849
|
position: "fixed",
|
|
1827
1850
|
bottom: 0,
|
|
1828
1851
|
left: { xs: 0, sm: hasNavigationRoutes ? 83.3 : 0 },
|
|
@@ -1833,19 +1856,19 @@ var DevelopmentBanner = ({ hasNavigationRoutes }) => {
|
|
|
1833
1856
|
borderTopWidth: 1
|
|
1834
1857
|
}, children: /* @__PURE__ */ jsxs5(Grid, { container: true, justifyContent: "space-between", alignItems: "center", children: [
|
|
1835
1858
|
/* @__PURE__ */ jsxs5(Grid, { size: 10, children: [
|
|
1836
|
-
/* @__PURE__ */
|
|
1837
|
-
/* @__PURE__ */
|
|
1859
|
+
/* @__PURE__ */ jsx12(Typography5, { fontWeight: "bold", children: t("Layout.DevelopmentDialogTitle") }),
|
|
1860
|
+
/* @__PURE__ */ jsx12(Typography5, { variant: "body2", children: t("Layout.DevelopmentDialogContent") })
|
|
1838
1861
|
] }),
|
|
1839
|
-
/* @__PURE__ */
|
|
1862
|
+
/* @__PURE__ */ jsx12(Grid, { size: 2, sx: { p: 1, textAlign: "right" }, children: /* @__PURE__ */ jsx12(IconButton2, { size: "small", onClick: closeBanner, children: /* @__PURE__ */ jsx12(Close, {}) }) })
|
|
1840
1863
|
] }) }) });
|
|
1841
1864
|
};
|
|
1842
1865
|
|
|
1843
1866
|
// src/components/core/ToolbarAccount.tsx
|
|
1844
1867
|
import { AccountCircle, ArrowBack, Brightness4, ChevronRight, DarkMode, LightMode, Login, Logout, SettingsBrightness, Translate } from "@mui/icons-material";
|
|
1845
|
-
import { Avatar, Box as Box3, IconButton as
|
|
1868
|
+
import { Avatar, Box as Box3, IconButton as IconButton3, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, Typography as Typography6, useColorScheme } from "@mui/material";
|
|
1846
1869
|
import { Fragment, useState as useState2 } from "react";
|
|
1847
1870
|
import { useTranslation as useTranslation3 } from "react-i18next";
|
|
1848
|
-
import { jsx as
|
|
1871
|
+
import { jsx as jsx13, jsxs as jsxs6 } from "react/jsx-runtime";
|
|
1849
1872
|
var user = {
|
|
1850
1873
|
name: "Dalibor Homola",
|
|
1851
1874
|
employeeId: "C2503017",
|
|
@@ -1889,63 +1912,63 @@ var ToolbarAccount = () => {
|
|
|
1889
1912
|
setAnchorEl(null);
|
|
1890
1913
|
setTimeout(() => setTab("settings"), 300);
|
|
1891
1914
|
};
|
|
1892
|
-
const
|
|
1893
|
-
const
|
|
1915
|
+
const login2 = () => user.login();
|
|
1916
|
+
const logout2 = () => user.logout();
|
|
1894
1917
|
const changeTab = (newTab) => () => setTab(newTab);
|
|
1895
|
-
const settings = /* @__PURE__ */ jsxs6(List, { component: "nav", subheader: /* @__PURE__ */
|
|
1918
|
+
const settings = /* @__PURE__ */ jsxs6(List, { component: "nav", subheader: /* @__PURE__ */ jsx13(ListSubheader, { sx: { backgroundColor: "transparent" }, children: t("Layout.Settings") }), children: [
|
|
1896
1919
|
/* @__PURE__ */ jsxs6(ListItemButton, { onClick: changeTab("theme"), sx: { py: 0.3 }, children: [
|
|
1897
|
-
/* @__PURE__ */
|
|
1898
|
-
/* @__PURE__ */
|
|
1899
|
-
/* @__PURE__ */
|
|
1920
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(Brightness4, {}) }),
|
|
1921
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.Appearance"), secondary: getModeText() }),
|
|
1922
|
+
/* @__PURE__ */ jsx13(ChevronRight, {})
|
|
1900
1923
|
] }),
|
|
1901
1924
|
/* @__PURE__ */ jsxs6(ListItemButton, { onClick: changeTab("language"), sx: { py: 0.3 }, children: [
|
|
1902
|
-
/* @__PURE__ */
|
|
1903
|
-
/* @__PURE__ */
|
|
1904
|
-
/* @__PURE__ */
|
|
1925
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(Translate, {}) }),
|
|
1926
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.Language"), secondary: i18n2.resolvedLanguage === "en" ? "English" : "\u010Ce\u0161tina" }),
|
|
1927
|
+
/* @__PURE__ */ jsx13(ChevronRight, {})
|
|
1905
1928
|
] })
|
|
1906
1929
|
] });
|
|
1907
1930
|
const theme = /* @__PURE__ */ jsxs6(List, { subheader: /* @__PURE__ */ jsxs6(ListSubheader, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
1908
|
-
/* @__PURE__ */
|
|
1931
|
+
/* @__PURE__ */ jsx13(IconButton3, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx13(ArrowBack, { fontSize: "small" }) }),
|
|
1909
1932
|
" ",
|
|
1910
1933
|
t("Layout.Appearance")
|
|
1911
1934
|
] }), children: [
|
|
1912
1935
|
/* @__PURE__ */ jsxs6(ListItemButton, { onClick: changeMode("light"), disabled: mode === "light", children: [
|
|
1913
|
-
/* @__PURE__ */
|
|
1914
|
-
/* @__PURE__ */
|
|
1936
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(LightMode, {}) }),
|
|
1937
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.Light") })
|
|
1915
1938
|
] }),
|
|
1916
1939
|
/* @__PURE__ */ jsxs6(ListItemButton, { onClick: changeMode("dark"), disabled: mode === "dark", children: [
|
|
1917
|
-
/* @__PURE__ */
|
|
1918
|
-
/* @__PURE__ */
|
|
1940
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(DarkMode, {}) }),
|
|
1941
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.Dark") })
|
|
1919
1942
|
] }),
|
|
1920
1943
|
/* @__PURE__ */ jsxs6(ListItemButton, { onClick: changeMode("system"), disabled: mode === "system", children: [
|
|
1921
|
-
/* @__PURE__ */
|
|
1922
|
-
/* @__PURE__ */
|
|
1944
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(SettingsBrightness, {}) }),
|
|
1945
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.System") })
|
|
1923
1946
|
] })
|
|
1924
1947
|
] });
|
|
1925
1948
|
const language = /* @__PURE__ */ jsxs6(List, { subheader: /* @__PURE__ */ jsxs6(ListSubheader, { onClick: changeTab("settings"), sx: { backgroundColor: "transparent", display: "flex", alignItems: "center", px: 1, cursor: "pointer" }, children: [
|
|
1926
|
-
/* @__PURE__ */
|
|
1949
|
+
/* @__PURE__ */ jsx13(IconButton3, { size: "small", sx: { mr: 0.5 }, children: /* @__PURE__ */ jsx13(ArrowBack, { fontSize: "small" }) }),
|
|
1927
1950
|
" ",
|
|
1928
1951
|
t("Layout.Language")
|
|
1929
1952
|
] }), children: [
|
|
1930
|
-
/* @__PURE__ */
|
|
1931
|
-
/* @__PURE__ */
|
|
1953
|
+
/* @__PURE__ */ jsx13(ListItemButton, { onClick: changeLanguage("en"), disabled: i18n2.resolvedLanguage === "en", children: /* @__PURE__ */ jsx13(ListItemText, { primary: "English" }) }),
|
|
1954
|
+
/* @__PURE__ */ jsx13(ListItemButton, { onClick: changeLanguage("cs"), disabled: i18n2.resolvedLanguage === "cs", children: /* @__PURE__ */ jsx13(ListItemText, { primary: "\u010Ce\u0161tina" }) })
|
|
1932
1955
|
] });
|
|
1933
1956
|
return /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1934
|
-
/* @__PURE__ */
|
|
1935
|
-
/* @__PURE__ */
|
|
1936
|
-
/* @__PURE__ */
|
|
1937
|
-
/* @__PURE__ */
|
|
1938
|
-
/* @__PURE__ */
|
|
1939
|
-
/* @__PURE__ */
|
|
1940
|
-
/* @__PURE__ */
|
|
1957
|
+
/* @__PURE__ */ jsx13(IconButton3, { size: "small", onClick: openMenu, children: user.name ? /* @__PURE__ */ jsx13(Avatar, { sx: { width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 }, bgcolor: "primary.main" }, children: /* @__PURE__ */ jsx13(Typography6, { variant: "subtitle2", sx: { fontWeight: "bold", lineHeight: 0 }, children: usernameInitials() }) }) : /* @__PURE__ */ jsx13(AccountCircle, {}) }),
|
|
1958
|
+
/* @__PURE__ */ jsx13(Menu, { anchorEl, open, onClose: closeMenu, children: /* @__PURE__ */ jsxs6(Box3, { sx: { width: 240 }, children: [
|
|
1959
|
+
/* @__PURE__ */ jsx13(List, { children: user.name ? /* @__PURE__ */ jsxs6(Fragment, { children: [
|
|
1960
|
+
/* @__PURE__ */ jsx13(ListItem, { children: /* @__PURE__ */ jsx13(ListItemText, { primary: user.name, secondary: /* @__PURE__ */ jsxs6("span", { children: [
|
|
1961
|
+
/* @__PURE__ */ jsx13("span", { children: user.employeeId }),
|
|
1962
|
+
/* @__PURE__ */ jsx13("br", {}),
|
|
1963
|
+
/* @__PURE__ */ jsx13("span", { children: user.department })
|
|
1941
1964
|
] }) }) }),
|
|
1942
|
-
/* @__PURE__ */ jsxs6(ListItemButton, { onClick:
|
|
1943
|
-
/* @__PURE__ */
|
|
1944
|
-
/* @__PURE__ */
|
|
1965
|
+
/* @__PURE__ */ jsxs6(ListItemButton, { onClick: logout2, children: [
|
|
1966
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(Logout, { color: "error" }) }),
|
|
1967
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.Logout") })
|
|
1945
1968
|
] })
|
|
1946
|
-
] }) : /* @__PURE__ */ jsxs6(ListItemButton, { onClick:
|
|
1947
|
-
/* @__PURE__ */
|
|
1948
|
-
/* @__PURE__ */
|
|
1969
|
+
] }) : /* @__PURE__ */ jsxs6(ListItemButton, { onClick: login2, children: [
|
|
1970
|
+
/* @__PURE__ */ jsx13(ListItemIcon, { children: /* @__PURE__ */ jsx13(Login, { color: "success" }) }),
|
|
1971
|
+
/* @__PURE__ */ jsx13(ListItemText, { primary: t("Layout.LogIn") })
|
|
1949
1972
|
] }) }),
|
|
1950
1973
|
tab === "settings" && settings,
|
|
1951
1974
|
tab === "theme" && theme,
|
|
@@ -1965,6 +1988,83 @@ import { useTranslation as useTranslation4 } from "react-i18next";
|
|
|
1965
1988
|
// src/utils/ClientUtils.ts
|
|
1966
1989
|
import { useQueryClient } from "@tanstack/react-query";
|
|
1967
1990
|
import axios from "axios";
|
|
1991
|
+
|
|
1992
|
+
// src/services/UserService.ts
|
|
1993
|
+
import Keycloak from "keycloak-js";
|
|
1994
|
+
var keycloakConfig = {
|
|
1995
|
+
url: import.meta.env.VITE_KEYCLOAK_URL,
|
|
1996
|
+
realm: import.meta.env.VITE_KEYCLOAK_REALM,
|
|
1997
|
+
clientId: import.meta.env.VITE_KEYCLOAK_CLIENT_ID,
|
|
1998
|
+
idpHint: import.meta.env.VITE_KEYCLOAK_IDP_HINT,
|
|
1999
|
+
confidentialClientId: import.meta.env.VITE_KEYCLOAK_CONFIDENTIAL_CLIENT_ID,
|
|
2000
|
+
confidentialClientSecret: import.meta.env.VITE_KEYCLOAK_CONFIDENTIAL_CLIENT_SECRET
|
|
2001
|
+
};
|
|
2002
|
+
var _kc = new Keycloak({
|
|
2003
|
+
url: keycloakConfig.url,
|
|
2004
|
+
realm: keycloakConfig.realm,
|
|
2005
|
+
clientId: keycloakConfig.clientId
|
|
2006
|
+
});
|
|
2007
|
+
var initKeycloak = async () => {
|
|
2008
|
+
if (typeof window === "undefined") return;
|
|
2009
|
+
const authenticated = await _kc.init({ onLoad: "check-sso" });
|
|
2010
|
+
if (authenticated) {
|
|
2011
|
+
return await loadUserInfo();
|
|
2012
|
+
} else {
|
|
2013
|
+
await _kc.login({ idpHint: keycloakConfig.idpHint });
|
|
2014
|
+
return await loadUserInfo();
|
|
2015
|
+
}
|
|
2016
|
+
};
|
|
2017
|
+
var login = _kc.login;
|
|
2018
|
+
var logout = _kc.logout;
|
|
2019
|
+
var getToken = () => {
|
|
2020
|
+
if (_kc.token) {
|
|
2021
|
+
return _kc.token;
|
|
2022
|
+
} else {
|
|
2023
|
+
return getConfidentialToken();
|
|
2024
|
+
}
|
|
2025
|
+
};
|
|
2026
|
+
var getConfidentialToken = async () => {
|
|
2027
|
+
const { confidentialClientId, confidentialClientSecret, url, realm } = keycloakConfig;
|
|
2028
|
+
if (!confidentialClientId || !confidentialClientSecret)
|
|
2029
|
+
throw new Error("Confidential client id or secret is missing");
|
|
2030
|
+
const credentials = btoa(`${confidentialClientId}:${confidentialClientSecret}`);
|
|
2031
|
+
const urlencoded = new URLSearchParams({ grant_type: "client_credentials" });
|
|
2032
|
+
const response = await fetch(`${url}/realms/${realm}/protocol/openid-connect/token`, {
|
|
2033
|
+
method: "POST",
|
|
2034
|
+
headers: {
|
|
2035
|
+
"Content-Type": "application/x-www-form-urlencoded",
|
|
2036
|
+
"Authorization": `Basic ${credentials}`
|
|
2037
|
+
},
|
|
2038
|
+
body: urlencoded
|
|
2039
|
+
});
|
|
2040
|
+
if (!response.ok)
|
|
2041
|
+
throw new Error("Failed to obtain confidential token");
|
|
2042
|
+
const data = await response.json();
|
|
2043
|
+
return data.access_token;
|
|
2044
|
+
};
|
|
2045
|
+
var updateToken = () => _kc.updateToken(30).catch(login);
|
|
2046
|
+
var hasRole = (roles) => roles.some((role) => _kc.hasRealmRole(role) || _kc.hasResourceRole(role));
|
|
2047
|
+
var loadUserInfo = async () => {
|
|
2048
|
+
const user2 = await _kc.loadUserInfo();
|
|
2049
|
+
return {
|
|
2050
|
+
name: user2.name,
|
|
2051
|
+
employeeId: user2.employeeId?.toUpperCase() ?? "",
|
|
2052
|
+
department: user2.department ?? "",
|
|
2053
|
+
email: user2.email,
|
|
2054
|
+
company: user2.company,
|
|
2055
|
+
category: user2.category
|
|
2056
|
+
};
|
|
2057
|
+
};
|
|
2058
|
+
var UserService = {
|
|
2059
|
+
initKeycloak,
|
|
2060
|
+
login,
|
|
2061
|
+
logout,
|
|
2062
|
+
getToken,
|
|
2063
|
+
updateToken,
|
|
2064
|
+
hasRole
|
|
2065
|
+
};
|
|
2066
|
+
|
|
2067
|
+
// src/utils/ClientUtils.ts
|
|
1968
2068
|
var Platform = class {
|
|
1969
2069
|
static isAndroid = /android/i.test(navigator.userAgent);
|
|
1970
2070
|
static isIOS = /iPad|iPhone|iPod/.test(navigator.userAgent);
|
|
@@ -1997,6 +2097,9 @@ var rootRouteHead = ({ title, themeColor }) => () => ({
|
|
|
1997
2097
|
});
|
|
1998
2098
|
var wczApiClient = axios.create();
|
|
1999
2099
|
wczApiClient.interceptors.request.use(async (config) => {
|
|
2100
|
+
await UserService.updateToken();
|
|
2101
|
+
const token = await UserService.getToken();
|
|
2102
|
+
config.headers.Authorization = `Bearer ${token}`;
|
|
2000
2103
|
return config;
|
|
2001
2104
|
});
|
|
2002
2105
|
var WISTRON_PRIMARY_COLOR = "#00506E";
|
|
@@ -2103,10 +2206,10 @@ var useGetTheme = (theme) => {
|
|
|
2103
2206
|
import { useLocation, useNavigate, useSearch, Link as TanstackRouterLink } from "@tanstack/react-router";
|
|
2104
2207
|
import { AppProvider } from "@toolpad/core/AppProvider";
|
|
2105
2208
|
import { useCallback, useMemo as useMemo2, forwardRef } from "react";
|
|
2106
|
-
import { jsx as
|
|
2209
|
+
import { jsx as jsx14 } from "react/jsx-runtime";
|
|
2107
2210
|
var Link2 = forwardRef((props, ref) => {
|
|
2108
2211
|
const { href, history, ...rest } = props;
|
|
2109
|
-
return /* @__PURE__ */
|
|
2212
|
+
return /* @__PURE__ */ jsx14(TanstackRouterLink, { ref, to: href, replace: history === "replace", ...rest });
|
|
2110
2213
|
});
|
|
2111
2214
|
var TanstackRouterAppProvider = (props) => {
|
|
2112
2215
|
const { pathname } = useLocation();
|
|
@@ -2119,11 +2222,11 @@ var TanstackRouterAppProvider = (props) => {
|
|
|
2119
2222
|
[_navigate]
|
|
2120
2223
|
);
|
|
2121
2224
|
const router = useMemo2(() => ({ pathname, searchParams: new URLSearchParams(searchParams), navigate, Link: Link2 }), [pathname, searchParams, navigate]);
|
|
2122
|
-
return /* @__PURE__ */
|
|
2225
|
+
return /* @__PURE__ */ jsx14(AppProvider, { router, ...props });
|
|
2123
2226
|
};
|
|
2124
2227
|
|
|
2125
2228
|
// src/providers/LayoutProvider.tsx
|
|
2126
|
-
import { jsx as
|
|
2229
|
+
import { jsx as jsx15, jsxs as jsxs7 } from "react/jsx-runtime";
|
|
2127
2230
|
i18n.use(HttpBackend).use(LanguageDetector).use(initReactI18next).init({
|
|
2128
2231
|
fallbackLng: "en",
|
|
2129
2232
|
interpolation: {
|
|
@@ -2145,11 +2248,11 @@ var LayoutProvider = (props) => {
|
|
|
2145
2248
|
const appTitle = rootRouterState.meta?.find((meta) => meta?.title)?.title;
|
|
2146
2249
|
if (!appTitle)
|
|
2147
2250
|
throw new Error("Title is not defined in the RootRoute head.");
|
|
2148
|
-
return /* @__PURE__ */
|
|
2251
|
+
return /* @__PURE__ */ jsx15(LocalizationProvider, { dateAdapter: AdapterDayjs, adapterLocale: i18n2.resolvedLanguage, children: /* @__PURE__ */ jsx15(TanstackRouterAppProvider, { navigation, theme, localeText: {
|
|
2149
2252
|
confirm: t("Layout.Confirm"),
|
|
2150
2253
|
cancel: t("Layout.Cancel"),
|
|
2151
2254
|
alert: t("Layout.Alert")
|
|
2152
|
-
}, children: /* @__PURE__ */
|
|
2255
|
+
}, children: /* @__PURE__ */ jsx15(NotificationsProvider, { slotProps: { snackbar: { anchorOrigin: { vertical: isLargeScreen ? "top" : "bottom", horizontal: "center" } } }, children: /* @__PURE__ */ jsx15(LayoutContext.Provider, { value: { appTitle }, children: /* @__PURE__ */ jsxs7(
|
|
2153
2256
|
DashboardLayout,
|
|
2154
2257
|
{
|
|
2155
2258
|
defaultSidebarCollapsed: true,
|
|
@@ -2161,8 +2264,8 @@ var LayoutProvider = (props) => {
|
|
|
2161
2264
|
},
|
|
2162
2265
|
children: [
|
|
2163
2266
|
props.children,
|
|
2164
|
-
/* @__PURE__ */
|
|
2165
|
-
(isFetching || isMutating) && /* @__PURE__ */
|
|
2267
|
+
/* @__PURE__ */ jsx15(DevelopmentBanner, { hasNavigationRoutes: !!navigation.length }),
|
|
2268
|
+
(isFetching || isMutating) && /* @__PURE__ */ jsx15(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })
|
|
2166
2269
|
]
|
|
2167
2270
|
}
|
|
2168
2271
|
) }) }) }) });
|
|
@@ -2187,11 +2290,11 @@ var getFieldStatus = (field) => {
|
|
|
2187
2290
|
};
|
|
2188
2291
|
|
|
2189
2292
|
// src/components/form/FormAutocomplete.tsx
|
|
2190
|
-
import { jsx as
|
|
2293
|
+
import { jsx as jsx16 } from "react/jsx-runtime";
|
|
2191
2294
|
var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
2192
2295
|
const field = useFieldContext();
|
|
2193
2296
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2194
|
-
return /* @__PURE__ */
|
|
2297
|
+
return /* @__PURE__ */ jsx16(
|
|
2195
2298
|
Autocomplete,
|
|
2196
2299
|
{
|
|
2197
2300
|
value: field.state.value,
|
|
@@ -2200,7 +2303,7 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
|
2200
2303
|
onBlur: field.handleBlur,
|
|
2201
2304
|
"aria-label": field.name,
|
|
2202
2305
|
...autocompleteProps,
|
|
2203
|
-
renderInput: (params) => /* @__PURE__ */
|
|
2306
|
+
renderInput: (params) => /* @__PURE__ */ jsx16(
|
|
2204
2307
|
TextField,
|
|
2205
2308
|
{
|
|
2206
2309
|
...params,
|
|
@@ -2216,15 +2319,15 @@ var FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
|
|
|
2216
2319
|
|
|
2217
2320
|
// src/components/form/FormCheckbox.tsx
|
|
2218
2321
|
import { Checkbox, FormControl, FormControlLabel, FormHelperText } from "@mui/material";
|
|
2219
|
-
import { jsx as
|
|
2322
|
+
import { jsx as jsx17, jsxs as jsxs8 } from "react/jsx-runtime";
|
|
2220
2323
|
var FormCheckbox = (props) => {
|
|
2221
2324
|
const field = useFieldContext();
|
|
2222
2325
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2223
2326
|
return /* @__PURE__ */ jsxs8(FormControl, { component: "fieldset", children: [
|
|
2224
|
-
/* @__PURE__ */
|
|
2327
|
+
/* @__PURE__ */ jsx17(
|
|
2225
2328
|
FormControlLabel,
|
|
2226
2329
|
{
|
|
2227
|
-
control: /* @__PURE__ */
|
|
2330
|
+
control: /* @__PURE__ */ jsx17(
|
|
2228
2331
|
Checkbox,
|
|
2229
2332
|
{
|
|
2230
2333
|
name: field.name,
|
|
@@ -2238,18 +2341,18 @@ var FormCheckbox = (props) => {
|
|
|
2238
2341
|
label: props.label ?? ""
|
|
2239
2342
|
}
|
|
2240
2343
|
),
|
|
2241
|
-
isTouched && hasError && /* @__PURE__ */
|
|
2344
|
+
isTouched && hasError && /* @__PURE__ */ jsx17(FormHelperText, { error: hasError, children: helperText })
|
|
2242
2345
|
] });
|
|
2243
2346
|
};
|
|
2244
2347
|
|
|
2245
2348
|
// src/components/form/FormDatePicker.tsx
|
|
2246
2349
|
import { DatePicker } from "@mui/x-date-pickers-pro";
|
|
2247
2350
|
import dayjs from "dayjs";
|
|
2248
|
-
import { jsx as
|
|
2351
|
+
import { jsx as jsx18 } from "react/jsx-runtime";
|
|
2249
2352
|
var FormDatePicker = (props) => {
|
|
2250
2353
|
const field = useFieldContext();
|
|
2251
2354
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2252
|
-
return /* @__PURE__ */
|
|
2355
|
+
return /* @__PURE__ */ jsx18(
|
|
2253
2356
|
DatePicker,
|
|
2254
2357
|
{
|
|
2255
2358
|
name: field.name,
|
|
@@ -2273,11 +2376,11 @@ var FormDatePicker = (props) => {
|
|
|
2273
2376
|
// src/components/form/FormDateTimePicker.tsx
|
|
2274
2377
|
import { DateTimePicker } from "@mui/x-date-pickers-pro";
|
|
2275
2378
|
import dayjs2 from "dayjs";
|
|
2276
|
-
import { jsx as
|
|
2379
|
+
import { jsx as jsx19 } from "react/jsx-runtime";
|
|
2277
2380
|
var FormDateTimePicker = (props) => {
|
|
2278
2381
|
const field = useFieldContext();
|
|
2279
2382
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2280
|
-
return /* @__PURE__ */
|
|
2383
|
+
return /* @__PURE__ */ jsx19(
|
|
2281
2384
|
DateTimePicker,
|
|
2282
2385
|
{
|
|
2283
2386
|
name: field.name,
|
|
@@ -2301,11 +2404,11 @@ var FormDateTimePicker = (props) => {
|
|
|
2301
2404
|
// src/components/form/FormNumberField.tsx
|
|
2302
2405
|
import { TextField as TextField2 } from "@mui/material";
|
|
2303
2406
|
import { NumericFormat } from "react-number-format";
|
|
2304
|
-
import { jsx as
|
|
2407
|
+
import { jsx as jsx20 } from "react/jsx-runtime";
|
|
2305
2408
|
var FormNumberField = ({ options, ...props }) => {
|
|
2306
2409
|
const field = useFieldContext();
|
|
2307
2410
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2308
|
-
return /* @__PURE__ */
|
|
2411
|
+
return /* @__PURE__ */ jsx20(
|
|
2309
2412
|
NumericFormat,
|
|
2310
2413
|
{
|
|
2311
2414
|
customInput: TextField2,
|
|
@@ -2324,13 +2427,13 @@ var FormNumberField = ({ options, ...props }) => {
|
|
|
2324
2427
|
|
|
2325
2428
|
// src/components/form/FormRadioGroup.tsx
|
|
2326
2429
|
import { FormControl as FormControl2, FormControlLabel as FormControlLabel2, FormHelperText as FormHelperText2, FormLabel, Radio, RadioGroup } from "@mui/material";
|
|
2327
|
-
import { jsx as
|
|
2430
|
+
import { jsx as jsx21, jsxs as jsxs9 } from "react/jsx-runtime";
|
|
2328
2431
|
var FormRadioGroup = ({ label, options, ...props }) => {
|
|
2329
2432
|
const field = useFieldContext();
|
|
2330
2433
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2331
2434
|
return /* @__PURE__ */ jsxs9(FormControl2, { component: "fieldset", children: [
|
|
2332
|
-
label && /* @__PURE__ */
|
|
2333
|
-
/* @__PURE__ */
|
|
2435
|
+
label && /* @__PURE__ */ jsx21(FormLabel, { component: "legend", children: label }),
|
|
2436
|
+
/* @__PURE__ */ jsx21(
|
|
2334
2437
|
RadioGroup,
|
|
2335
2438
|
{
|
|
2336
2439
|
name: field.name,
|
|
@@ -2339,30 +2442,30 @@ var FormRadioGroup = ({ label, options, ...props }) => {
|
|
|
2339
2442
|
onBlur: field.handleBlur,
|
|
2340
2443
|
"aria-label": field.name,
|
|
2341
2444
|
...props,
|
|
2342
|
-
children: options.map((option) => /* @__PURE__ */
|
|
2445
|
+
children: options.map((option) => /* @__PURE__ */ jsx21(
|
|
2343
2446
|
FormControlLabel2,
|
|
2344
2447
|
{
|
|
2345
2448
|
value: option.value,
|
|
2346
|
-
control: /* @__PURE__ */
|
|
2449
|
+
control: /* @__PURE__ */ jsx21(Radio, {}),
|
|
2347
2450
|
label: option.label
|
|
2348
2451
|
},
|
|
2349
2452
|
option.value
|
|
2350
2453
|
))
|
|
2351
2454
|
}
|
|
2352
2455
|
),
|
|
2353
|
-
isTouched && hasError && /* @__PURE__ */
|
|
2456
|
+
isTouched && hasError && /* @__PURE__ */ jsx21(FormHelperText2, { error: hasError, children: helperText })
|
|
2354
2457
|
] });
|
|
2355
2458
|
};
|
|
2356
2459
|
|
|
2357
2460
|
// src/components/form/FormSlider.tsx
|
|
2358
2461
|
import { FormControl as FormControl3, FormHelperText as FormHelperText3, FormLabel as FormLabel2, Slider } from "@mui/material";
|
|
2359
|
-
import { jsx as
|
|
2462
|
+
import { jsx as jsx22, jsxs as jsxs10 } from "react/jsx-runtime";
|
|
2360
2463
|
var FormSlider = ({ label, ...props }) => {
|
|
2361
2464
|
const field = useFieldContext();
|
|
2362
2465
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2363
2466
|
return /* @__PURE__ */ jsxs10(FormControl3, { component: "fieldset", children: [
|
|
2364
|
-
label && /* @__PURE__ */
|
|
2365
|
-
/* @__PURE__ */
|
|
2467
|
+
label && /* @__PURE__ */ jsx22(FormLabel2, { children: label }),
|
|
2468
|
+
/* @__PURE__ */ jsx22(
|
|
2366
2469
|
Slider,
|
|
2367
2470
|
{
|
|
2368
2471
|
name: field.name,
|
|
@@ -2373,13 +2476,13 @@ var FormSlider = ({ label, ...props }) => {
|
|
|
2373
2476
|
...props
|
|
2374
2477
|
}
|
|
2375
2478
|
),
|
|
2376
|
-
isTouched && hasError && /* @__PURE__ */
|
|
2479
|
+
isTouched && hasError && /* @__PURE__ */ jsx22(FormHelperText3, { error: hasError, children: helperText })
|
|
2377
2480
|
] });
|
|
2378
2481
|
};
|
|
2379
2482
|
|
|
2380
2483
|
// src/components/form/FormSubmitButton.tsx
|
|
2381
2484
|
import { Button as Button2 } from "@mui/material";
|
|
2382
|
-
import { jsx as
|
|
2485
|
+
import { jsx as jsx23 } from "react/jsx-runtime";
|
|
2383
2486
|
var FormSubmitButton = (props) => {
|
|
2384
2487
|
const form = useFormContext();
|
|
2385
2488
|
const handleClick = (e) => {
|
|
@@ -2387,7 +2490,7 @@ var FormSubmitButton = (props) => {
|
|
|
2387
2490
|
e.stopPropagation();
|
|
2388
2491
|
form.handleSubmit();
|
|
2389
2492
|
};
|
|
2390
|
-
return /* @__PURE__ */
|
|
2493
|
+
return /* @__PURE__ */ jsx23(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => /* @__PURE__ */ jsx23(
|
|
2391
2494
|
Button2,
|
|
2392
2495
|
{
|
|
2393
2496
|
loading: isSubmitting,
|
|
@@ -2402,15 +2505,15 @@ var FormSubmitButton = (props) => {
|
|
|
2402
2505
|
|
|
2403
2506
|
// src/components/form/FormSwitch.tsx
|
|
2404
2507
|
import { FormControl as FormControl4, FormControlLabel as FormControlLabel3, FormHelperText as FormHelperText4, Switch } from "@mui/material";
|
|
2405
|
-
import { jsx as
|
|
2508
|
+
import { jsx as jsx24, jsxs as jsxs11 } from "react/jsx-runtime";
|
|
2406
2509
|
var FormSwitch = (props) => {
|
|
2407
2510
|
const field = useFieldContext();
|
|
2408
2511
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2409
2512
|
return /* @__PURE__ */ jsxs11(FormControl4, { component: "fieldset", children: [
|
|
2410
|
-
/* @__PURE__ */
|
|
2513
|
+
/* @__PURE__ */ jsx24(
|
|
2411
2514
|
FormControlLabel3,
|
|
2412
2515
|
{
|
|
2413
|
-
control: /* @__PURE__ */
|
|
2516
|
+
control: /* @__PURE__ */ jsx24(
|
|
2414
2517
|
Switch,
|
|
2415
2518
|
{
|
|
2416
2519
|
name: field.name,
|
|
@@ -2424,17 +2527,17 @@ var FormSwitch = (props) => {
|
|
|
2424
2527
|
label: props.label ?? ""
|
|
2425
2528
|
}
|
|
2426
2529
|
),
|
|
2427
|
-
isTouched && hasError && /* @__PURE__ */
|
|
2530
|
+
isTouched && hasError && /* @__PURE__ */ jsx24(FormHelperText4, { error: hasError, children: helperText })
|
|
2428
2531
|
] });
|
|
2429
2532
|
};
|
|
2430
2533
|
|
|
2431
2534
|
// src/components/form/FormTextField.tsx
|
|
2432
2535
|
import { TextField as TextField3 } from "@mui/material";
|
|
2433
|
-
import { jsx as
|
|
2536
|
+
import { jsx as jsx25 } from "react/jsx-runtime";
|
|
2434
2537
|
var FormTextField = (props) => {
|
|
2435
2538
|
const field = useFieldContext();
|
|
2436
2539
|
const { isTouched, hasError, helperText } = getFieldStatus(field);
|
|
2437
|
-
return /* @__PURE__ */
|
|
2540
|
+
return /* @__PURE__ */ jsx25(
|
|
2438
2541
|
TextField3,
|
|
2439
2542
|
{
|
|
2440
2543
|
name: field.name,
|
|
@@ -2642,6 +2745,8 @@ export {
|
|
|
2642
2745
|
Platform,
|
|
2643
2746
|
RouterButton,
|
|
2644
2747
|
RouterError,
|
|
2748
|
+
RouterGridActionsCellItem,
|
|
2749
|
+
RouterIconButton,
|
|
2645
2750
|
RouterLink,
|
|
2646
2751
|
RouterNotFound,
|
|
2647
2752
|
RouterTab,
|