wcz-layout 6.7.2 → 7.6.1

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.

Potentially problematic release.


This version of wcz-layout might be problematic. Click here for more details.

Files changed (303) hide show
  1. package/dist/DialogsContext-BIhId-r8.js +7 -0
  2. package/dist/DialogsContext-BIhId-r8.js.map +1 -0
  3. package/dist/DialogsHooks-CZVdKmPv.js +207 -0
  4. package/dist/DialogsHooks-CZVdKmPv.js.map +1 -0
  5. package/dist/FileMeta-YGG9mxo_.js +36 -0
  6. package/dist/FileMeta-YGG9mxo_.js.map +1 -0
  7. package/dist/NotificationContext-DovR_auQ.js +7 -0
  8. package/dist/NotificationContext-DovR_auQ.js.map +1 -0
  9. package/dist/RouterListItemButton-DeaQB4ym.js +31 -0
  10. package/dist/RouterListItemButton-DeaQB4ym.js.map +1 -0
  11. package/dist/components/core/AppTitle.d.ts +2 -0
  12. package/dist/components/core/Fullscreen.d.ts +3 -0
  13. package/dist/components/core/Layout.d.ts +10 -0
  14. package/dist/{src/components/layout → components/core}/TypographyWithIcon.d.ts +1 -1
  15. package/dist/components/core/account/UserAvatar.d.ts +2 -0
  16. package/dist/components/core/account/UserMenu.d.ts +2 -0
  17. package/dist/components/core/navigation/NavigationContent.d.ts +11 -0
  18. package/dist/components/core/navigation/NavigationList.d.ts +22 -0
  19. package/dist/components/core/navigation/NavigationListItem.d.ts +16 -0
  20. package/dist/components/core/navigation/NavigationRail.d.ts +12 -0
  21. package/dist/{src/components/dataGrid → components/data-grid}/ChipInputCell.d.ts +3 -3
  22. package/dist/components/data-grid/EditableColumnHeader.d.ts +2 -0
  23. package/dist/components/file/Dropzone.d.ts +8 -0
  24. package/dist/components/file/FileViewer.d.ts +20 -0
  25. package/dist/components/file/fileViewer/FileViewerGrid.d.ts +17 -0
  26. package/dist/components/file/fileViewer/FileViewerList.d.ts +12 -0
  27. package/dist/components/file/fileViewer/ImageViewer.d.ts +6 -0
  28. package/dist/components/file/fileViewer/common/ActionsMenu.d.ts +15 -0
  29. package/dist/{src/components → components}/form/FormAutocomplete.d.ts +3 -3
  30. package/dist/{src/components → components}/form/FormCheckbox.d.ts +3 -3
  31. package/dist/components/form/FormDatePicker.d.ts +8 -0
  32. package/dist/components/form/FormDateRangePicker.d.ts +8 -0
  33. package/dist/components/form/FormDateTimePicker.d.ts +8 -0
  34. package/dist/components/form/FormDateTimeRangePicker.d.ts +8 -0
  35. package/dist/{src/components → components}/form/FormNumberField.d.ts +4 -7
  36. package/dist/{src/components → components}/form/FormRadioGroup.d.ts +4 -4
  37. package/dist/{src/components → components}/form/FormSlider.d.ts +3 -3
  38. package/dist/components/form/FormSubmitButton.d.ts +4 -0
  39. package/dist/{src/components → components}/form/FormSwitch.d.ts +3 -3
  40. package/dist/{src/components → components}/form/FormTextField.d.ts +3 -3
  41. package/dist/components/form/FormTimePicker.d.ts +8 -0
  42. package/dist/components/form/FormTimeRangePicker.d.ts +8 -0
  43. package/dist/components/router/RouterButton.d.ts +6 -0
  44. package/dist/components/router/RouterError.d.ts +7 -0
  45. package/dist/components/router/RouterFab.d.ts +6 -0
  46. package/dist/components/router/RouterGridActionsCellItem.d.ts +6 -0
  47. package/dist/components/router/RouterIconButton.d.ts +6 -0
  48. package/dist/components/router/RouterLink.d.ts +6 -0
  49. package/dist/components/router/RouterListItemButton.d.ts +6 -0
  50. package/dist/components/router/RouterNotFound.d.ts +1 -0
  51. package/dist/components/router/RouterTab.d.ts +6 -0
  52. package/dist/components.js +3255 -0
  53. package/dist/components.js.map +1 -0
  54. package/dist/contexts/DialogsContext.d.ts +6 -0
  55. package/dist/contexts/FileContext.d.ts +13 -0
  56. package/dist/contexts/NotificationContext.d.ts +9 -0
  57. package/dist/dist-Bxzg1_9c.js +152 -0
  58. package/dist/dist-Bxzg1_9c.js.map +1 -0
  59. package/dist/exports/components.d.ts +15 -0
  60. package/dist/exports/hooks.d.ts +7 -0
  61. package/dist/exports/index.d.ts +5 -0
  62. package/dist/exports/middleware.d.ts +2 -0
  63. package/dist/exports/models.d.ts +24 -0
  64. package/dist/exports/query.d.ts +3 -0
  65. package/dist/exports/utils.d.ts +6 -0
  66. package/dist/exports/vite.d.ts +1 -0
  67. package/dist/hooks/DialogsHooks.d.ts +42 -0
  68. package/dist/hooks/FormHooks.d.ts +52 -0
  69. package/dist/hooks/UseNotification.d.ts +1 -0
  70. package/dist/hooks/UseScanDetection.d.ts +28 -0
  71. package/dist/hooks.js +1075 -0
  72. package/dist/hooks.js.map +1 -0
  73. package/dist/index.js +1105 -0
  74. package/dist/index.js.map +1 -0
  75. package/dist/lib/auth/msalClient.d.ts +19 -0
  76. package/dist/lib/auth/msalServer.d.ts +11 -0
  77. package/dist/lib/auth/permissions.d.ts +4 -0
  78. package/dist/lib/auth/scopes.d.ts +4 -0
  79. package/dist/lib/db/collections/userCollection.d.ts +18 -0
  80. package/dist/lib/queryClient.d.ts +2 -0
  81. package/dist/lib/theme.d.ts +1 -0
  82. package/dist/lib/utils.d.ts +63 -0
  83. package/dist/lib/vite-plugin.d.ts +2 -0
  84. package/dist/middleware/authMiddleware.d.ts +22 -0
  85. package/dist/middleware/validationMiddleware.d.ts +4 -0
  86. package/dist/middleware.js +1051 -0
  87. package/dist/middleware.js.map +1 -0
  88. package/dist/models/LayoutOptions.d.ts +7 -0
  89. package/dist/models/Navigation.d.ts +18 -0
  90. package/dist/models/TokenPayload.d.ts +9 -0
  91. package/dist/models/User.d.ts +10 -0
  92. package/dist/models/VaultConfig.d.ts +9 -0
  93. package/dist/models/approval/Approval.d.ts +177 -0
  94. package/dist/models/approval/ApprovalEmployee.d.ts +7 -0
  95. package/dist/models/approval/ApprovalFlow.d.ts +49 -0
  96. package/dist/models/approval/ApprovalFlowStep.d.ts +29 -0
  97. package/dist/models/approval/ApprovalRequestType.d.ts +5 -0
  98. package/dist/models/approval/ApprovalStatus.d.ts +9 -0
  99. package/dist/models/approval/ApprovalStepResult.d.ts +11 -0
  100. package/dist/models/approval/StepApprovalOrder.d.ts +6 -0
  101. package/dist/models/email/Email.d.ts +13 -0
  102. package/dist/models/email/EmailAttachment.d.ts +6 -0
  103. package/dist/models/file/FileActions.d.ts +6 -0
  104. package/dist/models/file/FileMeta.d.ts +15 -0
  105. package/dist/models/peoplesoft/Department.d.ts +58 -0
  106. package/dist/models/peoplesoft/Employee.d.ts +46 -0
  107. package/dist/models/peoplesoft/EmployeeCategoryGroup.d.ts +6 -0
  108. package/dist/models/peoplesoft/EmployeeStatus.d.ts +6 -0
  109. package/dist/models.js +150 -0
  110. package/dist/models.js.map +1 -0
  111. package/dist/providers/DialogsProvider.d.ts +5 -0
  112. package/dist/providers/LayoutProvider.d.ts +12 -0
  113. package/dist/providers/MsalAuthProvider.d.ts +6 -0
  114. package/dist/providers/NotificationProvider.d.ts +7 -0
  115. package/dist/queries/ApprovalQueries.d.ts +661 -0
  116. package/dist/queries/FileQueries.d.ts +205 -0
  117. package/dist/queries/PeopleSoftQueries.d.ts +2173 -0
  118. package/dist/queries/index.d.ts +2958 -0
  119. package/dist/queries-D-DV5lCw.js +2941 -0
  120. package/dist/queries-D-DV5lCw.js.map +1 -0
  121. package/dist/query.js +3 -0
  122. package/dist/queryClient-B__OEZ70.js +7 -0
  123. package/dist/queryClient-B__OEZ70.js.map +1 -0
  124. package/dist/utils-C4oJ0tr5.js +157 -0
  125. package/dist/utils-C4oJ0tr5.js.map +1 -0
  126. package/dist/utils.js +35 -0
  127. package/dist/utils.js.map +1 -0
  128. package/dist/vite.js +110 -0
  129. package/dist/vite.js.map +1 -0
  130. package/package.json +132 -62
  131. package/dist/src/components/Layout.d.ts +0 -16
  132. package/dist/src/components/Layout.js +0 -122
  133. package/dist/src/components/Layout.js.map +0 -1
  134. package/dist/src/components/dataGrid/ChipInputCell.js +0 -17
  135. package/dist/src/components/dataGrid/ChipInputCell.js.map +0 -1
  136. package/dist/src/components/dataGrid/EditableColumnHeader.d.ts +0 -2
  137. package/dist/src/components/dataGrid/EditableColumnHeader.js +0 -7
  138. package/dist/src/components/dataGrid/EditableColumnHeader.js.map +0 -1
  139. package/dist/src/components/dataGrid/GridToolbar.d.ts +0 -8
  140. package/dist/src/components/dataGrid/GridToolbar.js +0 -40
  141. package/dist/src/components/dataGrid/GridToolbar.js.map +0 -1
  142. package/dist/src/components/dataGrid/TableContainer.d.ts +0 -3
  143. package/dist/src/components/dataGrid/TableContainer.js +0 -32
  144. package/dist/src/components/dataGrid/TableContainer.js.map +0 -1
  145. package/dist/src/components/form/FormAutocomplete.js +0 -10
  146. package/dist/src/components/form/FormAutocomplete.js.map +0 -1
  147. package/dist/src/components/form/FormCheckbox.js +0 -11
  148. package/dist/src/components/form/FormCheckbox.js.map +0 -1
  149. package/dist/src/components/form/FormDatePicker.d.ts +0 -9
  150. package/dist/src/components/form/FormDatePicker.js +0 -19
  151. package/dist/src/components/form/FormDatePicker.js.map +0 -1
  152. package/dist/src/components/form/FormDateTimePicker.d.ts +0 -9
  153. package/dist/src/components/form/FormDateTimePicker.js +0 -19
  154. package/dist/src/components/form/FormDateTimePicker.js.map +0 -1
  155. package/dist/src/components/form/FormNumberField.js +0 -12
  156. package/dist/src/components/form/FormNumberField.js.map +0 -1
  157. package/dist/src/components/form/FormRadioGroup.js +0 -11
  158. package/dist/src/components/form/FormRadioGroup.js.map +0 -1
  159. package/dist/src/components/form/FormSlider.js +0 -11
  160. package/dist/src/components/form/FormSlider.js.map +0 -1
  161. package/dist/src/components/form/FormSubmitButton.d.ts +0 -5
  162. package/dist/src/components/form/FormSubmitButton.js +0 -13
  163. package/dist/src/components/form/FormSubmitButton.js.map +0 -1
  164. package/dist/src/components/form/FormSwitch.js +0 -11
  165. package/dist/src/components/form/FormSwitch.js.map +0 -1
  166. package/dist/src/components/form/FormTextField.js +0 -11
  167. package/dist/src/components/form/FormTextField.js.map +0 -1
  168. package/dist/src/components/layout/AccountMenu.d.ts +0 -9
  169. package/dist/src/components/layout/AccountMenu.js +0 -44
  170. package/dist/src/components/layout/AccountMenu.js.map +0 -1
  171. package/dist/src/components/layout/DevelopmentBanner.d.ts +0 -7
  172. package/dist/src/components/layout/DevelopmentBanner.js +0 -29
  173. package/dist/src/components/layout/DevelopmentBanner.js.map +0 -1
  174. package/dist/src/components/layout/ErrorPage.d.ts +0 -2
  175. package/dist/src/components/layout/ErrorPage.js +0 -25
  176. package/dist/src/components/layout/ErrorPage.js.map +0 -1
  177. package/dist/src/components/layout/LayoutDialog.d.ts +0 -12
  178. package/dist/src/components/layout/LayoutDialog.js +0 -12
  179. package/dist/src/components/layout/LayoutDialog.js.map +0 -1
  180. package/dist/src/components/layout/LayoutSnackbar.d.ts +0 -8
  181. package/dist/src/components/layout/LayoutSnackbar.js +0 -25
  182. package/dist/src/components/layout/LayoutSnackbar.js.map +0 -1
  183. package/dist/src/components/layout/NavigationDrawer.d.ts +0 -11
  184. package/dist/src/components/layout/NavigationDrawer.js +0 -70
  185. package/dist/src/components/layout/NavigationDrawer.js.map +0 -1
  186. package/dist/src/components/layout/NotificationMenu.d.ts +0 -8
  187. package/dist/src/components/layout/NotificationMenu.js +0 -26
  188. package/dist/src/components/layout/NotificationMenu.js.map +0 -1
  189. package/dist/src/components/layout/TypographyWithIcon.js +0 -22
  190. package/dist/src/components/layout/TypographyWithIcon.js.map +0 -1
  191. package/dist/src/components/layout/Unauthorized.d.ts +0 -2
  192. package/dist/src/components/layout/Unauthorized.js +0 -26
  193. package/dist/src/components/layout/Unauthorized.js.map +0 -1
  194. package/dist/src/contexts/LayoutContext.d.ts +0 -40
  195. package/dist/src/contexts/LayoutContext.js +0 -60
  196. package/dist/src/contexts/LayoutContext.js.map +0 -1
  197. package/dist/src/contexts/UserContext.d.ts +0 -24
  198. package/dist/src/contexts/UserContext.js +0 -55
  199. package/dist/src/contexts/UserContext.js.map +0 -1
  200. package/dist/src/hooks/FormHooks.d.ts +0 -46
  201. package/dist/src/hooks/FormHooks.js +0 -31
  202. package/dist/src/hooks/FormHooks.js.map +0 -1
  203. package/dist/src/hooks/UseSnackbar.d.ts +0 -10
  204. package/dist/src/hooks/UseSnackbar.js +0 -23
  205. package/dist/src/hooks/UseSnackbar.js.map +0 -1
  206. package/dist/src/hooks/UseUser.d.ts +0 -10
  207. package/dist/src/hooks/UseUser.js +0 -25
  208. package/dist/src/hooks/UseUser.js.map +0 -1
  209. package/dist/src/index.d.ts +0 -20
  210. package/dist/src/index.js +0 -15
  211. package/dist/src/index.js.map +0 -1
  212. package/dist/src/models/Error.d.ts +0 -6
  213. package/dist/src/models/Error.js +0 -2
  214. package/dist/src/models/Error.js.map +0 -1
  215. package/dist/src/models/KeycloakSettings.d.ts +0 -8
  216. package/dist/src/models/KeycloakSettings.js +0 -2
  217. package/dist/src/models/KeycloakSettings.js.map +0 -1
  218. package/dist/src/models/LayoutPaletteColorOptions.d.ts +0 -6
  219. package/dist/src/models/LayoutPaletteColorOptions.js +0 -2
  220. package/dist/src/models/LayoutPaletteColorOptions.js.map +0 -1
  221. package/dist/src/models/LayoutRoute.d.ts +0 -14
  222. package/dist/src/models/LayoutRoute.js +0 -2
  223. package/dist/src/models/LayoutRoute.js.map +0 -1
  224. package/dist/src/models/Notification.d.ts +0 -9
  225. package/dist/src/models/Notification.js +0 -2
  226. package/dist/src/models/Notification.js.map +0 -1
  227. package/dist/src/models/PeoplesoftDepartment.d.ts +0 -14
  228. package/dist/src/models/PeoplesoftDepartment.js +0 -2
  229. package/dist/src/models/PeoplesoftDepartment.js.map +0 -1
  230. package/dist/src/models/PeoplesoftEmployee.d.ts +0 -34
  231. package/dist/src/models/PeoplesoftEmployee.js +0 -2
  232. package/dist/src/models/PeoplesoftEmployee.js.map +0 -1
  233. package/dist/src/models/Snackbar.d.ts +0 -15
  234. package/dist/src/models/Snackbar.js +0 -2
  235. package/dist/src/models/Snackbar.js.map +0 -1
  236. package/dist/src/models/User.d.ts +0 -27
  237. package/dist/src/models/User.js +0 -11
  238. package/dist/src/models/User.js.map +0 -1
  239. package/dist/src/models/types/EmployeeCategoryGroup.d.ts +0 -1
  240. package/dist/src/models/types/EmployeeCategoryGroup.js +0 -2
  241. package/dist/src/models/types/EmployeeCategoryGroup.js.map +0 -1
  242. package/dist/src/models/types/EmployeeStatus.d.ts +0 -1
  243. package/dist/src/models/types/EmployeeStatus.js +0 -2
  244. package/dist/src/models/types/EmployeeStatus.js.map +0 -1
  245. package/dist/src/utils/Auth.d.ts +0 -12
  246. package/dist/src/utils/Auth.js +0 -49
  247. package/dist/src/utils/Auth.js.map +0 -1
  248. package/dist/src/utils/Fetches.d.ts +0 -5
  249. package/dist/src/utils/Fetches.js +0 -66
  250. package/dist/src/utils/Fetches.js.map +0 -1
  251. package/dist/src/utils/FormUtils.d.ts +0 -7
  252. package/dist/src/utils/FormUtils.js +0 -9
  253. package/dist/src/utils/FormUtils.js.map +0 -1
  254. package/dist/src/utils/Helpers.d.ts +0 -11
  255. package/dist/src/utils/Helpers.js +0 -26
  256. package/dist/src/utils/Helpers.js.map +0 -1
  257. package/dist/tsconfig.tsbuildinfo +0 -1
  258. package/src/components/Layout.tsx +0 -183
  259. package/src/components/dataGrid/ChipInputCell.tsx +0 -31
  260. package/src/components/dataGrid/EditableColumnHeader.tsx +0 -7
  261. package/src/components/dataGrid/GridToolbar.tsx +0 -63
  262. package/src/components/dataGrid/TableContainer.tsx +0 -39
  263. package/src/components/form/FormAutocomplete.tsx +0 -34
  264. package/src/components/form/FormCheckbox.tsx +0 -32
  265. package/src/components/form/FormDatePicker.tsx +0 -34
  266. package/src/components/form/FormDateTimePicker.tsx +0 -34
  267. package/src/components/form/FormNumberField.tsx +0 -33
  268. package/src/components/form/FormRadioGroup.tsx +0 -43
  269. package/src/components/form/FormSlider.tsx +0 -28
  270. package/src/components/form/FormSubmitButton.tsx +0 -29
  271. package/src/components/form/FormSwitch.tsx +0 -32
  272. package/src/components/form/FormTextField.tsx +0 -26
  273. package/src/components/layout/AccountMenu.tsx +0 -160
  274. package/src/components/layout/DevelopmentBanner.tsx +0 -54
  275. package/src/components/layout/ErrorPage.tsx +0 -34
  276. package/src/components/layout/LayoutDialog.tsx +0 -50
  277. package/src/components/layout/LayoutSnackbar.tsx +0 -44
  278. package/src/components/layout/NavigationDrawer.tsx +0 -131
  279. package/src/components/layout/NotificationMenu.tsx +0 -76
  280. package/src/components/layout/TypographyWithIcon.tsx +0 -35
  281. package/src/components/layout/Unauthorized.tsx +0 -37
  282. package/src/contexts/LayoutContext.tsx +0 -127
  283. package/src/contexts/UserContext.tsx +0 -88
  284. package/src/hooks/FormHooks.ts +0 -33
  285. package/src/hooks/UseSnackbar.tsx +0 -28
  286. package/src/hooks/UseUser.tsx +0 -29
  287. package/src/index.ts +0 -27
  288. package/src/models/Error.tsx +0 -6
  289. package/src/models/KeycloakSettings.ts +0 -8
  290. package/src/models/LayoutPaletteColorOptions.tsx +0 -7
  291. package/src/models/LayoutRoute.ts +0 -15
  292. package/src/models/Notification.ts +0 -10
  293. package/src/models/PeoplesoftDepartment.ts +0 -15
  294. package/src/models/PeoplesoftEmployee.ts +0 -35
  295. package/src/models/Snackbar.ts +0 -16
  296. package/src/models/User.ts +0 -13
  297. package/src/models/types/EmployeeCategoryGroup.ts +0 -1
  298. package/src/models/types/EmployeeStatus.ts +0 -1
  299. package/src/utils/Auth.ts +0 -58
  300. package/src/utils/Fetches.ts +0 -83
  301. package/src/utils/FormUtils.ts +0 -22
  302. package/src/utils/Helpers.ts +0 -27
  303. package/tsconfig.json +0 -29
