wcz-test 6.28.0 → 7.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/{FileHooks-DCznEPaA.js → FileHooks-CstZ4QII.js} +21 -20
- package/dist/{FileHooks-DCznEPaA.js.map → FileHooks-CstZ4QII.js.map} +1 -1
- package/dist/GraphQueries-BOAnio_H.js +28021 -0
- package/dist/GraphQueries-BOAnio_H.js.map +1 -0
- package/dist/auth.d.ts +14 -0
- package/dist/auth.js +38 -0
- package/dist/auth.js.map +1 -0
- package/dist/bun-sqlite-dialect-z0b9N0QU.js +143 -0
- package/dist/bun-sqlite-dialect-z0b9N0QU.js.map +1 -0
- package/dist/components.js +1 -1
- package/dist/hooks.js +1 -2
- package/dist/hooks.js.map +1 -1
- package/dist/index-C8xwvJpf.js +159 -0
- package/dist/index-C8xwvJpf.js.map +1 -0
- package/dist/index-CbycwLQM.js +227 -0
- package/dist/index-CbycwLQM.js.map +1 -0
- package/dist/{utils-DV30kRxW.js → index-Y_pgyGkL.js} +365 -441
- package/dist/index-Y_pgyGkL.js.map +1 -0
- package/dist/index.js +567 -547
- package/dist/index.js.map +1 -1
- package/dist/node-sqlite-dialect-CfkKTzbw.js +143 -0
- package/dist/node-sqlite-dialect-CfkKTzbw.js.map +1 -0
- package/dist/queries.js +55 -54
- package/dist/queries.js.map +1 -1
- package/dist/utils-araYIHAE.js +81 -0
- package/dist/utils-araYIHAE.js.map +1 -0
- package/dist/utils.js +6 -5
- package/dist/utils.js.map +1 -1
- package/package.json +7 -3
- package/dist/utils-DV30kRxW.js.map +0 -1
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 { Box, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, useColorScheme } from \"@mui/material\";\r\nimport { Fragment, Suspense, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { FC } from \"react\";\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\r\n const supportedLanguages = (Array.isArray(i18n.options.supportedLngs) ? i18n.options.supportedLngs : []).filter(lng => lng !== \"cimode\");\r\n const languageDisplayNames = new Intl.DisplayNames([i18n.language], { type: \"language\" });\r\n\r\n const colorModes: Array<{ mode: \"light\" | \"dark\" | \"system\"; icon: typeof LightMode; label: string }> = [\r\n { mode: \"light\", icon: LightMode, label: t(\"Layout.Light\") },\r\n { mode: \"dark\", icon: DarkMode, label: t(\"Layout.Dark\") },\r\n { mode: \"system\", icon: SettingsBrightness, label: t(\"Layout.System\") },\r\n ];\r\n\r\n const openMenu = (event: React.MouseEvent<HTMLButtonElement, MouseEvent>) => setAnchorElement(event.currentTarget);\r\n const closeMenu = () => { setAnchorElement(undefined); setTimeout(() => setTab(\"settings\"), 300); };\r\n\r\n const changeTab = (newTab: TabType) => () => setTab(newTab);\r\n\r\n const settings = (\r\n <List component=\"nav\" subheader={<ListSubheader sx={{ backgroundColor: \"transparent\" }}>{t(\"Layout.Settings\")}</ListSubheader>}>\r\n <ListItemButton onClick={changeTab(\"theme\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Brightness4 />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Appearance\")} secondary={colorModes.find((m) => m.mode === mode)?.label} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n\r\n <ListItemButton onClick={changeTab(\"language\")} sx={{ py: 0.3 }}>\r\n <ListItemIcon>\r\n <Translate />\r\n </ListItemIcon>\r\n <ListItemText primary={t(\"Layout.Language\")} secondary={capitalize(languageDisplayNames.of(i18n.language))} />\r\n <ChevronRight />\r\n </ListItemButton>\r\n </List>\r\n );\r\n\r\n const theme = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Appearance\")}\r\n </ListSubheader>\r\n }>\r\n {colorModes.map(({ mode: modeValue, icon: Icon, label }) => (\r\n <ListItemButton\r\n key={modeValue}\r\n onClick={() => {\r\n setMode(modeValue);\r\n closeMenu();\r\n }}\r\n selected={mode === modeValue}\r\n >\r\n <ListItemIcon>\r\n <Icon />\r\n </ListItemIcon>\r\n <ListItemText primary={label} />\r\n </ListItemButton>\r\n ))}\r\n </List>\r\n );\r\n\r\n const language = (\r\n <List subheader={\r\n <ListSubheader onClick={changeTab(\"settings\")} sx={{ backgroundColor: \"transparent\", display: \"flex\", alignItems: \"center\", px: 1, cursor: \"pointer\" }}>\r\n <IconButton size=\"small\" sx={{ mr: 0.5 }}>\r\n <ArrowBack fontSize=\"small\" />\r\n </IconButton> {t(\"Layout.Language\")}\r\n </ListSubheader>\r\n }>\r\n {supportedLanguages.map((languageCode) =>\r\n <ListItemButton\r\n key={languageCode}\r\n onClick={() => i18n.changeLanguage(languageCode).finally(() => closeMenu())}\r\n selected={i18n.resolvedLanguage === languageCode}\r\n >\r\n <ListItemIcon>\r\n {i18n.resolvedLanguage === languageCode && <Done />}\r\n </ListItemIcon>\r\n <ListItemText primary={capitalize(languageDisplayNames.of(languageCode))} />\r\n </ListItemButton>\r\n )}\r\n </List>\r\n );\r\n\r\n return (\r\n <Fragment>\r\n <IconButton size=\"small\" edge=\"end\" onClick={openMenu}>\r\n <AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />\r\n <Suspense fallback={<AccountCircle sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />}>\r\n {/* <Await promise={getSessionUserPhoto()}>\r\n {data => <Avatar src={data} sx={{ width: { xs: 32, sm: 40 }, height: { xs: 32, sm: 40 } }} />}\r\n </Await> */}\r\n </Suspense>\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 {/* <Await promise={}>\r\n {data => <ListItemText primary={data.displayName.split(\"/\")[0]} secondary={data.jobTitle} />}\r\n </Await> */}\r\n </ListItem>\r\n\r\n <ListItemButton\r\n onClick={() =>\r\n console.log(\"Logout clicked\")\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","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","type","LightMode","label","DarkMode","SettingsBrightness","colorModes","newTab","changeTab","t17","Brightness4","t18","t19","find","m","t20","t21","ChevronRight","t22","t23","t24","t25","Translate","t26","t27","t28","of","t29","t30","t31","cursor","t32","IconButton","mr","ArrowBack","t33","t34","t35","t36","modeValue","Icon","t37","t38","t39","t40","languageCode","changeLanguage","finally","resolvedLanguage","Done","AccountCircle","xs","sm","Suspense","Logout","_temp2","Menu","console","log","YEAR_IN_SECONDS","getNavigationOpenStatus","createIsomorphicFn","server","getCookie","client","document","split","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","../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]}
|