wcz-test 7.2.3 → 7.2.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/dist/index.js CHANGED
@@ -11,14 +11,13 @@ import Xe from "zod";
11
11
  import ze from "@mui/utils/useEventCallback";
12
12
  import { MsalProvider as zt, useMsal as Wt, useIsAuthenticated as Ht, useMsalAuthentication as qt, AuthenticatedTemplate as Kt } from "@azure/msal-react";
13
13
  import { useNavigate as lt, useRouterState as Yt } from "@tanstack/react-router";
14
- import { C as Gt, p as Ve, g as Qt, a as Xt } from "./msalClient-l-DV8PoB.js";
14
+ import { C as Gt, p as Ve, g as Qt, a as Xt } from "./msalClient-Cem8ZXIU.js";
15
15
  import { InteractionType as Vt } from "@azure/msal-browser";
16
16
  import Zt from "@mui/icons-material/Menu";
17
17
  import Jt from "@mui/icons-material/MenuOpen";
18
18
  import { styled as Ke, useTheme as eo } from "@mui/material/styles";
19
- import { P as Re } from "./utils-BGMLqA26.js";
20
- import { W as ci, a as di, r as ui } from "./utils-BGMLqA26.js";
21
- import { a as to } from "./env-Dy8Ynqa-.js";
19
+ import { c as to, P as Re } from "./utils-BXxJ2sNo.js";
20
+ import { W as li, b as ci, r as di } from "./utils-BXxJ2sNo.js";
22
21
  import Ye from "@mui/material/Box";
23
22
  import Ze from "@mui/material/Drawer";
24
23
  import oo from "@mui/material/Divider";
@@ -1132,7 +1131,7 @@ B.use(ut).use(zo).init({
1132
1131
  escapeValue: !1
1133
1132
  }
1134
1133
  });
