wcz-test 6.27.2 → 6.28.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (34) hide show
  1. package/dist/DialogsContext-CGAKEKKW.js +546 -0
  2. package/dist/DialogsContext-CGAKEKKW.js.map +1 -0
  3. package/dist/DialogsHooks-BZUdpDVJ.js +231 -0
  4. package/dist/{DialogsHooks-DzqOb2Zx.js.map → DialogsHooks-BZUdpDVJ.js.map} +1 -1
  5. package/dist/{FileHooks-C8Akmy_o.js → FileHooks-DCznEPaA.js} +65 -61
  6. package/dist/{FileHooks-C8Akmy_o.js.map → FileHooks-DCznEPaA.js.map} +1 -1
  7. package/dist/RouterListItemButton-C_jUvB6C.js +18 -0
  8. package/dist/RouterListItemButton-C_jUvB6C.js.map +1 -0
  9. package/dist/compiler-runtime-BNHg76kC.js +37 -0
  10. package/dist/compiler-runtime-BNHg76kC.js.map +1 -0
  11. package/dist/components.js +1652 -1013
  12. package/dist/components.js.map +1 -1
  13. package/dist/hooks.js +278 -278
  14. package/dist/hooks.js.map +1 -1
  15. package/dist/i18next-Bx3TmZAT.js +1337 -0
  16. package/dist/i18next-Bx3TmZAT.js.map +1 -0
  17. package/dist/index.js +842 -973
  18. package/dist/index.js.map +1 -1
  19. package/dist/queries.js +85 -85
  20. package/dist/queries.js.map +1 -1
  21. package/dist/utils-DV30kRxW.js +1921 -0
  22. package/dist/utils-DV30kRxW.js.map +1 -0
  23. package/dist/utils.js +4 -5
  24. package/dist/utils.js.map +1 -1
  25. package/package.json +1 -4
  26. package/dist/DialogsContext-2Yy6yhzQ.js +0 -6
  27. package/dist/DialogsContext-2Yy6yhzQ.js.map +0 -1
  28. package/dist/DialogsHooks-DzqOb2Zx.js +0 -233
  29. package/dist/RouterListItemButton-i4Ne2G-Z.js +0 -508
  30. package/dist/RouterListItemButton-i4Ne2G-Z.js.map +0 -1
  31. package/dist/_commonjsHelpers-DaMA6jEr.js +0 -9
  32. package/dist/_commonjsHelpers-DaMA6jEr.js.map +0 -1
  33. package/dist/utils-IWcYo8tM.js +0 -106
  34. package/dist/utils-IWcYo8tM.js.map +0 -1
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sources":["../node_modules/@babel/runtime/helpers/esm/extends.js","../node_modules/@babel/runtime/helpers/esm/objectWithoutPropertiesLoose.js","../node_modules/@mui/x-date-pickers/esm/LocalizationProvider/LocalizationProvider.js","../node_modules/@mui/utils/esm/useEnhancedEffect/useEnhancedEffect.js","../node_modules/@mui/utils/esm/useEventCallback/useEventCallback.js","../node_modules/@mui/x-internals/esm/warning/warning.js","../node_modules/@mui/x-date-pickers/esm/AdapterDayjs/AdapterDayjs.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":["function _extends() {\n return _extends = Object.assign ? Object.assign.bind() : function (n) {\n for (var e = 1; e < arguments.length; e++) {\n var t = arguments[e];\n for (var r in t) ({}).hasOwnProperty.call(t, r) && (n[r] = t[r]);\n }\n return n;\n }, _extends.apply(null, arguments);\n}\nexport { _extends as default };","function _objectWithoutPropertiesLoose(r, e) {\n if (null == r) return {};\n var t = {};\n for (var n in r) if ({}.hasOwnProperty.call(r, n)) {\n if (-1 !== e.indexOf(n)) continue;\n t[n] = r[n];\n }\n return t;\n}\nexport { _objectWithoutPropertiesLoose as default };","'use client';\n\nimport _extends from \"@babel/runtime/helpers/esm/extends\";\nimport _objectWithoutPropertiesLoose from \"@babel/runtime/helpers/esm/objectWithoutPropertiesLoose\";\nconst _excluded = [\"localeText\"];\nimport * as React from 'react';\nimport PropTypes from 'prop-types';\nimport { useThemeProps } from '@mui/material/styles';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nexport const PickerAdapterContext = /*#__PURE__*/React.createContext(null);\n\n// TODO v9: Remove this public export\n/**\n * The context that provides the date adapter and default dates to the pickers.\n * @deprecated Use `usePickersAdapter` hook if you need access to the adapter instead.\n */\nif (process.env.NODE_ENV !== \"production\") PickerAdapterContext.displayName = \"PickerAdapterContext\";\nexport const MuiPickersAdapterContext = PickerAdapterContext;\n/**\n * Demos:\n *\n * - [Date format and localization](https://mui.com/x/react-date-pickers/adapters-locale/)\n * - [Calendar systems](https://mui.com/x/react-date-pickers/calendar-systems/)\n * - [Translated components](https://mui.com/x/react-date-pickers/localization/)\n * - [UTC and timezones](https://mui.com/x/react-date-pickers/timezone/)\n *\n * API:\n *\n * - [LocalizationProvider API](https://mui.com/x/api/date-pickers/localization-provider/)\n */\nexport const LocalizationProvider = function LocalizationProvider(inProps) {\n const {\n localeText: inLocaleText\n } = inProps,\n otherInProps = _objectWithoutPropertiesLoose(inProps, _excluded);\n const {\n adapter: parentAdapter,\n localeText: parentLocaleText\n } = React.useContext(PickerAdapterContext) ?? {\n utils: undefined,\n adapter: undefined,\n localeText: undefined\n };\n const props = useThemeProps({\n // We don't want to pass the `localeText` prop to the theme, that way it will always return the theme value,\n // We will then merge this theme value with our value manually\n props: otherInProps,\n name: 'MuiLocalizationProvider'\n });\n const {\n children,\n dateAdapter: DateAdapter,\n dateFormats,\n dateLibInstance,\n adapterLocale,\n localeText: themeLocaleText\n } = props;\n const localeText = React.useMemo(() => _extends({}, themeLocaleText, parentLocaleText, inLocaleText), [themeLocaleText, parentLocaleText, inLocaleText]);\n const adapter = React.useMemo(() => {\n if (!DateAdapter) {\n if (parentAdapter) {\n return parentAdapter;\n }\n return null;\n }\n const dateAdapter = new DateAdapter({\n locale: adapterLocale,\n formats: dateFormats,\n instance: dateLibInstance\n });\n if (!dateAdapter.isMUIAdapter) {\n throw new Error(['MUI X: The date adapter should be imported from `@mui/x-date-pickers` or `@mui/x-date-pickers-pro`, not from `@date-io`', \"For example, `import { AdapterDayjs } from '@mui/x-date-pickers/AdapterDayjs'` instead of `import AdapterDayjs from '@date-io/dayjs'`\", 'More information on the installation documentation: https://mui.com/x/react-date-pickers/quickstart/#installation'].join(`\\n`));\n }\n return dateAdapter;\n }, [DateAdapter, adapterLocale, dateFormats, dateLibInstance, parentAdapter]);\n const defaultDates = React.useMemo(() => {\n if (!adapter) {\n return null;\n }\n return {\n minDate: adapter.date('1900-01-01T00:00:00.000'),\n maxDate: adapter.date('2099-12-31T00:00:00.000')\n };\n }, [adapter]);\n const contextValue = React.useMemo(() => {\n return {\n utils: adapter,\n adapter,\n defaultDates,\n localeText\n };\n }, [defaultDates, adapter, localeText]);\n return /*#__PURE__*/_jsx(PickerAdapterContext.Provider, {\n value: contextValue,\n children: children\n });\n};\nif (process.env.NODE_ENV !== \"production\") LocalizationProvider.displayName = \"LocalizationProvider\";\nprocess.env.NODE_ENV !== \"production\" ? LocalizationProvider.propTypes = {\n // ----------------------------- Warning --------------------------------\n // | These PropTypes are generated from the TypeScript type definitions |\n // | To update them edit the TypeScript types and run \"pnpm proptypes\" |\n // ----------------------------------------------------------------------\n /**\n * Locale for the date library you are using\n */\n adapterLocale: PropTypes.any,\n children: PropTypes.node,\n /**\n * Date library adapter class function.\n * @see See the localization provider {@link https://mui.com/x/react-date-pickers/quickstart/#integrate-provider-and-adapter date adapter setup section} for more details.\n */\n dateAdapter: PropTypes.func,\n /**\n * Formats that are used for any child pickers\n */\n dateFormats: PropTypes.shape({\n dayOfMonth: PropTypes.string,\n dayOfMonthFull: PropTypes.string,\n fullDate: PropTypes.string,\n fullTime12h: PropTypes.string,\n fullTime24h: PropTypes.string,\n hours12h: PropTypes.string,\n hours24h: PropTypes.string,\n keyboardDate: PropTypes.string,\n keyboardDateTime12h: PropTypes.string,\n keyboardDateTime24h: PropTypes.string,\n meridiem: PropTypes.string,\n minutes: PropTypes.string,\n month: PropTypes.string,\n monthShort: PropTypes.string,\n normalDate: PropTypes.string,\n normalDateWithWeekday: PropTypes.string,\n seconds: PropTypes.string,\n shortDate: PropTypes.string,\n weekday: PropTypes.string,\n weekdayShort: PropTypes.string,\n year: PropTypes.string\n }),\n /**\n * Date library instance you are using, if it has some global overrides\n * ```jsx\n * dateLibInstance={momentTimeZone}\n * ```\n */\n dateLibInstance: PropTypes.any,\n /**\n * Locale for components texts\n */\n localeText: PropTypes.object\n} : void 0;","'use client';\n\nimport * as React from 'react';\n\n/**\n * A version of `React.useLayoutEffect` that does not show a warning when server-side rendering.\n * This is useful for effects that are only needed for client-side rendering but not for SSR.\n *\n * Before you use this hook, make sure to read https://gist.github.com/gaearon/e7d97cdf38a2907924ea12e4ebdf3c85\n * and confirm it doesn't apply to your use-case.\n */\nconst useEnhancedEffect = typeof window !== 'undefined' ? React.useLayoutEffect : React.useEffect;\nexport default useEnhancedEffect;","'use client';\n\nimport * as React from 'react';\nimport useEnhancedEffect from \"../useEnhancedEffect/index.js\";\n\n/**\n * Inspired by https://github.com/facebook/react/issues/14099#issuecomment-440013892\n * See RFC in https://github.com/reactjs/rfcs/pull/220\n */\n\nfunction useEventCallback(fn) {\n const ref = React.useRef(fn);\n useEnhancedEffect(() => {\n ref.current = fn;\n });\n return React.useRef((...args) =>\n // @ts-expect-error hide `this`\n (0, ref.current)(...args)).current;\n}\nexport default useEventCallback;","const warnedOnceCache = new Set();\n\n/**\n * Logs a message to the console on development mode. The warning will only be logged once.\n *\n * The message is the log's cache key. Two identical messages will only be logged once.\n *\n * This function is a no-op in production.\n *\n * @param message the message to log\n * @param gravity the gravity of the warning. Defaults to `'warning'`.\n * @returns\n */\nexport function warnOnce(message, gravity = 'warning') {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n const cleanMessage = Array.isArray(message) ? message.join('\\n') : message;\n if (!warnedOnceCache.has(cleanMessage)) {\n warnedOnceCache.add(cleanMessage);\n if (gravity === 'error') {\n console.error(cleanMessage);\n } else {\n console.warn(cleanMessage);\n }\n }\n}\nexport function clearWarningsCache() {\n warnedOnceCache.clear();\n}","import _extends from \"@babel/runtime/helpers/esm/extends\";\n/* v8 ignore start */\nimport dayjs from 'dayjs';\n// dayjs has no exports field defined\n// See https://github.com/iamkun/dayjs/issues/2562\n/* eslint-disable import/extensions */\nimport weekOfYearPlugin from 'dayjs/plugin/weekOfYear.js';\nimport customParseFormatPlugin from 'dayjs/plugin/customParseFormat.js';\nimport localizedFormatPlugin from 'dayjs/plugin/localizedFormat.js';\nimport isBetweenPlugin from 'dayjs/plugin/isBetween.js';\nimport advancedFormatPlugin from 'dayjs/plugin/advancedFormat.js';\n/* v8 ignore stop */\n/* eslint-enable import/extensions */\nimport { warnOnce } from '@mui/x-internals/warning';\ndayjs.extend(localizedFormatPlugin);\ndayjs.extend(weekOfYearPlugin);\ndayjs.extend(isBetweenPlugin);\ndayjs.extend(advancedFormatPlugin);\nconst formatTokenMap = {\n // Year\n YY: 'year',\n YYYY: {\n sectionType: 'year',\n contentType: 'digit',\n maxLength: 4\n },\n // Month\n M: {\n sectionType: 'month',\n contentType: 'digit',\n maxLength: 2\n },\n MM: 'month',\n MMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n MMMM: {\n sectionType: 'month',\n contentType: 'letter'\n },\n // Day of the month\n D: {\n sectionType: 'day',\n contentType: 'digit',\n maxLength: 2\n },\n DD: 'day',\n Do: {\n sectionType: 'day',\n contentType: 'digit-with-letter'\n },\n // Day of the week\n d: {\n sectionType: 'weekDay',\n contentType: 'digit',\n maxLength: 2\n },\n dd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n ddd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n dddd: {\n sectionType: 'weekDay',\n contentType: 'letter'\n },\n // Meridiem\n A: 'meridiem',\n a: 'meridiem',\n // Hours\n H: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n HH: 'hours',\n h: {\n sectionType: 'hours',\n contentType: 'digit',\n maxLength: 2\n },\n hh: 'hours',\n // Minutes\n m: {\n sectionType: 'minutes',\n contentType: 'digit',\n maxLength: 2\n },\n mm: 'minutes',\n // Seconds\n s: {\n sectionType: 'seconds',\n contentType: 'digit',\n maxLength: 2\n },\n ss: 'seconds'\n};\nconst defaultFormats = {\n year: 'YYYY',\n month: 'MMMM',\n monthShort: 'MMM',\n dayOfMonth: 'D',\n dayOfMonthFull: 'Do',\n weekday: 'dddd',\n weekdayShort: 'dd',\n hours24h: 'HH',\n hours12h: 'hh',\n meridiem: 'A',\n minutes: 'mm',\n seconds: 'ss',\n fullDate: 'll',\n keyboardDate: 'L',\n shortDate: 'MMM D',\n normalDate: 'D MMMM',\n normalDateWithWeekday: 'ddd, MMM D',\n fullTime12h: 'hh:mm A',\n fullTime24h: 'HH:mm',\n keyboardDateTime12h: 'L hh:mm A',\n keyboardDateTime24h: 'L HH:mm'\n};\nconst MISSING_UTC_PLUGIN = ['Missing UTC plugin', 'To be able to use UTC or timezones, you have to enable the `utc` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-utc'].join('\\n');\nconst MISSING_TIMEZONE_PLUGIN = ['Missing timezone plugin', 'To be able to use timezones, you have to enable both the `utc` and the `timezone` plugin', 'Find more information on https://mui.com/x/react-date-pickers/timezone/#day-js-and-timezone'].join('\\n');\n/**\n * Based on `@date-io/dayjs`\n *\n * MIT License\n *\n * Copyright (c) 2017 Dmitriy Kovalenko\n *\n * Permission is hereby granted, free of charge, to any person obtaining a copy\n * of this software and associated documentation files (the \"Software\"), to deal\n * in the Software without restriction, including without limitation the rights\n * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n * copies of the Software, and to permit persons to whom the Software is\n * furnished to do so, subject to the following conditions:\n *\n * The above copyright notice and this permission notice shall be included in all\n * copies or substantial portions of the Software.\n *\n * THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE\n * SOFTWARE.\n */\nexport class AdapterDayjs {\n isMUIAdapter = true;\n isTimezoneCompatible = true;\n lib = 'dayjs';\n escapedCharacters = {\n start: '[',\n end: ']'\n };\n formatTokenMap = (() => formatTokenMap)();\n constructor({\n locale,\n formats\n } = {}) {\n this.locale = locale;\n this.formats = _extends({}, defaultFormats, formats);\n\n // Moved plugins to the constructor to allow for users to use options on the library\n // for reference: https://github.com/mui/mui-x/pull/11151\n dayjs.extend(customParseFormatPlugin);\n }\n setLocaleToValue = value => {\n const expectedLocale = this.getCurrentLocaleCode();\n if (expectedLocale === value.locale()) {\n return value;\n }\n return value.locale(expectedLocale);\n };\n hasUTCPlugin = () => typeof dayjs.utc !== 'undefined';\n hasTimezonePlugin = () => typeof dayjs.tz !== 'undefined';\n isSame = (value, comparing, comparisonTemplate) => {\n const comparingInValueTimezone = this.setTimezone(comparing, this.getTimezone(value));\n return value.format(comparisonTemplate) === comparingInValueTimezone.format(comparisonTemplate);\n };\n\n /**\n * Replaces \"default\" by undefined and \"system\" by the system timezone before passing it to `dayjs`.\n */\n cleanTimezone = timezone => {\n switch (timezone) {\n case 'default':\n {\n return undefined;\n }\n case 'system':\n {\n return dayjs.tz.guess();\n }\n default:\n {\n return timezone;\n }\n }\n };\n createSystemDate = value => {\n let date;\n if (this.hasUTCPlugin() && this.hasTimezonePlugin()) {\n const timezone = dayjs.tz.guess();\n if (timezone === 'UTC') {\n date = dayjs(value);\n } /* v8 ignore next 3 */else {\n // We can't change the system timezone in the tests\n date = dayjs.tz(value, timezone);\n }\n } else {\n date = dayjs(value);\n }\n return this.setLocaleToValue(date);\n };\n createUTCDate = value => {\n /* v8 ignore next 3 */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n return this.setLocaleToValue(dayjs.utc(value));\n };\n createTZDate = (value, timezone) => {\n /* v8 ignore next 3 */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n\n /* v8 ignore next 3 */\n if (!this.hasTimezonePlugin()) {\n throw new Error(MISSING_TIMEZONE_PLUGIN);\n }\n const keepLocalTime = value !== undefined && !value.endsWith('Z');\n return this.setLocaleToValue(dayjs(value).tz(this.cleanTimezone(timezone), keepLocalTime));\n };\n getLocaleFormats = () => {\n const locales = dayjs.Ls;\n const locale = this.locale || 'en';\n let localeObject = locales[locale];\n if (localeObject === undefined) {\n /* v8 ignore start */\n if (process.env.NODE_ENV !== 'production') {\n warnOnce(['MUI X: Your locale has not been found.', 'Either the locale key is not a supported one. Locales supported by dayjs are available here: https://github.com/iamkun/dayjs/tree/dev/src/locale.', \"Or you forget to import the locale from 'dayjs/locale/{localeUsed}'\", 'fallback on English locale.']);\n }\n /* v8 ignore stop */\n localeObject = locales.en;\n }\n return localeObject.formats;\n };\n\n /**\n * If the new day does not have the same offset as the old one (when switching to summer day time for example),\n * Then dayjs will not automatically adjust the offset (moment does).\n * We have to parse again the value to make sure the `fixOffset` method is applied.\n * See https://github.com/iamkun/dayjs/blob/b3624de619d6e734cd0ffdbbd3502185041c1b60/src/plugin/timezone/index.js#L72\n */\n adjustOffset = value => {\n if (!this.hasTimezonePlugin()) {\n return value;\n }\n const timezone = this.getTimezone(value);\n if (timezone !== 'UTC') {\n const fixedValue = value.tz(this.cleanTimezone(timezone), true);\n // TODO: Simplify the case when we raise the `dayjs` peer dep to 1.11.12 (https://github.com/iamkun/dayjs/releases/tag/v1.11.12)\n /* v8 ignore next 3 */\n // @ts-ignore\n if (fixedValue.$offset === (value.$offset ?? 0)) {\n return value;\n }\n // Change only what is needed to avoid creating a new object with unwanted data\n // Especially important when used in an environment where utc or timezone dates are used only in some places\n // Reference: https://github.com/mui/mui-x/issues/13290\n // @ts-ignore\n value.$offset = fixedValue.$offset;\n }\n return value;\n };\n date = (value, timezone = 'default') => {\n if (value === null) {\n return null;\n }\n if (timezone === 'UTC') {\n return this.createUTCDate(value);\n }\n if (timezone === 'system' || timezone === 'default' && !this.hasTimezonePlugin()) {\n return this.createSystemDate(value);\n }\n return this.createTZDate(value, timezone);\n };\n getInvalidDate = () => dayjs(new Date('Invalid date'));\n getTimezone = value => {\n if (this.hasTimezonePlugin()) {\n // @ts-ignore\n const zone = value.$x?.$timezone;\n if (zone) {\n return zone;\n }\n }\n if (this.hasUTCPlugin() && value.isUTC()) {\n return 'UTC';\n }\n return 'system';\n };\n setTimezone = (value, timezone) => {\n if (this.getTimezone(value) === timezone) {\n return value;\n }\n if (timezone === 'UTC') {\n /* v8 ignore next 3 */\n if (!this.hasUTCPlugin()) {\n throw new Error(MISSING_UTC_PLUGIN);\n }\n return value.utc();\n }\n\n // We know that we have the UTC plugin.\n // Otherwise, the value timezone would always equal \"system\".\n // And it would be caught by the first \"if\" of this method.\n if (timezone === 'system') {\n return value.local();\n }\n if (!this.hasTimezonePlugin()) {\n if (timezone === 'default') {\n return value;\n }\n\n /* v8 ignore next */\n throw new Error(MISSING_TIMEZONE_PLUGIN);\n }\n return this.setLocaleToValue(dayjs.tz(value, this.cleanTimezone(timezone)));\n };\n toJsDate = value => {\n return value.toDate();\n };\n parse = (value, format) => {\n if (value === '') {\n return null;\n }\n return dayjs(value, format, this.locale, true);\n };\n getCurrentLocaleCode = () => {\n return this.locale || 'en';\n };\n is12HourCycleInCurrentLocale = () => {\n /* v8 ignore next */\n return /A|a/.test(this.getLocaleFormats().LT || '');\n };\n expandFormat = format => {\n const localeFormats = this.getLocaleFormats();\n\n // @see https://github.com/iamkun/dayjs/blob/dev/src/plugin/localizedFormat/index.js\n const t = formatBis => formatBis.replace(/(\\[[^\\]]+])|(MMMM|MM|DD|dddd)/g, (_, a, b) => a || b.slice(1));\n return format.replace(/(\\[[^\\]]+])|(LTS?|l{1,4}|L{1,4})/g, (_, a, b) => {\n const B = b && b.toUpperCase();\n return a || localeFormats[b] || t(localeFormats[B]);\n });\n };\n isValid = value => {\n if (value == null) {\n return false;\n }\n return value.isValid();\n };\n format = (value, formatKey) => {\n return this.formatByString(value, this.formats[formatKey]);\n };\n formatByString = (value, formatString) => {\n return this.setLocaleToValue(value).format(formatString);\n };\n formatNumber = numberToFormat => {\n return numberToFormat;\n };\n isEqual = (value, comparing) => {\n if (value === null && comparing === null) {\n return true;\n }\n if (value === null || comparing === null) {\n return false;\n }\n return value.toDate().getTime() === comparing.toDate().getTime();\n };\n isSameYear = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY');\n };\n isSameMonth = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY-MM');\n };\n isSameDay = (value, comparing) => {\n return this.isSame(value, comparing, 'YYYY-MM-DD');\n };\n isSameHour = (value, comparing) => {\n return value.isSame(comparing, 'hour');\n };\n isAfter = (value, comparing) => {\n return value > comparing;\n };\n isAfterYear = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isAfter(comparing, 'year');\n }\n return !this.isSameYear(value, comparing) && value.utc() > comparing.utc();\n };\n isAfterDay = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isAfter(comparing, 'day');\n }\n return !this.isSameDay(value, comparing) && value.utc() > comparing.utc();\n };\n isBefore = (value, comparing) => {\n return value < comparing;\n };\n isBeforeYear = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isBefore(comparing, 'year');\n }\n return !this.isSameYear(value, comparing) && value.utc() < comparing.utc();\n };\n isBeforeDay = (value, comparing) => {\n if (!this.hasUTCPlugin()) {\n return value.isBefore(comparing, 'day');\n }\n return !this.isSameDay(value, comparing) && value.utc() < comparing.utc();\n };\n isWithinRange = (value, [start, end]) => {\n return value >= start && value <= end;\n };\n startOfYear = value => {\n return this.adjustOffset(value.startOf('year'));\n };\n startOfMonth = value => {\n return this.adjustOffset(value.startOf('month'));\n };\n startOfWeek = value => {\n return this.adjustOffset(this.setLocaleToValue(value).startOf('week'));\n };\n startOfDay = value => {\n return this.adjustOffset(value.startOf('day'));\n };\n endOfYear = value => {\n return this.adjustOffset(value.endOf('year'));\n };\n endOfMonth = value => {\n return this.adjustOffset(value.endOf('month'));\n };\n endOfWeek = value => {\n return this.adjustOffset(this.setLocaleToValue(value).endOf('week'));\n };\n endOfDay = value => {\n return this.adjustOffset(value.endOf('day'));\n };\n addYears = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'year'));\n };\n addMonths = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'month'));\n };\n addWeeks = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'week'));\n };\n addDays = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'day'));\n };\n addHours = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'hour'));\n };\n addMinutes = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'minute'));\n };\n addSeconds = (value, amount) => {\n return this.adjustOffset(value.add(amount, 'second'));\n };\n getYear = value => {\n return value.year();\n };\n getMonth = value => {\n return value.month();\n };\n getDate = value => {\n return value.date();\n };\n getHours = value => {\n return value.hour();\n };\n getMinutes = value => {\n return value.minute();\n };\n getSeconds = value => {\n return value.second();\n };\n getMilliseconds = value => {\n return value.millisecond();\n };\n setYear = (value, year) => {\n return this.adjustOffset(value.set('year', year));\n };\n setMonth = (value, month) => {\n return this.adjustOffset(value.set('month', month));\n };\n setDate = (value, date) => {\n return this.adjustOffset(value.set('date', date));\n };\n setHours = (value, hours) => {\n return this.adjustOffset(value.set('hour', hours));\n };\n setMinutes = (value, minutes) => {\n return this.adjustOffset(value.set('minute', minutes));\n };\n setSeconds = (value, seconds) => {\n return this.adjustOffset(value.set('second', seconds));\n };\n setMilliseconds = (value, milliseconds) => {\n return this.adjustOffset(value.set('millisecond', milliseconds));\n };\n getDaysInMonth = value => {\n return value.daysInMonth();\n };\n getWeekArray = value => {\n const start = this.startOfWeek(this.startOfMonth(value));\n const end = this.endOfWeek(this.endOfMonth(value));\n let count = 0;\n let current = start;\n const nestedWeeks = [];\n while (current < end) {\n const weekNumber = Math.floor(count / 7);\n nestedWeeks[weekNumber] = nestedWeeks[weekNumber] || [];\n nestedWeeks[weekNumber].push(current);\n current = this.addDays(current, 1);\n count += 1;\n }\n return nestedWeeks;\n };\n getWeekNumber = value => {\n return value.week();\n };\n getDayOfWeek(value) {\n return value.day() + 1;\n }\n getYearRange = ([start, end]) => {\n const startDate = this.startOfYear(start);\n const endDate = this.endOfYear(end);\n const years = [];\n let current = startDate;\n while (this.isBefore(current, endDate)) {\n years.push(current);\n current = this.addYears(current, 1);\n }\n return years;\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":["_extends","n","t","_objectWithoutPropertiesLoose","r","_excluded","PickerAdapterContext","React","LocalizationProvider","inProps","inLocaleText","otherInProps","parentAdapter","parentLocaleText","props","useThemeProps","children","DateAdapter","dateFormats","dateLibInstance","adapterLocale","themeLocaleText","localeText","adapter","dateAdapter","defaultDates","contextValue","_jsx","PropTypes","useEnhancedEffect","useEventCallback","fn","ref","args","warnedOnceCache","warnOnce","message","gravity","cleanMessage","dayjs","localizedFormatPlugin","weekOfYearPlugin","isBetweenPlugin","advancedFormatPlugin","formatTokenMap","defaultFormats","MISSING_UTC_PLUGIN","MISSING_TIMEZONE_PLUGIN","AdapterDayjs","locale","formats","customParseFormatPlugin","value","expectedLocale","comparing","comparisonTemplate","comparingInValueTimezone","timezone","date","keepLocalTime","locales","localeObject","fixedValue","zone","format","localeFormats","formatBis","_","a","b","B","formatKey","formatString","numberToFormat","start","end","amount","year","month","hours","minutes","seconds","milliseconds","count","current","nestedWeeks","weekNumber","startDate","endDate","years","DialogsProvider","stack","setStack","useState","keyPrefix","useId","nextId","useRef","dialogMetadata","WeakMap","requestDialog","Component","payload","options","onClose","resolve","promise","Promise","resolveImpl","key","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","name","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","params","search","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","slice","ToolbarAccount","tab","setTab","Boolean","i18n","useTranslation","mode","setMode","useColorScheme","T0","closeMenu","openMenu","settings","supportedLanguages","Array","isArray","supportedLngs","languageDisplayNames","Intl","DisplayNames","language","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","lng","console","log","YEAR_IN_SECONDS","getNavigationOpenStatus","createIsomorphicFn","server","getCookie","client","cookie","document","split","row","startsWith","DrawerHeader","spacing","mixins","toolbar","Layout","navigationOpen","setNavigationOpen","isFetching","useIsFetching","isMutating","useIsMutating","InitColorSchemeScript","CssBaseline","borderBottom","boxShadow","marginRight","MenuOpen","AppBar","Toolbar","newValue_0","newValue","flexGrow","LinearProgress","YEAR_IN_MINUTES","use","LanguageDetector","initReactI18next","init","resources","fallbackLng","Object","keys","detection","caches","cookieMinutes","interpolation","escapeValue","LayoutProvider","languageChangedHandler","useEffectEvent","on","off","ThemeProvider","setSSRLanguage","createServerFn","handler","services","languageDetector","lookupCookie","z","config","core"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6]}
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]}