wcz-test 6.26.0 → 6.27.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/DialogsContext-2Yy6yhzQ.js +6 -0
- package/dist/DialogsContext-2Yy6yhzQ.js.map +1 -0
- package/dist/{DialogsHooks-Dz4ExWPV.js → DialogsHooks-DzqOb2Zx.js} +47 -46
- package/dist/{DialogsHooks-Dz4ExWPV.js.map → DialogsHooks-DzqOb2Zx.js.map} +1 -1
- package/dist/{FileHooks-T3wXKu_b.js → FileHooks-C8Akmy_o.js} +21 -22
- package/dist/{FileHooks-T3wXKu_b.js.map → FileHooks-C8Akmy_o.js.map} +1 -1
- package/dist/RouterListItemButton-B6kAS_RK.js +640 -0
- package/dist/RouterListItemButton-B6kAS_RK.js.map +1 -0
- package/dist/_commonjsHelpers-DaMA6jEr.js +9 -0
- package/dist/_commonjsHelpers-DaMA6jEr.js.map +1 -0
- package/dist/components.js +6 -6
- package/dist/hooks.js +3 -3
- package/dist/index.d.ts +0 -3
- package/dist/index.js +599 -969
- package/dist/index.js.map +1 -1
- package/dist/queries.js +111 -113
- package/dist/queries.js.map +1 -1
- package/dist/utils-IWcYo8tM.js +106 -0
- package/dist/utils-IWcYo8tM.js.map +1 -0
- package/dist/utils.js +5 -5
- package/package.json +8 -13
- package/dist/DialogsContext-8xfQ3X-k.js +0 -285
- package/dist/DialogsContext-8xfQ3X-k.js.map +0 -1
- package/dist/RouterListItemButton-Dmqima3h.js +0 -661
- package/dist/RouterListItemButton-Dmqima3h.js.map +0 -1
- package/dist/_commonjsHelpers-ByX85dGu.js +0 -34
- package/dist/_commonjsHelpers-ByX85dGu.js.map +0 -1
- package/dist/env-BD4Wc07c.js +0 -76
- package/dist/env-BD4Wc07c.js.map +0 -1
- package/dist/i18next-Bx3TmZAT.js +0 -1337
- package/dist/i18next-Bx3TmZAT.js.map +0 -1
- package/dist/queryClient--EvGPhnh.js +0 -6
- package/dist/queryClient--EvGPhnh.js.map +0 -1
- package/dist/server.d.ts +0 -11
- package/dist/server.js +0 -98
- package/dist/server.js.map +0 -1
- package/dist/session-BCQDwl6n.js +0 -8581
- package/dist/session-BCQDwl6n.js.map +0 -1
- package/dist/utils-A7xW24zq.js +0 -1850
- package/dist/utils-A7xW24zq.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","../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/lib/auth/graph.ts","../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}","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 { createServerFn } from \"@tanstack/react-start\";\r\nimport axios from \"axios\";\r\nimport z from \"zod\";\r\nimport { queryClient } from \"../queryClient\";\r\nimport { getAccessToken, requireSession } from \"./session\";\r\nimport type { GraphUser, User } from \"~/models/User\";\r\n\r\nexport const getSessionUser = createServerFn()\r\n .inputValidator(z.object({ redirectUri: z.string() }))\r\n .handler(async ({ data }) => {\r\n const session = await requireSession(data.redirectUri);\r\n\r\n const groups = await queryClient.fetchQuery({\r\n queryKey: [\"graph\", \"me\", \"memberOf\"],\r\n queryFn: async () => axios.request<{ value: Array<{ displayName: string }> }>({\r\n method: \"GET\",\r\n url: \"https://graph.microsoft.com/v1.0/me/memberOf?$select=displayName\",\r\n headers: { Authorization: `Bearer ${await getAccessToken()}` },\r\n }).then(response => response.data.value.map((group) => group.displayName)),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n });\r\n\r\n return { ...session.user, groups } satisfies User;\r\n });\r\n\r\nexport const getSessionUserDetail = createServerFn({ method: \"GET\" })\r\n .handler(async () => {\r\n return await queryClient.fetchQuery({\r\n queryKey: [\"graph\", \"me\"],\r\n queryFn: async () => await axios.request<GraphUser>({\r\n method: \"GET\",\r\n url: \"https://graph.microsoft.com/v1.0/me?$select=id,displayName,jobTitle,mail,mobilePhone\",\r\n headers: { Authorization: `Bearer ${await getAccessToken()}` },\r\n }).then(response => response.data),\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n });\r\n });\r\n\r\n\r\nexport const getSessionUserPhoto = createServerFn({ method: \"GET\" })\r\n .handler(async () => {\r\n return await queryClient.fetchQuery({\r\n queryKey: [\"graph\", \"me\", \"photo\"],\r\n queryFn: async () => {\r\n const response = await axios.request<ArrayBuffer>({\r\n method: \"GET\",\r\n url: \"https://graph.microsoft.com/v1.0/me/photo/$value\",\r\n headers: { Authorization: `Bearer ${await getAccessToken()}` },\r\n responseType: \"arraybuffer\",\r\n });\r\n const contentType = (response.headers[\"content-type\"] as string | undefined) ?? \"image/jpeg\";\r\n const base64 = Buffer.from(response.data).toString(\"base64\");\r\n return `data:${contentType};base64,${base64}`;\r\n },\r\n staleTime: Infinity,\r\n gcTime: Infinity,\r\n });\r\n });\r\n","import AccountCircle from \"@mui/icons-material/AccountCircle\";\r\nimport ArrowBack from \"@mui/icons-material/ArrowBack\";\r\nimport Brightness4 from \"@mui/icons-material/Brightness4\";\r\nimport ChevronRight from \"@mui/icons-material/ChevronRight\";\r\nimport DarkMode from \"@mui/icons-material/DarkMode\";\r\nimport Done from \"@mui/icons-material/Done\";\r\nimport LightMode from \"@mui/icons-material/LightMode\";\r\nimport Logout from \"@mui/icons-material/Logout\";\r\nimport SettingsBrightness from \"@mui/icons-material/SettingsBrightness\";\r\nimport Translate from \"@mui/icons-material/Translate\";\r\nimport { Avatar, Box, IconButton, List, ListItem, ListItemButton, ListItemIcon, ListItemText, ListSubheader, Menu, useColorScheme } from \"@mui/material\";\r\nimport { Await } from \"@tanstack/react-router\";\r\nimport { Fragment, Suspense, useState } from \"react\";\r\nimport { useTranslation } from \"react-i18next\";\r\nimport type { FC } from \"react\";\r\nimport { getSessionUserDetail, getSessionUserPhoto } from \"~/lib/auth/graph\";\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 <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={getSessionUserDetail()}>\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","r","_objectWithoutPropertiesLoose","_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","slice","forEach","defaults","obj","source","prop","hasXSS","input","pattern","fieldContentRegExp","serializeCookie","name","val","opt","str","maxAge","cookie","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","stack","setStack","useState","keyPrefix","useId","nextId","useRef","dialogMetadata","WeakMap","requestDialog","Component","payload","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","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","getSessionUser","createServerFn","inputValidator","z","object","redirectUri","string","handler","data","session","requireSession","groups","queryClient","fetchQuery","queryKey","queryFn","axios","request","method","url","headers","Authorization","getAccessToken","then","response","group","displayName","staleTime","Infinity","gcTime","user","getSessionUserDetail","getSessionUserPhoto","responseType","contentType","base64","Buffer","from","toString","capitalize","charAt","toUpperCase","ToolbarAccount","tab","setTab","Boolean","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","Await","_temp2","_temp3","Logout","_temp4","Menu","data_0","split","jobTitle","console","log","YEAR_IN_SECONDS","getNavigationOpenStatus","createIsomorphicFn","server","getCookie","client","document","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","init","resources","fallbackLng","Object","keys","detection","interpolation","escapeValue","LayoutProvider","languageChangedHandler","useEffectEvent","on","off","ThemeProvider","setSSRLanguage","languageDetector","config","core"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5,6,7,8]}
|
|
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":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA,SAASA,KAAW;AAClB,SAAOA,KAAW,OAAO,SAAS,OAAO,OAAO,KAAI,IAAK,SAAUC,GAAG;AACpE,aAAS,IAAI,GAAG,IAAI,UAAU,QAAQ,KAAK;AACzC,UAAIC,IAAI,UAAU,CAAC;AACnB,eAAS,KAAKA,EAAG,EAAC,CAAA,GAAI,eAAe,KAAKA,GAAG,CAAC,MAAMD,EAAE,CAAC,IAAIC,EAAE,CAAC;AAAA,IAChE;AACA,WAAOD;AAAA,EACT,GAAGD,GAAS,MAAM,MAAM,SAAS;AACnC;ACRA,SAASG,GAA8BC,GAAG,GAAG;AAC3C,MAAYA,KAAR,KAAW,QAAO,CAAA;AACtB,MAAIF,IAAI,CAAA;AACR,WAASD,KAAKG,EAAG,KAAI,CAAA,EAAG,eAAe,KAAKA,GAAGH,CAAC,GAAG;AACjD,QAAW,EAAE,QAAQA,CAAC,MAAlB,GAAqB;AACzB,IAAAC,EAAED,CAAC,IAAIG,EAAEH,CAAC;AAAA,EACZ;AACA,SAAOC;AACT;ACJA,MAAMG,KAAY,CAAC,YAAY,GAKlBC,KAAoC,gBAAAC,EAAM,cAAc,IAAI;AAOrE,QAAQ,IAAI,aAAa,iBAAcD,GAAqB,cAAc;AAcvE,MAAME,KAAuB,SAA8BC,GAAS;AACzE,QAAM;AAAA,IACF,YAAYC;AAAA,EAClB,IAAQD,GACJE,IAAeR,GAA8BM,GAASJ,EAAS,GAC3D;AAAA,IACJ,SAASO;AAAA,IACT,YAAYC;AAAA,EAChB,IAAMN,EAAM,WAAWD,EAAoB,KAAK;AAAA,IAE5C,SAAS;AAAA,IACT,YAAY;AAAA,EAChB,GACQQ,IAAQC,GAAc;AAAA;AAAA;AAAA,IAG1B,OAAOJ;AAAA,IACP,MAAM;AAAA,EACV,CAAG,GACK;AAAA,IACJ,UAAAK;AAAA,IACA,aAAaC;AAAA,IACb,aAAAC;AAAA,IACA,iBAAAC;AAAA,IACA,eAAAC;AAAA,IACA,YAAYC;AAAA,EAChB,IAAMP,GACEQ,IAAaf,EAAM,QAAQ,MAAMP,GAAS,CAAA,GAAIqB,GAAiBR,GAAkBH,CAAY,GAAG,CAACW,GAAiBR,GAAkBH,CAAY,CAAC,GACjJa,IAAUhB,EAAM,QAAQ,MAAM;AAClC,QAAI,CAACU;AACH,aAAIL,KAGG;AAET,UAAMY,IAAc,IAAIP,EAAY;AAAA,MAClC,QAAQG;AAAA,MACR,SAASF;AAAA,MACT,UAAUC;AAAA,IAChB,CAAK;AACD,QAAI,CAACK,EAAY;AACf,YAAM,IAAI,MAAM,CAAC,2HAA2H,yIAAyI,mHAAmH,EAAE,KAAK;AAAA,CAAI,CAAC;AAEtZ,WAAOA;AAAA,EACT,GAAG,CAACP,GAAaG,GAAeF,GAAaC,GAAiBP,CAAa,CAAC,GACtEa,IAAelB,EAAM,QAAQ,MAC5BgB,IAGE;AAAA,IACL,SAASA,EAAQ,KAAK,yBAAyB;AAAA,IAC/C,SAASA,EAAQ,KAAK,yBAAyB;AAAA,EACrD,IALa,MAMR,CAACA,CAAO,CAAC,GACNG,IAAenB,EAAM,QAAQ,OAC1B;AAAA,IACL,OAAOgB;AAAA,IACP,SAAAA;AAAA,IACA,cAAAE;AAAA,IACA,YAAAH;AAAA,EACN,IACK,CAACG,GAAcF,GAASD,CAAU,CAAC;AACtC,SAAoBK,gBAAAA,EAAKrB,GAAqB,UAAU;AAAA,IACtD,OAAOoB;AAAA,IACP,UAAUV;AAAA,EACd,CAAG;AACH;AACI,QAAQ,IAAI,aAAa,iBAAcR,GAAqB,cAAc;AAC9E,QAAQ,IAAI,aAAa,iBAAeA,GAAqB,YAAY;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQvE,eAAeoB,EAAU;AAAA,EACzB,UAAUA,EAAU;AAAA;AAAA;AAAA;AAAA;AAAA,EAKpB,aAAaA,EAAU;AAAA;AAAA;AAAA;AAAA,EAIvB,aAAaA,EAAU,MAAM;AAAA,IAC3B,YAAYA,EAAU;AAAA,IACtB,gBAAgBA,EAAU;AAAA,IAC1B,UAAUA,EAAU;AAAA,IACpB,aAAaA,EAAU;AAAA,IACvB,aAAaA,EAAU;AAAA,IACvB,UAAUA,EAAU;AAAA,IACpB,UAAUA,EAAU;AAAA,IACpB,cAAcA,EAAU;AAAA,IACxB,qBAAqBA,EAAU;AAAA,IAC/B,qBAAqBA,EAAU;AAAA,IAC/B,UAAUA,EAAU;AAAA,IACpB,SAASA,EAAU;AAAA,IACnB,OAAOA,EAAU;AAAA,IACjB,YAAYA,EAAU;AAAA,IACtB,YAAYA,EAAU;AAAA,IACtB,uBAAuBA,EAAU;AAAA,IACjC,SAASA,EAAU;AAAA,IACnB,WAAWA,EAAU;AAAA,IACrB,SAASA,EAAU;AAAA,IACnB,cAAcA,EAAU;AAAA,IACxB,MAAMA,EAAU;AAAA,EACpB,CAAG;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAOD,iBAAiBA,EAAU;AAAA;AAAA;AAAA;AAAA,EAI3B,YAAYA,EAAU;AACxB;AC3IA,MAAMC,KAAoB,OAAO,SAAW,MAActB,EAAM,kBAAkBA,EAAM;ACDxF,SAASuB,GAAiBC,GAAI;AAC5B,QAAMC,IAAMzB,EAAM,OAAOwB,CAAE;AAC3B,SAAAF,GAAkB,MAAM;AACtB,IAAAG,EAAI,UAAUD;AAAA,EAChB,CAAC,GACMxB,EAAM,OAAO,IAAI0B;AAAA;AAAA,QAEpBD,EAAI,SAAS,GAAGC,CAAI;AAAA,GAAC,EAAE;AAC7B;AClBA,MAAMC,KAAkB,oBAAI,IAAG;AAaxB,SAASC,GAASC,GAASC,IAAU,WAAW;AACrD,MAAI,QAAQ,IAAI,aAAa;AAC3B;AAEF,QAAMC,IAAe,MAAM,QAAQF,CAAO,IAAIA,EAAQ,KAAK;AAAA,CAAI,IAAIA;AACnE,EAAKF,GAAgB,IAAII,CAAY,MACnCJ,GAAgB,IAAII,CAAY,GAC5BD,MAAY,UACd,QAAQ,MAAMC,CAAY,IAE1B,QAAQ,KAAKA,CAAY;AAG/B;ACZAC,EAAM,OAAOC,EAAqB;AAClCD,EAAM,OAAOE,EAAgB;AAC7BF,EAAM,OAAOG,EAAe;AAC5BH,EAAM,OAAOI,EAAoB;AACjC,MAAMC,KAAiB;AAAA;AAAA,EAErB,IAAI;AAAA,EACJ,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA;AAAA,EAEE,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AAAA,EACJ,KAAK;AAAA,IACH,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA,EACE,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA;AAAA,EAEE,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AAAA,EACJ,IAAI;AAAA,IACF,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA;AAAA,EAEE,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AAAA,IACF,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA,EACE,KAAK;AAAA,IACH,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA,EACE,MAAM;AAAA,IACJ,aAAa;AAAA,IACb,aAAa;AAAA,EACjB;AAAA;AAAA,EAEE,GAAG;AAAA,EACH,GAAG;AAAA;AAAA,EAEH,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AAAA,EACJ,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AAAA;AAAA,EAEJ,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AAAA;AAAA,EAEJ,GAAG;AAAA,IACD,aAAa;AAAA,IACb,aAAa;AAAA,IACb,WAAW;AAAA,EACf;AAAA,EACE,IAAI;AACN,GACMC,KAAiB;AAAA,EACrB,MAAM;AAAA,EACN,OAAO;AAAA,EACP,YAAY;AAAA,EACZ,YAAY;AAAA,EACZ,gBAAgB;AAAA,EAChB,SAAS;AAAA,EACT,cAAc;AAAA,EACd,UAAU;AAAA,EACV,UAAU;AAAA,EACV,UAAU;AAAA,EACV,SAAS;AAAA,EACT,SAAS;AAAA,EACT,UAAU;AAAA,EACV,cAAc;AAAA,EACd,WAAW;AAAA,EACX,YAAY;AAAA,EACZ,uBAAuB;AAAA,EACvB,aAAa;AAAA,EACb,aAAa;AAAA,EACb,qBAAqB;AAAA,EACrB,qBAAqB;AACvB,GACMC,KAAqB,CAAC,sBAAsB,2EAA2E,wFAAwF,EAAE,KAAK;AAAA,CAAI,GAC1NC,KAA0B,CAAC,2BAA2B,4FAA4F,6FAA6F,EAAE,KAAK;AAAA,CAAI;AA0BzP,MAAMC,GAAa;AAAA,EACxB,eAAe;AAAA,EACf,uBAAuB;AAAA,EACvB,MAAM;AAAA,EACN,oBAAoB;AAAA,IAClB,OAAO;AAAA,IACP,KAAK;AAAA,EACT;AAAA,EACE,iBAAwBJ;AAAA,EACxB,YAAY;AAAA,IACV,QAAAK;AAAA,IACA,SAAAC;AAAA,EACJ,IAAM,IAAI;AACN,SAAK,SAASD,GACd,KAAK,UAAUjD,GAAS,CAAA,GAAI6C,IAAgBK,CAAO,GAInDX,EAAM,OAAOY,EAAuB;AAAA,EACtC;AAAA,EACA,mBAAmB,CAAAC,MAAS;AAC1B,UAAMC,IAAiB,KAAK,qBAAoB;AAChD,WAAIA,MAAmBD,EAAM,WACpBA,IAEFA,EAAM,OAAOC,CAAc;AAAA,EACpC;AAAA,EACA,eAAe,MAAM,OAAOd,EAAM,MAAQ;AAAA,EAC1C,oBAAoB,MAAM,OAAOA,EAAM,KAAO;AAAA,EAC9C,SAAS,CAACa,GAAOE,GAAWC,MAAuB;AACjD,UAAMC,IAA2B,KAAK,YAAYF,GAAW,KAAK,YAAYF,CAAK,CAAC;AACpF,WAAOA,EAAM,OAAOG,CAAkB,MAAMC,EAAyB,OAAOD,CAAkB;AAAA,EAChG;AAAA;AAAA;AAAA;AAAA,EAKA,gBAAgB,CAAAE,MAAY;AAC1B,YAAQA,GAAQ;AAAA,MACd,KAAK;AAED;AAAA,MAEJ,KAAK;AAED,eAAOlB,EAAM,GAAG,MAAK;AAAA,MAEzB;AAEI,eAAOkB;AAAA,IAEjB;AAAA,EACE;AAAA,EACA,mBAAmB,CAAAL,MAAS;AAC1B,QAAIM;AACJ,QAAI,KAAK,aAAY,KAAM,KAAK,kBAAiB,GAAI;AACnD,YAAMD,IAAWlB,EAAM,GAAG,MAAK;AAC/B,MAAIkB,MAAa,QACfC,IAAOnB,EAAMa,CAAK,IAGlBM,IAAOnB,EAAM,GAAGa,GAAOK,CAAQ;AAAA,IAEnC;AACE,MAAAC,IAAOnB,EAAMa,CAAK;AAEpB,WAAO,KAAK,iBAAiBM,CAAI;AAAA,EACnC;AAAA,EACA,gBAAgB,CAAAN,MAAS;AAEvB,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAMN,EAAkB;AAEpC,WAAO,KAAK,iBAAiBP,EAAM,IAAIa,CAAK,CAAC;AAAA,EAC/C;AAAA,EACA,eAAe,CAACA,GAAOK,MAAa;AAElC,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAMX,EAAkB;AAIpC,QAAI,CAAC,KAAK;AACR,YAAM,IAAI,MAAMC,EAAuB;AAEzC,UAAMY,IAAgBP,MAAU,UAAa,CAACA,EAAM,SAAS,GAAG;AAChE,WAAO,KAAK,iBAAiBb,EAAMa,CAAK,EAAE,GAAG,KAAK,cAAcK,CAAQ,GAAGE,CAAa,CAAC;AAAA,EAC3F;AAAA,EACA,mBAAmB,MAAM;AACvB,UAAMC,IAAUrB,EAAM,IAChBU,IAAS,KAAK,UAAU;AAC9B,QAAIY,IAAeD,EAAQX,CAAM;AACjC,WAAIY,MAAiB,WAEf,QAAQ,IAAI,aAAa,gBAC3B1B,GAAS,CAAC,0CAA0C,qJAAqJ,uEAAuE,6BAA6B,CAAC,GAGhT0B,IAAeD,EAAQ,KAElBC,EAAa;AAAA,EACtB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAQA,eAAe,CAAAT,MAAS;AACtB,QAAI,CAAC,KAAK;AACR,aAAOA;AAET,UAAMK,IAAW,KAAK,YAAYL,CAAK;AACvC,QAAIK,MAAa,OAAO;AACtB,YAAMK,IAAaV,EAAM,GAAG,KAAK,cAAcK,CAAQ,GAAG,EAAI;AAI9D,UAAIK,EAAW,aAAaV,EAAM,WAAW;AAC3C,eAAOA;AAMT,MAAAA,EAAM,UAAUU,EAAW;AAAA,IAC7B;AACA,WAAOV;AAAA,EACT;AAAA,EACA,OAAO,CAACA,GAAOK,IAAW,cACpBL,MAAU,OACL,OAELK,MAAa,QACR,KAAK,cAAcL,CAAK,IAE7BK,MAAa,YAAYA,MAAa,aAAa,CAAC,KAAK,sBACpD,KAAK,iBAAiBL,CAAK,IAE7B,KAAK,aAAaA,GAAOK,CAAQ;AAAA,EAE1C,iBAAiB,MAAMlB,EAAM,oBAAI,KAAK,cAAc,CAAC;AAAA,EACrD,cAAc,CAAAa,MAAS;AACrB,QAAI,KAAK,qBAAqB;AAE5B,YAAMW,IAAOX,EAAM,IAAI;AACvB,UAAIW;AACF,eAAOA;AAAA,IAEX;AACA,WAAI,KAAK,aAAY,KAAMX,EAAM,MAAK,IAC7B,QAEF;AAAA,EACT;AAAA,EACA,cAAc,CAACA,GAAOK,MAAa;AACjC,QAAI,KAAK,YAAYL,CAAK,MAAMK;AAC9B,aAAOL;AAET,QAAIK,MAAa,OAAO;AAEtB,UAAI,CAAC,KAAK;AACR,cAAM,IAAI,MAAMX,EAAkB;AAEpC,aAAOM,EAAM,IAAG;AAAA,IAClB;AAKA,QAAIK,MAAa;AACf,aAAOL,EAAM,MAAK;AAEpB,QAAI,CAAC,KAAK,qBAAqB;AAC7B,UAAIK,MAAa;AACf,eAAOL;AAIT,YAAM,IAAI,MAAML,EAAuB;AAAA,IACzC;AACA,WAAO,KAAK,iBAAiBR,EAAM,GAAGa,GAAO,KAAK,cAAcK,CAAQ,CAAC,CAAC;AAAA,EAC5E;AAAA,EACA,WAAW,CAAAL,MACFA,EAAM,OAAM;AAAA,EAErB,QAAQ,CAACA,GAAOY,MACVZ,MAAU,KACL,OAEFb,EAAMa,GAAOY,GAAQ,KAAK,QAAQ,EAAI;AAAA,EAE/C,uBAAuB,MACd,KAAK,UAAU;AAAA,EAExB,+BAA+B,MAEtB,MAAM,KAAK,KAAK,iBAAgB,EAAG,MAAM,EAAE;AAAA,EAEpD,eAAe,CAAAA,MAAU;AACvB,UAAMC,IAAgB,KAAK,iBAAgB,GAGrC/D,IAAI,CAAAgE,MAAaA,EAAU,QAAQ,kCAAkC,CAACC,GAAGC,GAAGC,MAAMD,KAAKC,EAAE,MAAM,CAAC,CAAC;AACvG,WAAOL,EAAO,QAAQ,qCAAqC,CAACG,GAAG,GAAGE,MAAM;AACtE,YAAMC,IAAID,KAAKA,EAAE,YAAW;AAC5B,aAAO,KAAKJ,EAAcI,CAAC,KAAKnE,EAAE+D,EAAcK,CAAC,CAAC;AAAA,IACpD,CAAC;AAAA,EACH;AAAA,EACA,UAAU,CAAAlB,MACJA,KAAS,OACJ,KAEFA,EAAM,QAAO;AAAA,EAEtB,SAAS,CAACA,GAAOmB,MACR,KAAK,eAAenB,GAAO,KAAK,QAAQmB,CAAS,CAAC;AAAA,EAE3D,iBAAiB,CAACnB,GAAOoB,MAChB,KAAK,iBAAiBpB,CAAK,EAAE,OAAOoB,CAAY;AAAA,EAEzD,eAAe,CAAAC,MACNA;AAAA,EAET,UAAU,CAACrB,GAAOE,MACZF,MAAU,QAAQE,MAAc,OAC3B,KAELF,MAAU,QAAQE,MAAc,OAC3B,KAEFF,EAAM,SAAS,QAAO,MAAOE,EAAU,OAAM,EAAG,QAAO;AAAA,EAEhE,aAAa,CAACF,GAAOE,MACZ,KAAK,OAAOF,GAAOE,GAAW,MAAM;AAAA,EAE7C,cAAc,CAACF,GAAOE,MACb,KAAK,OAAOF,GAAOE,GAAW,SAAS;AAAA,EAEhD,YAAY,CAACF,GAAOE,MACX,KAAK,OAAOF,GAAOE,GAAW,YAAY;AAAA,EAEnD,aAAa,CAACF,GAAOE,MACZF,EAAM,OAAOE,GAAW,MAAM;AAAA,EAEvC,UAAU,CAACF,GAAOE,MACTF,IAAQE;AAAA,EAEjB,cAAc,CAACF,GAAOE,MACf,KAAK,iBAGH,CAAC,KAAK,WAAWF,GAAOE,CAAS,KAAKF,EAAM,IAAG,IAAKE,EAAU,IAAG,IAF/DF,EAAM,QAAQE,GAAW,MAAM;AAAA,EAI1C,aAAa,CAACF,GAAOE,MACd,KAAK,iBAGH,CAAC,KAAK,UAAUF,GAAOE,CAAS,KAAKF,EAAM,IAAG,IAAKE,EAAU,IAAG,IAF9DF,EAAM,QAAQE,GAAW,KAAK;AAAA,EAIzC,WAAW,CAACF,GAAOE,MACVF,IAAQE;AAAA,EAEjB,eAAe,CAACF,GAAOE,MAChB,KAAK,iBAGH,CAAC,KAAK,WAAWF,GAAOE,CAAS,KAAKF,EAAM,IAAG,IAAKE,EAAU,IAAG,IAF/DF,EAAM,SAASE,GAAW,MAAM;AAAA,EAI3C,cAAc,CAACF,GAAOE,MACf,KAAK,iBAGH,CAAC,KAAK,UAAUF,GAAOE,CAAS,KAAKF,EAAM,IAAG,IAAKE,EAAU,IAAG,IAF9DF,EAAM,SAASE,GAAW,KAAK;AAAA,EAI1C,gBAAgB,CAACF,GAAO,CAACsB,GAAOC,CAAG,MAC1BvB,KAASsB,KAAStB,KAASuB;AAAA,EAEpC,cAAc,CAAAvB,MACL,KAAK,aAAaA,EAAM,QAAQ,MAAM,CAAC;AAAA,EAEhD,eAAe,CAAAA,MACN,KAAK,aAAaA,EAAM,QAAQ,OAAO,CAAC;AAAA,EAEjD,cAAc,CAAAA,MACL,KAAK,aAAa,KAAK,iBAAiBA,CAAK,EAAE,QAAQ,MAAM,CAAC;AAAA,EAEvE,aAAa,CAAAA,MACJ,KAAK,aAAaA,EAAM,QAAQ,KAAK,CAAC;AAAA,EAE/C,YAAY,CAAAA,MACH,KAAK,aAAaA,EAAM,MAAM,MAAM,CAAC;AAAA,EAE9C,aAAa,CAAAA,MACJ,KAAK,aAAaA,EAAM,MAAM,OAAO,CAAC;AAAA,EAE/C,YAAY,CAAAA,MACH,KAAK,aAAa,KAAK,iBAAiBA,CAAK,EAAE,MAAM,MAAM,CAAC;AAAA,EAErE,WAAW,CAAAA,MACF,KAAK,aAAaA,EAAM,MAAM,KAAK,CAAC;AAAA,EAE7C,WAAW,CAACA,GAAOwB,MACV,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,MAAM,CAAC;AAAA,EAEpD,YAAY,CAACxB,GAAOwB,MACX,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,OAAO,CAAC;AAAA,EAErD,WAAW,CAACxB,GAAOwB,MACV,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,MAAM,CAAC;AAAA,EAEpD,UAAU,CAACxB,GAAOwB,MACT,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,KAAK,CAAC;AAAA,EAEnD,WAAW,CAACxB,GAAOwB,MACV,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,MAAM,CAAC;AAAA,EAEpD,aAAa,CAACxB,GAAOwB,MACZ,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,QAAQ,CAAC;AAAA,EAEtD,aAAa,CAACxB,GAAOwB,MACZ,KAAK,aAAaxB,EAAM,IAAIwB,GAAQ,QAAQ,CAAC;AAAA,EAEtD,UAAU,CAAAxB,MACDA,EAAM,KAAI;AAAA,EAEnB,WAAW,CAAAA,MACFA,EAAM,MAAK;AAAA,EAEpB,UAAU,CAAAA,MACDA,EAAM,KAAI;AAAA,EAEnB,WAAW,CAAAA,MACFA,EAAM,KAAI;AAAA,EAEnB,aAAa,CAAAA,MACJA,EAAM,OAAM;AAAA,EAErB,aAAa,CAAAA,MACJA,EAAM,OAAM;AAAA,EAErB,kBAAkB,CAAAA,MACTA,EAAM,YAAW;AAAA,EAE1B,UAAU,CAACA,GAAOyB,MACT,KAAK,aAAazB,EAAM,IAAI,QAAQyB,CAAI,CAAC;AAAA,EAElD,WAAW,CAACzB,GAAO0B,MACV,KAAK,aAAa1B,EAAM,IAAI,SAAS0B,CAAK,CAAC;AAAA,EAEpD,UAAU,CAAC1B,GAAOM,MACT,KAAK,aAAaN,EAAM,IAAI,QAAQM,CAAI,CAAC;AAAA,EAElD,WAAW,CAACN,GAAO2B,MACV,KAAK,aAAa3B,EAAM,IAAI,QAAQ2B,CAAK,CAAC;AAAA,EAEnD,aAAa,CAAC3B,GAAO4B,MACZ,KAAK,aAAa5B,EAAM,IAAI,UAAU4B,CAAO,CAAC;AAAA,EAEvD,aAAa,CAAC5B,GAAO6B,MACZ,KAAK,aAAa7B,EAAM,IAAI,UAAU6B,CAAO,CAAC;AAAA,EAEvD,kBAAkB,CAAC7B,GAAO8B,MACjB,KAAK,aAAa9B,EAAM,IAAI,eAAe8B,CAAY,CAAC;AAAA,EAEjE,iBAAiB,CAAA9B,MACRA,EAAM,YAAW;AAAA,EAE1B,eAAe,CAAAA,MAAS;AACtB,UAAMsB,IAAQ,KAAK,YAAY,KAAK,aAAatB,CAAK,CAAC,GACjDuB,IAAM,KAAK,UAAU,KAAK,WAAWvB,CAAK,CAAC;AACjD,QAAI+B,IAAQ,GACRC,IAAUV;AACd,UAAMW,IAAc,CAAA;AACpB,WAAOD,IAAUT,KAAK;AACpB,YAAMW,IAAa,KAAK,MAAMH,IAAQ,CAAC;AACvC,MAAAE,EAAYC,CAAU,IAAID,EAAYC,CAAU,KAAK,CAAA,GACrDD,EAAYC,CAAU,EAAE,KAAKF,CAAO,GACpCA,IAAU,KAAK,QAAQA,GAAS,CAAC,GACjCD,KAAS;AAAA,IACX;AACA,WAAOE;AAAA,EACT;AAAA,EACA,gBAAgB,CAAAjC,MACPA,EAAM,KAAI;AAAA,EAEnB,aAAaA,GAAO;AAClB,WAAOA,EAAM,IAAG,IAAK;AAAA,EACvB;AAAA,EACA,eAAe,CAAC,CAACsB,GAAOC,CAAG,MAAM;AAC/B,UAAMY,IAAY,KAAK,YAAYb,CAAK,GAClCc,IAAU,KAAK,UAAUb,CAAG,GAC5Bc,IAAQ,CAAA;AACd,QAAIL,IAAUG;AACd,WAAO,KAAK,SAASH,GAASI,CAAO;AACnC,MAAAC,EAAM,KAAKL,CAAO,GAClBA,IAAU,KAAK,SAASA,GAAS,CAAC;AAEpC,WAAOK;AAAA,EACT;AACF;ACrhBA,SAASC,GAAgB;AAAA,EAAE1E,UAAAA;AAAwC,GAAG;AAClE,QAAM,CAAC2E,GAAOC,CAAQ,IAAIC,EAA4C,CAAA,CAAE,GAClEC,IAAYC,GAAAA,GACZC,IAASC,GAAO,CAAC,GACjBC,IAAiBD,GAAO,oBAAIE,SAAmD,GAE/EC,IAAgBtE,GAA6B,SAC/CuE,GACAC,GACAC,IAAsC,IACxC;AACE,UAAM;AAAA,MAAEC,SAAAA,IAAU,YAAY;AAAA,MAAE;AAAA,IAAA,IAAMD;AAEtC,QAAIE;AACJ,UAAMC,IAAU,IAAIC,QAAkBC,CAAAA,MAAgB;AAClDH,MAAAA,IAAUG;AAAAA,IACd,CAAC,GAEKC,IAAM,GAAGf,CAAS,IAAIE,EAAOZ,OAAO;AAC1CY,IAAAA,EAAOZ,WAAW;AAElB,UAAM0B,IAAgD;AAAA,MAClDD,KAAAA;AAAAA,MACAE,MAAM;AAAA,MACNL,SAAAA;AAAAA,MACAL,WAAAA;AAAAA,MACAC,SAAAA;AAAAA,MACAE,SAAAA;AAAAA,MACAC,SAAAA;AAAAA,IAAAA;AAGJP,WAAAA,EAAed,QAAQ4B,IAAIN,GAASI,CAAQ,GAE5ClB,EAAUqB,CAAAA,MAAkB,CAAC,GAAGA,GAAeH,CAAQ,CAAC,GAEjDJ;AAAAA,EACX,CAAC,GAEKQ,IAAwBA,CAACC,MAAyB;AACpDvB,IAAAA,EAAUqB,OAAkBA,EAAcG,OAAQC,OAAUA,EAAMX,YAAYS,CAAM,CAAC,GACrFjB,EAAed,QAAQkC,OAAOH,CAAM;AAAA,EACxC,GAEMI,IAAgBzF,GAAiB,SAAgCqF,GAA0B;AAC7FvB,IAAAA,EAAUqB,OACNA,EAAcO,IAAKH,CAAAA,MAAWA,EAAMX,YAAYS,IAAS;AAAA,MAAE,GAAGE;AAAAA,MAAON,MAAM;AAAA,IAAA,IAAUM,CAAM,CAC/F,GAEAI,WAAW,MAAMP,EAAsBC,CAAM,GAAG,GAAI;AAAA,EACxD,CAAC,GAEKO,IAAc5F,GAAiB,eACjCqF,GACAQ,GACF;AACE,UAAMC,IAAe1B,EAAed,QAAQyC,IAAIV,CAAM;AACtD,QAAI,CAACS;AACD,YAAM,IAAIE,MAAM,2BAA2B;AAG/C,QAAI;AACA,YAAMF,EAAapB,QAAQmB,CAAM;AAAA,IACrC,UAAA;AACIC,MAAAA,EAAanB,QAAQkB,CAAM,GAC3BJ,EAAcJ,CAAM;AAAA,IACxB;AAEA,WAAOA;AAAAA,EACX,CAAC;AAED,SACI,gBAAAY,EAACC,GAAe,UAAf,EAAwB,OAAO;AAAA,IAAEjB,MAAMX;AAAAA,IAAe6B,OAAOP;AAAAA,EAAAA,GACzD1G,UAAAA;AAAAA,IAAAA;AAAAA,IACA2E,EAAM6B,IAAI,CAAC;AAAA,MAAEX,KAAAA;AAAAA,MAAKE,MAAAA;AAAAA,MAAMV,WAAAA;AAAAA,MAAWC,SAAAA;AAAAA,MAASI,SAAAA;AAAAA,IAAAA,wBACxCwB,GAAA,EAEG,SAAS5B,GACT,MAAAS,GACA,SAAS,OAAOY,MAAW;AACvB,YAAMD,EAAYhB,GAASiB,CAAM;AAAA,IACrC,EAAA,GALKd,EAOZ;AAAA,EAAA,GACL;AAER;ACpGO,MAAMsB,KAAeA,MAAA;AAAA,QAAAC,IAAAC,EAAA,CAAA;AAAA,MAAAC;AAAA,SAAAF,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEpBF,IAAA,gBAAAP,EAACU,MAAgB,WAAA,OAAiB,YAAA,UAAkB,SAAA,GAAa,UAAA,GAC7D,UAAA;AAAA,IAAA,gBAAAC,EAAA,SAAS,KAAA,sBAAyB,KAAA,YAAmB,SAAA,QAAM;AAAA,IAC3D,gBAAAA,EAACC,IAAA,EAAmB,SAAA,MAAMC,aAASC,gBAAgB;AAAA,sBAClDC,IAAA,EAAU,MAAA,SAAc,OAAA,QAAa,OAAA,OAAA,CAAM;AAAA,EAAA,GAChD,GAAQV,OAAAE,KAAAA,IAAAF,EAAA,CAAA,GAJRE;AAIQ,GCSVS,KAAY,IAEZC,KAAkBC,GAAOC,EAAc,EAAE,CAAC;AAAA,EAAEC,OAAAA;AAAM,OAAO;AAAA,EAC3DC,cAAc;AAAA,EACd,kBAAkB;AAAA,IACd,sEAAsE;AAAA,MAClEC,QAAQF,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAEjD,qBAAqB;AAAA,MACjBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAE3D,2BAA2B;AAAA,MACvBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,EAC3D;AAAA,EAEJ,sBAAsB;AAAA,IAClBJ,QAAQF,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAAAA,EAEhD,qBAAqB;AAAA,IACjBF,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAE9D,EAAE,GAEIC,KAAqBZ,GAAOa,EAAoB,EAAE,CAAC;AAAA,EAAEX,OAAAA;AAAM,OAAO;AAAA,EACpEC,cAAc;AAAA,EACd,kBAAkB;AAAA,IACd,sEAAsE;AAAA,MAClEC,QAAQF,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAEjD,qBAAqB;AAAA,MACjBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,IAE3D,2BAA2B;AAAA,MACvBC,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQC,QAAQC;AAAAA,IAAAA;AAAAA,EAC3D;AAAA,EAEJ,sBAAsB;AAAA,IAClBJ,QAAQF,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAAAA,EAEhD,qBAAqB;AAAA,IACjBF,kBAAkBP,EAAMG,QAAQH,GAAOI,QAAQI,OAAOC;AAAAA,EAAAA;AAE9D,EAAE,GAEIG,KAAsEzB,CAAAA,MAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAC;AAAA,IAAA2B,MAAAA;AAAAA,IAAAC,WAAAA;AAAAA,EAAAA,IAAA3B;AACzE,MAAI0B,EAAIE,QAAJD,GAAsB;AAAA,QAAAE;AAAA,IAAA/B,SAAA6B,KAETE,IAAAF,IAAA;AAAA,MAAAG,UAAwB;AAAA,MAAUC,MAAQ;AAAA,MAAKC,KAAO;AAAA,MAAiBC,WAAa;AAAA,IAAA,IAApF,CAAA,GAAkHnC,OAAA6B,GAAA7B,OAAA+B,KAAAA,IAAA/B,EAAA,CAAA;AAAA,QAAAoC;AAAA,IAAApC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACrGgC,IAAA;AAAA,MAAAC,SAAW;AAAA,MAAMC,YAAc;AAAA,MAAQC,gBAAkB;AAAA,MAAQC,UAAY7B;AAAAA,IAAAA,GAAWX,OAAAoC,KAAAA,IAAApC,EAAA,CAAA;AACrG,UAAAyC,IAAAb,EAAIE,QAAJ;AAAiB,QAAAY;AAAA,IAAA1C,EAAA,CAAA,MAAA6B,KAAA7B,EAAA,CAAA,MAAA4B,EAAAE,QAAA9B,EAAA,CAAA,MAAA4B,EAAAe,SACjBD,IAAA,CAACd,EAAIE,QAALD,IACG,gBAAAvB,EAACsC,MAAW,IAAA;AAAA,MAAAC,OAASlC,KAAY;AAAA,MAACmC,QAAUnC,KAAY;AAAA,MAACoC,UAAY;AAAA,IAAA,GAAOnB,UAAAA,EAAIe,MAAAA,CAAO,IAD1F,MAEO3C,OAAA6B,GAAA7B,EAAA,CAAA,IAAA4B,EAAAE,MAAA9B,EAAA,CAAA,IAAA4B,EAAAe,OAAA3C,OAAA0C,KAAAA,IAAA1C,EAAA,CAAA;AAAA,QAAAgD;AAAA,IAAAhD,EAAA,CAAA,MAAAyC,KAAAzC,SAAA0C,KAJZM,sBAACC,IAAA,EAAiB,IAAAb,GACbK,UAAAA;AAAAA,MAAAA;AAAAA,MACAC;AAAAA,IAAAA,GAGL,GAAe1C,OAAAyC,GAAAzC,OAAA0C,GAAA1C,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAAA,QAAAkD;AAAA,IAAAlD,UAAA6B,KAAA7B,EAAA,EAAA,MAAA4B,EAAAe,SACdO,IAAArB,IACG,gBAAAvB,EAACC,IAAA,EACW,SAAA,WACJ,IAAA;AAAA,MAAAyB,UACU;AAAA,MAAUmB,QACZ;AAAA,MAAGlB,MACL;AAAA,MAAKE,WACA;AAAA,MAAkBY,UACnB;AAAA,MAAEK,YACA;AAAA,MAAGC,WACJ;AAAA,MAAQC,YACP;AAAA,MAAQC,UACV;AAAA,MAAQC,cACJ;AAAA,MAAUC,UACdC,KAAa;AAAA,IAAA,GAG1B9B,UAAAA,EAAIe,MAAAA,CACT,IAlBH,MAmBO3C,QAAA6B,GAAA7B,EAAA,EAAA,IAAA4B,EAAAe,OAAA3C,QAAAkD,KAAAA,IAAAlD,EAAA,EAAA;AAAA,QAAA2D;AAAA,WAAA3D,EAAA,EAAA,MAAA+B,KAAA/B,UAAAgD,KAAAhD,EAAA,EAAA,MAAAkD,KA1BZS,sBAACC,IAAA,EAAQ,IAAA7B,GACLiB,UAAAA;AAAAA,MAAAA;AAAAA,MAMCE;AAAAA,IAAAA,GAoBL,GAAMlD,QAAA+B,GAAA/B,QAAAgD,GAAAhD,QAAAkD,GAAAlD,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA,GA3BN2D;AAAAA,EA2BM;AAEb,SACM;AAAI,GASTE,KAAoC3D,CAAAA,MAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAC;AAAA,IAAAtB,MAAAA;AAAAA,IAAAmF,UAAAA;AAAAA,IAAAlL,UAAAA;AAAAA,EAAAA,IAAAsH;AAA4B,MAAA6B;AAAA,EAAA/B,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAM3D2B,IAAA;AAAA,IAAAgC,MAAQ;AAAA,IAAQ5F,SAAW;AAAA,MAAA6F,QAAU,CAAC,GAAG,CAAC;AAAA,IAAA;AAAA,EAAE,GAAGhE,OAAA+B,KAAAA,IAAA/B,EAAA,CAAA;AAAA,MAAAoC;AAAA,EAAApC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAC/CgC,IAAA;AAAA,IAAA2B,MAAQ;AAAA,IAAiB5F,SAAW;AAAA,MAAA8F,SAAW;AAAA,IAAA;AAAA,EAAE,GAAGjE,OAAAoC,KAAAA,IAAApC,EAAA,CAAA;AAAA,MAAAyC;AAAA,EAAAzC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAF7CqC,IAAA,CACPV,GACAK,GACA;AAAA,IAAA2B,MAAQ;AAAA,IAAM5F,SAAW;AAAA,MAAA+F,oBAAsB,CAAC,aAAa,YAAY;AAAA,IAAA;AAAA,EAAE,CAAG,GACjFlE,OAAAyC,KAAAA,IAAAzC,EAAA,CAAA;AAAA,MAAA0C;AAAA,EAAA1C,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAGOsC,IAAA;AAAA,IAAAyB,IACI;AAAA,IAAGC,IACH;AAAA,IAAGC,WACI;AAAA,IAAiCC,WACjC;AAAA,IAAMC,oBACG;AAAA,EAAA,GACvBvE,OAAA0C,KAAAA,IAAA1C,EAAA,CAAA;AAAA,MAAAgD;AAAA,EAAAhD,SAAApH,KAPLoK,IAAA,gBAAA1C,EAACkE,IAAA,EACO,IAAA9B,GAQH9J,UAAAA,GACL,GAAQoH,OAAApH,GAAAoH,OAAAgD,KAAAA,IAAAhD,EAAA,CAAA;AAAA,MAAAkD;AAAA,SAAAlD,EAAA,CAAA,MAAA8D,KAAA9D,SAAArB,KAAAqB,EAAA,CAAA,MAAAgD,KApBZE,IAAA,gBAAA5C,EAACmE,MACS9F,MAAAA,GACImF,UAAAA,GACA,WAAA,eACC,WAAArB,GAMXO,UAAAA,EAAAA,CAWJ,GAAShD,OAAA8D,GAAA9D,OAAArB,GAAAqB,OAAAgD,GAAAhD,OAAAkD,KAAAA,IAAAlD,EAAA,CAAA,GArBTkD;AAqBS,GAgBAwB,KAAkDxE,CAAAA,MAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAC;AAAA,IAAA2B,MAAAA;AAAAA,IAAA+C,QAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAhD,WAAAA;AAAAA,IAAAiD,wBAAA/C;AAAAA,IAAAgD,yBAAAA;AAAAA,IAAAC,SAAAA;AAAAA,IAAAC,cAAAA;AAAAA,IAAA7G,SAAAA;AAAAA,EAAAA,IAAA8B,GAA+C4E,IAAA/C,MAAAmD,SAAA,KAAAnD,GAC3G,CAAAoD,GAAAC,CAAA,IAAoD3H,EAAwB,IAAI,GAChF,CAAA4H,GAAAC,CAAA,IAA0C7H,EAA6B,IAAI;AAAE,MAAA2E;AAAA,EAAApC,SAAA6B,KAAA7B,EAAA,CAAA,MAAA2E,KAAA3E,EAAA,CAAA,MAAA+E,KAAA/E,SAAA8E,KAAA9E,EAAA,CAAA,MAAA4B,EAAAhJ,YAE3CwJ,IAAAA,MAC1BP,KAAAkD,KAAwCnD,EAAIhJ,WACrC;AAAA,IAAAmK,UACO;AAAA,IAAEf,UACF;AAAA,IAAUE,KACf;AAAA,IAAOqD,OACL;AAAA,IAAKpD,WACD;AAAA,EAAA,IAGf,CAACN,KAADiD,KAAwClD,EAAIhJ,WACrC;AAAA,IAAA4M,IACC;AAAA,IAAGrD,WACI,UAAUwC,IAAA,IAAA,GAAgB;AAAA,EAAA,IAGtC;AAAA,IAAAtC,SAAW;AAAA,EAAA,GACrBrC,OAAA6B,GAAA7B,OAAA2E,GAAA3E,OAAA+E,GAAA/E,OAAA8E,GAAA9E,EAAA,CAAA,IAAA4B,EAAAhJ,UAAAoH,OAAAoC,KAAAA,IAAApC,EAAA,CAAA;AAjBD,QAAAyF,IAAkCrD,GAmBlCsD,IAAyB9D,EAAIhJ,YAAJ,CAAkBiJ,GAKhBY,IAAAZ,IAAA,KAAA;AAAmB,MAAAa;AAAA,EAAA1C,SAAAyC,KAAtCC,IAAA;AAAA,IAAAiD,IAAM;AAAA,IAAG7C,QAAUL;AAAAA,EAAAA,GAAqBzC,OAAAyC,GAAAzC,OAAA0C,KAAAA,IAAA1C,EAAA,CAAA;AAAA,MAAAgD;AAAA,EAAAhD,EAAA,CAAA,MAAA6E,KAAA7E,SAAA4E,KAAA5E,EAAA,EAAA,MAAA0C,KAH5BM,IAAA;AAAA,IAAA4B,UAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAe,IAGZlD;AAAAA,EAAAA,GACP1C,OAAA6E,GAAA7E,OAAA4E,GAAA5E,QAAA0C,GAAA1C,QAAAgD,KAAAA,IAAAhD,EAAA,EAAA;AAJD,QAAA6F,IAAoB7C;AAIlB,MAAAE;AAAA,EAAAlD,EAAA,EAAA,MAAA6B,KAAA7B,UAAA4B,KAIMsB,IAAA,gBAAA5C,EAACqB,IAAA,EAAmBC,MAAAA,GAAiBC,WAAAA,EAAAA,CAAS,GAAI7B,QAAA6B,GAAA7B,QAAA4B,GAAA5B,QAAAkD,KAAAA,IAAAlD,EAAA,EAAA;AAAA,MAAA2D;AAAA,EAAA3D,UAAA6B,KAAA7B,EAAA,EAAA,MAAA4B,EAAAe,SACjDgB,IAAA,CAAC9B,KACE,gBAAAvB,EAACwF,MACY,SAAAlE,EAAIe,OACF,WAAA;AAAA,IAAAvB,SAAW;AAAA,MAAA2E,QAAU;AAAA,MAAIpD,OAASf,EAAIe;AAAAA,IAAAA;AAAAA,EAAO,GACpD,IAAA;AAAA,IAAA6C,IAAM;AAAA,IAAGQ,MAAQ;AAAA,IAACxD,UAAY;AAAA,IAAC,yBAA2B;AAAA,MAAAc,YAAc;AAAA,MAAQC,UAAY;AAAA,MAAQC,cAAgB;AAAA,IAAA;AAAA,EAAW,GAAG,GAE7IxD,QAAA6B,GAAA7B,EAAA,EAAA,IAAA4B,EAAAe,OAAA3C,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,MAAAiG;AAAA,EAAAjG,UAAAyF,KAAAzF,EAAA,EAAA,MAAA4B,EAAAhJ,YACAqN,IAAArE,EAAIhJ,WAAY,gBAAA0H,EAAC4F,IAAA,EAAmBT,IAAAA,GAAS,IAA7C,MAAwDzF,QAAAyF,GAAAzF,EAAA,EAAA,IAAA4B,EAAAhJ,UAAAoH,QAAAiG,KAAAA,IAAAjG,EAAA,EAAA;AAAA,MAAAmG;AAAA,EAAAnG,EAAA,EAAA,MAAAkD,KAAAlD,UAAA2D,KAAA3D,EAAA,EAAA,MAAAiG,KAT7DE,IAAA,gBAAAxG,EAAAyG,IAAA,EACIlD,UAAAA;AAAAA,IAAAA;AAAAA,IACCS;AAAAA,IAOAsC;AAAAA,EAAAA,GAAwD,GAC1DjG,QAAAkD,GAAAlD,QAAA2D,GAAA3D,QAAAiG,GAAAjG,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA;AAXP,QAAAqG,IACIF;AAWF,MAAAG;AAAA,EAAAtG,EAAA,EAAA,MAAA6B,KAAA7B,EAAA,EAAA,MAAA4B,EAAAhJ,YAAAoH,EAAA,EAAA,MAAA4B,EAAAe,SAIW2D,IAAA1E,EAAIhJ,YAAJiJ,IAAA;AAAA,IAAA0E,cAEiBC,CAAAA,MAAA;AACVlB,MAAAA,EAAiBkB,EAAKC,aAAc,GACpCrB,EAAsBxD,EAAIe,KAAM;AAAA,IAAC;AAAA,IACpC+D,cACaA,MAAA;AACVtB,MAAAA,EAAsB,IAAI;AAAA,IAAC;AAAA,EAAA,IAPlC,CAAA,GAUGpF,QAAA6B,GAAA7B,EAAA,EAAA,IAAA4B,EAAAhJ,UAAAoH,EAAA,EAAA,IAAA4B,EAAAe,OAAA3C,QAAAsG,KAAAA,IAAAtG,EAAA,EAAA;AAAA,MAAA2G;AAAA,EAAA3G,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACJuG,IAAA;AAAA,IAAAC,IAAM;AAAA,IAACjB,IAAM;AAAA,IAACkB,WAAa;AAAA,EAAA,GAAU7G,QAAA2G,KAAAA,IAAA3G,EAAA,EAAA;AAAA,MAAA8G;AAAA,EAAA9G,UAAAqG,KAAArG,EAAA,EAAA,MAAA6F,KAAA7F,EAAA,EAAA,MAAA4B,KAAA5B,EAAA,EAAA,MAAAgF,KAAAhF,UAAA5B,KAAA4B,EAAA,EAAA,MAAA0F,KAExCoB,IAAApB,IACG,gBAAApF,EAACM,IAAA,EAAe,GAAKiF,GAAsB,SAAA,MAAMb,IAAUpD,CAAI,GAC1DyE,UAAAA,EAAAA,CACL,sBAEC5E,IAAA,EAAkB,GACXoE,GACA,IAAAjE,EAAImF,IACF,MAAAnF,EAAIoF,MACF,QAAApF,EAAIqF,QACJ,QAAArF,EAAIsF,QACH9I,SAAAA,GAERiI,UAAAA,GACL,GACHrG,QAAAqG,GAAArG,QAAA6F,GAAA7F,QAAA4B,GAAA5B,QAAAgF,GAAAhF,QAAA5B,GAAA4B,QAAA0F,GAAA1F,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAA,MAAAmH;AAAA,EAAAnH,EAAA,EAAA,MAAAqF,KAAArF,EAAA,EAAA,MAAA6B,KAAA7B,EAAA,EAAA,MAAAmF,KAAAnF,UAAA4B,EAAAhJ,YAAAoH,EAAA,EAAA,MAAA4B,EAAAe,SAAA3C,EAAA,EAAA,MAAAiF,KAEAkC,IAAAvF,EAAIhJ,YAAJiJ,IACG,gBAAAvB,EAACuD,MAAkB,MAAAjC,EAAIe,UAAWwC,GAA8BE,UAAAA,GAC3DJ,UAAAA,IAAerD,EAAIhJ,QAAS,GACjC,IAHH,MAIOoH,QAAAqF,GAAArF,QAAA6B,GAAA7B,QAAAmF,GAAAnF,EAAA,EAAA,IAAA4B,EAAAhJ,UAAAoH,EAAA,EAAA,IAAA4B,EAAAe,OAAA3C,QAAAiF,GAAAjF,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA;AAAA,MAAAoH;AAAA,EAAApH,EAAA,EAAA,MAAAsG,KAAAtG,UAAA8G,KAAA9G,EAAA,EAAA,MAAAmH,KAnCZC,sBAACC,IAAA,EAAQ,GACAf,GAWD,IAAAK,GAEHG,UAAAA;AAAAA,IAAAA;AAAAA,IAiBAK;AAAAA,EAAAA,GAKL,GAAWnH,QAAAsG,GAAAtG,QAAA8G,GAAA9G,QAAAmH,GAAAnH,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AArCf,QAAAsH,IACIF;AAqCF,MAAAG;AAAA,EAAAvH,EAAA,EAAA,MAAA6B,KAAA7B,UAAA2E,KAAA3E,EAAA,EAAA,MAAA4B,EAAAhJ,YAAAoH,UAAAiF,KAKOsC,IAAA3F,EAAIhJ,YAAJ,CAAkBiJ,IACf,gBAAAvB,EAACkH,MAAa7C,IAAAA,GAAgB,SAAA,QAAO,eAAA,IAChCM,UAAAA,IAAerD,EAAIhJ,QAAS,GACjC,IAHH,MAIOoH,QAAA6B,GAAA7B,QAAA2E,GAAA3E,EAAA,EAAA,IAAA4B,EAAAhJ,UAAAoH,QAAAiF,GAAAjF,QAAAuH,KAAAA,IAAAvH,EAAA,EAAA;AAAA,MAAAyH;AAAA,SAAAzH,EAAA,EAAA,MAAA4B,EAAAmF,MAAA/G,EAAA,EAAA,MAAAsH,KAAAtH,EAAA,EAAA,MAAAuH,KANZE,sBAACrB,IAAA;;IAEImB;AAAAA,EAAAA,EAAAA,GAFU3F,EAAImF,EAOnB,GAAW/G,EAAA,EAAA,IAAA4B,EAAAmF,IAAA/G,QAAAsH,GAAAtH,QAAAuH,GAAAvH,QAAAyH,KAAAA,IAAAzH,EAAA,EAAA,GAPXyH;AAOW,GCnONC,KAAaA,CAAC9F,MAAqD,EAAE,UAAUA,IAC/E+F,KAAYA,CAAC/F,MAAoD,UAAUA,KAAQA,EAAKgG,SAAS,WACjGC,KAAWA,CAACjG,MAAmD,UAAUA,KAAQA,EAAKgG,SAAS,UAgB/FE,KAA0C5H,CAAAA,MAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAC;AAAA,IAAA8H,eAAAA;AAAAA,IAAAC,OAAAjG;AAAAA,IAAAF,WAAAA;AAAAA,IAAAoG,WAAAA;AAAAA,IAAAnD,wBAAA1C;AAAAA,IAAA2C,yBAAAA;AAAAA,IAAAmD,eAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAC,YAAAA;AAAAA,IAAAjK,SAAAA;AAAAA,EAAAA,IAAA8B,GAAiB8H,IAAAjG,MAAAmD,SAAA,IAAAnD,GAAiC+C,IAAA1C,MAAA8C,SAAA,KAAA9C;AAA6B,MAAAK;AAAA,EAAAzC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAC3EqC,IAAA,CAAA,GAAEzC,OAAAyC,KAAAA,IAAAzC,EAAA,CAAA;AAA1D,QAAA,CAAAsI,GAAAC,CAAA,IAAgC9K,EAAwBgF,CAAE;AAAE,MAAAC,GAAAM;AAAA,EAAAhD,SAAA6B,KAElDa,IAAAA,MAAA;AACN,IAAIb,KAAW0G,EAAY,CAAA,CAAE;AAAA,EAAE,GAChCvF,IAAA,CAACnB,CAAS,GAAC7B,OAAA6B,GAAA7B,OAAA0C,GAAA1C,OAAAgD,MAAAN,IAAA1C,EAAA,CAAA,GAAAgD,IAAAhD,EAAA,CAAA,IAFdwI,GAAU9F,GAEPM,CAAW;AAAC,MAAAE;AAAA,EAAAlD,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEG8C,IAAAzE,OACd8J,EAAYE,CAAAA,MAAeA,EAAQC,SAAUjK,CAA4D,IAArDgK,EAAQzJ,OAAQ2J,CAAAA,MAAOA,MAAMlK,CAAwB,IAA9E,CAAA,GAAiEgK,GAAUhK,CAAG,CAAE,GAACuB,OAAAkD,KAAAA,IAAAlD,EAAA,CAAA;AADhH,QAAA4I,IAAkB1F;AAC+F,MAAAS;AAAA,EAAA3D,SAAAoI,KAAApI,EAAA,CAAA,MAAA6B,KAAA7B,EAAA,CAAA,MAAAgI,KAAAhI,EAAA,CAAA,MAAAkI,KAAAlI,SAAA5B,KAAA4B,EAAA,EAAA,MAAAqI,KAE5F1E,IAAA/K,CAAAA,MAAqC,gBAAA0H,EAACwH,IAAA,EACxClP,eAAAA,GACR,OAAAoP,IAAQ,GACJnG,WAAAA,GACIqG,eAAAA,GACHE,YAAAA,GACAC,YAAAA,GACHjK,SAAAA,GAAO,GAClB4B,OAAAoI,GAAApI,OAAA6B,GAAA7B,OAAAgI,GAAAhI,OAAAkI,GAAAlI,OAAA5B,GAAA4B,QAAAqI,GAAArI,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AARF,QAAAiF,IAAqBtB;AAQlB,MAAAsC;AAAA,MAAAjG,UAAAoI,KAAApI,EAAA,EAAA,MAAA6B,KAAA7B,EAAA,EAAA,MAAAgI,KAAAhI,UAAAkI,KAAAlI,EAAA,EAAA,MAAAiI,KAAAjI,EAAA,EAAA,MAAA+E,KAAA/E,EAAA,EAAA,MAAA8E,KAAA9E,UAAA5B,KAAA4B,EAAA,EAAA,MAAAsI,KAAAtI,EAAA,EAAA,MAAAmI,KAAAnI,UAAAiF,KAAAjF,EAAA,EAAA,MAAA+H,GAAA;AAEH,UAAAc,IAA2Bd,EAAa/I,OAAQ8J,EAAkB,GAMlD3C,IAAA8B,KAAaD,MAAU,IAAvB,MAAA,GACA1B,IAAA0B,MAAU,KAAV,CAAgBC,IAAhB,IAAA,KACAtB,KAACsB,IAAA,IAAA,MAAsBA,IAAYD,IAAQ,IAApBA,IACjBlB,IAAAmB,KAAaD,MAAU,IAAvBe,KAAA,QACH5B,IAAAtF,IAAA6B,KAAA;AAA+B,QAAA0D;AAAA,IAAApH,EAAA,EAAA,MAAAsG,KAAAtG,EAAA,EAAA,MAAA2G,KAAA3G,EAAA,EAAA,MAAA8G,KAAA9G,EAAA,EAAA,MAAAmH,KAAAnH,UAAAmG,KANtCiB,IAAA;AAAA,MAAAnD,SACS;AAAA,MAAC+E,IACN7C;AAAAA,MAAkC8C,IAClC3C;AAAAA,MAAmC4C,IACnCvC;AAAAA,MAAqDnE,UAC/CsE;AAAAA,MAAkDjE,OACrDsE;AAAAA,IAAAA,GACVnH,QAAAsG,GAAAtG,QAAA2G,GAAA3G,QAAA8G,GAAA9G,QAAAmH,GAAAnH,QAAAmG,GAAAnG,QAAAoH,KAAAA,IAAApH,EAAA,EAAA,GARLiG,sBAACkD,MACO,IAAA/B,GASHyB,YAAkBzJ,IAAK,CAAAgK,GAAAC,MAAA;AACpB,UAAIxB,GAASuB,CAAO;AAAC,eAEb,gBAAA9I,EAACgJ,MAEO,IAAA;AAAA,UAAAvG,UACU;AAAA,UAAEK,YACA;AAAA,UAAKN,QACTjB,IAAA,IAAA;AAAA,UAAkB8D,IACtB;AAAA,UAACnD,UACK0F;AAAAA,UAAa3E,UACb;AAAA,UAAQC,cACJ;AAAA,UAAUF,YACZ;AAAA,UAAQiG,QACZ;AAAA,UAACC,SACA;AAAA,UAAaxH,UACZ;AAAA,QAAA,GAGboH,UAAAA,EAAOzG,SAfH,aAAaqF,CAAK,IAAIqB,CAAK,EAgBpC;AAIR,UAAI1B,GAAUyB,CAAO,GAAC;AAClB,cAAAK,IAAiBZ,EAAmBQ,IAAQ,CAAC;AAAE,eAE3C,gBAAA/I,EAAA,MAAA,EACI,UAAA,gBAAAA,EAACoJ,IAAA,EAAY,IAAA;AAAA,UAAAC,IAAM;AAAA,UAACX,IAAM;AAAA,UAACC,IAAMpB,GAAS4B,CAAsB,KAA/B,CAAuB5H,IAAvB,IAAA;AAAA,QAAA,GAA0C,EAAA,cAD3DmG,CAAK,IAAIqB,CAAK,EAElC;AAAA,MAAK;AAIb,UAAI,CAAC3B,GAAW0B,CAAO;AAAC,eAAS;AAEjC,YAAAQ,IAAY,QAAQ5B,CAAK,IAAIqB,CAAK,IAClCQ,IAAsB,GAAG7B,CAAK,IAAIqB,CAAK,IAAID,EAAOzG,KAAM;AAExD,aAAIwF,IAAmB,gBAAA7H,EAAC8F,IAAA,EAAoB+B,UAAAA,EAAWiB,GAAS;AAAA,QAAAvH,WAAa,CAAC,CAACA;AAAAA,MAAAA,CAAW,KAApDpD,CAAsD,IAErF,gBAAA6B,EAACoE,IAAA,EAEE0E,SACE,QAAAd,EAAQI,SAAUmB,CAAa,GAC7B,UAAAzB,MAAegB,EAAOrC,IACrBlF,WAAAA,GACaiD,wBAAAA,GACCC,yBAAAA,GAChB,SAAAqE,EAAOxQ,YAAP,CAAqBiJ,IAArB,MAAuC+G,EAAUiB,CAAa,IAA9D3E,QACKD,cAAAA,GACL7G,SAAAA,EAAAA,IAAO;AAAA,IAClB,CACL,EAAA,CACL,GAAO4B,QAAAoI,GAAApI,QAAA6B,GAAA7B,QAAAgI,GAAAhI,QAAAkI,GAAAlI,QAAAiI,GAAAjI,QAAA+E,GAAA/E,QAAA8E,GAAA9E,QAAA5B,GAAA4B,QAAAsI,GAAAtI,QAAAmI,GAAAnI,QAAAiF,GAAAjF,QAAA+H,GAAA/H,QAAAiG;AAAAA,EAAA;AAAAA,IAAAA,IAAAjG,EAAA,EAAA;AAAA,SA/DPiG;AA+DO;AAtFwC,SAAA6C,GAAAgB,GAAA;AAAA,SAoBI,CAACA,EAAGC;AAAO;ACtC/D,MAAMrG,KAAa,IACbqF,KAAiB,KACjBiB,KAAiB,IAQjBC,KAA0C/J,CAAAA,MAAA;AAAA,QAAAF,IAAAC,EAAA,EAAA,GAAC;AAAA,IAAAiK,YAAAA;AAAAA,IAAAC,UAAAA;AAAAA,IAAAC,aAAAA;AAAAA,EAAAA,IAAAlK,GACpDmK,IAAiBC,GAAAA,GACjBC,IAAoBC,GAAAA,GACpBzJ,IAAc0J,GAAAA;AAAW,MAAA1I;AAAA,EAAA/B,EAAA,CAAA,MAAAe,EAAA2J,eACW3I,IAAAhB,EAAK2J,YAAYC,GAAI,IAAI,GAAC3K,EAAA,CAAA,IAAAe,EAAA2J,aAAA1K,OAAA+B,KAAAA,IAAA/B,EAAA,CAAA;AAA9D,QAAA4K,IAAsBC,GAAc9I,CAA0B;AAAE,MAAAK;AAAA,EAAApC,EAAA,CAAA,MAAAmK,KAAAnK,EAAA,CAAA,MAAAqK,KAAArK,EAAA,CAAA,MAAAkK,KAAAlK,SAAAuK,EAAAO,SAAAC,YAAA/K,EAAA,CAAA,MAAAoK,KAAApK,EAAA,CAAA,MAAA4K,KAE1CxI,IAAAP,CAAAA,MAClB,gBAAAvB,EAACsD,IAAA,EACa,WAAA,OACN,IAAA;AAAA,IAAAd,QACQ;AAAA,IAAMT,SACL;AAAA,IAAM2I,eACA;AAAA,IAAQzI,gBACP;AAAA,IAAegB,UACrB;AAAA,IAAM0H,iBACCpJ,IAAA,WAAA;AAAA,IAA6BgF,WACnC;AAAA,IAAQ1C,IACf+F,EAAU,CAAA,KAAOrC,GAASqC,EAAU,CAAA,CAAG,KAAvC,CAA6CrI,IAA7C,IAAA;AAAA,EAAA,GAGR,UAAA,gBAAAvB,EAACwH,IAAA,EACkBoC,eAAAA,GACJrI,WAAAA,GACasI,wBAAAA,GACC,yBAAA,CAACA,GACXpB,eAAAA,IACH,YAAAwB,EAAWO,SAASC,UACpBV,YAAAA,GACH,SAACO,IAAD1F,SAAA,MAAuBkF,EAAY,EAAK,EAAxClF,CAAqD,EAAA,CAEtE,GACHlF,OAAAmK,GAAAnK,OAAAqK,GAAArK,OAAAkK,GAAAlK,EAAA,CAAA,IAAAuK,EAAAO,SAAAC,UAAA/K,OAAAoK,GAAApK,OAAA4K,GAAA5K,OAAAoC,KAAAA,IAAApC,EAAA,CAAA;AAzBD,QAAAkL,IAAsB9I;AA2BtB,MAAIwI,GAAa;AAKM,UAAAnI,IAAA0H,IAAApB,KAAArF,IAKIhB,IAAAyH,IAAApB,KAAArF;AAAsC,QAAAV;AAAA,IAAAhD,SAAA0C,KAJzBM,IAAA;AAAA,MAAAhB,UACV;AAAA,MAAUE,KACf,GAAG8H,EAAc;AAAA,MAAIlH,QAClB,eAAekH,EAAc;AAAA,MAAKnH,OACnCH;AAAAA,MAAsCyI,WAClC;AAAA,MAAWC,aACT;AAAA,IAAA,GAChBpL,OAAA0C,GAAA1C,QAAAgD,KAAAA,IAAAhD,EAAA,EAAA;AAAA,QAAAkD;AAAA,IAAAlD,EAAA,EAAA,MAAAyC,KAAAzC,UAAAgD,KATDE,IAAA;AAAA,MAAAL,OACOJ;AAAAA,MAAsC,sBACrBO;AAAAA,IAAAA,GAQ3BhD,QAAAyC,GAAAzC,QAAAgD,GAAAhD,QAAAkD,KAAAA,IAAAlD,EAAA,EAAA;AAEc,UAAA2D,KAACwG;AAAQ,QAAAlE;AAAA,IAAAjG,EAAA,EAAA,MAAAkL,KAAAlL,UAAA2D,KAAvBsC,IAAAiF,EAAcvH,CAAS,GAAC3D,QAAAkL,GAAAlL,QAAA2D,GAAA3D,QAAAiG,KAAAA,IAAAjG,EAAA,EAAA;AAAA,QAAAmG;AAAA,WAAAnG,EAAA,EAAA,MAAAkD,KAAAlD,UAAAiG,KAd7BE,sBAACkF,IAAA,EACW,SAAA,aACJ,IAAAnI,GAYH+C,UAAAA,GACL,GAASjG,QAAAkD,GAAAlD,QAAAiG,GAAAjG,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA,GAfTmG;AAAAA,EAeS;AACX,MAAA1D;AAAA,EAAAzC,UAAAoK,KAG+B3H,IAAAA,MAAM2H,EAAY,EAAK,GAACpK,QAAAoK,GAAApK,QAAAyC,KAAAA,IAAAzC,EAAA,EAAA;AACtC,QAAA0C,KAACyH;AAAQ,MAAAnH;AAAA,EAAAhD,EAAA,EAAA,MAAAkL,KAAAlL,UAAA0C,KAAvBM,IAAAkI,EAAcxI,CAAS,GAAC1C,QAAAkL,GAAAlL,QAAA0C,GAAA1C,QAAAgD,KAAAA,IAAAhD,EAAA,EAAA;AAAA,MAAAkD;AAAA,SAAAlD,EAAA,EAAA,MAAAmK,KAAAnK,UAAAyC,KAAAzC,EAAA,EAAA,MAAAgD,KAD7BE,sBAACmI,IAAA,EAAalB,MAAAA,GAAmB,SAAA1H,GAC5BO,UAAAA,GACL,GAAShD,QAAAmK,GAAAnK,QAAAyC,GAAAzC,QAAAgD,GAAAhD,QAAAkD,KAAAA,IAAAlD,EAAA,EAAA,GAFTkD;AAES,GC3DXoI,KAAaA,CAACtQ,MAA8BA,KAASA,EAAMuQ,OAAO,CAAC,EAAEC,YAAAA,IAAgBxQ,EAAMyQ,MAAM,CAAC,GAE3FC,KAAqBA,MAAA;AAAA,QAAA1L,IAAAC,EAAA,GAAA,GAC9B,CAAAoF,GAAAC,CAAA,IAA0C7H,EAAAA,GAC1C,CAAAkO,GAAAC,CAAA,IAAsBnO,EAAkB,UAAU,GAClDkB,IAAakN,EAAQxG,GACrB;AAAA,IAAAvN,GAAAA;AAAAA,IAAAgU,MAAAA;AAAAA,EAAAA,IAAoBC,GAAAA,GACpB;AAAA,IAAAC,MAAAA;AAAAA,IAAAC,SAAAA;AAAAA,EAAAA,IAA0BC,GAAAA;AAAiB,MAAAC,GAAAC,GAAAC,GAAAC,GAAApM,GAAA6B,GAAAhB;AAAA,MAAAf,EAAA,CAAA,MAAA8L,KAAA9L,EAAA,CAAA,MAAAgM,KAAAhM,EAAA,CAAA,MAAAiM,KAAAjM,SAAAlI,GAAA;AAE3C,UAAAyU,KAA4BC,MAAKC,QAASX,EAAI3N,QAAQuO,aAAgD,IAA9BZ,EAAI3N,QAAQuO,gBAAxD,CAAA,GAA2E1N,OAAS8J,EAAuB,GACvI6D,IAA6B,IAAIC,KAAIC,aAAc,CAACf,EAAIgB,QAAS,GAAG;AAAA,MAAAC,MAAQ;AAAA,IAAA,CAAY;AAAE,QAAA3K;AAAA,IAAApC,UAAAlI,KAG7CsK,IAAAtK,EAAE,cAAc,GAACkI,QAAAlI,GAAAkI,QAAAoC,KAAAA,IAAApC,EAAA,EAAA;AAAA,QAAAyC;AAAA,IAAAzC,UAAAoC,KAA1DK,IAAA;AAAA,MAAAuJ,MAAQ;AAAA,MAAOlK,MAAQkL;AAAAA,MAASC,OAAS7K;AAAAA,IAAAA,GAAmBpC,QAAAoC,GAAApC,QAAAyC,KAAAA,IAAAzC,EAAA,EAAA;AAAA,QAAA0C;AAAA,IAAA1C,UAAAlI,KACrB4K,IAAA5K,EAAE,aAAa,GAACkI,QAAAlI,GAAAkI,QAAA0C,KAAAA,IAAA1C,EAAA,EAAA;AAAA,QAAAgD;AAAA,IAAAhD,UAAA0C,KAAvDM,IAAA;AAAA,MAAAgJ,MAAQ;AAAA,MAAMlK,MAAQoL;AAAAA,MAAQD,OAASvK;AAAAA,IAAAA,GAAkB1C,QAAA0C,GAAA1C,QAAAgD,KAAAA,IAAAhD,EAAA,EAAA;AAAA,QAAAkD;AAAA,IAAAlD,UAAAlI,KACNoL,IAAApL,EAAE,eAAe,GAACkI,QAAAlI,GAAAkI,QAAAkD,KAAAA,IAAAlD,EAAA,EAAA;AAAA,QAAA2D;AAAA,IAAA3D,UAAAkD,KAArES,IAAA;AAAA,MAAAqI,MAAQ;AAAA,MAAQlK,MAAQqL;AAAAA,MAAkBF,OAAS/J;AAAAA,IAAAA,GAAoBlD,QAAAkD,GAAAlD,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,QAAAiG;AAAA,IAAAjG,EAAA,EAAA,MAAAyC,KAAAzC,UAAAgD,KAAAhD,EAAA,EAAA,MAAA2D,KAH6BsC,MACpGxD,GACAO,GACAW,CAAuE,GAC1E3D,QAAAyC,GAAAzC,QAAAgD,GAAAhD,QAAA2D,GAAA3D,QAAAiG,MAAAA,KAAAjG,EAAA,EAAA;AAJD,UAAAoN,KAAwGnH;AAItG,QAAAE;AAAA,IAAAnG,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEe+F,KAAAK,CAAAA,MAA4DlB,EAAiBkB,EAAKC,aAAc,GAACzG,QAAAmG,MAAAA,KAAAnG,EAAA,EAAA,GAAlHqM,IAAiBlG;AAAkG,QAAAG;AAAA,IAAAtG,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACjGkG,KAAAA,MAAA;AAAQhB,MAAAA,EAAiBJ,MAAS,GAAG7F,WAAW,MAAMuM,EAAO,UAAU,GAAG,GAAG;AAAA,IAAC,GAAG5L,QAAAsG,MAAAA,KAAAtG,EAAA,EAAA,GAAnGoM,IAAkB9F;AAAkF,QAAAK;AAAA,IAAA3G,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAElFuG,KAAA0G,CAAAA,MAAqB,MAAMzB,EAAOyB,CAAM,GAACrN,QAAA2G,MAAAA,KAAA3G,EAAA,EAAA;AAA3D,UAAAsN,KAAkB3G;AAA0C,QAAAG;AAAA,IAAA9G,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAGJ0G,KAAA;AAAA,MAAAxF,iBAAmB;AAAA,IAAA,GAAetB,QAAA8G,MAAAA,KAAA9G,EAAA,EAAA;AAAA,QAAAmH;AAAA,IAAAnH,UAAAlI,KAAGqP,IAAArP,EAAE,iBAAiB,GAACkI,QAAAlI,GAAAkI,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA;AAAA,QAAAoH;AAAA,IAAApH,UAAAmH,KAA5EC,IAAA,gBAAA9G,EAACgJ,IAAA,EAAkB,IAAAxC,IAAqCK,UAAAA,GAAqB,GAAgBnH,QAAAmH,GAAAnH,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAA,QAAAuH,IAAAE;AAAA,IAAAzH,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACjGmH,KAAA+F,GAAU,OAAO,GAAO7F,KAAA;AAAA,MAAAb,IAAM;AAAA,IAAA,GAAK5G,QAAAuH,IAAAvH,QAAAyH,OAAAF,KAAAvH,EAAA,EAAA,GAAAyH,KAAAzH,EAAA,EAAA;AAAA,QAAAuN;AAAA,IAAAvN,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACxDmN,KAAA,gBAAAjN,EAAC2C,IAAA,EACG,UAAA,gBAAA3C,EAACkN,IAAA,CAAA,CAAW,GAChB,GAAexN,QAAAuN,MAAAA,KAAAvN,EAAA,EAAA;AAAA,QAAAyN;AAAA,IAAAzN,UAAAlI,KACQ2V,IAAA3V,EAAE,mBAAmB,GAACkI,QAAAlI,GAAAkI,QAAAyN,KAAAA,IAAAzN,EAAA,EAAA;AAAa,UAAA0N,KAAAN,GAAUO,KAAMC,OAAOA,EAAC5B,SAAUA,CAAW,GAACiB;AAAA,QAAAY;AAAA,IAAA7N,EAAA,EAAA,MAAAyN,KAAAzN,UAAA0N,MAAxGG,IAAA,gBAAAvN,EAACwF,IAAA,EAAsB,SAAA2H,GAAmC,WAAAC,IAA8C,GAAI1N,QAAAyN,GAAAzN,QAAA0N,IAAA1N,QAAA6N,KAAAA,IAAA7N,EAAA,EAAA;AAAA,QAAA8N;AAAA,IAAA9N,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAC5G0N,uBAACC,IAAA,EAAY,GAAG/N,QAAA8N,MAAAA,KAAA9N,EAAA,EAAA;AAAA,QAAAgO;AAAA,IAAAhO,UAAA6N,KALpBG,KAAA,gBAAArO,EAACmB,IAAA,EAAwB,SAAAyG,IAAwB,IAAAE,IAC7C8F,UAAAA;AAAAA,MAAAA;AAAAA,MAGAM;AAAAA,MACAC;AAAAA,IAAAA,GACJ,GAAiB9N,QAAA6N,GAAA7N,QAAAgO,MAAAA,KAAAhO,EAAA,EAAA;AAAA,QAAAiO,IAAAC;AAAA,IAAAlO,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEQ6N,KAAAX,GAAU,UAAU,GAAOY,KAAA;AAAA,MAAAtH,IAAM;AAAA,IAAA,GAAK5G,QAAAiO,IAAAjO,QAAAkO,OAAAD,KAAAjO,EAAA,EAAA,GAAAkO,KAAAlO,EAAA,EAAA;AAAA,QAAAmO;AAAA,IAAAnO,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAC3D+N,KAAA,gBAAA7N,EAAC2C,IAAA,EACG,UAAA,gBAAA3C,EAAC8N,IAAA,CAAA,CAAS,GACd,GAAepO,QAAAmO,MAAAA,KAAAnO,EAAA,EAAA;AAAA,QAAAqO;AAAA,IAAArO,UAAAlI,KACQuW,KAAAvW,EAAE,iBAAiB,GAACkI,QAAAlI,GAAAkI,QAAAqO,MAAAA,KAAArO,EAAA,EAAA;AAAA,QAAAsO;AAAA,IAAAtO,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAC3CkO,uBAACP,IAAA,EAAY,GAAG/N,QAAAsO,MAAAA,KAAAtO,EAAA,EAAA;AALpB,UAAAuO,uBAACzN,IAAA,EAAwB,SAAAmN,IAA2B,IAAAC,IAChDC,UAAAA;AAAAA,MAAAA;AAAAA,MAGA,gBAAA7N,EAACwF,IAAA,EAAsB,SAAAuI,IAAiC,WAAA/C,GAAWqB,EAAoB6B,GAAI1C,EAAIgB,QAAS,CAAC,EAAA,CAAC;AAAA,MAC1GwB;AAAAA,IAAAA,GACJ;AAAiB,QAAAG;AAAA,IAAAzO,EAAA,EAAA,MAAAoH,KAAApH,UAAAgO,MAAAhO,EAAA,EAAA,MAAAuO,MAfrBE,KAAA,gBAAA9O,EAACwJ,IAAA,EAAe,WAAA,OAAiB,WAAA/B,GAC7B4G,UAAAA;AAAAA,MAAAA;AAAAA,MAQAO;AAAAA,IAAAA,GAOJ,GAAOvO,QAAAoH,GAAApH,QAAAgO,IAAAhO,QAAAuO,IAAAvO,QAAAyO,MAAAA,KAAAzO,EAAA,EAAA,GAjBXsM,IACImC;AAiBF,QAAAC,IAAAC;AAAA,IAAA3O,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAI8BsO,KAAApB,GAAU,UAAU,GAAOqB,KAAA;AAAA,MAAArN,iBAAmB;AAAA,MAAae,SAAW;AAAA,MAAMC,YAAc;AAAA,MAAQqD,IAAM;AAAA,MAACiJ,QAAU;AAAA,IAAA,GAAW5O,QAAA0O,IAAA1O,QAAA2O,OAAAD,KAAA1O,EAAA,EAAA,GAAA2O,KAAA3O,EAAA,EAAA;AAAA,QAAA6O;AAAA,IAAA7O,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAClJyO,KAAA,gBAAAvO,EAACwO,IAAA,EAAgB,MAAA,SAAY,IAAA;AAAA,MAAAC,IAAM;AAAA,IAAA,GAC/B,UAAA,gBAAAzO,EAAC0O,IAAA,EAAmB,UAAA,SAAO,GAC/B,GAAahP,QAAA6O,MAAAA,KAAA7O,EAAA,EAAA;AAAA,QAAAiP;AAAA,IAAAjP,UAAAlI,KAAEmX,KAAAnX,EAAE,mBAAmB,GAACkI,QAAAlI,GAAAkI,QAAAiP,MAAAA,KAAAjP,EAAA,EAAA;AAAA,QAAAkP;AAAA,IAAAlP,UAAAiP,MAHzCC,KAAA,gBAAAvP,EAAC2J,IAAA,EAAuB,SAAAoF,IAA2B,IAAAC,IAC/CE,UAAAA;AAAAA,MAAAA;AAAAA,MAEa;AAAA,MAAEI;AAAAA,IAAAA,GACnB,GAAgBjP,QAAAiP,IAAAjP,QAAAkP,MAAAA,KAAAlP,EAAA,EAAA;AAAA,QAAAmP;AAAA,IAAAnP,EAAA,EAAA,MAAAoN,MAAApN,UAAAgM,KAAAhM,EAAA,EAAA,MAAAiM,KAEfkD,KAAA/B,GAAUhO,IAAKgQ,CAAAA,MAAA;AAAC,YAAA;AAAA,QAAApD,MAAAqD;AAAAA,QAAAvN,MAAAwN;AAAAA,QAAArC,OAAAA;AAAAA,MAAAA,IAAAmC;AAAsC,aACnD,gBAAAzP,EAACmB,IAAA,EAEY,SAAA,MAAA;AACLmL,QAAAA,EAAQoD,EAAS,GACjBjD,EAAAA;AAAAA,MAAW,GAEL,UAAAJ,MAASqD,IAEnB,UAAA;AAAA,QAAA,gBAAA/O,EAAC2C,IAAA,EACG,UAAA,gBAAA3C,EAACgP,IAAA,CAAA,CAAI,GACT;AAAA,QACA,gBAAAhP,EAACwF,IAAA,EAAsBmH,SAAAA,GAAAA,CAAK;AAAA,MAAA,EAAA,GAVvBoC,EAWT;AAAA,IAAiB,CACpB,GAACrP,QAAAoN,IAAApN,QAAAgM,GAAAhM,QAAAiM,GAAAjM,QAAAmP,MAAAA,KAAAnP,EAAA,EAAA;AAAA,QAAAoP;AAAA,IAAApP,EAAA,EAAA,MAAAkP,MAAAlP,UAAAmP,MArBNC,KAAA,gBAAA9O,EAAC6I,IAAA,EACG,WAAA+F,IAMCC,UAAAA,IAeL,GAAOnP,QAAAkP,IAAAlP,QAAAmP,IAAAnP,QAAAoP,MAAAA,KAAApP,EAAA,EAAA,GAvBXe,IACIqO,IA0BCjD,IAAAhD;AAAI,QAAAoG,IAAAC;AAAA,IAAAxP,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACuBmP,KAAAjC,GAAU,UAAU,GAAOkC,KAAA;AAAA,MAAAlO,iBAAmB;AAAA,MAAae,SAAW;AAAA,MAAMC,YAAc;AAAA,MAAQqD,IAAM;AAAA,MAACiJ,QAAU;AAAA,IAAA,GAAW5O,QAAAuP,IAAAvP,QAAAwP,OAAAD,KAAAvP,EAAA,EAAA,GAAAwP,KAAAxP,EAAA,EAAA;AAAA,QAAAyP;AAAA,IAAAzP,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAClJqP,KAAA,gBAAAnP,EAACwO,IAAA,EAAgB,MAAA,SAAY,IAAA;AAAA,MAAAC,IAAM;AAAA,IAAA,GAC/B,UAAA,gBAAAzO,EAAC0O,IAAA,EAAmB,UAAA,SAAO,GAC/B,GAAahP,QAAAyP,MAAAA,KAAAzP,EAAA,EAAA;AAAA,QAAA0P;AAAA,IAAA1P,UAAAlI,KAAE4X,KAAA5X,EAAE,iBAAiB,GAACkI,QAAAlI,GAAAkI,QAAA0P,MAAAA,KAAA1P,EAAA,EAAA,GAAAA,UAAA0P,MAHvCxP,IAAA,gBAAAP,EAAC2J,IAAA,EAAuB,SAAAiG,IAA2B,IAAAC,IAC/CC,UAAAA;AAAAA,MAAAA;AAAAA,MAEa;AAAA,MAAEC;AAAAA,IAAAA,GACnB,GAAgB1P,QAAA0P,IAAA1P,QAAAE,KAAAA,IAAAF,EAAA,EAAA,GAEf+B,IAAAwK,EAAkBnN,IAAKuQ,CAAAA,wBACnB7O,IAAA,EAEY,SAAA,MAAMgL,EAAI8D,eAAgBD,CAAY,EAACE,QAAS,MAAMzD,GAAW,GAChE,UAAAN,EAAIgE,qBAAsBH,GAEpC,UAAA;AAAA,MAAA,gBAAArP,EAAC2C,MACI6I,UAAAA,EAAIgE,qBAAsBH,KAAgB,gBAAArP,EAACyP,MAAI,GACpD;AAAA,MACA,gBAAAzP,EAACwF,MAAsB,SAAAwF,GAAWqB,EAAoB6B,GAAImB,CAAY,CAAC,EAAA;SAPlEA,CAQT,CACJ,GAAC3P,OAAA8L,GAAA9L,OAAAgM,GAAAhM,OAAAiM,GAAAjM,OAAAlI,GAAAkI,OAAAmM,GAAAnM,OAAAoM,GAAApM,OAAAqM,GAAArM,OAAAsM,GAAAtM,OAAAE,GAAAF,OAAA+B,GAAA/B,QAAAe;AAAAA,EAAA;AAAAoL,IAAAA,IAAAnM,EAAA,CAAA,GAAAoM,IAAApM,EAAA,CAAA,GAAAqM,IAAArM,EAAA,CAAA,GAAAsM,IAAAtM,EAAA,CAAA,GAAAE,IAAAF,EAAA,CAAA,GAAA+B,IAAA/B,EAAA,CAAA,GAAAe,IAAAf,EAAA,EAAA;AAAA,MAAAoC;AAAA,EAAApC,EAAA,EAAA,MAAAmM,KAAAnM,UAAAE,KAAAF,EAAA,EAAA,MAAA+B,KAlBLK,IAAA,gBAAA9B,EAAC6L,GAAA,EACG,WAAAjM,GAMC6B,UAAAA,GAYL,GAAO/B,QAAAmM,GAAAnM,QAAAE,GAAAF,QAAA+B,GAAA/B,QAAAoC,KAAAA,IAAApC,EAAA,EAAA;AApBX,QAAA8M,IACI1K;AAoBF,MAAAK;AAAA,EAAAzC,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAKUqC,IAAA,gBAAAnC,EAAC0P,MAAkB,IAAA;AAAA,IAAAnN,OAAS;AAAA,MAAAoN,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,IAAIpN,QAAU;AAAA,MAAAmN,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,EAAG,GAAG,GAAIlQ,QAAAyC,KAAAA,IAAAzC,EAAA,EAAA;AAAA,MAAA0C;AAAA,EAAA1C,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAChFsC,IAAA,gBAAApC,EAAC6P,IAAA,EAAmB,UAAA,gBAAA7P,EAAC0P,MAAkB,IAAA;AAAA,IAAAnN,OAAS;AAAA,MAAAoN,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,IAAIpN,QAAU;AAAA,MAAAmN,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,EAAG,GAAG,EAAA,CAAI,GAIzFlQ,QAAA0C,KAAAA,IAAA1C,EAAA,EAAA;AAAA,MAAAgD;AAAA,EAAAhD,UAAAqM,KANfrJ,sBAAC8L,IAAA,EAAgB,MAAA,SAAa,MAAA,OAAezC,SAAAA,GACzC5J,UAAAA;AAAAA,IAAAA;AAAAA,IACAC;AAAAA,EAAAA,GAKJ,GAAa1C,QAAAqM,GAAArM,QAAAgD,KAAAA,IAAAhD,EAAA,EAAA;AAAA,MAAAkD;AAAA,EAAAlD,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAGA8C,IAAA;AAAA,IAAAL,OAAS;AAAA,EAAA,GAAK7C,QAAAkD,KAAAA,IAAAlD,EAAA,EAAA;AAAA,MAAA2D;AAAA,EAAA3D,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAEfuD,sBAAC0D,IAAA,EAAQ,GAIErH,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,MAAAiG;AAAA,EAAAjG,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAOP6F,sBAAChD,IAAA,EAAa,UAAA,gBAAA3C,EAAC8P,IAAA,EAAa,OAAA,SAAO,GAAG,GAAepQ,QAAAiG,KAAAA,IAAAjG,EAAA,EAAA;AAAA,MAAAmG;AAAA,EAAAnG,UAAAlI,KAC9BqO,IAAArO,EAAE,eAAe,GAACkI,QAAAlI,GAAAkI,QAAAmG,KAAAA,IAAAnG,EAAA,EAAA;AAAA,MAAAsG;AAAA,EAAAtG,UAAAmG,KAbjDG,sBAAC6C,IAAA,EAAK,oBACFxF,UAAAA;AAAAA,IAAAA;AAAAA,IAMA,gBAAAhE,EAACmB,IAAA,EACY,SAAAuP,IAITpK,UAAAA;AAAAA,MAAAA;AAAAA,MACA,gBAAA3F,EAACwF,IAAA,EAAsB,SAAAK,EAAAA,CAAkB;AAAA,IAAA,EAAA,CAC7C;AAAA,EAAA,GACJ,GAAOnG,QAAAmG,GAAAnG,QAAAsG,KAAAA,IAAAtG,EAAA,EAAA;AAEN,QAAA2G,IAAAgF,MAAQ,cAARW,GACAxF,IAAA6E,MAAQ,WAAR5K,GACAoG,IAAAwE,MAAQ,cAARmB;AAA8B,MAAA1F;AAAA,EAAApH,EAAA,EAAA,MAAAsG,KAAAtG,EAAA,EAAA,MAAA2G,KAAA3G,EAAA,EAAA,MAAA8G,KAAA9G,UAAAmH,KApBnCC,IAAA,gBAAAzH,EAACiE,IAAA,EAAQ,IAAAV,GACLoD,UAAAA;AAAAA,IAAAA;AAAAA,IAiBCK;AAAAA,IACAG;AAAAA,IACAK;AAAAA,EAAAA,GACL,GAAMnH,QAAAsG,GAAAtG,QAAA2G,GAAA3G,QAAA8G,GAAA9G,QAAAmH,GAAAnH,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAA,MAAAuH;AAAA,EAAAvH,EAAA,EAAA,MAAAqF,KAAArF,EAAA,EAAA,MAAAoM,KAAApM,EAAA,EAAA,MAAArB,KAAAqB,WAAAoH,KAtBVG,sBAAC+I,IAAA,EAAejL,UAAAA,GAAqB1G,MAAAA,GAAeyN,SAAAA,GAChDhF,UAAAA,EAAAA,CAsBJ,GAAOpH,QAAAqF,GAAArF,QAAAoM,GAAApM,QAAArB,GAAAqB,SAAAoH,GAAApH,SAAAuH,KAAAA,IAAAvH,EAAA,GAAA;AAAA,MAAAyH;AAAA,SAAAzH,EAAA,GAAA,MAAAuH,KAAAvH,WAAAgD,KAjCXyE,sBAACrB,IAAA,EACGpD,UAAAA;AAAAA,IAAAA;AAAAA,IASAuE;AAAAA,EAAAA,GAwBJ,GAAWvH,SAAAuH,GAAAvH,SAAAgD,GAAAhD,SAAAyH,KAAAA,IAAAzH,EAAA,GAAA,GAlCXyH;AAkCW;AA7He,SAAAqB,GAAAyH,GAAA;AAAA,SAOyFA,MAAQ;AAAQ;AAPzG,SAAAF,KAAA;AAAA,SAgHFG,QAAOC,IAAK,gBAAgB;AAAC;ACpH7D,MAAMC,KAAkB,OAAU,KAAK,KAEjCC,KAA0BC,KAC3BC,OAAO,MACWC,GAAU,gBAAgB,MACvB,MACrB,EACAC,OAAO,MAAM;AACV,QAAMC,IAASC,SAASD,OACnBE,MAAM,IAAI,EACVvD,KAAKwD,CAAAA,MAAOA,EAAIC,WAAW,iBAAiB,CAAC;AAClD,SAAOJ,IAASA,EAAOE,MAAM,GAAG,EAAE,CAAC,MAAM,SAAS;AACtD,CAAC,GAECG,KAAexQ,GAAO,KAAK,EAAE,CAAC;AAAA,EAAEE,OAAAA;AAAM,OAAO;AAAA,EAC/CsB,SAAS;AAAA,EACTC,YAAY;AAAA,EACZC,gBAAgB;AAAA,EAChB0B,SAASlD,EAAMuQ,QAAQ,GAAG,CAAC;AAAA,EAC3B,GAAGvQ,EAAMwQ,OAAOC;AACpB,EAAE,GAOWC,KAA0B/Y,CAAAA,MAAA;AAAA,QAAAsH,IAAAC,EAAA,EAAA,GACnC,CAAAyR,GAAAC,CAAA,IAA4ClU,EAASkT,EAAuB,GAC5EiB,IAAmB,CAAC,CAACC,GAAAA,GACrBC,IAAmB,CAAC,CAACC,GAAAA;AAAgB,MAAA7R,GAAA6B;AAAA,EAAA/B,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAI7BF,sBAAC8R,IAAA,EAAqB,GACtBjQ,sBAACkQ,IAAA,EAAW,GAAGjS,OAAAE,GAAAF,OAAA+B,MAAA7B,IAAAF,EAAA,CAAA,GAAA+B,IAAA/B,EAAA,CAAA;AAAA,MAAAoC;AAAA,EAAApC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAENgC,IAAA;AAAA,IAAAC,SAAW;AAAA,IAAMS,QAAU;AAAA,IAAQuB,WAAa;AAAA,IAAQd,UAAY;AAAA,IAAQV,OAAS;AAAA,EAAA,GAAQ7C,OAAAoC,KAAAA,IAAApC,EAAA,CAAA;AAAA,MAAAyC;AAAA,EAAAzC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAI1FqC,IAAA;AAAA,IAAAyP,cACc;AAAA,IAAW9G,aACZ;AAAA,IAA4B+G,WAC9B;AAAA,EAAA,GACdnS,OAAAyC,KAAAA,IAAAzC,EAAA,CAAA;AAAA,MAAA0C;AAAA,EAAA1C,SAAA0R,KAAA1R,EAAA,CAAA,MAAAtH,EAAAwR,cAEIxH,IAAAhK,EAAKwR,cACF,gBAAA5J,EAACwO,IAAA,EACY,SAAA,MAAA;AACL6C,IAAAA,EAAkB7I,EAIjB;AAAA,EAAC,GAEF,IAAA;AAAA,IAAAsJ,aAAe;AAAA,EAAA,GAElBV,UAAAA,IAAiB,gBAAApR,EAAC+R,MAAQ,IAAM,gBAAA/R,EAACgQ,MAAI,GAC1C,GAAatQ,OAAA0R,GAAA1R,EAAA,CAAA,IAAAtH,EAAAwR,YAAAlK,OAAA0C,KAAAA,IAAA1C,EAAA,CAAA;AAAA,MAAAgD,GAAAE;AAAA,EAAAlD,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAGjB4C,sBAACjD,IAAA,EAAQ,GAETmD,sBAACwI,IAAA,EAAc,GAAG1L,OAAAgD,GAAAhD,OAAAkD,MAAAF,IAAAhD,EAAA,CAAA,GAAAkD,IAAAlD,EAAA,CAAA;AAAA,MAAA2D;AAAA,EAAA3D,SAAA0C,KA1B1BiB,IAAA,gBAAArD,EAACgS,MACS,OAAA,eACG,UAAA,SACL,IAAA7P,GAKJ,UAAA,gBAAA9C,EAAC4S,IAAA,EACI7P,UAAAA;AAAAA,IAAAA;AAAAA,IAeDM;AAAAA,IAEAE;AAAAA,EAAAA,EAAAA,CACJ,EAAA,CACJ,GAASlD,OAAA0C,GAAA1C,QAAA2D,KAAAA,IAAA3D,EAAA,EAAA;AAAA,MAAAiG;AAAA,EAAAjG,UAAA0R,KAAA1R,EAAA,EAAA,MAAAtH,EAAAwR,cAERjE,IAAAvN,EAAKwR,cACF,gBAAA5J,EAAC2J,IAAA,EACe,YAAAvR,EAAKwR,YACPwH,UAAAA,GACG,aAAAc,CAAAA,MAAA;AACTb,IAAAA,EAAkBc,CAAQ,GAC1BxB,SAAQD,SAAU,kBAAkByB,CAAQ,aAAa/B,EAAe;AAAA,EAAzD,GAClB,GACH1Q,QAAA0R,GAAA1R,EAAA,EAAA,IAAAtH,EAAAwR,YAAAlK,QAAAiG,KAAAA,IAAAjG,EAAA,EAAA;AAAA,MAAAsG,GAAAH;AAAA,EAAAnG,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAGoB+F,IAAA;AAAA,IAAAuM,UAAY;AAAA,IAACrQ,SAAW;AAAA,IAAM2I,eAAiB;AAAA,IAAQxI,UAAY;AAAA,IAACM,QAAU;AAAA,IAAMS,UAAY;AAAA,EAAA,GACtH+C,sBAAC+K,IAAA,EAAY,GAAGrR,QAAAsG,GAAAtG,QAAAmG,MAAAG,IAAAtG,EAAA,EAAA,GAAAmG,IAAAnG,EAAA,EAAA;AAAA,MAAA2G;AAAA,EAAA3G,EAAA,EAAA,MAAAG,uBAAAC,IAAA,2BAAA,KACPuG,IAAA;AAAA,IAAAX,MAAQ;AAAA,IAACzC,UAAY;AAAA,IAAMvB,UAAY;AAAA,EAAA,GAAYhC,QAAA2G,KAAAA,IAAA3G,EAAA,EAAA;AAAA,MAAA8G;AAAA,EAAA9G,EAAA,EAAA,MAAAtH,EAAAE,YAFhEkO,IAAA,gBAAAnH,EAACiE,IAAA,EAAc,WAAA,QAAW,IAAAuC,GACtBG,UAAAA;AAAAA,IAAAA;AAAAA,IACA,gBAAAhG,EAACsD,IAAA,EAAQ,IAAA+C,GACJjO,YAAKE,SAAAA,CACV;AAAA,EAAA,GACJ,GAAMoH,EAAA,EAAA,IAAAtH,EAAAE,UAAAoH,QAAA8G,KAAAA,IAAA9G,EAAA,EAAA;AAAA,MAAAmH;AAAA,EAAAnH,EAAA,EAAA,MAAA8G,KAAA9G,UAAA2D,KAAA3D,EAAA,EAAA,MAAAiG,KA/CVkB,IAAA,gBAAAxH,EAACiE,IAAA,EAAQ,IAAAxB,GACLuB,UAAAA;AAAAA,IAAAA;AAAAA,IA8BCsC;AAAAA,IAWDa;AAAAA,EAAAA,GAMJ,GAAM9G,QAAA8G,GAAA9G,QAAA2D,GAAA3D,QAAAiG,GAAAjG,QAAAmH,KAAAA,IAAAnH,EAAA,EAAA;AAAA,MAAAoH;AAAA,EAAApH,EAAA,EAAA,MAAA4R,KAAA5R,UAAA8R,KAEL1K,KAACwK,KAAAE,MAA6B,gBAAAxR,EAACqS,IAAA,EAAmB,IAAA;AAAA,IAAA3Q,UAAY;AAAA,IAAOE,KAAO;AAAA,MAAA+N,IAAM;AAAA,MAAEC,IAAM;AAAA,IAAA;AAAA,IAAIjO,MAAQ;AAAA,IAACsD,OAAS;AAAA,EAAA,GAAG,GAAIvF,QAAA4R,GAAA5R,QAAA8R,GAAA9R,QAAAoH,KAAAA,IAAApH,EAAA,EAAA;AAAA,MAAAuH;AAAA,SAAAvH,EAAA,EAAA,MAAAmH,KAAAnH,UAAAoH,KAtD5HG,sBAACnB,IAAA,EACGlG,UAAAA;AAAAA,IAAAA;AAAAA,IACA6B;AAAAA,IAEAoF;AAAAA,IAkDCC;AAAAA,EAAAA,GACL,GAAWpH,QAAAmH,GAAAnH,QAAAoH,GAAApH,QAAAuH,KAAAA,IAAAvH,EAAA,EAAA,GAvDXuH;AAuDW;AA7DoB,SAAAuB,GAAAL,GAAA;AAwBC,QAAAgK,IAAiB,CAAChK;AAClBwI,kBAAQD,SAAU,kBAAkByB,CAAQ,aAAa/B,EAAe,YACjE+B;AAAQ;ACjDvD,MAAMG,KAAkB,OAAU;AAElC9G,EACK+G,IAAIC,EAAgB,EACpBD,IAAIE,EAAgB,EACpBC,KAAK;AAAA,EACFC,WAAAA;AAAAA,EACAC,aAAa;AAAA,EACbxG,eAAeyG,OAAOC,KAAKH,EAAS;AAAA,EACpCI,WAAW;AAAA,IACPC,QAAQ,CAAC,QAAQ;AAAA,IACjBC,eAAeX;AAAAA,EAAAA;AAAAA,EAEnBY,eAAe;AAAA,IAAEC,aAAa;AAAA,EAAA;AAClC,CAAC;AAQE,MAAMC,KAAqCxT,CAAAA,MAAA;AAAA,QAAAF,IAAAC,EAAA,CAAA,GAAC;AAAA,IAAAiK,YAAAA;AAAAA,IAAAnJ,OAAAA;AAAAA,IAAAnI,UAAAA;AAAAA,EAAAA,IAAAsH,GAC/CyT,IAA+BC,GAAe9K,EAG7C;AAAE,MAAA/G;AAAA,EAAA/B,SAAA2T,KAEO5R,IAAAA,OACN4R,EAAAA,GAEA7H,EAAI+H,GAAI,mBAAmBF,CAAsB,GAC1C,MAAA;AAAQ7H,IAAAA,EAAIgI,IAAK,mBAAmBH,CAAsB;AAAA,EAAC,IACrE3T,OAAA2T,GAAA3T,OAAA+B,KAAAA,IAAA/B,EAAA,CAAA;AAAA,MAAAoC;AAAA,EAAApC,EAAA,CAAA,MAAAG,uBAAAC,IAAA,2BAAA,KAAEgC,IAAA,CAAA,GAAEpC,OAAAoC,KAAAA,IAAApC,EAAA,CAAA,GALLwI,GAAUzG,GAKPK,CAAE;AAAC,MAAAK;AAAA,EAAAzC,EAAA,CAAA,MAAApH,KAAAoH,SAAAkK,KAIEzH,sBAACrK,IAAA,EAAsDwC,iBAA6B,eAAAkR,EAAIgB,UACpF,UAAA,gBAAAxM,EAAChD,IAAA,EACG,UAAA,gBAAAgD,EAACmR,MAAmBvH,YAAAA,GACftR,UAAAA,EAAAA,CACL,GACJ,EAAA,GALuBkT,EAAIgB,QAM/B,GAAuB9M,OAAApH,GAAAoH,OAAAkK,GAAAlK,OAAAyC,KAAAA,IAAAzC,EAAA,CAAA;AAAA,MAAA0C;AAAA,SAAA1C,EAAA,CAAA,MAAAyC,KAAAzC,SAAAe,KAP3B2B,IAAA,gBAAApC,EAACyT,IAAA,EAAqBhT,OAAAA,GAClB0B,UAAAA,GAOJ,GAAgBzC,OAAAyC,GAAAzC,OAAAe,GAAAf,OAAA0C,KAAAA,IAAA1C,EAAA,CAAA,GARhB0C;AAQgB,GAIXsR,KAAiBC,KAAiBC,QAAQ,YAAY;AAC/D,QAAMpH,IAAWgE,GAAUhF,EAAKqI,SAASC,iBAAiBjW,QAAQkW,YAAY,KAAK;AACnFC,EAAAA,GAAEC,OAAOD,GAAEE,KAAKhZ,QAAQsR,CAAuC,GAAG,GAClE3S,EAAMU,OAAOiS,CAAQ,GACrB,MAAMhB,EAAK8D,eAAe9C,CAAQ;AACtC,CAAC;AA/BiD,SAAAhE,KAAA;AAE1CwL,EAAAA,GAACC,OAAQD,GAACE,KAAKhZ,QAASsQ,EAAIgB,QAAwC,GAAG,GACvE3S,EAAKU,OAAQiR,EAAIgB,QAAS;AAAC;","x_google_ignoreList":[0,1,2,3,4,5,6]}
|