wcz-layout 6.7.2 → 9.4.2

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.
Files changed (271) hide show
  1. package/dist/Approval-Co6D1BNq.mjs +194 -0
  2. package/dist/Approval-Co6D1BNq.mjs.map +1 -0
  3. package/dist/DialogsContext-DLqA8RJ_.mjs +7 -0
  4. package/dist/DialogsContext-DLqA8RJ_.mjs.map +1 -0
  5. package/dist/Email-BzQQkbe9.mjs +20 -0
  6. package/dist/Email-BzQQkbe9.mjs.map +1 -0
  7. package/dist/FileMeta-DDqUju1Y.mjs +19 -0
  8. package/dist/FileMeta-DDqUju1Y.mjs.map +1 -0
  9. package/dist/FileMeta-ILLTOjaM.d.mts +20 -0
  10. package/dist/NotificationContext-CgwUOeW0.mjs +7 -0
  11. package/dist/NotificationContext-CgwUOeW0.mjs.map +1 -0
  12. package/dist/QueryClientParam-CzaM3akD.d.mts +11 -0
  13. package/dist/RouterListItemButton-owZVvuC_.mjs +78 -0
  14. package/dist/RouterListItemButton-owZVvuC_.mjs.map +1 -0
  15. package/dist/User-1gKoYJvW.d.mts +12 -0
  16. package/dist/auth.d.mts +25 -0
  17. package/dist/auth.mjs +88 -0
  18. package/dist/auth.mjs.map +1 -0
  19. package/dist/authMiddleware--HdlhhZO.mjs +78 -0
  20. package/dist/authMiddleware--HdlhhZO.mjs.map +1 -0
  21. package/dist/components.d.mts +107 -0
  22. package/dist/components.mjs +1500 -0
  23. package/dist/components.mjs.map +1 -0
  24. package/dist/data/client.d.mts +3217 -0
  25. package/dist/data/client.mjs +187 -0
  26. package/dist/data/client.mjs.map +1 -0
  27. package/dist/data/server.d.mts +19 -0
  28. package/dist/data/server.mjs +16 -0
  29. package/dist/data/server.mjs.map +1 -0
  30. package/dist/entra-s4ZjHq5o.mjs +101 -0
  31. package/dist/entra-s4ZjHq5o.mjs.map +1 -0
  32. package/dist/env-CoveIivr.mjs +30 -0
  33. package/dist/env-CoveIivr.mjs.map +1 -0
  34. package/dist/file-C5-a_6W6.mjs +148 -0
  35. package/dist/file-C5-a_6W6.mjs.map +1 -0
  36. package/dist/file-DM1x40eJ.mjs +179 -0
  37. package/dist/file-DM1x40eJ.mjs.map +1 -0
  38. package/dist/hooks.d.mts +226 -0
  39. package/dist/hooks.mjs +1087 -0
  40. package/dist/hooks.mjs.map +1 -0
  41. package/dist/index.d.mts +48 -0
  42. package/dist/index.mjs +1944 -0
  43. package/dist/index.mjs.map +1 -0
  44. package/dist/middleware.d.mts +46 -0
  45. package/dist/middleware.mjs +27 -0
  46. package/dist/middleware.mjs.map +1 -0
  47. package/dist/models.d.mts +598 -0
  48. package/dist/models.mjs +74 -0
  49. package/dist/models.mjs.map +1 -0
  50. package/dist/msalServer-CkNOOjjH.mjs +44 -0
  51. package/dist/msalServer-CkNOOjjH.mjs.map +1 -0
  52. package/dist/peoplesoft-DIe8H1Nu.mjs +240 -0
  53. package/dist/peoplesoft-DIe8H1Nu.mjs.map +1 -0
  54. package/dist/peoplesoft-gKd-Jh5L.d.mts +1219 -0
  55. package/dist/useDialogs-BUzVrTSP.mjs +248 -0
  56. package/dist/useDialogs-BUzVrTSP.mjs.map +1 -0
  57. package/dist/user-Cen43mlr.d.mts +19 -0
  58. package/dist/utils-2XiozDlV.mjs +156 -0
  59. package/dist/utils-2XiozDlV.mjs.map +1 -0
  60. package/dist/utils-BuWEQOuy.d.mts +65 -0
  61. package/dist/utils.d.mts +5 -0
  62. package/dist/utils.mjs +5 -0
  63. package/dist/vite.d.mts +7 -0
  64. package/dist/vite.mjs +182 -0
  65. package/dist/vite.mjs.map +1 -0
  66. package/package.json +129 -62
  67. package/skills/client-db/SKILL.md +93 -0
  68. package/skills/data-grid/SKILL.md +142 -0
  69. package/skills/db-schema/SKILL.md +71 -0
  70. package/skills/dialogs/SKILL.md +79 -0
  71. package/skills/forms/SKILL.md +82 -0
  72. package/skills/general/SKILL.md +17 -0
  73. package/skills/notifications/SKILL.md +43 -0
  74. package/skills/routing/SKILL.md +128 -0
  75. package/skills/server-functions/SKILL.md +113 -0
  76. package/skills/services/SKILL.md +30 -0
  77. package/skills/services/docs/approval.md +257 -0
  78. package/skills/services/docs/email.md +32 -0
  79. package/skills/services/docs/file.md +81 -0
  80. package/skills/services/docs/peoplesoft.md +110 -0
  81. package/skills/start/SKILL.md +46 -0
  82. package/skills/start/steps/01-git-setup.md +11 -0
  83. package/skills/start/steps/02-project-name-setup.md +14 -0
  84. package/skills/start/steps/03-apm-setup.md +208 -0
  85. package/skills/start/steps/04-database-setup.md +39 -0
  86. package/skills/start/steps/05-entra-setup.md +59 -0
  87. package/skills/start/steps/06-vault-setup.md +70 -0
  88. package/skills/start/steps/07-generate-favicon.md +10 -0
  89. package/skills/start/steps/08-commit.md +15 -0
  90. package/dist/src/components/Layout.d.ts +0 -16
  91. package/dist/src/components/Layout.js +0 -122
  92. package/dist/src/components/Layout.js.map +0 -1
  93. package/dist/src/components/dataGrid/ChipInputCell.d.ts +0 -9
  94. package/dist/src/components/dataGrid/ChipInputCell.js +0 -17
  95. package/dist/src/components/dataGrid/ChipInputCell.js.map +0 -1
  96. package/dist/src/components/dataGrid/EditableColumnHeader.d.ts +0 -2
  97. package/dist/src/components/dataGrid/EditableColumnHeader.js +0 -7
  98. package/dist/src/components/dataGrid/EditableColumnHeader.js.map +0 -1
  99. package/dist/src/components/dataGrid/GridToolbar.d.ts +0 -8
  100. package/dist/src/components/dataGrid/GridToolbar.js +0 -40
  101. package/dist/src/components/dataGrid/GridToolbar.js.map +0 -1
  102. package/dist/src/components/dataGrid/TableContainer.d.ts +0 -3
  103. package/dist/src/components/dataGrid/TableContainer.js +0 -32
  104. package/dist/src/components/dataGrid/TableContainer.js.map +0 -1
  105. package/dist/src/components/form/FormAutocomplete.d.ts +0 -7
  106. package/dist/src/components/form/FormAutocomplete.js +0 -10
  107. package/dist/src/components/form/FormAutocomplete.js.map +0 -1
  108. package/dist/src/components/form/FormCheckbox.d.ts +0 -7
  109. package/dist/src/components/form/FormCheckbox.js +0 -11
  110. package/dist/src/components/form/FormCheckbox.js.map +0 -1
  111. package/dist/src/components/form/FormDatePicker.d.ts +0 -9
  112. package/dist/src/components/form/FormDatePicker.js +0 -19
  113. package/dist/src/components/form/FormDatePicker.js.map +0 -1
  114. package/dist/src/components/form/FormDateTimePicker.d.ts +0 -9
  115. package/dist/src/components/form/FormDateTimePicker.js +0 -19
  116. package/dist/src/components/form/FormDateTimePicker.js.map +0 -1
  117. package/dist/src/components/form/FormNumberField.d.ts +0 -12
  118. package/dist/src/components/form/FormNumberField.js +0 -12
  119. package/dist/src/components/form/FormNumberField.js.map +0 -1
  120. package/dist/src/components/form/FormRadioGroup.d.ts +0 -13
  121. package/dist/src/components/form/FormRadioGroup.js +0 -11
  122. package/dist/src/components/form/FormRadioGroup.js.map +0 -1
  123. package/dist/src/components/form/FormSlider.d.ts +0 -7
  124. package/dist/src/components/form/FormSlider.js +0 -11
  125. package/dist/src/components/form/FormSlider.js.map +0 -1
  126. package/dist/src/components/form/FormSubmitButton.d.ts +0 -5
  127. package/dist/src/components/form/FormSubmitButton.js +0 -13
  128. package/dist/src/components/form/FormSubmitButton.js.map +0 -1
  129. package/dist/src/components/form/FormSwitch.d.ts +0 -7
  130. package/dist/src/components/form/FormSwitch.js +0 -11
  131. package/dist/src/components/form/FormSwitch.js.map +0 -1
  132. package/dist/src/components/form/FormTextField.d.ts +0 -7
  133. package/dist/src/components/form/FormTextField.js +0 -11
  134. package/dist/src/components/form/FormTextField.js.map +0 -1
  135. package/dist/src/components/layout/AccountMenu.d.ts +0 -9
  136. package/dist/src/components/layout/AccountMenu.js +0 -44
  137. package/dist/src/components/layout/AccountMenu.js.map +0 -1
  138. package/dist/src/components/layout/DevelopmentBanner.d.ts +0 -7
  139. package/dist/src/components/layout/DevelopmentBanner.js +0 -29
  140. package/dist/src/components/layout/DevelopmentBanner.js.map +0 -1
  141. package/dist/src/components/layout/ErrorPage.d.ts +0 -2
  142. package/dist/src/components/layout/ErrorPage.js +0 -25
  143. package/dist/src/components/layout/ErrorPage.js.map +0 -1
  144. package/dist/src/components/layout/LayoutDialog.d.ts +0 -12
  145. package/dist/src/components/layout/LayoutDialog.js +0 -12
  146. package/dist/src/components/layout/LayoutDialog.js.map +0 -1
  147. package/dist/src/components/layout/LayoutSnackbar.d.ts +0 -8
  148. package/dist/src/components/layout/LayoutSnackbar.js +0 -25
  149. package/dist/src/components/layout/LayoutSnackbar.js.map +0 -1
  150. package/dist/src/components/layout/NavigationDrawer.d.ts +0 -11
  151. package/dist/src/components/layout/NavigationDrawer.js +0 -70
  152. package/dist/src/components/layout/NavigationDrawer.js.map +0 -1
  153. package/dist/src/components/layout/NotificationMenu.d.ts +0 -8
  154. package/dist/src/components/layout/NotificationMenu.js +0 -26
  155. package/dist/src/components/layout/NotificationMenu.js.map +0 -1
  156. package/dist/src/components/layout/TypographyWithIcon.d.ts +0 -7
  157. package/dist/src/components/layout/TypographyWithIcon.js +0 -22
  158. package/dist/src/components/layout/TypographyWithIcon.js.map +0 -1
  159. package/dist/src/components/layout/Unauthorized.d.ts +0 -2
  160. package/dist/src/components/layout/Unauthorized.js +0 -26
  161. package/dist/src/components/layout/Unauthorized.js.map +0 -1
  162. package/dist/src/contexts/LayoutContext.d.ts +0 -40
  163. package/dist/src/contexts/LayoutContext.js +0 -60
  164. package/dist/src/contexts/LayoutContext.js.map +0 -1
  165. package/dist/src/contexts/UserContext.d.ts +0 -24
  166. package/dist/src/contexts/UserContext.js +0 -55
  167. package/dist/src/contexts/UserContext.js.map +0 -1
  168. package/dist/src/hooks/FormHooks.d.ts +0 -46
  169. package/dist/src/hooks/FormHooks.js +0 -31
  170. package/dist/src/hooks/FormHooks.js.map +0 -1
  171. package/dist/src/hooks/UseSnackbar.d.ts +0 -10
  172. package/dist/src/hooks/UseSnackbar.js +0 -23
  173. package/dist/src/hooks/UseSnackbar.js.map +0 -1
  174. package/dist/src/hooks/UseUser.d.ts +0 -10
  175. package/dist/src/hooks/UseUser.js +0 -25
  176. package/dist/src/hooks/UseUser.js.map +0 -1
  177. package/dist/src/index.d.ts +0 -20
  178. package/dist/src/index.js +0 -15
  179. package/dist/src/index.js.map +0 -1
  180. package/dist/src/models/Error.d.ts +0 -6
  181. package/dist/src/models/Error.js +0 -2
  182. package/dist/src/models/Error.js.map +0 -1
  183. package/dist/src/models/KeycloakSettings.d.ts +0 -8
  184. package/dist/src/models/KeycloakSettings.js +0 -2
  185. package/dist/src/models/KeycloakSettings.js.map +0 -1
  186. package/dist/src/models/LayoutPaletteColorOptions.d.ts +0 -6
  187. package/dist/src/models/LayoutPaletteColorOptions.js +0 -2
  188. package/dist/src/models/LayoutPaletteColorOptions.js.map +0 -1
  189. package/dist/src/models/LayoutRoute.d.ts +0 -14
  190. package/dist/src/models/LayoutRoute.js +0 -2
  191. package/dist/src/models/LayoutRoute.js.map +0 -1
  192. package/dist/src/models/Notification.d.ts +0 -9
  193. package/dist/src/models/Notification.js +0 -2
  194. package/dist/src/models/Notification.js.map +0 -1
  195. package/dist/src/models/PeoplesoftDepartment.d.ts +0 -14
  196. package/dist/src/models/PeoplesoftDepartment.js +0 -2
  197. package/dist/src/models/PeoplesoftDepartment.js.map +0 -1
  198. package/dist/src/models/PeoplesoftEmployee.d.ts +0 -34
  199. package/dist/src/models/PeoplesoftEmployee.js +0 -2
  200. package/dist/src/models/PeoplesoftEmployee.js.map +0 -1
  201. package/dist/src/models/Snackbar.d.ts +0 -15
  202. package/dist/src/models/Snackbar.js +0 -2
  203. package/dist/src/models/Snackbar.js.map +0 -1
  204. package/dist/src/models/User.d.ts +0 -27
  205. package/dist/src/models/User.js +0 -11
  206. package/dist/src/models/User.js.map +0 -1
  207. package/dist/src/models/types/EmployeeCategoryGroup.d.ts +0 -1
  208. package/dist/src/models/types/EmployeeCategoryGroup.js +0 -2
  209. package/dist/src/models/types/EmployeeCategoryGroup.js.map +0 -1
  210. package/dist/src/models/types/EmployeeStatus.d.ts +0 -1
  211. package/dist/src/models/types/EmployeeStatus.js +0 -2
  212. package/dist/src/models/types/EmployeeStatus.js.map +0 -1
  213. package/dist/src/utils/Auth.d.ts +0 -12
  214. package/dist/src/utils/Auth.js +0 -49
  215. package/dist/src/utils/Auth.js.map +0 -1
  216. package/dist/src/utils/Fetches.d.ts +0 -5
  217. package/dist/src/utils/Fetches.js +0 -66
  218. package/dist/src/utils/Fetches.js.map +0 -1
  219. package/dist/src/utils/FormUtils.d.ts +0 -7
  220. package/dist/src/utils/FormUtils.js +0 -9
  221. package/dist/src/utils/FormUtils.js.map +0 -1
  222. package/dist/src/utils/Helpers.d.ts +0 -11
  223. package/dist/src/utils/Helpers.js +0 -26
  224. package/dist/src/utils/Helpers.js.map +0 -1
  225. package/dist/tsconfig.tsbuildinfo +0 -1
  226. package/src/components/Layout.tsx +0 -183
  227. package/src/components/dataGrid/ChipInputCell.tsx +0 -31
  228. package/src/components/dataGrid/EditableColumnHeader.tsx +0 -7
  229. package/src/components/dataGrid/GridToolbar.tsx +0 -63
  230. package/src/components/dataGrid/TableContainer.tsx +0 -39
  231. package/src/components/form/FormAutocomplete.tsx +0 -34
  232. package/src/components/form/FormCheckbox.tsx +0 -32
  233. package/src/components/form/FormDatePicker.tsx +0 -34
  234. package/src/components/form/FormDateTimePicker.tsx +0 -34
  235. package/src/components/form/FormNumberField.tsx +0 -33
  236. package/src/components/form/FormRadioGroup.tsx +0 -43
  237. package/src/components/form/FormSlider.tsx +0 -28
  238. package/src/components/form/FormSubmitButton.tsx +0 -29
  239. package/src/components/form/FormSwitch.tsx +0 -32
  240. package/src/components/form/FormTextField.tsx +0 -26
  241. package/src/components/layout/AccountMenu.tsx +0 -160
  242. package/src/components/layout/DevelopmentBanner.tsx +0 -54
  243. package/src/components/layout/ErrorPage.tsx +0 -34
  244. package/src/components/layout/LayoutDialog.tsx +0 -50
  245. package/src/components/layout/LayoutSnackbar.tsx +0 -44
  246. package/src/components/layout/NavigationDrawer.tsx +0 -131
  247. package/src/components/layout/NotificationMenu.tsx +0 -76
  248. package/src/components/layout/TypographyWithIcon.tsx +0 -35
  249. package/src/components/layout/Unauthorized.tsx +0 -37
  250. package/src/contexts/LayoutContext.tsx +0 -127
  251. package/src/contexts/UserContext.tsx +0 -88
  252. package/src/hooks/FormHooks.ts +0 -33
  253. package/src/hooks/UseSnackbar.tsx +0 -28
  254. package/src/hooks/UseUser.tsx +0 -29
  255. package/src/index.ts +0 -27
  256. package/src/models/Error.tsx +0 -6
  257. package/src/models/KeycloakSettings.ts +0 -8
  258. package/src/models/LayoutPaletteColorOptions.tsx +0 -7
  259. package/src/models/LayoutRoute.ts +0 -15
  260. package/src/models/Notification.ts +0 -10
  261. package/src/models/PeoplesoftDepartment.ts +0 -15
  262. package/src/models/PeoplesoftEmployee.ts +0 -35
  263. package/src/models/Snackbar.ts +0 -16
  264. package/src/models/User.ts +0 -13
  265. package/src/models/types/EmployeeCategoryGroup.ts +0 -1
  266. package/src/models/types/EmployeeStatus.ts +0 -1
  267. package/src/utils/Auth.ts +0 -58
  268. package/src/utils/Fetches.ts +0 -83
  269. package/src/utils/FormUtils.ts +0 -22
  270. package/src/utils/Helpers.ts +0 -27
  271. package/tsconfig.json +0 -29