@@ -1,122 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Menu } from "@mui/icons-material";
3
- import { Box, Chip, CssBaseline, IconButton, LinearProgress, AppBar as MuiAppBar, Toolbar, Typography, useMediaQuery } from "@mui/material";
4
- import { grey } from "@mui/material/colors";
5
- import { csCZ, enUS } from "@mui/material/locale";
6
- import { ThemeProvider, createTheme, styled } from "@mui/material/styles";
7
- import { csCZ as dataGridCsCz, enUS as dataGridEnUs } from "@mui/x-data-grid-premium/locales";
8
- import { csCZ as datePickersCsCz, enUS as datePickersEnUs } from "@mui/x-date-pickers-pro/locales";
9
- import { useIsFetching, useIsMutating } from "@tanstack/react-query";
10
- import { useEffect, useState } from "react";
11
- import { useTranslation } from "react-i18next";
12
- import { matchPath, useLocation } from "react-router-dom";
13
- import { environment } from "../utils/Helpers";
14
- import { AccountMenu } from "./layout/AccountMenu";
15
- import { DevelopmentBanner } from "./layout/DevelopmentBanner";
16
- import { NavigationDrawer } from "./layout/NavigationDrawer";
17
- import { NotificationMenu } from "./layout/NotificationMenu";
18
- import { Unauthorized } from "./layout/Unauthorized";
19
- import useLocalStorageState from "use-local-storage-state";
20
- import { useIsAuthenticated, useMsal } from "@azure/msal-react";
21
- import { InteractionStatus } from "@azure/msal-browser";
22
- //Drawer
23
- const drawerWidth = 240;
24
- const DrawerHeader = styled("div")(({ theme }) => ({
25
- display: "flex",
26
- alignItems: "center",
27
- justifyContent: "flex-end",
28
- padding: theme.spacing(0, 1),
29
- // necessary for content to be below app bar
30
- ...theme.mixins.toolbar,
31
- }));
32
- const AppBar = styled(MuiAppBar, {
33
- shouldForwardProp: (prop) => prop !== "open",
34
- })(({ theme, open }) => ({
35
- zIndex: theme.zIndex.drawer + 1,
36
- transition: theme.transitions.create(["width", "margin"], {
37
- easing: theme.transitions.easing.sharp,
38
- duration: theme.transitions.duration.leavingScreen,
39
- }),
40
- ...(open && {
41
- marginLeft: drawerWidth,
42
- width: `calc(100% - ${drawerWidth}px)`,
43
- transition: theme.transitions.create(["width", "margin"], {
44
- easing: theme.transitions.easing.sharp,
45
- duration: theme.transitions.duration.enteringScreen,
46
- }),
47
- }),
48
- }));
49
- const getAllRoutesWithPath = (routes) => {
50
- let result = [];
51
- for (const route of routes) {
52
- if (route.path) {
53
- result.push(route);
54
- }
55
- if (route.children) {
56
- result = result.concat(getAllRoutesWithPath(route.children));
57
- }
58
- }
59
- return result;
60
- };
61
- export const Layout = ({ routes, colors, appVersion, user, notifications, setNotifications, children }) => {
62
- var _a, _b, _c, _d, _e;
63
- const prefersDarkMode = useMediaQuery("(prefers-color-scheme: dark)");
64
- const [mode, setMode] = useLocalStorageState("mui-mode", { defaultValue: "system" });
65
- const [leftDrawerOpen, setLeftDrawerOpen] = useState(false);
66
- const { i18n } = useTranslation();
67
- const isFetching = !!useIsFetching();
68
- const isMutating = !!useIsMutating();
69
- const location = useLocation();
70
- const navigationRoutes = getAllRoutesWithPath(routes);
71
- const route = navigationRoutes.find(r => matchPath(r.path, location.pathname));
72
- const { instance, inProgress } = useMsal();
73
- const isAuthenticated = useIsAuthenticated();
74
- useEffect(() => {
75
- if (route.authenticated !== false && !isAuthenticated && inProgress === InteractionStatus.None)
76
- instance.loginRedirect({ scopes: [], redirectUri: "/" });
77
- }, [route, isAuthenticated, inProgress]);
78
- const resolvedMode = mode === "system" ? (prefersDarkMode ? "dark" : "light") : mode;
79
- const theme = createTheme({
80
- palette: {
81
- mode: resolvedMode,
82
- primary: { main: ((_a = colors.primary) === null || _a === void 0 ? void 0 : _a[resolvedMode]) || ((_b = colors.primary) === null || _b === void 0 ? void 0 : _b.main), },
83
- secondary: { main: ((_c = colors.secondary) === null || _c === void 0 ? void 0 : _c[resolvedMode]) || ((_d = colors.secondary) === null || _d === void 0 ? void 0 : _d.main), },
84
- background: resolvedMode === "light" && colors.background ? { default: colors.background.default, paper: colors.background.paper, } : {},
85
- },
86
- components: {
87
- MuiCssBaseline: {
88
- styleOverrides: (theme) => ({
89
- body: {
90
- "&::-webkit-scrollbar, & *::-webkit-scrollbar": {
91
- width: "0.7em",
92
- height: "0.7em",
93
- },
94
- "&::-webkit-scrollbar-track, & *::-webkit-scrollbar-track": {
95
- backgroundColor: theme.palette.mode === "dark" ? grey[900] : grey[200],
96
- borderRadius: "5px",
97
- },
98
- "&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb": {
99
- backgroundColor: theme.palette.mode === "dark" ? grey[800] : grey[400],
100
- borderRadius: "10px",
101
- },
102
- "&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover": {
103
- backgroundColor: theme.palette.mode === "dark" ? grey[700] : grey[500],
104
- },
105
- "&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner": {
106
- backgroundColor: "transparent",
107
- },
108
- },
109
- }),
110
- },
111
- },
112
- }, i18n.language === "cs" ? datePickersCsCz : datePickersEnUs, i18n.language === "cs" ? dataGridCsCz : dataGridEnUs, i18n.language === "cs" ? csCZ : enUS);
113
- const title = (_e = route.pageTitle) !== null && _e !== void 0 ? _e : route.title;
114
- useEffect(() => {
115
- if (title)
116
- document.title = title;
117
- }, [title]);
118
- const toggleNavigationDrawer = () => setLeftDrawerOpen(!leftDrawerOpen);
119
- const hasNavigationRoutes = navigationRoutes.filter(route => route.showInMenu && !route.disabled).length > 1;
120
- return (_jsxs(ThemeProvider, { theme: theme, children: [_jsxs(Box, { sx: { display: "flex", position: "sticky" }, children: [_jsx(CssBaseline, {}), _jsx(AppBar, { position: "fixed", open: leftDrawerOpen, children: _jsxs(Toolbar, { children: [_jsx(IconButton, { color: "inherit", onClick: toggleNavigationDrawer, edge: "start", sx: { marginRight: 2, ...((leftDrawerOpen || !hasNavigationRoutes) && { display: "none" }) }, children: _jsx(Menu, {}) }), _jsx(Typography, { variant: "h6", noWrap: true, component: "div", sx: { flexGrow: 1 }, children: title }), environment !== "prd" && _jsx(Chip, { sx: theme => ({ mr: 1, bgcolor: "secondary.main", color: theme.palette.primary.contrastText }), label: environment }), _jsx(NotificationMenu, { notifications: notifications, setNotifications: setNotifications }), _jsx(AccountMenu, { mode: mode, setMode: setMode, user: user })] }) }), _jsx(NavigationDrawer, { routes: navigationRoutes, appVersion: appVersion, open: leftDrawerOpen, setOpen: setLeftDrawerOpen, hasRoutes: hasNavigationRoutes }), _jsxs(Box, { component: "main", sx: { flex: 1, overflow: "auto" }, children: [_jsx(DrawerHeader, {}), (route.authenticated === false || isAuthenticated) && !route.disabled ? children : _jsx(Unauthorized, {})] })] }), _jsx(DevelopmentBanner, { user: user, hasNavigationRoutes: hasNavigationRoutes }), (isFetching || isMutating) && _jsx(LinearProgress, { sx: { position: "fixed", top: { xs: 56, sm: 64 }, left: 0, right: 0 } })] }));
121
- };
122
- //# sourceMappingURL=Layout.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"Layout.js","sourceRoot":"","sources":["../../../src/components/Layout.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Menu } from \"@mui/icons-material\";\r\nimport { Box, Chip, CssBaseline, IconButton, LinearProgress, AppBar as MuiAppBar, AppBarProps as MuiAppBarProps, Theme, Toolbar, Typography, useMediaQuery } from \"@mui/material\";\r\nimport { grey } from \"@mui/material/colors\";\r\nimport { csCZ, enUS } from \"@mui/material/locale\";\r\nimport { ThemeProvider, createTheme, styled } from \"@mui/material/styles\";\r\nimport { csCZ as dataGridCsCz, enUS as dataGridEnUs } from \"@mui/x-data-grid-premium/locales\";\r\nimport { csCZ as datePickersCsCz, enUS as datePickersEnUs } from \"@mui/x-date-pickers-pro/locales\";\r\nimport { useIsFetching, useIsMutating } from \"@tanstack/react-query\";\r\nimport React, { Dispatch, SetStateAction, useEffect, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { matchPath, useLocation } from \"react-router-dom\";\r\nimport { LayoutPaletteColorOptions } from \"../models/LayoutPaletteColorOptions\";\r\nimport { LayoutRoute } from \"../models/LayoutRoute\";\r\nimport Notification from \"../models/Notification\";\r\nimport { User } from \"../models/User\";\r\nimport { environment } from \"../utils/Helpers\";\r\nimport { AccountMenu } from \"./layout/AccountMenu\";\r\nimport { DevelopmentBanner } from \"./layout/DevelopmentBanner\";\r\nimport { NavigationDrawer } from \"./layout/NavigationDrawer\";\r\nimport { NotificationMenu } from \"./layout/NotificationMenu\";\r\nimport { Unauthorized } from \"./layout/Unauthorized\";\r\nimport useLocalStorageState from \"use-local-storage-state\";\r\nimport { useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport { InteractionStatus } from \"@azure/msal-browser\";\r\n\r\n//Drawer\r\nconst drawerWidth = 240;\r\nconst DrawerHeader = styled(\"div\")(({ theme }) => ({\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n justifyContent: \"flex-end\",\r\n padding: theme.spacing(0, 1),\r\n // necessary for content to be below app bar\r\n ...theme.mixins.toolbar,\r\n}));\r\n\r\n//AppBar\r\ninterface AppBarProps extends MuiAppBarProps {\r\n open?: boolean;\r\n}\r\n\r\nconst AppBar = styled(MuiAppBar, {\r\n shouldForwardProp: (prop) => prop !== \"open\",\r\n})<AppBarProps>(({ theme, open }) => ({\r\n zIndex: theme.zIndex.drawer + 1,\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.leavingScreen,\r\n }),\r\n ...(open && {\r\n marginLeft: drawerWidth,\r\n width: `calc(100% - ${drawerWidth}px)`,\r\n transition: theme.transitions.create([\"width\", \"margin\"], {\r\n easing: theme.transitions.easing.sharp,\r\n duration: theme.transitions.duration.enteringScreen,\r\n }),\r\n }),\r\n}));\r\n\r\nconst getAllRoutesWithPath = (routes: LayoutRoute[]): LayoutRoute[] => {\r\n let result: LayoutRoute[] = [];\r\n for (const route of routes) {\r\n if (route.path) {\r\n result.push(route);\r\n }\r\n if (route.children) {\r\n result = result.concat(getAllRoutesWithPath(route.children));\r\n }\r\n }\r\n return result;\r\n};\r\n\r\ninterface LayoutProps {\r\n routes: LayoutRoute[];\r\n appVersion: string;\r\n colors: LayoutPaletteColorOptions;\r\n children: React.ReactNode;\r\n user: User;\r\n notifications: Notification[] | undefined;\r\n setNotifications: Dispatch<SetStateAction<Notification[] | undefined>>;\r\n}\r\n\r\nexport const Layout: React.FC<LayoutProps> = ({ routes, colors, appVersion, user, notifications, setNotifications, children }) => {\r\n const prefersDarkMode: boolean = useMediaQuery(\"(prefers-color-scheme: dark)\");\r\n const [mode, setMode] = useLocalStorageState<\"light\" | \"dark\" | \"system\">(\"mui-mode\", { defaultValue: \"system\" });\r\n const [leftDrawerOpen, setLeftDrawerOpen] = useState<boolean>(false);\r\n const { i18n } = useTranslation();\r\n const isFetching = !!useIsFetching();\r\n const isMutating = !!useIsMutating();\r\n const location = useLocation();\r\n const navigationRoutes = getAllRoutesWithPath(routes);\r\n const route = navigationRoutes.find(r => matchPath(r.path!, location.pathname))!;\r\n const { instance, inProgress } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n\r\n useEffect(() => {\r\n if (route.authenticated !== false && !isAuthenticated && inProgress === InteractionStatus.None)\r\n instance.loginRedirect({ scopes: [], redirectUri: \"/\" });\r\n }, [route, isAuthenticated, inProgress]);\r\n\r\n const resolvedMode = mode === \"system\" ? (prefersDarkMode ? \"dark\" : \"light\") : mode;\r\n\r\n const theme: Theme = createTheme({\r\n palette: {\r\n mode: resolvedMode,\r\n primary: { main: (colors.primary as any)?.[resolvedMode] || (colors.primary as any)?.main, },\r\n secondary: { main: (colors.secondary as any)?.[resolvedMode] || (colors.secondary as any)?.main, },\r\n background: resolvedMode === \"light\" && colors.background ? { default: colors.background.default, paper: colors.background.paper, } : {},\r\n },\r\n components: {\r\n MuiCssBaseline: {\r\n styleOverrides: (theme) => ({\r\n body: {\r\n \"&::-webkit-scrollbar, & *::-webkit-scrollbar\": {\r\n width: \"0.7em\",\r\n height: \"0.7em\",\r\n },\r\n \"&::-webkit-scrollbar-track, & *::-webkit-scrollbar-track\": {\r\n backgroundColor: theme.palette.mode === \"dark\" ? grey[900] : grey[200],\r\n borderRadius: \"5px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb, & *::-webkit-scrollbar-thumb\": {\r\n backgroundColor: theme.palette.mode === \"dark\" ? grey[800] : grey[400],\r\n borderRadius: \"10px\",\r\n },\r\n \"&::-webkit-scrollbar-thumb:hover, & *::-webkit-scrollbar-thumb:hover\": {\r\n backgroundColor: theme.palette.mode === \"dark\" ? grey[700] : grey[500],\r\n },\r\n \"&::-webkit-scrollbar-corner, & *::-webkit-scrollbar-corner\": {\r\n backgroundColor: \"transparent\",\r\n },\r\n },\r\n }),\r\n },\r\n },\r\n },\r\n i18n.language === \"cs\" ? datePickersCsCz : datePickersEnUs,\r\n i18n.language === \"cs\" ? dataGridCsCz : dataGridEnUs,\r\n i18n.language === \"cs\" ? csCZ : enUS\r\n );\r\n\r\n const title = route.pageTitle ?? route.title;\r\n\r\n useEffect(() => {\r\n if (title) document.title = title;\r\n }, [title]);\r\n\r\n const toggleNavigationDrawer = () => setLeftDrawerOpen(!leftDrawerOpen);\r\n\r\n const hasNavigationRoutes: boolean = navigationRoutes.filter(route => route.showInMenu && !route.disabled).length > 1;\r\n\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <Box sx={{ display: \"flex\", position: \"sticky\" }}>\r\n <CssBaseline />\r\n <AppBar position=\"fixed\" open={leftDrawerOpen}>\r\n <Toolbar>\r\n <IconButton color=\"inherit\" onClick={toggleNavigationDrawer} edge=\"start\" sx={{ marginRight: 2, ...((leftDrawerOpen || !hasNavigationRoutes) && { display: \"none\" }) }} >\r\n <Menu />\r\n </IconButton>\r\n\r\n <Typography variant=\"h6\" noWrap component=\"div\" sx={{ flexGrow: 1 }}>{title}</Typography>\r\n\r\n {environment !== \"prd\" && <Chip sx={theme => ({ mr: 1, bgcolor: \"secondary.main\", color: theme.palette.primary.contrastText })} label={environment} />}\r\n\r\n <NotificationMenu notifications={notifications} setNotifications={setNotifications} />\r\n <AccountMenu mode={mode} setMode={setMode} user={user}/>\r\n </Toolbar>\r\n </AppBar>\r\n\r\n <NavigationDrawer routes={navigationRoutes} appVersion={appVersion} open={leftDrawerOpen} setOpen={setLeftDrawerOpen} hasRoutes={hasNavigationRoutes} />\r\n\r\n <Box component=\"main\" sx={{ flex: 1, overflow: \"auto\" }}>\r\n <DrawerHeader />\r\n {(route.authenticated === false || isAuthenticated) && !route.disabled ? children : <Unauthorized />}\r\n </Box>\r\n </Box>\r\n\r\n <DevelopmentBanner user={user} hasNavigationRoutes={hasNavigationRoutes} />\r\n {(isFetching || isMutating) && <LinearProgress sx={{ position: \"fixed\", top: { xs: 56, sm: 64 }, left: 0, right: 0 }} />}\r\n </ThemeProvider>\r\n );\r\n};\r\n"]}
@@ -1,17 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Chip, Stack } from "@mui/material";
3
- import { newGuid } from "../../utils/Helpers";
4
- const isArray = (value) => Array.isArray(value);
5
- export const ChipInputCell = ({ params, slotProps, getLabel }) => {
6
- if (!params.value)
7
- return null;
8
- const getLabelValue = (value) => {
9
- if (getLabel)
10
- return getLabel(value);
11
- return value;
12
- };
13
- if (isArray(params.value))
14
- return (_jsx(Stack, { direction: "row", alignItems: "center", gap: 1, sx: { overflowX: "auto", height: "100%", width: params.colDef.computedWidth }, children: params.value.map((value) => _jsx(Chip, { label: getLabelValue(value), ...slotProps }, newGuid())) }));
15
- return _jsx(Chip, { label: getLabelValue(params.value), ...slotProps });
16
- };
17
- //# sourceMappingURL=ChipInputCell.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ChipInputCell.js","sourceRoot":"","sources":["../../../../src/components/dataGrid/ChipInputCell.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAa,KAAK,EAAE,MAAM,eAAe,CAAC;AAEvD,OAAO,EAAE,OAAO,EAAE,MAAM,qBAAqB,CAAC;AAE9C,MAAM,OAAO,GAAG,CAAC,KAAU,EAAE,EAAE,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC;AAQrD,MAAM,CAAC,MAAM,aAAa,GAAG,CAA8B,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAyB,EAAE,EAAE;IACjH,IAAI,CAAC,MAAM,CAAC,KAAK;QAAE,OAAO,IAAI,CAAC;IAE/B,MAAM,aAAa,GAAG,CAAC,KAAU,EAAE,EAAE;QACjC,IAAI,QAAQ;YAAE,OAAO,QAAQ,CAAC,KAAK,CAAC,CAAC;QACrC,OAAO,KAAK,CAAC;IACjB,CAAC,CAAC;IAEF,IAAI,OAAO,CAAC,MAAM,CAAC,KAAK,CAAC;QACrB,OAAO,CACH,KAAC,KAAK,IAAC,SAAS,EAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAC,GAAG,EAAE,CAAC,EAAE,EAAE,EAAE,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,aAAa,EAAE,YAC3H,MAAM,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,KAAU,EAAE,EAAE,CAC7B,KAAC,IAAI,IAAiB,KAAK,EAAE,aAAa,CAAC,KAAK,CAAC,KAAM,SAAS,IAArD,OAAO,EAAE,CAAgD,CACvE,GACG,CACX,CAAC;IAEN,OAAO,KAAC,IAAI,IAAC,KAAK,EAAE,aAAa,CAAC,MAAM,CAAC,KAAK,CAAC,KAAM,SAAS,GAAI,CAAC;AACvE,CAAC,CAAC","sourcesContent":["import { Chip, ChipProps, Stack } from \"@mui/material\";\r\nimport { GridRenderCellParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\r\nimport { newGuid } from \"../../utils/Helpers\";\r\n\r\nconst isArray = (value: any) => Array.isArray(value);\r\n\r\ninterface ChipInputCellProps<T extends GridValidRowModel> {\r\n params: GridRenderCellParams<T>;\r\n slotProps?: ChipProps;\r\n getLabel?: (object: T) => string | number;\r\n}\r\n\r\nexport const ChipInputCell = <T extends GridValidRowModel>({ params, slotProps, getLabel }: ChipInputCellProps<T>) => {\r\n if (!params.value) return null;\r\n\r\n const getLabelValue = (value: any) => {\r\n if (getLabel) return getLabel(value);\r\n return value;\r\n };\r\n\r\n if (isArray(params.value))\r\n return (\r\n <Stack direction=\"row\" alignItems=\"center\" gap={1} sx={{ overflowX: \"auto\", height: \"100%\", width: params.colDef.computedWidth }}>\r\n {params.value.map((value: any) =>\r\n <Chip key={newGuid()} label={getLabelValue(value)} {...slotProps} />\r\n )}\r\n </Stack>\r\n );\r\n\r\n return <Chip label={getLabelValue(params.value)} {...slotProps} />;\r\n};"]}
@@ -1,2 +0,0 @@
1
- import { GridColumnHeaderParams, GridValidRowModel } from "@mui/x-data-grid-premium";
2
- export declare const EditableColumnHeader: <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => import("react/jsx-runtime").JSX.Element;
@@ -1,7 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Edit } from "@mui/icons-material";
3
- import { TypographyWithIcon } from "../layout/TypographyWithIcon";
4
- export const EditableColumnHeader = ({ colDef }) => {
5
- return _jsx(TypographyWithIcon, { endIcon: _jsx(Edit, { color: "disabled", fontSize: "small" }), variant: "body2", className: "MuiDataGrid-columnHeaderTitle", children: colDef.headerName });
6
- };
7
- //# sourceMappingURL=EditableColumnHeader.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"EditableColumnHeader.js","sourceRoot":"","sources":["../../../../src/components/dataGrid/EditableColumnHeader.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,IAAI,EAAE,MAAM,qBAAqB,CAAC;AAE3C,OAAO,EAAE,kBAAkB,EAAE,MAAM,8BAA8B,CAAC;AAElE,MAAM,CAAC,MAAM,oBAAoB,GAAG,CAA8B,EAAE,MAAM,EAA6B,EAAE,EAAE;IACvG,OAAO,KAAC,kBAAkB,IAAC,OAAO,EAAE,KAAC,IAAI,IAAC,KAAK,EAAC,UAAU,EAAC,QAAQ,EAAC,OAAO,GAAG,EAAE,OAAO,EAAC,OAAO,EAAC,SAAS,EAAC,+BAA+B,YAAE,MAAM,CAAC,UAAU,GAAsB,CAAC;AACvL,CAAC,CAAC","sourcesContent":["import { Edit } from \"@mui/icons-material\";\r\nimport { GridColumnHeaderParams, GridValidRowModel } from \"@mui/x-data-grid-premium\";\r\nimport { TypographyWithIcon } from \"../layout/TypographyWithIcon\";\r\n\r\nexport const EditableColumnHeader = <T extends GridValidRowModel>({ colDef }: GridColumnHeaderParams<T>) => {\r\n return <TypographyWithIcon endIcon={<Edit color=\"disabled\" fontSize=\"small\" />} variant=\"body2\" className=\"MuiDataGrid-columnHeaderTitle\">{colDef.headerName}</TypographyWithIcon>;\r\n};"]}
@@ -1,8 +0,0 @@
1
- import { GridToolbarProps as MuiGridToolbarProps } from "@mui/x-data-grid-premium";
2
- import React from "react";
3
- export interface GridToolbarProps extends MuiGridToolbarProps {
4
- actions?: React.ReactNode[];
5
- hideAddNewRow?: boolean;
6
- newRowDefaultValue?: any;
7
- }
8
- export declare const GridToolbar: React.FC<GridToolbarProps>;
@@ -1,40 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Add } from "@mui/icons-material";
3
- import { Box, Button } from "@mui/material";
4
- import { GridToolbarColumnsButton, GridToolbarContainer, GridToolbarExport, GridToolbarFilterButton, GridToolbarQuickFilter, useGridApiContext } from "@mui/x-data-grid-premium";
5
- import { useContext } from "react";
6
- import { LayoutContext } from "../../contexts/LayoutContext";
7
- import { newGuid } from "../../utils/Helpers";
8
- const getFirstEditableColumn = (apiRef) => {
9
- const editableColumns = apiRef.getAllColumns().filter(column => column.editable);
10
- if (editableColumns.length)
11
- return editableColumns[0];
12
- };
13
- const hasEditableColumn = (apiRef) => {
14
- const editableColumns = apiRef === null || apiRef === void 0 ? void 0 : apiRef.getAllColumns().filter(column => column.editable);
15
- return !!(editableColumns === null || editableColumns === void 0 ? void 0 : editableColumns.length);
16
- };
17
- export const GridToolbar = (props) => {
18
- var _a, _b, _c, _d;
19
- const apiRef = useGridApiContext();
20
- const { t } = useContext(LayoutContext);
21
- const handleOnAddRecordClick = () => {
22
- var _a, _b, _c, _d;
23
- if (!apiRef.current)
24
- return;
25
- const rowIds = (_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.getAllRowIds();
26
- const allRows = rowIds.map(rowId => { var _a; return ((_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.getRow(rowId)); });
27
- const id = (_c = (_b = props.newRowDefaultValue) === null || _b === void 0 ? void 0 : _b.id) !== null && _c !== void 0 ? _c : newGuid();
28
- (_d = apiRef.current) === null || _d === void 0 ? void 0 : _d.setRows([{ ...props.newRowDefaultValue, id, isNew: true }, ...allRows]);
29
- setTimeout(() => { var _a; return (_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.startRowEditMode({ id }); });
30
- const firstEditableColumn = getFirstEditableColumn(apiRef.current);
31
- if (firstEditableColumn) {
32
- apiRef.current.setCellFocus(id, firstEditableColumn.field);
33
- setTimeout(() => { var _a; return (_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.scrollToIndexes({ rowIndex: 0 }); });
34
- }
35
- };
36
- const showNewRowButton = hasEditableColumn(apiRef.current) && !props.hideAddNewRow;
37
- const hasActiveFilters = !!((_a = apiRef.current) === null || _a === void 0 ? void 0 : _a.state.filter.filterModel.items.length) || !!((_c = (_b = apiRef.current) === null || _b === void 0 ? void 0 : _b.state.filter.filterModel.quickFilterValues) === null || _c === void 0 ? void 0 : _c.length);
38
- return (_jsxs(GridToolbarContainer, { children: [_jsx(GridToolbarColumnsButton, {}), _jsx(GridToolbarFilterButton, {}), _jsx(GridToolbarExport, {}), showNewRowButton && _jsx(Button, { size: "small", startIcon: _jsx(Add, {}), onClick: handleOnAddRecordClick, disabled: hasActiveFilters, children: t("Layout.AddRow") }), (_d = props.actions) === null || _d === void 0 ? void 0 : _d.map(action => action), _jsx(Box, { sx: { flexGrow: 1 } }), _jsx(GridToolbarQuickFilter, {})] }));
39
- };
40
- //# sourceMappingURL=GridToolbar.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"GridToolbar.js","sourceRoot":"","sources":["../../../../src/components/dataGrid/GridToolbar.tsx"],"names":[],"mappings":"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","sourcesContent":["import { Add } from \"@mui/icons-material\";\r\nimport { Box, Button } from \"@mui/material\";\r\nimport { GridRowId, GridToolbarColumnsButton, GridToolbarContainer, GridToolbarExport, GridToolbarFilterButton, GridToolbarQuickFilter, GridToolbarProps as MuiGridToolbarProps, useGridApiContext } from \"@mui/x-data-grid-premium\";\r\nimport { GridApiPremium } from \"@mui/x-data-grid-premium/models/gridApiPremium\";\r\nimport React, { useContext } from \"react\";\r\nimport { LayoutContext } from \"../../contexts/LayoutContext\";\r\nimport { newGuid } from \"../../utils/Helpers\";\r\n\r\nconst getFirstEditableColumn = (apiRef: GridApiPremium) => {\r\n const editableColumns = apiRef.getAllColumns().filter(column => column.editable);\r\n if (editableColumns.length)\r\n return editableColumns[0];\r\n};\r\n\r\nconst hasEditableColumn = (apiRef: GridApiPremium | null) => {\r\n const editableColumns = apiRef?.getAllColumns().filter(column => column.editable);\r\n return !!editableColumns?.length;\r\n};\r\n\r\nexport interface GridToolbarProps extends MuiGridToolbarProps {\r\n actions?: React.ReactNode[];\r\n hideAddNewRow?: boolean;\r\n newRowDefaultValue?: any;\r\n}\r\n\r\nexport const GridToolbar: React.FC<GridToolbarProps> = (props) => {\r\n const apiRef = useGridApiContext();\r\n const { t } = useContext(LayoutContext);\r\n\r\n const handleOnAddRecordClick = () => {\r\n if (!apiRef.current) return;\r\n\r\n const rowIds: GridRowId[] = apiRef.current?.getAllRowIds();\r\n const allRows: any[] = rowIds.map(rowId => (apiRef.current?.getRow(rowId)));\r\n\r\n const id: GridRowId = props.newRowDefaultValue?.id ?? newGuid();\r\n apiRef.current?.setRows([{ ...props.newRowDefaultValue, id, isNew: true }, ...allRows]);\r\n setTimeout(() => apiRef.current?.startRowEditMode({ id }));\r\n\r\n const firstEditableColumn = getFirstEditableColumn(apiRef.current);\r\n if (firstEditableColumn) {\r\n apiRef.current.setCellFocus(id, firstEditableColumn.field);\r\n setTimeout(() => apiRef.current?.scrollToIndexes({ rowIndex: 0 }));\r\n }\r\n };\r\n\r\n const showNewRowButton = hasEditableColumn(apiRef.current) && !props.hideAddNewRow;\r\n const hasActiveFilters = !!apiRef.current?.state.filter.filterModel.items.length || !!apiRef.current?.state.filter.filterModel.quickFilterValues?.length;\r\n\r\n return (\r\n <GridToolbarContainer>\r\n <GridToolbarColumnsButton />\r\n <GridToolbarFilterButton />\r\n <GridToolbarExport />\r\n {showNewRowButton && <Button size=\"small\" startIcon={<Add />} onClick={handleOnAddRecordClick} disabled={hasActiveFilters}>{t(\"Layout.AddRow\")}</Button>}\r\n {props.actions?.map(action => action)}\r\n\r\n <Box sx={{ flexGrow: 1 }} />\r\n\r\n <GridToolbarQuickFilter />\r\n </GridToolbarContainer>\r\n );\r\n};"]}
@@ -1,3 +0,0 @@
1
- import { BoxProps } from "@mui/material";
2
- import React from "react";
3
- export declare const TableContainer: React.FC<BoxProps>;
@@ -1,32 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Box, useTheme } from "@mui/material";
3
- export const TableContainer = ({ sx, ...props }) => {
4
- const theme = useTheme();
5
- return (_jsx(Box, { ...props, sx: {
6
- height: { xs: "calc(100vh - 56px)", sm: "calc(100vh - 64px)" },
7
- "& .MuiDataGrid-cell--editing": {
8
- "& .MuiInputBase-root": {
9
- height: "100%",
10
- },
11
- },
12
- "& .MuiDataGrid-columnHeaderTitle": {
13
- fontWeight: "600",
14
- },
15
- "& .MuiDataGrid-cell": {
16
- display: "flex",
17
- alignItems: "center",
18
- },
19
- "& .Mui-error": {
20
- backgroundColor: theme.palette.error.main,
21
- color: theme.palette.error.contrastText
22
- },
23
- "& .MuiDataGrid-booleanCell[data-value=\"true\"]": {
24
- color: `${theme.palette.success.main}!important`
25
- },
26
- "& .MuiDataGrid-booleanCell[data-value=\"false\"]": {
27
- color: `${theme.palette.error.main}!important`
28
- },
29
- ...sx
30
- }, children: props.children }));
31
- };
32
- //# sourceMappingURL=TableContainer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"TableContainer.js","sourceRoot":"","sources":["../../../../src/components/dataGrid/TableContainer.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,GAAG,EAAY,QAAQ,EAAE,MAAM,eAAe,CAAC;AAGxD,MAAM,CAAC,MAAM,cAAc,GAAuB,CAAC,EAAE,EAAE,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;IACnE,MAAM,KAAK,GAAG,QAAQ,EAAE,CAAC;IAEzB,OAAO,CACH,KAAC,GAAG,OACI,KAAK,EACT,EAAE,EAAE;YACA,MAAM,EAAE,EAAE,EAAE,EAAE,oBAAoB,EAAE,EAAE,EAAE,oBAAoB,EAAE;YAC9D,8BAA8B,EAAE;gBAC5B,sBAAsB,EAAE;oBACpB,MAAM,EAAE,MAAM;iBACjB;aACJ;YACD,kCAAkC,EAAE;gBAChC,UAAU,EAAE,KAAK;aACpB;YACD,qBAAqB,EAAE;gBACnB,OAAO,EAAE,MAAM;gBACf,UAAU,EAAE,QAAQ;aACvB;YACD,cAAc,EAAE;gBACZ,eAAe,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI;gBACzC,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,YAAY;aAC1C;YACD,iDAAiD,EAAE;gBAC/C,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,OAAO,CAAC,IAAI,YAAY;aACnD;YACD,kDAAkD,EAAE;gBAChD,KAAK,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,YAAY;aACjD;YACD,GAAG,EAAE;SACR,YACA,KAAK,CAAC,QAAQ,GACb,CACT,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Box, BoxProps, useTheme } from \"@mui/material\";\r\nimport React from \"react\";\r\n\r\nexport const TableContainer: React.FC<BoxProps> = ({ sx, ...props }) => {\r\n const theme = useTheme();\r\n\r\n return (\r\n <Box\r\n {...props}\r\n sx={{\r\n height: { xs: \"calc(100vh - 56px)\", sm: \"calc(100vh - 64px)\" },\r\n \"& .MuiDataGrid-cell--editing\": {\r\n \"& .MuiInputBase-root\": {\r\n height: \"100%\",\r\n },\r\n },\r\n \"& .MuiDataGrid-columnHeaderTitle\": {\r\n fontWeight: \"600\",\r\n },\r\n \"& .MuiDataGrid-cell\": {\r\n display: \"flex\",\r\n alignItems: \"center\",\r\n },\r\n \"& .Mui-error\": {\r\n backgroundColor: theme.palette.error.main,\r\n color: theme.palette.error.contrastText\r\n },\r\n \"& .MuiDataGrid-booleanCell[data-value=\\\"true\\\"]\": {\r\n color: `${theme.palette.success.main}!important`\r\n },\r\n \"& .MuiDataGrid-booleanCell[data-value=\\\"false\\\"]\": {\r\n color: `${theme.palette.error.main}!important`\r\n },\r\n ...sx\r\n }}>\r\n {props.children}\r\n </Box>\r\n );\r\n};"]}
@@ -1,10 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Autocomplete, TextField } from "@mui/material";
3
- import { getFieldStatus } from "../../utils/FormUtils";
4
- import { useFieldContext } from "../../hooks/FormHooks";
5
- export const FormAutocomplete = ({ textFieldProps, ...autocompleteProps }) => {
6
- const field = useFieldContext();
7
- const { isTouched, hasError, helperText } = getFieldStatus(field);
8
- return (_jsx(Autocomplete, { value: field.state.value, onChange: (_, value) => !autocompleteProps.freeSolo && field.handleChange(value), onInputChange: (_, value, reason) => reason !== "reset" && autocompleteProps.freeSolo && field.handleChange(value), onBlur: field.handleBlur, "aria-label": field.name, ...autocompleteProps, renderInput: (params) => _jsx(TextField, { ...params, name: field.name, error: isTouched && hasError, helperText: isTouched && helperText, ...textFieldProps }) }));
9
- };
10
- //# sourceMappingURL=FormAutocomplete.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormAutocomplete.js","sourceRoot":"","sources":["../../../../src/components/form/FormAutocomplete.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,YAAY,EAAqB,SAAS,EAAkB,MAAM,eAAe,CAAC;AAG3F,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAMxD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,EAAE,cAAc,EAAE,GAAG,iBAAiB,EAAE,EAAE,EAAE;IACpG,MAAM,KAAK,GAAG,eAAe,EAAE,CAAC;IAChC,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,YAAY,IACT,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,EACxB,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,CAAC,iBAAiB,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAChF,aAAa,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,MAAM,KAAK,OAAO,IAAI,iBAAiB,CAAC,QAAQ,IAAI,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,EAClH,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,iBAAiB,EACrB,WAAW,EAAE,CAAC,MAAM,EAAE,EAAE,CACpB,KAAC,SAAS,OACF,MAAM,EACV,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,SAAS,IAAI,QAAQ,EAC5B,UAAU,EAAE,SAAS,IAAI,UAAU,KAC/B,cAAc,GACpB,GAER,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { Autocomplete, AutocompleteProps, TextField, TextFieldProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\n\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\n\r\nexport interface FormAutocompleteProps extends Omit<AutocompleteProps<any, boolean, boolean, boolean>, FormOmittedProps> {\r\n textFieldProps?: Omit<TextFieldProps, FormOmittedProps>;\r\n}\r\n\r\nexport const FormAutocomplete: FC<FormAutocompleteProps> = ({ textFieldProps, ...autocompleteProps }) => {\r\n const field = useFieldContext();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <Autocomplete\r\n value={field.state.value}\r\n onChange={(_, value) => !autocompleteProps.freeSolo && field.handleChange(value)}\r\n onInputChange={(_, value, reason) => reason !== \"reset\" && autocompleteProps.freeSolo && field.handleChange(value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...autocompleteProps}\r\n renderInput={(params) =>\r\n <TextField\r\n {...params}\r\n name={field.name}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n {...textFieldProps}\r\n />\r\n }\r\n />\r\n )\r\n}"]}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { Checkbox, FormControl, FormControlLabel, FormHelperText } from "@mui/material";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- export const FormCheckbox = (props) => {
6
- var _a;
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsxs(FormControl, { component: "fieldset", children: [_jsx(FormControlLabel, { control: _jsx(Checkbox, { name: field.name, checked: Boolean(field.state.value), onChange: (e) => field.handleChange(e.target.checked), onBlur: field.handleBlur, "aria-label": field.name, ...props }), label: (_a = props.label) !== null && _a !== void 0 ? _a : "" }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
10
- };
11
- //# sourceMappingURL=FormCheckbox.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormCheckbox.js","sourceRoot":"","sources":["../../../../src/components/form/FormCheckbox.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,QAAQ,EAAiB,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEvG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,YAAY,GAA0B,CAAC,KAAK,EAAE,EAAE;;IACzD,MAAM,KAAK,GAAG,eAAe,EAA8B,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC7B,KAAC,gBAAgB,IACb,OAAO,EACH,KAAC,QAAQ,IACL,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACrD,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,EAEN,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,GAC1B,EACD,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Checkbox, CheckboxProps, FormControl, FormControlLabel, FormHelperText } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormCheckboxProps extends Omit<CheckboxProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormCheckbox: FC<FormCheckboxProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Checkbox\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(e) => field.handleChange(e.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};"]}
@@ -1,9 +0,0 @@
1
- import { TextFieldProps } from "@mui/material";
2
- import { DatePickerProps } from "@mui/x-date-pickers-pro";
3
- import { FC } from "react";
4
- import { FormOmittedProps } from "../../utils/FormUtils";
5
- import { Moment } from "moment";
6
- export interface FormDatePickerProps extends Omit<DatePickerProps<Moment>, FormOmittedProps> {
7
- textFieldProps?: TextFieldProps;
8
- }
9
- export declare const FormDatePicker: FC<FormDatePickerProps>;
@@ -1,19 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { DatePicker } from "@mui/x-date-pickers-pro";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- import moment from "moment";
6
- export const FormDatePicker = (props) => {
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsx(DatePicker, { name: field.name, value: field.state.value ? moment(field.state.value) : null, onChange: (value) => field.handleChange(value ? value.format() : null), slotProps: {
10
- textField: {
11
- onBlur: field.handleBlur,
12
- error: isTouched && hasError,
13
- helperText: isTouched && helperText,
14
- ...props.textFieldProps
15
- },
16
- ...props.slotProps
17
- }, "aria-label": field.name, ...props }));
18
- };
19
- //# sourceMappingURL=FormDatePicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormDatePicker.js","sourceRoot":"","sources":["../../../../src/components/form/FormDatePicker.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,UAAU,EAAmB,MAAM,yBAAyB,CAAC;AAEtE,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,MAAkB,MAAM,QAAQ,CAAC;AAMxC,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,KAAK,EAAE,EAAE;IAC7D,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,UAAU,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtE,SAAS,EAAE;YACP,SAAS,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,KAAK,EAAE,SAAS,IAAI,QAAQ;gBAC5B,UAAU,EAAE,SAAS,IAAI,UAAU;gBACnC,GAAG,KAAK,CAAC,cAAc;aAC1B;YACD,GAAG,KAAK,CAAC,SAAS;SACrB,gBACW,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { TextFieldProps } from \"@mui/material\";\r\nimport { DatePicker, DatePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport moment, { Moment } from \"moment\";\r\n\r\nexport interface FormDatePickerProps extends Omit<DatePickerProps<Moment>, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDatePicker: FC<FormDatePickerProps> = (props) => {\r\n const field = useFieldContext<string | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DatePicker\r\n name={field.name}\r\n value={field.state.value ? moment(field.state.value) : null}\r\n onChange={(value) => field.handleChange(value ? value.format() : null)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n )\r\n}"]}
@@ -1,9 +0,0 @@
1
- import { TextFieldProps } from "@mui/material";
2
- import { DateTimePickerProps } from "@mui/x-date-pickers-pro";
3
- import { FC } from "react";
4
- import { FormOmittedProps } from "../../utils/FormUtils";
5
- import { Moment } from "moment";
6
- export interface FormDateTimePickerProps extends Omit<DateTimePickerProps<Moment>, FormOmittedProps> {
7
- textFieldProps?: TextFieldProps;
8
- }
9
- export declare const FormDateTimePicker: FC<FormDateTimePickerProps>;
@@ -1,19 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { DateTimePicker } from "@mui/x-date-pickers-pro";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- import moment from "moment";
6
- export const FormDateTimePicker = (props) => {
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsx(DateTimePicker, { name: field.name, value: field.state.value ? moment(field.state.value) : null, onChange: (value) => field.handleChange(value ? value.format() : null), slotProps: {
10
- textField: {
11
- onBlur: field.handleBlur,
12
- error: isTouched && hasError,
13
- helperText: isTouched && helperText,
14
- ...props.textFieldProps,
15
- },
16
- ...props.slotProps
17
- }, "aria-label": field.name, ...props }));
18
- };
19
- //# sourceMappingURL=FormDateTimePicker.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormDateTimePicker.js","sourceRoot":"","sources":["../../../../src/components/form/FormDateTimePicker.tsx"],"names":[],"mappings":";AACA,OAAO,EAAE,cAAc,EAAuB,MAAM,yBAAyB,CAAC;AAE9E,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AACzE,OAAO,MAAkB,MAAM,QAAQ,CAAC;AAMxC,MAAM,CAAC,MAAM,kBAAkB,GAAgC,CAAC,KAAK,EAAE,EAAE;IACrE,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,cAAc,IACX,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,IAAI,EAC3D,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,EACtE,SAAS,EAAE;YACP,SAAS,EAAE;gBACP,MAAM,EAAE,KAAK,CAAC,UAAU;gBACxB,KAAK,EAAE,SAAS,IAAI,QAAQ;gBAC5B,UAAU,EAAE,SAAS,IAAI,UAAU;gBACnC,GAAG,KAAK,CAAC,cAAc;aAC1B;YACD,GAAG,KAAK,CAAC,SAAS;SACrB,gBACW,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,CACL,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { TextFieldProps } from \"@mui/material\";\r\nimport { DateTimePicker, DateTimePickerProps } from \"@mui/x-date-pickers-pro\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport moment, { Moment } from \"moment\";\r\n\r\nexport interface FormDateTimePickerProps extends Omit<DateTimePickerProps<Moment>, FormOmittedProps> {\r\n textFieldProps?: TextFieldProps;\r\n}\r\n\r\nexport const FormDateTimePicker: FC<FormDateTimePickerProps> = (props) => {\r\n const field = useFieldContext<string | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <DateTimePicker\r\n name={field.name}\r\n value={field.state.value ? moment(field.state.value) : null}\r\n onChange={(value) => field.handleChange(value ? value.format() : null)}\r\n slotProps={{\r\n textField: {\r\n onBlur: field.handleBlur,\r\n error: isTouched && hasError,\r\n helperText: isTouched && helperText,\r\n ...props.textFieldProps,\r\n },\r\n ...props.slotProps\r\n }}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n );\r\n};\r\n"]}
@@ -1,12 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { TextField } from '@mui/material';
3
- import { NumericFormat } from 'react-number-format';
4
- import { useFieldContext } from "../../hooks/FormHooks";
5
- import { getFieldStatus } from "../../utils/FormUtils";
6
- export const FormNumberField = ({ options, ...props }) => {
7
- var _a;
8
- const field = useFieldContext();
9
- const { isTouched, hasError, helperText } = getFieldStatus(field);
10
- return (_jsx(NumericFormat, { customInput: TextField, name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : '', onValueChange: ({ floatValue }) => field.handleChange(floatValue), onBlur: field.handleBlur, error: isTouched && hasError, helperText: isTouched && helperText, "aria-label": field.name, ...props, ...options }));
11
- };
12
- //# sourceMappingURL=FormNumberField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormNumberField.js","sourceRoot":"","sources":["../../../../src/components/form/FormNumberField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AACpD,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAUzE,MAAM,CAAC,MAAM,eAAe,GAA6B,CAAC,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;;IAClF,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACN,KAAC,aAAa,IACb,WAAW,EAAE,SAAS,EACtB,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,EAC9B,aAAa,EAAE,CAAC,EAAE,UAAU,EAAE,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,UAAU,CAAC,EACjE,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,KAAK,EAAE,SAAS,IAAI,QAAQ,EAC5B,UAAU,EAAE,SAAS,IAAI,UAAU,gBACvB,KAAK,CAAC,IAAI,KAClB,KAAK,KACL,OAAO,GACV,CACF,CAAC;AACH,CAAC,CAAA","sourcesContent":["import { TextField, TextFieldProps } from '@mui/material';\r\nimport { FC } from 'react';\r\nimport { NumericFormat } from 'react-number-format';\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\nimport { NumericFormatProps, InputAttributes } from 'react-number-format/types/types';\r\n\r\ninterface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> { }\r\n\r\nexport interface FormNumberFieldProps extends FormTextFieldProps {\r\n\tdefaultValue?: number | null;\r\n\toptions?: Omit<NumericFormatProps<InputAttributes>, \"customInput\" | \"onValueChange\" | keyof InputAttributes>;\r\n}\r\n\r\nexport const FormNumberField: FC<FormNumberFieldProps> = ({ options, ...props }) => {\r\n\tconst field = useFieldContext<number | null | undefined>();\r\n\tconst { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n\treturn (\r\n\t\t<NumericFormat\r\n\t\t\tcustomInput={TextField}\r\n\t\t\tname={field.name}\r\n\t\t\tvalue={field.state.value ?? ''}\r\n\t\t\tonValueChange={({ floatValue }) => field.handleChange(floatValue)}\r\n\t\t\tonBlur={field.handleBlur}\r\n\t\t\terror={isTouched && hasError}\r\n\t\t\thelperText={isTouched && helperText}\r\n\t\t\taria-label={field.name}\r\n\t\t\t{...props}\r\n\t\t\t{...options}\r\n\t\t/>\r\n\t);\r\n}"]}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup } from "@mui/material";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- export const FormRadioGroup = ({ label, options, ...props }) => {
6
- var _a;
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsxs(FormControl, { component: "fieldset", children: [label && _jsx(FormLabel, { component: "legend", children: label }), _jsx(RadioGroup, { name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : "", onChange: (e) => field.handleChange(e.target.value), onBlur: field.handleBlur, "aria-label": field.name, ...props, children: options.map((option) => (_jsx(FormControlLabel, { value: option.value, control: _jsx(Radio, {}), label: option.label }, option.value))) }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
10
- };
11
- //# sourceMappingURL=FormRadioGroup.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormRadioGroup.js","sourceRoot":"","sources":["../../../../src/components/form/FormRadioGroup.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,SAAS,EAAE,KAAK,EAAE,UAAU,EAAmB,MAAM,eAAe,CAAC;AAE7H,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAYzE,MAAM,CAAC,MAAM,cAAc,GAA4B,CAAC,EAAE,KAAK,EAAE,OAAO,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;;IACpF,MAAM,KAAK,GAAG,eAAe,EAAsC,CAAC;IACpE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC5B,KAAK,IAAI,KAAC,SAAS,IAAC,SAAS,EAAC,QAAQ,YAAE,KAAK,GAAa,EAC3D,KAAC,UAAU,IACP,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACnD,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,YAER,OAAO,CAAC,GAAG,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,CACrB,KAAC,gBAAgB,IAEb,KAAK,EAAE,MAAM,CAAC,KAAK,EACnB,OAAO,EAAE,KAAC,KAAK,KAAG,EAClB,KAAK,EAAE,MAAM,CAAC,KAAK,IAHd,MAAM,CAAC,KAAK,CAInB,CACL,CAAC,GACO,EACZ,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { FormControl, FormControlLabel, FormHelperText, FormLabel, Radio, RadioGroup, RadioGroupProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\ninterface Option {\r\n label: string;\r\n value: string | number;\r\n}\r\n\r\nexport interface FormRadioGroupProps extends Omit<RadioGroupProps, FormOmittedProps> {\r\n label?: string;\r\n options: Option[];\r\n}\r\n\r\nexport const FormRadioGroup: FC<FormRadioGroupProps> = ({ label, options, ...props }) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel component=\"legend\">{label}</FormLabel>}\r\n <RadioGroup\r\n name={field.name}\r\n value={field.state.value ?? \"\"}\r\n onChange={(e) => field.handleChange(e.target.value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n >\r\n {options.map((option) => (\r\n <FormControlLabel\r\n key={option.value}\r\n value={option.value}\r\n control={<Radio />}\r\n label={option.label}\r\n />\r\n ))}\r\n </RadioGroup>\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n"]}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { FormControl, FormHelperText, FormLabel, Slider } from "@mui/material";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- export const FormSlider = ({ label, ...props }) => {
6
- var _a;
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsxs(FormControl, { component: "fieldset", children: [label && _jsx(FormLabel, { children: label }), _jsx(Slider, { name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : 0, onChange: (_, value) => field.handleChange(Array.isArray(value) ? value[0] : value), onBlur: field.handleBlur, "aria-label": field.name, ...props }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
10
- };
11
- //# sourceMappingURL=FormSlider.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormSlider.js","sourceRoot":"","sources":["../../../../src/components/form/FormSlider.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,cAAc,EAAE,SAAS,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAE5F,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,EAAE,KAAK,EAAE,GAAG,KAAK,EAAE,EAAE,EAAE;;IACnE,MAAM,KAAK,GAAG,eAAe,EAA6B,CAAC;IAC3D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC5B,KAAK,IAAI,KAAC,SAAS,cAAE,KAAK,GAAa,EACxC,KAAC,MAAM,IACH,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,CAAC,EAC7B,QAAQ,EAAE,CAAC,CAAC,EAAE,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,EACnF,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,EACD,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { FormControl, FormHelperText, FormLabel, Slider, SliderProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormSliderProps extends Omit<SliderProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSlider: FC<FormSliderProps> = ({ label, ...props }) => {\r\n const field = useFieldContext<number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n {label && <FormLabel>{label}</FormLabel>}\r\n <Slider\r\n name={field.name}\r\n value={field.state.value ?? 0}\r\n onChange={(_, value) => field.handleChange(Array.isArray(value) ? value[0] : value)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n"]}
@@ -1,5 +0,0 @@
1
- import { ButtonProps } from "@mui/material";
2
- import { FC } from "react";
3
- export interface FormSubmitButtonProps extends Omit<ButtonProps, "loading" | "disabled" | "onClick"> {
4
- }
5
- export declare const FormSubmitButton: FC<FormSubmitButtonProps>;
@@ -1,13 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { Button } from "@mui/material";
3
- import { useFormContext } from "../../hooks/FormHooks";
4
- export const FormSubmitButton = (props) => {
5
- const form = useFormContext();
6
- const handleClick = (e) => {
7
- e.preventDefault();
8
- e.stopPropagation();
9
- form.handleSubmit();
10
- };
11
- return (_jsx(form.Subscribe, { selector: (state) => [state.canSubmit, state.isSubmitting], children: ([canSubmit, isSubmitting]) => (_jsx(Button, { loading: isSubmitting, disabled: !canSubmit, onClick: handleClick, "aria-label": "submit", ...props })) }));
12
- };
13
- //# sourceMappingURL=FormSubmitButton.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormSubmitButton.js","sourceRoot":"","sources":["../../../../src/components/form/FormSubmitButton.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAEpD,OAAO,EAAE,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAIvD,MAAM,CAAC,MAAM,gBAAgB,GAA8B,CAAC,KAAK,EAAE,EAAE;IACjE,MAAM,IAAI,GAAG,cAAc,EAAE,CAAC;IAE9B,MAAM,WAAW,GAAG,CAAC,CAAsC,EAAE,EAAE;QAC3D,CAAC,CAAC,cAAc,EAAE,CAAC;QACnB,CAAC,CAAC,eAAe,EAAE,CAAC;QACpB,IAAI,CAAC,YAAY,EAAE,CAAC;IACxB,CAAC,CAAC;IAEF,OAAO,CACH,KAAC,IAAI,CAAC,SAAS,IAAC,QAAQ,EAAE,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,KAAK,CAAC,SAAS,EAAE,KAAK,CAAC,YAAY,CAAC,YACrE,CAAC,CAAC,SAAS,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAC5B,KAAC,MAAM,IACH,OAAO,EAAE,YAAY,EACrB,QAAQ,EAAE,CAAC,SAAS,EACpB,OAAO,EAAE,WAAW,gBACT,QAAQ,KACf,KAAK,GACX,CACL,GACY,CACpB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { Button, ButtonProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFormContext } from \"../../hooks/FormHooks\";\r\n\r\nexport interface FormSubmitButtonProps extends Omit<ButtonProps, \"loading\" | \"disabled\" | \"onClick\"> { }\r\n\r\nexport const FormSubmitButton: FC<FormSubmitButtonProps> = (props) => {\r\n const form = useFormContext();\r\n\r\n const handleClick = (e: React.MouseEvent<HTMLButtonElement>) => {\r\n e.preventDefault();\r\n e.stopPropagation();\r\n form.handleSubmit();\r\n };\r\n\r\n return (\r\n <form.Subscribe selector={(state) => [state.canSubmit, state.isSubmitting]}>\r\n {([canSubmit, isSubmitting]) => (\r\n <Button\r\n loading={isSubmitting}\r\n disabled={!canSubmit}\r\n onClick={handleClick}\r\n aria-label=\"submit\"\r\n {...props}\r\n />\r\n )}\r\n </form.Subscribe>\r\n );\r\n};"]}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
2
- import { FormControl, FormControlLabel, FormHelperText, Switch } from "@mui/material";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- export const FormSwitch = (props) => {
6
- var _a;
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsxs(FormControl, { component: "fieldset", children: [_jsx(FormControlLabel, { control: _jsx(Switch, { name: field.name, checked: Boolean(field.state.value), onChange: (e) => field.handleChange(e.target.checked), onBlur: field.handleBlur, "aria-label": field.name, ...props }), label: (_a = props.label) !== null && _a !== void 0 ? _a : "" }), isTouched && hasError && _jsx(FormHelperText, { error: hasError, children: helperText })] }));
10
- };
11
- //# sourceMappingURL=FormSwitch.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormSwitch.js","sourceRoot":"","sources":["../../../../src/components/form/FormSwitch.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,WAAW,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,EAAe,MAAM,eAAe,CAAC;AAEnG,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,UAAU,GAAwB,CAAC,KAAK,EAAE,EAAE;;IACrD,MAAM,KAAK,GAAG,eAAe,EAA8B,CAAC;IAC5D,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,MAAC,WAAW,IAAC,SAAS,EAAC,UAAU,aAC7B,KAAC,gBAAgB,IACb,OAAO,EACH,KAAC,MAAM,IACH,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,OAAO,EAAE,OAAO,CAAC,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,EACnC,QAAQ,EAAE,CAAC,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,EACrD,MAAM,EAAE,KAAK,CAAC,UAAU,gBACZ,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,EAEN,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,mCAAI,EAAE,GAC1B,EACD,SAAS,IAAI,QAAQ,IAAI,KAAC,cAAc,IAAC,KAAK,EAAE,QAAQ,YAAG,UAAU,GAAkB,IAC9E,CACjB,CAAC;AACN,CAAC,CAAC","sourcesContent":["import { FormControl, FormControlLabel, FormHelperText, Switch, SwitchProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormSwitchProps extends Omit<SwitchProps, FormOmittedProps> {\r\n label?: string;\r\n}\r\n\r\nexport const FormSwitch: FC<FormSwitchProps> = (props) => {\r\n const field = useFieldContext<boolean | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <FormControl component=\"fieldset\">\r\n <FormControlLabel\r\n control={\r\n <Switch\r\n name={field.name}\r\n checked={Boolean(field.state.value)}\r\n onChange={(e) => field.handleChange(e.target.checked)}\r\n onBlur={field.handleBlur}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n }\r\n label={props.label ?? \"\"}\r\n />\r\n {isTouched && hasError && <FormHelperText error={hasError}>{helperText}</FormHelperText>}\r\n </FormControl>\r\n );\r\n};\r\n"]}
@@ -1,11 +0,0 @@
1
- import { jsx as _jsx } from "react/jsx-runtime";
2
- import { TextField } from "@mui/material";
3
- import { useFieldContext } from "../../hooks/FormHooks";
4
- import { getFieldStatus } from "../../utils/FormUtils";
5
- export const FormTextField = (props) => {
6
- var _a;
7
- const field = useFieldContext();
8
- const { isTouched, hasError, helperText } = getFieldStatus(field);
9
- return (_jsx(TextField, { name: field.name, value: (_a = field.state.value) !== null && _a !== void 0 ? _a : '', onChange: e => field.handleChange(e.target.value), onBlur: field.handleBlur, error: isTouched && hasError, helperText: isTouched && helperText, "aria-label": field.name, ...props }));
10
- };
11
- //# sourceMappingURL=FormTextField.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"FormTextField.js","sourceRoot":"","sources":["../../../../src/components/form/FormTextField.tsx"],"names":[],"mappings":";AAAA,OAAO,EAAE,SAAS,EAAkB,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AACxD,OAAO,EAAoB,cAAc,EAAE,MAAM,uBAAuB,CAAC;AAMzE,MAAM,CAAC,MAAM,aAAa,GAA2B,CAAC,KAAK,EAAE,EAAE;;IAC3D,MAAM,KAAK,GAAG,eAAe,EAAsC,CAAC;IACpE,MAAM,EAAE,SAAS,EAAE,QAAQ,EAAE,UAAU,EAAE,GAAG,cAAc,CAAC,KAAK,CAAC,CAAC;IAElE,OAAO,CACH,KAAC,SAAS,IACN,IAAI,EAAE,KAAK,CAAC,IAAI,EAChB,KAAK,EAAE,MAAA,KAAK,CAAC,KAAK,CAAC,KAAK,mCAAI,EAAE,EAC9B,QAAQ,EAAE,CAAC,CAAC,EAAE,CAAC,KAAK,CAAC,YAAY,CAAC,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,EACjD,MAAM,EAAE,KAAK,CAAC,UAAU,EACxB,KAAK,EAAE,SAAS,IAAI,QAAQ,EAC5B,UAAU,EAAE,SAAS,IAAI,UAAU,gBACvB,KAAK,CAAC,IAAI,KAClB,KAAK,GACX,CACL,CAAA;AACL,CAAC,CAAA","sourcesContent":["import { TextField, TextFieldProps } from \"@mui/material\";\r\nimport { FC } from \"react\";\r\nimport { useFieldContext } from \"../../hooks/FormHooks\";\r\nimport { FormOmittedProps, getFieldStatus } from \"../../utils/FormUtils\";\r\n\r\nexport interface FormTextFieldProps extends Omit<TextFieldProps, FormOmittedProps> {\r\n type?: \"color\" | \"email\" | \"password\" | \"search\" | \"tel\" | \"text\" | \"url\"\r\n}\r\n\r\nexport const FormTextField: FC<FormTextFieldProps> = (props) => {\r\n const field = useFieldContext<string | number | null | undefined>();\r\n const { isTouched, hasError, helperText } = getFieldStatus(field);\r\n\r\n return (\r\n <TextField\r\n name={field.name}\r\n value={field.state.value ?? ''}\r\n onChange={e => field.handleChange(e.target.value)}\r\n onBlur={field.handleBlur}\r\n error={isTouched && hasError}\r\n helperText={isTouched && helperText}\r\n aria-label={field.name}\r\n {...props}\r\n />\r\n )\r\n}"]}
@@ -1,9 +0,0 @@
1
- import React from "react";
2
- import { User } from "../../models/User";
3
- interface AccountMenuProps {
4
- mode: "light" | "dark" | "system";
5
- setMode: (mode: "light" | "dark" | "system") => void;
6
- user: User;
7
- }
8
- export declare const AccountMenu: React.FC<AccountMenuProps>;
9
- export {};