wcz-test 7.0.2 → 7.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (73) hide show
  1. package/dist/DialogsContext-8xfQ3X-k.js +285 -0
  2. package/dist/DialogsContext-8xfQ3X-k.js.map +1 -0
  3. package/dist/{DialogsHooks-BZUdpDVJ.js → DialogsHooks-BXfwbYWP.js} +14 -14
  4. package/dist/{DialogsHooks-BZUdpDVJ.js.map → DialogsHooks-BXfwbYWP.js.map} +1 -1
  5. package/dist/FileMeta-CDQ1BQUH.js +21 -0
  6. package/dist/FileMeta-CDQ1BQUH.js.map +1 -0
  7. package/dist/RouterListItemButton-DrW6M53Y.js +17 -0
  8. package/dist/{RouterListItemButton-C_jUvB6C.js.map → RouterListItemButton-DrW6M53Y.js.map} +1 -1
  9. package/dist/components.js +1158 -1132
  10. package/dist/components.js.map +1 -1
  11. package/dist/exports/components.d.ts +14 -0
  12. package/dist/exports/hooks.d.ts +6 -0
  13. package/dist/exports/index.d.ts +4 -0
  14. package/dist/exports/models.d.ts +24 -0
  15. package/dist/exports/query.d.ts +2 -0
  16. package/dist/exports/utils.d.ts +5 -0
  17. package/dist/exports/vite.d.ts +1 -0
  18. package/dist/hooks.js +466 -421
  19. package/dist/hooks.js.map +1 -1
  20. package/dist/index-DchOf6FV.js +2756 -0
  21. package/dist/index-DchOf6FV.js.map +1 -0
  22. package/dist/{index-Y_pgyGkL.js → index-De6Lo0ff.js} +531 -603
  23. package/dist/index-De6Lo0ff.js.map +1 -0
  24. package/dist/index.js +822 -666
  25. package/dist/index.js.map +1 -1
  26. package/dist/models.js +2 -2
  27. package/dist/query.js +6 -0
  28. package/dist/query.js.map +1 -0
  29. package/dist/utils-Dttzp8un.js +10879 -0
  30. package/dist/utils-Dttzp8un.js.map +1 -0
  31. package/dist/utils.js +271 -8
  32. package/dist/utils.js.map +1 -1
  33. package/dist/vite.js +53 -26
  34. package/dist/vite.js.map +1 -1
  35. package/package.json +6 -10
  36. package/dist/ApprovalStatus-lESbUD_x.js +0 -7
  37. package/dist/ApprovalStatus-lESbUD_x.js.map +0 -1
  38. package/dist/DialogsContext-CGAKEKKW.js +0 -546
  39. package/dist/DialogsContext-CGAKEKKW.js.map +0 -1
  40. package/dist/FileHooks-CstZ4QII.js +0 -2699
  41. package/dist/FileHooks-CstZ4QII.js.map +0 -1
  42. package/dist/FileMeta-Bzeo3ie9.js +0 -18
  43. package/dist/FileMeta-Bzeo3ie9.js.map +0 -1
  44. package/dist/GraphQueries-Bx0CzlWR.js +0 -28020
  45. package/dist/GraphQueries-Bx0CzlWR.js.map +0 -1
  46. package/dist/RouterListItemButton-C_jUvB6C.js +0 -18
  47. package/dist/auth.d.ts +0 -8
  48. package/dist/auth.js +0 -6
  49. package/dist/auth.js.map +0 -1
  50. package/dist/bun-sqlite-dialect-CZjbVcY_.js +0 -143
  51. package/dist/bun-sqlite-dialect-CZjbVcY_.js.map +0 -1
  52. package/dist/compiler-runtime-BNHg76kC.js +0 -37
  53. package/dist/compiler-runtime-BNHg76kC.js.map +0 -1
  54. package/dist/components.d.ts +0 -44
  55. package/dist/hooks.d.ts +0 -26
  56. package/dist/index-BT7qlAad.js +0 -159
  57. package/dist/index-BT7qlAad.js.map +0 -1
  58. package/dist/index-Biz5inV2.js +0 -268
  59. package/dist/index-Biz5inV2.js.map +0 -1
  60. package/dist/index-Phhmhd_m.js +0 -227
  61. package/dist/index-Phhmhd_m.js.map +0 -1
  62. package/dist/index-Y_pgyGkL.js.map +0 -1
  63. package/dist/index.d.ts +0 -20
  64. package/dist/models.d.ts +0 -107
  65. package/dist/node-sqlite-dialect-CSXFdUmA.js +0 -143
  66. package/dist/node-sqlite-dialect-CSXFdUmA.js.map +0 -1
  67. package/dist/queries.d.ts +0 -95
  68. package/dist/queries.js +0 -567
  69. package/dist/queries.js.map +0 -1
  70. package/dist/utils-araYIHAE.js +0 -81
  71. package/dist/utils-araYIHAE.js.map +0 -1
  72. package/dist/utils.d.ts +0 -14
  73. package/dist/vite.d.ts +0 -5
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/components/core/AppTitle.tsx","../src/components/core/navigation/NavigationListItem.tsx","../src/components/core/navigation/NavigationList.tsx","../src/components/core/navigation/NavigationRail.tsx","../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 { 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 } 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 Popper from \"@mui/material/Popper\";\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 }}>{item.title}</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 anchorEl: HTMLElement | null;\r\n children?: ReactNode;\r\n}\r\n\r\nconst MiniPopover: FC<MiniPopoverProps> = ({ open, anchorEl, children }) => (\r\n <Popper\r\n open={open}\r\n anchorEl={anchorEl}\r\n placement=\"right-start\"\r\n modifiers={[\r\n { name: \"offset\", options: { offset: [6, 0] } },\r\n { name: \"preventOverflow\", options: { padding: 8 } },\r\n { name: \"flip\", options: { fallbackPlacements: [\"right-end\", \"left-start\"] } },\r\n ]}\r\n >\r\n <Paper\r\n sx={{\r\n pt: 0.5,\r\n pb: 0.5,\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 </Popper>\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 [hoveredPopoverItem, setHoveredPopoverItem] = useState<string | null>(null);\r\n const [anchorElement, setAnchorElement] = useState<HTMLElement | null>(null);\r\n\r\n const chevronSx: SxProps<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 };\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: (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorElement(event.currentTarget);\r\n setHoveredPopoverItem(item.title);\r\n },\r\n onMouseLeave: () => {\r\n setHoveredPopoverItem(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={item.title === hoveredPopoverItem} anchorEl={anchorElement}>\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 { EXPANDED_WIDTH, 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 ? EXPANDED_WIDTH : \"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 minWidth: expandedWidth,\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};","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 open={expanded} onClose={() => setExpanded(false)}>\r\n {drawerContent(!expanded)}\r\n </Drawer>\r\n );\r\n};\r\n","import 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 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, Skeleton, useColorScheme } from \"@mui/material\";\r\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { useRouter } from \"@tanstack/react-router\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { FC } from \"react\";\r\nimport { authClient, 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 router = useRouter();\r\n const queryClient = useQueryClient();\r\n\r\n const { data: userPhoto } = useQuery(graphQueries.sessionUserPhoto());\r\n const { data: userDetail } = useQuery({ ...graphQueries.sessionUserDetail(), enabled: open });\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\r\n size=\"small\"\r\n edge=\"end\"\r\n onClick={openMenu}\r\n onMouseEnter={() => queryClient.prefetchQuery(graphQueries.sessionUserDetail())}\r\n >\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 <ListItem>\r\n {userDetail ?\r\n <ListItemText primary={userDetail.displayName.split(\"/\")[0]} secondary={userDetail.jobTitle} />\r\n :\r\n <ListItemText primary={<Skeleton />} secondary={<Skeleton />} />\r\n }\r\n </ListItem>\r\n\r\n <ListItemButton\r\n onClick={() =>\r\n authClient.signOut({\r\n fetchOptions: {\r\n onSuccess: () => router.invalidate()\r\n },\r\n })\r\n }\r\n >\r\n <ListItemIcon><Logout color=\"error\" /></ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Logout\")} />\r\n </ListItemButton>\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 Menu from \"@mui/icons-material/Menu\";\r\nimport MenuOpen from \"@mui/icons-material/MenuOpen\";\r\nimport { AppBar, Box, CssBaseline, IconButton, InitColorSchemeScript, LinearProgress, Toolbar } from \"@mui/material\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport { useIsFetching, useIsMutating } from \"@tanstack/react-query\";\r\nimport { createIsomorphicFn } from \"@tanstack/react-start\";\r\nimport { getCookie } from \"@tanstack/react-start/server\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { AppTitle } from \"./AppTitle\";\r\nimport { NavigationRail } from \"./navigation/NavigationRail\";\r\nimport { ToolbarAccount } from \"./ToolbarAccount\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\n\r\nconst YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\r\n\r\nconst getNavigationOpenStatus = createIsomorphicFn()\r\n .server(() => {\r\n const cookie = getCookie(\"navigationOpen\");\r\n return cookie === \"true\";\r\n })\r\n .client(() => {\r\n const cookie = document.cookie\r\n .split(\"; \")\r\n .find(row => row.startsWith(\"navigationOpen=\"));\r\n return cookie ? cookie.split(\"=\")[1] === \"true\" : false;\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 const [navigationOpen, setNavigationOpen] = useState(getNavigationOpenStatus);\r\n const isFetching = !!useIsFetching();\r\n const isMutating = !!useIsMutating();\r\n\r\n return (\r\n <Fragment>\r\n <InitColorSchemeScript />\r\n <CssBaseline />\r\n\r\n <Box sx={{ display: \"flex\", height: \"100dvh\", maxHeight: \"100dvh\", overflow: \"hidden\", width: \"100%\" }}>\r\n <AppBar\r\n color=\"transparent\"\r\n position=\"fixed\"\r\n sx={{\r\n borderBottom: \"1px solid\",\r\n borderColor: \"var(--mui-palette-divider)\",\r\n boxShadow: \"none\",\r\n }}>\r\n <Toolbar>\r\n {props.navigation &&\r\n <IconButton\r\n onClick={() => {\r\n setNavigationOpen(previous => {\r\n const newValue = !previous;\r\n document.cookie = `navigationOpen=${newValue}; max-age=${YEAR_IN_SECONDS}; path=/`;\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 document.cookie = `navigationOpen=${newValue}; max-age=${YEAR_IN_SECONDS}; path=/`;\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\r\n {(isFetching || isMutating) && <LinearProgress sx={{ position: \"fixed\", top: { xs: 56, sm: 64 }, left: 0, right: 0 }} />}\r\n </Fragment>\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 { createServerFn } from \"@tanstack/react-start\";\r\nimport { getCookie } from \"@tanstack/react-start/server\";\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 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 <Layout navigation={navigation}>\r\n {children}\r\n </Layout>\r\n </DialogsProvider>\r\n </LocalizationProvider>\r\n </ThemeProvider>\r\n );\r\n};\r\n\r\nexport const setSSRLanguage = createServerFn().handler(async () => {\r\n const language = getCookie(i18n.services.languageDetector.options.lookupCookie) || \"en\";\r\n z.config(z.core.locales[language as keyof typeof z.core.locales]());\r\n dayjs.locale(language);\r\n await i18n.changeLanguage(language);\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","AppTitle","$","_c","t0","Symbol","for","Stack","jsx","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","t1","position","left","top","transform","t2","display","alignItems","justifyContent","minWidth","t3","t4","title","Avatar","width","height","fontSize","t5","ListItemIcon","t6","bottom","fontWeight","textAlign","whiteSpace","overflow","textOverflow","maxWidth","MINI_WIDTH","t7","Box","MiniPopover","anchorEl","offset","padding","fallbackPlacements","pt","pb","maxHeight","overflowY","overscrollBehavior","Paper","Popper","NavigationListItem","isOpen","selected","disabled","isSidebarFullyExpanded","isSidebarFullyCollapsed","onClick","renderNested","undefined","hoveredPopoverItem","setHoveredPopoverItem","anchorElement","setAnchorElement","right","ml","chevronSx","shouldJustExpand","px","sx","buttonProps","ListItemText","noWrap","flex","t8","ExpandMoreIcon","t9","Fragment","buttonContent","t10","onMouseEnter","event","currentTarget","onMouseLeave","t11","py","overflowX","t12","to","href","t13","t14","ListItem","listItem","t15","Collapse","t16","isPageItem","isDivider","kind","isHeader","NavigationList","subNavigation","depth","isPopover","expandedWidth","renderItem","activePath","onNavigate","openKeys","setOpenKeys","useEffect","previous","includes","k","toggleKey","filteredNavigation","_temp","EXPANDED_WIDTH","mt","mb","pl","List","navItem","index","ListSubheader","zIndex","bgcolor","nextItem","Divider","mx","key_0","uniqueItemKey","nav","hidden","TOOLBAR_HEIGHT","NavigationRail","navigation","expanded","setExpanded","navigate","useNavigate","routerState","useRouterState","useTheme","breakpoints","up","showPermanent","useMediaQuery","location","pathname","flexDirection","scrollbarGutter","drawerContent","borderTop","borderColor","Drawer","capitalize","charAt","toUpperCase","ToolbarAccount","tab","setTab","Boolean","t","i18n","useTranslation","mode","setMode","useColorScheme","router","useRouter","queryClient","useQueryClient","graphQueries","sessionUserPhoto","data","userPhoto","useQuery","sessionUserDetail","enabled","userDetail","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","type","LightMode","label","DarkMode","SettingsBrightness","colorModes","newTab","changeTab","t17","t18","t19","t20","Brightness4","t21","t22","find","m","t23","t24","ChevronRight","t25","t26","t27","t28","Translate","t29","t30","t31","of","t32","t33","t34","cursor","t35","IconButton","mr","ArrowBack","t36","t37","t38","t39","modeValue","Icon","t40","t41","t42","t43","languageCode","changeLanguage","finally","resolvedLanguage","Done","prefetchQuery","xs","sm","AccountCircle","displayName","split","jobTitle","Skeleton","authClient","signOut","fetchOptions","onSuccess","invalidate","Logout","Menu","YEAR_IN_SECONDS","getNavigationOpenStatus","createIsomorphicFn","server","getCookie","client","document","row","startsWith","DrawerHeader","spacing","mixins","toolbar","Layout","props","navigationOpen","setNavigationOpen","isFetching","useIsFetching","isMutating","useIsMutating","InitColorSchemeScript","CssBaseline","borderBottom","boxShadow","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","flexGrow","LinearProgress","YEAR_IN_MINUTES","use","LanguageDetector","init","resources","fallbackLng","Object","keys","detection","interpolation","escapeValue","LayoutProvider","languageChangedHandler","useEffectEvent","on","off","LocalizationProvider","AdapterDayjs","ThemeProvider","setSSRLanguage","createServerFn","handler","languageDetector","z","config","core","locales","dayjs","locale"],"mappings":"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","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","../node_modules/@azure/msal-react/dist/hooks/useMsal.js","../node_modules/@azure/msal-react/dist/hooks/useIsAuthenticated.js","../node_modules/@azure/msal-react/dist/components/AuthenticatedTemplate.js","../node_modules/@azure/msal-react/dist/hooks/useAccount.js","../node_modules/@azure/msal-react/dist/error/ReactAuthError.js","../node_modules/@azure/msal-react/dist/hooks/useMsalAuthentication.js","../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","/*! @azure/msal-react v3.0.23 2025-12-04 */\n'use strict';\nimport { useContext } from 'react';\nimport { MsalContext } from '../MsalContext.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Returns Msal Context values\r\n */\r\nconst useMsal = () => useContext(MsalContext);\n\nexport { useMsal };\n//# sourceMappingURL=useMsal.js.map\n","/*! @azure/msal-react v3.0.23 2025-12-04 */\n'use strict';\nimport { useMemo } from 'react';\nimport { useMsal } from './useMsal.js';\nimport { InteractionStatus } from '@azure/msal-browser';\nimport { getAccountByIdentifiers } from '../utils/utilities.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction isAuthenticated(allAccounts, matchAccount) {\r\n if (matchAccount &&\r\n (matchAccount.username ||\r\n matchAccount.homeAccountId ||\r\n matchAccount.localAccountId)) {\r\n return !!getAccountByIdentifiers(allAccounts, matchAccount);\r\n }\r\n return allAccounts.length > 0;\r\n}\r\n/**\r\n * Returns whether or not a user is currently signed-in. Optionally provide 1 or more accountIdentifiers to determine if a specific user is signed-in\r\n * @param matchAccount\r\n */\r\nfunction useIsAuthenticated(matchAccount) {\r\n const { accounts: allAccounts, inProgress } = useMsal();\r\n const isUserAuthenticated = useMemo(() => {\r\n if (inProgress === InteractionStatus.Startup) {\r\n return false;\r\n }\r\n return isAuthenticated(allAccounts, matchAccount);\r\n }, [allAccounts, inProgress, matchAccount]);\r\n return isUserAuthenticated;\r\n}\n\nexport { useIsAuthenticated };\n//# sourceMappingURL=useIsAuthenticated.js.map\n","/*! @azure/msal-react v3.0.23 2025-12-04 */\n'use strict';\nimport React__default, { useMemo } from 'react';\nimport { getChildrenOrFunction } from '../utils/utilities.js';\nimport { useMsal } from '../hooks/useMsal.js';\nimport { useIsAuthenticated } from '../hooks/useIsAuthenticated.js';\nimport { InteractionStatus } from '@azure/msal-browser';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * Renders child components if user is authenticated\r\n * @param props\r\n */\r\nfunction AuthenticatedTemplate({ username, homeAccountId, localAccountId, children, }) {\r\n const context = useMsal();\r\n const accountIdentifier = useMemo(() => {\r\n return {\r\n username,\r\n homeAccountId,\r\n localAccountId,\r\n };\r\n }, [username, homeAccountId, localAccountId]);\r\n const isAuthenticated = useIsAuthenticated(accountIdentifier);\r\n if (isAuthenticated && context.inProgress !== InteractionStatus.Startup) {\r\n return (React__default.createElement(React__default.Fragment, null, getChildrenOrFunction(children, context)));\r\n }\r\n return null;\r\n}\n\nexport { AuthenticatedTemplate };\n//# sourceMappingURL=AuthenticatedTemplate.js.map\n","/*! @azure/msal-react v3.0.23 2025-12-04 */\n'use strict';\nimport { useState, useEffect } from 'react';\nimport { InteractionStatus, AccountEntity } from '@azure/msal-browser';\nimport { useMsal } from './useMsal.js';\nimport { getAccountByIdentifiers } from '../utils/utilities.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nfunction getAccount(instance, accountIdentifiers) {\r\n if (!accountIdentifiers ||\r\n (!accountIdentifiers.homeAccountId &&\r\n !accountIdentifiers.localAccountId &&\r\n !accountIdentifiers.username)) {\r\n // If no account identifiers are provided, return active account\r\n return instance.getActiveAccount();\r\n }\r\n return getAccountByIdentifiers(instance.getAllAccounts(), accountIdentifiers);\r\n}\r\n/**\r\n * Given 1 or more accountIdentifiers, returns the Account object if the user is signed-in\r\n * @param accountIdentifiers\r\n */\r\nfunction useAccount(accountIdentifiers) {\r\n const { instance, inProgress, logger } = useMsal();\r\n const [account, setAccount] = useState(() => {\r\n if (inProgress === InteractionStatus.Startup) {\r\n return null;\r\n }\r\n else {\r\n return getAccount(instance, accountIdentifiers);\r\n }\r\n });\r\n useEffect(() => {\r\n if (inProgress !== InteractionStatus.Startup) {\r\n setAccount((currentAccount) => {\r\n const nextAccount = getAccount(instance, accountIdentifiers);\r\n if (!AccountEntity.accountInfoIsEqual(currentAccount, nextAccount, true)) {\r\n logger.info(\"useAccount - Updating account\");\r\n return nextAccount;\r\n }\r\n return currentAccount;\r\n });\r\n }\r\n }, [inProgress, accountIdentifiers, instance, logger]);\r\n return account;\r\n}\n\nexport { useAccount };\n//# sourceMappingURL=useAccount.js.map\n","/*! @azure/msal-react v3.0.23 2025-12-04 */\n'use strict';\nimport { AuthError } from '@azure/msal-browser';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\nconst ReactAuthErrorMessage = {\r\n invalidInteractionType: {\r\n code: \"invalid_interaction_type\",\r\n desc: \"The provided interaction type is invalid.\",\r\n },\r\n unableToFallbackToInteraction: {\r\n code: \"unable_to_fallback_to_interaction\",\r\n desc: \"Interaction is required but another interaction is already in progress. Please try again when the current interaction is complete.\",\r\n },\r\n};\r\nclass ReactAuthError extends AuthError {\r\n constructor(errorCode, errorMessage) {\r\n super(errorCode, errorMessage);\r\n Object.setPrototypeOf(this, ReactAuthError.prototype);\r\n this.name = \"ReactAuthError\";\r\n }\r\n static createInvalidInteractionTypeError() {\r\n return new ReactAuthError(ReactAuthErrorMessage.invalidInteractionType.code, ReactAuthErrorMessage.invalidInteractionType.desc);\r\n }\r\n static createUnableToFallbackToInteractionError() {\r\n return new ReactAuthError(ReactAuthErrorMessage.unableToFallbackToInteraction.code, ReactAuthErrorMessage.unableToFallbackToInteraction.desc);\r\n }\r\n}\n\nexport { ReactAuthError, ReactAuthErrorMessage };\n//# sourceMappingURL=ReactAuthError.js.map\n","/*! @azure/msal-react v3.0.23 2025-12-04 */\n'use strict';\nimport { useState, useRef, useEffect, useCallback } from 'react';\nimport { InteractionStatus, InteractionType, EventType, InteractionRequiredAuthError, OIDC_DEFAULT_SCOPES } from '@azure/msal-browser';\nimport { useIsAuthenticated } from './useIsAuthenticated.js';\nimport { useMsal } from './useMsal.js';\nimport { useAccount } from './useAccount.js';\nimport { ReactAuthError } from '../error/ReactAuthError.js';\n\n/*\r\n * Copyright (c) Microsoft Corporation. All rights reserved.\r\n * Licensed under the MIT License.\r\n */\r\n/**\r\n * If a user is not currently signed in this hook invokes a login. Failed logins can be retried using the login callback returned.\r\n * If a user is currently signed in this hook attempts to acquire a token. Subsequent token requests can use the acquireToken callback returned.\r\n * Optionally provide a request object to be used in the login/acquireToken call.\r\n * Optionally provide a specific user that should be logged in.\r\n * @param interactionType\r\n * @param authenticationRequest\r\n * @param accountIdentifiers\r\n */\r\nfunction useMsalAuthentication(interactionType, authenticationRequest, accountIdentifiers) {\r\n const { instance, inProgress, logger } = useMsal();\r\n const isAuthenticated = useIsAuthenticated(accountIdentifiers);\r\n const account = useAccount(accountIdentifiers);\r\n const [[result, error], setResponse] = useState([null, null]);\r\n // Used to prevent state updates after unmount\r\n const mounted = useRef(true);\r\n useEffect(() => {\r\n return () => {\r\n mounted.current = false;\r\n };\r\n }, []);\r\n // Boolean used to check if interaction is in progress in acquireTokenSilent fallback. Use Ref instead of state to prevent acquireToken function from being regenerated on each change to interactionInProgress value\r\n const interactionInProgress = useRef(inProgress !== InteractionStatus.None);\r\n useEffect(() => {\r\n interactionInProgress.current = inProgress !== InteractionStatus.None;\r\n }, [inProgress]);\r\n // Flag used to control when the hook calls login/acquireToken\r\n const shouldAcquireToken = useRef(true);\r\n useEffect(() => {\r\n if (!!error) {\r\n // Errors should be handled by consuming component\r\n shouldAcquireToken.current = false;\r\n return;\r\n }\r\n if (!!result) {\r\n // Token has already been acquired, consuming component/application is responsible for renewing\r\n shouldAcquireToken.current = false;\r\n return;\r\n }\r\n }, [error, result]);\r\n const login = useCallback(async (callbackInteractionType, callbackRequest) => {\r\n const loginType = callbackInteractionType || interactionType;\r\n const loginRequest = callbackRequest || authenticationRequest;\r\n switch (loginType) {\r\n case InteractionType.Popup:\r\n logger.verbose(\"useMsalAuthentication - Calling loginPopup\");\r\n return instance.loginPopup(loginRequest);\r\n case InteractionType.Redirect:\r\n // This promise is not expected to resolve due to full frame redirect\r\n logger.verbose(\"useMsalAuthentication - Calling loginRedirect\");\r\n return instance\r\n .loginRedirect(loginRequest)\r\n .then(null);\r\n case InteractionType.Silent:\r\n logger.verbose(\"useMsalAuthentication - Calling ssoSilent\");\r\n return instance.ssoSilent(loginRequest);\r\n default:\r\n throw ReactAuthError.createInvalidInteractionTypeError();\r\n }\r\n }, [instance, interactionType, authenticationRequest, logger]);\r\n const acquireToken = useCallback(async (callbackInteractionType, callbackRequest) => {\r\n const fallbackInteractionType = callbackInteractionType || interactionType;\r\n let tokenRequest;\r\n if (callbackRequest) {\r\n logger.trace(\"useMsalAuthentication - acquireToken - Using request provided in the callback\");\r\n tokenRequest = {\r\n ...callbackRequest,\r\n };\r\n }\r\n else if (authenticationRequest) {\r\n logger.trace(\"useMsalAuthentication - acquireToken - Using request provided in the hook\");\r\n tokenRequest = {\r\n ...authenticationRequest,\r\n scopes: authenticationRequest.scopes || OIDC_DEFAULT_SCOPES,\r\n };\r\n }\r\n else {\r\n logger.trace(\"useMsalAuthentication - acquireToken - No request object provided, using default request.\");\r\n tokenRequest = {\r\n scopes: OIDC_DEFAULT_SCOPES,\r\n };\r\n }\r\n if (!tokenRequest.account && account) {\r\n logger.trace(\"useMsalAuthentication - acquireToken - Attaching account to request\");\r\n tokenRequest.account = account;\r\n }\r\n const getToken = async () => {\r\n logger.verbose(\"useMsalAuthentication - Calling acquireTokenSilent\");\r\n return instance\r\n .acquireTokenSilent(tokenRequest)\r\n .catch(async (e) => {\r\n if (e instanceof InteractionRequiredAuthError) {\r\n if (!interactionInProgress.current) {\r\n logger.error(\"useMsalAuthentication - Interaction required, falling back to interaction\");\r\n return login(fallbackInteractionType, tokenRequest);\r\n }\r\n else {\r\n logger.error(\"useMsalAuthentication - Interaction required but is already in progress. Please try again, if needed, after interaction completes.\");\r\n throw ReactAuthError.createUnableToFallbackToInteractionError();\r\n }\r\n }\r\n throw e;\r\n });\r\n };\r\n return getToken()\r\n .then((response) => {\r\n if (mounted.current) {\r\n setResponse([response, null]);\r\n }\r\n return response;\r\n })\r\n .catch((e) => {\r\n if (mounted.current) {\r\n setResponse([null, e]);\r\n }\r\n throw e;\r\n });\r\n }, [\r\n instance,\r\n interactionType,\r\n authenticationRequest,\r\n logger,\r\n account,\r\n login,\r\n ]);\r\n useEffect(() => {\r\n const callbackId = instance.addEventCallback((message) => {\r\n switch (message.eventType) {\r\n case EventType.LOGIN_SUCCESS:\r\n case EventType.SSO_SILENT_SUCCESS:\r\n if (message.payload) {\r\n setResponse([\r\n message.payload,\r\n null,\r\n ]);\r\n }\r\n break;\r\n case EventType.LOGIN_FAILURE:\r\n case EventType.SSO_SILENT_FAILURE:\r\n if (message.error) {\r\n setResponse([null, message.error]);\r\n }\r\n break;\r\n }\r\n });\r\n logger.verbose(`useMsalAuthentication - Registered event callback with id: ${callbackId}`);\r\n return () => {\r\n if (callbackId) {\r\n logger.verbose(`useMsalAuthentication - Removing event callback ${callbackId}`);\r\n instance.removeEventCallback(callbackId);\r\n }\r\n };\r\n }, [instance, logger]);\r\n useEffect(() => {\r\n if (shouldAcquireToken.current &&\r\n inProgress === InteractionStatus.None) {\r\n if (!isAuthenticated) {\r\n shouldAcquireToken.current = false;\r\n logger.info(\"useMsalAuthentication - No user is authenticated, attempting to login\");\r\n login().catch(() => {\r\n // Errors are saved in state above\r\n return;\r\n });\r\n }\r\n else if (account) {\r\n shouldAcquireToken.current = false;\r\n logger.info(\"useMsalAuthentication - User is authenticated, attempting to acquire token\");\r\n acquireToken().catch(() => {\r\n // Errors are saved in state above\r\n return;\r\n });\r\n }\r\n }\r\n }, [isAuthenticated, account, inProgress, login, acquireToken, logger]);\r\n return {\r\n login,\r\n acquireToken,\r\n result,\r\n error,\r\n };\r\n}\n\nexport { useMsalAuthentication };\n//# sourceMappingURL=useMsalAuthentication.js.map\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 } 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 Popper from \"@mui/material/Popper\";\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 }}>{item.title}</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 anchorEl: HTMLElement | null;\r\n children?: ReactNode;\r\n}\r\n\r\nconst MiniPopover: FC<MiniPopoverProps> = ({ open, anchorEl, children }) => (\r\n <Popper\r\n open={open}\r\n anchorEl={anchorEl}\r\n placement=\"right-start\"\r\n modifiers={[\r\n { name: \"offset\", options: { offset: [6, 0] } },\r\n { name: \"preventOverflow\", options: { padding: 8 } },\r\n { name: \"flip\", options: { fallbackPlacements: [\"right-end\", \"left-start\"] } },\r\n ]}\r\n >\r\n <Paper\r\n sx={{\r\n pt: 0.5,\r\n pb: 0.5,\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 </Popper>\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 [hoveredPopoverItem, setHoveredPopoverItem] = useState<string | null>(null);\r\n const [anchorElement, setAnchorElement] = useState<HTMLElement | null>(null);\r\n\r\n const chevronSx: SxProps<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 };\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: (event: React.MouseEvent<HTMLElement>) => {\r\n setAnchorElement(event.currentTarget);\r\n setHoveredPopoverItem(item.title);\r\n },\r\n onMouseLeave: () => {\r\n setHoveredPopoverItem(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={item.title === hoveredPopoverItem} anchorEl={anchorElement}>\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 { EXPANDED_WIDTH, 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 ? EXPANDED_WIDTH : \"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 minWidth: expandedWidth,\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};","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 open={expanded} onClose={() => setExpanded(false)}>\r\n {drawerContent(!expanded)}\r\n </Drawer>\r\n );\r\n};\r\n","import { queryOptions } from \"@tanstack/react-query\";\r\nimport axios from \"axios\";\r\nimport type { GraphUser } from \"~/models/User\";\r\nimport { getAccessToken } from \"~/lib/utils\";\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 sessionUserDetail: () =>\r\n queryOptions({\r\n queryKey: [QUERY_KEY, \"me\"],\r\n queryFn: async () => await api.request<GraphUser>({\r\n method: \"GET\",\r\n url: \"/me?$select=displayName,jobTitle\",\r\n }).then(response => response.data),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n }),\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 { 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 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, Skeleton, useColorScheme } from \"@mui/material\";\r\nimport { useQuery, useQueryClient } from \"@tanstack/react-query\";\r\nimport { Fragment, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { FC } from \"react\";\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 queryClient = useQueryClient();\r\n const { instance } = useMsal();\r\n\r\n const { data: userPhoto } = useQuery(graphQueries.sessionUserPhoto());\r\n const { data: userDetail } = useQuery({ ...graphQueries.sessionUserDetail(), enabled: open });\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\r\n size=\"small\"\r\n edge=\"end\"\r\n onClick={openMenu}\r\n onMouseEnter={() => queryClient.prefetchQuery(graphQueries.sessionUserDetail())}\r\n >\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 <ListItem>\r\n {userDetail ?\r\n <ListItemText primary={userDetail.displayName.split(\"/\")[0]} secondary={userDetail.jobTitle} />\r\n :\r\n <ListItemText primary={<Skeleton />} secondary={<Skeleton />} />\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 </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 Menu from \"@mui/icons-material/Menu\";\r\nimport MenuOpen from \"@mui/icons-material/MenuOpen\";\r\nimport { AppBar, Box, CssBaseline, IconButton, InitColorSchemeScript, LinearProgress, Toolbar } from \"@mui/material\";\r\nimport { styled } from \"@mui/material/styles\";\r\nimport { useIsFetching, useIsMutating } from \"@tanstack/react-query\";\r\nimport { useState } from \"react\";\r\nimport { AuthenticatedTemplate, useMsalAuthentication } from \"@azure/msal-react\";\r\nimport { InteractionType } from \"@azure/msal-browser\";\r\nimport { AppTitle } from \"./AppTitle\";\r\nimport { NavigationRail } from \"./navigation/NavigationRail\";\r\nimport { ToolbarAccount } from \"./ToolbarAccount\";\r\nimport type { Navigation } from \"~/models/Navigation\";\r\nimport type { FC, ReactNode } from \"react\";\r\n\r\nconst YEAR_IN_SECONDS = 60 * 60 * 24 * 365;\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(false);\r\n const isFetching = !!useIsFetching();\r\n const isMutating = !!useIsMutating();\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 document.cookie = `navigationOpen=${newValue}; max-age=${YEAR_IN_SECONDS}; path=/`;\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 document.cookie = `navigationOpen=${newValue}; max-age=${YEAR_IN_SECONDS}; path=/`;\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\r\n {(isFetching || isMutating) && <LinearProgress sx={{ position: \"fixed\", top: { xs: 56, sm: 64 }, left: 0, right: 0 }} />}\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","useMsal","useContext","MsalContext","isAuthenticated","allAccounts","matchAccount","getAccountByIdentifiers","useIsAuthenticated","inProgress","useMemo","InteractionStatus","AuthenticatedTemplate","username","homeAccountId","localAccountId","context","accountIdentifier","React__default","getChildrenOrFunction","getAccount","accountIdentifiers","useAccount","logger","account","setAccount","useEffect","currentAccount","nextAccount","AccountEntity","ReactAuthErrorMessage","ReactAuthError","AuthError","errorCode","errorMessage","useMsalAuthentication","interactionType","authenticationRequest","error","setResponse","mounted","interactionInProgress","shouldAcquireToken","login","useCallback","callbackInteractionType","callbackRequest","loginType","loginRequest","InteractionType","acquireToken","fallbackInteractionType","tokenRequest","OIDC_DEFAULT_SCOPES","e","InteractionRequiredAuthError","response","callbackId","message","EventType","AppTitle","$","_c","t0","Symbol","for","Stack","jsx","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","t1","position","left","top","transform","t2","display","alignItems","justifyContent","minWidth","t3","t4","title","Avatar","width","height","fontSize","t5","ListItemIcon","t6","bottom","fontWeight","textAlign","whiteSpace","overflow","textOverflow","maxWidth","MINI_WIDTH","t7","Box","MiniPopover","anchorEl","offset","padding","fallbackPlacements","pt","pb","maxHeight","overflowY","overscrollBehavior","Paper","Popper","NavigationListItem","isOpen","selected","disabled","isSidebarFullyExpanded","isSidebarFullyCollapsed","onClick","renderNested","undefined","hoveredPopoverItem","setHoveredPopoverItem","anchorElement","setAnchorElement","right","ml","chevronSx","shouldJustExpand","px","sx","buttonProps","ListItemText","noWrap","flex","t8","ExpandMoreIcon","t9","Fragment","buttonContent","t10","onMouseEnter","event","currentTarget","onMouseLeave","t11","py","overflowX","t12","to","href","t13","t14","ListItem","listItem","t15","Collapse","t16","isPageItem","isDivider","kind","isHeader","NavigationList","subNavigation","depth","isPopover","expandedWidth","renderItem","activePath","onNavigate","openKeys","setOpenKeys","previous","includes","k","toggleKey","filteredNavigation","_temp","EXPANDED_WIDTH","mt","mb","pl","List","navItem","index","ListSubheader","zIndex","bgcolor","nextItem","Divider","mx","key_0","uniqueItemKey","nav","hidden","TOOLBAR_HEIGHT","NavigationRail","navigation","expanded","setExpanded","navigate","useNavigate","routerState","useRouterState","useTheme","breakpoints","up","showPermanent","useMediaQuery","location","pathname","flexDirection","scrollbarGutter","drawerContent","borderTop","borderColor","Drawer","QUERY_KEY","api","axios","create","baseURL","interceptors","request","use","config","accessToken","getAccessToken","headers","graphQueries","sessionUserDetail","queryOptions","queryKey","queryFn","method","url","then","data","staleTime","Infinity","gcTime","sessionUserPhoto","responseType","select","URL","createObjectURL","capitalize","charAt","toUpperCase","ToolbarAccount","tab","setTab","Boolean","t","i18n","useTranslation","mode","setMode","useColorScheme","queryClient","useQueryClient","userPhoto","useQuery","enabled","userDetail","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","type","LightMode","label","DarkMode","SettingsBrightness","colorModes","newTab","changeTab","t17","t18","t19","t20","Brightness4","t21","t22","find","m","t23","t24","ChevronRight","t25","t26","t27","t28","Translate","t29","t30","t31","of","t32","t33","t34","cursor","t35","IconButton","mr","ArrowBack","t36","t37","t38","t39","modeValue","Icon","t40","t41","t42","t43","languageCode","changeLanguage","finally","resolvedLanguage","Done","prefetchQuery","xs","sm","AccountCircle","displayName","split","jobTitle","Skeleton","logoutRedirect","postLogoutRedirectUri","Logout","Menu","YEAR_IN_SECONDS","DrawerHeader","spacing","mixins","toolbar","Layout","props","Redirect","navigationOpen","setNavigationOpen","isFetching","useIsFetching","isMutating","useIsMutating","InitColorSchemeScript","CssBaseline","borderBottom","boxShadow","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","document","flexGrow","LinearProgress","YEAR_IN_MINUTES","LanguageDetector","init","resources","fallbackLng","Object","keys","detection","interpolation","escapeValue","LayoutProvider","languageChangedHandler","useEffectEvent","on","off","LocalizationProvider","AdapterDayjs","AuthProvider","ThemeProvider","z","core","locales","dayjs","locale"],"mappings":"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","x_google_ignoreList":[0,1,3,4,5,6,7,8]}