package/dist/index.mjs ADDED
@@ -0,0 +1,1944 @@
1
+ import { c as rootRouteHead, d as getUser, l as getAccessToken, n as WISTRON_PRIMARY_COLOR, r as WISTRON_SECONDARY_COLOR, t as Platform } from "./utils-2XiozDlV.mjs";
2
+ import { n as RouterIconButton, t as RouterListItemButton } from "./RouterListItemButton-owZVvuC_.mjs";
3
+ import { t as DialogsContext } from "./DialogsContext-DLqA8RJ_.mjs";
4
+ import { t as NotificationContext } from "./NotificationContext-CgwUOeW0.mjs";
5
+ import { c } from "react/compiler-runtime";
6
+ import createCache from "@emotion/cache";
7
+ import { CacheProvider } from "@emotion/react";
8
+ import { AppBar, Avatar, Box, Chip, Collapse, CssBaseline, Grow, IconButton, InitColorSchemeScript, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, Stack, ThemeProvider, Toolbar, Typography, useColorScheme } from "@mui/material";
9
+ import { LocalizationProvider } from "@mui/x-date-pickers-pro";
10
+ import { AdapterDayjs } from "@mui/x-date-pickers-pro/AdapterDayjs";
11
+ import dayjs from "dayjs";
12
+ import i18n from "i18next";
13
+ import LanguageDetector from "i18next-browser-languagedetector";
14
+ import { Fragment, useEffect, useId, useRef, useState } from "react";
15
+ import { I18nextProvider, initReactI18next, useTranslation } from "react-i18next";
16
+ import { manifest, resources } from "virtual:wcz-layout";
17
+ import z from "zod";
18
+ import Menu$1 from "@mui/icons-material/Menu";
19
+ import MenuOpen from "@mui/icons-material/MenuOpen";
20
+ import { styled } from "@mui/material/styles";
21
+ import { rootRouteId, useLocation, useMatch, useRouter } from "@tanstack/react-router";
22
+ import { createServerFn } from "@tanstack/react-start";
23
+ import AccountCircle from "@mui/icons-material/AccountCircle";
24
+ import ArrowBack from "@mui/icons-material/ArrowBack";
25
+ import Brightness4 from "@mui/icons-material/Brightness4";
26
+ import ChevronRight from "@mui/icons-material/ChevronRight";
27
+ import DarkMode from "@mui/icons-material/DarkMode";
28
+ import Done from "@mui/icons-material/Done";
29
+ import LightMode from "@mui/icons-material/LightMode";
30
+ import Login from "@mui/icons-material/Login";
31
+ import Logout from "@mui/icons-material/Logout";
32
+ import SettingsBrightness from "@mui/icons-material/SettingsBrightness";
33
+ import Translate from "@mui/icons-material/Translate";
34
+ import { useQuery } from "@tanstack/react-query";
35
+ import axios from "axios";
36
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
37
+ import Drawer from "@mui/material/Drawer";
38
+ import Box$1 from "@mui/material/Box";
39
+ import Divider$1 from "@mui/material/Divider";
40
+ import List$1 from "@mui/material/List";
41
+ import ListSubheader$1 from "@mui/material/ListSubheader";
42
+ import ExpandMoreIcon from "@mui/icons-material/ExpandMore";
43
+ import Avatar$1 from "@mui/material/Avatar";
44
+ import ListItem$1 from "@mui/material/ListItem";
45
+ import ListItemButton$1 from "@mui/material/ListItemButton";
46
+ import ListItemIcon$1 from "@mui/material/ListItemIcon";
47
+ import ListItemText$1 from "@mui/material/ListItemText";
48
+ import Paper from "@mui/material/Paper";
49
+ import Typography$1 from "@mui/material/Typography";
50
+ import useEventCallback$1 from "@mui/utils/useEventCallback";
51
+ import Alert from "@mui/material/Alert";
52
+ import Snackbar from "@mui/material/Snackbar";
53
+ //#region src/components/core/account/UserAvatar.tsx
54
+ const getProfilePhoto = createServerFn({ method: "GET" }).handler(async () => {
55
+ try {
56
+ const accessToken = await getAccessToken("graph");
57
+ const response = await axios.get("https://graph.microsoft.com/v1.0/me/photo/$value", {
58
+ responseType: "arraybuffer",
59
+ headers: { Authorization: `Bearer ${accessToken}` }
60
+ });
61
+ return `data:image/jpeg;base64,${Buffer.from(response.data).toString("base64")}`;
62
+ } catch {
63
+ return "";
64
+ }
65
+ });
66
+ const UserAvatar = () => {
67
+ const $ = c(5);
68
+ if ($[0] !== "97fefb6f88742c9e7cbf3d043438b13015612c9f6530856ee714b68c21d42a40") {
69
+ for (let $i = 0; $i < 5; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
70
+ $[0] = "97fefb6f88742c9e7cbf3d043438b13015612c9f6530856ee714b68c21d42a40";
71
+ }
72
+ let t0;
73
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
74
+ t0 = {
75
+ queryKey: [
76
+ "graph",
77
+ "me",
78
+ "photo"
79
+ ],
80
+ queryFn: _temp$5,
81
+ staleTime: Infinity,
82
+ gcTime: Infinity
83
+ };
84
+ $[1] = t0;
85
+ } else t0 = $[1];
86
+ const { data: photoUrl } = useQuery(t0);
87
+ const t1 = photoUrl || void 0;
88
+ let t2;
89
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
90
+ t2 = {
91
+ width: {
92
+ xs: 32,
93
+ sm: 40
94
+ },
95
+ height: {
96
+ xs: 32,
97
+ sm: 40
98
+ }
99
+ };
100
+ $[2] = t2;
101
+ } else t2 = $[2];
102
+ let t3;
103
+ if ($[3] !== t1) {
104
+ t3 = /* @__PURE__ */ jsx(Avatar, {
105
+ alt: "User profile photo",
106
+ src: t1,
107
+ sx: t2
108
+ });
109
+ $[3] = t1;
110
+ $[4] = t3;
111
+ } else t3 = $[4];
112
+ return t3;
113
+ };
114
+ function _temp$5() {
115
+ return getProfilePhoto();
116
+ }
117
+ //#endregion
118
+ //#region src/components/core/account/UserMenu.tsx
119
+ const capitalize = (value) => value && value.charAt(0).toUpperCase() + value.slice(1);
120
+ const ToolbarAccount = () => {
121
+ const $ = c(111);
122
+ if ($[0] !== "676f46e6f24c38ef4300c9dd88652ceb82b9848ccee5f2e2c9230717f4f69584") {
123
+ for (let $i = 0; $i < 111; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
124
+ $[0] = "676f46e6f24c38ef4300c9dd88652ceb82b9848ccee5f2e2c9230717f4f69584";
125
+ }
126
+ const [anchorElement, setAnchorElement] = useState();
127
+ const [tab, setTab] = useState("settings");
128
+ const open = Boolean(anchorElement);
129
+ const { t, i18n } = useTranslation();
130
+ const { mode, setMode } = useColorScheme();
131
+ let t0;
132
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
133
+ t0 = { from: rootRouteId };
134
+ $[1] = t0;
135
+ } else t0 = $[1];
136
+ const user = useMatch(t0).context.user;
137
+ let T0;
138
+ let closeMenu;
139
+ let openMenu;
140
+ let settings;
141
+ let t1;
142
+ let t2;
143
+ let theme;
144
+ if ($[2] !== i18n || $[3] !== mode || $[4] !== setMode || $[5] !== t) {
145
+ const supportedLanguages = (Array.isArray(i18n.options.supportedLngs) ? i18n.options.supportedLngs : []).filter(_temp$4);
146
+ const languageDisplayNames = new Intl.DisplayNames([i18n.language], { type: "language" });
147
+ let t3;
148
+ if ($[13] !== t) {
149
+ t3 = t("Layout.Light");
150
+ $[13] = t;
151
+ $[14] = t3;
152
+ } else t3 = $[14];
153
+ let t4;
154
+ if ($[15] !== t3) {
155
+ t4 = {
156
+ mode: "light",
157
+ icon: LightMode,
158
+ label: t3
159
+ };
160
+ $[15] = t3;
161
+ $[16] = t4;
162
+ } else t4 = $[16];
163
+ let t5;
164
+ if ($[17] !== t) {
165
+ t5 = t("Layout.Dark");
166
+ $[17] = t;
167
+ $[18] = t5;
168
+ } else t5 = $[18];
169
+ let t6;
170
+ if ($[19] !== t5) {
171
+ t6 = {
172
+ mode: "dark",
173
+ icon: DarkMode,
174
+ label: t5
175
+ };
176
+ $[19] = t5;
177
+ $[20] = t6;
178
+ } else t6 = $[20];
179
+ let t7;
180
+ if ($[21] !== t) {
181
+ t7 = t("Layout.System");
182
+ $[21] = t;
183
+ $[22] = t7;
184
+ } else t7 = $[22];
185
+ let t8;
186
+ if ($[23] !== t7) {
187
+ t8 = {
188
+ mode: "system",
189
+ icon: SettingsBrightness,
190
+ label: t7
191
+ };
192
+ $[23] = t7;
193
+ $[24] = t8;
194
+ } else t8 = $[24];
195
+ let t9;
196
+ if ($[25] !== t4 || $[26] !== t6 || $[27] !== t8) {
197
+ t9 = [
198
+ t4,
199
+ t6,
200
+ t8
201
+ ];
202
+ $[25] = t4;
203
+ $[26] = t6;
204
+ $[27] = t8;
205
+ $[28] = t9;
206
+ } else t9 = $[28];
207
+ const colorModes = t9;
208
+ let t10;
209
+ if ($[29] === Symbol.for("react.memo_cache_sentinel")) {
210
+ t10 = (event) => setAnchorElement(event.currentTarget);
211
+ $[29] = t10;
212
+ } else t10 = $[29];
213
+ openMenu = t10;
214
+ let t11;
215
+ if ($[30] === Symbol.for("react.memo_cache_sentinel")) {
216
+ t11 = () => {
217
+ setAnchorElement(void 0);
218
+ setTimeout(() => setTab("settings"), 300);
219
+ };
220
+ $[30] = t11;
221
+ } else t11 = $[30];
222
+ closeMenu = t11;
223
+ let t12;
224
+ if ($[31] === Symbol.for("react.memo_cache_sentinel")) {
225
+ t12 = (newTab) => () => setTab(newTab);
226
+ $[31] = t12;
227
+ } else t12 = $[31];
228
+ const changeTab = t12;
229
+ let t13;
230
+ if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
231
+ t13 = { backgroundColor: "transparent" };
232
+ $[32] = t13;
233
+ } else t13 = $[32];
234
+ let t14;
235
+ if ($[33] !== t) {
236
+ t14 = t("Layout.Settings");
237
+ $[33] = t;
238
+ $[34] = t14;
239
+ } else t14 = $[34];
240
+ let t15;
241
+ if ($[35] !== t14) {
242
+ t15 = /* @__PURE__ */ jsx(ListSubheader, {
243
+ sx: t13,
244
+ children: t14
245
+ });
246
+ $[35] = t14;
247
+ $[36] = t15;
248
+ } else t15 = $[36];
249
+ let t16;
250
+ let t17;
251
+ if ($[37] === Symbol.for("react.memo_cache_sentinel")) {
252
+ t16 = changeTab("theme");
253
+ t17 = { py: .3 };
254
+ $[37] = t16;
255
+ $[38] = t17;
256
+ } else {
257
+ t16 = $[37];
258
+ t17 = $[38];
259
+ }
260
+ let t18;
261
+ if ($[39] === Symbol.for("react.memo_cache_sentinel")) {
262
+ t18 = /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Brightness4, {}) });
263
+ $[39] = t18;
264
+ } else t18 = $[39];
265
+ let t19;
266
+ if ($[40] !== t) {
267
+ t19 = t("Layout.Appearance");
268
+ $[40] = t;
269
+ $[41] = t19;
270
+ } else t19 = $[41];
271
+ let t20;
272
+ if ($[42] !== colorModes || $[43] !== mode || $[44] !== t) {
273
+ t20 = colorModes.find((m) => m.mode === mode)?.label ?? t("Layout.System");
274
+ $[42] = colorModes;
275
+ $[43] = mode;
276
+ $[44] = t;
277
+ $[45] = t20;
278
+ } else t20 = $[45];
279
+ let t21;
280
+ if ($[46] !== t19 || $[47] !== t20) {
281
+ t21 = /* @__PURE__ */ jsx(ListItemText, {
282
+ primary: t19,
283
+ secondary: t20
284
+ });
285
+ $[46] = t19;
286
+ $[47] = t20;
287
+ $[48] = t21;
288
+ } else t21 = $[48];
289
+ let t22;
290
+ if ($[49] === Symbol.for("react.memo_cache_sentinel")) {
291
+ t22 = /* @__PURE__ */ jsx(ChevronRight, {});
292
+ $[49] = t22;
293
+ } else t22 = $[49];
294
+ let t23;
295
+ if ($[50] !== t21) {
296
+ t23 = /* @__PURE__ */ jsxs(ListItemButton, {
297
+ onClick: t16,
298
+ sx: t17,
299
+ children: [
300
+ t18,
301
+ t21,
302
+ t22
303
+ ]
304
+ });
305
+ $[50] = t21;
306
+ $[51] = t23;
307
+ } else t23 = $[51];
308
+ let t24;
309
+ let t25;
310
+ if ($[52] === Symbol.for("react.memo_cache_sentinel")) {
311
+ t24 = changeTab("language");
312
+ t25 = { py: .3 };
313
+ $[52] = t24;
314
+ $[53] = t25;
315
+ } else {
316
+ t24 = $[52];
317
+ t25 = $[53];
318
+ }
319
+ let t26;
320
+ if ($[54] === Symbol.for("react.memo_cache_sentinel")) {
321
+ t26 = /* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Translate, {}) });
322
+ $[54] = t26;
323
+ } else t26 = $[54];
324
+ let t27;
325
+ if ($[55] !== t) {
326
+ t27 = t("Layout.Language");
327
+ $[55] = t;
328
+ $[56] = t27;
329
+ } else t27 = $[56];
330
+ let t28;
331
+ if ($[57] === Symbol.for("react.memo_cache_sentinel")) {
332
+ t28 = /* @__PURE__ */ jsx(ChevronRight, {});
333
+ $[57] = t28;
334
+ } else t28 = $[57];
335
+ const t29 = /* @__PURE__ */ jsxs(ListItemButton, {
336
+ onClick: t24,
337
+ sx: t25,
338
+ children: [
339
+ t26,
340
+ /* @__PURE__ */ jsx(ListItemText, {
341
+ primary: t27,
342
+ secondary: capitalize(languageDisplayNames.of(i18n.language))
343
+ }),
344
+ t28
345
+ ]
346
+ });
347
+ let t30;
348
+ if ($[58] !== t15 || $[59] !== t23 || $[60] !== t29) {
349
+ t30 = /* @__PURE__ */ jsxs(List, {
350
+ component: "nav",
351
+ subheader: t15,
352
+ children: [t23, t29]
353
+ });
354
+ $[58] = t15;
355
+ $[59] = t23;
356
+ $[60] = t29;
357
+ $[61] = t30;
358
+ } else t30 = $[61];
359
+ settings = t30;
360
+ let t31;
361
+ let t32;
362
+ if ($[62] === Symbol.for("react.memo_cache_sentinel")) {
363
+ t31 = changeTab("settings");
364
+ t32 = {
365
+ backgroundColor: "transparent",
366
+ display: "flex",
367
+ alignItems: "center",
368
+ px: 1,
369
+ cursor: "pointer"
370
+ };
371
+ $[62] = t31;
372
+ $[63] = t32;
373
+ } else {
374
+ t31 = $[62];
375
+ t32 = $[63];
376
+ }
377
+ let t33;
378
+ if ($[64] === Symbol.for("react.memo_cache_sentinel")) {
379
+ t33 = { mr: .5 };
380
+ $[64] = t33;
381
+ } else t33 = $[64];
382
+ let t34;
383
+ if ($[65] === Symbol.for("react.memo_cache_sentinel")) {
384
+ t34 = /* @__PURE__ */ jsx(IconButton, {
385
+ size: "small",
386
+ sx: t33,
387
+ "aria-label": "Back",
388
+ children: /* @__PURE__ */ jsx(ArrowBack, { fontSize: "small" })
389
+ });
390
+ $[65] = t34;
391
+ } else t34 = $[65];
392
+ let t35;
393
+ if ($[66] !== t) {
394
+ t35 = t("Layout.Appearance");
395
+ $[66] = t;
396
+ $[67] = t35;
397
+ } else t35 = $[67];
398
+ let t36;
399
+ if ($[68] !== t35) {
400
+ t36 = /* @__PURE__ */ jsxs(ListSubheader, {
401
+ onClick: t31,
402
+ sx: t32,
403
+ children: [
404
+ t34,
405
+ " ",
406
+ t35
407
+ ]
408
+ });
409
+ $[68] = t35;
410
+ $[69] = t36;
411
+ } else t36 = $[69];
412
+ let t37;
413
+ if ($[70] !== colorModes || $[71] !== mode || $[72] !== setMode) {
414
+ t37 = colorModes.map((t38) => {
415
+ const { mode: modeValue, icon: Icon, label } = t38;
416
+ return /* @__PURE__ */ jsxs(ListItemButton, {
417
+ onClick: () => {
418
+ setMode(modeValue);
419
+ closeMenu();
420
+ },
421
+ selected: mode === modeValue,
422
+ children: [/* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Icon, {}) }), /* @__PURE__ */ jsx(ListItemText, { primary: label })]
423
+ }, modeValue);
424
+ });
425
+ $[70] = colorModes;
426
+ $[71] = mode;
427
+ $[72] = setMode;
428
+ $[73] = t37;
429
+ } else t37 = $[73];
430
+ let t38;
431
+ if ($[74] !== t36 || $[75] !== t37) {
432
+ t38 = /* @__PURE__ */ jsx(List, {
433
+ subheader: t36,
434
+ children: t37
435
+ });
436
+ $[74] = t36;
437
+ $[75] = t37;
438
+ $[76] = t38;
439
+ } else t38 = $[76];
440
+ theme = t38;
441
+ T0 = List;
442
+ let t39;
443
+ let t40;
444
+ if ($[77] === Symbol.for("react.memo_cache_sentinel")) {
445
+ t39 = changeTab("settings");
446
+ t40 = {
447
+ backgroundColor: "transparent",
448
+ display: "flex",
449
+ alignItems: "center",
450
+ px: 1,
451
+ cursor: "pointer"
452
+ };
453
+ $[77] = t39;
454
+ $[78] = t40;
455
+ } else {
456
+ t39 = $[77];
457
+ t40 = $[78];
458
+ }
459
+ let t41;
460
+ if ($[79] === Symbol.for("react.memo_cache_sentinel")) {
461
+ t41 = { mr: .5 };
462
+ $[79] = t41;
463
+ } else t41 = $[79];
464
+ let t42;
465
+ if ($[80] === Symbol.for("react.memo_cache_sentinel")) {
466
+ t42 = /* @__PURE__ */ jsx(IconButton, {
467
+ size: "small",
468
+ sx: t41,
469
+ "aria-label": "Back",
470
+ children: /* @__PURE__ */ jsx(ArrowBack, { fontSize: "small" })
471
+ });
472
+ $[80] = t42;
473
+ } else t42 = $[80];
474
+ let t43;
475
+ if ($[81] !== t) {
476
+ t43 = t("Layout.Language");
477
+ $[81] = t;
478
+ $[82] = t43;
479
+ } else t43 = $[82];
480
+ if ($[83] !== t43) {
481
+ t1 = /* @__PURE__ */ jsxs(ListSubheader, {
482
+ onClick: t39,
483
+ sx: t40,
484
+ children: [
485
+ t42,
486
+ " ",
487
+ t43
488
+ ]
489
+ });
490
+ $[83] = t43;
491
+ $[84] = t1;
492
+ } else t1 = $[84];
493
+ t2 = supportedLanguages.map((languageCode) => /* @__PURE__ */ jsxs(ListItemButton, {
494
+ onClick: () => i18n.changeLanguage(languageCode).finally(() => closeMenu()),
495
+ selected: i18n.resolvedLanguage === languageCode,
496
+ children: [/* @__PURE__ */ jsx(ListItemIcon, { children: i18n.resolvedLanguage === languageCode && /* @__PURE__ */ jsx(Done, {}) }), /* @__PURE__ */ jsx(ListItemText, { primary: capitalize(languageDisplayNames.of(languageCode)) })]
497
+ }, languageCode));
498
+ $[2] = i18n;
499
+ $[3] = mode;
500
+ $[4] = setMode;
501
+ $[5] = t;
502
+ $[6] = T0;
503
+ $[7] = closeMenu;
504
+ $[8] = openMenu;
505
+ $[9] = settings;
506
+ $[10] = t1;
507
+ $[11] = t2;
508
+ $[12] = theme;
509
+ } else {
510
+ T0 = $[6];
511
+ closeMenu = $[7];
512
+ openMenu = $[8];
513
+ settings = $[9];
514
+ t1 = $[10];
515
+ t2 = $[11];
516
+ theme = $[12];
517
+ }
518
+ let t3;
519
+ if ($[85] !== T0 || $[86] !== t1 || $[87] !== t2) {
520
+ t3 = /* @__PURE__ */ jsx(T0, {
521
+ subheader: t1,
522
+ children: t2
523
+ });
524
+ $[85] = T0;
525
+ $[86] = t1;
526
+ $[87] = t2;
527
+ $[88] = t3;
528
+ } else t3 = $[88];
529
+ const language = t3;
530
+ let t4;
531
+ if ($[89] !== user) {
532
+ t4 = user ? /* @__PURE__ */ jsx(UserAvatar, {}) : /* @__PURE__ */ jsx(AccountCircle, { sx: {
533
+ width: {
534
+ xs: 32,
535
+ sm: 40
536
+ },
537
+ height: {
538
+ xs: 32,
539
+ sm: 40
540
+ }
541
+ } });
542
+ $[89] = user;
543
+ $[90] = t4;
544
+ } else t4 = $[90];
545
+ let t5;
546
+ if ($[91] !== openMenu || $[92] !== t4) {
547
+ t5 = /* @__PURE__ */ jsx(IconButton, {
548
+ size: "small",
549
+ edge: "end",
550
+ onClick: openMenu,
551
+ "aria-label": "Account",
552
+ children: t4
553
+ });
554
+ $[91] = openMenu;
555
+ $[92] = t4;
556
+ $[93] = t5;
557
+ } else t5 = $[93];
558
+ let t6;
559
+ if ($[94] === Symbol.for("react.memo_cache_sentinel")) {
560
+ t6 = { width: 240 };
561
+ $[94] = t6;
562
+ } else t6 = $[94];
563
+ let t7;
564
+ if ($[95] !== t || $[96] !== user) {
565
+ t7 = /* @__PURE__ */ jsx(List, {
566
+ disablePadding: true,
567
+ children: user ? /* @__PURE__ */ jsxs(Fragment, { children: [/* @__PURE__ */ jsx(ListItem, { children: /* @__PURE__ */ jsx(ListItemText, {
568
+ primary: user.name,
569
+ secondary: /* @__PURE__ */ jsxs("span", { children: [
570
+ user.employeeId && /* @__PURE__ */ jsx("span", { children: user.employeeId }),
571
+ user.employeeId && /* @__PURE__ */ jsx("br", {}),
572
+ user.department && /* @__PURE__ */ jsx("span", { children: user.department })
573
+ ] })
574
+ }) }), /* @__PURE__ */ jsxs(ListItemButton, {
575
+ onClick: _temp2$1,
576
+ children: [/* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Logout, { color: "error" }) }), /* @__PURE__ */ jsx(ListItemText, { primary: t("Layout.Logout") })]
577
+ })] }) : /* @__PURE__ */ jsxs(ListItemButton, {
578
+ onClick: _temp3,
579
+ children: [/* @__PURE__ */ jsx(ListItemIcon, { children: /* @__PURE__ */ jsx(Login, { color: "success" }) }), /* @__PURE__ */ jsx(ListItemText, { primary: t("Layout.LogIn") })]
580
+ })
581
+ });
582
+ $[95] = t;
583
+ $[96] = user;
584
+ $[97] = t7;
585
+ } else t7 = $[97];
586
+ const t8 = tab === "settings" && settings;
587
+ const t9 = tab === "theme" && theme;
588
+ const t10 = tab === "language" && language;
589
+ let t11;
590
+ if ($[98] !== t10 || $[99] !== t7 || $[100] !== t8 || $[101] !== t9) {
591
+ t11 = /* @__PURE__ */ jsxs(Box, {
592
+ sx: t6,
593
+ children: [
594
+ t7,
595
+ t8,
596
+ t9,
597
+ t10
598
+ ]
599
+ });
600
+ $[98] = t10;
601
+ $[99] = t7;
602
+ $[100] = t8;
603
+ $[101] = t9;
604
+ $[102] = t11;
605
+ } else t11 = $[102];
606
+ let t12;
607
+ if ($[103] !== anchorElement || $[104] !== closeMenu || $[105] !== open || $[106] !== t11) {
608
+ t12 = /* @__PURE__ */ jsx(Menu, {
609
+ anchorEl: anchorElement,
610
+ open,
611
+ onClose: closeMenu,
612
+ children: t11
613
+ });
614
+ $[103] = anchorElement;
615
+ $[104] = closeMenu;
616
+ $[105] = open;
617
+ $[106] = t11;
618
+ $[107] = t12;
619
+ } else t12 = $[107];
620
+ let t13;
621
+ if ($[108] !== t12 || $[109] !== t5) {
622
+ t13 = /* @__PURE__ */ jsxs(Fragment, { children: [t5, t12] });
623
+ $[108] = t12;
624
+ $[109] = t5;
625
+ $[110] = t13;
626
+ } else t13 = $[110];
627
+ return t13;
628
+ };
629
+ function _temp$4(lng) {
630
+ return lng !== "cimode";
631
+ }
632
+ function _temp2$1() {
633
+ location.href = "/auth/logout";
634
+ }
635
+ function _temp3() {
636
+ const returnTo = location.pathname + location.search;
637
+ location.href = `/auth/login?returnTo=${encodeURIComponent(returnTo)}`;
638
+ }
639
+ //#endregion
640
+ //#region src/components/core/AppTitle.tsx
641
+ const PRODUCTION_ENV = "PRD";
642
+ const getEnv = (url) => z.string().refine((u) => u.split("-").length > 2).transform((u) => u.split("-")[2].toUpperCase()).catch("LOCALHOST").parse(url);
643
+ const AppTitle = () => {
644
+ const $ = c(13);
645
+ if ($[0] !== "8e7891487af76938c6ce605f2584d62174e31434ffdbb466cc994617d718eadf") {
646
+ for (let $i = 0; $i < 13; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
647
+ $[0] = "8e7891487af76938c6ce605f2584d62174e31434ffdbb466cc994617d718eadf";
648
+ }
649
+ const router = useRouter();
650
+ let t0;
651
+ if ($[1] !== router.origin) {
652
+ t0 = getEnv(router.origin);
653
+ $[1] = router.origin;
654
+ $[2] = t0;
655
+ } else t0 = $[2];
656
+ const env = t0;
657
+ const isProduction = env === PRODUCTION_ENV;
658
+ let t1;
659
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
660
+ t1 = {
661
+ alignItems: "center",
662
+ flexGrow: 1
663
+ };
664
+ $[3] = t1;
665
+ } else t1 = $[3];
666
+ let t2;
667
+ if ($[4] === Symbol.for("react.memo_cache_sentinel")) {
668
+ t2 = /* @__PURE__ */ jsx(RouterIconButton, {
669
+ to: "/",
670
+ size: "small",
671
+ children: /* @__PURE__ */ jsx("img", {
672
+ src: "/favicon-32x32.png",
673
+ alt: manifest.name,
674
+ loading: "lazy"
675
+ })
676
+ });
677
+ $[4] = t2;
678
+ } else t2 = $[4];
679
+ let t3;
680
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
681
+ t3 = { display: {
682
+ xs: "inline",
683
+ sm: "none"
684
+ } };
685
+ $[5] = t3;
686
+ } else t3 = $[5];
687
+ let t4;
688
+ if ($[6] === Symbol.for("react.memo_cache_sentinel")) {
689
+ t4 = /* @__PURE__ */ jsx(Box, {
690
+ component: "span",
691
+ sx: t3,
692
+ children: manifest.short_name ?? manifest.name
693
+ });
694
+ $[6] = t4;
695
+ } else t4 = $[6];
696
+ let t5;
697
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
698
+ t5 = /* @__PURE__ */ jsxs(Typography, {
699
+ variant: "h6",
700
+ children: [t4, /* @__PURE__ */ jsx(Box, {
701
+ component: "span",
702
+ sx: { display: {
703
+ xs: "none",
704
+ sm: "inline"
705
+ } },
706
+ children: manifest.name
707
+ })]
708
+ });
709
+ $[7] = t5;
710
+ } else t5 = $[7];
711
+ let t6;
712
+ if ($[8] !== env || $[9] !== isProduction) {
713
+ t6 = !isProduction && /* @__PURE__ */ jsx(Chip, {
714
+ size: "small",
715
+ label: env,
716
+ color: "primary"
717
+ });
718
+ $[8] = env;
719
+ $[9] = isProduction;
720
+ $[10] = t6;
721
+ } else t6 = $[10];
722
+ let t7;
723
+ if ($[11] !== t6) {
724
+ t7 = /* @__PURE__ */ jsxs(Stack, {
725
+ direction: "row",
726
+ spacing: 1,
727
+ sx: t1,
728
+ children: [
729
+ t2,
730
+ t5,
731
+ t6
732
+ ]
733
+ });
734
+ $[11] = t6;
735
+ $[12] = t7;
736
+ } else t7 = $[12];
737
+ return t7;
738
+ };
739
+ //#endregion
740
+ //#region src/models/Navigation.ts
741
+ const isPageItem = (item) => item.kind === "item";
742
+ const isPageGroup = (item) => item.kind === "group";
743
+ const isDivider = (item) => item.kind === "divider";
744
+ const isHeader = (item) => item.kind === "header";
745
+ //#endregion
746
+ //#region src/components/core/navigation/NavigationListItem.tsx
747
+ const ICON_SIZE = 34;
748
+ const getSelectedColor = (theme) => theme.vars?.palette.primary.dark ?? theme.palette.primary.dark;
749
+ const getActionActiveColor = (theme) => theme.vars?.palette.action.active ?? theme.palette.action.active;
750
+ const StyledNavButton = styled(ListItemButton$1)(({ theme }) => ({
751
+ borderRadius: Number(theme.shape.borderRadius) * 2,
752
+ "&.Mui-selected": {
753
+ "& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root": { color: getSelectedColor(theme) },
754
+ "& .MuiAvatar-root": { backgroundColor: getSelectedColor(theme) },
755
+ "& .MuiTouchRipple-child": { backgroundColor: getSelectedColor(theme) }
756
+ },
757
+ "& .MuiSvgIcon-root": { color: getActionActiveColor(theme) },
758
+ "& .MuiAvatar-root": { backgroundColor: getActionActiveColor(theme) }
759
+ }));
760
+ const routerButtonSx = (theme) => ({
761
+ borderRadius: 2,
762
+ "&.Mui-selected": {
763
+ "& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root": { color: getSelectedColor(theme) },
764
+ "& .MuiAvatar-root": { backgroundColor: getSelectedColor(theme) },
765
+ "& .MuiTouchRipple-child": { backgroundColor: getSelectedColor(theme) }
766
+ },
767
+ "& .MuiSvgIcon-root": { color: getActionActiveColor(theme) },
768
+ "& .MuiAvatar-root": { backgroundColor: getActionActiveColor(theme) }
769
+ });
770
+ const IconOrAvatar = (t0) => {
771
+ const $ = c(18);
772
+ if ($[0] !== "a5a2437d20ca7e62fe542d3943ca8a6b2a0b22122396667ddebffe138510b1d9") {
773
+ for (let $i = 0; $i < 18; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
774
+ $[0] = "a5a2437d20ca7e62fe542d3943ca8a6b2a0b22122396667ddebffe138510b1d9";
775
+ }
776
+ const { item, collapsed } = t0;
777
+ if (item.icon || collapsed) {
778
+ let t1;
779
+ if ($[1] !== collapsed) {
780
+ t1 = collapsed ? {
781
+ position: "absolute",
782
+ left: "50%",
783
+ top: "calc(50% - 6px)",
784
+ transform: "translate(-50%, -50%)"
785
+ } : {};
786
+ $[1] = collapsed;
787
+ $[2] = t1;
788
+ } else t1 = $[2];
789
+ let t2;
790
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
791
+ t2 = {
792
+ display: "flex",
793
+ alignItems: "center",
794
+ justifyContent: "center",
795
+ minWidth: ICON_SIZE
796
+ };
797
+ $[3] = t2;
798
+ } else t2 = $[3];
799
+ const t3 = item.icon ?? null;
800
+ let t4;
801
+ if ($[4] !== collapsed || $[5] !== item.icon || $[6] !== item.title) {
802
+ t4 = !item.icon && collapsed ? /* @__PURE__ */ jsx(Avatar$1, {
803
+ sx: {
804
+ width: ICON_SIZE - 7,
805
+ height: ICON_SIZE - 7,
806
+ fontSize: 12
807
+ },
808
+ children: item.title.split(" ").slice(0, 2).map(_temp$3).join("")
809
+ }) : null;
810
+ $[4] = collapsed;
811
+ $[5] = item.icon;
812
+ $[6] = item.title;
813
+ $[7] = t4;
814
+ } else t4 = $[7];
815
+ let t5;
816
+ if ($[8] !== t3 || $[9] !== t4) {
817
+ t5 = /* @__PURE__ */ jsxs(ListItemIcon$1, {
818
+ sx: t2,
819
+ children: [t3, t4]
820
+ });
821
+ $[8] = t3;
822
+ $[9] = t4;
823
+ $[10] = t5;
824
+ } else t5 = $[10];
825
+ let t6;
826
+ if ($[11] !== collapsed || $[12] !== item.title) {
827
+ t6 = collapsed ? /* @__PURE__ */ jsx(Typography$1, {
828
+ variant: "caption",
829
+ sx: {
830
+ position: "absolute",
831
+ bottom: -18,
832
+ left: "50%",
833
+ transform: "translateX(-50%)",
834
+ fontSize: 10,
835
+ fontWeight: 500,
836
+ textAlign: "center",
837
+ whiteSpace: "nowrap",
838
+ overflow: "hidden",
839
+ textOverflow: "ellipsis",
840
+ maxWidth: 56
841
+ },
842
+ children: item.title
843
+ }) : null;
844
+ $[11] = collapsed;
845
+ $[12] = item.title;
846
+ $[13] = t6;
847
+ } else t6 = $[13];
848
+ let t7;
849
+ if ($[14] !== t1 || $[15] !== t5 || $[16] !== t6) {
850
+ t7 = /* @__PURE__ */ jsxs(Box$1, {
851
+ sx: t1,
852
+ children: [t5, t6]
853
+ });
854
+ $[14] = t1;
855
+ $[15] = t5;
856
+ $[16] = t6;
857
+ $[17] = t7;
858
+ } else t7 = $[17];
859
+ return t7;
860
+ }
861
+ return null;
862
+ };
863
+ const MiniPopover = (t0) => {
864
+ const $ = c(8);
865
+ if ($[0] !== "a5a2437d20ca7e62fe542d3943ca8a6b2a0b22122396667ddebffe138510b1d9") {
866
+ for (let $i = 0; $i < 8; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
867
+ $[0] = "a5a2437d20ca7e62fe542d3943ca8a6b2a0b22122396667ddebffe138510b1d9";
868
+ }
869
+ const { open, children } = t0;
870
+ let t1;
871
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
872
+ t1 = {
873
+ position: "fixed",
874
+ left: 84,
875
+ pl: "2px",
876
+ pb: "10px"
877
+ };
878
+ $[1] = t1;
879
+ } else t1 = $[1];
880
+ let t2;
881
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
882
+ t2 = {
883
+ pt: .5,
884
+ pb: .5,
885
+ transform: "translateY(calc(50% - 30px))",
886
+ maxHeight: "min(calc(100vh - 100px), 560px)",
887
+ overflowY: "auto",
888
+ overscrollBehavior: "contain"
889
+ };
890
+ $[2] = t2;
891
+ } else t2 = $[2];
892
+ let t3;
893
+ if ($[3] !== children) {
894
+ t3 = /* @__PURE__ */ jsx(Box$1, {
895
+ sx: t1,
896
+ children: /* @__PURE__ */ jsx(Paper, {
897
+ sx: t2,
898
+ children
899
+ })
900
+ });
901
+ $[3] = children;
902
+ $[4] = t3;
903
+ } else t3 = $[4];
904
+ let t4;
905
+ if ($[5] !== open || $[6] !== t3) {
906
+ t4 = /* @__PURE__ */ jsx(Grow, {
907
+ in: open,
908
+ children: t3
909
+ });
910
+ $[5] = open;
911
+ $[6] = t3;
912
+ $[7] = t4;
913
+ } else t4 = $[7];
914
+ return t4;
915
+ };
916
+ const NavigationListItem = (t0) => {
917
+ const $ = c(62);
918
+ if ($[0] !== "a5a2437d20ca7e62fe542d3943ca8a6b2a0b22122396667ddebffe138510b1d9") {
919
+ for (let $i = 0; $i < 62; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
920
+ $[0] = "a5a2437d20ca7e62fe542d3943ca8a6b2a0b22122396667ddebffe138510b1d9";
921
+ }
922
+ const { item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded: t1, isSidebarFullyCollapsed, onClick, renderNested, onClose } = t0;
923
+ const isSidebarFullyExpanded = t1 === void 0 ? true : t1;
924
+ const [hoveredMiniItemId, setHoveredMiniItemId] = useState(null);
925
+ let t2;
926
+ if ($[1] !== item) {
927
+ t2 = isPageGroup(item);
928
+ $[1] = item;
929
+ $[2] = t2;
930
+ } else t2 = $[2];
931
+ const groupItem = t2;
932
+ const itemId = groupItem ? `group-${item.title}` : `item-${item.to ?? item.href ?? item.title}`;
933
+ let t3;
934
+ if ($[3] !== collapsed || $[4] !== groupItem || $[5] !== isOpen || $[6] !== isSidebarFullyCollapsed || $[7] !== isSidebarFullyExpanded) {
935
+ t3 = (theme) => {
936
+ if (collapsed && isSidebarFullyCollapsed && groupItem) return {
937
+ fontSize: 18,
938
+ position: "absolute",
939
+ top: "41.5%",
940
+ right: "2px",
941
+ transform: "translateY(-50%) rotate(-90deg)"
942
+ };
943
+ if (!collapsed && isSidebarFullyExpanded && groupItem) return {
944
+ ml: .5,
945
+ transform: `rotate(${isOpen ? 0 : -90}deg)`,
946
+ transition: theme.transitions.create("transform", {
947
+ easing: theme.transitions.easing.sharp,
948
+ duration: 100
949
+ })
950
+ };
951
+ return { display: "none" };
952
+ };
953
+ $[3] = collapsed;
954
+ $[4] = groupItem;
955
+ $[5] = isOpen;
956
+ $[6] = isSidebarFullyCollapsed;
957
+ $[7] = isSidebarFullyExpanded;
958
+ $[8] = t3;
959
+ } else t3 = $[8];
960
+ const chevronSx = t3;
961
+ const shouldJustExpand = groupItem && !collapsed;
962
+ const t4 = collapsed ? 60 : 48;
963
+ let t5;
964
+ if ($[9] !== t4) {
965
+ t5 = {
966
+ px: 1.4,
967
+ height: t4
968
+ };
969
+ $[9] = t4;
970
+ $[10] = t5;
971
+ } else t5 = $[10];
972
+ let t6;
973
+ if ($[11] !== disabled || $[12] !== selected || $[13] !== t5) {
974
+ t6 = {
975
+ selected,
976
+ disabled,
977
+ sx: t5
978
+ };
979
+ $[11] = disabled;
980
+ $[12] = selected;
981
+ $[13] = t5;
982
+ $[14] = t6;
983
+ } else t6 = $[14];
984
+ const buttonProps = t6;
985
+ let t7;
986
+ if ($[15] !== collapsed || $[16] !== item) {
987
+ t7 = /* @__PURE__ */ jsx(IconOrAvatar, {
988
+ item,
989
+ collapsed
990
+ });
991
+ $[15] = collapsed;
992
+ $[16] = item;
993
+ $[17] = t7;
994
+ } else t7 = $[17];
995
+ let t8;
996
+ if ($[18] !== collapsed || $[19] !== item.title) {
997
+ t8 = !collapsed && /* @__PURE__ */ jsx(ListItemText$1, {
998
+ primary: item.title,
999
+ slotProps: { primary: {
1000
+ noWrap: true,
1001
+ title: item.title
1002
+ } },
1003
+ sx: {
1004
+ ml: 1.2,
1005
+ flex: 1,
1006
+ minWidth: 0,
1007
+ "& .MuiTypography-root": {
1008
+ whiteSpace: "nowrap",
1009
+ overflow: "hidden",
1010
+ textOverflow: "ellipsis"
1011
+ }
1012
+ }
1013
+ });
1014
+ $[18] = collapsed;
1015
+ $[19] = item.title;
1016
+ $[20] = t8;
1017
+ } else t8 = $[20];
1018
+ let t9;
1019
+ if ($[21] !== chevronSx || $[22] !== groupItem) {
1020
+ t9 = groupItem ? /* @__PURE__ */ jsx(ExpandMoreIcon, { sx: chevronSx }) : null;
1021
+ $[21] = chevronSx;
1022
+ $[22] = groupItem;
1023
+ $[23] = t9;
1024
+ } else t9 = $[23];
1025
+ let t10;
1026
+ if ($[24] !== t7 || $[25] !== t8 || $[26] !== t9) {
1027
+ t10 = /* @__PURE__ */ jsxs(Fragment$1, { children: [
1028
+ t7,
1029
+ t8,
1030
+ t9
1031
+ ] });
1032
+ $[24] = t7;
1033
+ $[25] = t8;
1034
+ $[26] = t9;
1035
+ $[27] = t10;
1036
+ } else t10 = $[27];
1037
+ const buttonContent = t10;
1038
+ let t11;
1039
+ if ($[28] !== collapsed || $[29] !== groupItem || $[30] !== itemId) {
1040
+ t11 = groupItem && collapsed ? {
1041
+ onMouseEnter: () => {
1042
+ setHoveredMiniItemId(itemId);
1043
+ },
1044
+ onMouseLeave: () => {
1045
+ setHoveredMiniItemId(null);
1046
+ }
1047
+ } : {};
1048
+ $[28] = collapsed;
1049
+ $[29] = groupItem;
1050
+ $[30] = itemId;
1051
+ $[31] = t11;
1052
+ } else t11 = $[31];
1053
+ let t12;
1054
+ if ($[32] === Symbol.for("react.memo_cache_sentinel")) {
1055
+ t12 = {
1056
+ py: 0,
1057
+ px: 1,
1058
+ overflowX: "hidden"
1059
+ };
1060
+ $[32] = t12;
1061
+ } else t12 = $[32];
1062
+ let t13;
1063
+ if ($[33] !== buttonContent || $[34] !== buttonProps || $[35] !== groupItem || $[36] !== item || $[37] !== onClick || $[38] !== onClose || $[39] !== shouldJustExpand) {
1064
+ t13 = groupItem ? /* @__PURE__ */ jsx(StyledNavButton, {
1065
+ ...buttonProps,
1066
+ onClick: shouldJustExpand ? () => onClick?.(item) : void 0,
1067
+ children: buttonContent
1068
+ }) : /* @__PURE__ */ jsx(RouterListItemButton, {
1069
+ ...buttonProps,
1070
+ to: item.to,
1071
+ href: item.href,
1072
+ params: item.params,
1073
+ search: item.search,
1074
+ onClick: onClose,
1075
+ sx: [buttonProps.sx, routerButtonSx],
1076
+ children: buttonContent
1077
+ });
1078
+ $[33] = buttonContent;
1079
+ $[34] = buttonProps;
1080
+ $[35] = groupItem;
1081
+ $[36] = item;
1082
+ $[37] = onClick;
1083
+ $[38] = onClose;
1084
+ $[39] = shouldJustExpand;
1085
+ $[40] = t13;
1086
+ } else t13 = $[40];
1087
+ let t14;
1088
+ if ($[41] !== collapsed || $[42] !== groupItem || $[43] !== hoveredMiniItemId || $[44] !== item.children || $[45] !== itemId || $[46] !== renderNested) {
1089
+ t14 = groupItem && collapsed ? /* @__PURE__ */ jsx(MiniPopover, {
1090
+ open: itemId === hoveredMiniItemId,
1091
+ children: renderNested?.(item.children)
1092
+ }) : null;
1093
+ $[41] = collapsed;
1094
+ $[42] = groupItem;
1095
+ $[43] = hoveredMiniItemId;
1096
+ $[44] = item.children;
1097
+ $[45] = itemId;
1098
+ $[46] = renderNested;
1099
+ $[47] = t14;
1100
+ } else t14 = $[47];
1101
+ let t15;
1102
+ if ($[48] !== t11 || $[49] !== t13 || $[50] !== t14) {
1103
+ t15 = /* @__PURE__ */ jsxs(ListItem$1, {
1104
+ ...t11,
1105
+ sx: t12,
1106
+ children: [t13, t14]
1107
+ });
1108
+ $[48] = t11;
1109
+ $[49] = t13;
1110
+ $[50] = t14;
1111
+ $[51] = t15;
1112
+ } else t15 = $[51];
1113
+ const listItem = t15;
1114
+ let t16;
1115
+ if ($[52] !== collapsed || $[53] !== groupItem || $[54] !== isOpen || $[55] !== item.children || $[56] !== renderNested) {
1116
+ t16 = groupItem && !collapsed ? /* @__PURE__ */ jsx(Collapse, {
1117
+ in: isOpen,
1118
+ timeout: "auto",
1119
+ unmountOnExit: true,
1120
+ children: renderNested?.(item.children)
1121
+ }) : null;
1122
+ $[52] = collapsed;
1123
+ $[53] = groupItem;
1124
+ $[54] = isOpen;
1125
+ $[55] = item.children;
1126
+ $[56] = renderNested;
1127
+ $[57] = t16;
1128
+ } else t16 = $[57];
1129
+ let t17;
1130
+ if ($[58] !== itemId || $[59] !== listItem || $[60] !== t16) {
1131
+ t17 = /* @__PURE__ */ jsxs(Fragment, { children: [listItem, t16] }, itemId);
1132
+ $[58] = itemId;
1133
+ $[59] = listItem;
1134
+ $[60] = t16;
1135
+ $[61] = t17;
1136
+ } else t17 = $[61];
1137
+ return t17;
1138
+ };
1139
+ function _temp$3(word) {
1140
+ return word.charAt(0).toUpperCase();
1141
+ }
1142
+ //#endregion
1143
+ //#region src/components/core/navigation/NavigationList.tsx
1144
+ const NavigationList = (t0) => {
1145
+ const $ = c(29);
1146
+ if ($[0] !== "4dbd114545118530db002b7c781f97683277f7b721a30074e8778a8e4ea56119") {
1147
+ for (let $i = 0; $i < 29; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1148
+ $[0] = "4dbd114545118530db002b7c781f97683277f7b721a30074e8778a8e4ea56119";
1149
+ }
1150
+ const { subNavigation, depth: t1, collapsed, isPopover, isSidebarFullyExpanded: t2, isSidebarFullyCollapsed, renderItem, activePath, onClose } = t0;
1151
+ const depth = t1 === void 0 ? 0 : t1;
1152
+ const isSidebarFullyExpanded = t2 === void 0 ? true : t2;
1153
+ let t3;
1154
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
1155
+ t3 = [];
1156
+ $[1] = t3;
1157
+ } else t3 = $[1];
1158
+ const [openKeys, setOpenKeys] = useState(t3);
1159
+ let t4;
1160
+ let t5;
1161
+ if ($[2] !== collapsed) {
1162
+ t4 = () => {
1163
+ if (collapsed) setOpenKeys([]);
1164
+ };
1165
+ t5 = [collapsed];
1166
+ $[2] = collapsed;
1167
+ $[3] = t4;
1168
+ $[4] = t5;
1169
+ } else {
1170
+ t4 = $[3];
1171
+ t5 = $[4];
1172
+ }
1173
+ useEffect(t4, t5);
1174
+ let t6;
1175
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
1176
+ t6 = (key) => setOpenKeys((previous) => previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]);
1177
+ $[5] = t6;
1178
+ } else t6 = $[5];
1179
+ const toggleKey = t6;
1180
+ let t7;
1181
+ if ($[6] !== activePath || $[7] !== collapsed || $[8] !== depth || $[9] !== onClose) {
1182
+ t7 = (children) => /* @__PURE__ */ jsx(NavigationList, {
1183
+ subNavigation: children,
1184
+ depth: depth + 1,
1185
+ isPopover: collapsed,
1186
+ activePath,
1187
+ onClose
1188
+ });
1189
+ $[6] = activePath;
1190
+ $[7] = collapsed;
1191
+ $[8] = depth;
1192
+ $[9] = onClose;
1193
+ $[10] = t7;
1194
+ } else t7 = $[10];
1195
+ const renderNested = t7;
1196
+ let t8;
1197
+ if ($[11] !== activePath || $[12] !== collapsed || $[13] !== depth || $[14] !== isPopover || $[15] !== isSidebarFullyCollapsed || $[16] !== isSidebarFullyExpanded || $[17] !== onClose || $[18] !== openKeys || $[19] !== renderItem || $[20] !== renderNested || $[21] !== subNavigation) {
1198
+ const filteredNavigation = subNavigation.filter(_temp$2);
1199
+ const t9 = isPopover && depth === 1 ? .5 : 0;
1200
+ const t10 = depth === 0 && !isPopover ? 4 : .5;
1201
+ const t11 = (isPopover ? 1 : 2) * (isPopover ? depth - 1 : depth);
1202
+ const t12 = isPopover && depth === 1 ? 240 : "auto";
1203
+ const t13 = collapsed ? 84 : "auto";
1204
+ let t14;
1205
+ if ($[23] !== t10 || $[24] !== t11 || $[25] !== t12 || $[26] !== t13 || $[27] !== t9) {
1206
+ t14 = {
1207
+ padding: 0,
1208
+ mt: t9,
1209
+ mb: t10,
1210
+ pl: t11,
1211
+ minWidth: t12,
1212
+ width: t13
1213
+ };
1214
+ $[23] = t10;
1215
+ $[24] = t11;
1216
+ $[25] = t12;
1217
+ $[26] = t13;
1218
+ $[27] = t9;
1219
+ $[28] = t14;
1220
+ } else t14 = $[28];
1221
+ t8 = /* @__PURE__ */ jsx(List$1, {
1222
+ sx: t14,
1223
+ children: filteredNavigation.map((navItem, index) => {
1224
+ if (isHeader(navItem)) return /* @__PURE__ */ jsx(ListSubheader$1, {
1225
+ sx: {
1226
+ fontSize: 12,
1227
+ fontWeight: "700",
1228
+ height: collapsed ? 0 : 40,
1229
+ px: 2,
1230
+ overflow: "hidden",
1231
+ textOverflow: "ellipsis",
1232
+ whiteSpace: "nowrap",
1233
+ zIndex: 2,
1234
+ bgcolor: "transparent",
1235
+ position: "static"
1236
+ },
1237
+ children: navItem.title
1238
+ }, `subheader-${depth}-${index}`);
1239
+ if (isDivider(navItem)) {
1240
+ const nextItem = filteredNavigation[index + 1];
1241
+ return /* @__PURE__ */ jsx("li", { children: /* @__PURE__ */ jsx(Divider$1, { sx: {
1242
+ mx: 1,
1243
+ mt: 1,
1244
+ mb: nextItem && isHeader(nextItem) && !collapsed ? 0 : 1
1245
+ } }) }, `divider-${depth}-${index}`);
1246
+ }
1247
+ if (!isPageItem(navItem) && !isPageGroup(navItem)) return null;
1248
+ const key_0 = `item-${depth}-${index}`;
1249
+ const uniqueItemKey = `${depth}-${index}-${navItem.title}`;
1250
+ const selected = isPageItem(navItem) && navItem.to === activePath;
1251
+ if (renderItem) return /* @__PURE__ */ jsx(Fragment, { children: renderItem(navItem, { collapsed: !!collapsed }) }, key_0);
1252
+ return /* @__PURE__ */ jsx(NavigationListItem, {
1253
+ item: navItem,
1254
+ isOpen: openKeys.includes(uniqueItemKey),
1255
+ selected,
1256
+ collapsed,
1257
+ isSidebarFullyExpanded,
1258
+ isSidebarFullyCollapsed,
1259
+ onClick: isPageGroup(navItem) && !collapsed ? () => toggleKey(uniqueItemKey) : void 0,
1260
+ renderNested,
1261
+ onClose
1262
+ }, key_0);
1263
+ })
1264
+ });
1265
+ $[11] = activePath;
1266
+ $[12] = collapsed;
1267
+ $[13] = depth;
1268
+ $[14] = isPopover;
1269
+ $[15] = isSidebarFullyCollapsed;
1270
+ $[16] = isSidebarFullyExpanded;
1271
+ $[17] = onClose;
1272
+ $[18] = openKeys;
1273
+ $[19] = renderItem;
1274
+ $[20] = renderNested;
1275
+ $[21] = subNavigation;
1276
+ $[22] = t8;
1277
+ } else t8 = $[22];
1278
+ return t8;
1279
+ };
1280
+ function _temp$2(nav) {
1281
+ return !nav.hidden;
1282
+ }
1283
+ //#endregion
1284
+ //#region src/components/core/navigation/NavigationContent.tsx
1285
+ const NavigationContent = (t0) => {
1286
+ const $ = c(17);
1287
+ if ($[0] !== "8e18ca51999228f0bb12ab188e0dd8177eed75d44b84d25a0355fb537f5fdbd1") {
1288
+ for (let $i = 0; $i < 17; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1289
+ $[0] = "8e18ca51999228f0bb12ab188e0dd8177eed75d44b84d25a0355fb537f5fdbd1";
1290
+ }
1291
+ const { navigation, collapsed, expanded, setExpanded, showPermanent } = t0;
1292
+ const location = useLocation();
1293
+ const t1 = collapsed ? "stable" : "auto";
1294
+ const t2 = navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2;
1295
+ let t3;
1296
+ if ($[1] !== t1 || $[2] !== t2) {
1297
+ t3 = {
1298
+ height: "100%",
1299
+ display: "flex",
1300
+ flexDirection: "column",
1301
+ justifyContent: "space-between",
1302
+ overflow: "auto",
1303
+ scrollbarGutter: t1,
1304
+ overflowX: "hidden",
1305
+ pt: t2
1306
+ };
1307
+ $[1] = t1;
1308
+ $[2] = t2;
1309
+ $[3] = t3;
1310
+ } else t3 = $[3];
1311
+ const t4 = !expanded;
1312
+ let t5;
1313
+ if ($[4] !== setExpanded || $[5] !== showPermanent) {
1314
+ t5 = showPermanent ? void 0 : () => setExpanded(false);
1315
+ $[4] = setExpanded;
1316
+ $[5] = showPermanent;
1317
+ $[6] = t5;
1318
+ } else t5 = $[6];
1319
+ let t6;
1320
+ if ($[7] !== collapsed || $[8] !== expanded || $[9] !== location.pathname || $[10] !== navigation || $[11] !== t4 || $[12] !== t5) {
1321
+ t6 = /* @__PURE__ */ jsx(NavigationList, {
1322
+ subNavigation: navigation,
1323
+ collapsed,
1324
+ isSidebarFullyExpanded: expanded,
1325
+ isSidebarFullyCollapsed: t4,
1326
+ activePath: location.pathname,
1327
+ onClose: t5
1328
+ });
1329
+ $[7] = collapsed;
1330
+ $[8] = expanded;
1331
+ $[9] = location.pathname;
1332
+ $[10] = navigation;
1333
+ $[11] = t4;
1334
+ $[12] = t5;
1335
+ $[13] = t6;
1336
+ } else t6 = $[13];
1337
+ let t7;
1338
+ if ($[14] !== t3 || $[15] !== t6) {
1339
+ t7 = /* @__PURE__ */ jsx(Box$1, {
1340
+ component: "nav",
1341
+ sx: t3,
1342
+ children: t6
1343
+ });
1344
+ $[14] = t3;
1345
+ $[15] = t6;
1346
+ $[16] = t7;
1347
+ } else t7 = $[16];
1348
+ return t7;
1349
+ };
1350
+ const NavigationRail = (t0) => {
1351
+ const $ = c(29);
1352
+ if ($[0] !== "49d079c05318eb36fa341a571be66f2c7d983f06018386e081b42f162f58e4e6") {
1353
+ for (let $i = 0; $i < 29; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1354
+ $[0] = "49d079c05318eb36fa341a571be66f2c7d983f06018386e081b42f162f58e4e6";
1355
+ }
1356
+ const { navigation, expanded, setExpanded } = t0;
1357
+ let t1;
1358
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
1359
+ t1 = {
1360
+ xs: "none",
1361
+ sm: "block"
1362
+ };
1363
+ $[1] = t1;
1364
+ } else t1 = $[1];
1365
+ const t2 = expanded ? 320 : 84;
1366
+ let t3;
1367
+ if ($[2] !== expanded) {
1368
+ t3 = (theme) => ({
1369
+ position: "absolute",
1370
+ top: `64px`,
1371
+ height: `calc(100% - 64px)`,
1372
+ width: expanded ? 320 : 84,
1373
+ background: "transparent",
1374
+ borderTop: "1px solid",
1375
+ borderColor: theme.vars?.palette.divider ?? theme.palette.divider,
1376
+ boxShadow: "none"
1377
+ });
1378
+ $[2] = expanded;
1379
+ $[3] = t3;
1380
+ } else t3 = $[3];
1381
+ let t4;
1382
+ if ($[4] !== t2 || $[5] !== t3) {
1383
+ t4 = {
1384
+ display: t1,
1385
+ width: t2,
1386
+ "& .MuiDrawer-paper": t3
1387
+ };
1388
+ $[4] = t2;
1389
+ $[5] = t3;
1390
+ $[6] = t4;
1391
+ } else t4 = $[6];
1392
+ const t5 = !expanded;
1393
+ let t6;
1394
+ if ($[7] !== expanded || $[8] !== navigation || $[9] !== setExpanded || $[10] !== t5) {
1395
+ t6 = /* @__PURE__ */ jsx(NavigationContent, {
1396
+ navigation,
1397
+ collapsed: t5,
1398
+ expanded,
1399
+ setExpanded,
1400
+ showPermanent: true
1401
+ });
1402
+ $[7] = expanded;
1403
+ $[8] = navigation;
1404
+ $[9] = setExpanded;
1405
+ $[10] = t5;
1406
+ $[11] = t6;
1407
+ } else t6 = $[11];
1408
+ let t7;
1409
+ if ($[12] !== t4 || $[13] !== t6) {
1410
+ t7 = /* @__PURE__ */ jsx(Drawer, {
1411
+ variant: "permanent",
1412
+ sx: t4,
1413
+ children: t6
1414
+ });
1415
+ $[12] = t4;
1416
+ $[13] = t6;
1417
+ $[14] = t7;
1418
+ } else t7 = $[14];
1419
+ let t8;
1420
+ if ($[15] !== setExpanded) {
1421
+ t8 = () => setExpanded(false);
1422
+ $[15] = setExpanded;
1423
+ $[16] = t8;
1424
+ } else t8 = $[16];
1425
+ let t9;
1426
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
1427
+ t9 = {
1428
+ display: {
1429
+ xs: "block",
1430
+ sm: "none"
1431
+ },
1432
+ "& .MuiDrawer-paper": { width: "min(280px, calc(100vw - 56px))" }
1433
+ };
1434
+ $[17] = t9;
1435
+ } else t9 = $[17];
1436
+ let t10;
1437
+ if ($[18] !== expanded || $[19] !== navigation || $[20] !== setExpanded) {
1438
+ t10 = /* @__PURE__ */ jsx(NavigationContent, {
1439
+ navigation,
1440
+ collapsed: false,
1441
+ expanded,
1442
+ setExpanded,
1443
+ showPermanent: false
1444
+ });
1445
+ $[18] = expanded;
1446
+ $[19] = navigation;
1447
+ $[20] = setExpanded;
1448
+ $[21] = t10;
1449
+ } else t10 = $[21];
1450
+ let t11;
1451
+ if ($[22] !== expanded || $[23] !== t10 || $[24] !== t8) {
1452
+ t11 = /* @__PURE__ */ jsx(Drawer, {
1453
+ open: expanded,
1454
+ onClose: t8,
1455
+ sx: t9,
1456
+ children: t10
1457
+ });
1458
+ $[22] = expanded;
1459
+ $[23] = t10;
1460
+ $[24] = t8;
1461
+ $[25] = t11;
1462
+ } else t11 = $[25];
1463
+ let t12;
1464
+ if ($[26] !== t11 || $[27] !== t7) {
1465
+ t12 = /* @__PURE__ */ jsxs(Fragment, { children: [t7, t11] });
1466
+ $[26] = t11;
1467
+ $[27] = t7;
1468
+ $[28] = t12;
1469
+ } else t12 = $[28];
1470
+ return t12;
1471
+ };
1472
+ //#endregion
1473
+ //#region src/components/core/Layout.tsx
1474
+ const NAVIGATION_STORAGE_KEY = "navigation-open";
1475
+ const getInitialNavigationOpen = () => {
1476
+ if (Platform.isWindows || Platform.isMacOS) return localStorage.getItem(NAVIGATION_STORAGE_KEY) === "true";
1477
+ return false;
1478
+ };
1479
+ const saveNavigationState = (value) => {
1480
+ if (Platform.isWindows || Platform.isMacOS) localStorage.setItem(NAVIGATION_STORAGE_KEY, String(value));
1481
+ };
1482
+ const DrawerHeader = styled("div")(({ theme }) => ({
1483
+ display: "flex",
1484
+ alignItems: "center",
1485
+ justifyContent: "flex-end",
1486
+ padding: theme.spacing(0, 1),
1487
+ ...theme.mixins.toolbar
1488
+ }));
1489
+ const Layout = (t0) => {
1490
+ const $ = c(30);
1491
+ if ($[0] !== "762fd30288141ebde9b222f2752e7a1ea9ea2b557ae18d6fd43b2c8be06efd53") {
1492
+ for (let $i = 0; $i < 30; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1493
+ $[0] = "762fd30288141ebde9b222f2752e7a1ea9ea2b557ae18d6fd43b2c8be06efd53";
1494
+ }
1495
+ const { navigation, options, children } = t0;
1496
+ const [navigationOpen, setNavigationOpen] = useState(false);
1497
+ let t1;
1498
+ if ($[1] !== navigation) {
1499
+ t1 = navigation?.some(_temp$1);
1500
+ $[1] = navigation;
1501
+ $[2] = t1;
1502
+ } else t1 = $[2];
1503
+ const showNavigation = t1;
1504
+ const showShell = options?.showShell ?? true;
1505
+ let t2;
1506
+ let t3;
1507
+ if ($[3] === Symbol.for("react.memo_cache_sentinel")) {
1508
+ t2 = () => {
1509
+ if (getInitialNavigationOpen()) setNavigationOpen(true);
1510
+ };
1511
+ t3 = [];
1512
+ $[3] = t2;
1513
+ $[4] = t3;
1514
+ } else {
1515
+ t2 = $[3];
1516
+ t3 = $[4];
1517
+ }
1518
+ useEffect(t2, t3);
1519
+ let t4;
1520
+ let t5;
1521
+ if ($[5] === Symbol.for("react.memo_cache_sentinel")) {
1522
+ t4 = /* @__PURE__ */ jsx(InitColorSchemeScript, {});
1523
+ t5 = /* @__PURE__ */ jsx(CssBaseline, {});
1524
+ $[5] = t4;
1525
+ $[6] = t5;
1526
+ } else {
1527
+ t4 = $[5];
1528
+ t5 = $[6];
1529
+ }
1530
+ let t6;
1531
+ if ($[7] === Symbol.for("react.memo_cache_sentinel")) {
1532
+ t6 = {
1533
+ display: "flex",
1534
+ height: "100dvh",
1535
+ maxHeight: "100dvh",
1536
+ overflow: "hidden",
1537
+ width: "100%"
1538
+ };
1539
+ $[7] = t6;
1540
+ } else t6 = $[7];
1541
+ let t7;
1542
+ if ($[8] !== navigationOpen || $[9] !== showNavigation || $[10] !== showShell) {
1543
+ t7 = showShell && /* @__PURE__ */ jsx(AppBar, {
1544
+ color: "transparent",
1545
+ position: "fixed",
1546
+ sx: {
1547
+ borderBottom: "1px solid",
1548
+ borderColor: "var(--mui-palette-divider)",
1549
+ boxShadow: "none"
1550
+ },
1551
+ children: /* @__PURE__ */ jsxs(Toolbar, { children: [
1552
+ showNavigation && /* @__PURE__ */ jsx(IconButton, {
1553
+ "aria-label": "Toggle navigation",
1554
+ onClick: () => {
1555
+ setNavigationOpen(_temp2);
1556
+ },
1557
+ sx: { marginRight: 2 },
1558
+ children: navigationOpen ? /* @__PURE__ */ jsx(MenuOpen, {}) : /* @__PURE__ */ jsx(Menu$1, {})
1559
+ }),
1560
+ /* @__PURE__ */ jsx(AppTitle, {}),
1561
+ /* @__PURE__ */ jsx(ToolbarAccount, {})
1562
+ ] })
1563
+ });
1564
+ $[8] = navigationOpen;
1565
+ $[9] = showNavigation;
1566
+ $[10] = showShell;
1567
+ $[11] = t7;
1568
+ } else t7 = $[11];
1569
+ let t8;
1570
+ if ($[12] !== navigation || $[13] !== navigationOpen || $[14] !== showNavigation || $[15] !== showShell) {
1571
+ t8 = showNavigation && showShell && /* @__PURE__ */ jsx(NavigationRail, {
1572
+ navigation,
1573
+ expanded: navigationOpen,
1574
+ setExpanded: (newValue_0) => {
1575
+ setNavigationOpen(newValue_0);
1576
+ saveNavigationState(newValue_0);
1577
+ }
1578
+ });
1579
+ $[12] = navigation;
1580
+ $[13] = navigationOpen;
1581
+ $[14] = showNavigation;
1582
+ $[15] = showShell;
1583
+ $[16] = t8;
1584
+ } else t8 = $[16];
1585
+ let t9;
1586
+ if ($[17] === Symbol.for("react.memo_cache_sentinel")) {
1587
+ t9 = {
1588
+ flexGrow: 1,
1589
+ display: "flex",
1590
+ flexDirection: "column",
1591
+ minWidth: 0,
1592
+ height: "100%",
1593
+ overflow: "hidden"
1594
+ };
1595
+ $[17] = t9;
1596
+ } else t9 = $[17];
1597
+ let t10;
1598
+ if ($[18] !== showShell) {
1599
+ t10 = showShell && /* @__PURE__ */ jsx(DrawerHeader, {});
1600
+ $[18] = showShell;
1601
+ $[19] = t10;
1602
+ } else t10 = $[19];
1603
+ let t11;
1604
+ if ($[20] === Symbol.for("react.memo_cache_sentinel")) {
1605
+ t11 = {
1606
+ flex: 1,
1607
+ overflow: "auto",
1608
+ position: "relative"
1609
+ };
1610
+ $[20] = t11;
1611
+ } else t11 = $[20];
1612
+ let t12;
1613
+ if ($[21] !== children) {
1614
+ t12 = /* @__PURE__ */ jsx(Box, {
1615
+ sx: t11,
1616
+ children
1617
+ });
1618
+ $[21] = children;
1619
+ $[22] = t12;
1620
+ } else t12 = $[22];
1621
+ let t13;
1622
+ if ($[23] !== t10 || $[24] !== t12) {
1623
+ t13 = /* @__PURE__ */ jsxs(Box, {
1624
+ component: "main",
1625
+ sx: t9,
1626
+ children: [t10, t12]
1627
+ });
1628
+ $[23] = t10;
1629
+ $[24] = t12;
1630
+ $[25] = t13;
1631
+ } else t13 = $[25];
1632
+ let t14;
1633
+ if ($[26] !== t13 || $[27] !== t7 || $[28] !== t8) {
1634
+ t14 = /* @__PURE__ */ jsxs(Fragment, { children: [
1635
+ t4,
1636
+ t5,
1637
+ /* @__PURE__ */ jsxs(Box, {
1638
+ sx: t6,
1639
+ children: [
1640
+ t7,
1641
+ t8,
1642
+ t13
1643
+ ]
1644
+ })
1645
+ ] });
1646
+ $[26] = t13;
1647
+ $[27] = t7;
1648
+ $[28] = t8;
1649
+ $[29] = t14;
1650
+ } else t14 = $[29];
1651
+ return t14;
1652
+ };
1653
+ function _temp$1(item) {
1654
+ return item.hidden !== true;
1655
+ }
1656
+ function _temp2(previous) {
1657
+ const newValue = !previous;
1658
+ saveNavigationState(newValue);
1659
+ return newValue;
1660
+ }
1661
+ //#endregion
1662
+ //#region src/providers/DialogsProvider.tsx
1663
+ function DialogsProvider({ children }) {
1664
+ const [stack, setStack] = useState([]);
1665
+ const keyPrefix = useId();
1666
+ const nextId = useRef(0);
1667
+ const dialogMetadata = useRef(/* @__PURE__ */ new WeakMap());
1668
+ const requestDialog = useEventCallback$1(function open(Component, payload, options = {}) {
1669
+ const { onClose = async () => {} } = options;
1670
+ let resolve;
1671
+ const promise = new Promise((resolveImpl) => {
1672
+ resolve = resolveImpl;
1673
+ });
1674
+ const key = `${keyPrefix}-${nextId.current}`;
1675
+ nextId.current += 1;
1676
+ const newEntry = {
1677
+ key,
1678
+ open: true,
1679
+ promise,
1680
+ Component,
1681
+ payload,
1682
+ onClose,
1683
+ resolve
1684
+ };
1685
+ dialogMetadata.current.set(promise, newEntry);
1686
+ setStack((previousStack) => [...previousStack, newEntry]);
1687
+ return promise;
1688
+ });
1689
+ const removeDialogFromStack = (dialog) => {
1690
+ setStack((previousStack_0) => previousStack_0.filter((entry) => entry.promise !== dialog));
1691
+ dialogMetadata.current.delete(dialog);
1692
+ };
1693
+ const closeDialogUi = useEventCallback$1(function closeDialogUi(dialog_0) {
1694
+ setStack((previousStack_1) => previousStack_1.map((entry_0) => entry_0.promise === dialog_0 ? {
1695
+ ...entry_0,
1696
+ open: false
1697
+ } : entry_0));
1698
+ setTimeout(() => removeDialogFromStack(dialog_0), 1e3);
1699
+ });
1700
+ const closeDialog = useEventCallback$1(async function closeDialog(dialog_1, result) {
1701
+ const entryToClose = dialogMetadata.current.get(dialog_1);
1702
+ if (!entryToClose) throw new Error("Dialog not found in stack");
1703
+ try {
1704
+ await entryToClose.onClose(result);
1705
+ } finally {
1706
+ entryToClose.resolve(result);
1707
+ closeDialogUi(dialog_1);
1708
+ }
1709
+ return dialog_1;
1710
+ });
1711
+ return /* @__PURE__ */ jsxs(DialogsContext.Provider, {
1712
+ value: {
1713
+ open: requestDialog,
1714
+ close: closeDialog
1715
+ },
1716
+ children: [children, stack.map(({ key: key_0, open, Component: Component_0, payload: payload_0, promise: promise_0 }) => /* @__PURE__ */ jsx(Component_0, {
1717
+ payload: payload_0,
1718
+ open,
1719
+ onClose: async (result_0) => {
1720
+ await closeDialog(promise_0, result_0);
1721
+ }
1722
+ }, key_0))]
1723
+ });
1724
+ }
1725
+ //#endregion
1726
+ //#region src/providers/NotificationProvider.tsx
1727
+ const STACK_INTERVAL = 1e3;
1728
+ const NotificationProvider = (t0) => {
1729
+ const $ = c(22);
1730
+ if ($[0] !== "aeeb800673c818aa8dd113658f5d8c31d4fe124c64515dc70b2cce8523de5a50") {
1731
+ for (let $i = 0; $i < 22; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1732
+ $[0] = "aeeb800673c818aa8dd113658f5d8c31d4fe124c64515dc70b2cce8523de5a50";
1733
+ }
1734
+ const { children, snackbarOrigin } = t0;
1735
+ let t1;
1736
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
1737
+ t1 = [];
1738
+ $[1] = t1;
1739
+ } else t1 = $[1];
1740
+ const [queue, setQueue] = useState(t1);
1741
+ const [current, setCurrent] = useState(null);
1742
+ const open = Boolean(current);
1743
+ const processingTimeout = useRef(null);
1744
+ let t2;
1745
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
1746
+ t2 = () => {
1747
+ setQueue((prevQueue) => {
1748
+ if (prevQueue.length === 0) return prevQueue;
1749
+ const [next, ...rest] = prevQueue;
1750
+ setCurrent(next);
1751
+ return rest;
1752
+ });
1753
+ };
1754
+ $[2] = t2;
1755
+ } else t2 = $[2];
1756
+ const processQueue = t2;
1757
+ let t3;
1758
+ let t4;
1759
+ if ($[3] !== current || $[4] !== open || $[5] !== queue.length) {
1760
+ t3 = () => {
1761
+ if (!open && queue.length > 0) processingTimeout.current = setTimeout(processQueue, current ? STACK_INTERVAL : 0);
1762
+ return () => {
1763
+ if (processingTimeout.current) clearTimeout(processingTimeout.current);
1764
+ };
1765
+ };
1766
+ t4 = [
1767
+ open,
1768
+ queue.length,
1769
+ current
1770
+ ];
1771
+ $[3] = current;
1772
+ $[4] = open;
1773
+ $[5] = queue.length;
1774
+ $[6] = t3;
1775
+ $[7] = t4;
1776
+ } else {
1777
+ t3 = $[6];
1778
+ t4 = $[7];
1779
+ }
1780
+ useEffect(t3, t4);
1781
+ let t5;
1782
+ if ($[8] === Symbol.for("react.memo_cache_sentinel")) {
1783
+ t5 = (message, options) => {
1784
+ const notification = {
1785
+ message,
1786
+ severity: options?.severity,
1787
+ autoHideDuration: options?.autoHideDuration ?? 5e3
1788
+ };
1789
+ setQueue((prev) => [...prev, notification]);
1790
+ };
1791
+ $[8] = t5;
1792
+ } else t5 = $[8];
1793
+ const notify = t5;
1794
+ let t6;
1795
+ if ($[9] === Symbol.for("react.memo_cache_sentinel")) {
1796
+ t6 = { notify };
1797
+ $[9] = t6;
1798
+ } else t6 = $[9];
1799
+ const t7 = current?.autoHideDuration;
1800
+ let t8;
1801
+ if ($[10] === Symbol.for("react.memo_cache_sentinel")) {
1802
+ t8 = (_event, reason) => {
1803
+ if (reason === "clickaway") return;
1804
+ setCurrent(null);
1805
+ };
1806
+ $[10] = t8;
1807
+ } else t8 = $[10];
1808
+ const t9 = current?.message;
1809
+ let t10;
1810
+ if ($[11] !== current) {
1811
+ t10 = current?.severity ? /* @__PURE__ */ jsx(Alert, {
1812
+ onClose: () => setCurrent(null),
1813
+ severity: current.severity,
1814
+ variant: "filled",
1815
+ children: current.message
1816
+ }) : void 0;
1817
+ $[11] = current;
1818
+ $[12] = t10;
1819
+ } else t10 = $[12];
1820
+ let t11;
1821
+ if ($[13] !== open || $[14] !== snackbarOrigin || $[15] !== t10 || $[16] !== t7 || $[17] !== t9) {
1822
+ t11 = /* @__PURE__ */ jsx(Snackbar, {
1823
+ open,
1824
+ autoHideDuration: t7,
1825
+ onClose: t8,
1826
+ anchorOrigin: snackbarOrigin,
1827
+ message: t9,
1828
+ children: t10
1829
+ });
1830
+ $[13] = open;
1831
+ $[14] = snackbarOrigin;
1832
+ $[15] = t10;
1833
+ $[16] = t7;
1834
+ $[17] = t9;
1835
+ $[18] = t11;
1836
+ } else t11 = $[18];
1837
+ let t12;
1838
+ if ($[19] !== children || $[20] !== t11) {
1839
+ t12 = /* @__PURE__ */ jsxs(NotificationContext, {
1840
+ value: t6,
1841
+ children: [children, t11]
1842
+ });
1843
+ $[19] = children;
1844
+ $[20] = t11;
1845
+ $[21] = t12;
1846
+ } else t12 = $[21];
1847
+ return t12;
1848
+ };
1849
+ //#endregion
1850
+ //#region src/providers/LayoutProvider.tsx
1851
+ const YEAR_IN_MINUTES = 1440 * 365;
1852
+ const normalizeLocale = (locale) => locale.replace(/[^a-z]/gi, "").toLowerCase();
1853
+ const zodLocales = new Map(Object.entries(z.core.locales).map(([locale, createLocale]) => [normalizeLocale(locale), createLocale]));
1854
+ const setLocale = (language) => {
1855
+ const baseLanguage = language.split(/[-_]/)[0];
1856
+ const createLocale = zodLocales.get(normalizeLocale(language)) ?? zodLocales.get(normalizeLocale(baseLanguage)) ?? z.core.locales.en;
1857
+ z.config(createLocale());
1858
+ dayjs.locale(language);
1859
+ };
1860
+ await i18n.use(LanguageDetector).use(initReactI18next).init({
1861
+ resources,
1862
+ fallbackLng: "en",
1863
+ supportedLngs: Object.keys(resources),
1864
+ detection: {
1865
+ caches: ["cookie"],
1866
+ cookieMinutes: YEAR_IN_MINUTES
1867
+ },
1868
+ interpolation: { escapeValue: false }
1869
+ });
1870
+ setLocale(i18n.resolvedLanguage ?? i18n.language);
1871
+ i18n.on("languageChanged", (language) => {
1872
+ setLocale(language);
1873
+ });
1874
+ const LayoutProvider = (t0) => {
1875
+ const $ = c(13);
1876
+ if ($[0] !== "94e62a5c7e519982c88eb385a81cff365d29c836f19ddb26b4a3955b822d8acd") {
1877
+ for (let $i = 0; $i < 13; $i += 1) $[$i] = Symbol.for("react.memo_cache_sentinel");
1878
+ $[0] = "94e62a5c7e519982c88eb385a81cff365d29c836f19ddb26b4a3955b822d8acd";
1879
+ }
1880
+ const { options, navigation, theme, children } = t0;
1881
+ let t1;
1882
+ if ($[1] === Symbol.for("react.memo_cache_sentinel")) {
1883
+ t1 = createCache({ key: "css" });
1884
+ $[1] = t1;
1885
+ } else t1 = $[1];
1886
+ const emotionCache = t1;
1887
+ let t2;
1888
+ if ($[2] === Symbol.for("react.memo_cache_sentinel")) {
1889
+ t2 = [];
1890
+ $[2] = t2;
1891
+ } else t2 = $[2];
1892
+ useEffect(_temp, t2);
1893
+ const t3 = options?.snackbarOrigin;
1894
+ let t4;
1895
+ if ($[3] !== children || $[4] !== navigation || $[5] !== options) {
1896
+ t4 = /* @__PURE__ */ jsx(DialogsProvider, { children: /* @__PURE__ */ jsx(Layout, {
1897
+ navigation,
1898
+ options,
1899
+ children
1900
+ }) });
1901
+ $[3] = children;
1902
+ $[4] = navigation;
1903
+ $[5] = options;
1904
+ $[6] = t4;
1905
+ } else t4 = $[6];
1906
+ let t5;
1907
+ if ($[7] !== t3 || $[8] !== t4) {
1908
+ t5 = /* @__PURE__ */ jsx(LocalizationProvider, {
1909
+ dateAdapter: AdapterDayjs,
1910
+ adapterLocale: i18n.language,
1911
+ children: /* @__PURE__ */ jsx(NotificationProvider, {
1912
+ snackbarOrigin: t3,
1913
+ children: t4
1914
+ })
1915
+ });
1916
+ $[7] = t3;
1917
+ $[8] = t4;
1918
+ $[9] = t5;
1919
+ } else t5 = $[9];
1920
+ let t6;
1921
+ if ($[10] !== t5 || $[11] !== theme) {
1922
+ t6 = /* @__PURE__ */ jsx(CacheProvider, {
1923
+ value: emotionCache,
1924
+ children: /* @__PURE__ */ jsx(I18nextProvider, {
1925
+ i18n,
1926
+ children: /* @__PURE__ */ jsx(ThemeProvider, {
1927
+ theme,
1928
+ children: t5
1929
+ })
1930
+ })
1931
+ });
1932
+ $[10] = t5;
1933
+ $[11] = theme;
1934
+ $[12] = t6;
1935
+ } else t6 = $[12];
1936
+ return t6;
1937
+ };
1938
+ function _temp() {
1939
+ if ("serviceWorker" in navigator) navigator.serviceWorker.register("/sw.js");
1940
+ }
1941
+ //#endregion
1942
+ export { LayoutProvider, WISTRON_PRIMARY_COLOR, WISTRON_SECONDARY_COLOR, getUser, rootRouteHead };
1943
+
1944
+ //# sourceMappingURL=index.mjs.map