wcz-layout 7.0.0 → 7.0.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.
- package/dist/index.js +3 -1
- package/dist/index.js.map +1 -1
- package/package.json +1 -1
package/dist/index.js
CHANGED
|
@@ -501,8 +501,10 @@ const ye = 84, nt = 320, bt = 64, ts = (t) => {
|
|
|
501
501
|
top: `${bt}px`,
|
|
502
502
|
height: `calc(100% - ${bt}px)`,
|
|
503
503
|
width: _,
|
|
504
|
+
background: "transparent",
|
|
504
505
|
borderTop: "1px solid",
|
|
505
|
-
borderColor: "var(--mui-palette-divider)"
|
|
506
|
+
borderColor: "var(--mui-palette-divider)",
|
|
507
|
+
boxShadow: "none"
|
|
506
508
|
}, e[9] = _, e[10] = y) : y = e[10];
|
|
507
509
|
let b;
|
|
508
510
|
e[11] !== g || e[12] !== y ? (b = {
|
package/dist/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../src/providers/DialogsProvider.tsx","../src/providers/NotificationProvider.tsx","../src/components/core/AppTitle.tsx","../src/components/core/navigation/NavigationListItem.tsx","../src/components/core/navigation/NavigationList.tsx","../src/components/core/navigation/NavigationRail.tsx","../src/queries/GraphQueries.ts","../src/components/core/ToolbarAccount.tsx","../src/components/core/Layout.tsx","../src/providers/LayoutProvider.tsx"],"sourcesContent":["import useEventCallback from \"@mui/utils/useEventCallback\";\nimport { useId, useRef, useState } from \"react\";\nimport { DialogsContext } from \"../contexts/DialogsContext\";\nimport type { DialogComponent, OpenDialog, OpenDialogOptions } from \"../hooks/DialogsHooks\";\n\ninterface DialogStackEntry<TPayload, TResult> {\n key: string;\n open: boolean;\n promise: Promise<TResult>;\n Component: DialogComponent<TPayload, TResult>;\n payload: TPayload;\n onClose: (result: TResult) => Promise<void>;\n resolve: (result: TResult) => void;\n}\n\nexport interface DialogProviderProps {\n children?: React.ReactNode;\n}\n\nfunction DialogsProvider({ children }: Readonly<DialogProviderProps>) {\n const [stack, setStack] = useState<Array<DialogStackEntry<any, any>>>([]);\n const keyPrefix = useId();\n const nextId = useRef(0);\n const dialogMetadata = useRef(new WeakMap<Promise<any>, DialogStackEntry<any, any>>());\n\n const requestDialog = useEventCallback<OpenDialog>(function open<TPayload, TResult>(\n Component: DialogComponent<TPayload, TResult>,\n payload: TPayload,\n options: OpenDialogOptions<TResult> = {},\n ) {\n const { onClose = async () => { } } = options;\n\n let resolve: (result: TResult) => void;\n const promise = new Promise<TResult>((resolveImpl) => {\n resolve = resolveImpl;\n });\n\n const key = `${keyPrefix}-${nextId.current}`;\n nextId.current += 1;\n\n const newEntry: DialogStackEntry<TPayload, TResult> = {\n key,\n open: true,\n promise,\n Component,\n payload,\n onClose,\n resolve: resolve!,\n };\n\n dialogMetadata.current.set(promise, newEntry);\n\n setStack((previousStack) => [...previousStack, newEntry]);\n\n return promise;\n });\n\n const removeDialogFromStack = (dialog: Promise<any>) => {\n setStack((previousStack) => previousStack.filter((entry) => entry.promise !== dialog));\n dialogMetadata.current.delete(dialog);\n };\n\n const closeDialogUi = useEventCallback(function closeDialogUi<TResult>(dialog: Promise<TResult>) {\n setStack((previousStack) =>\n previousStack.map((entry) => (entry.promise === dialog ? { ...entry, open: false } : entry)),\n );\n\n setTimeout(() => removeDialogFromStack(dialog), 1000);\n });\n\n const closeDialog = useEventCallback(async function closeDialog<TResult>(\n dialog: Promise<TResult>,\n result: TResult,\n ) {\n const entryToClose = dialogMetadata.current.get(dialog);\n if (!entryToClose) {\n throw new Error(\"Dialog not found in stack\");\n }\n\n try {\n await entryToClose.onClose(result);\n } finally {\n entryToClose.resolve(result);\n closeDialogUi(dialog);\n }\n\n return dialog;\n });\n\n return (\n <DialogsContext.Provider value={{ open: requestDialog, close: closeDialog }}>\n {children}\n {stack.map(({ key, open, Component, payload, promise }) => (\n <Component\n key={key}\n payload={payload}\n open={open}\n onClose={async (result) => {\n await closeDialog(promise, result);\n }}\n />\n ))}\n </DialogsContext.Provider>\n );\n}\n\nexport { DialogsProvider };\n\n","import Alert from \"@mui/material/Alert\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { useEffect, useRef, useState } from \"react\";\nimport type { SnackbarOrigin } from \"@mui/material/Snackbar\";\nimport type { AlertColor } from \"@mui/material/Alert\";\nimport type { NotificationOptions } from \"~/contexts/NotificationContext\";\nimport { NotificationContext } from \"~/contexts/NotificationContext\";\n\ninterface Notification {\n message: string;\n severity?: AlertColor;\n autoHideDuration: number;\n}\n\ninterface NotificationProviderProps {\n children: React.ReactNode;\n snackbarOrigin?: SnackbarOrigin;\n}\n\nconst STACK_INTERVAL = 1000;\n\nexport const NotificationProvider: React.FC<NotificationProviderProps> = ({ children, snackbarOrigin }) => {\n const [queue, setQueue] = useState<Array<Notification>>([]);\n const [current, setCurrent] = useState<Notification | null>(null);\n const open = Boolean(current);\n const processingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const processQueue = () => {\n setQueue((prevQueue) => {\n if (prevQueue.length === 0) return prevQueue;\n\n const [next, ...rest] = prevQueue;\n setCurrent(next);\n return rest;\n });\n };\n\n useEffect(() => {\n if (!open && queue.length > 0) {\n processingTimeout.current = setTimeout(processQueue, current ? STACK_INTERVAL : 0);\n }\n\n return () => {\n if (processingTimeout.current) {\n clearTimeout(processingTimeout.current);\n }\n };\n }, [open, queue.length, current]);\n\n const notify = (message: string, options?: NotificationOptions) => {\n const notification: Notification = {\n message,\n severity: options?.severity,\n autoHideDuration: options?.autoHideDuration ?? 5000,\n };\n\n setQueue((prev) => [...prev, notification]);\n };\n\n return (\n <NotificationContext value={{ notify }}>\n {children}\n <Snackbar\n open={open}\n autoHideDuration={current?.autoHideDuration}\n onClose={(_event, reason) => {\n if (reason === \"clickaway\") return;\n setCurrent(null);\n }}\n anchorOrigin={snackbarOrigin}\n message={current?.message}\n >\n {current?.severity ? (\n <Alert\n onClose={() => setCurrent(null)}\n severity={current.severity}\n variant=\"filled\"\n >\n {current.message}\n </Alert>\n ) : undefined}\n </Snackbar>\n </NotificationContext >\n );\n};\n","import { Chip, Stack, Typography } from \"@mui/material\";\r\nimport { useRouter } from \"@tanstack/react-router\";\r\nimport z from \"zod\";\r\nimport type { FC } from \"react\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nconst PRODUCTION_ENV = \"PRD\";\r\n\r\nconst getEnv = (url: string | undefined) =>\r\n z.string()\r\n .refine((u) => u.split(\"-\").length > 2)\r\n .transform((u) => u.split(\"-\")[2].toUpperCase())\r\n .catch(\"LOCALHOST\")\r\n .parse(url);\r\n\r\nexport const AppTitle: FC = () => {\r\n const router = useRouter();\r\n const env = getEnv(router.origin);\r\n const isProduction = env === PRODUCTION_ENV;\r\n\r\n return (\r\n <Stack direction=\"row\" alignItems=\"center\" spacing={2} flexGrow={1}>\r\n <img src=\"/favicon-32x32.png\" alt=\"app-logo\" loading=\"lazy\" />\r\n <Typography variant=\"h6\">{clientEnv.VITE_APP_TITLE}</Typography>\r\n {!isProduction && <Chip size=\"small\" label={env} color=\"primary\" />}\r\n </Stack>\r\n );\r\n};\r\n","import ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport { Collapse, Grow } from \"@mui/material\";\nimport Avatar from \"@mui/material/Avatar\";\nimport Box from \"@mui/material/Box\";\nimport ListItem from \"@mui/material/ListItem\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Paper from \"@mui/material/Paper\";\nimport { styled } from \"@mui/material/styles\";\nimport Typography from \"@mui/material/Typography\";\nimport { Fragment, useState } from \"react\";\nimport { MINI_WIDTH } from \"./NavigationRail\";\nimport type { NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\nimport type { FC, ReactNode } from \"react\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { RouterListItemButton } from \"~/components/router/RouterListItemButton\";\n\nconst ICON_SIZE = 34;\n\nconst StyledNavButton = styled(ListItemButton)(({ theme }) => ({\n borderRadius: 8,\n \"&.Mui-selected\": {\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiTouchRipple-child\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n },\n \"& .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.action.active,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.action.active,\n },\n}));\n\nconst StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({\n borderRadius: 8,\n \"&.Mui-selected\": {\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiTouchRipple-child\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n },\n \"& .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.action.active,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.action.active,\n },\n}));\n\nconst IconOrAvatar: FC<{ item: NavigationPageItem; collapsed?: boolean }> = ({ item, collapsed }) => {\n if (item.icon || collapsed) {\n return (\n <Box sx={collapsed ? { position: \"absolute\", left: \"50%\", top: \"calc(50% - 6px)\", transform: \"translate(-50%, -50%)\" } : {}}>\n <ListItemIcon sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\", minWidth: ICON_SIZE }}>\n {item.icon ?? null}\n {!item.icon && collapsed ? (\n <Avatar sx={{ width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }}>\n {item.title\n .split(\" \")\n .slice(0, 2)\n .map((word) => word.charAt(0).toUpperCase())}\n </Avatar>\n ) : null}\n </ListItemIcon>\n {collapsed ? (\n <Typography\n variant=\"caption\"\n sx={{\n position: \"absolute\",\n bottom: -18,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n fontSize: 10,\n fontWeight: 500,\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n maxWidth: MINI_WIDTH - 28,\n }}\n >\n {item.title}\n </Typography>\n ) : null}\n </Box>\n );\n }\n return null;\n};\n\ninterface MiniPopoverProps {\n open: boolean;\n children?: ReactNode;\n}\n\nconst MiniPopover: FC<MiniPopoverProps> = ({ open, children }) => (\n <Grow in={open}>\n <Box\n sx={{\n position: \"fixed\",\n left: MINI_WIDTH,\n pl: \"2px\",\n pb: \"10px\",\n }}\n >\n <Paper\n sx={{\n pt: 0.5,\n pb: 0.5,\n transform: \"translateY(calc(50% - 30px))\",\n maxHeight: \"min(calc(100vh - 100px), 560px)\",\n overflowY: \"auto\",\n overscrollBehavior: \"contain\",\n }}\n >\n {children}\n </Paper>\n </Box>\n </Grow>\n);\n\ninterface NavigationListItemProps {\n item: NavigationPageItem;\n isOpen?: boolean;\n selected?: boolean;\n disabled?: boolean;\n collapsed?: boolean;\n isSidebarFullyExpanded?: boolean;\n isSidebarFullyCollapsed?: boolean;\n onClick?: (item: NavigationPageItem) => void;\n renderNested?: (sub: Array<NavigationItem>) => ReactNode;\n onClose?: () => void;\n}\n\nexport const NavigationListItem: FC<NavigationListItemProps> = ({ item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, onClick, renderNested, onClose }) => {\n const [hoveredMiniItemId, setHoveredMiniItemId] = useState<string | null>(null);\n const itemId = `${item.to ?? item.title}`;\n\n const chevronSx: SxProps<Theme> = (theme: Theme) => {\n if (collapsed && isSidebarFullyCollapsed && item.children) {\n return {\n fontSize: 18,\n position: \"absolute\",\n top: \"41.5%\",\n right: \"2px\",\n transform: \"translateY(-50%) rotate(-90deg)\",\n };\n }\n if (!collapsed && isSidebarFullyExpanded && item.children) {\n return {\n ml: 0.5,\n transform: `rotate(${isOpen ? 0 : -90}deg)`,\n transition: theme.transitions.create(\"transform\", {\n easing: theme.transitions.easing.sharp,\n duration: 100,\n }),\n };\n }\n return { display: \"none\" };\n };\n\n const shouldJustExpand = item.children && !collapsed;\n\n const buttonProps = {\n selected,\n disabled,\n sx: { px: 1.4, height: collapsed ? 60 : 48 }\n };\n\n const buttonContent = (\n <>\n <IconOrAvatar item={item} collapsed={collapsed} />\n {!collapsed && (\n <ListItemText\n primary={item.title}\n slotProps={{ primary: { noWrap: true, title: item.title } }}\n sx={{ ml: 1.2, flex: 1, minWidth: 0, \"& .MuiTypography-root\": { whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" } }}\n />\n )}\n {item.children ? <ExpandMoreIcon sx={chevronSx} /> : null}\n </>\n );\n\n const listItem = (\n <ListItem\n {...(item.children && collapsed\n ? {\n onMouseEnter: () => {\n setHoveredMiniItemId(itemId);\n },\n onMouseLeave: () => {\n setHoveredMiniItemId(null);\n },\n }\n : {})}\n sx={{ py: 0, px: 1, overflowX: \"hidden\" }}\n >\n {shouldJustExpand ? (\n <StyledNavButton {...buttonProps} onClick={() => onClick?.(item)}>\n {buttonContent}\n </StyledNavButton>\n ) : (\n <StyledRouterButton\n {...buttonProps}\n to={item.to}\n href={item.href}\n params={item.params as any}\n search={item.search as any}\n onClick={onClose}\n >\n {buttonContent}\n </StyledRouterButton>\n )}\n\n {item.children && collapsed ? (\n <MiniPopover open={itemId === hoveredMiniItemId}>\n {renderNested?.(item.children)}\n </MiniPopover>\n ) : null}\n </ListItem>\n );\n\n return (\n <Fragment key={item.to}>\n {listItem}\n {item.children && !collapsed ? (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n {renderNested?.(item.children)}\n </Collapse>\n ) : null}\n </Fragment>\n );\n};\n","import Divider from \"@mui/material/Divider\";\nimport List from \"@mui/material/List\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { NavigationListItem } from \"./NavigationListItem\";\nimport { MINI_WIDTH } from \"./NavigationRail\";\nimport type { FC, ReactNode } from \"react\";\nimport type { Navigation, NavigationDivider, NavigationHeader, NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\n\nexport const isPageItem = (item: NavigationItem): item is NavigationPageItem => !(\"kind\" in item);\nexport const isDivider = (item: NavigationItem): item is NavigationDivider => \"kind\" in item && item.kind === \"divider\";\nexport const isHeader = (item: NavigationItem): item is NavigationHeader => \"kind\" in item && item.kind === \"header\";\n\ninterface NavigationListProps {\n subNavigation: Navigation;\n depth?: number;\n collapsed?: boolean;\n isPopover?: boolean;\n isSidebarFullyExpanded?: boolean;\n isSidebarFullyCollapsed?: boolean;\n expandedWidth: number | string;\n renderItem?: (item: NavigationPageItem, context: { collapsed: boolean }) => ReactNode;\n activePath?: string | null;\n onNavigate: (item: NavigationPageItem) => void;\n onClose?: () => void;\n}\n\nexport const NavigationList: FC<NavigationListProps> = ({ subNavigation, depth = 0, collapsed, isPopover, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, expandedWidth, renderItem, activePath, onNavigate, onClose }) => {\n const [openKeys, setOpenKeys] = useState<Array<string>>([]);\n\n useEffect(() => {\n if (collapsed) setOpenKeys([]);\n }, [collapsed]);\n\n const toggleKey = (key: string) =>\n setOpenKeys((previous) => (previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]));\n\n const renderNested = (children: Array<NavigationItem>) => <NavigationList\n subNavigation={children}\n depth={depth + 1}\n isPopover={collapsed}\n expandedWidth={expandedWidth}\n activePath={activePath}\n onNavigate={onNavigate}\n onClose={onClose}\n />;\n\n const filteredNavigation = subNavigation.filter(nav => !nav.hidden);\n\n return (\n <List\n sx={{\n padding: 0,\n mt: isPopover && depth === 1 ? 0.5 : 0,\n mb: depth === 0 && !isPopover ? 4 : 0.5,\n pl: (isPopover ? 1 : 2) * (isPopover ? depth - 1 : depth),\n minWidth: isPopover && depth === 1 ? 240 : \"auto\",\n width: collapsed ? MINI_WIDTH : \"auto\",\n }}\n >\n {filteredNavigation.map((navItem, index) => {\n if (isHeader(navItem)) {\n return (\n <ListSubheader\n key={`subheader-${depth}-${index}`}\n sx={{\n fontSize: 12,\n fontWeight: \"700\",\n height: collapsed ? 0 : 40,\n px: 2,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n zIndex: 2,\n bgcolor: \"transparent\",\n position: \"static\"\n }}\n >\n {navItem.title}\n </ListSubheader>\n );\n }\n\n if (isDivider(navItem)) {\n const nextItem = filteredNavigation[index + 1];\n return (\n <li key={`divider-${depth}-${index}`}>\n <Divider sx={{ mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 }} />\n </li>\n );\n }\n\n if (!isPageItem(navItem)) return null;\n\n const key = `item-${depth}-${index}`;\n const uniqueItemKey = `${depth}-${index}-${navItem.title}`;\n\n if (renderItem) return <Fragment key={key}>{renderItem(navItem, { collapsed: !!collapsed })}</Fragment>;\n\n return <NavigationListItem\n key={key}\n item={navItem}\n isOpen={openKeys.includes(uniqueItemKey)}\n selected={activePath === navItem.to}\n collapsed={collapsed}\n isSidebarFullyExpanded={isSidebarFullyExpanded}\n isSidebarFullyCollapsed={isSidebarFullyCollapsed}\n onClick={navItem.children && !collapsed ? () => toggleKey(uniqueItemKey) : undefined}\n renderNested={renderNested}\n onClose={onClose}\n />;\n })}\n </List>\n );\n};\n","import { useMediaQuery } from \"@mui/material\";\nimport Box from \"@mui/material/Box\";\nimport Drawer from \"@mui/material/Drawer\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useNavigate, useRouterState } from \"@tanstack/react-router\";\nimport { NavigationList, isHeader } from \"./NavigationList\";\nimport type { FC } from \"react\";\nimport type { Navigation } from \"~/models/Navigation\";\n\nexport const MINI_WIDTH = 84;\nexport const EXPANDED_WIDTH = 320;\nexport const TOOLBAR_HEIGHT = 64;\n\ninterface NavigationRailProps {\n navigation: Navigation;\n expanded: boolean;\n setExpanded: (open: boolean) => void;\n}\n\nexport const NavigationRail: FC<NavigationRailProps> = ({ navigation, expanded, setExpanded }) => {\n const navigate = useNavigate();\n const routerState = useRouterState();\n const theme = useTheme();\n const showPermanent = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const drawerContent = (collapsed: boolean) => (\n <Box\n component=\"nav\"\n sx={{\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n overflow: \"auto\",\n scrollbarGutter: collapsed ? \"stable\" : \"auto\",\n overflowX: \"hidden\",\n pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2,\n }}\n >\n <NavigationList\n subNavigation={navigation}\n collapsed={collapsed}\n isSidebarFullyExpanded={expanded}\n isSidebarFullyCollapsed={!expanded}\n expandedWidth={EXPANDED_WIDTH}\n activePath={routerState.location.pathname}\n onNavigate={navigate}\n onClose={!showPermanent ? () => setExpanded(false) : undefined}\n />\n </Box>\n );\n\n if (showPermanent)\n return (\n <Drawer\n variant=\"permanent\"\n sx={{\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\n [\"& .MuiDrawer-paper\"]: {\n position: \"absolute\",\n top: `${TOOLBAR_HEIGHT}px`,\n height: `calc(100% - ${TOOLBAR_HEIGHT}px)`,\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\n borderTop: \"1px solid\",\n borderColor: \"var(--mui-palette-divider)\",\n },\n }}\n >\n {drawerContent(!expanded)}\n </Drawer>\n );\n\n return (\n <Drawer\n open={expanded}\n onClose={() => setExpanded(false)}\n sx={{\n \"& .MuiDrawer-paper\": {\n width: \"min(280px, calc(100vw - 56px))\",\n },\n }}\n >\n {drawerContent(false)}\n </Drawer>\n );\n};\n","import { queryOptions } from \"@tanstack/react-query\";\r\nimport axios from \"axios\";\r\nimport { getAccessToken } from \"~/lib/auth/msalClient\";\r\n\r\nconst QUERY_KEY = \"graph\";\r\n\r\nexport const api = axios.create({\r\n baseURL: \"https://graph.microsoft.com/v1.0\"\r\n});\r\n\r\napi.interceptors.request.use(async (config) => {\r\n const accessToken = await getAccessToken(\"graph\");\r\n config.headers.set(\"Authorization\", `Bearer ${accessToken}`);\r\n return config;\r\n});\r\n\r\nexport const graphQueries = {\r\n sessionUserPhoto: () =>\r\n queryOptions({\r\n queryKey: [QUERY_KEY, \"me\", \"photo\"],\r\n queryFn: async () => await api.request<Blob>({\r\n method: \"GET\",\r\n url: \"/me/photo/$value\",\r\n responseType: \"blob\",\r\n }).then(response => response.data),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n select: data => URL.createObjectURL(data),\r\n }),\r\n};\r\n","import { AuthenticatedTemplate, UnauthenticatedTemplate, useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport Brightness4 from \"@mui/icons-material/Brightness4\";\r\nimport ChevronRight from \"@mui/icons-material/ChevronRight\";\r\nimport DarkMode from \"@mui/icons-material/DarkMode\";\r\nimport Done from \"@mui/icons-material/Done\";\r\nimport LightMode from \"@mui/icons-material/LightMode\";\r\nimport Login from \"@mui/icons-material/Login\";\r\nimport Logout from \"@mui/icons-material/Logout\";\r\nimport SettingsBrightness from \"@mui/icons-material/SettingsBrightness\";\r\nimport Translate from \"@mui/icons-material/Translate\";\r\nimport { Avatar, Box, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, useColorScheme } from \"@mui/material\";\r\nimport { useQuery } from \"@tanstack/react-query\";\r\nimport type { FC } from \"react\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useUser } from \"~/hooks/UseUser\";\r\nimport { graphQueries } from \"~/queries/GraphQueries\";\r\n\r\ntype TabType = \"settings\" | \"theme\" | \"language\";\r\nconst capitalize = (value: string | undefined) => value && value.charAt(0).toUpperCase() + value.slice(1);\r\n\r\nexport const ToolbarAccount: FC = () => {\r\n const [anchorElement, setAnchorElement] = useState<HTMLElement>();\r\n const [tab, setTab] = useState<TabType>(\"settings\");\r\n const open = Boolean(anchorElement);\r\n const { t, i18n } = useTranslation();\r\n const { mode, setMode } = useColorScheme();\r\n const { instance } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n const user = useUser();\r\n\r\n const { data: userPhoto } = useQuery({ ...graphQueries.sessionUserPhoto(), enabled: isAuthenticated });\r\n\r\n const supportedLanguages = (Array.isArray(i18n.options.supportedLngs) ? i18n.options.supportedLngs : []).filter(lng => lng !== \"cimode\");\r\n const languageDisplayNames = new Intl.DisplayNames([i18n.language], { type: \"language\" });\r\n\r\n const colorModes: Array<{ mode: Exclude<typeof mode, undefined>; icon: typeof LightMode; label: string }> = [\r\n { mode: \"light\", icon: LightMode, label: t(\"Layout.Light\") },\r\n { mode: \"dark\", icon: DarkMode, label: t(\"Layout.Dark\") },\r\n { mode: \"system\", icon: SettingsBrightness, label: t(\"Layout.System\") },\r\n ];\r\n\r\n const openMenu = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => setAnchorElement(event.currentTarget);\r\n const closeMenu = () => { setAnchorElement(undefined); setTimeout(() => setTab(\"settings\"), 300); };\r\n\r\n const changeTab = (newTab: TabType) => () => setTab(newTab);\r\n\r\n const settings = (\r\n <List component=\"nav\" subheader={<ListSubheader sx={{ backgroundColor: \"transparent\" }}>{t(\"Layout.Settings\")}</ListSubheader>}>\r\n <ListItemButton onClick={changeTab(\"theme\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Brightness4 />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Appearance\")} secondary={colorModes.find((m) => m.mode === mode)?.label ?? t(\"Layout.System\")} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n\r\n <ListItemButton onClick={changeTab(\"language\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Translate />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Language\")} secondary={capitalize(languageDisplayNames.of(i18n.language))} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n </List>\r\n );\r\n\r\n const theme = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Appearance\")}\r\n </ListSubheader>\r\n }>\r\n {colorModes.map(({ mode: modeValue, icon: Icon, label }) => (\r\n <ListItemButton\r\n key={modeValue}\r\n onClick={() => {\r\n setMode(modeValue);\r\n closeMenu();\r\n }}\r\n selected={mode === modeValue}\r\n >\r\n <ListItemIcon>\r\n <Icon />\r\n </ListItemIcon>\r\n <ListItemText primary={label} />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n );\r\n\r\n const language = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Language\")}\r\n </ListSubheader>\r\n }>\r\n {supportedLanguages.map((languageCode) =>\r\n <ListItemButton\r\n key={languageCode}\r\n onClick={() => i18n.changeLanguage(languageCode).finally(() => closeMenu())}\r\n selected={i18n.resolvedLanguage === languageCode}\r\n >\r\n <ListItemIcon>\r\n {i18n.resolvedLanguage === languageCode && <Done />}\r\n </ListItemIcon>\r\n <ListItemText primary={capitalize(languageDisplayNames.of(languageCode))} />\r\n </ListItemButton>\r\n )}\r\n </List>\r\n );\r\n\r\n return (\r\n <Fragment>\r\n <IconButton size=\"small\" edge=\"end\" onClick={openMenu}>\r\n <AuthenticatedTemplate>\r\n <Avatar src={userPhoto} sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n </AuthenticatedTemplate>\r\n <UnauthenticatedTemplate>\r\n <AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n </UnauthenticatedTemplate>\r\n </IconButton>\r\n\r\n <Menu anchorEl={anchorElement} open={open} onClose={closeMenu}>\r\n <Box sx={{ width: 240 }}>\r\n <List disablePadding>\r\n <AuthenticatedTemplate>\r\n <ListItem>\r\n <ListItemText primary={user?.name} secondary={\r\n <span>\r\n {user?.employeeId && <span>{user.employeeId}</span>}\r\n {user?.employeeId && <br />}\r\n {user?.department && <span>{user.department}</span>}\r\n </span>\r\n } />\r\n </ListItem>\r\n <ListItemButton onClick={() => instance.logoutRedirect({ postLogoutRedirectUri: \"/\" })}>\r\n <ListItemIcon><Logout color=\"error\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Logout\")} />\r\n </ListItemButton>\r\n </AuthenticatedTemplate>\r\n\r\n <UnauthenticatedTemplate>\r\n <ListItemButton onClick={() => instance.loginRedirect()}>\r\n <ListItemIcon><Login color=\"success\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.LogIn\")} />\r\n </ListItemButton>\r\n </UnauthenticatedTemplate>\r\n </List>\r\n\r\n {tab === \"settings\" && settings}\r\n {tab === \"theme\" && theme}\r\n {tab === \"language\" && language}\r\n </Box>\r\n </Menu>\r\n </Fragment>\r\n );\r\n};\r\n","import { InteractionStatus } from \"@azure/msal-browser\";\r\nimport { AuthenticatedTemplate, useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport Menu from \"@mui/icons-material/Menu\";\r\nimport MenuOpen from \"@mui/icons-material/MenuOpen\";\r\nimport { AppBar, Box, CssBaseline, IconButton, InitColorSchemeScript, Toolbar } from \"@mui/material\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport { useMatches } from \"@tanstack/react-router\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport { Platform } from \"~/lib/utils\";\r\nimport { LayoutOptions } from \"~/models/LayoutOptions\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport { AppTitle } from \"./AppTitle\";\r\nimport { NavigationRail } from \"./navigation/NavigationRail\";\r\nimport { ToolbarAccount } from \"./ToolbarAccount\";\r\n\r\nconst NAVIGATION_STORAGE_KEY = \"navigation-open\";\r\n\r\nconst getInitialNavigationOpen = (): boolean => {\r\n if (Platform.isWindows || Platform.isMacOS) return localStorage.getItem(NAVIGATION_STORAGE_KEY) === \"true\";\r\n return false;\r\n};\r\n\r\nconst saveNavigationState = (value: boolean): void => {\r\n if (Platform.isWindows || Platform.isMacOS) {\r\n localStorage.setItem(NAVIGATION_STORAGE_KEY, String(value));\r\n }\r\n};\r\n\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 ...theme.mixins.toolbar,\r\n}));\r\n\r\ninterface LayoutProps {\r\n navigation: Navigation | undefined;\r\n options: LayoutOptions | undefined;\r\n children: ReactNode;\r\n}\r\n\r\nexport const Layout: FC<LayoutProps> = ({ navigation, options, children }) => {\r\n const [navigationOpen, setNavigationOpen] = useState(getInitialNavigationOpen);\r\n const { instance, inProgress } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n const matches = useMatches();\r\n const currentRoutePath = matches[matches.length - 1]?.fullPath;\r\n const isPublicRoute = options?.publicRoutes?.some(route => route === currentRoutePath) ?? false;\r\n\r\n useEffect(() => {\r\n if (!isAuthenticated && inProgress === InteractionStatus.None && !isPublicRoute)\r\n instance.loginRedirect();\r\n }, [isAuthenticated, inProgress, isPublicRoute, instance]);\r\n\r\n return (\r\n <Fragment>\r\n <InitColorSchemeScript />\r\n <CssBaseline />\r\n\r\n <Box sx={{ display: \"flex\", height: \"100dvh\", maxHeight: \"100dvh\", overflow: \"hidden\", width: \"100%\" }}>\r\n <AppBar\r\n color=\"transparent\"\r\n position=\"fixed\"\r\n sx={{\r\n borderBottom: \"1px solid\",\r\n borderColor: \"var(--mui-palette-divider)\",\r\n boxShadow: \"none\",\r\n }}>\r\n <Toolbar>\r\n {navigation &&\r\n <IconButton\r\n onClick={() => {\r\n setNavigationOpen(previous => {\r\n const newValue = !previous;\r\n saveNavigationState(newValue);\r\n return newValue;\r\n });\r\n }}\r\n sx={{ marginRight: 2 }}\r\n >\r\n {navigationOpen ? <MenuOpen /> : <Menu />}\r\n </IconButton>\r\n }\r\n\r\n <AppTitle />\r\n\r\n <ToolbarAccount />\r\n </Toolbar>\r\n </AppBar>\r\n\r\n {navigation &&\r\n <NavigationRail\r\n navigation={navigation}\r\n expanded={navigationOpen}\r\n setExpanded={newValue => {\r\n setNavigationOpen(newValue);\r\n saveNavigationState(newValue);\r\n }}\r\n />\r\n }\r\n\r\n <Box component=\"main\" sx={{ flexGrow: 1, display: \"flex\", flexDirection: \"column\", minWidth: 0, height: \"100%\", overflow: \"hidden\" }}>\r\n <DrawerHeader />\r\n <Box sx={{ flex: 1, overflow: \"auto\", position: \"relative\" }}>\r\n {isPublicRoute ?\r\n children\r\n :\r\n <AuthenticatedTemplate>\r\n {children}\r\n </AuthenticatedTemplate>\r\n }\r\n </Box>\r\n </Box>\r\n </Box>\r\n </Fragment>\r\n );\r\n};\r\n","import { MsalProvider } from \"@azure/msal-react\";\r\nimport { ThemeProvider } from \"@mui/material\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers\";\r\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\r\nimport dayjs from \"dayjs\";\r\nimport i18n from \"i18next\";\r\nimport LanguageDetector from \"i18next-browser-languagedetector\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport { resources } from \"virtual:wcz-layout\";\r\nimport z from \"zod\";\r\nimport { DialogsProvider } from \"./DialogsProvider\";\r\nimport { NotificationProvider } from \"./NotificationProvider\";\r\nimport type { LayoutOptions } from \"~/models/LayoutOptions\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { Theme } from \"@mui/material\";\r\nimport { pca } from \"~/lib/auth/msalClient\";\r\nimport { Layout } from \"~/components/core/Layout\";\r\n\r\nconst YEAR_IN_MINUTES = 60 * 24 * 365;\r\n\r\ni18n\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n resources,\r\n fallbackLng: \"en\",\r\n supportedLngs: Object.keys(resources),\r\n detection: {\r\n caches: [\"cookie\"],\r\n cookieMinutes: YEAR_IN_MINUTES,\r\n },\r\n interpolation: { escapeValue: false },\r\n showSupportNotice: false,\r\n });\r\n\r\ni18n.on(\"languageChanged\", (language) => {\r\n z.config(z.core.locales[language as keyof typeof z.core.locales]());\r\n dayjs.locale(language);\r\n});\r\n\r\ninterface ProvidersProps {\r\n options?: LayoutOptions;\r\n navigation?: Navigation;\r\n theme: Theme;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LayoutProvider: FC<ProvidersProps> = ({ options, navigation, theme, children }) => {\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <LocalizationProvider key={i18n.language} dateAdapter={AdapterDayjs} adapterLocale={i18n.language}>\r\n <NotificationProvider snackbarOrigin={options?.snackbarOrigin}>\r\n <DialogsProvider>\r\n <MsalProvider instance={pca}>\r\n <Layout navigation={navigation} options={options}>\r\n {children}\r\n </Layout>\r\n </MsalProvider>\r\n </DialogsProvider>\r\n </NotificationProvider>\r\n </LocalizationProvider>\r\n </ThemeProvider>\r\n );\r\n};\r\n"],"names":["DialogsProvider","children","stack","setStack","useState","keyPrefix","useId","nextId","useRef","dialogMetadata","WeakMap","requestDialog","useEventCallback","Component","payload","options","onClose","resolve","promise","Promise","resolveImpl","key","current","newEntry","open","set","previousStack","removeDialogFromStack","dialog","filter","entry","delete","closeDialogUi","map","setTimeout","closeDialog","result","entryToClose","get","Error","jsxs","DialogsContext","close","Component_0","STACK_INTERVAL","NotificationProvider","t0","$","_c","snackbarOrigin","t1","Symbol","for","queue","setQueue","setCurrent","Boolean","processingTimeout","t2","prevQueue","length","next","rest","processQueue","t3","t4","clearTimeout","useEffect","t5","message","notification","severity","autoHideDuration","prev","notify","t6","t7","t8","_event","reason","t9","t10","jsx","Alert","undefined","t11","Snackbar","t12","NotificationContext","PRODUCTION_ENV","getEnv","url","z","string","refine","u","split","transform","toUpperCase","catch","parse","AppTitle","router","useRouter","origin","env","isProduction","Typography","clientEnv","VITE_APP_TITLE","Chip","Stack","ICON_SIZE","StyledNavButton","styled","ListItemButton","theme","borderRadius","color","vars","palette","primary","dark","backgroundColor","action","active","StyledRouterButton","RouterListItemButton","IconOrAvatar","item","collapsed","icon","position","left","top","display","alignItems","justifyContent","minWidth","title","Avatar","width","height","fontSize","slice","_temp","ListItemIcon","bottom","fontWeight","textAlign","whiteSpace","overflow","textOverflow","maxWidth","MINI_WIDTH","Box","MiniPopover","pl","pb","pt","maxHeight","overflowY","overscrollBehavior","Paper","Grow","NavigationListItem","isOpen","selected","disabled","isSidebarFullyExpanded","isSidebarFullyCollapsed","onClick","renderNested","hoveredMiniItemId","setHoveredMiniItemId","itemId","to","right","ml","transition","transitions","create","easing","sharp","duration","chevronSx","shouldJustExpand","px","sx","buttonProps","ListItemText","noWrap","flex","ExpandMoreIcon","Fragment","buttonContent","onMouseEnter","onMouseLeave","py","overflowX","href","params","search","t13","t14","ListItem","listItem","t15","Collapse","t16","word","charAt","isPageItem","isDivider","kind","isHeader","NavigationList","subNavigation","depth","isPopover","expandedWidth","renderItem","activePath","onNavigate","openKeys","setOpenKeys","previous","includes","k","toggleKey","filteredNavigation","padding","mt","mb","List","navItem","index","ListSubheader","zIndex","bgcolor","nextItem","Divider","mx","key_0","uniqueItemKey","nav","hidden","EXPANDED_WIDTH","TOOLBAR_HEIGHT","NavigationRail","navigation","expanded","setExpanded","navigate","useNavigate","routerState","useRouterState","useTheme","breakpoints","up","showPermanent","useMediaQuery","location","pathname","flexDirection","scrollbarGutter","drawerContent","borderTop","borderColor","Drawer","QUERY_KEY","api","axios","baseURL","interceptors","request","use","config","accessToken","getAccessToken","headers","graphQueries","sessionUserPhoto","queryOptions","queryKey","queryFn","method","responseType","then","response","data","staleTime","Infinity","gcTime","select","URL","createObjectURL","capitalize","value","ToolbarAccount","anchorElement","setAnchorElement","tab","setTab","t","i18n","useTranslation","mode","setMode","useColorScheme","instance","useMsal","isAuthenticated","useIsAuthenticated","user","useUser","enabled","userPhoto","useQuery","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","language","type","LightMode","label","DarkMode","SettingsBrightness","colorModes","event","currentTarget","newTab","changeTab","t17","t18","t19","Brightness4","t20","t21","find","m","t22","t23","ChevronRight","t24","t25","t26","t27","Translate","t28","t29","t30","of","t31","t32","t33","cursor","t34","IconButton","mr","ArrowBack","t35","t36","t37","t38","modeValue","Icon","t39","t40","t41","t42","languageCode","changeLanguage","finally","resolvedLanguage","Done","xs","sm","AuthenticatedTemplate","UnauthenticatedTemplate","AccountCircle","name","employeeId","department","logoutRedirect","postLogoutRedirectUri","Logout","loginRedirect","Login","Menu","lng","NAVIGATION_STORAGE_KEY","getInitialNavigationOpen","Platform","isWindows","isMacOS","localStorage","getItem","saveNavigationState","setItem","String","DrawerHeader","spacing","mixins","toolbar","Layout","navigationOpen","setNavigationOpen","inProgress","matches","useMatches","currentRoutePath","fullPath","publicRoutes","some","route","isPublicRoute","InteractionStatus","None","InitColorSchemeScript","CssBaseline","borderBottom","boxShadow","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","flexGrow","YEAR_IN_MINUTES","LanguageDetector","initReactI18next","init","resources","fallbackLng","Object","keys","detection","caches","cookieMinutes","interpolation","escapeValue","showSupportNotice","on","core","locales","dayjs","locale","LayoutProvider","MsalProvider","pca","LocalizationProvider","AdapterDayjs","ThemeProvider"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../src/providers/DialogsProvider.tsx","../src/providers/NotificationProvider.tsx","../src/components/core/AppTitle.tsx","../src/components/core/navigation/NavigationListItem.tsx","../src/components/core/navigation/NavigationList.tsx","../src/components/core/navigation/NavigationRail.tsx","../src/queries/GraphQueries.ts","../src/components/core/ToolbarAccount.tsx","../src/components/core/Layout.tsx","../src/providers/LayoutProvider.tsx"],"sourcesContent":["import useEventCallback from \"@mui/utils/useEventCallback\";\nimport { useId, useRef, useState } from \"react\";\nimport { DialogsContext } from \"../contexts/DialogsContext\";\nimport type { DialogComponent, OpenDialog, OpenDialogOptions } from \"../hooks/DialogsHooks\";\n\ninterface DialogStackEntry<TPayload, TResult> {\n key: string;\n open: boolean;\n promise: Promise<TResult>;\n Component: DialogComponent<TPayload, TResult>;\n payload: TPayload;\n onClose: (result: TResult) => Promise<void>;\n resolve: (result: TResult) => void;\n}\n\nexport interface DialogProviderProps {\n children?: React.ReactNode;\n}\n\nfunction DialogsProvider({ children }: Readonly<DialogProviderProps>) {\n const [stack, setStack] = useState<Array<DialogStackEntry<any, any>>>([]);\n const keyPrefix = useId();\n const nextId = useRef(0);\n const dialogMetadata = useRef(new WeakMap<Promise<any>, DialogStackEntry<any, any>>());\n\n const requestDialog = useEventCallback<OpenDialog>(function open<TPayload, TResult>(\n Component: DialogComponent<TPayload, TResult>,\n payload: TPayload,\n options: OpenDialogOptions<TResult> = {},\n ) {\n const { onClose = async () => { } } = options;\n\n let resolve: (result: TResult) => void;\n const promise = new Promise<TResult>((resolveImpl) => {\n resolve = resolveImpl;\n });\n\n const key = `${keyPrefix}-${nextId.current}`;\n nextId.current += 1;\n\n const newEntry: DialogStackEntry<TPayload, TResult> = {\n key,\n open: true,\n promise,\n Component,\n payload,\n onClose,\n resolve: resolve!,\n };\n\n dialogMetadata.current.set(promise, newEntry);\n\n setStack((previousStack) => [...previousStack, newEntry]);\n\n return promise;\n });\n\n const removeDialogFromStack = (dialog: Promise<any>) => {\n setStack((previousStack) => previousStack.filter((entry) => entry.promise !== dialog));\n dialogMetadata.current.delete(dialog);\n };\n\n const closeDialogUi = useEventCallback(function closeDialogUi<TResult>(dialog: Promise<TResult>) {\n setStack((previousStack) =>\n previousStack.map((entry) => (entry.promise === dialog ? { ...entry, open: false } : entry)),\n );\n\n setTimeout(() => removeDialogFromStack(dialog), 1000);\n });\n\n const closeDialog = useEventCallback(async function closeDialog<TResult>(\n dialog: Promise<TResult>,\n result: TResult,\n ) {\n const entryToClose = dialogMetadata.current.get(dialog);\n if (!entryToClose) {\n throw new Error(\"Dialog not found in stack\");\n }\n\n try {\n await entryToClose.onClose(result);\n } finally {\n entryToClose.resolve(result);\n closeDialogUi(dialog);\n }\n\n return dialog;\n });\n\n return (\n <DialogsContext.Provider value={{ open: requestDialog, close: closeDialog }}>\n {children}\n {stack.map(({ key, open, Component, payload, promise }) => (\n <Component\n key={key}\n payload={payload}\n open={open}\n onClose={async (result) => {\n await closeDialog(promise, result);\n }}\n />\n ))}\n </DialogsContext.Provider>\n );\n}\n\nexport { DialogsProvider };\n\n","import Alert from \"@mui/material/Alert\";\nimport Snackbar from \"@mui/material/Snackbar\";\nimport { useEffect, useRef, useState } from \"react\";\nimport type { SnackbarOrigin } from \"@mui/material/Snackbar\";\nimport type { AlertColor } from \"@mui/material/Alert\";\nimport type { NotificationOptions } from \"~/contexts/NotificationContext\";\nimport { NotificationContext } from \"~/contexts/NotificationContext\";\n\ninterface Notification {\n message: string;\n severity?: AlertColor;\n autoHideDuration: number;\n}\n\ninterface NotificationProviderProps {\n children: React.ReactNode;\n snackbarOrigin?: SnackbarOrigin;\n}\n\nconst STACK_INTERVAL = 1000;\n\nexport const NotificationProvider: React.FC<NotificationProviderProps> = ({ children, snackbarOrigin }) => {\n const [queue, setQueue] = useState<Array<Notification>>([]);\n const [current, setCurrent] = useState<Notification | null>(null);\n const open = Boolean(current);\n const processingTimeout = useRef<ReturnType<typeof setTimeout> | null>(null);\n\n const processQueue = () => {\n setQueue((prevQueue) => {\n if (prevQueue.length === 0) return prevQueue;\n\n const [next, ...rest] = prevQueue;\n setCurrent(next);\n return rest;\n });\n };\n\n useEffect(() => {\n if (!open && queue.length > 0) {\n processingTimeout.current = setTimeout(processQueue, current ? STACK_INTERVAL : 0);\n }\n\n return () => {\n if (processingTimeout.current) {\n clearTimeout(processingTimeout.current);\n }\n };\n }, [open, queue.length, current]);\n\n const notify = (message: string, options?: NotificationOptions) => {\n const notification: Notification = {\n message,\n severity: options?.severity,\n autoHideDuration: options?.autoHideDuration ?? 5000,\n };\n\n setQueue((prev) => [...prev, notification]);\n };\n\n return (\n <NotificationContext value={{ notify }}>\n {children}\n <Snackbar\n open={open}\n autoHideDuration={current?.autoHideDuration}\n onClose={(_event, reason) => {\n if (reason === \"clickaway\") return;\n setCurrent(null);\n }}\n anchorOrigin={snackbarOrigin}\n message={current?.message}\n >\n {current?.severity ? (\n <Alert\n onClose={() => setCurrent(null)}\n severity={current.severity}\n variant=\"filled\"\n >\n {current.message}\n </Alert>\n ) : undefined}\n </Snackbar>\n </NotificationContext >\n );\n};\n","import { Chip, Stack, Typography } from \"@mui/material\";\r\nimport { useRouter } from \"@tanstack/react-router\";\r\nimport z from \"zod\";\r\nimport type { FC } from \"react\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nconst PRODUCTION_ENV = \"PRD\";\r\n\r\nconst getEnv = (url: string | undefined) =>\r\n z.string()\r\n .refine((u) => u.split(\"-\").length > 2)\r\n .transform((u) => u.split(\"-\")[2].toUpperCase())\r\n .catch(\"LOCALHOST\")\r\n .parse(url);\r\n\r\nexport const AppTitle: FC = () => {\r\n const router = useRouter();\r\n const env = getEnv(router.origin);\r\n const isProduction = env === PRODUCTION_ENV;\r\n\r\n return (\r\n <Stack direction=\"row\" alignItems=\"center\" spacing={2} flexGrow={1}>\r\n <img src=\"/favicon-32x32.png\" alt=\"app-logo\" loading=\"lazy\" />\r\n <Typography variant=\"h6\">{clientEnv.VITE_APP_TITLE}</Typography>\r\n {!isProduction && <Chip size=\"small\" label={env} color=\"primary\" />}\r\n </Stack>\r\n );\r\n};\r\n","import ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\nimport { Collapse, Grow } from \"@mui/material\";\nimport Avatar from \"@mui/material/Avatar\";\nimport Box from \"@mui/material/Box\";\nimport ListItem from \"@mui/material/ListItem\";\nimport ListItemButton from \"@mui/material/ListItemButton\";\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport Paper from \"@mui/material/Paper\";\nimport { styled } from \"@mui/material/styles\";\nimport Typography from \"@mui/material/Typography\";\nimport { Fragment, useState } from \"react\";\nimport { MINI_WIDTH } from \"./NavigationRail\";\nimport type { NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\nimport type { FC, ReactNode } from \"react\";\nimport type { SxProps, Theme } from \"@mui/material/styles\";\nimport { RouterListItemButton } from \"~/components/router/RouterListItemButton\";\n\nconst ICON_SIZE = 34;\n\nconst StyledNavButton = styled(ListItemButton)(({ theme }) => ({\n borderRadius: 8,\n \"&.Mui-selected\": {\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiTouchRipple-child\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n },\n \"& .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.action.active,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.action.active,\n },\n}));\n\nconst StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({\n borderRadius: 8,\n \"&.Mui-selected\": {\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n \"& .MuiTouchRipple-child\": {\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\n },\n },\n \"& .MuiSvgIcon-root\": {\n color: (theme.vars ?? theme).palette.action.active,\n },\n \"& .MuiAvatar-root\": {\n backgroundColor: (theme.vars ?? theme).palette.action.active,\n },\n}));\n\nconst IconOrAvatar: FC<{ item: NavigationPageItem; collapsed?: boolean }> = ({ item, collapsed }) => {\n if (item.icon || collapsed) {\n return (\n <Box sx={collapsed ? { position: \"absolute\", left: \"50%\", top: \"calc(50% - 6px)\", transform: \"translate(-50%, -50%)\" } : {}}>\n <ListItemIcon sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\", minWidth: ICON_SIZE }}>\n {item.icon ?? null}\n {!item.icon && collapsed ? (\n <Avatar sx={{ width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }}>\n {item.title\n .split(\" \")\n .slice(0, 2)\n .map((word) => word.charAt(0).toUpperCase())}\n </Avatar>\n ) : null}\n </ListItemIcon>\n {collapsed ? (\n <Typography\n variant=\"caption\"\n sx={{\n position: \"absolute\",\n bottom: -18,\n left: \"50%\",\n transform: \"translateX(-50%)\",\n fontSize: 10,\n fontWeight: 500,\n textAlign: \"center\",\n whiteSpace: \"nowrap\",\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n maxWidth: MINI_WIDTH - 28,\n }}\n >\n {item.title}\n </Typography>\n ) : null}\n </Box>\n );\n }\n return null;\n};\n\ninterface MiniPopoverProps {\n open: boolean;\n children?: ReactNode;\n}\n\nconst MiniPopover: FC<MiniPopoverProps> = ({ open, children }) => (\n <Grow in={open}>\n <Box\n sx={{\n position: \"fixed\",\n left: MINI_WIDTH,\n pl: \"2px\",\n pb: \"10px\",\n }}\n >\n <Paper\n sx={{\n pt: 0.5,\n pb: 0.5,\n transform: \"translateY(calc(50% - 30px))\",\n maxHeight: \"min(calc(100vh - 100px), 560px)\",\n overflowY: \"auto\",\n overscrollBehavior: \"contain\",\n }}\n >\n {children}\n </Paper>\n </Box>\n </Grow>\n);\n\ninterface NavigationListItemProps {\n item: NavigationPageItem;\n isOpen?: boolean;\n selected?: boolean;\n disabled?: boolean;\n collapsed?: boolean;\n isSidebarFullyExpanded?: boolean;\n isSidebarFullyCollapsed?: boolean;\n onClick?: (item: NavigationPageItem) => void;\n renderNested?: (sub: Array<NavigationItem>) => ReactNode;\n onClose?: () => void;\n}\n\nexport const NavigationListItem: FC<NavigationListItemProps> = ({ item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, onClick, renderNested, onClose }) => {\n const [hoveredMiniItemId, setHoveredMiniItemId] = useState<string | null>(null);\n const itemId = `${item.to ?? item.title}`;\n\n const chevronSx: SxProps<Theme> = (theme: Theme) => {\n if (collapsed && isSidebarFullyCollapsed && item.children) {\n return {\n fontSize: 18,\n position: \"absolute\",\n top: \"41.5%\",\n right: \"2px\",\n transform: \"translateY(-50%) rotate(-90deg)\",\n };\n }\n if (!collapsed && isSidebarFullyExpanded && item.children) {\n return {\n ml: 0.5,\n transform: `rotate(${isOpen ? 0 : -90}deg)`,\n transition: theme.transitions.create(\"transform\", {\n easing: theme.transitions.easing.sharp,\n duration: 100,\n }),\n };\n }\n return { display: \"none\" };\n };\n\n const shouldJustExpand = item.children && !collapsed;\n\n const buttonProps = {\n selected,\n disabled,\n sx: { px: 1.4, height: collapsed ? 60 : 48 }\n };\n\n const buttonContent = (\n <>\n <IconOrAvatar item={item} collapsed={collapsed} />\n {!collapsed && (\n <ListItemText\n primary={item.title}\n slotProps={{ primary: { noWrap: true, title: item.title } }}\n sx={{ ml: 1.2, flex: 1, minWidth: 0, \"& .MuiTypography-root\": { whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" } }}\n />\n )}\n {item.children ? <ExpandMoreIcon sx={chevronSx} /> : null}\n </>\n );\n\n const listItem = (\n <ListItem\n {...(item.children && collapsed\n ? {\n onMouseEnter: () => {\n setHoveredMiniItemId(itemId);\n },\n onMouseLeave: () => {\n setHoveredMiniItemId(null);\n },\n }\n : {})}\n sx={{ py: 0, px: 1, overflowX: \"hidden\" }}\n >\n {shouldJustExpand ? (\n <StyledNavButton {...buttonProps} onClick={() => onClick?.(item)}>\n {buttonContent}\n </StyledNavButton>\n ) : (\n <StyledRouterButton\n {...buttonProps}\n to={item.to}\n href={item.href}\n params={item.params as any}\n search={item.search as any}\n onClick={onClose}\n >\n {buttonContent}\n </StyledRouterButton>\n )}\n\n {item.children && collapsed ? (\n <MiniPopover open={itemId === hoveredMiniItemId}>\n {renderNested?.(item.children)}\n </MiniPopover>\n ) : null}\n </ListItem>\n );\n\n return (\n <Fragment key={item.to}>\n {listItem}\n {item.children && !collapsed ? (\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\n {renderNested?.(item.children)}\n </Collapse>\n ) : null}\n </Fragment>\n );\n};\n","import Divider from \"@mui/material/Divider\";\nimport List from \"@mui/material/List\";\nimport ListSubheader from \"@mui/material/ListSubheader\";\nimport { Fragment, useEffect, useState } from \"react\";\nimport { NavigationListItem } from \"./NavigationListItem\";\nimport { MINI_WIDTH } from \"./NavigationRail\";\nimport type { FC, ReactNode } from \"react\";\nimport type { Navigation, NavigationDivider, NavigationHeader, NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\n\nexport const isPageItem = (item: NavigationItem): item is NavigationPageItem => !(\"kind\" in item);\nexport const isDivider = (item: NavigationItem): item is NavigationDivider => \"kind\" in item && item.kind === \"divider\";\nexport const isHeader = (item: NavigationItem): item is NavigationHeader => \"kind\" in item && item.kind === \"header\";\n\ninterface NavigationListProps {\n subNavigation: Navigation;\n depth?: number;\n collapsed?: boolean;\n isPopover?: boolean;\n isSidebarFullyExpanded?: boolean;\n isSidebarFullyCollapsed?: boolean;\n expandedWidth: number | string;\n renderItem?: (item: NavigationPageItem, context: { collapsed: boolean }) => ReactNode;\n activePath?: string | null;\n onNavigate: (item: NavigationPageItem) => void;\n onClose?: () => void;\n}\n\nexport const NavigationList: FC<NavigationListProps> = ({ subNavigation, depth = 0, collapsed, isPopover, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, expandedWidth, renderItem, activePath, onNavigate, onClose }) => {\n const [openKeys, setOpenKeys] = useState<Array<string>>([]);\n\n useEffect(() => {\n if (collapsed) setOpenKeys([]);\n }, [collapsed]);\n\n const toggleKey = (key: string) =>\n setOpenKeys((previous) => (previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]));\n\n const renderNested = (children: Array<NavigationItem>) => <NavigationList\n subNavigation={children}\n depth={depth + 1}\n isPopover={collapsed}\n expandedWidth={expandedWidth}\n activePath={activePath}\n onNavigate={onNavigate}\n onClose={onClose}\n />;\n\n const filteredNavigation = subNavigation.filter(nav => !nav.hidden);\n\n return (\n <List\n sx={{\n padding: 0,\n mt: isPopover && depth === 1 ? 0.5 : 0,\n mb: depth === 0 && !isPopover ? 4 : 0.5,\n pl: (isPopover ? 1 : 2) * (isPopover ? depth - 1 : depth),\n minWidth: isPopover && depth === 1 ? 240 : \"auto\",\n width: collapsed ? MINI_WIDTH : \"auto\",\n }}\n >\n {filteredNavigation.map((navItem, index) => {\n if (isHeader(navItem)) {\n return (\n <ListSubheader\n key={`subheader-${depth}-${index}`}\n sx={{\n fontSize: 12,\n fontWeight: \"700\",\n height: collapsed ? 0 : 40,\n px: 2,\n overflow: \"hidden\",\n textOverflow: \"ellipsis\",\n whiteSpace: \"nowrap\",\n zIndex: 2,\n bgcolor: \"transparent\",\n position: \"static\"\n }}\n >\n {navItem.title}\n </ListSubheader>\n );\n }\n\n if (isDivider(navItem)) {\n const nextItem = filteredNavigation[index + 1];\n return (\n <li key={`divider-${depth}-${index}`}>\n <Divider sx={{ mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 }} />\n </li>\n );\n }\n\n if (!isPageItem(navItem)) return null;\n\n const key = `item-${depth}-${index}`;\n const uniqueItemKey = `${depth}-${index}-${navItem.title}`;\n\n if (renderItem) return <Fragment key={key}>{renderItem(navItem, { collapsed: !!collapsed })}</Fragment>;\n\n return <NavigationListItem\n key={key}\n item={navItem}\n isOpen={openKeys.includes(uniqueItemKey)}\n selected={activePath === navItem.to}\n collapsed={collapsed}\n isSidebarFullyExpanded={isSidebarFullyExpanded}\n isSidebarFullyCollapsed={isSidebarFullyCollapsed}\n onClick={navItem.children && !collapsed ? () => toggleKey(uniqueItemKey) : undefined}\n renderNested={renderNested}\n onClose={onClose}\n />;\n })}\n </List>\n );\n};\n","import { useMediaQuery } from \"@mui/material\";\nimport Box from \"@mui/material/Box\";\nimport Drawer from \"@mui/material/Drawer\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useNavigate, useRouterState } from \"@tanstack/react-router\";\nimport { NavigationList, isHeader } from \"./NavigationList\";\nimport type { FC } from \"react\";\nimport type { Navigation } from \"~/models/Navigation\";\n\nexport const MINI_WIDTH = 84;\nexport const EXPANDED_WIDTH = 320;\nexport const TOOLBAR_HEIGHT = 64;\n\ninterface NavigationRailProps {\n navigation: Navigation;\n expanded: boolean;\n setExpanded: (open: boolean) => void;\n}\n\nexport const NavigationRail: FC<NavigationRailProps> = ({ navigation, expanded, setExpanded }) => {\n const navigate = useNavigate();\n const routerState = useRouterState();\n const theme = useTheme();\n const showPermanent = useMediaQuery(theme.breakpoints.up(\"sm\"));\n\n const drawerContent = (collapsed: boolean) => (\n <Box\n component=\"nav\"\n sx={{\n height: \"100%\",\n display: \"flex\",\n flexDirection: \"column\",\n justifyContent: \"space-between\",\n overflow: \"auto\",\n scrollbarGutter: collapsed ? \"stable\" : \"auto\",\n overflowX: \"hidden\",\n pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2,\n }}\n >\n <NavigationList\n subNavigation={navigation}\n collapsed={collapsed}\n isSidebarFullyExpanded={expanded}\n isSidebarFullyCollapsed={!expanded}\n expandedWidth={EXPANDED_WIDTH}\n activePath={routerState.location.pathname}\n onNavigate={navigate}\n onClose={!showPermanent ? () => setExpanded(false) : undefined}\n />\n </Box>\n );\n\n if (showPermanent)\n return (\n <Drawer\n variant=\"permanent\"\n sx={{\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\n [\"& .MuiDrawer-paper\"]: {\n position: \"absolute\",\n top: `${TOOLBAR_HEIGHT}px`,\n height: `calc(100% - ${TOOLBAR_HEIGHT}px)`,\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\n background: \"transparent\",\n borderTop: \"1px solid\",\n borderColor: \"var(--mui-palette-divider)\",\n boxShadow: \"none\",\n },\n }}\n >\n {drawerContent(!expanded)}\n </Drawer>\n );\n\n return (\n <Drawer\n open={expanded}\n onClose={() => setExpanded(false)}\n sx={{\n \"& .MuiDrawer-paper\": {\n width: \"min(280px, calc(100vw - 56px))\",\n },\n }}\n >\n {drawerContent(false)}\n </Drawer>\n );\n};\n","import { queryOptions } from \"@tanstack/react-query\";\r\nimport axios from \"axios\";\r\nimport { getAccessToken } from \"~/lib/auth/msalClient\";\r\n\r\nconst QUERY_KEY = \"graph\";\r\n\r\nexport const api = axios.create({\r\n baseURL: \"https://graph.microsoft.com/v1.0\"\r\n});\r\n\r\napi.interceptors.request.use(async (config) => {\r\n const accessToken = await getAccessToken(\"graph\");\r\n config.headers.set(\"Authorization\", `Bearer ${accessToken}`);\r\n return config;\r\n});\r\n\r\nexport const graphQueries = {\r\n sessionUserPhoto: () =>\r\n queryOptions({\r\n queryKey: [QUERY_KEY, \"me\", \"photo\"],\r\n queryFn: async () => await api.request<Blob>({\r\n method: \"GET\",\r\n url: \"/me/photo/$value\",\r\n responseType: \"blob\",\r\n }).then(response => response.data),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n select: data => URL.createObjectURL(data),\r\n }),\r\n};\r\n","import { AuthenticatedTemplate, UnauthenticatedTemplate, useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport Brightness4 from \"@mui/icons-material/Brightness4\";\r\nimport ChevronRight from \"@mui/icons-material/ChevronRight\";\r\nimport DarkMode from \"@mui/icons-material/DarkMode\";\r\nimport Done from \"@mui/icons-material/Done\";\r\nimport LightMode from \"@mui/icons-material/LightMode\";\r\nimport Login from \"@mui/icons-material/Login\";\r\nimport Logout from \"@mui/icons-material/Logout\";\r\nimport SettingsBrightness from \"@mui/icons-material/SettingsBrightness\";\r\nimport Translate from \"@mui/icons-material/Translate\";\r\nimport { Avatar, Box, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, useColorScheme } from \"@mui/material\";\r\nimport { useQuery } from \"@tanstack/react-query\";\r\nimport type { FC } from \"react\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport { useUser } from \"~/hooks/UseUser\";\r\nimport { graphQueries } from \"~/queries/GraphQueries\";\r\n\r\ntype TabType = \"settings\" | \"theme\" | \"language\";\r\nconst capitalize = (value: string | undefined) => value && value.charAt(0).toUpperCase() + value.slice(1);\r\n\r\nexport const ToolbarAccount: FC = () => {\r\n const [anchorElement, setAnchorElement] = useState<HTMLElement>();\r\n const [tab, setTab] = useState<TabType>(\"settings\");\r\n const open = Boolean(anchorElement);\r\n const { t, i18n } = useTranslation();\r\n const { mode, setMode } = useColorScheme();\r\n const { instance } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n const user = useUser();\r\n\r\n const { data: userPhoto } = useQuery({ ...graphQueries.sessionUserPhoto(), enabled: isAuthenticated });\r\n\r\n const supportedLanguages = (Array.isArray(i18n.options.supportedLngs) ? i18n.options.supportedLngs : []).filter(lng => lng !== \"cimode\");\r\n const languageDisplayNames = new Intl.DisplayNames([i18n.language], { type: \"language\" });\r\n\r\n const colorModes: Array<{ mode: Exclude<typeof mode, undefined>; icon: typeof LightMode; label: string }> = [\r\n { mode: \"light\", icon: LightMode, label: t(\"Layout.Light\") },\r\n { mode: \"dark\", icon: DarkMode, label: t(\"Layout.Dark\") },\r\n { mode: \"system\", icon: SettingsBrightness, label: t(\"Layout.System\") },\r\n ];\r\n\r\n const openMenu = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => setAnchorElement(event.currentTarget);\r\n const closeMenu = () => { setAnchorElement(undefined); setTimeout(() => setTab(\"settings\"), 300); };\r\n\r\n const changeTab = (newTab: TabType) => () => setTab(newTab);\r\n\r\n const settings = (\r\n <List component=\"nav\" subheader={<ListSubheader sx={{ backgroundColor: \"transparent\" }}>{t(\"Layout.Settings\")}</ListSubheader>}>\r\n <ListItemButton onClick={changeTab(\"theme\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Brightness4 />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Appearance\")} secondary={colorModes.find((m) => m.mode === mode)?.label ?? t(\"Layout.System\")} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n\r\n <ListItemButton onClick={changeTab(\"language\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Translate />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Language\")} secondary={capitalize(languageDisplayNames.of(i18n.language))} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n </List>\r\n );\r\n\r\n const theme = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Appearance\")}\r\n </ListSubheader>\r\n }>\r\n {colorModes.map(({ mode: modeValue, icon: Icon, label }) => (\r\n <ListItemButton\r\n key={modeValue}\r\n onClick={() => {\r\n setMode(modeValue);\r\n closeMenu();\r\n }}\r\n selected={mode === modeValue}\r\n >\r\n <ListItemIcon>\r\n <Icon />\r\n </ListItemIcon>\r\n <ListItemText primary={label} />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n );\r\n\r\n const language = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Language\")}\r\n </ListSubheader>\r\n }>\r\n {supportedLanguages.map((languageCode) =>\r\n <ListItemButton\r\n key={languageCode}\r\n onClick={() => i18n.changeLanguage(languageCode).finally(() => closeMenu())}\r\n selected={i18n.resolvedLanguage === languageCode}\r\n >\r\n <ListItemIcon>\r\n {i18n.resolvedLanguage === languageCode && <Done />}\r\n </ListItemIcon>\r\n <ListItemText primary={capitalize(languageDisplayNames.of(languageCode))} />\r\n </ListItemButton>\r\n )}\r\n </List>\r\n );\r\n\r\n return (\r\n <Fragment>\r\n <IconButton size=\"small\" edge=\"end\" onClick={openMenu}>\r\n <AuthenticatedTemplate>\r\n <Avatar src={userPhoto} sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n </AuthenticatedTemplate>\r\n <UnauthenticatedTemplate>\r\n <AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n </UnauthenticatedTemplate>\r\n </IconButton>\r\n\r\n <Menu anchorEl={anchorElement} open={open} onClose={closeMenu}>\r\n <Box sx={{ width: 240 }}>\r\n <List disablePadding>\r\n <AuthenticatedTemplate>\r\n <ListItem>\r\n <ListItemText primary={user?.name} secondary={\r\n <span>\r\n {user?.employeeId && <span>{user.employeeId}</span>}\r\n {user?.employeeId && <br />}\r\n {user?.department && <span>{user.department}</span>}\r\n </span>\r\n } />\r\n </ListItem>\r\n <ListItemButton onClick={() => instance.logoutRedirect({ postLogoutRedirectUri: \"/\" })}>\r\n <ListItemIcon><Logout color=\"error\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Logout\")} />\r\n </ListItemButton>\r\n </AuthenticatedTemplate>\r\n\r\n <UnauthenticatedTemplate>\r\n <ListItemButton onClick={() => instance.loginRedirect()}>\r\n <ListItemIcon><Login color=\"success\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.LogIn\")} />\r\n </ListItemButton>\r\n </UnauthenticatedTemplate>\r\n </List>\r\n\r\n {tab === \"settings\" && settings}\r\n {tab === \"theme\" && theme}\r\n {tab === \"language\" && language}\r\n </Box>\r\n </Menu>\r\n </Fragment>\r\n );\r\n};\r\n","import { InteractionStatus } from \"@azure/msal-browser\";\r\nimport { AuthenticatedTemplate, useIsAuthenticated, useMsal } from \"@azure/msal-react\";\r\nimport Menu from \"@mui/icons-material/Menu\";\r\nimport MenuOpen from \"@mui/icons-material/MenuOpen\";\r\nimport { AppBar, Box, CssBaseline, IconButton, InitColorSchemeScript, Toolbar } from \"@mui/material\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport { useMatches } from \"@tanstack/react-router\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport { Platform } from \"~/lib/utils\";\r\nimport { LayoutOptions } from \"~/models/LayoutOptions\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport { AppTitle } from \"./AppTitle\";\r\nimport { NavigationRail } from \"./navigation/NavigationRail\";\r\nimport { ToolbarAccount } from \"./ToolbarAccount\";\r\n\r\nconst NAVIGATION_STORAGE_KEY = \"navigation-open\";\r\n\r\nconst getInitialNavigationOpen = (): boolean => {\r\n if (Platform.isWindows || Platform.isMacOS) return localStorage.getItem(NAVIGATION_STORAGE_KEY) === \"true\";\r\n return false;\r\n};\r\n\r\nconst saveNavigationState = (value: boolean): void => {\r\n if (Platform.isWindows || Platform.isMacOS) {\r\n localStorage.setItem(NAVIGATION_STORAGE_KEY, String(value));\r\n }\r\n};\r\n\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 ...theme.mixins.toolbar,\r\n}));\r\n\r\ninterface LayoutProps {\r\n navigation: Navigation | undefined;\r\n options: LayoutOptions | undefined;\r\n children: ReactNode;\r\n}\r\n\r\nexport const Layout: FC<LayoutProps> = ({ navigation, options, children }) => {\r\n const [navigationOpen, setNavigationOpen] = useState(getInitialNavigationOpen);\r\n const { instance, inProgress } = useMsal();\r\n const isAuthenticated = useIsAuthenticated();\r\n const matches = useMatches();\r\n const currentRoutePath = matches[matches.length - 1]?.fullPath;\r\n const isPublicRoute = options?.publicRoutes?.some(route => route === currentRoutePath) ?? false;\r\n\r\n useEffect(() => {\r\n if (!isAuthenticated && inProgress === InteractionStatus.None && !isPublicRoute)\r\n instance.loginRedirect();\r\n }, [isAuthenticated, inProgress, isPublicRoute, instance]);\r\n\r\n return (\r\n <Fragment>\r\n <InitColorSchemeScript />\r\n <CssBaseline />\r\n\r\n <Box sx={{ display: \"flex\", height: \"100dvh\", maxHeight: \"100dvh\", overflow: \"hidden\", width: \"100%\" }}>\r\n <AppBar\r\n color=\"transparent\"\r\n position=\"fixed\"\r\n sx={{\r\n borderBottom: \"1px solid\",\r\n borderColor: \"var(--mui-palette-divider)\",\r\n boxShadow: \"none\",\r\n }}>\r\n <Toolbar>\r\n {navigation &&\r\n <IconButton\r\n onClick={() => {\r\n setNavigationOpen(previous => {\r\n const newValue = !previous;\r\n saveNavigationState(newValue);\r\n return newValue;\r\n });\r\n }}\r\n sx={{ marginRight: 2 }}\r\n >\r\n {navigationOpen ? <MenuOpen /> : <Menu />}\r\n </IconButton>\r\n }\r\n\r\n <AppTitle />\r\n\r\n <ToolbarAccount />\r\n </Toolbar>\r\n </AppBar>\r\n\r\n {navigation &&\r\n <NavigationRail\r\n navigation={navigation}\r\n expanded={navigationOpen}\r\n setExpanded={newValue => {\r\n setNavigationOpen(newValue);\r\n saveNavigationState(newValue);\r\n }}\r\n />\r\n }\r\n\r\n <Box component=\"main\" sx={{ flexGrow: 1, display: \"flex\", flexDirection: \"column\", minWidth: 0, height: \"100%\", overflow: \"hidden\" }}>\r\n <DrawerHeader />\r\n <Box sx={{ flex: 1, overflow: \"auto\", position: \"relative\" }}>\r\n {isPublicRoute ?\r\n children\r\n :\r\n <AuthenticatedTemplate>\r\n {children}\r\n </AuthenticatedTemplate>\r\n }\r\n </Box>\r\n </Box>\r\n </Box>\r\n </Fragment>\r\n );\r\n};\r\n","import { MsalProvider } from \"@azure/msal-react\";\r\nimport { ThemeProvider } from \"@mui/material\";\r\nimport { LocalizationProvider } from \"@mui/x-date-pickers\";\r\nimport { AdapterDayjs } from \"@mui/x-date-pickers/AdapterDayjs\";\r\nimport dayjs from \"dayjs\";\r\nimport i18n from \"i18next\";\r\nimport LanguageDetector from \"i18next-browser-languagedetector\";\r\nimport { initReactI18next } from \"react-i18next\";\r\nimport { resources } from \"virtual:wcz-layout\";\r\nimport z from \"zod\";\r\nimport { DialogsProvider } from \"./DialogsProvider\";\r\nimport { NotificationProvider } from \"./NotificationProvider\";\r\nimport type { LayoutOptions } from \"~/models/LayoutOptions\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { Theme } from \"@mui/material\";\r\nimport { pca } from \"~/lib/auth/msalClient\";\r\nimport { Layout } from \"~/components/core/Layout\";\r\n\r\nconst YEAR_IN_MINUTES = 60 * 24 * 365;\r\n\r\ni18n\r\n .use(LanguageDetector)\r\n .use(initReactI18next)\r\n .init({\r\n resources,\r\n fallbackLng: \"en\",\r\n supportedLngs: Object.keys(resources),\r\n detection: {\r\n caches: [\"cookie\"],\r\n cookieMinutes: YEAR_IN_MINUTES,\r\n },\r\n interpolation: { escapeValue: false },\r\n showSupportNotice: false,\r\n });\r\n\r\ni18n.on(\"languageChanged\", (language) => {\r\n z.config(z.core.locales[language as keyof typeof z.core.locales]());\r\n dayjs.locale(language);\r\n});\r\n\r\ninterface ProvidersProps {\r\n options?: LayoutOptions;\r\n navigation?: Navigation;\r\n theme: Theme;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LayoutProvider: FC<ProvidersProps> = ({ options, navigation, theme, children }) => {\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <LocalizationProvider key={i18n.language} dateAdapter={AdapterDayjs} adapterLocale={i18n.language}>\r\n <NotificationProvider snackbarOrigin={options?.snackbarOrigin}>\r\n <DialogsProvider>\r\n <MsalProvider instance={pca}>\r\n <Layout navigation={navigation} options={options}>\r\n {children}\r\n </Layout>\r\n </MsalProvider>\r\n </DialogsProvider>\r\n </NotificationProvider>\r\n </LocalizationProvider>\r\n </ThemeProvider>\r\n );\r\n};\r\n"],"names":["DialogsProvider","children","stack","setStack","useState","keyPrefix","useId","nextId","useRef","dialogMetadata","WeakMap","requestDialog","useEventCallback","Component","payload","options","onClose","resolve","promise","Promise","resolveImpl","key","current","newEntry","open","set","previousStack","removeDialogFromStack","dialog","filter","entry","delete","closeDialogUi","map","setTimeout","closeDialog","result","entryToClose","get","Error","jsxs","DialogsContext","close","Component_0","STACK_INTERVAL","NotificationProvider","t0","$","_c","snackbarOrigin","t1","Symbol","for","queue","setQueue","setCurrent","Boolean","processingTimeout","t2","prevQueue","length","next","rest","processQueue","t3","t4","clearTimeout","useEffect","t5","message","notification","severity","autoHideDuration","prev","notify","t6","t7","t8","_event","reason","t9","t10","jsx","Alert","undefined","t11","Snackbar","t12","NotificationContext","PRODUCTION_ENV","getEnv","url","z","string","refine","u","split","transform","toUpperCase","catch","parse","AppTitle","router","useRouter","origin","env","isProduction","Typography","clientEnv","VITE_APP_TITLE","Chip","Stack","ICON_SIZE","StyledNavButton","styled","ListItemButton","theme","borderRadius","color","vars","palette","primary","dark","backgroundColor","action","active","StyledRouterButton","RouterListItemButton","IconOrAvatar","item","collapsed","icon","position","left","top","display","alignItems","justifyContent","minWidth","title","Avatar","width","height","fontSize","slice","_temp","ListItemIcon","bottom","fontWeight","textAlign","whiteSpace","overflow","textOverflow","maxWidth","MINI_WIDTH","Box","MiniPopover","pl","pb","pt","maxHeight","overflowY","overscrollBehavior","Paper","Grow","NavigationListItem","isOpen","selected","disabled","isSidebarFullyExpanded","isSidebarFullyCollapsed","onClick","renderNested","hoveredMiniItemId","setHoveredMiniItemId","itemId","to","right","ml","transition","transitions","create","easing","sharp","duration","chevronSx","shouldJustExpand","px","sx","buttonProps","ListItemText","noWrap","flex","ExpandMoreIcon","Fragment","buttonContent","onMouseEnter","onMouseLeave","py","overflowX","href","params","search","t13","t14","ListItem","listItem","t15","Collapse","t16","word","charAt","isPageItem","isDivider","kind","isHeader","NavigationList","subNavigation","depth","isPopover","expandedWidth","renderItem","activePath","onNavigate","openKeys","setOpenKeys","previous","includes","k","toggleKey","filteredNavigation","padding","mt","mb","List","navItem","index","ListSubheader","zIndex","bgcolor","nextItem","Divider","mx","key_0","uniqueItemKey","nav","hidden","EXPANDED_WIDTH","TOOLBAR_HEIGHT","NavigationRail","navigation","expanded","setExpanded","navigate","useNavigate","routerState","useRouterState","useTheme","breakpoints","up","showPermanent","useMediaQuery","location","pathname","flexDirection","scrollbarGutter","drawerContent","background","borderTop","borderColor","boxShadow","Drawer","QUERY_KEY","api","axios","baseURL","interceptors","request","use","config","accessToken","getAccessToken","headers","graphQueries","sessionUserPhoto","queryOptions","queryKey","queryFn","method","responseType","then","response","data","staleTime","Infinity","gcTime","select","URL","createObjectURL","capitalize","value","ToolbarAccount","anchorElement","setAnchorElement","tab","setTab","t","i18n","useTranslation","mode","setMode","useColorScheme","instance","useMsal","isAuthenticated","useIsAuthenticated","user","useUser","enabled","userPhoto","useQuery","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","language","type","LightMode","label","DarkMode","SettingsBrightness","colorModes","event","currentTarget","newTab","changeTab","t17","t18","t19","Brightness4","t20","t21","find","m","t22","t23","ChevronRight","t24","t25","t26","t27","Translate","t28","t29","t30","of","t31","t32","t33","cursor","t34","IconButton","mr","ArrowBack","t35","t36","t37","t38","modeValue","Icon","t39","t40","t41","t42","languageCode","changeLanguage","finally","resolvedLanguage","Done","xs","sm","AuthenticatedTemplate","UnauthenticatedTemplate","AccountCircle","name","employeeId","department","logoutRedirect","postLogoutRedirectUri","Logout","loginRedirect","Login","Menu","lng","NAVIGATION_STORAGE_KEY","getInitialNavigationOpen","Platform","isWindows","isMacOS","localStorage","getItem","saveNavigationState","setItem","String","DrawerHeader","spacing","mixins","toolbar","Layout","navigationOpen","setNavigationOpen","inProgress","matches","useMatches","currentRoutePath","fullPath","publicRoutes","some","route","isPublicRoute","InteractionStatus","None","InitColorSchemeScript","CssBaseline","borderBottom","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","flexGrow","YEAR_IN_MINUTES","LanguageDetector","initReactI18next","init","resources","fallbackLng","Object","keys","detection","caches","cookieMinutes","interpolation","escapeValue","showSupportNotice","on","core","locales","dayjs","locale","LayoutProvider","MsalProvider","pca","LocalizationProvider","AdapterDayjs","ThemeProvider"],"mappings":"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"}
|