1135
- const ri = (t) => {
1134
+ const si = (t) => {
1136
1135
  const e = R.c(9), {
1137
1136
  navigation: o,
1138
1137
  theme: n,
@@ -1153,9 +1152,9 @@ function mn() {
1153
1152
  Xe.config(Xe.core.locales[B.language]()), Ut.locale(B.language);
1154
1153
  }
1155
1154
  export {
1156
- ri as LayoutProvider,
1157
- ci as WISTRON_PRIMARY_COLOR,
1158
- di as WISTRON_SECONDARY_COLOR,
1159
- ui as rootRouteHead
1155
+ si as LayoutProvider,
1156
+ li as WISTRON_PRIMARY_COLOR,
1157
+ ci as WISTRON_SECONDARY_COLOR,
1158
+ di as rootRouteHead
1160
1159
  };
1161
1160
  //# sourceMappingURL=index.js.map
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../src/providers/DialogsProvider.tsx","../src/providers/AuthProvider.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":["const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction hasXSS(input) {\n if (typeof input !== 'string') return false;\n\n // Common XSS attack patterns\n const xssPatterns = [/<\\s*script.*?>/i, /<\\s*\\/\\s*script\\s*>/i, /<\\s*img.*?on\\w+\\s*=/i, /<\\s*\\w+\\s*on\\w+\\s*=.*?>/i, /javascript\\s*:/i, /vbscript\\s*:/i, /expression\\s*\\(/i, /eval\\s*\\(/i, /alert\\s*\\(/i, /document\\.cookie/i, /document\\.write\\s*\\(/i, /window\\.location/i, /innerHTML/i];\n return xssPatterns.some(pattern => pattern.test(input));\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n if (opt.partitioned) str += '; Partitioned';\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, value, cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name, domain) {\n this.create(name, '', -1, domain);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hash = {\n name: 'hash',\n // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property\n lookup(_ref) {\n let {\n lookupHash,\n lookupFromHashIndex\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n const {\n hash\n } = window.location;\n if (hash && hash.length > 2) {\n const query = hash.substring(1);\n if (lookupHash) {\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupHash) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n if (found) return found;\n if (!found && lookupFromHashIndex > -1) {\n const language = hash.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;\n return language[index]?.replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n this.addDetector(hash);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.filter(d => d !== undefined && d !== null && !hasXSS(d)).map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","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 { MsalProvider } from \"@azure/msal-react\";\r\nimport { useNavigate } from \"@tanstack/react-router\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport { CustomNavigationClient, pca } from \"~/lib/auth/msalClient\";\r\n\r\ninterface ProvidersProps {\r\n children: ReactNode;\r\n}\r\n\r\nexport const AuthProvider: FC<ProvidersProps> = ({ children }) => {\r\n const navigate = useNavigate();\r\n const navigationClient = new CustomNavigationClient(navigate);\r\n pca.setNavigationClient(navigationClient);\r\n\r\n return (\r\n <MsalProvider instance={pca}>\r\n {children}\r\n </MsalProvider >\r\n );\r\n};\r\n","import { Chip, Stack, Typography } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nexport const AppTitle: FC = () => {\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 <Chip size=\"small\" label=\"TEST\" color=\"info\" />\r\n </Stack>\r\n );\r\n};\r\n","import ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\r\nimport { Collapse, Grow } from \"@mui/material\";\r\nimport Avatar from \"@mui/material/Avatar\";\r\nimport Box from \"@mui/material/Box\";\r\nimport ListItem from \"@mui/material/ListItem\";\r\nimport ListItemButton from \"@mui/material/ListItemButton\";\r\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\r\nimport ListItemText from \"@mui/material/ListItemText\";\r\nimport Paper from \"@mui/material/Paper\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { MINI_WIDTH } from \"./NavigationRail\";\r\nimport type { NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { RouterListItemButton } from \"~/components/router/RouterListItemButton\";\r\n\r\nconst ICON_SIZE = 34;\r\n\r\nconst StyledNavButton = styled(ListItemButton)(({ theme }) => ({\r\n borderRadius: 8,\r\n \"&.Mui-selected\": {\r\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiTouchRipple-child\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.action.active,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.action.active,\r\n },\r\n}));\r\n\r\nconst StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({\r\n borderRadius: 8,\r\n \"&.Mui-selected\": {\r\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiTouchRipple-child\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.action.active,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.action.active,\r\n },\r\n}));\r\n\r\nconst IconOrAvatar: FC<{ item: NavigationPageItem; collapsed?: boolean }> = ({ item, collapsed }) => {\r\n if (item.icon || collapsed) {\r\n return (\r\n <Box sx={collapsed ? { position: \"absolute\", left: \"50%\", top: \"calc(50% - 6px)\", transform: \"translate(-50%, -50%)\" } : {}}>\r\n <ListItemIcon sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\", minWidth: ICON_SIZE }}>\r\n {item.icon ?? null}\r\n {!item.icon && collapsed ? (\r\n <Avatar sx={{ width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }}>\r\n {item.title\r\n .split(\" \")\r\n .slice(0, 2)\r\n .map((word) => word.charAt(0).toUpperCase())}\r\n </Avatar>\r\n ) : null}\r\n </ListItemIcon>\r\n {collapsed ? (\r\n <Typography\r\n variant=\"caption\"\r\n sx={{\r\n position: \"absolute\",\r\n bottom: -18,\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n fontSize: 10,\r\n fontWeight: 500,\r\n textAlign: \"center\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n maxWidth: MINI_WIDTH - 28,\r\n }}\r\n >\r\n {item.title}\r\n </Typography>\r\n ) : null}\r\n </Box>\r\n );\r\n }\r\n return null;\r\n};\r\n\r\ninterface MiniPopoverProps {\r\n open: boolean;\r\n children?: ReactNode;\r\n}\r\n\r\nconst MiniPopover: FC<MiniPopoverProps> = ({ open, children }) => (\r\n <Grow in={open}>\r\n <Box\r\n sx={{\r\n position: \"fixed\",\r\n left: MINI_WIDTH,\r\n pl: \"2px\",\r\n pb: \"10px\",\r\n }}\r\n >\r\n <Paper\r\n sx={{\r\n pt: 0.5,\r\n pb: 0.5,\r\n transform: \"translateY(calc(50% - 30px))\",\r\n maxHeight: \"min(calc(100vh - 100px), 560px)\",\r\n overflowY: \"auto\",\r\n overscrollBehavior: \"contain\",\r\n }}\r\n >\r\n {children}\r\n </Paper>\r\n </Box>\r\n </Grow>\r\n);\r\n\r\ninterface NavigationListItemProps {\r\n item: NavigationPageItem;\r\n isOpen?: boolean;\r\n selected?: boolean;\r\n disabled?: boolean;\r\n collapsed?: boolean;\r\n isSidebarFullyExpanded?: boolean;\r\n isSidebarFullyCollapsed?: boolean;\r\n onClick?: (item: NavigationPageItem) => void;\r\n renderNested?: (sub: Array<NavigationItem>) => ReactNode;\r\n onClose?: () => void;\r\n}\r\n\r\nexport const NavigationListItem: FC<NavigationListItemProps> = ({ item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, onClick, renderNested, onClose }) => {\r\n const [hoveredMiniItemId, setHoveredMiniItemId] = useState<string | null>(null);\r\n const itemId = `${item.to ?? item.title}`;\r\n\r\n const chevronSx: SxProps<Theme> = (theme: Theme) => {\r\n if (collapsed && isSidebarFullyCollapsed && item.children) {\r\n return {\r\n fontSize: 18,\r\n position: \"absolute\",\r\n top: \"41.5%\",\r\n right: \"2px\",\r\n transform: \"translateY(-50%) rotate(-90deg)\",\r\n };\r\n }\r\n if (!collapsed && isSidebarFullyExpanded && item.children) {\r\n return {\r\n ml: 0.5,\r\n transform: `rotate(${isOpen ? 0 : -90}deg)`,\r\n transition: theme.transitions.create(\"transform\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: 100,\r\n }),\r\n };\r\n }\r\n return { display: \"none\" };\r\n };\r\n\r\n const shouldJustExpand = item.children && !collapsed;\r\n\r\n const buttonProps = {\r\n selected,\r\n disabled,\r\n sx: { px: 1.4, height: collapsed ? 60 : 48 }\r\n };\r\n\r\n const buttonContent = (\r\n <>\r\n <IconOrAvatar item={item} collapsed={collapsed} />\r\n {!collapsed && (\r\n <ListItemText\r\n primary={item.title}\r\n slotProps={{ primary: { noWrap: true, title: item.title } }}\r\n sx={{ ml: 1.2, flex: 1, minWidth: 0, \"& .MuiTypography-root\": { whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" } }}\r\n />\r\n )}\r\n {item.children ? <ExpandMoreIcon sx={chevronSx} /> : null}\r\n </>\r\n );\r\n\r\n const listItem = (\r\n <ListItem\r\n {...(item.children && collapsed\r\n ? {\r\n onMouseEnter: () => {\r\n setHoveredMiniItemId(itemId);\r\n },\r\n onMouseLeave: () => {\r\n setHoveredMiniItemId(null);\r\n },\r\n }\r\n : {})}\r\n sx={{ py: 0, px: 1, overflowX: \"hidden\" }}\r\n >\r\n {shouldJustExpand ? (\r\n <StyledNavButton {...buttonProps} onClick={() => onClick?.(item)}>\r\n {buttonContent}\r\n </StyledNavButton>\r\n ) : (\r\n <StyledRouterButton\r\n {...buttonProps}\r\n to={item.to}\r\n href={item.href}\r\n params={item.params as any}\r\n search={item.search as any}\r\n onClick={onClose}\r\n >\r\n {buttonContent}\r\n </StyledRouterButton>\r\n )}\r\n\r\n {item.children && collapsed ? (\r\n <MiniPopover open={itemId === hoveredMiniItemId}>\r\n {renderNested?.(item.children)}\r\n </MiniPopover>\r\n ) : null}\r\n </ListItem>\r\n );\r\n\r\n return (\r\n <Fragment key={item.to}>\r\n {listItem}\r\n {item.children && !collapsed ? (\r\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\r\n {renderNested?.(item.children)}\r\n </Collapse>\r\n ) : null}\r\n </Fragment>\r\n );\r\n};\r\n","import Divider from \"@mui/material/Divider\";\r\nimport List from \"@mui/material/List\";\r\nimport ListSubheader from \"@mui/material/ListSubheader\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport { NavigationListItem } from \"./NavigationListItem\";\r\nimport { MINI_WIDTH } from \"./NavigationRail\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { Navigation, NavigationDivider, NavigationHeader, NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\r\n\r\nexport const isPageItem = (item: NavigationItem): item is NavigationPageItem => !(\"kind\" in item);\r\nexport const isDivider = (item: NavigationItem): item is NavigationDivider => \"kind\" in item && item.kind === \"divider\";\r\nexport const isHeader = (item: NavigationItem): item is NavigationHeader => \"kind\" in item && item.kind === \"header\";\r\n\r\ninterface NavigationListProps {\r\n subNavigation: Navigation;\r\n depth?: number;\r\n collapsed?: boolean;\r\n isPopover?: boolean;\r\n isSidebarFullyExpanded?: boolean;\r\n isSidebarFullyCollapsed?: boolean;\r\n expandedWidth: number | string;\r\n renderItem?: (item: NavigationPageItem, context: { collapsed: boolean }) => ReactNode;\r\n activePath?: string | null;\r\n onNavigate: (item: NavigationPageItem) => void;\r\n onClose?: () => void;\r\n}\r\n\r\nexport const NavigationList: FC<NavigationListProps> = ({ subNavigation, depth = 0, collapsed, isPopover, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, expandedWidth, renderItem, activePath, onNavigate, onClose }) => {\r\n const [openKeys, setOpenKeys] = useState<Array<string>>([]);\r\n\r\n useEffect(() => {\r\n if (collapsed) setOpenKeys([]);\r\n }, [collapsed]);\r\n\r\n const toggleKey = (key: string) =>\r\n setOpenKeys((previous) => (previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]));\r\n\r\n const renderNested = (children: Array<NavigationItem>) => <NavigationList\r\n subNavigation={children}\r\n depth={depth + 1}\r\n isPopover={collapsed}\r\n expandedWidth={expandedWidth}\r\n activePath={activePath}\r\n onNavigate={onNavigate}\r\n onClose={onClose}\r\n />;\r\n\r\n const filteredNavigation = subNavigation.filter(nav => !nav.hidden);\r\n\r\n return (\r\n <List\r\n sx={{\r\n padding: 0,\r\n mt: isPopover && depth === 1 ? 0.5 : 0,\r\n mb: depth === 0 && !isPopover ? 4 : 0.5,\r\n pl: (isPopover ? 1 : 2) * (isPopover ? depth - 1 : depth),\r\n minWidth: isPopover && depth === 1 ? 240 : \"auto\",\r\n width: collapsed ? MINI_WIDTH : \"auto\",\r\n }}\r\n >\r\n {filteredNavigation.map((navItem, index) => {\r\n if (isHeader(navItem)) {\r\n return (\r\n <ListSubheader\r\n key={`subheader-${depth}-${index}`}\r\n sx={{\r\n fontSize: 12,\r\n fontWeight: \"700\",\r\n height: collapsed ? 0 : 40,\r\n px: 2,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n zIndex: 2,\r\n bgcolor: \"transparent\",\r\n position: \"static\"\r\n }}\r\n >\r\n {navItem.title}\r\n </ListSubheader>\r\n );\r\n }\r\n\r\n if (isDivider(navItem)) {\r\n const nextItem = filteredNavigation[index + 1];\r\n return (\r\n <li key={`divider-${depth}-${index}`}>\r\n <Divider sx={{ mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 }} />\r\n </li>\r\n );\r\n }\r\n\r\n if (!isPageItem(navItem)) return null;\r\n\r\n const key = `item-${depth}-${index}`;\r\n const uniqueItemKey = `${depth}-${index}-${navItem.title}`;\r\n\r\n if (renderItem) return <Fragment key={key}>{renderItem(navItem, { collapsed: !!collapsed })}</Fragment>;\r\n\r\n return <NavigationListItem\r\n key={key}\r\n item={navItem}\r\n isOpen={openKeys.includes(uniqueItemKey)}\r\n selected={activePath === navItem.to}\r\n collapsed={collapsed}\r\n isSidebarFullyExpanded={isSidebarFullyExpanded}\r\n isSidebarFullyCollapsed={isSidebarFullyCollapsed}\r\n onClick={navItem.children && !collapsed ? () => toggleKey(uniqueItemKey) : undefined}\r\n renderNested={renderNested}\r\n onClose={onClose}\r\n />;\r\n })}\r\n </List>\r\n );\r\n};\r\n","import { useMediaQuery } from \"@mui/material\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Drawer from \"@mui/material/Drawer\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport { useNavigate, useRouterState } from \"@tanstack/react-router\";\r\nimport { NavigationList, isHeader } from \"./NavigationList\";\r\nimport type { FC } from \"react\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\n\r\nexport const MINI_WIDTH = 84;\r\nexport const EXPANDED_WIDTH = 320;\r\nexport const TOOLBAR_HEIGHT = 64;\r\n\r\ninterface NavigationRailProps {\r\n navigation: Navigation;\r\n expanded: boolean;\r\n setExpanded: (open: boolean) => void;\r\n}\r\n\r\nexport const NavigationRail: FC<NavigationRailProps> = ({ navigation, expanded, setExpanded }) => {\r\n const navigate = useNavigate();\r\n const routerState = useRouterState();\r\n const theme = useTheme();\r\n const showPermanent = useMediaQuery(theme.breakpoints.up(\"sm\"));\r\n\r\n const drawerContent = (collapsed: boolean) => (\r\n <Box\r\n component=\"nav\"\r\n sx={{\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n overflow: \"auto\",\r\n scrollbarGutter: collapsed ? \"stable\" : \"auto\",\r\n overflowX: \"hidden\",\r\n pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2,\r\n }}\r\n >\r\n <NavigationList\r\n subNavigation={navigation}\r\n collapsed={collapsed}\r\n isSidebarFullyExpanded={expanded}\r\n isSidebarFullyCollapsed={!expanded}\r\n expandedWidth={EXPANDED_WIDTH}\r\n activePath={routerState.location.pathname}\r\n onNavigate={navigate}\r\n onClose={!showPermanent ? () => setExpanded(false) : undefined}\r\n />\r\n </Box>\r\n );\r\n\r\n if (showPermanent)\r\n return (\r\n <Drawer\r\n variant=\"permanent\"\r\n sx={{\r\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\r\n [\"& .MuiDrawer-paper\"]: {\r\n position: \"absolute\",\r\n top: `${TOOLBAR_HEIGHT}px`,\r\n height: `calc(100% - ${TOOLBAR_HEIGHT}px)`,\r\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\r\n borderTop: \"1px solid\",\r\n borderColor: \"var(--mui-palette-divider)\",\r\n },\r\n }}\r\n >\r\n {drawerContent(!expanded)}\r\n </Drawer>\r\n );\r\n\r\n return (\r\n <Drawer\r\n open={expanded}\r\n onClose={() => setExpanded(false)}\r\n sx={{\r\n \"& .MuiDrawer-paper\": {\r\n width: \"min(280px, calc(100vw - 56px))\",\r\n },\r\n }}\r\n >\r\n {drawerContent(false)}\r\n </Drawer>\r\n );\r\n};\r\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 { 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 { getUser } from \"~/lib/auth/msalClient\";\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 = getUser();\r\n\r\n const { data: userPhoto } = useQuery(graphQueries.sessionUserPhoto());\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: \"light\" | \"dark\" | \"system\"; 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} />\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 {userPhoto ?\r\n <Avatar src={userPhoto} sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n :\r\n <AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n }\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 {isAuthenticated ?\r\n <Fragment>\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\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 </Fragment>\r\n :\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 }\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 { InteractionType } from \"@azure/msal-browser\";\r\nimport { AuthenticatedTemplate, useMsalAuthentication } 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 type { FC, ReactNode } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { Platform } from \"~/lib/utils\";\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 children: ReactNode;\r\n}\r\n\r\nexport const Layout: FC<LayoutProps> = (props) => {\r\n useMsalAuthentication(InteractionType.Redirect);\r\n const [navigationOpen, setNavigationOpen] = useState(getInitialNavigationOpen);\r\n\r\n return (\r\n <AuthenticatedTemplate>\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 {props.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 {props.navigation &&\r\n <NavigationRail\r\n navigation={props.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 {props.children}\r\n </Box>\r\n </Box>\r\n </Box>\r\n </AuthenticatedTemplate>\r\n );\r\n};\r\n","import { 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 { useEffect, useEffectEvent } from \"react\";\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 { AuthProvider } from \"./AuthProvider\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { Theme } from \"@mui/material\";\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 });\r\n\r\ninterface ProvidersProps {\r\n navigation?: Navigation;\r\n theme: Theme;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LayoutProvider: FC<ProvidersProps> = ({ navigation, theme, children }) => {\r\n const languageChangedHandler = useEffectEvent(() => {\r\n z.config(z.core.locales[i18n.language as keyof typeof z.core.locales]());\r\n dayjs.locale(i18n.language);\r\n });\r\n\r\n useEffect(() => {\r\n languageChangedHandler();\r\n\r\n i18n.on(\"languageChanged\", languageChangedHandler);\r\n return () => { i18n.off(\"languageChanged\", languageChangedHandler); };\r\n }, []);\r\n\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <LocalizationProvider key={i18n.language} dateAdapter={AdapterDayjs} adapterLocale={i18n.language}>\r\n <DialogsProvider>\r\n <AuthProvider>\r\n <Layout navigation={navigation}>\r\n {children}\r\n </Layout>\r\n </AuthProvider>\r\n </DialogsProvider>\r\n </LocalizationProvider>\r\n </ThemeProvider>\r\n );\r\n};\r\n"],"names":["slice","forEach","defaults","obj","source","prop","hasXSS","input","pattern","fieldContentRegExp","serializeCookie","name","val","opt","value","str","maxAge","cookie","minutes","domain","cookieOptions","nameEQ","ca","i","c","cookie$1","_ref","lookupCookie","lng","_ref2","cookieMinutes","cookieDomain","querystring","lookupQuerystring","found","search","params","pos","hash","lookupHash","lookupFromHashIndex","query","language","hasLocalStorageSupport","localStorageAvailable","testKey","localStorage","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","options","languages","userLanguage","htmlTag","internalHtmlTag","path","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","internalLookupFromSubdomainIndex","canCookies","order","getDefaults","l","Browser","services","i18nOptions","detector","detectionOrder","detected","detectorName","lookup","d","caches","cacheName","initReactI18next","instance","setDefaults","setI18n","DialogsProvider","children","stack","setStack","useState","keyPrefix","useId","nextId","useRef","dialogMetadata","WeakMap","requestDialog","useEventCallback","Component","payload","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","AuthProvider","t0","$","_c","navigate","useNavigate","navigationClient","CustomNavigationClient","pca","setNavigationClient","t1","jsx","MsalProvider","AppTitle","Symbol","for","Stack","Typography","clientEnv","VITE_APP_TITLE","Chip","ICON_SIZE","StyledNavButton","styled","ListItemButton","theme","borderRadius","color","vars","palette","primary","dark","backgroundColor","action","active","StyledRouterButton","RouterListItemButton","IconOrAvatar","item","collapsed","icon","position","left","top","transform","t2","display","alignItems","justifyContent","minWidth","t3","t4","title","Avatar","width","height","fontSize","split","_temp","t5","ListItemIcon","t6","bottom","fontWeight","textAlign","whiteSpace","overflow","textOverflow","maxWidth","MINI_WIDTH","t7","Box","MiniPopover","pl","pb","pt","maxHeight","overflowY","overscrollBehavior","Paper","Grow","NavigationListItem","isOpen","selected","disabled","isSidebarFullyExpanded","isSidebarFullyCollapsed","onClick","renderNested","undefined","hoveredMiniItemId","setHoveredMiniItemId","itemId","to","right","ml","transition","transitions","create","easing","sharp","duration","chevronSx","shouldJustExpand","px","sx","buttonProps","ListItemText","noWrap","flex","t8","ExpandMoreIcon","t9","Fragment","buttonContent","t10","onMouseEnter","onMouseLeave","t11","py","overflowX","t12","href","t13","t14","ListItem","listItem","t15","Collapse","t16","word","charAt","toUpperCase","isPageItem","isDivider","kind","isHeader","NavigationList","subNavigation","depth","isPopover","expandedWidth","renderItem","activePath","onNavigate","openKeys","setOpenKeys","useEffect","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","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","url","responseType","then","response","data","staleTime","Infinity","gcTime","select","URL","createObjectURL","capitalize","ToolbarAccount","anchorElement","setAnchorElement","tab","setTab","Boolean","t","i18n","useTranslation","mode","setMode","useColorScheme","useMsal","isAuthenticated","useIsAuthenticated","getUser","user","userPhoto","useQuery","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","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","AccountCircle","employeeId","department","logoutRedirect","postLogoutRedirectUri","Logout","loginRedirect","Login","Menu","NAVIGATION_STORAGE_KEY","getInitialNavigationOpen","Platform","isWindows","isMacOS","getItem","saveNavigationState","setItem","String","DrawerHeader","spacing","mixins","toolbar","Layout","props","useMsalAuthentication","InteractionType","Redirect","navigationOpen","setNavigationOpen","InitColorSchemeScript","CssBaseline","borderBottom","boxShadow","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","flexGrow","AuthenticatedTemplate","YEAR_IN_MINUTES","LanguageDetector","init","resources","fallbackLng","Object","keys","detection","interpolation","escapeValue","LayoutProvider","languageChangedHandler","useEffectEvent","on","off","LocalizationProvider","AdapterDayjs","ThemeProvider","z","core","locales","dayjs","locale"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,MAAM;AAAA,EACJ,OAAAA;AAAA,EACA,SAAAC;AACF,IAAI,CAAA;AACJ,SAASC,GAASC,GAAK;AACrB,SAAAF,GAAQ,KAAKD,GAAM,KAAK,WAAW,CAAC,GAAG,CAAAI,MAAU;AAC/C,QAAIA;AACF,iBAAWC,KAAQD;AACjB,QAAID,EAAIE,CAAI,MAAM,WAAWF,EAAIE,CAAI,IAAID,EAAOC,CAAI;AAAA,EAG1D,CAAC,GACMF;AACT;AACA,SAASG,GAAOC,GAAO;AACrB,SAAI,OAAOA,KAAU,WAAiB,KAGlB,CAAC,mBAAmB,wBAAwB,wBAAwB,4BAA4B,mBAAmB,iBAAiB,oBAAoB,cAAc,eAAe,qBAAqB,yBAAyB,qBAAqB,YAAY,EACrQ,KAAK,CAAAC,MAAWA,EAAQ,KAAKD,CAAK,CAAC;AACxD;AAGA,MAAME,KAAqB,yCACrBC,KAAkB,SAAUC,GAAMC,GAAK;AAI3C,QAAMC,IAHQ,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,IAChF,MAAM;AAAA,EACV,GAEQC,IAAQ,mBAAmBF,CAAG;AACpC,MAAIG,IAAM,GAAGJ,CAAI,IAAIG,CAAK;AAC1B,MAAID,EAAI,SAAS,GAAG;AAClB,UAAMG,IAASH,EAAI,SAAS;AAC5B,QAAI,OAAO,MAAMG,CAAM,EAAG,OAAM,IAAI,MAAM,2BAA2B;AACrE,IAAAD,KAAO,aAAa,KAAK,MAAMC,CAAM,CAAC;AAAA,EACxC;AACA,MAAIH,EAAI,QAAQ;AACd,QAAI,CAACJ,GAAmB,KAAKI,EAAI,MAAM;AACrC,YAAM,IAAI,UAAU,0BAA0B;AAEhD,IAAAE,KAAO,YAAYF,EAAI,MAAM;AAAA,EAC/B;AACA,MAAIA,EAAI,MAAM;AACZ,QAAI,CAACJ,GAAmB,KAAKI,EAAI,IAAI;AACnC,YAAM,IAAI,UAAU,wBAAwB;AAE9C,IAAAE,KAAO,UAAUF,EAAI,IAAI;AAAA,EAC3B;AACA,MAAIA,EAAI,SAAS;AACf,QAAI,OAAOA,EAAI,QAAQ,eAAgB;AACrC,YAAM,IAAI,UAAU,2BAA2B;AAEjD,IAAAE,KAAO,aAAaF,EAAI,QAAQ,YAAW,CAAE;AAAA,EAC/C;AAGA,MAFIA,EAAI,aAAUE,KAAO,eACrBF,EAAI,WAAQE,KAAO,aACnBF,EAAI;AAEN,YADiB,OAAOA,EAAI,YAAa,WAAWA,EAAI,SAAS,gBAAgBA,EAAI,UACrE;AAAA,MACd,KAAK;AACH,QAAAE,KAAO;AACP;AAAA,MACF,KAAK;AACH,QAAAA,KAAO;AACP;AAAA,MACF,KAAK;AACH,QAAAA,KAAO;AACP;AAAA,MACF,KAAK;AACH,QAAAA,KAAO;AACP;AAAA,MACF;AACE,cAAM,IAAI,UAAU,4BAA4B;AAAA,IACxD;AAEE,SAAIF,EAAI,gBAAaE,KAAO,kBACrBA;AACT,GACME,KAAS;AAAA,EACb,OAAON,GAAMG,GAAOI,GAASC,GAAQ;AACnC,QAAIC,IAAgB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MACtF,MAAM;AAAA,MACN,UAAU;AAAA,IAChB;AACI,IAAIF,MACFE,EAAc,UAAU,oBAAI,KAAI,GAChCA,EAAc,QAAQ,QAAQA,EAAc,QAAQ,YAAYF,IAAU,KAAK,GAAI,IAEjFC,MAAQC,EAAc,SAASD,IACnC,SAAS,SAAST,GAAgBC,GAAMG,GAAOM,CAAa;AAAA,EAC9D;AAAA,EACA,KAAKT,GAAM;AACT,UAAMU,IAAS,GAAGV,CAAI,KAChBW,IAAK,SAAS,OAAO,MAAM,GAAG;AACpC,aAASC,IAAI,GAAGA,IAAID,EAAG,QAAQC,KAAK;AAClC,UAAIC,IAAIF,EAAGC,CAAC;AACZ,aAAOC,EAAE,OAAO,CAAC,MAAM,MAAK,CAAAA,IAAIA,EAAE,UAAU,GAAGA,EAAE,MAAM;AACvD,UAAIA,EAAE,QAAQH,CAAM,MAAM,EAAG,QAAOG,EAAE,UAAUH,EAAO,QAAQG,EAAE,MAAM;AAAA,IACzE;AACA,WAAO;AAAA,EACT;AAAA,EACA,OAAOb,GAAMQ,GAAQ;AACnB,SAAK,OAAOR,GAAM,IAAI,IAAIQ,CAAM;AAAA,EAClC;AACF;AACA,IAAIM,KAAW;AAAA,EACb,MAAM;AAAA;AAAA,EAEN,OAAOC,GAAM;AACX,QAAI;AAAA,MACF,cAAAC;AAAA,IACN,IAAQD;AACJ,QAAIC,KAAgB,OAAO,WAAa;AACtC,aAAOV,GAAO,KAAKU,CAAY,KAAK;AAAA,EAGxC;AAAA;AAAA,EAEA,kBAAkBC,GAAKC,GAAO;AAC5B,QAAI;AAAA,MACF,cAAAF;AAAA,MACA,eAAAG;AAAA,MACA,cAAAC;AAAA,MACA,eAAAX;AAAA,IACN,IAAQS;AACJ,IAAIF,KAAgB,OAAO,WAAa,OACtCV,GAAO,OAAOU,GAAcC,GAAKE,GAAeC,GAAcX,CAAa;AAAA,EAE/E;AACF,GAEIY,KAAc;AAAA,EAChB,MAAM;AAAA;AAAA,EAEN,OAAON,GAAM;AACX,QAAI;AAAA,MACF,mBAAAO;AAAA,IACN,IAAQP,GACAQ;AACJ,QAAI,OAAO,SAAW,KAAa;AACjC,UAAI;AAAA,QACF,QAAAC;AAAA,MACR,IAAU,OAAO;AACX,MAAI,CAAC,OAAO,SAAS,UAAU,OAAO,SAAS,MAAM,QAAQ,GAAG,IAAI,OAClEA,IAAS,OAAO,SAAS,KAAK,UAAU,OAAO,SAAS,KAAK,QAAQ,GAAG,CAAC;AAG3E,YAAMC,IADQD,EAAO,UAAU,CAAC,EACX,MAAM,GAAG;AAC9B,eAASZ,IAAI,GAAGA,IAAIa,EAAO,QAAQb,KAAK;AACtC,cAAMc,IAAMD,EAAOb,CAAC,EAAE,QAAQ,GAAG;AACjC,QAAIc,IAAM,KACID,EAAOb,CAAC,EAAE,UAAU,GAAGc,CAAG,MAC1BJ,MACVC,IAAQE,EAAOb,CAAC,EAAE,UAAUc,IAAM,CAAC;AAAA,MAGzC;AAAA,IACF;AACA,WAAOH;AAAA,EACT;AACF,GAEII,KAAO;AAAA,EACT,MAAM;AAAA;AAAA,EAEN,OAAOZ,GAAM;AACX,QAAI;AAAA,MACF,YAAAa;AAAA,MACA,qBAAAC;AAAA,IACN,IAAQd,GACAQ;AACJ,QAAI,OAAO,SAAW,KAAa;AACjC,YAAM;AAAA,QACJ,MAAAI;AAAA,MACR,IAAU,OAAO;AACX,UAAIA,KAAQA,EAAK,SAAS,GAAG;AAC3B,cAAMG,IAAQH,EAAK,UAAU,CAAC;AAC9B,YAAIC,GAAY;AACd,gBAAMH,IAASK,EAAM,MAAM,GAAG;AAC9B,mBAASlB,IAAI,GAAGA,IAAIa,EAAO,QAAQb,KAAK;AACtC,kBAAMc,IAAMD,EAAOb,CAAC,EAAE,QAAQ,GAAG;AACjC,YAAIc,IAAM,KACID,EAAOb,CAAC,EAAE,UAAU,GAAGc,CAAG,MAC1BE,MACVL,IAAQE,EAAOb,CAAC,EAAE,UAAUc,IAAM,CAAC;AAAA,UAGzC;AAAA,QACF;AACA,YAAIH,EAAO,QAAOA;AAClB,YAAI,CAACA,KAASM,IAAsB,IAAI;AACtC,gBAAME,IAAWJ,EAAK,MAAM,iBAAiB;AAC7C,iBAAK,MAAM,QAAQI,CAAQ,IAEpBA,EADO,OAAOF,KAAwB,WAAWA,IAAsB,CACzD,GAAG,QAAQ,KAAK,EAAE,IAFT;AAAA,QAGhC;AAAA,MACF;AAAA,IACF;AACA,WAAON;AAAA,EACT;AACF;AAEA,IAAIS,KAAyB;AAC7B,MAAMC,KAAwB,MAAM;AAClC,MAAID,OAA2B,KAAM,QAAOA;AAC5C,MAAI;AAEF,QADAA,KAAyB,OAAO,SAAW,OAAe,OAAO,iBAAiB,MAC9E,CAACA;AACH,aAAO;AAET,UAAME,IAAU;AAChB,WAAO,aAAa,QAAQA,GAAS,KAAK,GAC1C,OAAO,aAAa,WAAWA,CAAO;AAAA,EACxC,QAAY;AACV,IAAAF,KAAyB;AAAA,EAC3B;AACA,SAAOA;AACT;AACA,IAAIG,KAAe;AAAA,EACjB,MAAM;AAAA;AAAA,EAEN,OAAOpB,GAAM;AACX,QAAI;AAAA,MACF,oBAAAqB;AAAA,IACN,IAAQrB;AACJ,QAAIqB,KAAsBH;AACxB,aAAO,OAAO,aAAa,QAAQG,CAAkB,KAAK;AAAA,EAG9D;AAAA;AAAA,EAEA,kBAAkBnB,GAAKC,GAAO;AAC5B,QAAI;AAAA,MACF,oBAAAkB;AAAA,IACN,IAAQlB;AACJ,IAAIkB,KAAsBH,QACxB,OAAO,aAAa,QAAQG,GAAoBnB,CAAG;AAAA,EAEvD;AACF;AAEA,IAAIoB,KAA2B;AAC/B,MAAMC,KAA0B,MAAM;AACpC,MAAID,OAA6B,KAAM,QAAOA;AAC9C,MAAI;AAEF,QADAA,KAA2B,OAAO,SAAW,OAAe,OAAO,mBAAmB,MAClF,CAACA;AACH,aAAO;AAET,UAAMH,IAAU;AAChB,WAAO,eAAe,QAAQA,GAAS,KAAK,GAC5C,OAAO,eAAe,WAAWA,CAAO;AAAA,EAC1C,QAAY;AACV,IAAAG,KAA2B;AAAA,EAC7B;AACA,SAAOA;AACT;AACA,IAAIE,KAAiB;AAAA,EACnB,MAAM;AAAA,EACN,OAAOxB,GAAM;AACX,QAAI;AAAA,MACF,sBAAAyB;AAAA,IACN,IAAQzB;AACJ,QAAIyB,KAAwBF;AAC1B,aAAO,OAAO,eAAe,QAAQE,CAAoB,KAAK;AAAA,EAGlE;AAAA,EACA,kBAAkBvB,GAAKC,GAAO;AAC5B,QAAI;AAAA,MACF,sBAAAsB;AAAA,IACN,IAAQtB;AACJ,IAAIsB,KAAwBF,QAC1B,OAAO,eAAe,QAAQE,GAAsBvB,CAAG;AAAA,EAE3D;AACF,GAEIwB,KAAc;AAAA,EAChB,MAAM;AAAA,EACN,OAAOC,GAAS;AACd,UAAMnB,IAAQ,CAAA;AACd,QAAI,OAAO,YAAc,KAAa;AACpC,YAAM;AAAA,QACJ,WAAAoB;AAAA,QACA,cAAAC;AAAA,QACA,UAAAb;AAAA,MACR,IAAU;AACJ,UAAIY;AAEF,iBAAS/B,IAAI,GAAGA,IAAI+B,EAAU,QAAQ/B;AACpC,UAAAW,EAAM,KAAKoB,EAAU/B,CAAC,CAAC;AAG3B,MAAIgC,KACFrB,EAAM,KAAKqB,CAAY,GAErBb,KACFR,EAAM,KAAKQ,CAAQ;AAAA,IAEvB;AACA,WAAOR,EAAM,SAAS,IAAIA,IAAQ;AAAA,EACpC;AACF,GAEIsB,KAAU;AAAA,EACZ,MAAM;AAAA;AAAA,EAEN,OAAO9B,GAAM;AACX,QAAI;AAAA,MACF,SAAA8B;AAAA,IACN,IAAQ9B,GACAQ;AACJ,UAAMuB,IAAkBD,MAAY,OAAO,WAAa,MAAc,SAAS,kBAAkB;AACjG,WAAIC,KAAmB,OAAOA,EAAgB,gBAAiB,eAC7DvB,IAAQuB,EAAgB,aAAa,MAAM,IAEtCvB;AAAA,EACT;AACF,GAEIwB,KAAO;AAAA,EACT,MAAM;AAAA;AAAA,EAEN,OAAOhC,GAAM;AACX,QAAI;AAAA,MACF,qBAAAiC;AAAA,IACN,IAAQjC;AACJ,QAAI,OAAO,SAAW,IAAa;AACnC,UAAMgB,IAAW,OAAO,SAAS,SAAS,MAAM,iBAAiB;AACjE,WAAK,MAAM,QAAQA,CAAQ,IAEpBA,EADO,OAAOiB,KAAwB,WAAWA,IAAsB,CACzD,GAAG,QAAQ,KAAK,EAAE,IAFT;AAAA,EAGhC;AACF,GAEIC,KAAY;AAAA,EACd,MAAM;AAAA,EACN,OAAOlC,GAAM;AACX,QAAI;AAAA,MACF,0BAAAmC;AAAA,IACN,IAAQnC;AAEJ,UAAMoC,IAAmC,OAAOD,KAA6B,WAAWA,IAA2B,IAAI,GAIjHnB,IAAW,OAAO,SAAW,OAAe,OAAO,UAAU,UAAU,MAAM,wDAAwD;AAG3I,QAAKA;AAEL,aAAOA,EAASoB,CAAgC;AAAA,EAClD;AACF;AAGA,IAAIC,KAAa;AACjB,IAAI;AAEF,WAAS,QACTA,KAAa;AAEf,QAAY;AAAC;AACb,MAAMC,KAAQ,CAAC,eAAe,UAAU,gBAAgB,kBAAkB,aAAa,SAAS;AAC3FD,MAAYC,GAAM,OAAO,GAAG,CAAC;AAClC,MAAMC,KAAc,OAAO;AAAA,EACzB,OAAAD;AAAA,EACA,mBAAmB;AAAA,EACnB,cAAc;AAAA,EACd,oBAAoB;AAAA,EACpB,sBAAsB;AAAA;AAAA,EAEtB,QAAQ,CAAC,cAAc;AAAA,EACvB,iBAAiB,CAAC,QAAQ;AAAA;AAAA;AAAA,EAI1B,yBAAyB,CAAAE,MAAKA;AAChC;AACA,MAAMC,GAAQ;AAAA,EACZ,YAAYC,GAAU;AACpB,QAAIf,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AAClF,SAAK,OAAO,oBACZ,KAAK,YAAY,CAAA,GACjB,KAAK,KAAKe,GAAUf,CAAO;AAAA,EAC7B;AAAA,EACA,OAAO;AACL,QAAIe,IAAW,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI;AAAA,MACjF,eAAe,CAAA;AAAA,IACrB,GACQf,IAAU,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA,GAC9EgB,IAAc,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,CAAA;AACtF,SAAK,WAAWD,GAChB,KAAK,UAAUlE,GAASmD,GAAS,KAAK,WAAW,CAAA,GAAIY,IAAa,GAC9D,OAAO,KAAK,QAAQ,2BAA4B,YAAY,KAAK,QAAQ,wBAAwB,QAAQ,OAAO,IAAI,OACtH,KAAK,QAAQ,0BAA0B,CAAAC,MAAKA,EAAE,QAAQ,KAAK,GAAG,IAI5D,KAAK,QAAQ,uBAAoB,KAAK,QAAQ,sBAAsB,KAAK,QAAQ,qBACrF,KAAK,cAAcG,GACnB,KAAK,YAAY5C,EAAQ,GACzB,KAAK,YAAYO,EAAW,GAC5B,KAAK,YAAYc,EAAY,GAC7B,KAAK,YAAYI,EAAc,GAC/B,KAAK,YAAYE,EAAW,GAC5B,KAAK,YAAYI,EAAO,GACxB,KAAK,YAAYE,EAAI,GACrB,KAAK,YAAYE,EAAS,GAC1B,KAAK,YAAYtB,EAAI;AAAA,EACvB;AAAA,EACA,YAAYgC,GAAU;AACpB,gBAAK,UAAUA,EAAS,IAAI,IAAIA,GACzB;AAAA,EACT;AAAA,EACA,SAAS;AACP,QAAIC,IAAiB,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,KAAK,QAAQ,OAClGC,IAAW,CAAA;AASf,WARAD,EAAe,QAAQ,CAAAE,MAAgB;AACrC,UAAI,KAAK,UAAUA,CAAY,GAAG;AAChC,YAAIC,IAAS,KAAK,UAAUD,CAAY,EAAE,OAAO,KAAK,OAAO;AAC7D,QAAIC,KAAU,OAAOA,KAAW,aAAUA,IAAS,CAACA,CAAM,IACtDA,MAAQF,IAAWA,EAAS,OAAOE,CAAM;AAAA,MAC/C;AAAA,IACF,CAAC,GACDF,IAAWA,EAAS,OAAO,CAAAG,MAAwBA,KAAM,QAAQ,CAACrE,GAAOqE,CAAC,CAAC,EAAE,IAAI,CAAAA,MAAK,KAAK,QAAQ,wBAAwBA,CAAC,CAAC,GACzH,KAAK,YAAY,KAAK,SAAS,iBAAiB,KAAK,SAAS,cAAc,wBAA8BH,IACvGA,EAAS,SAAS,IAAIA,EAAS,CAAC,IAAI;AAAA,EAC7C;AAAA,EACA,kBAAkB5C,GAAK;AACrB,QAAIgD,IAAS,UAAU,SAAS,KAAK,UAAU,CAAC,MAAM,SAAY,UAAU,CAAC,IAAI,KAAK,QAAQ;AAC9F,IAAKA,MACD,KAAK,QAAQ,mBAAmB,KAAK,QAAQ,gBAAgB,QAAQhD,CAAG,IAAI,MAChFgD,EAAO,QAAQ,CAAAC,MAAa;AAC1B,MAAI,KAAK,UAAUA,CAAS,KAAG,KAAK,UAAUA,CAAS,EAAE,kBAAkBjD,GAAK,KAAK,OAAO;AAAA,IAC9F,CAAC;AAAA,EACH;AACF;AACAuC,GAAQ,OAAO;ACrbR,MAAMW,KAAmB;AAAA,EAC9B,MAAM;AAAA,EACN,KAAKC,GAAU;AACb,IAAAC,GAAYD,EAAS,QAAQ,KAAK,GAClCE,GAAQF,CAAQ;AAAA,EAClB;AACF;ACWA,SAASG,GAAgB;AAAA,EAAEC,UAAAA;AAAwC,GAAG;AAClE,QAAM,CAACC,GAAOC,CAAQ,IAAIC,GAA4C,CAAA,CAAE,GAClEC,IAAYC,GAAAA,GACZC,IAASC,GAAO,CAAC,GACjBC,IAAiBD,GAAO,oBAAIE,SAAmD,GAE/EC,IAAgBC,GAA6B,SAC/CC,GACAC,GACA3C,IAAsC,IACxC;AACE,UAAM;AAAA,MAAE4C,SAAAA,IAAU,YAAY;AAAA,MAAE;AAAA,IAAA,IAAM5C;AAEtC,QAAI6C;AACJ,UAAMC,IAAU,IAAIC,QAAkBC,CAAAA,MAAgB;AAClDH,MAAAA,IAAUG;AAAAA,IACd,CAAC,GAEKC,IAAM,GAAGf,CAAS,IAAIE,EAAOc,OAAO;AAC1Cd,IAAAA,EAAOc,WAAW;AAElB,UAAMC,IAAgD;AAAA,MAClDF,KAAAA;AAAAA,MACAG,MAAM;AAAA,MACNN,SAAAA;AAAAA,MACAJ,WAAAA;AAAAA,MACAC,SAAAA;AAAAA,MACAC,SAAAA;AAAAA,MACAC,SAAAA;AAAAA,IAAAA;AAGJP,WAAAA,EAAeY,QAAQG,IAAIP,GAASK,CAAQ,GAE5CnB,EAAUsB,CAAAA,MAAkB,CAAC,GAAGA,GAAeH,CAAQ,CAAC,GAEjDL;AAAAA,EACX,CAAC,GAEKS,IAAwBA,CAACC,MAAyB;AACpDxB,IAAAA,EAAUsB,OAAkBA,EAAcG,OAAQC,OAAUA,EAAMZ,YAAYU,CAAM,CAAC,GACrFlB,EAAeY,QAAQS,OAAOH,CAAM;AAAA,EACxC,GAEMI,IAAgBnB,GAAiB,SAAgCe,GAA0B;AAC7FxB,IAAAA,EAAUsB,OACNA,EAAcO,IAAKH,CAAAA,MAAWA,EAAMZ,YAAYU,IAAS;AAAA,MAAE,GAAGE;AAAAA,MAAON,MAAM;AAAA,IAAA,IAAUM,CAAM,CAC/F,GAEAI,WAAW,MAAMP,EAAsBC,CAAM,GAAG,GAAI;AAAA,EACxD,CAAC,GAEKO,IAActB,GAAiB,eACjCe,GACAQ,GACF;AACE,UAAMC,IAAe3B,EAAeY,QAAQgB,IAAIV,CAAM;AACtD,QAAI,CAACS;AACD,YAAM,IAAIE,MAAM,2BAA2B;AAG/C,QAAI;AACA,YAAMF,EAAarB,QAAQoB,CAAM;AAAA,IACrC,UAAA;AACIC,MAAAA,EAAapB,QAAQmB,CAAM,GAC3BJ,EAAcJ,CAAM;AAAA,IACxB;AAEA,WAAOA;AAAAA,EACX,CAAC;AAED,SACIY,gBAAAA,OAACC,GAAe,UAAf,EAAwB,OAAO;AAAA,IAAEjB,MAAMZ;AAAAA,IAAe8B,OAAOP;AAAAA,EAAAA,GACzDjC,UAAAA;AAAAA,IAAAA;AAAAA,IACAC,EAAM8B,IAAI,CAAC;AAAA,MAAEZ,KAAAA;AAAAA,MAAKG,MAAAA;AAAAA,MAAMV,WAAAA;AAAAA,MAAWC,SAAAA;AAAAA,MAASG,SAAAA;AAAAA,IAAAA,4BACxCyB,GAAA,EAEG,SAAS5B,GACT,MAAAS,GACA,SAAS,OAAOY,MAAW;AACvB,YAAMD,EAAYjB,GAASkB,CAAM;AAAA,IACrC,EAAA,GALKf,EAOZ;AAAA,EAAA,GACL;AAER;AC/FO,MAAMuB,KAAmCC,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,CAAA,GAAC;AAAA,IAAA7C,UAAAA;AAAAA,EAAAA,IAAA2C,GAC7CG,IAAiBC,GAAAA,GACjBC,IAAyB,IAAIC,GAAuBH,CAAQ;AAC5DI,EAAAA,GAAGC,oBAAqBH,CAAgB;AAAC,MAAAI;AAAA,SAAAR,SAAA5C,KAGrCoD,IAAAC,gBAAAA,EAAAA,IAACC,IAAA,EAAuBJ,UAAAA,IACnBlD,UAAAA,GACL,GAAgB4C,OAAA5C,GAAA4C,OAAAQ,KAAAA,IAAAR,EAAA,CAAA,GAFhBQ;AAEgB,GCbXG,KAAeA,MAAA;AAAA,QAAAX,IAAAC,EAAAA,EAAA,CAAA;AAAA,MAAAF;AAAA,SAAAC,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAEpBd,IAAAL,gBAAAA,EAAAA,KAACoB,MAAgB,WAAA,OAAiB,YAAA,UAAkB,SAAA,GAAa,UAAA,GAC7D,UAAA;AAAA,IAAAL,gBAAAA,MAAA,SAAS,KAAA,sBAAyB,KAAA,YAAmB,SAAA,QAAM;AAAA,IAC3DA,gBAAAA,EAAAA,IAACM,IAAA,EAAmB,SAAA,MAAMC,aAASC,gBAAgB;AAAA,0BAClDC,IAAA,EAAU,MAAA,SAAc,OAAA,QAAa,OAAA,OAAA,CAAM;AAAA,EAAA,GAChD,GAAQlB,OAAAD,KAAAA,IAAAC,EAAA,CAAA,GAJRD;AAIQ,GCQVoB,KAAY,IAEZC,KAAkBC,GAAOC,EAAc,EAAE,CAAC;AAAA,EAAEC,OAAAA;AAAM,OAAO;AAAA,EAC3DC,cAAc;AAAA,EACd,kBAAkB;AAAA,IACd,sEAAsE;AAAA,MAClEC,QAAQF,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAEjD,qBAAqB;AAAA,MACjBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAE3D,2BAA2B;AAAA,MACvBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,EAC3D;AAAA,EAEJ,sBAAsB;AAAA,IAClBJ,QAAQF,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAAAA,EAEhD,qBAAqB;AAAA,IACjBF,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAE9D,EAAE,GAEIC,KAAqBZ,GAAOa,EAAoB,EAAE,CAAC;AAAA,EAAEX,OAAAA;AAAM,OAAO;AAAA,EACpEC,cAAc;AAAA,EACd,kBAAkB;AAAA,IACd,sEAAsE;AAAA,MAClEC,QAAQF,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAEjD,qBAAqB;AAAA,MACjBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAE3D,2BAA2B;AAAA,MACvBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,EAC3D;AAAA,EAEJ,sBAAsB;AAAA,IAClBJ,QAAQF,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAAAA,EAEhD,qBAAqB;AAAA,IACjBF,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAE9D,EAAE,GAEIG,KAAsEpC,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,EAAA,GAAC;AAAA,IAAAmC,MAAAA;AAAAA,IAAAC,WAAAA;AAAAA,EAAAA,IAAAtC;AACzE,MAAIqC,EAAIE,QAAJD,GAAsB;AAAA,QAAA7B;AAAA,IAAAR,SAAAqC,KAET7B,IAAA6B,IAAA;AAAA,MAAAE,UAAwB;AAAA,MAAUC,MAAQ;AAAA,MAAKC,KAAO;AAAA,MAAiBC,WAAa;AAAA,IAAA,IAApF,CAAA,GAAkH1C,OAAAqC,GAAArC,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,QAAA2C;AAAA,IAAA3C,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACrG8B,IAAA;AAAA,MAAAC,SAAW;AAAA,MAAMC,YAAc;AAAA,MAAQC,gBAAkB;AAAA,MAAQC,UAAY5B;AAAAA,IAAAA,GAAWnB,OAAA2C,KAAAA,IAAA3C,EAAA,CAAA;AACrG,UAAAgD,IAAAZ,EAAIE,QAAJ;AAAiB,QAAAW;AAAA,IAAAjD,EAAA,CAAA,MAAAqC,KAAArC,EAAA,CAAA,MAAAoC,EAAAE,QAAAtC,EAAA,CAAA,MAAAoC,EAAAc,SACjBD,IAAA,CAACb,EAAIE,QAALD,IACG5B,gBAAAA,MAAC0C,MAAW,IAAA;AAAA,MAAAC,OAASjC,KAAY;AAAA,MAACkC,QAAUlC,KAAY;AAAA,MAACmC,UAAY;AAAA,IAAA,GAChElB,UAAAA,EAAIc,MAAMK,MACA,GAAG,EAACtL,MACJ,GAAG,CAAC,EAACkH,IACPqE,EAAsC,GACnD,IANH,MAOOxD,OAAAqC,GAAArC,EAAA,CAAA,IAAAoC,EAAAE,MAAAtC,EAAA,CAAA,IAAAoC,EAAAc,OAAAlD,OAAAiD,KAAAA,IAAAjD,EAAA,CAAA;AAAA,QAAAyD;AAAA,IAAAzD,EAAA,CAAA,MAAAgD,KAAAhD,SAAAiD,KATZQ,2BAACC,IAAA,EAAiB,IAAAf,GACbK,UAAAA;AAAAA,MAAAA;AAAAA,MACAC;AAAAA,IAAAA,GAQL,GAAejD,OAAAgD,GAAAhD,OAAAiD,GAAAjD,OAAAyD,KAAAA,IAAAzD,EAAA,CAAA;AAAA,QAAA2D;AAAA,IAAA3D,UAAAqC,KAAArC,EAAA,EAAA,MAAAoC,EAAAc,SACdS,IAAAtB,IACG5B,gBAAAA,MAACM,IAAA,EACW,SAAA,WACJ,IAAA;AAAA,MAAAwB,UACU;AAAA,MAAUqB,QACZ;AAAA,MAAGpB,MACL;AAAA,MAAKE,WACA;AAAA,MAAkBY,UACnB;AAAA,MAAEO,YACA;AAAA,MAAGC,WACJ;AAAA,MAAQC,YACP;AAAA,MAAQC,UACV;AAAA,MAAQC,cACJ;AAAA,MAAUC,UACdC,KAAa;AAAA,IAAA,GAG1B/B,UAAAA,EAAIc,MAAAA,CACT,IAlBH,MAmBOlD,QAAAqC,GAAArC,EAAA,EAAA,IAAAoC,EAAAc,OAAAlD,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,QAAAoE;AAAA,WAAApE,EAAA,EAAA,MAAAQ,KAAAR,UAAAyD,KAAAzD,EAAA,EAAA,MAAA2D,KA/BZS,2BAACC,IAAA,EAAQ,IAAA7D,GACLiD,UAAAA;AAAAA,MAAAA;AAAAA,MAWCE;AAAAA,IAAAA,GAoBL,GAAM3D,QAAAQ,GAAAR,QAAAyD,GAAAzD,QAAA2D,GAAA3D,QAAAoE,KAAAA,IAAApE,EAAA,EAAA,GAhCNoE;AAAAA,EAgCM;AAEb,SACM;AAAI,GAQTE,KAAoCvE,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,CAAA,GAAC;AAAA,IAAAvB,MAAAA;AAAAA,IAAAtB,UAAAA;AAAAA,EAAAA,IAAA2C;AAAkB,MAAAS;AAAA,EAAAR,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAG7CL,IAAA;AAAA,IAAA+B,UACU;AAAA,IAAOC,MACX2B;AAAAA,IAAUI,IACZ;AAAA,IAAKC,IACL;AAAA,EAAA,GACPxE,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAA2C;AAAA,EAAA3C,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAGO8B,IAAA;AAAA,IAAA8B,IACI;AAAA,IAAGD,IACH;AAAA,IAAG9B,WACI;AAAA,IAA8BgC,WAC9B;AAAA,IAAiCC,WACjC;AAAA,IAAMC,oBACG;AAAA,EAAA,GACvB5E,OAAA2C,KAAAA,IAAA3C,EAAA,CAAA;AAAA,MAAAgD;AAAA,EAAAhD,SAAA5C,KAhBT4F,IAAAvC,gBAAAA,EAAAA,IAAC4D,MACO,IAAA7D,GAOJ,gCAACqE,IAAA,EACO,IAAAlC,GASHvF,UAAAA,EAAAA,CACL,EAAA,CACJ,GAAM4C,OAAA5C,GAAA4C,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAAA,MAAAiD;AAAA,SAAAjD,EAAA,CAAA,MAAAtB,KAAAsB,SAAAgD,KArBVC,IAAAxC,gBAAAA,EAAAA,IAACqE,IAAA,EAASpG,IAAAA,GACNsE,UAAAA,GAqBJ,GAAOhD,OAAAtB,GAAAsB,OAAAgD,GAAAhD,OAAAiD,KAAAA,IAAAjD,EAAA,CAAA,GAtBPiD;AAsBO,GAgBE8B,KAAkDhF,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,EAAA,GAAC;AAAA,IAAAmC,MAAAA;AAAAA,IAAA4C,QAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAA7C,WAAAA;AAAAA,IAAA8C,wBAAA3E;AAAAA,IAAA4E,yBAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAApH,SAAAA;AAAAA,EAAAA,IAAA6B,GAA+CoF,IAAA3E,MAAA+E,SAAA,KAAA/E,GAC3G,CAAAgF,GAAAC,CAAA,IAAkDlI,GAAwB,IAAI,GAC9EmI,IAAe,GAAGtD,EAAIuD,MAAOvD,EAAIc,KAAM;AAAG,MAAAP;AAAA,EAAA3C,SAAAqC,KAAArC,EAAA,CAAA,MAAAgF,KAAAhF,EAAA,CAAA,MAAAoF,KAAApF,SAAAmF,KAAAnF,EAAA,CAAA,MAAAoC,EAAAhF,YAERuF,IAAApB,CAAAA,MAC1Bc,KAAA+C,KAAwChD,EAAIhF,WACrC;AAAA,IAAAkG,UACO;AAAA,IAAEf,UACF;AAAA,IAAUE,KACf;AAAA,IAAOmD,OACL;AAAA,IAAKlD,WACD;AAAA,EAAA,IAGf,CAACL,KAAD8C,KAAwC/C,EAAIhF,WACrC;AAAA,IAAAyI,IACC;AAAA,IAAGnD,WACI,UAAUsC,IAAA,IAAA,GAAgB;AAAA,IAAMc,YAC/BvE,EAAKwE,YAAYC,OAAQ,aAAa;AAAA,MAAAC,QACtC1E,EAAKwE,YAAYE,OAAOC;AAAAA,MAAMC,UAC5B;AAAA,IAAA,CACb;AAAA,EAAA,IAGF;AAAA,IAAAvD,SAAW;AAAA,EAAA,GACrB5C,OAAAqC,GAAArC,OAAAgF,GAAAhF,OAAAoF,GAAApF,OAAAmF,GAAAnF,EAAA,CAAA,IAAAoC,EAAAhF,UAAA4C,OAAA2C,KAAAA,IAAA3C,EAAA,CAAA;AArBD,QAAAoG,IAAkCzD,GAuBlC0D,IAAyBjE,EAAIhF,YAAJ,CAAkBiF,GAKhBW,IAAAX,IAAA,KAAA;AAAmB,MAAAY;AAAA,EAAAjD,SAAAgD,KAAtCC,IAAA;AAAA,IAAAqD,IAAM;AAAA,IAAGjD,QAAUL;AAAAA,EAAAA,GAAqBhD,OAAAgD,GAAAhD,OAAAiD,KAAAA,IAAAjD,EAAA,CAAA;AAAA,MAAAyD;AAAA,EAAAzD,EAAA,CAAA,MAAAkF,KAAAlF,SAAAiF,KAAAjF,EAAA,EAAA,MAAAiD,KAH5BQ,IAAA;AAAA,IAAAwB,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAqB,IAGZtD;AAAAA,EAAAA,GACPjD,OAAAkF,GAAAlF,OAAAiF,GAAAjF,QAAAiD,GAAAjD,QAAAyD,KAAAA,IAAAzD,EAAA,EAAA;AAJD,QAAAwG,IAAoB/C;AAIlB,MAAAE;AAAA,EAAA3D,EAAA,EAAA,MAAAqC,KAAArC,UAAAoC,KAIMuB,IAAAlD,gBAAAA,EAAAA,IAAC0B,IAAA,EAAmBC,MAAAA,GAAiBC,WAAAA,EAAAA,CAAS,GAAIrC,QAAAqC,GAAArC,QAAAoC,GAAApC,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,MAAAoE;AAAA,EAAApE,UAAAqC,KAAArC,EAAA,EAAA,MAAAoC,EAAAc,SACjDkB,IAAA,CAAC/B,KACE5B,gBAAAA,MAACgG,MACY,SAAArE,EAAIc,OACF,WAAA;AAAA,IAAAtB,SAAW;AAAA,MAAA8E,QAAU;AAAA,MAAIxD,OAASd,EAAIc;AAAAA,IAAAA;AAAAA,EAAO,GACpD,IAAA;AAAA,IAAA2C,IAAM;AAAA,IAAGc,MAAQ;AAAA,IAAC5D,UAAY;AAAA,IAAC,yBAA2B;AAAA,MAAAgB,YAAc;AAAA,MAAQC,UAAY;AAAA,MAAQC,cAAgB;AAAA,IAAA;AAAA,EAAW,GAAG,GAE7IjE,QAAAqC,GAAArC,EAAA,EAAA,IAAAoC,EAAAc,OAAAlD,QAAAoE,KAAAA,IAAApE,EAAA,EAAA;AAAA,MAAA4G;AAAA,EAAA5G,UAAAoG,KAAApG,EAAA,EAAA,MAAAoC,EAAAhF,YACAwJ,IAAAxE,EAAIhF,WAAYqD,gBAAAA,EAAAA,IAACoG,IAAA,EAAmBT,IAAAA,GAAS,IAA7C,MAAwDpG,QAAAoG,GAAApG,EAAA,EAAA,IAAAoC,EAAAhF,UAAA4C,QAAA4G,KAAAA,IAAA5G,EAAA,EAAA;AAAA,MAAA8G;AAAA,EAAA9G,EAAA,EAAA,MAAA2D,KAAA3D,UAAAoE,KAAApE,EAAA,EAAA,MAAA4G,KAT7DE,IAAApH,gBAAAA,EAAAA,KAAAqH,YAAA,EACIpD,UAAAA;AAAAA,IAAAA;AAAAA,IACCS;AAAAA,IAOAwC;AAAAA,EAAAA,GAAwD,GAC1D5G,QAAA2D,GAAA3D,QAAAoE,GAAApE,QAAA4G,GAAA5G,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAXP,QAAAgH,IACIF;AAWF,MAAAG;AAAA,EAAAjH,EAAA,EAAA,MAAAqC,KAAArC,EAAA,EAAA,MAAAoC,EAAAhF,YAAA4C,EAAA,EAAA,MAAA0F,KAIWuB,IAAA7E,EAAIhF,YAAJiF,IAAA;AAAA,IAAA6E,cAEiBA,MAAA;AACVzB,MAAAA,EAAqBC,CAAM;AAAA,IAAC;AAAA,IAC/ByB,cACaA,MAAA;AACV1B,MAAAA,EAAqB,IAAI;AAAA,IAAC;AAAA,EAAA,IANjC,CAAA,GASGzF,QAAAqC,GAAArC,EAAA,EAAA,IAAAoC,EAAAhF,UAAA4C,QAAA0F,GAAA1F,QAAAiH,KAAAA,IAAAjH,EAAA,EAAA;AAAA,MAAAoH;AAAA,EAAApH,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACJuG,IAAA;AAAA,IAAAC,IAAM;AAAA,IAACf,IAAM;AAAA,IAACgB,WAAa;AAAA,EAAA,GAAUtH,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAA,MAAAuH;AAAA,EAAAvH,UAAAgH,KAAAhH,EAAA,EAAA,MAAAwG,KAAAxG,EAAA,EAAA,MAAAoC,KAAApC,EAAA,EAAA,MAAAqF,KAAArF,UAAA9B,KAAA8B,EAAA,EAAA,MAAAqG,KAExCkB,IAAAlB,IACG5F,gBAAAA,EAAAA,IAACW,IAAA,EAAe,GAAKoF,GAAsB,SAAA,MAAMnB,IAAUjD,CAAI,GAC1D4E,UAAAA,EAAAA,CACL,0BAEC/E,IAAA,EAAkB,GACXuE,GACA,IAAApE,EAAIuD,IACF,MAAAvD,EAAIoF,MACF,QAAApF,EAAI/H,QACJ,QAAA+H,EAAIhI,QACH8D,SAAAA,GAER8I,UAAAA,GACL,GACHhH,QAAAgH,GAAAhH,QAAAwG,GAAAxG,QAAAoC,GAAApC,QAAAqF,GAAArF,QAAA9B,GAAA8B,QAAAqG,GAAArG,QAAAuH,KAAAA,IAAAvH,EAAA,EAAA;AAAA,MAAAyH;AAAA,EAAAzH,UAAAqC,KAAArC,EAAA,EAAA,MAAAwF,KAAAxF,EAAA,EAAA,MAAAoC,EAAAhF,YAAA4C,EAAA,EAAA,MAAA0F,KAAA1F,UAAAsF,KAEAmC,IAAArF,EAAIhF,YAAJiF,IACG5B,gBAAAA,EAAAA,IAAC6D,IAAA,EAAkB,MAAAoB,MAAWF,GACzBF,UAAAA,IAAelD,EAAIhF,QAAS,EAAA,CACjC,IAHH,MAIO4C,QAAAqC,GAAArC,QAAAwF,GAAAxF,EAAA,EAAA,IAAAoC,EAAAhF,UAAA4C,QAAA0F,GAAA1F,QAAAsF,GAAAtF,QAAAyH,KAAAA,IAAAzH,EAAA,EAAA;AAAA,MAAA0H;AAAA,EAAA1H,EAAA,EAAA,MAAAiH,KAAAjH,UAAAuH,KAAAvH,EAAA,EAAA,MAAAyH,KAlCZC,2BAACC,IAAA,EAAQ,GACAV,GAUD,IAAAG,GAEHG,UAAAA;AAAAA,IAAAA;AAAAA,IAiBAE;AAAAA,EAAAA,GAKL,GAAWzH,QAAAiH,GAAAjH,QAAAuH,GAAAvH,QAAAyH,GAAAzH,QAAA0H,KAAAA,IAAA1H,EAAA,EAAA;AApCf,QAAA4H,IACIF;AAoCF,MAAAG;AAAA,EAAA7H,EAAA,EAAA,MAAAqC,KAAArC,UAAAgF,KAAAhF,EAAA,EAAA,MAAAoC,EAAAhF,YAAA4C,UAAAsF,KAKOuC,IAAAzF,EAAIhF,YAAJ,CAAkBiF,IACf5B,gBAAAA,EAAAA,IAACqH,MAAa9C,IAAAA,GAAgB,SAAA,QAAO,eAAA,IAChCM,UAAAA,IAAelD,EAAIhF,QAAS,GACjC,IAHH,MAIO4C,QAAAqC,GAAArC,QAAAgF,GAAAhF,EAAA,EAAA,IAAAoC,EAAAhF,UAAA4C,QAAAsF,GAAAtF,QAAA6H,KAAAA,IAAA7H,EAAA,EAAA;AAAA,MAAA+H;AAAA,SAAA/H,EAAA,EAAA,MAAAoC,EAAAuD,MAAA3F,EAAA,EAAA,MAAA4H,KAAA5H,EAAA,EAAA,MAAA6H,KANZE,2BAAChB,IAAA;;IAEIc;AAAAA,EAAAA,EAAAA,GAFUzF,EAAIuD,EAOnB,GAAW3F,EAAA,EAAA,IAAAoC,EAAAuD,IAAA3F,QAAA4H,GAAA5H,QAAA6H,GAAA7H,QAAA+H,KAAAA,IAAA/H,EAAA,EAAA,GAPX+H;AAOW;AArLyD,SAAAvE,GAAAwE,GAAA;AAAA,SAW7BA,EAAIC,OAAQ,CAAC,EAACC,YAAAA;AAAc;AChEpE,MAAMC,KAAaA,CAAC/F,MAAqD,EAAE,UAAUA,IAC/EgG,KAAYA,CAAChG,MAAoD,UAAUA,KAAQA,EAAKiG,SAAS,WACjGC,KAAWA,CAAClG,MAAmD,UAAUA,KAAQA,EAAKiG,SAAS,UAgB/FE,KAA0CxI,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,EAAA,GAAC;AAAA,IAAAuI,eAAAA;AAAAA,IAAAC,OAAAjI;AAAAA,IAAA6B,WAAAA;AAAAA,IAAAqG,WAAAA;AAAAA,IAAAvD,wBAAAxC;AAAAA,IAAAyC,yBAAAA;AAAAA,IAAAuD,eAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAA5K,SAAAA;AAAAA,EAAAA,IAAA6B,GAAiB0I,IAAAjI,MAAA+E,SAAA,IAAA/E,GAAiC2E,IAAAxC,MAAA4C,SAAA,KAAA5C;AAA6B,MAAAK;AAAA,EAAAhD,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAC3EmC,IAAA,CAAA,GAAEhD,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAA1D,QAAA,CAAA+I,GAAAC,CAAA,IAAgCzL,GAAwByF,CAAE;AAAE,MAAAC,GAAAQ;AAAA,EAAAzD,SAAAqC,KAElDY,IAAAA,MAAA;AACN,IAAIZ,KAAW2G,EAAY,CAAA,CAAE;AAAA,EAAE,GAChCvF,IAAA,CAACpB,CAAS,GAACrC,OAAAqC,GAAArC,OAAAiD,GAAAjD,OAAAyD,MAAAR,IAAAjD,EAAA,CAAA,GAAAyD,IAAAzD,EAAA,CAAA,IAFdiJ,GAAUhG,GAEPQ,CAAW;AAAC,MAAAE;AAAA,EAAA3D,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAEG8C,IAAApF,OACdyK,EAAYE,CAAAA,MAAeA,EAAQC,SAAU5K,CAA4D,IAArD2K,EAAQnK,OAAQqK,CAAAA,MAAOA,MAAM7K,CAAwB,IAA9E,CAAA,GAAiE2K,GAAU3K,CAAG,CAAE,GAACyB,OAAA2D,KAAAA,IAAA3D,EAAA,CAAA;AADhH,QAAAqJ,IAAkB1F;AAC+F,MAAAS;AAAA,EAAApE,SAAA6I,KAAA7I,EAAA,CAAA,MAAAqC,KAAArC,EAAA,CAAA,MAAAyI,KAAAzI,EAAA,CAAA,MAAA2I,KAAA3I,SAAA9B,KAAA8B,EAAA,EAAA,MAAA8I,KAE5F1E,IAAAhH,CAAAA,MAAqCqD,gBAAAA,EAAAA,IAAC8H,IAAA,EACxCnL,eAAAA,GACR,OAAAqL,IAAQ,GACJpG,WAAAA,GACIsG,eAAAA,GACHE,YAAAA,GACAC,YAAAA,GACH5K,SAAAA,GAAO,GAClB8B,OAAA6I,GAAA7I,OAAAqC,GAAArC,OAAAyI,GAAAzI,OAAA2I,GAAA3I,OAAA9B,GAAA8B,QAAA8I,GAAA9I,QAAAoE,KAAAA,IAAApE,EAAA,EAAA;AARF,QAAAsF,IAAqBlB;AAQlB,MAAAwC;AAAA,MAAA5G,EAAA,EAAA,MAAA6I,KAAA7I,EAAA,EAAA,MAAAqC,KAAArC,UAAAyI,KAAAzI,EAAA,EAAA,MAAA0I,KAAA1I,EAAA,EAAA,MAAAoF,KAAApF,EAAA,EAAA,MAAAmF,KAAAnF,EAAA,EAAA,MAAA9B,KAAA8B,UAAA+I,KAAA/I,EAAA,EAAA,MAAA4I,KAAA5I,EAAA,EAAA,MAAAsF,KAAAtF,UAAAwI,GAAA;AAEH,UAAAc,IAA2Bd,EAAazJ,OAAQyE,EAAkB,GAMlDsD,IAAA4B,KAAaD,MAAU,IAAvB,MAAA,GACAxB,IAAAwB,MAAU,KAAV,CAAgBC,IAAhB,IAAA,KACAtB,KAACsB,IAAA,IAAA,MAAsBA,IAAYD,IAAQ,IAApBA,IACjBlB,IAAAmB,KAAaD,MAAU,IAAvB,MAAA,QACHhB,IAAApF,IAAA8B,KAAA;AAA+B,QAAAuD;AAAA,IAAA1H,EAAA,EAAA,MAAAiH,KAAAjH,EAAA,EAAA,MAAAoH,KAAApH,EAAA,EAAA,MAAAuH,KAAAvH,EAAA,EAAA,MAAAyH,KAAAzH,UAAA8G,KANtCY,IAAA;AAAA,MAAA6B,SACS;AAAA,MAACC,IACN1C;AAAAA,MAAkC2C,IAClCxC;AAAAA,MAAmC1C,IACnC6C;AAAAA,MAAqDrE,UAC/CwE;AAAAA,MAAuCnE,OAC1CqE;AAAAA,IAAAA,GACVzH,QAAAiH,GAAAjH,QAAAoH,GAAApH,QAAAuH,GAAAvH,QAAAyH,GAAAzH,QAAA8G,GAAA9G,QAAA0H,KAAAA,IAAA1H,EAAA,EAAA,GARL4G,0BAAC8C,MACO,IAAAhC,GASH4B,YAAkBnK,IAAK,CAAAwK,GAAAC,MAAA;AACpB,UAAItB,GAASqB,CAAO;AAAC,eAEblJ,gBAAAA,EAAAA,IAACoJ,MAEO,IAAA;AAAA,UAAAvG,UACU;AAAA,UAAEO,YACA;AAAA,UAAKR,QACThB,IAAA,IAAA;AAAA,UAAkBiE,IACtB;AAAA,UAACtC,UACK;AAAA,UAAQC,cACJ;AAAA,UAAUF,YACZ;AAAA,UAAQ+F,QACZ;AAAA,UAACC,SACA;AAAA,UAAaxH,UACZ;AAAA,QAAA,GAGboH,UAAAA,EAAOzG,SAdH,aAAauF,CAAK,IAAImB,CAAK,EAepC;AAIR,UAAIxB,GAAUuB,CAAO,GAAC;AAClB,cAAAK,IAAiBV,EAAmBM,IAAQ,CAAC;AAAE,eAE3CnJ,gBAAAA,EAAAA,IAAA,MAAA,EACI,UAAAA,gBAAAA,EAAAA,IAACwJ,IAAA,EAAY,IAAA;AAAA,UAAAC,IAAM;AAAA,UAACV,IAAM;AAAA,UAACC,IAAMnB,GAAS0B,CAAsB,KAA/B,CAAuB3H,IAAvB,IAAA;AAAA,QAAA,GAA0C,EAAA,cAD3DoG,CAAK,IAAImB,CAAK,EAElC;AAAA,MAAK;AAIb,UAAI,CAACzB,GAAWwB,CAAO;AAAC,eAAS;AAEjC,YAAAQ,IAAY,QAAQ1B,CAAK,IAAImB,CAAK,IAClCQ,IAAsB,GAAG3B,CAAK,IAAImB,CAAK,IAAID,EAAOzG,KAAM;AAExD,aAAI0F,IAAmBnI,gBAAAA,EAAAA,IAACsG,IAAA,EAAoB6B,UAAAA,EAAWe,GAAS;AAAA,QAAAtH,WAAa,CAAC,CAACA;AAAAA,MAAAA,CAAW,KAApD9D,CAAsD,IAErFkC,gBAAAA,EAAAA,IAACsE,IAAA,EAEE4E,SACE,QAAAZ,EAAQI,SAAUiB,CAAa,GAC7B,UAAAvB,MAAec,EAAOhE,IACrBtD,WAAAA,GACa8C,wBAAAA,GACCC,yBAAAA,GAChB,SAAAuE,EAAOvM,YAAP,CAAqBiF,IAArB,MAAuCgH,EAAUe,CAAa,IAA9D7E,QACKD,cAAAA,GACLpH,SAAAA,EAAAA,IAAO;AAAA,IAClB,CACL,EAAA,CACL,GAAO8B,QAAA6I,GAAA7I,QAAAqC,GAAArC,QAAAyI,GAAAzI,QAAA0I,GAAA1I,QAAAoF,GAAApF,QAAAmF,GAAAnF,QAAA9B,GAAA8B,QAAA+I,GAAA/I,QAAA4I,GAAA5I,QAAAsF,GAAAtF,QAAAwI,GAAAxI,QAAA4G;AAAAA,EAAA;AAAAA,IAAAA,IAAA5G,EAAA,EAAA;AAAA,SA9DP4G;AA8DO;AArFwC,SAAApD,GAAA6G,GAAA;AAAA,SAoBI,CAACA,EAAGC;AAAO;ACtC/D,MAAMnG,KAAa,IACboG,KAAiB,KACjBC,KAAiB,IAQjBC,KAA0C1K,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,EAAA,GAAC;AAAA,IAAAyK,YAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,IAAA7K,GACpDG,IAAiBC,GAAAA,GACjB0K,IAAoBC,GAAAA,GACpBvJ,IAAcwJ,GAAAA;AAAW,MAAAvK;AAAA,EAAAR,EAAA,CAAA,MAAAuB,EAAAyJ,eACWxK,IAAAe,EAAKyJ,YAAYC,GAAI,IAAI,GAACjL,EAAA,CAAA,IAAAuB,EAAAyJ,aAAAhL,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAA9D,QAAAkL,IAAsBC,GAAc3K,CAA0B;AAAE,MAAAmC;AAAA,EAAA3C,EAAA,CAAA,MAAA2K,KAAA3K,EAAA,CAAA,MAAAE,KAAAF,EAAA,CAAA,MAAA0K,KAAA1K,SAAA6K,EAAAO,SAAAC,YAAArL,EAAA,CAAA,MAAA4K,KAAA5K,EAAA,CAAA,MAAAkL,KAE1CvI,IAAAN,CAAAA,MAClB5B,gBAAAA,EAAAA,IAAC4D,IAAA,EACa,WAAA,OACN,IAAA;AAAA,IAAAhB,QACQ;AAAA,IAAMT,SACL;AAAA,IAAM0I,eACA;AAAA,IAAQxI,gBACP;AAAA,IAAekB,UACrB;AAAA,IAAMuH,iBACClJ,IAAA,WAAA;AAAA,IAA6BiF,WACnC;AAAA,IAAQ7C,IACfiG,EAAU,CAAA,KAAOpC,GAASoC,EAAU,CAAA,CAAG,KAAvC,CAA6CrI,IAA7C,IAAA;AAAA,EAAA,GAGR,UAAA5B,gBAAAA,EAAAA,IAAC8H,IAAA,EACkBmC,eAAAA,GACJrI,WAAAA,GACasI,wBAAAA,GACC,yBAAA,CAACA,GACXJ,eAAAA,IACH,YAAAM,EAAWO,SAASC,UACpBnL,YAAAA,GACH,SAACgL,IAAD3F,SAAA,MAAuBqF,EAAY,EAAK,EAAxCrF,CAAqD,EAAA,CAEtE,GACHvF,OAAA2K,GAAA3K,OAAAE,GAAAF,OAAA0K,GAAA1K,EAAA,CAAA,IAAA6K,EAAAO,SAAAC,UAAArL,OAAA4K,GAAA5K,OAAAkL,GAAAlL,OAAA2C,KAAAA,IAAA3C,EAAA,CAAA;AAzBD,QAAAwL,IAAsB7I;AA2BtB,MAAIuI,GAAa;AAKM,UAAAlI,IAAA2H,IAAAJ,KAAApG,IAKIlB,IAAA0H,IAAAJ,KAAApG;AAAsC,QAAAV;AAAA,IAAAzD,SAAAiD,KAJzBQ,IAAA;AAAA,MAAAlB,UACV;AAAA,MAAUE,KACf,GAAG+H,EAAc;AAAA,MAAInH,QAClB,eAAemH,EAAc;AAAA,MAAKpH,OACnCH;AAAAA,MAAsCwI,WAClC;AAAA,MAAWC,aACT;AAAA,IAAA,GAChB1L,OAAAiD,GAAAjD,QAAAyD,KAAAA,IAAAzD,EAAA,EAAA;AAAA,QAAA2D;AAAA,IAAA3D,EAAA,EAAA,MAAAgD,KAAAhD,UAAAyD,KATDE,IAAA;AAAA,MAAAP,OACOJ;AAAAA,MAAsC,sBACrBS;AAAAA,IAAAA,GAQ3BzD,QAAAgD,GAAAhD,QAAAyD,GAAAzD,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAEc,UAAAoE,KAACuG;AAAQ,QAAA/D;AAAA,IAAA5G,EAAA,EAAA,MAAAwL,KAAAxL,UAAAoE,KAAvBwC,IAAA4E,EAAcpH,CAAS,GAACpE,QAAAwL,GAAAxL,QAAAoE,GAAApE,QAAA4G,KAAAA,IAAA5G,EAAA,EAAA;AAAA,QAAA8G;AAAA,WAAA9G,EAAA,EAAA,MAAA2D,KAAA3D,UAAA4G,KAd7BE,0BAAC6E,IAAA,EACW,SAAA,aACJ,IAAAhI,GAYHiD,UAAAA,GACL,GAAS5G,QAAA2D,GAAA3D,QAAA4G,GAAA5G,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA,GAfT8G;AAAAA,EAeS;AACX,MAAA9D;AAAA,EAAAhD,UAAA4K,KAKW5H,IAAAA,MAAM4H,EAAY,EAAK,GAAC5K,QAAA4K,GAAA5K,QAAAgD,KAAAA,IAAAhD,EAAA,EAAA;AAAA,MAAAiD;AAAA,EAAAjD,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAC7BoC,IAAA;AAAA,IAAA,sBACsB;AAAA,MAAAG,OACX;AAAA,IAAA;AAAA,EACX,GACHpD,QAAAiD,KAAAA,IAAAjD,EAAA,EAAA;AAAA,MAAAyD;AAAA,EAAAzD,UAAAwL,KAEA/H,IAAA+H,EAAc,EAAK,GAACxL,QAAAwL,GAAAxL,QAAAyD,KAAAA,IAAAzD,EAAA,EAAA;AAAA,MAAA2D;AAAA,SAAA3D,EAAA,EAAA,MAAA2K,KAAA3K,UAAAgD,KAAAhD,EAAA,EAAA,MAAAyD,KATzBE,IAAAlD,gBAAAA,EAAAA,IAACkL,MACShB,SACG,SAAA3H,GACL,IAAAC,GAMHQ,UAAAA,EAAAA,CACL,GAASzD,QAAA2K,GAAA3K,QAAAgD,GAAAhD,QAAAyD,GAAAzD,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA,GAVT2D;AAUS,GC/EXiI,KAAY,SAELC,KAAMC,GAAM9F,OAAO;AAAA,EAC5B+F,SAAS;AACb,CAAC;AAEDF,GAAIG,aAAaC,QAAQC,IAAI,OAAOC,MAAW;AAC3C,QAAMC,IAAc,MAAMC,GAAe,OAAO;AAChDF,SAAAA,EAAOG,QAAQ3N,IAAI,iBAAiB,UAAUyN,CAAW,EAAE,GACpDD;AACX,CAAC;AAEM,MAAMI,KAAe;AAAA,EACxBC,kBAAkBA,MACdC,GAAa;AAAA,IACTC,UAAU,CAACd,IAAW,MAAM,OAAO;AAAA,IACnCe,SAAS,YAAY,MAAMd,GAAII,QAAc;AAAA,MACzCW,QAAQ;AAAA,MACRC,KAAK;AAAA,MACLC,cAAc;AAAA,IAAA,CACjB,EAAEC,KAAKC,CAAAA,MAAYA,EAASC,IAAI;AAAA,IACjCC,WAAWC;AAAAA,IACXC,QAAQD;AAAAA,IACRE,QAAQJ,CAAAA,MAAQK,IAAIC,gBAAgBN,CAAI;AAAA,EAAA,CAC3C;AACT,GCRMO,KAAaA,CAACzU,MAA8BA,KAASA,EAAMkP,OAAO,CAAC,EAAEC,YAAAA,IAAgBnP,EAAMd,MAAM,CAAC,GAE3FwV,KAAqBA,MAAA;AAAA,QAAAzN,IAAAC,EAAAA,EAAA,GAAA,GAC9B,CAAAyN,GAAAC,CAAA,IAA0CpQ,GAAAA,GAC1C,CAAAqQ,GAAAC,CAAA,IAAsBtQ,GAAkB,UAAU,GAClDmB,IAAaoP,EAAQJ,GACrB;AAAA,IAAAK,GAAAA;AAAAA,IAAAC,MAAAA;AAAAA,EAAAA,IAAoBC,GAAAA,GACpB;AAAA,IAAAC,MAAAA;AAAAA,IAAAC,SAAAA;AAAAA,EAAAA,IAA0BC,GAAAA,GAC1B;AAAA,IAAApR,UAAAA;AAAAA,EAAAA,IAAqBqR,GAAAA,GACrBC,IAAwBC,GAAAA;AAAqB,MAAAxO;AAAA,EAAAC,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAChCd,IAAAyO,GAAAA,GAASxO,OAAAD,KAAAA,IAAAC,EAAA,CAAA;AAAtB,QAAAyO,IAAa1O;AAAU,MAAAS;AAAA,EAAAR,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAEcL,IAAA+L,GAAYC,iBAAAA,GAAmBxM,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAApE,QAAA;AAAA,IAAAiN,MAAAyB;AAAAA,EAAAA,IAA4BC,GAASnO,CAA+B;AAAE,MAAAoO,GAAAC,GAAAC,GAAAC,GAAApM,GAAAK,GAAAzB;AAAA,MAAAvB,EAAA,CAAA,MAAAgO,KAAAhO,EAAA,CAAA,MAAAkO,KAAAlO,EAAA,CAAA,MAAAmO,KAAAnO,SAAA+N,GAAA;AAEtE,UAAAiB,KAA4BC,MAAKC,QAASlB,EAAI1S,QAAQ6T,aAAgD,IAA9BnB,EAAI1S,QAAQ6T,gBAAxD,CAAA,GAA2EpQ,OAASyE,EAAuB,GACvI4L,IAA6B,IAAIC,KAAIC,aAAc,CAACtB,EAAIrT,QAAS,GAAG;AAAA,MAAA4U,MAAQ;AAAA,IAAA,CAAY;AAAE,QAAAtM;AAAA,IAAAjD,UAAA+N,KAG7C9K,IAAA8K,EAAE,cAAc,GAAC/N,QAAA+N,GAAA/N,QAAAiD,KAAAA,IAAAjD,EAAA,EAAA;AAAA,QAAAyD;AAAA,IAAAzD,UAAAiD,KAA1DQ,IAAA;AAAA,MAAAyK,MAAQ;AAAA,MAAO5L,MAAQkN;AAAAA,MAASC,OAASxM;AAAAA,IAAAA,GAAmBjD,QAAAiD,GAAAjD,QAAAyD,KAAAA,IAAAzD,EAAA,EAAA;AAAA,QAAA2D;AAAA,IAAA3D,UAAA+N,KACrBpK,IAAAoK,EAAE,aAAa,GAAC/N,QAAA+N,GAAA/N,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,QAAAoE;AAAA,IAAApE,UAAA2D,KAAvDS,IAAA;AAAA,MAAA8J,MAAQ;AAAA,MAAM5L,MAAQoN;AAAAA,MAAQD,OAAS9L;AAAAA,IAAAA,GAAkB3D,QAAA2D,GAAA3D,QAAAoE,KAAAA,IAAApE,EAAA,EAAA;AAAA,QAAA4G;AAAA,IAAA5G,UAAA+N,KACNnH,IAAAmH,EAAE,eAAe,GAAC/N,QAAA+N,GAAA/N,QAAA4G,KAAAA,IAAA5G,EAAA,EAAA;AAAA,QAAA8G;AAAA,IAAA9G,UAAA4G,KAArEE,IAAA;AAAA,MAAAoH,MAAQ;AAAA,MAAQ5L,MAAQqN;AAAAA,MAAkBF,OAAS7I;AAAAA,IAAAA,GAAoB5G,QAAA4G,GAAA5G,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAA,QAAAiH;AAAA,IAAAjH,EAAA,EAAA,MAAAyD,KAAAzD,UAAAoE,KAAApE,EAAA,EAAA,MAAA8G,KAH6BG,MACpGxD,GACAW,GACA0C,CAAuE,GAC1E9G,QAAAyD,GAAAzD,QAAAoE,GAAApE,QAAA8G,GAAA9G,QAAAiH,MAAAA,KAAAjH,EAAA,EAAA;AAJD,UAAA4P,KAAwG3I;AAItG,QAAAG;AAAA,IAAApH,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAEeuG,KAAAyI,CAAAA,MAA4DlC,EAAiBkC,EAAKC,aAAc,GAAC9P,QAAAoH,MAAAA,KAAApH,EAAA,EAAA,GAAlH8O,IAAiB1H;AAAkG,QAAAG;AAAA,IAAAvH,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACjG0G,KAAAA,MAAA;AAAQoG,MAAAA,EAAiBpI,MAAS,GAAGnG,WAAW,MAAMyO,EAAO,UAAU,GAAG,GAAG;AAAA,IAAC,GAAG7N,QAAAuH,MAAAA,KAAAvH,EAAA,EAAA,GAAnG6O,IAAkBtH;AAAkF,QAAAE;AAAA,IAAAzH,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAElF4G,KAAAsI,CAAAA,MAAqB,MAAMlC,EAAOkC,CAAM,GAAC/P,QAAAyH,MAAAA,KAAAzH,EAAA,EAAA;AAA3D,UAAAgQ,KAAkBvI;AAA0C,QAAAC;AAAA,IAAA1H,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAGJ6G,KAAA;AAAA,MAAA5F,iBAAmB;AAAA,IAAA,GAAe9B,QAAA0H,MAAAA,KAAA1H,EAAA,EAAA;AAAA,QAAA6H;AAAA,IAAA7H,UAAA+N,KAAGlG,IAAAkG,EAAE,iBAAiB,GAAC/N,QAAA+N,GAAA/N,QAAA6H,KAAAA,IAAA7H,EAAA,EAAA;AAAA,QAAA+H;AAAA,IAAA/H,UAAA6H,KAA5EE,IAAAtH,gBAAAA,EAAAA,IAACoJ,IAAA,EAAkB,IAAAnC,IAAqCG,UAAAA,GAAqB,GAAgB7H,QAAA6H,GAAA7H,QAAA+H,KAAAA,IAAA/H,EAAA,EAAA;AAAA,QAAAiQ,IAAAC;AAAA,IAAAlQ,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACjGoP,KAAAD,GAAU,OAAO,GAAOE,KAAA;AAAA,MAAA7I,IAAM;AAAA,IAAA,GAAKrH,QAAAiQ,IAAAjQ,QAAAkQ,OAAAD,KAAAjQ,EAAA,EAAA,GAAAkQ,KAAAlQ,EAAA,EAAA;AAAA,QAAAmQ;AAAA,IAAAnQ,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACxDsP,KAAA1P,gBAAAA,EAAAA,IAACiD,IAAA,EACG,UAAAjD,gBAAAA,EAAAA,IAAC2P,IAAA,CAAA,CAAW,GAChB,GAAepQ,QAAAmQ,MAAAA,KAAAnQ,EAAA,EAAA;AAAA,QAAAqQ;AAAA,IAAArQ,UAAA+N,KACQsC,IAAAtC,EAAE,mBAAmB,GAAC/N,QAAA+N,GAAA/N,QAAAqQ,KAAAA,IAAArQ,EAAA,EAAA;AAAa,UAAAsQ,KAAAV,GAAUW,KAAMC,OAAOA,EAACtC,SAAUA,CAAW,GAACuB;AAAA,QAAAgB;AAAA,IAAAzQ,EAAA,EAAA,MAAAqQ,KAAArQ,UAAAsQ,MAAxGG,IAAAhQ,gBAAAA,EAAAA,IAACgG,GAAA,EAAsB,SAAA4J,GAAmC,WAAAC,IAA8C,GAAItQ,QAAAqQ,GAAArQ,QAAAsQ,IAAAtQ,QAAAyQ,KAAAA,IAAAzQ,EAAA,EAAA;AAAA,QAAA0Q;AAAA,IAAA1Q,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAC5G6P,2BAACC,IAAA,EAAY,GAAG3Q,QAAA0Q,MAAAA,KAAA1Q,EAAA,EAAA;AAAA,QAAA4Q;AAAA,IAAA5Q,UAAAyQ,KALpBG,IAAAlR,gBAAAA,EAAAA,KAAC4B,IAAA,EAAwB,SAAA2O,IAAwB,IAAAC,IAC7CC,UAAAA;AAAAA,MAAAA;AAAAA,MAGAM;AAAAA,MACAC;AAAAA,IAAAA,GACJ,GAAiB1Q,QAAAyQ,GAAAzQ,QAAA4Q,KAAAA,IAAA5Q,EAAA,EAAA;AAAA,QAAA6Q,IAAAC;AAAA,IAAA9Q,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAEQgQ,KAAAb,GAAU,UAAU,GAAOc,KAAA;AAAA,MAAAzJ,IAAM;AAAA,IAAA,GAAKrH,QAAA6Q,IAAA7Q,QAAA8Q,OAAAD,KAAA7Q,EAAA,EAAA,GAAA8Q,KAAA9Q,EAAA,EAAA;AAAA,QAAA+Q;AAAA,IAAA/Q,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAC3DkQ,KAAAtQ,gBAAAA,EAAAA,IAACiD,IAAA,EACG,UAAAjD,gBAAAA,EAAAA,IAACuQ,IAAA,CAAA,CAAS,GACd,GAAehR,QAAA+Q,MAAAA,KAAA/Q,EAAA,EAAA;AAAA,QAAAiR;AAAA,IAAAjR,UAAA+N,KACQkD,KAAAlD,EAAE,iBAAiB,GAAC/N,QAAA+N,GAAA/N,QAAAiR,MAAAA,KAAAjR,EAAA,EAAA;AAAA,QAAAkR;AAAA,IAAAlR,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAC3CqQ,2BAACP,IAAA,EAAY,GAAG3Q,QAAAkR,MAAAA,KAAAlR,EAAA,EAAA;AALpB,UAAAmR,4BAAC7P,IAAA,EAAwB,SAAAuP,IAA2B,IAAAC,IAChDC,UAAAA;AAAAA,MAAAA;AAAAA,MAGAtQ,gBAAAA,EAAAA,IAACgG,GAAA,EAAsB,SAAAwK,IAAiC,WAAAzD,GAAW4B,EAAoBgC,GAAIpD,EAAIrT,QAAS,CAAC,EAAA,CAAC;AAAA,MAC1GuW;AAAAA,IAAAA,GACJ;AAAiB,QAAAG;AAAA,IAAArR,EAAA,EAAA,MAAA+H,KAAA/H,UAAA4Q,KAAA5Q,EAAA,EAAA,MAAAmR,MAfrBE,KAAA3R,gBAAAA,EAAAA,KAACgK,IAAA,EAAe,WAAA,OAAiB,WAAA3B,GAC7B6I,UAAAA;AAAAA,MAAAA;AAAAA,MAQAO;AAAAA,IAAAA,GAOJ,GAAOnR,QAAA+H,GAAA/H,QAAA4Q,GAAA5Q,QAAAmR,IAAAnR,QAAAqR,MAAAA,KAAArR,EAAA,EAAA,GAjBX+O,IACIsC;AAiBF,QAAAC,IAAAC;AAAA,IAAAvR,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAI8ByQ,KAAAtB,GAAU,UAAU,GAAOuB,KAAA;AAAA,MAAAzP,iBAAmB;AAAA,MAAac,SAAW;AAAA,MAAMC,YAAc;AAAA,MAAQyD,IAAM;AAAA,MAACkL,QAAU;AAAA,IAAA,GAAWxR,QAAAsR,IAAAtR,QAAAuR,OAAAD,KAAAtR,EAAA,EAAA,GAAAuR,KAAAvR,EAAA,EAAA;AAAA,QAAAyR;AAAA,IAAAzR,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAClJ4Q,KAAAhR,gBAAAA,EAAAA,IAACiR,IAAA,EAAgB,MAAA,SAAY,IAAA;AAAA,MAAAC,IAAM;AAAA,IAAA,GAC/B,UAAAlR,gBAAAA,EAAAA,IAACmR,IAAA,EAAmB,UAAA,SAAO,GAC/B,GAAa5R,QAAAyR,MAAAA,KAAAzR,EAAA,EAAA;AAAA,QAAA6R;AAAA,IAAA7R,UAAA+N,KAAE8D,IAAA9D,EAAE,mBAAmB,GAAC/N,QAAA+N,GAAA/N,QAAA6R,KAAAA,IAAA7R,EAAA,EAAA;AAAA,QAAA8R;AAAA,IAAA9R,UAAA6R,KAHzCC,KAAApS,gBAAAA,EAAAA,KAACmK,IAAA,EAAuB,SAAAyH,IAA2B,IAAAC,IAC/CE,UAAAA;AAAAA,MAAAA;AAAAA,MAEa;AAAA,MAAEI;AAAAA,IAAAA,GACnB,GAAgB7R,QAAA6R,GAAA7R,QAAA8R,MAAAA,KAAA9R,EAAA,EAAA;AAAA,QAAA+R;AAAA,IAAA/R,EAAA,EAAA,MAAA4P,MAAA5P,UAAAkO,KAAAlO,EAAA,EAAA,MAAAmO,KAEf4D,KAAAnC,GAAUzQ,IAAK6S,CAAAA,MAAA;AAAC,YAAA;AAAA,QAAA9D,MAAA+D;AAAAA,QAAA3P,MAAA4P;AAAAA,QAAAzC,OAAAA;AAAAA,MAAAA,IAAAuC;AAAsC,aACnDtS,gBAAAA,OAAC4B,IAAA,EAEY,SAAA,MAAA;AACL6M,QAAAA,EAAQ8D,EAAS,GACjBpD,EAAAA;AAAAA,MAAW,GAEL,UAAAX,MAAS+D,IAEnB,UAAA;AAAA,QAAAxR,gBAAAA,EAAAA,IAACiD,IAAA,EACG,UAAAjD,gBAAAA,EAAAA,IAACyR,IAAA,CAAA,CAAI,GACT;AAAA,QACAzR,gBAAAA,EAAAA,IAACgG,GAAA,EAAsBgJ,SAAAA,GAAAA,CAAK;AAAA,MAAA,EAAA,GAVvBwC,EAWT;AAAA,IAAiB,CACpB,GAACjS,QAAA4P,IAAA5P,QAAAkO,GAAAlO,QAAAmO,GAAAnO,QAAA+R,MAAAA,KAAA/R,EAAA,EAAA;AAAA,QAAAgS;AAAA,IAAAhS,EAAA,EAAA,MAAA8R,MAAA9R,UAAA+R,MArBNC,KAAAvR,gBAAAA,EAAAA,IAACiJ,IAAA,EACG,WAAAoI,IAMCC,UAAAA,IAeL,GAAO/R,QAAA8R,IAAA9R,QAAA+R,IAAA/R,QAAAgS,MAAAA,KAAAhS,EAAA,EAAA,GAvBXuB,IACIyQ,IA0BCpD,IAAAlF;AAAI,QAAAyI,IAAAC;AAAA,IAAApS,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACuBsR,KAAAnC,GAAU,UAAU,GAAOoC,KAAA;AAAA,MAAAtQ,iBAAmB;AAAA,MAAac,SAAW;AAAA,MAAMC,YAAc;AAAA,MAAQyD,IAAM;AAAA,MAACkL,QAAU;AAAA,IAAA,GAAWxR,QAAAmS,IAAAnS,QAAAoS,OAAAD,KAAAnS,EAAA,EAAA,GAAAoS,KAAApS,EAAA,EAAA;AAAA,QAAAqS;AAAA,IAAArS,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAClJwR,KAAA5R,gBAAAA,EAAAA,IAACiR,IAAA,EAAgB,MAAA,SAAY,IAAA;AAAA,MAAAC,IAAM;AAAA,IAAA,GAC/B,UAAAlR,gBAAAA,EAAAA,IAACmR,IAAA,EAAmB,UAAA,SAAO,GAC/B,GAAa5R,QAAAqS,MAAAA,KAAArS,EAAA,EAAA;AAAA,QAAAsS;AAAA,IAAAtS,UAAA+N,KAAEuE,KAAAvE,EAAE,iBAAiB,GAAC/N,QAAA+N,GAAA/N,QAAAsS,MAAAA,KAAAtS,EAAA,EAAA,GAAAA,UAAAsS,MAHvC3P,IAAAjD,gBAAAA,EAAAA,KAACmK,IAAA,EAAuB,SAAAsI,IAA2B,IAAAC,IAC/CC,UAAAA;AAAAA,MAAAA;AAAAA,MAEa;AAAA,MAAEC;AAAAA,IAAAA,GACnB,GAAgBtS,QAAAsS,IAAAtS,QAAA2C,KAAAA,IAAA3C,EAAA,EAAA,GAEfgD,IAAAgM,EAAkB7P,IAAKoT,CAAAA,6BACnBjR,IAAA,EAEY,SAAA,MAAM0M,EAAIwE,eAAgBD,CAAY,EAACE,QAAS,MAAM5D,GAAW,GAChE,UAAAb,EAAI0E,qBAAsBH,GAEpC,UAAA;AAAA,MAAA9R,gBAAAA,EAAAA,IAACiD,MACIsK,UAAAA,EAAI0E,qBAAsBH,KAAgB9R,gBAAAA,MAACkS,MAAI,GACpD;AAAA,MACAlS,gBAAAA,MAACgG,KAAsB,SAAA+G,GAAW4B,EAAoBgC,GAAImB,CAAY,CAAC,EAAA;SAPlEA,CAQT,CACJ,GAACvS,OAAAgO,GAAAhO,OAAAkO,GAAAlO,OAAAmO,GAAAnO,OAAA+N,GAAA/N,OAAA4O,GAAA5O,OAAA6O,GAAA7O,OAAA8O,GAAA9O,OAAA+O,GAAA/O,QAAA2C,GAAA3C,QAAAgD,GAAAhD,QAAAuB;AAAAA,EAAA;AAAAqN,IAAAA,IAAA5O,EAAA,CAAA,GAAA6O,IAAA7O,EAAA,CAAA,GAAA8O,IAAA9O,EAAA,CAAA,GAAA+O,IAAA/O,EAAA,CAAA,GAAA2C,IAAA3C,EAAA,EAAA,GAAAgD,IAAAhD,EAAA,EAAA,GAAAuB,IAAAvB,EAAA,EAAA;AAAA,MAAAiD;AAAA,EAAAjD,EAAA,EAAA,MAAA4O,KAAA5O,UAAA2C,KAAA3C,EAAA,EAAA,MAAAgD,KAlBLC,IAAAxC,gBAAAA,EAAAA,IAACmO,GAAA,EACG,WAAAjM,GAMCK,UAAAA,GAYL,GAAOhD,QAAA4O,GAAA5O,QAAA2C,GAAA3C,QAAAgD,GAAAhD,QAAAiD,KAAAA,IAAAjD,EAAA,EAAA;AApBX,QAAArF,IACIsI;AAoBF,MAAAQ;AAAA,EAAAzD,UAAA0O,KAKWjL,IAAAiL,IACGjO,gBAAAA,MAAC0C,IAAA,EAAYuL,KAAAA,GAAe,IAAA;AAAA,IAAAtL,OAAS;AAAA,MAAAwP,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,IAAIxP,QAAU;AAAA,MAAAuP,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,EAAG,EAAE,KAEpFpS,gBAAAA,EAAAA,IAACqS,IAAA,EAAkB,IAAA;AAAA,IAAA1P,OAAS;AAAA,MAAAwP,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,IAAIxP,QAAU;AAAA,MAAAuP,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,EAAG,GAAG,GAAI7S,QAAA0O,GAAA1O,QAAAyD,KAAAA,IAAAzD,EAAA,EAAA;AAAA,MAAA2D;AAAA,EAAA3D,EAAA,EAAA,MAAA8O,KAAA9O,UAAAyD,KAJxFE,IAAAlD,gBAAAA,EAAAA,IAACiR,MAAgB,MAAA,SAAa,MAAA,OAAe5C,YACxCrL,UAAAA,EAAAA,CAKL,GAAazD,QAAA8O,GAAA9O,QAAAyD,GAAAzD,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,MAAAoE;AAAA,EAAApE,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAGAuD,IAAA;AAAA,IAAAhB,OAAS;AAAA,EAAA,GAAKpD,QAAAoE,KAAAA,IAAApE,EAAA,EAAA;AAAA,MAAA4G;AAAA,EAAA5G,EAAA,EAAA,MAAAhD,KAAAgD,UAAAsO,KAAAtO,EAAA,EAAA,MAAA+N,KACnBnH,0BAAC8C,IAAA,EAAK,gBAAA,IACD4E,UAAAA,2BACIvH,IAAA,EACG,UAAA;AAAA,IAAAtG,gBAAAA,EAAAA,IAACkH,IAAA,EACG,gCAAClB,GAAA,EAAsB,SAAAgI,EAAI7V,MACvB,kCAAA,QAAA,EACK6V,UAAAA;AAAAA,MAAAA,EAAIsE,cAAetS,gBAAAA,MAAA,QAAA,EAAOgO,UAAAA,EAAIsE,YAAY;AAAA,MAC1CtE,EAAIsE,cAAetS,gBAAAA,MAAA,MAAA,CAAA,CAAM;AAAA,MACzBgO,EAAIuE,cAAevS,gBAAAA,gBAAOgO,YAAIuE,WAAAA,CAAY;AAAA,IAAA,EAAA,CAC/C,MAER;AAAA,IAEAtT,gBAAAA,EAAAA,KAAC4B,IAAA,EAAwB,eAAMtE,EAAQiW,eAAgB;AAAA,MAAAC,uBAAyB;AAAA,IAAA,CAAK,GACjF,UAAA;AAAA,MAAAzS,gBAAAA,MAACiD,IAAA,EAAa,UAAAjD,gBAAAA,EAAAA,IAAC0S,IAAA,EAAa,OAAA,SAAO,GAAG;AAAA,MACtC1S,gBAAAA,EAAAA,IAACgG,GAAA,EAAsB,SAAAsH,EAAE,eAAe,EAAA,CAAC;AAAA,IAAA,EAAA,CAC7C;AAAA,EAAA,GACJ,IAEArO,gBAAAA,EAAAA,KAAC4B,IAAA,EAAwB,SAAA,MAAMtE,EAAQoW,iBACnC,UAAA;AAAA,IAAA3S,gBAAAA,MAACiD,IAAA,EAAa,UAAAjD,gBAAAA,EAAAA,IAAC4S,IAAA,EAAY,OAAA,cAAY;AAAA,IACvC5S,gBAAAA,EAAAA,IAACgG,GAAA,EAAsB,SAAAsH,EAAE,cAAc,EAAA,CAAC;AAAA,EAAA,EAAA,CAC5C,EAAA,CAER,GAAO/N,QAAAhD,GAAAgD,QAAAsO,GAAAtO,QAAA+N,GAAA/N,QAAA4G,KAAAA,IAAA5G,EAAA,EAAA;AAEN,QAAA8G,IAAA8G,MAAQ,cAARmB,GACA9H,IAAA2G,MAAQ,WAARrM,GACA6F,IAAAwG,MAAQ,cAARjT;AAA8B,MAAA4M;AAAA,EAAAvH,EAAA,EAAA,MAAAiH,KAAAjH,EAAA,EAAA,MAAAoH,KAAApH,EAAA,EAAA,MAAA4G,KAAA5G,UAAA8G,KA7BnCS,IAAA7H,gBAAAA,EAAAA,KAAC2E,IAAA,EAAQ,IAAAD,GACLwC,UAAAA;AAAAA,IAAAA;AAAAA,IA0BCE;AAAAA,IACAG;AAAAA,IACAG;AAAAA,EAAAA,GACL,GAAMpH,QAAAiH,GAAAjH,QAAAoH,GAAApH,QAAA4G,GAAA5G,QAAA8G,GAAA9G,QAAAuH,KAAAA,IAAAvH,EAAA,EAAA;AAAA,MAAAyH;AAAA,EAAAzH,EAAA,EAAA,MAAA0N,KAAA1N,EAAA,EAAA,MAAA6O,KAAA7O,EAAA,GAAA,MAAAtB,KAAAsB,WAAAuH,KA/BVE,0BAAC6L,IAAA,EAAe5F,UAAAA,GAAqBhP,MAAAA,GAAemQ,SAAAA,GAChDtH,UAAAA,EAAAA,CA+BJ,GAAOvH,QAAA0N,GAAA1N,QAAA6O,GAAA7O,SAAAtB,GAAAsB,SAAAuH,GAAAvH,SAAAyH,KAAAA,IAAAzH,EAAA,GAAA;AAAA,MAAA0H;AAAA,SAAA1H,EAAA,GAAA,MAAAyH,KAAAzH,WAAA2D,KAzCX+D,2BAACX,IAAA,EACGpD,UAAAA;AAAAA,IAAAA;AAAAA,IAQA8D;AAAAA,EAAAA,GAiCJ,GAAWzH,SAAAyH,GAAAzH,SAAA2D,GAAA3D,SAAA0H,KAAAA,IAAA1H,EAAA,GAAA,GA1CX0H;AA0CW;AA1Ie,SAAAlE,GAAA3J,GAAA;AAAA,SAYyFA,MAAQ;AAAQ;ACrB3I,MAAM0Z,KAAyB,mBAEzBC,KAA2BA,MACzBC,GAASC,aAAaD,GAASE,UAAgB5Y,aAAa6Y,QAAQL,EAAsB,MAAM,SAC7F,IAGLM,KAAsBA,CAAC9a,MAAyB;AAClD,GAAI0a,GAASC,aAAaD,GAASE,YAC/B5Y,aAAa+Y,QAAQP,IAAwBQ,OAAOhb,CAAK,CAAC;AAElE,GAEMib,KAAe3S,GAAO,KAAK,EAAE,CAAC;AAAA,EAAEE,OAAAA;AAAM,OAAO;AAAA,EAC/CqB,SAAS;AAAA,EACTC,YAAY;AAAA,EACZC,gBAAgB;AAAA,EAChByG,SAAShI,EAAM0S,QAAQ,GAAG,CAAC;AAAA,EAC3B,GAAG1S,EAAM2S,OAAOC;AACpB,EAAE,GAOWC,KAA0BC,CAAAA,MAAA;AAAA,QAAArU,IAAAC,EAAAA,EAAA,EAAA;AACnCqU,EAAAA,GAAsBC,GAAeC,QAAS;AAC9C,QAAA,CAAAC,GAAAC,CAAA,IAA4CnX,GAASiW,EAAwB;AAAE,MAAAzT,GAAAS;AAAA,EAAAR,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAIvEd,0BAAC4U,IAAA,EAAqB,GACtBnU,0BAACoU,IAAA,EAAW,GAAG5U,OAAAD,GAAAC,OAAAQ,MAAAT,IAAAC,EAAA,CAAA,GAAAQ,IAAAR,EAAA,CAAA;AAAA,MAAA2C;AAAA,EAAA3C,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAEN8B,IAAA;AAAA,IAAAC,SAAW;AAAA,IAAMS,QAAU;AAAA,IAAQqB,WAAa;AAAA,IAAQV,UAAY;AAAA,IAAQZ,OAAS;AAAA,EAAA,GAAQpD,OAAA2C,KAAAA,IAAA3C,EAAA,CAAA;AAAA,MAAAgD;AAAA,EAAAhD,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAI1FmC,IAAA;AAAA,IAAA6R,cACc;AAAA,IAAWnJ,aACZ;AAAA,IAA4BoJ,WAC9B;AAAA,EAAA,GACd9U,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAAA,MAAAiD;AAAA,EAAAjD,SAAAyU,KAAAzU,EAAA,CAAA,MAAAqU,EAAA3J,cAEIzH,IAAAoR,EAAK3J,cACFjK,gBAAAA,EAAAA,IAACiR,IAAA,EACY,SAAA,MAAA;AACLgD,IAAAA,EAAkBlR,EAIjB;AAAA,EAAC,GAEF,IAAA;AAAA,IAAAuR,aAAe;AAAA,EAAA,GAElBN,UAAAA,IAAiBhU,gBAAAA,EAAAA,IAACuU,MAAQ,IAAMvU,gBAAAA,MAAC6S,MAAI,GAC1C,GAAatT,OAAAyU,GAAAzU,EAAA,CAAA,IAAAqU,EAAA3J,YAAA1K,OAAAiD,KAAAA,IAAAjD,EAAA,CAAA;AAAA,MAAAyD,GAAAE;AAAA,EAAA3D,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAGjB4C,0BAAC9C,IAAA,EAAQ,GAETgD,0BAAC8J,IAAA,EAAc,GAAGzN,OAAAyD,GAAAzD,OAAA2D,MAAAF,IAAAzD,EAAA,CAAA,GAAA2D,IAAA3D,EAAA,CAAA;AAAA,MAAAoE;AAAA,EAAApE,SAAAiD,KA1B1BmB,IAAA3D,gBAAAA,EAAAA,IAACwU,MACS,OAAA,eACG,UAAA,SACL,IAAAjS,GAKJ,UAAAtD,gBAAAA,EAAAA,KAACwV,IAAA,EACIjS,UAAAA;AAAAA,IAAAA;AAAAA,IAeDQ;AAAAA,IAEAE;AAAAA,EAAAA,EAAAA,CACJ,EAAA,CACJ,GAAS3D,OAAAiD,GAAAjD,QAAAoE,KAAAA,IAAApE,EAAA,EAAA;AAAA,MAAA4G;AAAA,EAAA5G,UAAAyU,KAAAzU,EAAA,EAAA,MAAAqU,EAAA3J,cAER9D,IAAAyN,EAAK3J,cACFjK,gBAAAA,EAAAA,IAACgK,IAAA,EACe,YAAA4J,EAAK3J,YACP+J,UAAAA,GACG,aAAAU,CAAAA,MAAA;AACTT,IAAAA,EAAkBU,CAAQ,GAC1BvB,GAAoBuB,CAAQ;AAAA,EAAC,GAChC,GACHpV,QAAAyU,GAAAzU,EAAA,EAAA,IAAAqU,EAAA3J,YAAA1K,QAAA4G,KAAAA,IAAA5G,EAAA,EAAA;AAAA,MAAAiH,GAAAH;AAAA,EAAA9G,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAGoBiG,IAAA;AAAA,IAAAuO,UAAY;AAAA,IAACzS,SAAW;AAAA,IAAM0I,eAAiB;AAAA,IAAQvI,UAAY;AAAA,IAACM,QAAU;AAAA,IAAMW,UAAY;AAAA,EAAA,GACtHiD,0BAAC+M,IAAA,EAAY,GAAGhU,QAAAiH,GAAAjH,QAAA8G,MAAAG,IAAAjH,EAAA,EAAA,GAAA8G,IAAA9G,EAAA,EAAA;AAAA,MAAAoH;AAAA,EAAApH,EAAA,EAAA,MAAAY,uBAAAC,IAAA,2BAAA,KACPuG,IAAA;AAAA,IAAAT,MAAQ;AAAA,IAAC3C,UAAY;AAAA,IAAMzB,UAAY;AAAA,EAAA,GAAYvC,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAA,MAAAuH;AAAA,EAAAvH,EAAA,EAAA,MAAAqU,EAAAjX,YAFhEmK,IAAA7H,gBAAAA,EAAAA,KAAC2E,IAAA,EAAc,WAAA,QAAW,IAAAyC,GACtBG,UAAAA;AAAAA,IAAAA;AAAAA,IACAxG,gBAAAA,EAAAA,IAAC4D,IAAA,EAAQ,IAAA+C,GACJiN,YAAKjX,SAAAA,CACV;AAAA,EAAA,GACJ,GAAM4C,EAAA,EAAA,IAAAqU,EAAAjX,UAAA4C,QAAAuH,KAAAA,IAAAvH,EAAA,EAAA;AAAA,MAAAyH;AAAA,SAAAzH,EAAA,EAAA,MAAAuH,KAAAvH,UAAAoE,KAAApE,EAAA,EAAA,MAAA4G,KAnDda,2BAAC6N,IAAA,EACGvV,UAAAA;AAAAA,IAAAA;AAAAA,IACAS;AAAAA,IAEAd,gBAAAA,EAAAA,KAAC2E,IAAA,EAAQ,IAAA1B,GACLyB,UAAAA;AAAAA,MAAAA;AAAAA,MA8BCwC;AAAAA,MAWDW;AAAAA,IAAAA,EAAAA,CAMJ;AAAA,EAAA,GACJ,GAAwBvH,QAAAuH,GAAAvH,QAAAoE,GAAApE,QAAA4G,GAAA5G,QAAAyH,KAAAA,IAAAzH,EAAA,EAAA,GArDxByH;AAqDwB;AA1DO,SAAAjE,GAAA0F,GAAA;AAuBC,QAAAkM,IAAiB,CAAClM;AAClB2K,SAAAA,GAAoBuB,CAAQ,GACrBA;AAAQ;AChDvD,MAAMG,KAAkB,OAAU;AAElCvH,EACK9B,IAAIsJ,EAAgB,EACpBtJ,IAAInP,EAAgB,EACpB0Y,KAAK;AAAA,EACFC,WAAAA;AAAAA,EACAC,aAAa;AAAA,EACbxG,eAAeyG,OAAOC,KAAKH,EAAS;AAAA,EACpCI,WAAW;AAAA,IACPjZ,QAAQ,CAAC,QAAQ;AAAA,IACjB9C,eAAewb;AAAAA,EAAAA;AAAAA,EAEnBQ,eAAe;AAAA,IAAEC,aAAa;AAAA,EAAA;AAClC,CAAC;AAQE,MAAMC,KAAqClW,CAAAA,MAAA;AAAA,QAAAC,IAAAC,EAAAA,EAAA,CAAA,GAAC;AAAA,IAAAyK,YAAAA;AAAAA,IAAAnJ,OAAAA;AAAAA,IAAAnE,UAAAA;AAAAA,EAAAA,IAAA2C,GAC/CmW,IAA+BC,GAAe3S,EAG7C;AAAE,MAAAhD;AAAA,EAAAR,SAAAkW,KAEO1V,IAAAA,OACN0V,EAAAA,GAEAlI,EAAIoI,GAAI,mBAAmBF,CAAsB,GAC1C,MAAA;AAAQlI,IAAAA,EAAIqI,IAAK,mBAAmBH,CAAsB;AAAA,EAAC,IACrElW,OAAAkW,GAAAlW,OAAAQ,KAAAA,IAAAR,EAAA,CAAA;AAAA,MAAA2C;AAAA,EAAA3C,EAAA,CAAA,MAAAY,uBAAAC,IAAA,2BAAA,KAAE8B,IAAA,CAAA,GAAE3C,OAAA2C,KAAAA,IAAA3C,EAAA,CAAA,GALLiJ,GAAUzI,GAKPmC,CAAE;AAAC,MAAAK;AAAA,EAAAhD,EAAA,CAAA,MAAA5C,KAAA4C,SAAA0K,KAIE1H,0BAACsT,IAAA,EAAsDC,aAAAA,IAA6B,eAAAvI,EAAIrT,UACpF,UAAA8F,gBAAAA,MAACtD,IAAA,EACG,gCAAC2C,IAAA,EACG,UAAAW,gBAAAA,MAAC2T,MAAmB1J,YAAAA,GACftN,UAAAA,EAAAA,CACL,GACJ,EAAA,CACJ,KAPuB4Q,EAAIrT,QAQ/B,GAAuBqF,OAAA5C,GAAA4C,OAAA0K,GAAA1K,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAAA,MAAAiD;AAAA,SAAAjD,EAAA,CAAA,MAAAgD,KAAAhD,SAAAuB,KAT3B0B,IAAAxC,gBAAAA,EAAAA,IAAC+V,IAAA,EAAqBjV,OAAAA,GAClByB,UAAAA,GASJ,GAAgBhD,OAAAgD,GAAAhD,OAAAuB,GAAAvB,OAAAiD,KAAAA,IAAAjD,EAAA,CAAA,GAVhBiD;AAUgB;AAxB0B,SAAAO,KAAA;AAE1CiT,EAAAA,GAACtK,OAAQsK,GAACC,KAAKC,QAAS3I,EAAIrT,QAAwC,GAAG,GACvEic,GAAKC,OAAQ7I,EAAIrT,QAAS;AAAC;","x_google_ignoreList":[0,1]}
1
+ {"version":3,"file":"index.js","sources":["../node_modules/i18next-browser-languagedetector/dist/esm/i18nextBrowserLanguageDetector.js","../node_modules/react-i18next/dist/es/initReactI18next.js","../src/providers/DialogsProvider.tsx","../src/providers/AuthProvider.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":["const {\n slice,\n forEach\n} = [];\nfunction defaults(obj) {\n forEach.call(slice.call(arguments, 1), source => {\n if (source) {\n for (const prop in source) {\n if (obj[prop] === undefined) obj[prop] = source[prop];\n }\n }\n });\n return obj;\n}\nfunction hasXSS(input) {\n if (typeof input !== 'string') return false;\n\n // Common XSS attack patterns\n const xssPatterns = [/<\\s*script.*?>/i, /<\\s*\\/\\s*script\\s*>/i, /<\\s*img.*?on\\w+\\s*=/i, /<\\s*\\w+\\s*on\\w+\\s*=.*?>/i, /javascript\\s*:/i, /vbscript\\s*:/i, /expression\\s*\\(/i, /eval\\s*\\(/i, /alert\\s*\\(/i, /document\\.cookie/i, /document\\.write\\s*\\(/i, /window\\.location/i, /innerHTML/i];\n return xssPatterns.some(pattern => pattern.test(input));\n}\n\n// eslint-disable-next-line no-control-regex\nconst fieldContentRegExp = /^[\\u0009\\u0020-\\u007e\\u0080-\\u00ff]+$/;\nconst serializeCookie = function (name, val) {\n let options = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {\n path: '/'\n };\n const opt = options;\n const value = encodeURIComponent(val);\n let str = `${name}=${value}`;\n if (opt.maxAge > 0) {\n const maxAge = opt.maxAge - 0;\n if (Number.isNaN(maxAge)) throw new Error('maxAge should be a Number');\n str += `; Max-Age=${Math.floor(maxAge)}`;\n }\n if (opt.domain) {\n if (!fieldContentRegExp.test(opt.domain)) {\n throw new TypeError('option domain is invalid');\n }\n str += `; Domain=${opt.domain}`;\n }\n if (opt.path) {\n if (!fieldContentRegExp.test(opt.path)) {\n throw new TypeError('option path is invalid');\n }\n str += `; Path=${opt.path}`;\n }\n if (opt.expires) {\n if (typeof opt.expires.toUTCString !== 'function') {\n throw new TypeError('option expires is invalid');\n }\n str += `; Expires=${opt.expires.toUTCString()}`;\n }\n if (opt.httpOnly) str += '; HttpOnly';\n if (opt.secure) str += '; Secure';\n if (opt.sameSite) {\n const sameSite = typeof opt.sameSite === 'string' ? opt.sameSite.toLowerCase() : opt.sameSite;\n switch (sameSite) {\n case true:\n str += '; SameSite=Strict';\n break;\n case 'lax':\n str += '; SameSite=Lax';\n break;\n case 'strict':\n str += '; SameSite=Strict';\n break;\n case 'none':\n str += '; SameSite=None';\n break;\n default:\n throw new TypeError('option sameSite is invalid');\n }\n }\n if (opt.partitioned) str += '; Partitioned';\n return str;\n};\nconst cookie = {\n create(name, value, minutes, domain) {\n let cookieOptions = arguments.length > 4 && arguments[4] !== undefined ? arguments[4] : {\n path: '/',\n sameSite: 'strict'\n };\n if (minutes) {\n cookieOptions.expires = new Date();\n cookieOptions.expires.setTime(cookieOptions.expires.getTime() + minutes * 60 * 1000);\n }\n if (domain) cookieOptions.domain = domain;\n document.cookie = serializeCookie(name, value, cookieOptions);\n },\n read(name) {\n const nameEQ = `${name}=`;\n const ca = document.cookie.split(';');\n for (let i = 0; i < ca.length; i++) {\n let c = ca[i];\n while (c.charAt(0) === ' ') c = c.substring(1, c.length);\n if (c.indexOf(nameEQ) === 0) return c.substring(nameEQ.length, c.length);\n }\n return null;\n },\n remove(name, domain) {\n this.create(name, '', -1, domain);\n }\n};\nvar cookie$1 = {\n name: 'cookie',\n // Deconstruct the options object and extract the lookupCookie property\n lookup(_ref) {\n let {\n lookupCookie\n } = _ref;\n if (lookupCookie && typeof document !== 'undefined') {\n return cookie.read(lookupCookie) || undefined;\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupCookie, cookieMinutes, cookieDomain, and cookieOptions properties\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupCookie,\n cookieMinutes,\n cookieDomain,\n cookieOptions\n } = _ref2;\n if (lookupCookie && typeof document !== 'undefined') {\n cookie.create(lookupCookie, lng, cookieMinutes, cookieDomain, cookieOptions);\n }\n }\n};\n\nvar querystring = {\n name: 'querystring',\n // Deconstruct the options object and extract the lookupQuerystring property\n lookup(_ref) {\n let {\n lookupQuerystring\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n let {\n search\n } = window.location;\n if (!window.location.search && window.location.hash?.indexOf('?') > -1) {\n search = window.location.hash.substring(window.location.hash.indexOf('?'));\n }\n const query = search.substring(1);\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupQuerystring) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n return found;\n }\n};\n\nvar hash = {\n name: 'hash',\n // Deconstruct the options object and extract the lookupHash property and the lookupFromHashIndex property\n lookup(_ref) {\n let {\n lookupHash,\n lookupFromHashIndex\n } = _ref;\n let found;\n if (typeof window !== 'undefined') {\n const {\n hash\n } = window.location;\n if (hash && hash.length > 2) {\n const query = hash.substring(1);\n if (lookupHash) {\n const params = query.split('&');\n for (let i = 0; i < params.length; i++) {\n const pos = params[i].indexOf('=');\n if (pos > 0) {\n const key = params[i].substring(0, pos);\n if (key === lookupHash) {\n found = params[i].substring(pos + 1);\n }\n }\n }\n }\n if (found) return found;\n if (!found && lookupFromHashIndex > -1) {\n const language = hash.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromHashIndex === 'number' ? lookupFromHashIndex : 0;\n return language[index]?.replace('/', '');\n }\n }\n }\n return found;\n }\n};\n\nlet hasLocalStorageSupport = null;\nconst localStorageAvailable = () => {\n if (hasLocalStorageSupport !== null) return hasLocalStorageSupport;\n try {\n hasLocalStorageSupport = typeof window !== 'undefined' && window.localStorage !== null;\n if (!hasLocalStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.localStorage.setItem(testKey, 'foo');\n window.localStorage.removeItem(testKey);\n } catch (e) {\n hasLocalStorageSupport = false;\n }\n return hasLocalStorageSupport;\n};\nvar localStorage = {\n name: 'localStorage',\n // Deconstruct the options object and extract the lookupLocalStorage property\n lookup(_ref) {\n let {\n lookupLocalStorage\n } = _ref;\n if (lookupLocalStorage && localStorageAvailable()) {\n return window.localStorage.getItem(lookupLocalStorage) || undefined; // Undefined ensures type consistency with the previous version of this function\n }\n return undefined;\n },\n // Deconstruct the options object and extract the lookupLocalStorage property\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupLocalStorage\n } = _ref2;\n if (lookupLocalStorage && localStorageAvailable()) {\n window.localStorage.setItem(lookupLocalStorage, lng);\n }\n }\n};\n\nlet hasSessionStorageSupport = null;\nconst sessionStorageAvailable = () => {\n if (hasSessionStorageSupport !== null) return hasSessionStorageSupport;\n try {\n hasSessionStorageSupport = typeof window !== 'undefined' && window.sessionStorage !== null;\n if (!hasSessionStorageSupport) {\n return false;\n }\n const testKey = 'i18next.translate.boo';\n window.sessionStorage.setItem(testKey, 'foo');\n window.sessionStorage.removeItem(testKey);\n } catch (e) {\n hasSessionStorageSupport = false;\n }\n return hasSessionStorageSupport;\n};\nvar sessionStorage = {\n name: 'sessionStorage',\n lookup(_ref) {\n let {\n lookupSessionStorage\n } = _ref;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n return window.sessionStorage.getItem(lookupSessionStorage) || undefined;\n }\n return undefined;\n },\n cacheUserLanguage(lng, _ref2) {\n let {\n lookupSessionStorage\n } = _ref2;\n if (lookupSessionStorage && sessionStorageAvailable()) {\n window.sessionStorage.setItem(lookupSessionStorage, lng);\n }\n }\n};\n\nvar navigator$1 = {\n name: 'navigator',\n lookup(options) {\n const found = [];\n if (typeof navigator !== 'undefined') {\n const {\n languages,\n userLanguage,\n language\n } = navigator;\n if (languages) {\n // chrome only; not an array, so can't use .push.apply instead of iterating\n for (let i = 0; i < languages.length; i++) {\n found.push(languages[i]);\n }\n }\n if (userLanguage) {\n found.push(userLanguage);\n }\n if (language) {\n found.push(language);\n }\n }\n return found.length > 0 ? found : undefined;\n }\n};\n\nvar htmlTag = {\n name: 'htmlTag',\n // Deconstruct the options object and extract the htmlTag property\n lookup(_ref) {\n let {\n htmlTag\n } = _ref;\n let found;\n const internalHtmlTag = htmlTag || (typeof document !== 'undefined' ? document.documentElement : null);\n if (internalHtmlTag && typeof internalHtmlTag.getAttribute === 'function') {\n found = internalHtmlTag.getAttribute('lang');\n }\n return found;\n }\n};\n\nvar path = {\n name: 'path',\n // Deconstruct the options object and extract the lookupFromPathIndex property\n lookup(_ref) {\n let {\n lookupFromPathIndex\n } = _ref;\n if (typeof window === 'undefined') return undefined;\n const language = window.location.pathname.match(/\\/([a-zA-Z-]*)/g);\n if (!Array.isArray(language)) return undefined;\n const index = typeof lookupFromPathIndex === 'number' ? lookupFromPathIndex : 0;\n return language[index]?.replace('/', '');\n }\n};\n\nvar subdomain = {\n name: 'subdomain',\n lookup(_ref) {\n let {\n lookupFromSubdomainIndex\n } = _ref;\n // If given get the subdomain index else 1\n const internalLookupFromSubdomainIndex = typeof lookupFromSubdomainIndex === 'number' ? lookupFromSubdomainIndex + 1 : 1;\n // get all matches if window.location. is existing\n // first item of match is the match itself and the second is the first group match which should be the first subdomain match\n // is the hostname no public domain get the or option of localhost\n const language = typeof window !== 'undefined' && window.location?.hostname?.match(/^(\\w{2,5})\\.(([a-z0-9-]{1,63}\\.[a-z]{2,6})|localhost)/i);\n\n // if there is no match (null) return undefined\n if (!language) return undefined;\n // return the given group match\n return language[internalLookupFromSubdomainIndex];\n }\n};\n\n// some environments, throws when accessing document.cookie\nlet canCookies = false;\ntry {\n // eslint-disable-next-line no-unused-expressions\n document.cookie;\n canCookies = true;\n // eslint-disable-next-line no-empty\n} catch (e) {}\nconst order = ['querystring', 'cookie', 'localStorage', 'sessionStorage', 'navigator', 'htmlTag'];\nif (!canCookies) order.splice(1, 1);\nconst getDefaults = () => ({\n order,\n lookupQuerystring: 'lng',\n lookupCookie: 'i18next',\n lookupLocalStorage: 'i18nextLng',\n lookupSessionStorage: 'i18nextLng',\n // cache user language\n caches: ['localStorage'],\n excludeCacheFor: ['cimode'],\n // cookieMinutes: 10,\n // cookieDomain: 'myDomain'\n\n convertDetectedLanguage: l => l\n});\nclass Browser {\n constructor(services) {\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n this.type = 'languageDetector';\n this.detectors = {};\n this.init(services, options);\n }\n init() {\n let services = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {\n languageUtils: {}\n };\n let options = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : {};\n let i18nOptions = arguments.length > 2 && arguments[2] !== undefined ? arguments[2] : {};\n this.services = services;\n this.options = defaults(options, this.options || {}, getDefaults());\n if (typeof this.options.convertDetectedLanguage === 'string' && this.options.convertDetectedLanguage.indexOf('15897') > -1) {\n this.options.convertDetectedLanguage = l => l.replace('-', '_');\n }\n\n // backwards compatibility\n if (this.options.lookupFromUrlIndex) this.options.lookupFromPathIndex = this.options.lookupFromUrlIndex;\n this.i18nOptions = i18nOptions;\n this.addDetector(cookie$1);\n this.addDetector(querystring);\n this.addDetector(localStorage);\n this.addDetector(sessionStorage);\n this.addDetector(navigator$1);\n this.addDetector(htmlTag);\n this.addDetector(path);\n this.addDetector(subdomain);\n this.addDetector(hash);\n }\n addDetector(detector) {\n this.detectors[detector.name] = detector;\n return this;\n }\n detect() {\n let detectionOrder = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : this.options.order;\n let detected = [];\n detectionOrder.forEach(detectorName => {\n if (this.detectors[detectorName]) {\n let lookup = this.detectors[detectorName].lookup(this.options);\n if (lookup && typeof lookup === 'string') lookup = [lookup];\n if (lookup) detected = detected.concat(lookup);\n }\n });\n detected = detected.filter(d => d !== undefined && d !== null && !hasXSS(d)).map(d => this.options.convertDetectedLanguage(d));\n if (this.services && this.services.languageUtils && this.services.languageUtils.getBestMatchFromCodes) return detected; // new i18next v19.5.0\n return detected.length > 0 ? detected[0] : null; // a little backward compatibility\n }\n cacheUserLanguage(lng) {\n let caches = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : this.options.caches;\n if (!caches) return;\n if (this.options.excludeCacheFor && this.options.excludeCacheFor.indexOf(lng) > -1) return;\n caches.forEach(cacheName => {\n if (this.detectors[cacheName]) this.detectors[cacheName].cacheUserLanguage(lng, this.options);\n });\n }\n}\nBrowser.type = 'languageDetector';\n\nexport { Browser as default };\n","import { setDefaults } from './defaults.js';\nimport { setI18n } from './i18nInstance.js';\nexport const initReactI18next = {\n type: '3rdParty',\n init(instance) {\n setDefaults(instance.options.react);\n setI18n(instance);\n }\n};","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 { MsalProvider } from \"@azure/msal-react\";\r\nimport { useNavigate } from \"@tanstack/react-router\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport { CustomNavigationClient, pca } from \"~/lib/auth/msalClient\";\r\n\r\ninterface ProvidersProps {\r\n children: ReactNode;\r\n}\r\n\r\nexport const AuthProvider: FC<ProvidersProps> = ({ children }) => {\r\n const navigate = useNavigate();\r\n const navigationClient = new CustomNavigationClient(navigate);\r\n pca.setNavigationClient(navigationClient);\r\n\r\n return (\r\n <MsalProvider instance={pca}>\r\n {children}\r\n </MsalProvider >\r\n );\r\n};\r\n","import { Chip, Stack, Typography } from \"@mui/material\";\r\nimport type { FC } from \"react\";\r\nimport { clientEnv } from \"~/env\";\r\n\r\nexport const AppTitle: FC = () => {\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 <Chip size=\"small\" label=\"TEST\" color=\"info\" />\r\n </Stack>\r\n );\r\n};\r\n","import ExpandMoreIcon from \"@mui/icons-material/ExpandMore\";\r\nimport { Collapse, Grow } from \"@mui/material\";\r\nimport Avatar from \"@mui/material/Avatar\";\r\nimport Box from \"@mui/material/Box\";\r\nimport ListItem from \"@mui/material/ListItem\";\r\nimport ListItemButton from \"@mui/material/ListItemButton\";\r\nimport ListItemIcon from \"@mui/material/ListItemIcon\";\r\nimport ListItemText from \"@mui/material/ListItemText\";\r\nimport Paper from \"@mui/material/Paper\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport Typography from \"@mui/material/Typography\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { MINI_WIDTH } from \"./NavigationRail\";\r\nimport type { NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { SxProps, Theme } from \"@mui/material/styles\";\r\nimport { RouterListItemButton } from \"~/components/router/RouterListItemButton\";\r\n\r\nconst ICON_SIZE = 34;\r\n\r\nconst StyledNavButton = styled(ListItemButton)(({ theme }) => ({\r\n borderRadius: 8,\r\n \"&.Mui-selected\": {\r\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiTouchRipple-child\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.action.active,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.action.active,\r\n },\r\n}));\r\n\r\nconst StyledRouterButton = styled(RouterListItemButton)(({ theme }) => ({\r\n borderRadius: 8,\r\n \"&.Mui-selected\": {\r\n \"& .MuiListItemIcon-root, & .MuiTypography-root, & .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n \"& .MuiTouchRipple-child\": {\r\n backgroundColor: (theme.vars ?? theme).palette.primary.dark,\r\n },\r\n },\r\n \"& .MuiSvgIcon-root\": {\r\n color: (theme.vars ?? theme).palette.action.active,\r\n },\r\n \"& .MuiAvatar-root\": {\r\n backgroundColor: (theme.vars ?? theme).palette.action.active,\r\n },\r\n}));\r\n\r\nconst IconOrAvatar: FC<{ item: NavigationPageItem; collapsed?: boolean }> = ({ item, collapsed }) => {\r\n if (item.icon || collapsed) {\r\n return (\r\n <Box sx={collapsed ? { position: \"absolute\", left: \"50%\", top: \"calc(50% - 6px)\", transform: \"translate(-50%, -50%)\" } : {}}>\r\n <ListItemIcon sx={{ display: \"flex\", alignItems: \"center\", justifyContent: \"center\", minWidth: ICON_SIZE }}>\r\n {item.icon ?? null}\r\n {!item.icon && collapsed ? (\r\n <Avatar sx={{ width: ICON_SIZE - 7, height: ICON_SIZE - 7, fontSize: 12 }}>\r\n {item.title\r\n .split(\" \")\r\n .slice(0, 2)\r\n .map((word) => word.charAt(0).toUpperCase())}\r\n </Avatar>\r\n ) : null}\r\n </ListItemIcon>\r\n {collapsed ? (\r\n <Typography\r\n variant=\"caption\"\r\n sx={{\r\n position: \"absolute\",\r\n bottom: -18,\r\n left: \"50%\",\r\n transform: \"translateX(-50%)\",\r\n fontSize: 10,\r\n fontWeight: 500,\r\n textAlign: \"center\",\r\n whiteSpace: \"nowrap\",\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n maxWidth: MINI_WIDTH - 28,\r\n }}\r\n >\r\n {item.title}\r\n </Typography>\r\n ) : null}\r\n </Box>\r\n );\r\n }\r\n return null;\r\n};\r\n\r\ninterface MiniPopoverProps {\r\n open: boolean;\r\n children?: ReactNode;\r\n}\r\n\r\nconst MiniPopover: FC<MiniPopoverProps> = ({ open, children }) => (\r\n <Grow in={open}>\r\n <Box\r\n sx={{\r\n position: \"fixed\",\r\n left: MINI_WIDTH,\r\n pl: \"2px\",\r\n pb: \"10px\",\r\n }}\r\n >\r\n <Paper\r\n sx={{\r\n pt: 0.5,\r\n pb: 0.5,\r\n transform: \"translateY(calc(50% - 30px))\",\r\n maxHeight: \"min(calc(100vh - 100px), 560px)\",\r\n overflowY: \"auto\",\r\n overscrollBehavior: \"contain\",\r\n }}\r\n >\r\n {children}\r\n </Paper>\r\n </Box>\r\n </Grow>\r\n);\r\n\r\ninterface NavigationListItemProps {\r\n item: NavigationPageItem;\r\n isOpen?: boolean;\r\n selected?: boolean;\r\n disabled?: boolean;\r\n collapsed?: boolean;\r\n isSidebarFullyExpanded?: boolean;\r\n isSidebarFullyCollapsed?: boolean;\r\n onClick?: (item: NavigationPageItem) => void;\r\n renderNested?: (sub: Array<NavigationItem>) => ReactNode;\r\n onClose?: () => void;\r\n}\r\n\r\nexport const NavigationListItem: FC<NavigationListItemProps> = ({ item, isOpen, selected, disabled, collapsed, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, onClick, renderNested, onClose }) => {\r\n const [hoveredMiniItemId, setHoveredMiniItemId] = useState<string | null>(null);\r\n const itemId = `${item.to ?? item.title}`;\r\n\r\n const chevronSx: SxProps<Theme> = (theme: Theme) => {\r\n if (collapsed && isSidebarFullyCollapsed && item.children) {\r\n return {\r\n fontSize: 18,\r\n position: \"absolute\",\r\n top: \"41.5%\",\r\n right: \"2px\",\r\n transform: \"translateY(-50%) rotate(-90deg)\",\r\n };\r\n }\r\n if (!collapsed && isSidebarFullyExpanded && item.children) {\r\n return {\r\n ml: 0.5,\r\n transform: `rotate(${isOpen ? 0 : -90}deg)`,\r\n transition: theme.transitions.create(\"transform\", {\r\n easing: theme.transitions.easing.sharp,\r\n duration: 100,\r\n }),\r\n };\r\n }\r\n return { display: \"none\" };\r\n };\r\n\r\n const shouldJustExpand = item.children && !collapsed;\r\n\r\n const buttonProps = {\r\n selected,\r\n disabled,\r\n sx: { px: 1.4, height: collapsed ? 60 : 48 }\r\n };\r\n\r\n const buttonContent = (\r\n <>\r\n <IconOrAvatar item={item} collapsed={collapsed} />\r\n {!collapsed && (\r\n <ListItemText\r\n primary={item.title}\r\n slotProps={{ primary: { noWrap: true, title: item.title } }}\r\n sx={{ ml: 1.2, flex: 1, minWidth: 0, \"& .MuiTypography-root\": { whiteSpace: \"nowrap\", overflow: \"hidden\", textOverflow: \"ellipsis\" } }}\r\n />\r\n )}\r\n {item.children ? <ExpandMoreIcon sx={chevronSx} /> : null}\r\n </>\r\n );\r\n\r\n const listItem = (\r\n <ListItem\r\n {...(item.children && collapsed\r\n ? {\r\n onMouseEnter: () => {\r\n setHoveredMiniItemId(itemId);\r\n },\r\n onMouseLeave: () => {\r\n setHoveredMiniItemId(null);\r\n },\r\n }\r\n : {})}\r\n sx={{ py: 0, px: 1, overflowX: \"hidden\" }}\r\n >\r\n {shouldJustExpand ? (\r\n <StyledNavButton {...buttonProps} onClick={() => onClick?.(item)}>\r\n {buttonContent}\r\n </StyledNavButton>\r\n ) : (\r\n <StyledRouterButton\r\n {...buttonProps}\r\n to={item.to}\r\n href={item.href}\r\n params={item.params as any}\r\n search={item.search as any}\r\n onClick={onClose}\r\n >\r\n {buttonContent}\r\n </StyledRouterButton>\r\n )}\r\n\r\n {item.children && collapsed ? (\r\n <MiniPopover open={itemId === hoveredMiniItemId}>\r\n {renderNested?.(item.children)}\r\n </MiniPopover>\r\n ) : null}\r\n </ListItem>\r\n );\r\n\r\n return (\r\n <Fragment key={item.to}>\r\n {listItem}\r\n {item.children && !collapsed ? (\r\n <Collapse in={isOpen} timeout=\"auto\" unmountOnExit>\r\n {renderNested?.(item.children)}\r\n </Collapse>\r\n ) : null}\r\n </Fragment>\r\n );\r\n};\r\n","import Divider from \"@mui/material/Divider\";\r\nimport List from \"@mui/material/List\";\r\nimport ListSubheader from \"@mui/material/ListSubheader\";\r\nimport { Fragment, useEffect, useState } from \"react\";\r\nimport { NavigationListItem } from \"./NavigationListItem\";\r\nimport { MINI_WIDTH } from \"./NavigationRail\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { Navigation, NavigationDivider, NavigationHeader, NavigationItem, NavigationPageItem } from \"~/models/Navigation\";\r\n\r\nexport const isPageItem = (item: NavigationItem): item is NavigationPageItem => !(\"kind\" in item);\r\nexport const isDivider = (item: NavigationItem): item is NavigationDivider => \"kind\" in item && item.kind === \"divider\";\r\nexport const isHeader = (item: NavigationItem): item is NavigationHeader => \"kind\" in item && item.kind === \"header\";\r\n\r\ninterface NavigationListProps {\r\n subNavigation: Navigation;\r\n depth?: number;\r\n collapsed?: boolean;\r\n isPopover?: boolean;\r\n isSidebarFullyExpanded?: boolean;\r\n isSidebarFullyCollapsed?: boolean;\r\n expandedWidth: number | string;\r\n renderItem?: (item: NavigationPageItem, context: { collapsed: boolean }) => ReactNode;\r\n activePath?: string | null;\r\n onNavigate: (item: NavigationPageItem) => void;\r\n onClose?: () => void;\r\n}\r\n\r\nexport const NavigationList: FC<NavigationListProps> = ({ subNavigation, depth = 0, collapsed, isPopover, isSidebarFullyExpanded = true, isSidebarFullyCollapsed, expandedWidth, renderItem, activePath, onNavigate, onClose }) => {\r\n const [openKeys, setOpenKeys] = useState<Array<string>>([]);\r\n\r\n useEffect(() => {\r\n if (collapsed) setOpenKeys([]);\r\n }, [collapsed]);\r\n\r\n const toggleKey = (key: string) =>\r\n setOpenKeys((previous) => (previous.includes(key) ? previous.filter((k) => k !== key) : [...previous, key]));\r\n\r\n const renderNested = (children: Array<NavigationItem>) => <NavigationList\r\n subNavigation={children}\r\n depth={depth + 1}\r\n isPopover={collapsed}\r\n expandedWidth={expandedWidth}\r\n activePath={activePath}\r\n onNavigate={onNavigate}\r\n onClose={onClose}\r\n />;\r\n\r\n const filteredNavigation = subNavigation.filter(nav => !nav.hidden);\r\n\r\n return (\r\n <List\r\n sx={{\r\n padding: 0,\r\n mt: isPopover && depth === 1 ? 0.5 : 0,\r\n mb: depth === 0 && !isPopover ? 4 : 0.5,\r\n pl: (isPopover ? 1 : 2) * (isPopover ? depth - 1 : depth),\r\n minWidth: isPopover && depth === 1 ? 240 : \"auto\",\r\n width: collapsed ? MINI_WIDTH : \"auto\",\r\n }}\r\n >\r\n {filteredNavigation.map((navItem, index) => {\r\n if (isHeader(navItem)) {\r\n return (\r\n <ListSubheader\r\n key={`subheader-${depth}-${index}`}\r\n sx={{\r\n fontSize: 12,\r\n fontWeight: \"700\",\r\n height: collapsed ? 0 : 40,\r\n px: 2,\r\n overflow: \"hidden\",\r\n textOverflow: \"ellipsis\",\r\n whiteSpace: \"nowrap\",\r\n zIndex: 2,\r\n bgcolor: \"transparent\",\r\n position: \"static\"\r\n }}\r\n >\r\n {navItem.title}\r\n </ListSubheader>\r\n );\r\n }\r\n\r\n if (isDivider(navItem)) {\r\n const nextItem = filteredNavigation[index + 1];\r\n return (\r\n <li key={`divider-${depth}-${index}`}>\r\n <Divider sx={{ mx: 1, mt: 1, mb: isHeader(nextItem) && !collapsed ? 0 : 1 }} />\r\n </li>\r\n );\r\n }\r\n\r\n if (!isPageItem(navItem)) return null;\r\n\r\n const key = `item-${depth}-${index}`;\r\n const uniqueItemKey = `${depth}-${index}-${navItem.title}`;\r\n\r\n if (renderItem) return <Fragment key={key}>{renderItem(navItem, { collapsed: !!collapsed })}</Fragment>;\r\n\r\n return <NavigationListItem\r\n key={key}\r\n item={navItem}\r\n isOpen={openKeys.includes(uniqueItemKey)}\r\n selected={activePath === navItem.to}\r\n collapsed={collapsed}\r\n isSidebarFullyExpanded={isSidebarFullyExpanded}\r\n isSidebarFullyCollapsed={isSidebarFullyCollapsed}\r\n onClick={navItem.children && !collapsed ? () => toggleKey(uniqueItemKey) : undefined}\r\n renderNested={renderNested}\r\n onClose={onClose}\r\n />;\r\n })}\r\n </List>\r\n );\r\n};\r\n","import { useMediaQuery } from \"@mui/material\";\r\nimport Box from \"@mui/material/Box\";\r\nimport Drawer from \"@mui/material/Drawer\";\r\nimport { useTheme } from \"@mui/material/styles\";\r\nimport { useNavigate, useRouterState } from \"@tanstack/react-router\";\r\nimport { NavigationList, isHeader } from \"./NavigationList\";\r\nimport type { FC } from \"react\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\n\r\nexport const MINI_WIDTH = 84;\r\nexport const EXPANDED_WIDTH = 320;\r\nexport const TOOLBAR_HEIGHT = 64;\r\n\r\ninterface NavigationRailProps {\r\n navigation: Navigation;\r\n expanded: boolean;\r\n setExpanded: (open: boolean) => void;\r\n}\r\n\r\nexport const NavigationRail: FC<NavigationRailProps> = ({ navigation, expanded, setExpanded }) => {\r\n const navigate = useNavigate();\r\n const routerState = useRouterState();\r\n const theme = useTheme();\r\n const showPermanent = useMediaQuery(theme.breakpoints.up(\"sm\"));\r\n\r\n const drawerContent = (collapsed: boolean) => (\r\n <Box\r\n component=\"nav\"\r\n sx={{\r\n height: \"100%\",\r\n display: \"flex\",\r\n flexDirection: \"column\",\r\n justifyContent: \"space-between\",\r\n overflow: \"auto\",\r\n scrollbarGutter: collapsed ? \"stable\" : \"auto\",\r\n overflowX: \"hidden\",\r\n pt: navigation[0] && isHeader(navigation[0]) && !collapsed ? 0 : 2,\r\n }}\r\n >\r\n <NavigationList\r\n subNavigation={navigation}\r\n collapsed={collapsed}\r\n isSidebarFullyExpanded={expanded}\r\n isSidebarFullyCollapsed={!expanded}\r\n expandedWidth={EXPANDED_WIDTH}\r\n activePath={routerState.location.pathname}\r\n onNavigate={navigate}\r\n onClose={!showPermanent ? () => setExpanded(false) : undefined}\r\n />\r\n </Box>\r\n );\r\n\r\n if (showPermanent)\r\n return (\r\n <Drawer\r\n variant=\"permanent\"\r\n sx={{\r\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\r\n [\"& .MuiDrawer-paper\"]: {\r\n position: \"absolute\",\r\n top: `${TOOLBAR_HEIGHT}px`,\r\n height: `calc(100% - ${TOOLBAR_HEIGHT}px)`,\r\n width: expanded ? EXPANDED_WIDTH : MINI_WIDTH,\r\n borderTop: \"1px solid\",\r\n borderColor: \"var(--mui-palette-divider)\",\r\n },\r\n }}\r\n >\r\n {drawerContent(!expanded)}\r\n </Drawer>\r\n );\r\n\r\n return (\r\n <Drawer\r\n open={expanded}\r\n onClose={() => setExpanded(false)}\r\n sx={{\r\n \"& .MuiDrawer-paper\": {\r\n width: \"min(280px, calc(100vw - 56px))\",\r\n },\r\n }}\r\n >\r\n {drawerContent(false)}\r\n </Drawer>\r\n );\r\n};\r\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 { 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 { getUser } from \"~/lib/auth/msalClient\";\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 = getUser();\r\n\r\n const { data: userPhoto } = useQuery(graphQueries.sessionUserPhoto());\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: \"light\" | \"dark\" | \"system\"; 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} />\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 {userPhoto ?\r\n <Avatar src={userPhoto} sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n :\r\n <AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n }\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 {isAuthenticated ?\r\n <Fragment>\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\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 </Fragment>\r\n :\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 }\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 { InteractionType } from \"@azure/msal-browser\";\r\nimport { AuthenticatedTemplate, useMsalAuthentication } 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 type { FC, ReactNode } from \"react\";\r\nimport { useState } from \"react\";\r\nimport { Platform } from \"~/lib/utils\";\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 children: ReactNode;\r\n}\r\n\r\nexport const Layout: FC<LayoutProps> = (props) => {\r\n useMsalAuthentication(InteractionType.Redirect);\r\n const [navigationOpen, setNavigationOpen] = useState(getInitialNavigationOpen);\r\n\r\n return (\r\n <AuthenticatedTemplate>\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 {props.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 {props.navigation &&\r\n <NavigationRail\r\n navigation={props.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 {props.children}\r\n </Box>\r\n </Box>\r\n </Box>\r\n </AuthenticatedTemplate>\r\n );\r\n};\r\n","import { 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 { useEffect, useEffectEvent } from \"react\";\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 { AuthProvider } from \"./AuthProvider\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\nimport type { Theme } from \"@mui/material\";\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 });\r\n\r\ninterface ProvidersProps {\r\n navigation?: Navigation;\r\n theme: Theme;\r\n children: ReactNode;\r\n}\r\n\r\nexport const LayoutProvider: FC<ProvidersProps> = ({ navigation, theme, children }) => {\r\n const languageChangedHandler = useEffectEvent(() => {\r\n z.config(z.core.locales[i18n.language as keyof typeof z.core.locales]());\r\n dayjs.locale(i18n.language);\r\n });\r\n\r\n useEffect(() => {\r\n languageChangedHandler();\r\n\r\n i18n.on(\"languageChanged\", languageChangedHandler);\r\n return () => { i18n.off(\"languageChanged\", languageChangedHandler); };\r\n }, []);\r\n\r\n return (\r\n <ThemeProvider theme={theme}>\r\n <LocalizationProvider key={i18n.language} dateAdapter={AdapterDayjs} adapterLocale={i18n.language}>\r\n <DialogsProvider>\r\n <AuthProvider>\r\n <Layout navigation={navigation}>\r\n {children}\r\n </Layout>\r\n </AuthProvider>\r\n </DialogsProvider>\r\n </LocalizationProvider>\r\n </ThemeProvider>\r\n );\r\n};\r\n"],"names":["slice","forEach","defaults","obj","source","prop","hasXSS","input","pattern","fieldContentRegExp","serializeCookie","name","val","opt","value","str","maxAge","cookie","minutes","domain","cookieOptions","nameEQ","ca","i","c","cookie$1","_ref","lookupCookie","lng","_ref2","cookieMinutes","cookieDomain","querystring","lookupQuerystring","found","search","params","pos","hash","lookupHash","lookupFromHashIndex","query","language","hasLocalStorageSupport","localStorageAvailable","testKey","localStorage","lookupLocalStorage","hasSessionStorageSupport","sessionStorageAvailable","sessionStorage","lookupSessionStorage","navigator$1","options","languages","userLanguage","htmlTag","internalHtmlTag","path","lookupFromPathIndex","subdomain","lookupFromSubdomainIndex","internalLookupFromSubdomainIndex","canCookies","order","getDefaults","l","Browser","services","i18nOptions","detector","detectionOrder","detected","detectorName","lookup","d","caches","cacheName","initReactI18next","instance","setDefaults","setI18n","DialogsProvider","children","stack","setStack","useState","keyPrefix","useId","nextId","useRef","dialogMetadata","WeakMap","requestDialog","useEventCallback","Component","payload","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","AuthProvider","t0","$","_c","navigate","useNavigate","navigationClient","CustomNavigationClient","pca","setNavigationClient","t1","jsx","MsalProvider","AppTitle","Symbol","for","Stack","Typography","clientEnv","VITE_APP_TITLE","Chip","ICON_SIZE","StyledNavButton","styled","ListItemButton","theme","borderRadius","color","vars","palette","primary","dark","backgroundColor","action","active","StyledRouterButton","RouterListItemButton","IconOrAvatar","item","collapsed","icon","position","left","top","transform","t2","display","alignItems","justifyContent","minWidth","t3","t4","title","Avatar","width","height","fontSize","split","_temp","t5","ListItemIcon","t6","bottom","fontWeight","textAlign","whiteSpace","overflow","textOverflow","maxWidth","MINI_WIDTH","t7","Box","MiniPopover","pl","pb","pt","maxHeight","overflowY","overscrollBehavior","Paper","Grow","NavigationListItem","isOpen","selected","disabled","isSidebarFullyExpanded","isSidebarFullyCollapsed","onClick","renderNested","undefined","hoveredMiniItemId","setHoveredMiniItemId","itemId","to","right","ml","transition","transitions","create","easing","sharp","duration","chevronSx","shouldJustExpand","px","sx","buttonProps","ListItemText","noWrap","flex","t8","ExpandMoreIcon","t9","Fragment","buttonContent","t10","onMouseEnter","onMouseLeave","t11","py","overflowX","t12","href","t13","t14","ListItem","listItem","t15","Collapse","t16","word","charAt","toUpperCase","isPageItem","isDivider","kind","isHeader","NavigationList","subNavigation","depth","isPopover","expandedWidth","renderItem","activePath","onNavigate","openKeys","setOpenKeys","useEffect","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","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","url","responseType","then","response","data","staleTime","Infinity","gcTime","select","URL","createObjectURL","capitalize","ToolbarAccount","anchorElement","setAnchorElement","tab","setTab","Boolean","t","i18n","useTranslation","mode","setMode","useColorScheme","useMsal","isAuthenticated","useIsAuthenticated","getUser","user","userPhoto","useQuery","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","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","AccountCircle","employeeId","department","logoutRedirect","postLogoutRedirectUri","Logout","loginRedirect","Login","Menu","NAVIGATION_STORAGE_KEY","getInitialNavigationOpen","Platform","isWindows","isMacOS","getItem","saveNavigationState","setItem","String","DrawerHeader","spacing","mixins","toolbar","Layout","props","useMsalAuthentication","InteractionType","Redirect","navigationOpen","setNavigationOpen","InitColorSchemeScript","CssBaseline","borderBottom","boxShadow","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","flexGrow","AuthenticatedTemplate","YEAR_IN_MINUTES","LanguageDetector","init","resources","fallbackLng","Object","keys","detection","interpolation","escapeValue","LayoutProvider","languageChangedHandler","useEffectEvent","on","off","LocalizationProvider","AdapterDayjs","ThemeProvider","z","core","locales","dayjs","locale"],"mappings":"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","x_google_ignoreList":[0,1]}
@@ -1,7 +1,7 @@
1
1
  import { createMiddleware as k } from "@tanstack/react-start";
2
2
  import { permissions as re } from "virtual:wcz-layout";
3
- import { a as H } from "./env-Dy8Ynqa-.js";
4
- import { g as ne } from "./msalClient-l-DV8PoB.js";
3
+ import { c as H } from "./utils-BXxJ2sNo.js";
4
+ import { g as ne } from "./msalClient-Cem8ZXIU.js";
5
5
  const N = new TextEncoder(), v = new TextDecoder();
6
6
  function ae(...e) {
7
7
  const t = e.reduce((a, { length: i }) => a + i, 0), r = new Uint8Array(t);