@pautena/react-design-system 0.14.2 → 0.14.3
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/action/cjs/index.js.map +1 -1
- package/action/index.js.map +1 -1
- package/board/cjs/index.js.map +1 -1
- package/board/index.js.map +1 -1
- package/bootstrap-dialog/bootstrap-dialog.d.ts +1 -1
- package/bootstrap-dialog/cjs/index.js.map +1 -1
- package/bootstrap-dialog/index.js.map +1 -1
- package/cjs/index.js.map +1 -1
- package/confirm-dialog/cjs/index.js.map +1 -1
- package/confirm-dialog/confirm-dialog.d.ts +1 -1
- package/confirm-dialog/index.js.map +1 -1
- package/content-placeholder/cjs/index.js.map +1 -1
- package/content-placeholder/index.js.map +1 -1
- package/date-range-picker/cjs/index.js.map +1 -1
- package/date-range-picker/index.js.map +1 -1
- package/drawer/cjs/index.js.map +1 -1
- package/drawer/drawer.types.d.ts +3 -3
- package/drawer/index.js.map +1 -1
- package/drawer-app-bar/cjs/index.js.map +1 -1
- package/drawer-app-bar/index.js.map +1 -1
- package/drawer-content/cjs/index.js.map +1 -1
- package/drawer-content/drawer-content.d.ts +1 -1
- package/drawer-content/index.js.map +1 -1
- package/drawer-item/cjs/index.js.map +1 -1
- package/drawer-item/drawer-item-link.d.ts +1 -1
- package/drawer-item/drawer-item.d.ts +1 -1
- package/drawer-item/drawer-menu-item.d.ts +1 -1
- package/drawer-item/index.js.map +1 -1
- package/drawer-layout/cjs/index.js.map +1 -1
- package/drawer-layout/drawer-layout.d.ts +2 -2
- package/drawer-layout/index.js.map +1 -1
- package/drawer-main/cjs/index.js.map +1 -1
- package/drawer-main/index.js.map +1 -1
- package/drawer-provider/cjs/index.js.map +1 -1
- package/drawer-provider/drawer-context.d.ts +1 -1
- package/drawer-provider/drawer.provider.d.ts +1 -1
- package/drawer-provider/index.js.map +1 -1
- package/drawer-section/cjs/index.js.map +1 -1
- package/drawer-section/drawer-section.d.ts +1 -1
- package/drawer-section/index.js.map +1 -1
- package/drawer-subheader/cjs/index.js.map +1 -1
- package/drawer-subheader/drawer-subheader.d.ts +1 -1
- package/drawer-subheader/index.js.map +1 -1
- package/enhanced-remote-table/cjs/index.js.map +1 -1
- package/enhanced-remote-table/enhanced-remote-table.d.ts +1 -1
- package/enhanced-remote-table/enhanced-remote-table.mock.d.ts +2 -2
- package/enhanced-remote-table/index.js.map +1 -1
- package/expandable-alert/cjs/index.js.map +1 -1
- package/expandable-alert/index.js.map +1 -1
- package/form-dialog/cjs/index.js.map +1 -1
- package/form-dialog/form-dialog.d.ts +1 -1
- package/form-dialog/index.js.map +1 -1
- package/group-value-card/cjs/index.js.map +1 -1
- package/group-value-card/group-value-card.d.ts +1 -1
- package/group-value-card/index.js.map +1 -1
- package/header/cjs/index.js.map +1 -1
- package/header/index.js.map +1 -1
- package/header-layout/cjs/index.js.map +1 -1
- package/header-layout/header-layout.d.ts +3 -3
- package/header-layout/index.js.map +1 -1
- package/index.js.map +1 -1
- package/link-card/cjs/index.js.map +1 -1
- package/link-card/index.js.map +1 -1
- package/list-panel/cjs/index.js.map +1 -1
- package/list-panel/index.js.map +1 -1
- package/model-form/cjs/index.js.map +1 -1
- package/model-form/index.js.map +1 -1
- package/model-form/model-form-field.d.ts +1 -1
- package/model-form/model-form.d.ts +1 -1
- package/model-router/cjs/index.js.map +1 -1
- package/model-router/index.js.map +1 -1
- package/model-router/model-router.d.ts +1 -1
- package/model-router/screens/add-screen.d.ts +2 -2
- package/model-router/screens/details-screen.d.ts +2 -2
- package/model-router/screens/list-screen.d.ts +2 -2
- package/model-router/screens/screens.types.d.ts +1 -1
- package/model-router/screens/update-screen.d.ts +2 -2
- package/model-router/stories/templates.d.ts +7 -7
- package/object-details/cjs/index.js.map +1 -1
- package/object-details/index.js.map +1 -1
- package/object-details/object-details.d.ts +1 -1
- package/package.json +1 -1
- package/query-container/cjs/index.js.map +1 -1
- package/query-container/index.js.map +1 -1
- package/select/cjs/index.js.map +1 -1
- package/select/index.js.map +1 -1
- package/skeleton-grid/cjs/index.js.map +1 -1
- package/skeleton-grid/index.js.map +1 -1
- package/tab-card/cjs/index.js.map +1 -1
- package/tab-card/index.js.map +1 -1
- package/tab-panel/cjs/index.js.map +1 -1
- package/tab-panel/index.js.map +1 -1
- package/table-list/cjs/index.js.map +1 -1
- package/table-list/index.js.map +1 -1
- package/table-list/table-list.d.ts +2 -2
- package/value-boolean/cjs/index.js.map +1 -1
- package/value-boolean/index.js.map +1 -1
- package/value-boolean/value-boolean.d.ts +1 -1
- package/value-datetime/cjs/index.js.map +1 -1
- package/value-datetime/index.js.map +1 -1
- package/value-datetime/value-datetime.d.ts +1 -1
- package/value-image/cjs/index.js.map +1 -1
- package/value-image/index.js.map +1 -1
- package/value-image/value-image.d.ts +1 -1
- package/value-item/cjs/index.js.map +1 -1
- package/value-item/index.js.map +1 -1
- package/value-label/cjs/index.js.map +1 -1
- package/value-label/index.js.map +1 -1
- package/value-label/value-label.d.ts +2 -2
- package/value-rating/cjs/index.js.map +1 -1
- package/value-rating/index.js.map +1 -1
- package/value-rating/value-rating.d.ts +1 -1
- package/value-text/cjs/index.js.map +1 -1
- package/value-text/index.js.map +1 -1
- package/value-text/value-text.d.ts +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sources":["../../src/generators/generators.model.ts","../../src/utils/theme.ts","../../src/utils/breakpoints.ts","../../src/group-value-card/group-value-card.tsx","../../src/model-form/model-form-field.tsx","../../node_modules/ramda/es/internal/_isPlaceholder.js","../../node_modules/ramda/es/internal/_curry1.js","../../node_modules/ramda/es/internal/_curry2.js","../../node_modules/ramda/es/internal/_curry3.js","../../node_modules/ramda/es/internal/_isArray.js","../../node_modules/ramda/es/internal/_isInteger.js","../../node_modules/ramda/es/isNil.js","../../node_modules/ramda/es/assocPath.js","../../node_modules/ramda/es/internal/_has.js","../../node_modules/ramda/es/internal/_assoc.js","../../src/model-form/model-form.tsx","../../src/hooks/routing/routing.hooks.ts","../../src/loading-area/loading-area.tsx","../../src/tab-provider/tab-provider.context.ts","../../src/tab-provider/tab-provider.provider.tsx","../../src/placeholder/placeholder.tsx","../../src/header-layout/header-layout.tsx","../../src/notification-center/notification-center.context.ts","../../src/notification-center/notification-center.hooks.ts","../../src/link/link.tsx","../../src/header/header-title.tsx","../../src/header/header.tsx","../../src/content/content.tsx","../../src/model-router/screens/update-screen.tsx","../../node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js","../../node_modules/prop-types/node_modules/react-is/index.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/lib/has.js","../../node_modules/prop-types/index.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/@mui/utils/esm/elementAcceptingRef.js","../../node_modules/@mui/utils/esm/elementTypeAcceptingRef.js","../../node_modules/react-is/index.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/@mui/utils/esm/ponyfillGlobal/ponyfillGlobal.js","../../node_modules/@mui/utils/esm/refType.js","../../node_modules/@mui/utils/esm/visuallyHidden.js","../../node_modules/@mui/utils/esm/integerPropType.js","../../src/enhanced-table/enhanced-table-head.tsx","../../src/enhanced-table/enhanced-table.tsx","../../src/table-list/table-list.tsx","../../src/model-router/screens/list-screen.tsx","../../src/model-router/screens/add-screen.tsx","../../src/value-base/value-edit.tsx","../../src/value-content/value-content.tsx","../../src/value-boolean/value-boolean.tsx","../../src/value-base/value-displays.types.ts","../../src/value-datetime/value-datetime.tsx","../../src/value-text/value-text.tsx","../../src/value-item/value-item.tsx","../../src/object-details/object-details.tsx","../../src/model-router/screens/details-screen.tsx","../../src/model-router/model-router.tsx","../../src/model-router/model-router.types.ts"],"sourcesContent":["/**\n * MODEL TYPES\n * Types used to specify the model\n */\nexport type ModelFieldTypes =\n | \"string\"\n | \"number\"\n | \"string[]\"\n | \"number[]\"\n | \"boolean\"\n | \"enum\"\n | \"multienum\"\n | \"date\"\n | \"time\"\n | \"datetime\";\n\ntype Base = {\n id: string;\n description: string;\n name: string;\n listable?: boolean;\n updatable?: boolean;\n required?: boolean;\n};\n\ntype Breakpoints = {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n};\n\ntype StringField = {\n type: \"string\";\n};\n\ntype StringArrayField = {\n type: \"string[]\";\n};\n\ntype NumberField = {\n type: \"number\";\n};\n\ntype NumberArrayField = {\n type: \"number[]\";\n};\n\ntype BooleanField = {\n type: \"boolean\";\n};\n\ntype EnumField = {\n type: \"enum\";\n value: string[];\n};\n\ntype MultiEnumField = {\n type: \"multienum\";\n value: string[];\n};\n\ntype DateField = {\n type: \"date\";\n format: string;\n default: Date;\n};\n\ntype TimeField = {\n type: \"time\";\n format: string;\n default: Date;\n};\n\ntype DatetimeField = {\n type: \"datetime\";\n format: string;\n default: Date;\n};\n\ntype SingleFields =\n | StringField\n | NumberField\n | StringArrayField\n | NumberArrayField\n | BooleanField\n | EnumField\n | MultiEnumField\n | DateField\n | TimeField\n | DatetimeField;\n\nexport type GroupField = {\n type: \"group\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\nexport type ArrayGroupField = {\n type: \"group[]\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\ntype Fields = SingleFields | GroupField | ArrayGroupField;\nexport type ModelField = Base & Breakpoints & Fields;\n\nexport type Model = {\n fields: ModelField[];\n};\n\n/**\n * INSTANCE TYPES\n * Types used to represent an instance of a model specification\n */\nexport type BaseFieldType = string | number | boolean | Date;\nexport type ArrayFieldType = string[] | number[];\nexport type SingleFieldType = BaseFieldType | ArrayFieldType;\nexport type GroupInstanceType = { [key: string]: SingleFieldType };\nexport type ArrayInstanceType = { [key: string]: SingleFieldType }[];\nexport type FieldType = SingleFieldType | GroupInstanceType;\n\nexport interface BasicModelInstance {\n id: string;\n [key: string]: FieldType;\n}\n\n/**\n * UTILITIES\n * Some functions used in several places to help to manage models\n */\nconst InitialStateZeroValue: Record<ModelFieldTypes | \"group\" | \"group[]\", FieldType | undefined> =\n {\n string: \"\",\n number: 0,\n boolean: false,\n enum: \"\",\n multienum: [],\n date: new Date(1970, 0, 1, 0, 0),\n time: new Date(1970, 0, 1, 0, 0),\n datetime: new Date(1970, 0, 1, 0, 0),\n group: {},\n \"group[]\": [],\n \"string[]\": [],\n \"number[]\": [],\n };\n\nconst getFieldValueOrZero = (\n field: ModelField,\n values: BasicModelInstance | GroupInstanceType | undefined,\n) => {\n return (\n (values && values[field.id]) ||\n (\"default\" in field && field.default) ||\n InitialStateZeroValue[field.type]\n );\n};\n\nexport const newInstanceFromValuesOrZeroValue = <T extends BasicModelInstance>(\n model: Model,\n values: T | undefined = undefined,\n): T => {\n const obj: Record<string, FieldType | undefined> = {};\n\n model.fields.forEach((field) => {\n if (field.type === \"group\") {\n const value: GroupInstanceType = {};\n field.value.forEach((groupField) => {\n value[groupField.id] = getFieldValueOrZero(\n groupField,\n values && (values[field.id] as GroupInstanceType),\n ) as SingleFieldType;\n });\n obj[field.id] = value;\n } else {\n obj[field.id] = getFieldValueOrZero(field, values);\n }\n });\n\n return obj as T;\n};\n","import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { ResponsiveStyleValue } from \"@mui/system\";\n\ninterface Breakpoints {\n xs: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n}\n\ninterface BreakpointsCounter extends Breakpoints {\n increment(breakpoints: Partial<Breakpoints>): ResponsiveStyleValue<boolean>;\n}\n\nexport const newBreakpointsCounter = (breakpoint = 12): BreakpointsCounter => {\n const calculateBreakpointIncrement = (\n breakpointsCounter: BreakpointsCounter,\n key: keyof Breakpoints,\n value: number,\n ): boolean => {\n const initialValue = breakpointsCounter[key];\n breakpointsCounter[key] += value;\n if (breakpointsCounter[key] > breakpoint) {\n breakpointsCounter[key] = value;\n return false;\n }\n\n if (breakpointsCounter[key] == breakpoint) {\n breakpointsCounter[key] = 0;\n }\n\n return initialValue > 0;\n };\n\n return {\n xs: 0,\n sm: 0,\n md: 0,\n lg: 0,\n xl: 0,\n increment: function ({\n xs = 0,\n sm = 0,\n md = 0,\n lg = 0,\n xl = 0,\n }): ResponsiveStyleValue<boolean> {\n const smInc = sm || xs;\n const mdInc = md || smInc;\n const lgInc = lg || mdInc;\n const xlInc = xl || lgInc;\n\n return {\n xs: calculateBreakpointIncrement(this, \"xs\", xs),\n sm: calculateBreakpointIncrement(this, \"sm\", smInc),\n md: calculateBreakpointIncrement(this, \"md\", mdInc),\n lg: calculateBreakpointIncrement(this, \"lg\", lgInc),\n xl: calculateBreakpointIncrement(this, \"xl\", xlInc),\n };\n },\n };\n};\n","import Grid from \"@mui/material/Grid\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useGetDefaultThemeColor } from \"~/utils\";\nimport { ValueItemElement } from \"~/value-item\";\n\nexport interface GroupValueCardProps {\n title: string;\n subtitle?: string;\n centered?: boolean;\n children: ValueItemElement | ValueItemElement[];\n dense?: boolean;\n}\n\nexport const GroupValueCard = ({\n title,\n subtitle,\n centered,\n children,\n dense,\n}: GroupValueCardProps) => {\n const { typography } = useTheme();\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n return (\n <Paper\n sx={{\n paddingBottom: dense ? 0 : 1,\n }}\n >\n <Box\n bgcolor={defaultColor}\n px={dense ? 1 : 2}\n py={dense ? 0.5 : 1}\n lineHeight={dense ? 0 : undefined}\n >\n <Typography variant={dense ? \"body1\" : \"h6\"} role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant={dense ? \"caption\" : \"body2\"}\n role=\"heading\"\n aria-level={2}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n <Grid\n container\n padding={1}\n rowSpacing={dense ? 1 : 2}\n justifyContent={centered ? \"center\" : \"flex-start\"}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport Grid from \"@mui/material/Grid\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport FormControl from \"@mui/material/FormControl\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport Select from \"@mui/material/Select\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport TextField from \"@mui/material/TextField\";\nimport { SelectChangeEvent } from \"@mui/material/Select\";\nimport { DesktopDatePicker, TimePicker, DateTimePicker } from \"@mui/x-date-pickers\";\nimport { ChangeEvent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"~/utils\";\nimport { GroupValueCard } from \"~/group-value-card\";\nimport {\n ArrayFieldType,\n FieldType,\n ModelField,\n ModelFieldTypes,\n} from \"~/generators/generators.model\";\n\nexport interface ModelFormField {\n field: ModelField;\n update: boolean;\n dense?: boolean;\n path?: string[];\n value: any;\n onChangeValue: (path: string[], value: any) => void;\n}\n\nexport const ModelFormField = ({\n field,\n path = [],\n value,\n dense,\n update,\n onChangeValue,\n}: ModelFormField) => {\n const handleCheckboxChange = (e: ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n onChangeValue([...path, e.target.name], e.target.checked);\n };\n\n const handleSelectChange = (e: SelectChangeEvent<FieldType>) => {\n e.preventDefault();\n onChangeValue([...path, e.target.name], e.target.value);\n };\n\n const handleMultiSelectChange = (e: SelectChangeEvent<FieldType>) => {\n e.preventDefault();\n const { value } = e.target;\n const newValue = typeof value === \"string\" ? value.split(\",\") : value;\n onChangeValue([...path, e.target.name], newValue);\n };\n\n const handleInputChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,\n type: ModelFieldTypes,\n ) => {\n e.preventDefault();\n\n let value: string | number | string[] | number[] = e.target.value;\n if (type === \"number\" && typeof value === \"string\") {\n value = parseInt(e.target.value, 10);\n } else if (type.includes(\"[]\")) {\n value = e.target.value.split(\",\");\n }\n onChangeValue([...path, e.target.name], value);\n };\n\n const handleDateChange = (value: FieldType | null, id: string) => {\n onChangeValue([...path, id], value);\n };\n\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n const {\n id,\n type,\n name,\n description,\n updatable = true,\n required = true,\n xs,\n sm,\n md,\n lg,\n xl,\n } = field;\n const disabled: boolean = !updatable && update;\n\n let fieldInput: ReactElement;\n const size = dense ? \"small\" : \"medium\";\n if (type === \"group\") {\n fieldInput = (\n <GroupValueCard title={name} subtitle={description} dense={dense}>\n <Grid container spacing={2} sx={{ p: 2 }}>\n {field.value.map((f) => (\n <ModelFormField\n key={f.id}\n field={f}\n dense={dense}\n path={[...path, id]}\n value={value[f.id]}\n update={update}\n onChangeValue={onChangeValue}\n />\n ))}\n </Grid>\n </GroupValueCard>\n );\n } else if (type === \"boolean\") {\n fieldInput = (\n <Box sx={{ height: 1, display: \"flex\", alignItems: \"center\" }}>\n <FormControlLabel\n control={\n <Checkbox\n name={id}\n size={size}\n onChange={handleCheckboxChange}\n checked={value as boolean}\n disabled={disabled}\n />\n }\n label={name}\n />\n </Box>\n );\n } else if (type === \"enum\") {\n fieldInput = (\n <FormControl fullWidth>\n <InputLabel id={`${id}-select-label`}>{name}</InputLabel>\n <Select\n labelId={`${id}-select-label`}\n id={`${id}-select`}\n value={value}\n label={name}\n name={id}\n size={size}\n onChange={handleSelectChange}\n required={required}\n disabled={disabled}\n >\n {field.value.map((fieldValue) => (\n <MenuItem key={fieldValue} value={fieldValue}>\n {fieldValue}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n } else if (type === \"multienum\") {\n fieldInput = (\n <FormControl fullWidth>\n <InputLabel id={`${id}-select-label`}>{name}</InputLabel>\n <Select\n labelId={`${id}-select-label`}\n id={`${id}-select`}\n value={value || []}\n renderValue={(selected) => (selected as ArrayFieldType).join(\", \")}\n label={name}\n name={id}\n size={size}\n onChange={handleMultiSelectChange}\n required={required}\n disabled={disabled}\n multiple\n >\n {field.value.map((fieldValue) => (\n <MenuItem key={fieldValue} value={fieldValue}>\n <Checkbox checked={((value as any[]) || []).includes(fieldValue)} />\n <ListItemText primary={fieldValue} />\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n } else if (type === \"date\") {\n fieldInput = (\n <DesktopDatePicker\n label={name}\n format={field.format}\n value={value}\n slotProps={\n {\n field: {\n size,\n },\n } as any\n }\n disabled={disabled}\n onChange={(value) => handleDateChange(value, id)}\n />\n );\n } else if (type === \"time\") {\n fieldInput = (\n <TimePicker\n label={name}\n format={field.format}\n value={value}\n slotProps={\n {\n field: {\n size,\n },\n } as any\n }\n disabled={disabled}\n onChange={(value) => handleDateChange(value, id)}\n />\n );\n } else if (type === \"datetime\") {\n fieldInput = (\n <DateTimePicker\n label={name}\n format={field.format}\n value={value}\n slotProps={\n {\n field: {\n size,\n },\n } as any\n }\n disabled={disabled}\n onChange={(value) => handleDateChange(value, id)}\n />\n );\n } else if (type === \"group[]\") {\n return null;\n } else if (type.includes(\"[]\")) {\n fieldInput = (\n <TextField\n required={required}\n type=\"text\"\n label={name}\n name={id}\n size={size}\n variant=\"outlined\"\n helperText=\"Use comas to separate multiple values\"\n fullWidth\n disabled={disabled}\n value={(value as any[]).join(\",\")}\n onChange={(e) => handleInputChange(e, type)}\n />\n );\n } else {\n fieldInput = (\n <TextField\n required={required}\n type={type}\n label={name}\n size={size}\n name={id}\n variant=\"outlined\"\n fullWidth\n value={value}\n disabled={disabled}\n onChange={(e) => handleInputChange(e, type)}\n />\n );\n }\n\n return (\n <Grid item key={id} xs={xs} sm={sm} md={md} lg={lg} xl={xl}>\n {fieldInput}\n </Grid>\n );\n};\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _assoc from \"./internal/_assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) && typeof obj[idx] === 'object' ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n return _assoc(idx, val, obj);\n});\n\nexport default assocPath;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _isArray from \"./_isArray.js\";\nimport _isInteger from \"./_isInteger.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @private\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original except for the changed property.\n */\n\nexport default function _assoc(prop, val, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[prop] = val;\n return arr;\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n}","import Button from \"@mui/material/Button\";\nimport Grid from \"@mui/material/Grid\";\nimport { FormEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\nimport {\n Model,\n BasicModelInstance,\n FieldType,\n newInstanceFromValuesOrZeroValue,\n} from \"~/generators\";\nimport { ModelFormField } from \"./model-form-field\";\nimport { assocPath } from \"ramda\";\n\nexport interface ModelFormProps<T extends BasicModelInstance> {\n model: Model;\n dense?: boolean;\n initialValues?: T;\n saveButtonText: string;\n onSubmit: (values: T) => void;\n}\n\nexport const ModelForm = <T extends BasicModelInstance>({\n model,\n saveButtonText,\n dense,\n onSubmit,\n initialValues,\n}: ModelFormProps<T>) => {\n const valuesInitialState = useMemo(\n () => newInstanceFromValuesOrZeroValue<T>(model, initialValues),\n [model, initialValues],\n );\n const [values, setValues] = useState<T>(valuesInitialState);\n\n const setKeyValue = (path: string[], value: FieldType | null) => {\n setValues((v) => assocPath(path, value, v));\n };\n\n const handleSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n onSubmit(values);\n };\n\n return (\n <Grid container component=\"form\" spacing={2} onSubmit={handleSubmit}>\n {model.fields.map((f) => (\n <ModelFormField\n key={f.id}\n dense={dense}\n field={f}\n value={values[f.id]}\n update={!!initialValues}\n onChangeValue={setKeyValue}\n />\n ))}\n <Grid item xs={12}>\n <Button type=\"submit\" variant=\"contained\" size={dense ? \"small\" : \"medium\"}>\n {saveButtonText}\n </Button>\n </Grid>\n </Grid>\n );\n};\n","import { useEffect, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport interface NavigateWhenValueChangesOptions<T> {\n from: T;\n to: T;\n}\n\nexport const useNavigateWhenValueChanges = <T>(\n path: string,\n value: T | undefined,\n { from, to }: NavigateWhenValueChangesOptions<T>,\n) => {\n const prevRef = useRef<T>();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (prevRef.current === from && value === to) {\n navigate(path);\n }\n prevRef.current = value;\n }, [value]);\n};\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\n/**\n * Displays a centered loading indicator\n */\nexport const LoadingArea = () => {\n return (\n <Box width={1} height={1} display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <CircularProgress />\n </Box>\n );\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import { PropsWithChildren, useState } from \"react\";\nimport { TabContextProvider } from \"./tab-provider.context\";\n\ntype TabProviderProps = PropsWithChildren<{\n initialValue?: number;\n}>;\n\nexport const TabProvider = ({ children, initialValue = 0 }: TabProviderProps) => {\n const tabState = useState(initialValue);\n\n return <TabContextProvider value={tabState}>{children}</TabContextProvider>;\n};\n","import { ReactElement } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\n\ntype IconColor =\n | \"inherit\"\n | \"action\"\n | \"disabled\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\";\n\nexport interface PlaceholderAction {\n id: string;\n text: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface PlaceholderIconArgs {\n size: number;\n color: IconColor;\n}\n\nexport type PlaceholderIcon = ({ size, color }: PlaceholderIconArgs) => ReactElement;\n\nexport interface PlaceholderProps {\n title: string;\n subtitle: string;\n iconSize?: number;\n icon?: PlaceholderIcon;\n actions?: PlaceholderAction[];\n}\n\nexport const Placeholder = ({\n title,\n subtitle,\n icon,\n iconSize = 200,\n actions,\n}: PlaceholderProps) => {\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n textAlign=\"center\"\n >\n {icon && icon({ size: iconSize, color: \"primary\" })}\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n <Typography variant=\"subtitle1\" role=\"heading\" aria-level={2} sx={{ mt: 2 }}>\n {subtitle}\n </Typography>\n {actions && (\n <Box sx={{ pt: 2 }}>\n {actions.map(({ id, text, href, onClick }, index) => (\n <Button\n key={id}\n role=\"button\"\n variant=\"contained\"\n href={href}\n onClick={onClick}\n sx={{ mr: index < actions.length - 1 ? 2 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport { LoadingArea } from \"~/loading-area\";\nimport { TabProvider } from \"~/tab-provider\";\nimport ReportProblemIcon from \"@mui/icons-material/ReportProblem\";\nimport { Placeholder, PlaceholderIcon } from \"~/placeholder\";\nimport { HeaderElement } from \"~/header\";\nimport { ContentElement } from \"~/content\";\n\nexport interface HeaderLayoutError {\n icon?: PlaceholderIcon;\n title?: string;\n message: string;\n}\n\nexport interface HeaderLayoutProps {\n loading?: boolean;\n fetching?: boolean;\n error?: HeaderLayoutError;\n children: [HeaderElement, ContentElement];\n}\n\nconst DefaultErrorIcon = () => <ReportProblemIcon color=\"error\" sx={{ width: 200, height: 200 }} />;\n\nexport const HeaderLayout = ({ loading, children, fetching, error }: HeaderLayoutProps) => {\n const [headerElement, contentElement] = children;\n\n return (\n <TabProvider>\n <Box display=\"flex\" flexDirection=\"column\" height={1}>\n {headerElement}\n {fetching && (\n <Box width={1}>\n <LinearProgress />\n </Box>\n )}\n {loading && <LoadingArea />}\n {error && (\n <Box mt={4}>\n <Placeholder\n icon={error.icon || DefaultErrorIcon}\n title={error.title || \"There has been an error\"}\n subtitle={error.message}\n />\n </Box>\n )}\n {!loading && !error && contentElement}\n </Box>\n </TabProvider>\n );\n};\n","import { AlertColor } from \"@mui/material/Alert\";\nimport { createContext, useContext } from \"react\";\n\nexport const NotificationCenterProviderUndefinedError = new Error(\n \"NotificationCenterContext.Provider is required and was undefined\",\n);\n\nexport interface Notification {\n severity: AlertColor;\n title?: string;\n message: string;\n}\n\nexport interface NotificationCenterProps {\n show(notification: Notification): void;\n hide(): void;\n}\n\nexport const NotificationCenterContext = createContext<NotificationCenterProps | undefined>(\n undefined,\n);\n\nexport const useNotificationCenter = () => {\n const context = useContext(NotificationCenterContext);\n\n if (context === undefined) {\n throw NotificationCenterProviderUndefinedError;\n }\n\n return context;\n};\n","import { useEffect, useRef } from \"react\";\nimport { useNotificationCenter, Notification } from \"./notification-center.context\";\n\nexport interface NotifyWhenValueChangesOptions<T> {\n from: T;\n to: T;\n}\n\nexport const useNotifyWhenValueChanges = <T>(\n notification: Notification,\n value: T | undefined,\n { from, to }: NotifyWhenValueChangesOptions<T>,\n) => {\n const prevRef = useRef<T>();\n const { show } = useNotificationCenter();\n\n useEffect(() => {\n if (prevRef.current === from && value === to) {\n show(notification);\n }\n prevRef.current = value;\n }, [value]);\n};\n","import { Link as RouterLink, LinkProps as RouterLinkProps } from \"react-router-dom\";\nimport { forwardRef } from \"react\";\nimport MuiLink, { LinkProps } from \"@mui/material/Link\";\n\n/* eslint-disable react/display-name, @typescript-eslint/no-explicit-any */\nexport const LinkBehaviour = forwardRef<\n any,\n Omit<RouterLinkProps, \"to\"> & { href: RouterLinkProps[\"to\"] }\n>((props, ref) => {\n const { href, ...other } = props;\n return <RouterLink ref={ref} to={href} {...other} />;\n});\n\nexport const Link = forwardRef<any, LinkProps>((props, _1) => {\n return <MuiLink {...(props as any)} component={LinkBehaviour} />;\n});\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { PropsWithChildren } from \"react\";\n\nexport type HeaderTitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderTitle = ({ loading, children }: HeaderTitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress color=\"inherit\" size={typography.h4.fontSize} aria-label=\"title loading\" />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n\nexport type HeaderSubtitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderSubtitle = ({ loading, children }: HeaderSubtitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress\n color=\"inherit\"\n size={typography.body1.fontSize}\n aria-label=\"subtitle loading\"\n />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"body1\" role=\"heading\" aria-level={2}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Container from \"@mui/material/Container\";\nimport Box from \"@mui/material/Box\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Button from \"@mui/material/Button\";\nimport { Link } from \"~/link\";\nimport { useGetDefaultThemeColor } from \"~/utils\";\nimport { HeaderComponent, HeaderPreset, HeaderProps } from \"./header.types\";\nimport { useTab } from \"~/tab-provider\";\nimport { useLocation } from \"react-router-dom\";\nimport { HeaderSubtitle, HeaderTitle } from \"./header-title\";\n\n/**\n * Section used to explain give basic information about the page\n * and put the main actions\n */\nexport const Header: HeaderComponent = ({\n title = \"\",\n loadingTitle,\n subtitle,\n loadingSubtitle,\n preset = \"default\",\n actionsVariant = \"outlined\",\n breadcrumbs,\n actions,\n tabs,\n tabsMode = \"panel\",\n navigationButton,\n}: HeaderProps) => {\n const location = useLocation();\n const { palette } = useTheme();\n const defaultColor = useGetDefaultThemeColor();\n const [selectedTab, setSelectedTab] = useTab();\n\n const bgColorPresets: Record<HeaderPreset, string> = {\n default: defaultColor,\n primary: palette.primary.main,\n secondary: palette.secondary.main,\n inherit: \"inherit\",\n transparent: \"transparent\",\n };\n const bgColor = bgColorPresets[preset];\n const textColorPresets: Record<HeaderPreset, string> = {\n default: palette.getContrastText(bgColorPresets.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n inherit: \"inherit\",\n transparent: palette.text.primary,\n };\n const textColor = textColorPresets[preset];\n\n const modedSelectedTab =\n tabsMode === \"panel\" ? selectedTab : tabs?.findIndex((tab) => tab.href === location.pathname);\n\n return (\n <Box bgcolor={bgColor} color={textColor}>\n <Container>\n <Box sx={{ py: 3, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <Box>\n {navigationButton && (\n <Button\n href={navigationButton.href}\n size=\"small\"\n color=\"inherit\"\n LinkComponent={Link}\n startIcon={navigationButton.icon}\n sx={{ mb: 1 }}\n >\n {navigationButton.text}\n </Button>\n )}\n {breadcrumbs?.length && (\n <Breadcrumbs\n color=\"inherit\"\n separator=\"›\"\n aria-label=\"breadcrumb\"\n sx={{ marginTop: 1 }}\n >\n {breadcrumbs.map(({ id, link, text }) => (\n <Link\n key={id}\n underline=\"hover\"\n color=\"inherit\"\n href={link}\n variant=\"body2\"\n role=\"link\"\n >\n {text}\n </Link>\n ))}\n </Breadcrumbs>\n )}\n <HeaderTitle loading={loadingTitle}>{title}</HeaderTitle>\n {(subtitle || loadingSubtitle) && (\n <HeaderSubtitle loading={loadingSubtitle}>{subtitle}</HeaderSubtitle>\n )}\n </Box>\n {actions && (\n <Box>\n {actions.map(({ disabled, id, href, onClick, text }, i) => (\n <Button\n component={href ? Link : \"button\"}\n role=\"button\"\n color=\"inherit\"\n disabled={disabled}\n key={id}\n variant={actionsVariant}\n size=\"small\"\n href={href}\n onClick={onClick}\n sx={{ mr: i != actions.length - 1 ? 1 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n {tabs && (\n <Tabs\n value={modedSelectedTab}\n textColor=\"inherit\"\n onChange={tabsMode === \"panel\" ? (_, index) => setSelectedTab(index) : undefined}\n >\n {tabs.map(({ id, label, disabled, href }) => {\n const tabProps = { label, disabled };\n if (tabsMode === \"panel\") {\n return <Tab key={id} {...tabProps} />;\n } else {\n return <Tab key={id} {...tabProps} component={Link} href={href} />;\n }\n })}\n </Tabs>\n )}\n </Container>\n </Box>\n );\n};\n","import Container from \"@mui/material/Container\";\nimport { ContentProps } from \"./content.types\";\n\nexport const Content = ({ children }: ContentProps) => {\n return (\n <Container component=\"main\" sx={{ py: 3, flexGrow: 1 }}>\n {children}\n </Container>\n );\n};\n","import { useEffect } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { BasicModelInstance } from \"~/generators\";\nimport { ModelForm } from \"~/model-form\";\nimport { useNavigateWhenValueChanges } from \"~/hooks\";\nimport { HeaderLayout } from \"~/header-layout\";\nimport { useNotifyWhenValueChanges } from \"~/notification-center\";\nimport { RequestState } from \"~/model-router\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { Header } from \"~/header\";\nimport { Content } from \"~/content\";\n\nexport interface UpdateScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed when the user wants to update\n * an item\n */\n onSubmitUpdateItem: (obj: T) => void;\n /**\n * Current status of the request to update an item\n */\n submitUpdateItemRequest: RequestState;\n\n /**\n * Current status of the request to retrieve\n * the item to be updated\n */\n updateItemRequest: RequestState;\n\n /**\n * Callback executed to retrive the item that\n * has to going tobe updated\n */\n onRequestUpdateItem: (id: string) => void;\n\n /**\n * Item that is going to be updated\n */\n updateItem?: T;\n}\n\nexport const UpdateScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n basePath = \"\",\n submitUpdateItemRequest,\n updateItemRequest,\n updateItem,\n onSubmitUpdateItem,\n onRequestUpdateItem,\n}: UpdateScreenProps<T>) => {\n const { id = \"\" } = useParams();\n const loading = updateItemRequest.loading || submitUpdateItemRequest.loading;\n\n useEffect(() => {\n onRequestUpdateItem(id);\n }, [id]);\n\n useNotifyWhenValueChanges(\n {\n title: \"Item updated\",\n message: `The item ${id} has been updated successfully`,\n severity: \"success\",\n },\n !!submitUpdateItemRequest.success,\n { from: false, to: true },\n );\n useNavigateWhenValueChanges(`${basePath}/`, !!submitUpdateItemRequest.success, {\n from: false,\n to: true,\n });\n useNotifyWhenValueChanges(\n { title: \"We had an error\", message: submitUpdateItemRequest.error || \"\", severity: \"error\" },\n !!submitUpdateItemRequest.error,\n { from: false, to: true },\n );\n\n return (\n <HeaderLayout loading={loading}>\n <Header\n title={`Edit ${id}`}\n preset=\"default\"\n breadcrumbs={[\n {\n id: \"list\",\n text: modelName,\n link: `${basePath}/`,\n },\n {\n id: \"update\",\n text: `Edit ${id}`,\n link: `${basePath}/${id}/update`,\n },\n ]}\n />\n <Content>\n <ModelForm\n model={model}\n initialValues={updateItem}\n saveButtonText=\"Save\"\n onSubmit={onSubmitUpdateItem}\n />\n </Content>\n </HeaderLayout>\n );\n};\n","export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return function validate(...args) {\n return propType1(...args) || propType2(...args);\n };\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","import PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n const {\n prototype = {}\n } = elementType;\n return Boolean(prototype.isReactComponent);\n}\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n const element = props[propName];\n const safePropName = propFullName || propName;\n if (element == null ||\n // When server-side rendering React doesn't warn either.\n // This is not an accurate check for SSR.\n // This is only in place for Emotion compat.\n // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.\n typeof window === 'undefined') {\n return null;\n }\n let warningHint;\n const elementType = element.type;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n warningHint = 'Did you accidentally use a plain function component for an element instead?';\n }\n if (warningHint !== undefined) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an element that can hold a ref. ${warningHint} ` + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n return null;\n}\nconst elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);\nelementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);\nexport default elementAcceptingRef;","import PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n const {\n prototype = {}\n } = elementType;\n return Boolean(prototype.isReactComponent);\n}\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n const propValue = props[propName];\n const safePropName = propFullName || propName;\n if (propValue == null ||\n // When server-side rendering React doesn't warn either.\n // This is not an accurate check for SSR.\n // This is only in place for emotion compat.\n // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.\n typeof window === 'undefined') {\n return null;\n }\n let warningHint;\n\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n warningHint = 'Did you accidentally provide a plain function component instead?';\n }\n if (warningHint !== undefined) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an element type that can hold a ref. ${warningHint} ` + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n return null;\n}\nexport default chainPropTypes(PropTypes.elementType, elementTypeAcceptingRef);","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nexport default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();","import PropTypes from 'prop-types';\nconst refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","const visuallyHidden = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n};\nexport default visuallyHidden;","export function getTypeByValue(value) {\n const valueType = typeof value;\n switch (valueType) {\n case 'number':\n if (Number.isNaN(value)) {\n return 'NaN';\n }\n if (!Number.isFinite(value)) {\n return 'Infinity';\n }\n if (value !== Math.floor(value)) {\n return 'float';\n }\n return 'number';\n case 'object':\n if (value === null) {\n return 'null';\n }\n return value.constructor.name;\n default:\n return valueType;\n }\n}\n\n// IE 11 support\nfunction ponyfillIsInteger(x) {\n // eslint-disable-next-line no-restricted-globals\n return typeof x === 'number' && isFinite(x) && Math.floor(x) === x;\n}\nconst isInteger = Number.isInteger || ponyfillIsInteger;\nfunction requiredInteger(props, propName, componentName, location) {\n const propValue = props[propName];\n if (propValue == null || !isInteger(propValue)) {\n const propType = getTypeByValue(propValue);\n return new RangeError(`Invalid ${location} \\`${propName}\\` of type \\`${propType}\\` supplied to \\`${componentName}\\`, expected \\`integer\\`.`);\n }\n return null;\n}\nfunction validator(props, propName, ...other) {\n const propValue = props[propName];\n if (propValue === undefined) {\n return null;\n }\n return requiredInteger(props, propName, ...other);\n}\nfunction validatorNoop() {\n return null;\n}\nvalidator.isRequired = requiredInteger;\nvalidatorNoop.isRequired = validatorNoop;\nexport default process.env.NODE_ENV === 'production' ? validatorNoop : validator;","import TableSortLabel from \"@mui/material/TableSortLabel\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Box from \"@mui/material/Box\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport { visuallyHidden } from \"@mui/utils\";\n\nexport type Order = \"asc\" | \"desc\";\nexport interface HeadCell<T> {\n disablePadding: boolean;\n id: keyof T;\n label: string;\n numeric: boolean;\n sort: boolean;\n}\n\ninterface EnhancedTableHeadProps<T> {\n onRequestSort: (property: keyof T) => void;\n order: Order;\n orderBy: keyof T;\n headCells: HeadCell<T>[];\n}\n\nexport const EnhancedTableHead = <T,>({\n order,\n orderBy,\n headCells,\n onRequestSort,\n}: EnhancedTableHeadProps<T>) => {\n const createSortHandler = (property: keyof T) => () => {\n onRequestSort(property);\n };\n\n return (\n <TableHead>\n <TableRow>\n {headCells.map((headCell) => (\n <TableCell\n variant=\"head\"\n key={String(headCell.id)}\n padding={headCell.disablePadding ? \"none\" : \"normal\"}\n sortDirection={orderBy === headCell.id ? order : false}\n sx={{ fontWeight: \"bold\" }}\n >\n {headCell.sort ? (\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : \"asc\"}\n onClick={createSortHandler(headCell.id)}\n >\n {headCell.label}\n {orderBy === headCell.id ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n </Box>\n ) : null}\n </TableSortLabel>\n ) : (\n headCell.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n};\n","import { ChangeEvent } from \"react\";\nimport { ReactNode, useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TextField from \"@mui/material/TextField\";\nimport TableBody from \"@mui/material/TableBody\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport Table from \"@mui/material/Table\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Search from \"@mui/icons-material/Search\";\nimport { EnhancedTableHead, HeadCell, Order } from \"./enhanced-table-head\";\n\nfunction getFilter<T>(columns: HeadCell<T>[], search: string) {\n return (d: T) => {\n return (\n !search ||\n columns.some((col) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let value = (d as any)[col.id];\n if (value?.toLowerCase) {\n value = value.toLowerCase();\n }\n return value?.toString().includes(search.toLowerCase());\n })\n );\n };\n}\n\nfunction getComparator<T>(order: Order, orderBy: keyof T): (a: T, b: T) => number {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\nfunction descendingComparator<T>(a: T, b: T, orderBy: keyof T) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\ninterface Props<T> {\n readonly data: T[];\n search?: boolean;\n defaultSort: keyof T;\n defaultOrder?: Order;\n loading?: boolean;\n columns: HeadCell<T>[];\n children: (data: T[]) => ReactNode;\n}\n\nexport const EnhancedTable = <T,>({\n children,\n data,\n search,\n columns,\n defaultSort,\n defaultOrder = \"asc\",\n loading = false,\n}: Props<T>) => {\n const [searchFilter, setSearchFilter] = useState<string>(\"\");\n const [order, setOrder] = useState<Order>(defaultOrder);\n const [orderBy, setOrderBy] = useState<keyof T>(defaultSort);\n\n const handleRequestSort = (property: keyof T) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n };\n\n const filteredData = data\n .slice()\n .filter(getFilter<T>(columns, searchFilter))\n .sort(getComparator(order, orderBy));\n\n return (\n <>\n <Box sx={{ paddingX: 1, paddingBottom: 2 }}>\n {search && (\n <Box paddingY={2}>\n <TextField\n fullWidth\n placeholder=\"Search\"\n InputProps={{\n role: \"search\",\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search />\n </InputAdornment>\n ),\n }}\n onChange={(e: ChangeEvent<HTMLInputElement>) => setSearchFilter(e.target.value)}\n />\n </Box>\n )}\n <TableContainer>\n <Table>\n <EnhancedTableHead\n order={order}\n orderBy={orderBy}\n headCells={columns}\n onRequestSort={handleRequestSort}\n />\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell colSpan={columns.length} sx={{ textAlign: \"center\" }}>\n <CircularProgress />\n </TableCell>\n </TableRow>\n ) : filteredData.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length} sx={{ textAlign: \"center\" }}>\n No data\n </TableCell>\n </TableRow>\n ) : (\n children(filteredData)\n )}\n </TableBody>\n </Table>\n </TableContainer>\n </Box>\n </>\n );\n};\n\nEnhancedTable.defaultProps = {\n defaultOrder: \"asc\",\n};\n","import TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport { EnhancedTable, HeadCell, Order } from \"~/enhanced-table\";\nimport MoreVertIcon from \"@mui/icons-material/MoreVert\";\nimport { BasicModelInstance } from \"~/generators\";\nimport { useState } from \"react\";\n\nconst OptionsId = \"__options\";\n\nexport interface TableRowOption<T extends BasicModelInstance> {\n id: string;\n label: string;\n onClick: (item: T) => void;\n}\n\nexport interface TableListProps<T extends BasicModelInstance> {\n columns: HeadCell<T>[];\n data: T[];\n search?: boolean;\n defaultSort: string;\n defaultOrder?: Order;\n loading?: boolean;\n options?: TableRowOption<T>[];\n onClick?: (d: T) => void;\n}\n\n// TODO: Move this to teh generators section\nexport const TableList = <T extends BasicModelInstance>({\n columns: columnsProp,\n options,\n data,\n onClick,\n search,\n defaultSort,\n defaultOrder,\n loading,\n}: TableListProps<T>) => {\n const columns = [\n ...columnsProp,\n {\n id: OptionsId,\n label: \"\",\n disablePadding: false,\n numeric: false,\n sort: false,\n },\n ];\n const [anchorMenuEl, setAnchorMenuEl] = useState<null | { item: T; anchor: HTMLElement }>(null);\n\n return (\n <>\n <EnhancedTable<T>\n columns={columns}\n data={data}\n search={search}\n defaultSort={defaultSort}\n defaultOrder={defaultOrder}\n loading={loading}\n >\n {(filteredData) =>\n filteredData.map((row, i) => {\n return (\n <TableRow\n key={row.id}\n onClick={() => onClick && onClick(row)}\n role=\"row\"\n aria-rowindex={i}\n sx={{ cursor: onClick && \"pointer\" }}\n >\n {columns.map(({ id }, j) => (\n <TableCell\n role=\"cell\"\n scope=\"row\"\n key={id.toString()}\n aria-rowindex={i}\n aria-colindex={j}\n >\n {\n row[\n id\n ] as string /* TODO: This has to be reimplemented having a cell based on each model type */\n }\n </TableCell>\n ))}\n {options && (\n <TableCell>\n <IconButton\n data-testid={`options-${row.id}`}\n onClick={(event) => {\n event.stopPropagation();\n setAnchorMenuEl({\n item: row,\n anchor: event.currentTarget,\n });\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </TableCell>\n )}\n </TableRow>\n );\n })\n }\n </EnhancedTable>\n {options && (\n <Menu\n anchorEl={anchorMenuEl?.anchor}\n open={!!anchorMenuEl}\n onClose={() => setAnchorMenuEl(null)}\n anchorOrigin={{\n vertical: \"top\",\n horizontal: \"left\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"left\",\n }}\n >\n {options.map(({ id, label, onClick }) => (\n <MenuItem\n key={id}\n onClick={() => {\n if (anchorMenuEl) {\n onClick(anchorMenuEl?.item);\n }\n setAnchorMenuEl(null);\n }}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n )}\n </>\n );\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useNotifyWhenValueChanges } from \"~/notification-center\";\nimport { HeaderLayout } from \"~/header-layout\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { Header, HeaderAction } from \"~/header\";\nimport { Content } from \"~/content\";\nimport { BasicModelInstance } from \"~/generators/generators.model\";\nimport { RequestState } from \"~/model-router\";\nimport { TableList, TableRowOption } from \"~/table-list\";\n\nexport interface ListScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed each time the list screen\n * requests for a data update\n */\n onRequestList: () => void;\n\n /**\n * List of items to be displayed in the list screen\n */\n listData: T[];\n\n /**\n * Callback executed when the user clicks an option\n * to delete an item\n */\n onClickDeleteItem: (item: T) => void;\n\n /**\n * Current status of the request to retrieve\n * the list items\n */\n listRequest: RequestState;\n\n /**\n * Current status of the request to delete\n * an item\n */\n deleteRequest: RequestState;\n}\n\nexport const ListScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n listData,\n listRequest,\n deleteRequest,\n basePath = \"\",\n deleteFeature = true,\n updateFeature = true,\n addFeature = true,\n detailsFeature = true,\n onRequestList,\n onClickDeleteItem,\n}: ListScreenProps<T>) => {\n const navigate = useNavigate();\n\n useEffect(() => {\n onRequestList();\n }, []);\n\n useNotifyWhenValueChanges(\n {\n title: \"Item deleted\",\n message: \"The item has been deleted successfully\",\n severity: \"success\",\n },\n !!deleteRequest.success,\n { from: false, to: true },\n );\n\n useNotifyWhenValueChanges(\n { title: \"We had an error\", message: deleteRequest.error || \"\", severity: \"error\" },\n !!deleteRequest.error,\n { from: false, to: true },\n );\n\n const handleClickListItem = detailsFeature\n ? (item: T) => {\n navigate(`${basePath}/${item.id}`);\n }\n : undefined;\n\n const handleClickListOption = (optionId: \"edit\" | \"remove\", item: T) => {\n if (optionId === \"edit\") {\n navigate(`${basePath}/${item.id}/update`);\n } else {\n onClickDeleteItem(item);\n }\n };\n\n const options: TableRowOption<T>[] = [];\n\n updateFeature &&\n options.push({\n id: \"edit\",\n label: \"Edit\",\n onClick: (item: T) => handleClickListOption(\"edit\", item),\n });\n\n deleteFeature &&\n options.push({\n id: \"remove\",\n label: \"Remove\",\n onClick: (item: T) => handleClickListOption(\"remove\", item),\n });\n\n const actions: HeaderAction[] = [];\n\n addFeature &&\n actions.push({\n id: \"add\",\n text: \"Add\",\n href: `${basePath}/add`,\n });\n\n return (\n <HeaderLayout loading={listRequest.loading || deleteRequest.loading}>\n <Header\n title={modelName}\n preset=\"default\"\n actions={actions.length > 0 ? actions : undefined}\n />\n <Content>\n <TableList\n columns={model.fields\n .filter(({ listable }) => listable)\n .map(({ id, name, type }) => ({\n disablePadding: false,\n id,\n label: name,\n numeric: type === \"number\",\n sort: false,\n }))}\n data={listData}\n defaultSort={model.fields[0].id}\n onClick={handleClickListItem}\n options={options.length > 0 ? options : undefined}\n />\n </Content>\n </HeaderLayout>\n );\n};\n","import { HeaderLayout } from \"~/header-layout\";\nimport { useNotifyWhenValueChanges } from \"~/notification-center\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { useNavigateWhenValueChanges } from \"~/hooks\";\nimport { Header } from \"~/header\";\nimport { Content } from \"~/content\";\nimport { BasicModelInstance } from \"~/generators/generators.model\";\nimport { RequestState } from \"~/model-router\";\nimport { ModelForm } from \"~/model-form\";\n\nexport interface AddScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed when the user wants to\n * add a new item\n */\n onSubmitNewItem: (obj: T) => void;\n\n /**\n * Current status of the request to retrieve\n * add a new item\n */\n newItemRequest: RequestState;\n}\n\nexport const AddScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n basePath = \"\",\n onSubmitNewItem,\n newItemRequest,\n}: AddScreenProps<T>) => {\n useNotifyWhenValueChanges(\n { message: \"Item added successfully\", severity: \"success\" },\n !!newItemRequest.success,\n { from: false, to: true },\n );\n useNavigateWhenValueChanges(`${basePath}/`, !!newItemRequest.success, { from: false, to: true });\n useNotifyWhenValueChanges(\n { title: \"We had an error\", message: newItemRequest.error || \"\", severity: \"error\" },\n !!newItemRequest.error,\n { from: false, to: true },\n );\n\n return (\n <HeaderLayout loading={newItemRequest.loading}>\n <Header\n title={`Add ${modelName}`}\n preset=\"default\"\n breadcrumbs={[\n {\n id: \"list\",\n text: modelName,\n link: `${basePath}/`,\n },\n {\n id: \"add\",\n text: `Add new ${modelName}`,\n link: `${basePath}/add`,\n },\n ]}\n />\n <Content>\n <ModelForm model={model} saveButtonText=\"Save\" onSubmit={onSubmitNewItem} />\n </Content>\n </HeaderLayout>\n );\n};\n","import { useState } from \"react\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"@mui/material/IconButton\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport EditIcon from \"@mui/icons-material/Edit\";\n\nexport interface ValueEditButtonsProps {\n onClickCancel: () => void;\n onClickSubmit: () => void;\n sx?: SxProps<Theme>;\n}\n\nexport const ValueEditButtons = ({ onClickCancel, onClickSubmit, sx }: ValueEditButtonsProps) => {\n return (\n <InputAdornment position=\"end\" sx={sx}>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"error\"\n aria-label=\"cancel button\"\n startIcon={<ClearIcon sx={{ fontSize: 12 }} />}\n onClick={onClickCancel}\n sx={{ paddingRight: 0, minWidth: 0, marginRight: 1 }}\n />\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n aria-label=\"submit button\"\n startIcon={<CheckIcon sx={{ fontSize: 12 }} />}\n onClick={onClickSubmit}\n sx={{ paddingRight: 0, minWidth: 0 }}\n />\n </InputAdornment>\n );\n};\n\n/**\n * Hook to manage the editing behaviour\n */\nexport const useEditableValueDisplay = <T,>(\n initialValue: T | undefined,\n onEdit: (value?: T) => void,\n) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState<T | undefined>(initialValue);\n\n const cancelEdit = () => {\n setIsEditing(false);\n setEditValue(initialValue);\n };\n const startEdit = () => {\n setIsEditing(true);\n };\n\n const submitEdit = () => {\n onEdit(editValue);\n cancelEdit();\n };\n\n return { isEditing, cancelEdit, editValue, setEditValue, startEdit, submitEdit };\n};\n\nexport interface ValueEditButtonProps {\n dense?: boolean;\n onClick: () => void;\n}\n\nexport const ValueEditButton = ({ dense, onClick }: ValueEditButtonProps) => {\n const { typography } = useTheme();\n return (\n <IconButton\n size=\"small\"\n onClick={onClick}\n sx={{ ml: dense ? 0.5 : 1 }}\n aria-label=\"edit button\"\n >\n <EditIcon sx={{ fontSize: typography.pxToRem(dense ? 18 : 24) }} />\n </IconButton>\n );\n};\n","import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Switch from \"@mui/material/Switch\";\nimport Typography from \"@mui/material/Typography\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport {\n BaseValueProps,\n DefaultPlaceholder,\n EditableValueProps,\n useEditableValueDisplay,\n ValueEditButton,\n ValueEditButtons,\n} from \"~/value-base\";\nimport { ValueContent, getValueContentLabelId } from \"~/value-content\";\n\nexport type ValueBooleanProps = BaseValueProps<boolean> & EditableValueProps<boolean>;\n\n/**\n * Displays a boolean value with a label\n */\nexport const ValueBoolean = ({\n label,\n value,\n placeholder = DefaultPlaceholder,\n editable,\n dense,\n onEdit = () => null,\n}: ValueBooleanProps) => {\n const id = getValueContentLabelId(label);\n const { typography } = useTheme();\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(value, onEdit);\n\n const iconSx = { fontSize: dense ? typography.h6.fontSize : typography.h5.fontSize };\n\n return (\n <ValueContent label={label} dense={dense}>\n {isEditing ? (\n <Box display=\"flex\" alignItems=\"center\">\n <Switch\n size={dense ? \"small\" : \"medium\"}\n checked={editValue}\n onChange={(e) => setEditValue(e.target.checked)}\n />\n <ValueEditButtons onClickCancel={cancelEdit} onClickSubmit={submitEdit} />\n </Box>\n ) : (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n aria-labelledby={id}\n role=\"checkbox\"\n aria-checked={value}\n >\n {value === undefined ? (\n <Typography variant=\"h5\">{placeholder}</Typography>\n ) : value ? (\n <CheckIcon color=\"success\" sx={iconSx} />\n ) : (\n <CloseIcon color=\"error\" sx={iconSx} />\n )}\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n","export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import Box from \"@mui/material/Box\";\nimport TextField from \"@mui/material/TextField\";\nimport Typography from \"@mui/material/Typography\";\nimport { format } from \"date-fns\";\nimport { BaseValueProps, DefaultPlaceholder, EditableValueProps } from \"~/value-base\";\nimport { getValueContentLabelId, ValueContent } from \"~/value-content\";\nimport { useEditableValueDisplay, ValueEditButton, ValueEditButtons } from \"~/value-base\";\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\";\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\nimport { TimePicker } from \"@mui/x-date-pickers/TimePicker\";\n\nexport type EditInputType = \"datetime\" | \"date\" | \"time\";\n\nexport interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {\n /**\n * Datetime format\n */\n format: string;\n\n /**\n * Edit input type\n */\n editInputType?: EditInputType;\n}\n\n/**\n * Displays a formated datetime with a label\n */\nexport const ValueDatetime = ({\n label,\n value: valueProp,\n format: fmt,\n placeholder = DefaultPlaceholder,\n editable,\n editInputType = \"datetime\",\n dense,\n onEdit = () => null,\n}: ValueDatetimeProps) => {\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp, onEdit);\n const id = getValueContentLabelId(label);\n const value = (valueProp && format(valueProp, fmt)) || placeholder;\n\n const EditPickerComponent =\n editInputType === \"datetime\"\n ? DateTimePicker\n : editInputType === \"time\"\n ? TimePicker\n : DatePicker;\n\n return (\n <ValueContent\n label={label}\n hideLabel={isEditing}\n tooltip={value}\n dense={dense}\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n >\n {isEditing ? (\n <EditPickerComponent\n value={editValue}\n format={fmt}\n label={label}\n onChange={(newValue) => setEditValue(newValue ? newValue : undefined)}\n slots={{\n textField: (params) => (\n <TextField\n {...params}\n size=\"small\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {params.InputProps?.endAdornment}\n <ValueEditButtons\n onClickCancel={cancelEdit}\n onClickSubmit={submitEdit}\n sx={{ ml: 2 }}\n />\n </>\n ),\n sx: { marginY: !dense ? 1 : 0.2 },\n }}\n />\n ),\n }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n </Typography>\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n","import Typography from \"@mui/material/Typography\";\nimport TextField from \"@mui/material/TextField\";\nimport { useEffect, useRef } from \"react\";\nimport {\n BaseValueProps,\n DefaultPlaceholder,\n EditableValueProps,\n useEditableValueDisplay,\n ValueEditButton,\n ValueEditButtons,\n} from \"~/value-base\";\nimport { getValueContentLabelId, ValueContent } from \"~/value-content\";\n\nexport type ValueTextProps = BaseValueProps<string | number> & EditableValueProps<string>;\n\n/**\n * Displays a string value with a label\n */\nexport const ValueText = ({\n label,\n value: valueProp,\n placeholder = DefaultPlaceholder,\n editable,\n dense,\n onEdit = () => null,\n}: ValueTextProps) => {\n const editInputRef = useRef<HTMLInputElement>(null);\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp?.toString(), onEdit);\n const id = getValueContentLabelId(label);\n const value = valueProp?.toString() || placeholder;\n\n const editKeyPressListener = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n onEdit((e.target as any).value);\n }\n };\n\n useEffect(() => {\n editInputRef.current?.addEventListener(\"keypress\", editKeyPressListener);\n return () => editInputRef.current?.removeEventListener(\"keypress\", editKeyPressListener);\n }, [editInputRef.current]);\n\n return (\n <ValueContent hideLabel={isEditing} label={label} tooltip={value} dense={dense}>\n {isEditing ? (\n <TextField\n inputRef={editInputRef}\n value={editValue}\n label={label}\n size=\"small\"\n onChange={(e) => setEditValue(e.target.value)}\n InputProps={{\n endAdornment: (\n <ValueEditButtons onClickCancel={cancelEdit} onClickSubmit={submitEdit} />\n ),\n }}\n sx={{ marginY: !dense ? 1 : 0 }}\n />\n ) : (\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Typography>\n )}\n </ValueContent>\n );\n};\n","import Grid, { GridProps } from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport { ResponsiveStyleValue } from \"@mui/system\";\nimport { PropsWithChildren, FunctionComponent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"~/utils\";\n\nexport type ValueItemProps = PropsWithChildren<\n Omit<GridProps, \"item\" | \"container\"> & { bordered?: ResponsiveStyleValue<boolean> }\n>;\nexport type ValueItemComponent = FunctionComponent<ValueItemProps>;\nexport type ValueItemElement = ReactElement<ValueItemProps, ValueItemComponent>;\n\nexport const valueItemClasses = {\n root: \"RdsValueItem-root\",\n content: \"RdsValueItem-content\",\n};\n\nconst resolveBorderStyle = (bordered: ResponsiveStyleValue<boolean>, color: string) => {\n const borderStyle = `solid ${color} 1px`;\n const noBorder = \"none\";\n\n if (!bordered) {\n return undefined;\n }\n\n if (Array.isArray(bordered)) {\n return bordered.map((b) => (b ? borderStyle : noBorder));\n }\n\n if (typeof bordered === \"object\") {\n const style: Record<string, string | undefined> = {};\n Object.entries(bordered).forEach(([key, value]) => {\n style[key] = value ? borderStyle : noBorder;\n });\n return style;\n }\n\n return borderStyle;\n};\n\nexport const ValueItem: ValueItemComponent = ({\n children,\n bordered = true,\n ...rest\n}: ValueItemProps) => {\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n const borderLeft = resolveBorderStyle(bordered, defaultColor);\n return (\n <Grid item className={valueItemClasses.root} {...rest}>\n <Box className={valueItemClasses.content} px={1} borderLeft={borderLeft}>\n {children}\n </Box>\n </Grid>\n );\n};\n","import Grid from \"@mui/material/Grid\";\nimport { newBreakpointsCounter } from \"~/utils/breakpoints\";\nimport { ValueBoolean } from \"~/value-boolean\";\nimport { ValueDatetime } from \"~/value-datetime\";\nimport { ValueText } from \"~/value-text\";\nimport { GroupValueCard } from \"~/group-value-card\";\nimport { ValueItem } from \"~/value-item\";\nimport {\n ArrayGroupField,\n ArrayInstanceType,\n BasicModelInstance,\n GroupField,\n GroupInstanceType,\n Model,\n ModelField,\n} from \"~/generators/generators.model\";\nimport { GridColDef, DataGrid } from \"@mui/x-data-grid\";\n\ninterface SingleDetailValueFactoryOptions {\n dense?: boolean;\n}\n\nconst singleDetailValueFactory = <T extends BasicModelInstance>(\n field: ModelField,\n instance: T | GroupInstanceType,\n { dense }: SingleDetailValueFactoryOptions = {},\n) => {\n const { id, name, type } = field;\n const value = instance[id];\n if (type === \"boolean\") {\n return <ValueBoolean dense={dense} label={name} value={value as boolean} />;\n } else if (type === \"date\" || type === \"time\" || type === \"datetime\") {\n return <ValueDatetime dense={dense} label={name} value={value as Date} format={field.format} />;\n }\n\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return <ValueText dense={dense} label={name} value={JSON.stringify(value)} />;\n }\n return <ValueText dense={dense} label={name} value={value?.toString()} />;\n};\n\ninterface ObjectArrayGroupProps {\n field: ArrayGroupField;\n instance: ArrayInstanceType;\n dense?: boolean;\n}\n\nconst ObjectArrayGroup = ({\n field: { name, description, value },\n instance,\n dense,\n}: ObjectArrayGroupProps) => {\n const columns: GridColDef[] = [{ field: \"id\", headerName: \"ID\", width: 70 }];\n\n value.forEach((column) => {\n columns.push({\n field: column.id,\n headerName: column.name,\n });\n });\n\n const rows = instance.map((f, id) => ({\n id,\n ...f,\n }));\n\n return (\n <GroupValueCard title={name} subtitle={description} dense={dense}>\n <Grid item xs={12}>\n <DataGrid\n rows={rows}\n columns={columns}\n density={dense ? \"compact\" : \"standard\"}\n disableRowSelectionOnClick\n pageSizeOptions={[5]}\n initialState={{\n pagination: {\n paginationModel: {\n pageSize: 5,\n },\n },\n }}\n sx={{ height: 400 }}\n />\n </Grid>\n </GroupValueCard>\n );\n};\n\ninterface ObjectDetailGroupProps {\n field: GroupField;\n instance: GroupInstanceType;\n dense?: boolean;\n}\n\nconst ObjectDetailGroup = ({\n field: { name, description, value },\n instance,\n dense,\n}: ObjectDetailGroupProps) => {\n const breakpointsCounter = newBreakpointsCounter();\n\n return (\n <GroupValueCard title={name} subtitle={description} dense={dense}>\n {value.map((field) => {\n const { id, xs, sm, md, lg, xl } = field;\n const bordered = breakpointsCounter.increment(field);\n return (\n <ValueItem key={id} xs={xs} sm={sm} md={md} lg={lg} xl={xl} bordered={bordered}>\n {singleDetailValueFactory(field, instance, { dense })}\n </ValueItem>\n );\n })}\n </GroupValueCard>\n );\n};\n\nexport interface ObjectDetailsProps<T extends BasicModelInstance> {\n model: Model;\n dense?: boolean;\n instance: T;\n}\n\nexport const ObjectDetails = <T extends BasicModelInstance>({\n model,\n instance,\n dense,\n}: ObjectDetailsProps<T>) => {\n const breakpointsCounter = newBreakpointsCounter();\n return (\n <Grid container spacing={dense ? 1 : 2}>\n {model.fields.map((field) => {\n const { id, type, xs = 3, sm = 0, md = 0, lg = 0, xl = 0 } = field;\n\n if (type === \"group\") {\n breakpointsCounter.increment({ xs: 12 });\n return (\n <Grid item key={id} xs={12}>\n <ObjectDetailGroup\n field={field}\n instance={instance[id] as GroupInstanceType}\n dense={dense}\n />\n </Grid>\n );\n }\n\n if (type === \"group[]\") {\n breakpointsCounter.increment({ xs: 12 });\n return (\n <Grid item key={id} xs={12}>\n <ObjectArrayGroup field={field} instance={instance[id] as any} dense={dense} />\n </Grid>\n );\n }\n\n const bordered = breakpointsCounter.increment(field);\n return (\n <ValueItem key={id} xs={xs} sm={sm} md={md} lg={lg} xl={xl} bordered={bordered}>\n {singleDetailValueFactory(field, instance, { dense })}\n </ValueItem>\n );\n })}\n </Grid>\n );\n};\n","import { useEffect } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { HeaderLayout } from \"~/header-layout\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { ObjectDetails } from \"~/object-details\";\nimport { Header } from \"~/header\";\nimport { Content } from \"~/content\";\nimport { RequestState } from \"~/model-router\";\nimport { BasicModelInstance } from \"~/generators/generators.model\";\n\nexport interface DetailsScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed each time we want\n * the details information of an item\n */\n onRequestItem: (id: string) => void;\n\n /**\n * Current status of the request to retrieve\n * an item\n */\n itemRequest: RequestState;\n\n /**\n * Item to be displayed\n */\n detailsItem?: T;\n}\n\nexport const DetailsScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n basePath = \"\",\n onRequestItem,\n itemRequest,\n detailsItem,\n}: DetailsScreenProps<T>) => {\n const { id = \"\" } = useParams();\n\n useEffect(() => {\n onRequestItem(id);\n }, [id]);\n\n return (\n <HeaderLayout loading={itemRequest.loading}>\n <Header\n title={id}\n preset=\"default\"\n breadcrumbs={[\n {\n id: \"list\",\n text: modelName,\n link: `${basePath}/`,\n },\n {\n id: \"detail\",\n text: id,\n link: `${basePath}/${id}`,\n },\n ]}\n />\n <Content>{detailsItem && <ObjectDetails model={model} instance={detailsItem} />}</Content>\n </HeaderLayout>\n );\n};\n","import { Routes, Route } from \"react-router-dom\";\nimport { BasicModelInstance } from \"~/generators\";\nimport {\n AddScreen,\n AddScreenProps,\n DetailsScreen,\n DetailsScreenProps,\n ListScreen,\n ListScreenProps,\n UpdateScreen,\n UpdateScreenProps,\n} from \"./screens\";\n\nexport type ModelRouterProps<T extends BasicModelInstance> = DetailsScreenProps<T> &\n ListScreenProps<T> &\n AddScreenProps<T> &\n UpdateScreenProps<T>;\n\nexport const ModelRouter = <T extends BasicModelInstance>(props: ModelRouterProps<T>) => {\n const { updateFeature = true, addFeature = true, detailsFeature = true } = props;\n return (\n <Routes>\n <Route path=\"\" element={<ListScreen {...props} />} />\n {detailsFeature && <Route path=\":id\" element={<DetailsScreen {...props} />} />}\n {addFeature && <Route path=\"add\" element={<AddScreen {...props} />} />}\n {updateFeature && <Route path=\":id/update\" element={<UpdateScreen {...props} />} />}\n </Routes>\n );\n};\n","export interface RequestState {\n idle?: boolean;\n loading?: boolean;\n error?: string;\n success?: boolean;\n}\n\nexport const IdleRequest: RequestState = {\n idle: true,\n};\n\nexport const LoadingRequest: RequestState = {\n loading: true,\n};\n\nexport const SuccessRequest: RequestState = {\n success: true,\n};\n"],"names":["InitialStateZeroValue","string","number","boolean","enum","multienum","date","Date","time","datetime","group","getFieldValueOrZero","field","values","id","default","type","useGetDefaultThemeColor","lightWeight","darkWeight","palette","useTheme","mode","grey","newBreakpointsCounter","breakpoint","calculateBreakpointIncrement","breakpointsCounter","key","value","initialValue","xs","sm","md","lg","xl","increment","smInc","mdInc","lgInc","xlInc","this","GroupValueCard","title","subtitle","centered","children","dense","typography","defaultColor","_jsxs","Paper","sx","paddingBottom","Box","bgcolor","px","py","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Grid","container","padding","rowSpacing","justifyContent","ModelFormField","path","update","onChangeValue","handleCheckboxChange","e","preventDefault","target","name","checked","handleSelectChange","handleMultiSelectChange","newValue","split","handleInputChange","parseInt","includes","handleDateChange","description","updatable","required","disabled","fieldInput","size","spacing","p","map","f","height","display","alignItems","FormControlLabel","control","Checkbox","onChange","label","FormControl","fullWidth","InputLabel","Select","labelId","fieldValue","MenuItem","renderValue","selected","join","multiple","ListItemText","primary","DesktopDatePicker","format","slotProps","TimePicker","DateTimePicker","TextField","helperText","item","_isPlaceholder","a","_curry1","fn","f1","arguments","length","apply","_curry2","f2","b","_b","_a","_curry3","f3","c","_c","_isArray","Array","isArray","val","Object","prototype","toString","call","_isInteger","Number","isInteger","n","isNil","x","assocPath","obj","idx","nextObj","prop","hasOwnProperty","_has","slice","arr","concat","result","_assoc","ModelForm","model","saveButtonText","onSubmit","initialValues","valuesInitialState","useMemo","fields","forEach","groupField","newInstanceFromValuesOrZeroValue","setValues","useState","setKeyValue","v","component","Button","useNavigateWhenValueChanges","from","to","prevRef","useRef","navigate","useNavigate","useEffect","current","LoadingArea","width","CircularProgress","TabContext","createContext","TabContextProvider","Provider","TabProvider","tabState","Placeholder","icon","iconSize","actions","flexDirection","textAlign","color","mt","pt","text","href","onClick","index","mr","DefaultErrorIcon","ReportProblemIcon","HeaderLayout","loading","fetching","error","headerElement","contentElement","LinearProgress","message","NotificationCenterProviderUndefinedError","Error","NotificationCenterContext","useNotifyWhenValueChanges","notification","show","context","useContext","useNotificationCenter","LinkBehaviour","forwardRef","props","ref","other","RouterLink","Link","_1","MuiLink","HeaderTitle","h4","fontSize","_Fragment","HeaderSubtitle","body1","Header","loadingTitle","loadingSubtitle","preset","actionsVariant","breadcrumbs","tabs","tabsMode","navigationButton","location","useLocation","selectedTab","setSelectedTab","bgColorPresets","main","secondary","inherit","transparent","bgColor","textColor","getContrastText","contrastText","modedSelectedTab","findIndex","tab","pathname","Container","LinkComponent","startIcon","mb","Breadcrumbs","separator","marginTop","link","underline","i","Tabs","_","tabProps","Tab","Content","flexGrow","UpdateScreen","modelName","basePath","submitUpdateItemRequest","updateItemRequest","updateItem","onSubmitUpdateItem","onRequestUpdateItem","useParams","severity","success","chainPropTypes","propType1","propType2","process","env","NODE_ENV","args","module","exports","Symbol","for","d","g","h","k","l","m","q","r","t","w","y","z","u","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Fragment","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","require$$0","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","console","isPortal","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","keys","err","shouldUseNative","source","symbols","TypeError","toObject","s","ReactPropTypesSecret_1","has","Function","bind","ReactIs","propTypesModule","require$$1","ReactPropTypesSecret","require$$2","require$$3","checkPropTypes","printWarning","loggedTypeFailures","typeSpecs","componentName","getStack","typeSpecName","ex","stack","resetWarningCache","checkPropTypes_1","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","element","elementType","instanceOf","expectedClass","expectedClassName","constructor","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","push","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","acceptingRef","safePropName","window","warningHint","Boolean","isReactComponent","isClassComponent","SuspenseList","isSuspenseList","getModuleId","REACT_MODULE_REFERENCE","REACT_SERVER_CONTEXT_TYPE","REACT_OFFSCREEN_TYPE","hasWarnedAboutDeprecatedIsConcurrentMode","Math","self","visuallyHidden","border","clip","margin","overflow","position","whiteSpace","isFinite","floor","requiredInteger","valueType","isNaN","getTypeByValue","RangeError","validator","validatorNoop","EnhancedTableHead","order","orderBy","headCells","onRequestSort","TableHead","TableRow","headCell","TableCell","disablePadding","sortDirection","fontWeight","sort","TableSortLabel","active","direction","property","descendingComparator","EnhancedTable","search","columns","defaultSort","defaultOrder","searchFilter","setSearchFilter","setOrder","setOrderBy","filteredData","filter","some","col","toLowerCase","getFilter","getComparator","paddingX","paddingY","placeholder","InputProps","startAdornment","InputAdornment","Search","TableContainer","Table","TableBody","colSpan","defaultProps","TableList","columnsProp","options","numeric","anchorMenuEl","setAnchorMenuEl","row","cursor","j","scope","IconButton","event","stopPropagation","anchor","currentTarget","MoreVertIcon","Menu","anchorEl","open","onClose","anchorOrigin","vertical","horizontal","transformOrigin","ListScreen","listData","listRequest","deleteRequest","deleteFeature","updateFeature","addFeature","detailsFeature","onRequestList","onClickDeleteItem","handleClickListItem","handleClickListOption","optionId","listable","AddScreen","onSubmitNewItem","newItemRequest","ValueEditButtons","onClickCancel","onClickSubmit","ClearIcon","paddingRight","minWidth","marginRight","CheckIcon","useEditableValueDisplay","onEdit","isEditing","setIsEditing","editValue","setEditValue","cancelEdit","startEdit","submitEdit","ValueEditButton","ml","EditIcon","getValueContentLabelId","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","Tooltip","placement","enterDelay","ValueBoolean","editable","iconSx","h6","h5","Switch","CloseIcon","ValueDatetime","valueProp","fmt","editInputType","DatePicker","slots","textField","params","endAdornment","marginY","noWrap","ValueText","editInputRef","editKeyPressListener","addEventListener","removeEventListener","inputRef","valueItemClasses","ValueItem","bordered","rest","borderLeft","borderStyle","noBorder","style","resolveBorderStyle","className","singleDetailValueFactory","instance","ObjectArrayGroup","headerName","column","rows","DataGrid","density","disableRowSelectionOnClick","pageSizeOptions","initialState","pagination","paginationModel","pageSize","ObjectDetailGroup","ObjectDetails","DetailsScreen","onRequestItem","itemRequest","detailsItem","ModelRouter","Routes","Route","IdleRequest","idle","LoadingRequest","SuccessRequest"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sources":["../../src/generators/generators.model.ts","../../src/utils/theme.ts","../../src/utils/breakpoints.ts","../../src/group-value-card/group-value-card.tsx","../../src/model-form/model-form-field.tsx","../../node_modules/ramda/es/internal/_isPlaceholder.js","../../node_modules/ramda/es/internal/_curry1.js","../../node_modules/ramda/es/internal/_curry2.js","../../node_modules/ramda/es/internal/_curry3.js","../../node_modules/ramda/es/internal/_isArray.js","../../node_modules/ramda/es/internal/_isInteger.js","../../node_modules/ramda/es/isNil.js","../../node_modules/ramda/es/assocPath.js","../../node_modules/ramda/es/internal/_has.js","../../node_modules/ramda/es/internal/_assoc.js","../../src/model-form/model-form.tsx","../../src/hooks/routing/routing.hooks.ts","../../src/loading-area/loading-area.tsx","../../src/tab-provider/tab-provider.context.ts","../../src/tab-provider/tab-provider.provider.tsx","../../src/placeholder/placeholder.tsx","../../src/header-layout/header-layout.tsx","../../src/notification-center/notification-center.context.ts","../../src/notification-center/notification-center.hooks.ts","../../src/link/link.tsx","../../src/header/header-title.tsx","../../src/header/header.tsx","../../src/content/content.tsx","../../src/model-router/screens/update-screen.tsx","../../node_modules/@mui/utils/esm/chainPropTypes/chainPropTypes.js","../../node_modules/prop-types/node_modules/react-is/index.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/prop-types/node_modules/react-is/cjs/react-is.development.js","../../node_modules/object-assign/index.js","../../node_modules/prop-types/lib/ReactPropTypesSecret.js","../../node_modules/prop-types/lib/has.js","../../node_modules/prop-types/index.js","../../node_modules/prop-types/factoryWithTypeCheckers.js","../../node_modules/prop-types/checkPropTypes.js","../../node_modules/prop-types/factoryWithThrowingShims.js","../../node_modules/@mui/utils/esm/elementAcceptingRef.js","../../node_modules/@mui/utils/esm/elementTypeAcceptingRef.js","../../node_modules/react-is/index.js","../../node_modules/react-is/cjs/react-is.production.min.js","../../node_modules/react-is/cjs/react-is.development.js","../../node_modules/@mui/utils/esm/ponyfillGlobal/ponyfillGlobal.js","../../node_modules/@mui/utils/esm/refType.js","../../node_modules/@mui/utils/esm/visuallyHidden.js","../../node_modules/@mui/utils/esm/integerPropType.js","../../src/enhanced-table/enhanced-table-head.tsx","../../src/enhanced-table/enhanced-table.tsx","../../src/table-list/table-list.tsx","../../src/model-router/screens/list-screen.tsx","../../src/model-router/screens/add-screen.tsx","../../src/value-base/value-edit.tsx","../../src/value-content/value-content.tsx","../../src/value-boolean/value-boolean.tsx","../../src/value-base/value-displays.types.ts","../../src/value-datetime/value-datetime.tsx","../../src/value-text/value-text.tsx","../../src/value-item/value-item.tsx","../../src/object-details/object-details.tsx","../../src/model-router/screens/details-screen.tsx","../../src/model-router/model-router.tsx","../../src/model-router/model-router.types.ts"],"sourcesContent":["/**\n * MODEL TYPES\n * Types used to specify the model\n */\nexport type ModelFieldTypes =\n | \"string\"\n | \"number\"\n | \"string[]\"\n | \"number[]\"\n | \"boolean\"\n | \"enum\"\n | \"multienum\"\n | \"date\"\n | \"time\"\n | \"datetime\";\n\ntype Base = {\n id: string;\n description: string;\n name: string;\n listable?: boolean;\n updatable?: boolean;\n required?: boolean;\n};\n\ntype Breakpoints = {\n xs?: number;\n sm?: number;\n md?: number;\n lg?: number;\n xl?: number;\n};\n\ntype StringField = {\n type: \"string\";\n};\n\ntype StringArrayField = {\n type: \"string[]\";\n};\n\ntype NumberField = {\n type: \"number\";\n};\n\ntype NumberArrayField = {\n type: \"number[]\";\n};\n\ntype BooleanField = {\n type: \"boolean\";\n};\n\ntype EnumField = {\n type: \"enum\";\n value: string[];\n};\n\ntype MultiEnumField = {\n type: \"multienum\";\n value: string[];\n};\n\ntype DateField = {\n type: \"date\";\n format: string;\n default: Date;\n};\n\ntype TimeField = {\n type: \"time\";\n format: string;\n default: Date;\n};\n\ntype DatetimeField = {\n type: \"datetime\";\n format: string;\n default: Date;\n};\n\ntype SingleFields =\n | StringField\n | NumberField\n | StringArrayField\n | NumberArrayField\n | BooleanField\n | EnumField\n | MultiEnumField\n | DateField\n | TimeField\n | DatetimeField;\n\nexport type GroupField = {\n type: \"group\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\nexport type ArrayGroupField = {\n type: \"group[]\";\n value: (Base & Breakpoints & SingleFields)[];\n} & Base;\n\ntype Fields = SingleFields | GroupField | ArrayGroupField;\nexport type ModelField = Base & Breakpoints & Fields;\n\nexport type Model = {\n fields: ModelField[];\n};\n\n/**\n * INSTANCE TYPES\n * Types used to represent an instance of a model specification\n */\nexport type BaseFieldType = string | number | boolean | Date;\nexport type ArrayFieldType = string[] | number[];\nexport type SingleFieldType = BaseFieldType | ArrayFieldType;\nexport type GroupInstanceType = { [key: string]: SingleFieldType };\nexport type ArrayInstanceType = { [key: string]: SingleFieldType }[];\nexport type FieldType = SingleFieldType | GroupInstanceType;\n\nexport interface BasicModelInstance {\n id: string;\n [key: string]: FieldType;\n}\n\n/**\n * UTILITIES\n * Some functions used in several places to help to manage models\n */\nconst InitialStateZeroValue: Record<ModelFieldTypes | \"group\" | \"group[]\", FieldType | undefined> =\n {\n string: \"\",\n number: 0,\n boolean: false,\n enum: \"\",\n multienum: [],\n date: new Date(1970, 0, 1, 0, 0),\n time: new Date(1970, 0, 1, 0, 0),\n datetime: new Date(1970, 0, 1, 0, 0),\n group: {},\n \"group[]\": [],\n \"string[]\": [],\n \"number[]\": [],\n };\n\nconst getFieldValueOrZero = (\n field: ModelField,\n values: BasicModelInstance | GroupInstanceType | undefined,\n) => {\n return (\n (values && values[field.id]) ||\n (\"default\" in field && field.default) ||\n InitialStateZeroValue[field.type]\n );\n};\n\nexport const newInstanceFromValuesOrZeroValue = <T extends BasicModelInstance>(\n model: Model,\n values: T | undefined = undefined,\n): T => {\n const obj: Record<string, FieldType | undefined> = {};\n\n model.fields.forEach((field) => {\n if (field.type === \"group\") {\n const value: GroupInstanceType = {};\n field.value.forEach((groupField) => {\n value[groupField.id] = getFieldValueOrZero(\n groupField,\n values && (values[field.id] as GroupInstanceType),\n ) as SingleFieldType;\n });\n obj[field.id] = value;\n } else {\n obj[field.id] = getFieldValueOrZero(field, values);\n }\n });\n\n return obj as T;\n};\n","import { Color, useTheme } from \"@mui/material\";\n\ntype KeyColor = keyof Color;\n\nexport const useGetDefaultThemeColor = ({\n lightWeight = 100,\n darkWeight = 900,\n}: { lightWeight?: KeyColor; darkWeight?: KeyColor } = {}) => {\n const { palette } = useTheme();\n return palette.mode === \"light\" ? palette.grey[lightWeight] : palette.grey[darkWeight];\n};\n","import { ResponsiveStyleValue } from \"@mui/system\";\n\ninterface Breakpoints {\n xs: number;\n sm: number;\n md: number;\n lg: number;\n xl: number;\n}\n\ninterface BreakpointsCounter extends Breakpoints {\n increment(breakpoints: Partial<Breakpoints>): ResponsiveStyleValue<boolean>;\n}\n\nexport const newBreakpointsCounter = (breakpoint = 12): BreakpointsCounter => {\n const calculateBreakpointIncrement = (\n breakpointsCounter: BreakpointsCounter,\n key: keyof Breakpoints,\n value: number,\n ): boolean => {\n const initialValue = breakpointsCounter[key];\n breakpointsCounter[key] += value;\n if (breakpointsCounter[key] > breakpoint) {\n breakpointsCounter[key] = value;\n return false;\n }\n\n if (breakpointsCounter[key] == breakpoint) {\n breakpointsCounter[key] = 0;\n }\n\n return initialValue > 0;\n };\n\n return {\n xs: 0,\n sm: 0,\n md: 0,\n lg: 0,\n xl: 0,\n increment: function ({\n xs = 0,\n sm = 0,\n md = 0,\n lg = 0,\n xl = 0,\n }): ResponsiveStyleValue<boolean> {\n const smInc = sm || xs;\n const mdInc = md || smInc;\n const lgInc = lg || mdInc;\n const xlInc = xl || lgInc;\n\n return {\n xs: calculateBreakpointIncrement(this, \"xs\", xs),\n sm: calculateBreakpointIncrement(this, \"sm\", smInc),\n md: calculateBreakpointIncrement(this, \"md\", mdInc),\n lg: calculateBreakpointIncrement(this, \"lg\", lgInc),\n xl: calculateBreakpointIncrement(this, \"xl\", xlInc),\n };\n },\n };\n};\n","import Grid from \"@mui/material/Grid\";\nimport Paper from \"@mui/material/Paper\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { ValueItemElement } from \"../value-item\";\n\nexport interface GroupValueCardProps {\n title: string;\n subtitle?: string;\n centered?: boolean;\n children: ValueItemElement | ValueItemElement[];\n dense?: boolean;\n}\n\nexport const GroupValueCard = ({\n title,\n subtitle,\n centered,\n children,\n dense,\n}: GroupValueCardProps) => {\n const { typography } = useTheme();\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n return (\n <Paper\n sx={{\n paddingBottom: dense ? 0 : 1,\n }}\n >\n <Box\n bgcolor={defaultColor}\n px={dense ? 1 : 2}\n py={dense ? 0.5 : 1}\n lineHeight={dense ? 0 : undefined}\n >\n <Typography variant={dense ? \"body1\" : \"h6\"} role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n {subtitle && (\n <Typography\n variant={dense ? \"caption\" : \"body2\"}\n role=\"heading\"\n aria-level={2}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {subtitle}\n </Typography>\n )}\n </Box>\n <Grid\n container\n padding={1}\n rowSpacing={dense ? 1 : 2}\n justifyContent={centered ? \"center\" : \"flex-start\"}\n >\n {children}\n </Grid>\n </Paper>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport Grid from \"@mui/material/Grid\";\nimport FormControlLabel from \"@mui/material/FormControlLabel\";\nimport Checkbox from \"@mui/material/Checkbox\";\nimport FormControl from \"@mui/material/FormControl\";\nimport InputLabel from \"@mui/material/InputLabel\";\nimport Select from \"@mui/material/Select\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport ListItemText from \"@mui/material/ListItemText\";\nimport TextField from \"@mui/material/TextField\";\nimport { SelectChangeEvent } from \"@mui/material/Select\";\nimport { DesktopDatePicker, TimePicker, DateTimePicker } from \"@mui/x-date-pickers\";\nimport { ChangeEvent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { GroupValueCard } from \"../group-value-card\";\nimport {\n ArrayFieldType,\n FieldType,\n ModelField,\n ModelFieldTypes,\n} from \"../generators/generators.model\";\n\nexport interface ModelFormField {\n field: ModelField;\n update: boolean;\n dense?: boolean;\n path?: string[];\n value: any;\n onChangeValue: (path: string[], value: any) => void;\n}\n\nexport const ModelFormField = ({\n field,\n path = [],\n value,\n dense,\n update,\n onChangeValue,\n}: ModelFormField) => {\n const handleCheckboxChange = (e: ChangeEvent<HTMLInputElement>) => {\n e.preventDefault();\n onChangeValue([...path, e.target.name], e.target.checked);\n };\n\n const handleSelectChange = (e: SelectChangeEvent<FieldType>) => {\n e.preventDefault();\n onChangeValue([...path, e.target.name], e.target.value);\n };\n\n const handleMultiSelectChange = (e: SelectChangeEvent<FieldType>) => {\n e.preventDefault();\n const { value } = e.target;\n const newValue = typeof value === \"string\" ? value.split(\",\") : value;\n onChangeValue([...path, e.target.name], newValue);\n };\n\n const handleInputChange = (\n e: ChangeEvent<HTMLInputElement | HTMLTextAreaElement>,\n type: ModelFieldTypes,\n ) => {\n e.preventDefault();\n\n let value: string | number | string[] | number[] = e.target.value;\n if (type === \"number\" && typeof value === \"string\") {\n value = parseInt(e.target.value, 10);\n } else if (type.includes(\"[]\")) {\n value = e.target.value.split(\",\");\n }\n onChangeValue([...path, e.target.name], value);\n };\n\n const handleDateChange = (value: FieldType | null, id: string) => {\n onChangeValue([...path, id], value);\n };\n\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n\n const {\n id,\n type,\n name,\n description,\n updatable = true,\n required = true,\n xs,\n sm,\n md,\n lg,\n xl,\n } = field;\n const disabled: boolean = !updatable && update;\n\n let fieldInput: ReactElement;\n const size = dense ? \"small\" : \"medium\";\n if (type === \"group\") {\n fieldInput = (\n <GroupValueCard title={name} subtitle={description} dense={dense}>\n <Grid container spacing={2} sx={{ p: 2 }}>\n {field.value.map((f) => (\n <ModelFormField\n key={f.id}\n field={f}\n dense={dense}\n path={[...path, id]}\n value={value[f.id]}\n update={update}\n onChangeValue={onChangeValue}\n />\n ))}\n </Grid>\n </GroupValueCard>\n );\n } else if (type === \"boolean\") {\n fieldInput = (\n <Box sx={{ height: 1, display: \"flex\", alignItems: \"center\" }}>\n <FormControlLabel\n control={\n <Checkbox\n name={id}\n size={size}\n onChange={handleCheckboxChange}\n checked={value as boolean}\n disabled={disabled}\n />\n }\n label={name}\n />\n </Box>\n );\n } else if (type === \"enum\") {\n fieldInput = (\n <FormControl fullWidth>\n <InputLabel id={`${id}-select-label`}>{name}</InputLabel>\n <Select\n labelId={`${id}-select-label`}\n id={`${id}-select`}\n value={value}\n label={name}\n name={id}\n size={size}\n onChange={handleSelectChange}\n required={required}\n disabled={disabled}\n >\n {field.value.map((fieldValue) => (\n <MenuItem key={fieldValue} value={fieldValue}>\n {fieldValue}\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n } else if (type === \"multienum\") {\n fieldInput = (\n <FormControl fullWidth>\n <InputLabel id={`${id}-select-label`}>{name}</InputLabel>\n <Select\n labelId={`${id}-select-label`}\n id={`${id}-select`}\n value={value || []}\n renderValue={(selected) => (selected as ArrayFieldType).join(\", \")}\n label={name}\n name={id}\n size={size}\n onChange={handleMultiSelectChange}\n required={required}\n disabled={disabled}\n multiple\n >\n {field.value.map((fieldValue) => (\n <MenuItem key={fieldValue} value={fieldValue}>\n <Checkbox checked={((value as any[]) || []).includes(fieldValue)} />\n <ListItemText primary={fieldValue} />\n </MenuItem>\n ))}\n </Select>\n </FormControl>\n );\n } else if (type === \"date\") {\n fieldInput = (\n <DesktopDatePicker\n label={name}\n format={field.format}\n value={value}\n slotProps={\n {\n field: {\n size,\n },\n } as any\n }\n disabled={disabled}\n onChange={(value) => handleDateChange(value, id)}\n />\n );\n } else if (type === \"time\") {\n fieldInput = (\n <TimePicker\n label={name}\n format={field.format}\n value={value}\n slotProps={\n {\n field: {\n size,\n },\n } as any\n }\n disabled={disabled}\n onChange={(value) => handleDateChange(value, id)}\n />\n );\n } else if (type === \"datetime\") {\n fieldInput = (\n <DateTimePicker\n label={name}\n format={field.format}\n value={value}\n slotProps={\n {\n field: {\n size,\n },\n } as any\n }\n disabled={disabled}\n onChange={(value) => handleDateChange(value, id)}\n />\n );\n } else if (type === \"group[]\") {\n return null;\n } else if (type.includes(\"[]\")) {\n fieldInput = (\n <TextField\n required={required}\n type=\"text\"\n label={name}\n name={id}\n size={size}\n variant=\"outlined\"\n helperText=\"Use comas to separate multiple values\"\n fullWidth\n disabled={disabled}\n value={(value as any[]).join(\",\")}\n onChange={(e) => handleInputChange(e, type)}\n />\n );\n } else {\n fieldInput = (\n <TextField\n required={required}\n type={type}\n label={name}\n size={size}\n name={id}\n variant=\"outlined\"\n fullWidth\n value={value}\n disabled={disabled}\n onChange={(e) => handleInputChange(e, type)}\n />\n );\n }\n\n return (\n <Grid item key={id} xs={xs} sm={sm} md={md} lg={lg} xl={xl}>\n {fieldInput}\n </Grid>\n );\n};\n","export default function _isPlaceholder(a) {\n return a != null && typeof a === 'object' && a['@@functional/placeholder'] === true;\n}","import _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal one-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry1(fn) {\n return function f1(a) {\n if (arguments.length === 0 || _isPlaceholder(a)) {\n return f1;\n } else {\n return fn.apply(this, arguments);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal two-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry2(fn) {\n return function f2(a, b) {\n switch (arguments.length) {\n case 0:\n return f2;\n\n case 1:\n return _isPlaceholder(a) ? f2 : _curry1(function (_b) {\n return fn(a, _b);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f2 : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b);\n }) : fn(a, b);\n }\n };\n}","import _curry1 from \"./_curry1.js\";\nimport _curry2 from \"./_curry2.js\";\nimport _isPlaceholder from \"./_isPlaceholder.js\";\n/**\n * Optimized internal three-arity curry function.\n *\n * @private\n * @category Function\n * @param {Function} fn The function to curry.\n * @return {Function} The curried function.\n */\n\nexport default function _curry3(fn) {\n return function f3(a, b, c) {\n switch (arguments.length) {\n case 0:\n return f3;\n\n case 1:\n return _isPlaceholder(a) ? f3 : _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n });\n\n case 2:\n return _isPlaceholder(a) && _isPlaceholder(b) ? f3 : _isPlaceholder(a) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _curry1(function (_c) {\n return fn(a, b, _c);\n });\n\n default:\n return _isPlaceholder(a) && _isPlaceholder(b) && _isPlaceholder(c) ? f3 : _isPlaceholder(a) && _isPlaceholder(b) ? _curry2(function (_a, _b) {\n return fn(_a, _b, c);\n }) : _isPlaceholder(a) && _isPlaceholder(c) ? _curry2(function (_a, _c) {\n return fn(_a, b, _c);\n }) : _isPlaceholder(b) && _isPlaceholder(c) ? _curry2(function (_b, _c) {\n return fn(a, _b, _c);\n }) : _isPlaceholder(a) ? _curry1(function (_a) {\n return fn(_a, b, c);\n }) : _isPlaceholder(b) ? _curry1(function (_b) {\n return fn(a, _b, c);\n }) : _isPlaceholder(c) ? _curry1(function (_c) {\n return fn(a, b, _c);\n }) : fn(a, b, c);\n }\n };\n}","/**\n * Tests whether or not an object is an array.\n *\n * @private\n * @param {*} val The object to test.\n * @return {Boolean} `true` if `val` is an array, `false` otherwise.\n * @example\n *\n * _isArray([]); //=> true\n * _isArray(null); //=> false\n * _isArray({}); //=> false\n */\nexport default Array.isArray || function _isArray(val) {\n return val != null && val.length >= 0 && Object.prototype.toString.call(val) === '[object Array]';\n};","/**\n * Determine if the passed argument is an integer.\n *\n * @private\n * @param {*} n\n * @category Type\n * @return {Boolean}\n */\nexport default Number.isInteger || function _isInteger(n) {\n return n << 0 === n;\n};","import _curry1 from \"./internal/_curry1.js\";\n/**\n * Checks if the input value is `null` or `undefined`.\n *\n * @func\n * @memberOf R\n * @since v0.9.0\n * @category Type\n * @sig * -> Boolean\n * @param {*} x The value to test.\n * @return {Boolean} `true` if `x` is `undefined` or `null`, otherwise `false`.\n * @example\n *\n * R.isNil(null); //=> true\n * R.isNil(undefined); //=> true\n * R.isNil(0); //=> false\n * R.isNil([]); //=> false\n */\n\nvar isNil =\n/*#__PURE__*/\n_curry1(function isNil(x) {\n return x == null;\n});\n\nexport default isNil;","import _curry3 from \"./internal/_curry3.js\";\nimport _has from \"./internal/_has.js\";\nimport _isInteger from \"./internal/_isInteger.js\";\nimport _assoc from \"./internal/_assoc.js\";\nimport isNil from \"./isNil.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the nodes required\n * to create the given path, and placing the specific value at the tail end of\n * that path. Note that this copies and flattens prototype properties onto the\n * new object as well. All non-primitive properties are copied by reference.\n *\n * @func\n * @memberOf R\n * @since v0.8.0\n * @category Object\n * @typedefn Idx = String | Int | Symbol\n * @sig [Idx] -> a -> {a} -> {a}\n * @param {Array} path the path to set\n * @param {*} val The new value\n * @param {Object} obj The object to clone\n * @return {Object} A new object equivalent to the original except along the specified path.\n * @see R.dissocPath\n * @example\n *\n * R.assocPath(['a', 'b', 'c'], 42, {a: {b: {c: 0}}}); //=> {a: {b: {c: 42}}}\n *\n * // Any missing or non-object keys in path will be overridden\n * R.assocPath(['a', 'b', 'c'], 42, {a: 5}); //=> {a: {b: {c: 42}}}\n */\n\nvar assocPath =\n/*#__PURE__*/\n_curry3(function assocPath(path, val, obj) {\n if (path.length === 0) {\n return val;\n }\n\n var idx = path[0];\n\n if (path.length > 1) {\n var nextObj = !isNil(obj) && _has(idx, obj) && typeof obj[idx] === 'object' ? obj[idx] : _isInteger(path[1]) ? [] : {};\n val = assocPath(Array.prototype.slice.call(path, 1), val, nextObj);\n }\n\n return _assoc(idx, val, obj);\n});\n\nexport default assocPath;","export default function _has(prop, obj) {\n return Object.prototype.hasOwnProperty.call(obj, prop);\n}","import _isArray from \"./_isArray.js\";\nimport _isInteger from \"./_isInteger.js\";\n/**\n * Makes a shallow clone of an object, setting or overriding the specified\n * property with the given value. Note that this copies and flattens prototype\n * properties onto the new object as well. All non-primitive properties are\n * copied by reference.\n *\n * @private\n * @param {String|Number} prop The property name to set\n * @param {*} val The new value\n * @param {Object|Array} obj The object to clone\n * @return {Object|Array} A new object equivalent to the original except for the changed property.\n */\n\nexport default function _assoc(prop, val, obj) {\n if (_isInteger(prop) && _isArray(obj)) {\n var arr = [].concat(obj);\n arr[prop] = val;\n return arr;\n }\n\n var result = {};\n\n for (var p in obj) {\n result[p] = obj[p];\n }\n\n result[prop] = val;\n return result;\n}","import Button from \"@mui/material/Button\";\nimport Grid from \"@mui/material/Grid\";\nimport { FormEvent, useMemo } from \"react\";\nimport { useState } from \"react\";\nimport {\n Model,\n BasicModelInstance,\n FieldType,\n newInstanceFromValuesOrZeroValue,\n} from \"../generators\";\nimport { ModelFormField } from \"./model-form-field\";\nimport { assocPath } from \"ramda\";\n\nexport interface ModelFormProps<T extends BasicModelInstance> {\n model: Model;\n dense?: boolean;\n initialValues?: T;\n saveButtonText: string;\n onSubmit: (values: T) => void;\n}\n\nexport const ModelForm = <T extends BasicModelInstance>({\n model,\n saveButtonText,\n dense,\n onSubmit,\n initialValues,\n}: ModelFormProps<T>) => {\n const valuesInitialState = useMemo(\n () => newInstanceFromValuesOrZeroValue<T>(model, initialValues),\n [model, initialValues],\n );\n const [values, setValues] = useState<T>(valuesInitialState);\n\n const setKeyValue = (path: string[], value: FieldType | null) => {\n setValues((v) => assocPath(path, value, v));\n };\n\n const handleSubmit = (e: FormEvent<HTMLFormElement>) => {\n e.preventDefault();\n onSubmit(values);\n };\n\n return (\n <Grid container component=\"form\" spacing={2} onSubmit={handleSubmit}>\n {model.fields.map((f) => (\n <ModelFormField\n key={f.id}\n dense={dense}\n field={f}\n value={values[f.id]}\n update={!!initialValues}\n onChangeValue={setKeyValue}\n />\n ))}\n <Grid item xs={12}>\n <Button type=\"submit\" variant=\"contained\" size={dense ? \"small\" : \"medium\"}>\n {saveButtonText}\n </Button>\n </Grid>\n </Grid>\n );\n};\n","import { useEffect, useRef } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\n\nexport interface NavigateWhenValueChangesOptions<T> {\n from: T;\n to: T;\n}\n\nexport const useNavigateWhenValueChanges = <T>(\n path: string,\n value: T | undefined,\n { from, to }: NavigateWhenValueChangesOptions<T>,\n) => {\n const prevRef = useRef<T>();\n const navigate = useNavigate();\n\n useEffect(() => {\n if (prevRef.current === from && value === to) {\n navigate(path);\n }\n prevRef.current = value;\n }, [value]);\n};\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Box from \"@mui/material/Box\";\n\n/**\n * Displays a centered loading indicator\n */\nexport const LoadingArea = () => {\n return (\n <Box width={1} height={1} display=\"flex\" justifyContent=\"center\" alignItems=\"center\">\n <CircularProgress />\n </Box>\n );\n};\n","import { createContext, Dispatch, SetStateAction, useContext } from \"react\";\n\nexport const TabContext = createContext<[number, Dispatch<SetStateAction<number>>]>([\n 0,\n () => null,\n]);\nexport const TabContextProvider = TabContext.Provider;\nexport const useTab = () => useContext(TabContext);\n","import { PropsWithChildren, useState } from \"react\";\nimport { TabContextProvider } from \"./tab-provider.context\";\n\ntype TabProviderProps = PropsWithChildren<{\n initialValue?: number;\n}>;\n\nexport const TabProvider = ({ children, initialValue = 0 }: TabProviderProps) => {\n const tabState = useState(initialValue);\n\n return <TabContextProvider value={tabState}>{children}</TabContextProvider>;\n};\n","import { ReactElement } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport Typography from \"@mui/material/Typography\";\nimport Button from \"@mui/material/Button\";\n\ntype IconColor =\n | \"inherit\"\n | \"action\"\n | \"disabled\"\n | \"primary\"\n | \"secondary\"\n | \"error\"\n | \"info\"\n | \"success\"\n | \"warning\";\n\nexport interface PlaceholderAction {\n id: string;\n text: string;\n href?: string;\n onClick?: () => void;\n}\n\nexport interface PlaceholderIconArgs {\n size: number;\n color: IconColor;\n}\n\nexport type PlaceholderIcon = ({ size, color }: PlaceholderIconArgs) => ReactElement;\n\nexport interface PlaceholderProps {\n title: string;\n subtitle: string;\n iconSize?: number;\n icon?: PlaceholderIcon;\n actions?: PlaceholderAction[];\n}\n\nexport const Placeholder = ({\n title,\n subtitle,\n icon,\n iconSize = 200,\n actions,\n}: PlaceholderProps) => {\n return (\n <Box\n display=\"flex\"\n flexDirection=\"column\"\n justifyContent=\"center\"\n alignItems=\"center\"\n textAlign=\"center\"\n >\n {icon && icon({ size: iconSize, color: \"primary\" })}\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {title}\n </Typography>\n <Typography variant=\"subtitle1\" role=\"heading\" aria-level={2} sx={{ mt: 2 }}>\n {subtitle}\n </Typography>\n {actions && (\n <Box sx={{ pt: 2 }}>\n {actions.map(({ id, text, href, onClick }, index) => (\n <Button\n key={id}\n role=\"button\"\n variant=\"contained\"\n href={href}\n onClick={onClick}\n sx={{ mr: index < actions.length - 1 ? 2 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n );\n};\n","import Box from \"@mui/material/Box\";\nimport LinearProgress from \"@mui/material/LinearProgress\";\nimport { LoadingArea } from \"../loading-area\";\nimport { TabProvider } from \"../tab-provider\";\nimport ReportProblemIcon from \"@mui/icons-material/ReportProblem\";\nimport { Placeholder, PlaceholderIcon } from \"../placeholder\";\nimport { HeaderElement } from \"../header\";\nimport { ContentElement } from \"../content\";\n\nexport interface HeaderLayoutError {\n icon?: PlaceholderIcon;\n title?: string;\n message: string;\n}\n\nexport interface HeaderLayoutProps {\n loading?: boolean;\n fetching?: boolean;\n error?: HeaderLayoutError;\n children: [HeaderElement, ContentElement];\n}\n\nconst DefaultErrorIcon = () => <ReportProblemIcon color=\"error\" sx={{ width: 200, height: 200 }} />;\n\nexport const HeaderLayout = ({ loading, children, fetching, error }: HeaderLayoutProps) => {\n const [headerElement, contentElement] = children;\n\n return (\n <TabProvider>\n <Box display=\"flex\" flexDirection=\"column\" height={1}>\n {headerElement}\n {fetching && (\n <Box width={1}>\n <LinearProgress />\n </Box>\n )}\n {loading && <LoadingArea />}\n {error && (\n <Box mt={4}>\n <Placeholder\n icon={error.icon || DefaultErrorIcon}\n title={error.title || \"There has been an error\"}\n subtitle={error.message}\n />\n </Box>\n )}\n {!loading && !error && contentElement}\n </Box>\n </TabProvider>\n );\n};\n","import { AlertColor } from \"@mui/material/Alert\";\nimport { createContext, useContext } from \"react\";\n\nexport const NotificationCenterProviderUndefinedError = new Error(\n \"NotificationCenterContext.Provider is required and was undefined\",\n);\n\nexport interface Notification {\n severity: AlertColor;\n title?: string;\n message: string;\n}\n\nexport interface NotificationCenterProps {\n show(notification: Notification): void;\n hide(): void;\n}\n\nexport const NotificationCenterContext = createContext<NotificationCenterProps | undefined>(\n undefined,\n);\n\nexport const useNotificationCenter = () => {\n const context = useContext(NotificationCenterContext);\n\n if (context === undefined) {\n throw NotificationCenterProviderUndefinedError;\n }\n\n return context;\n};\n","import { useEffect, useRef } from \"react\";\nimport { useNotificationCenter, Notification } from \"./notification-center.context\";\n\nexport interface NotifyWhenValueChangesOptions<T> {\n from: T;\n to: T;\n}\n\nexport const useNotifyWhenValueChanges = <T>(\n notification: Notification,\n value: T | undefined,\n { from, to }: NotifyWhenValueChangesOptions<T>,\n) => {\n const prevRef = useRef<T>();\n const { show } = useNotificationCenter();\n\n useEffect(() => {\n if (prevRef.current === from && value === to) {\n show(notification);\n }\n prevRef.current = value;\n }, [value]);\n};\n","import { Link as RouterLink, LinkProps as RouterLinkProps } from \"react-router-dom\";\nimport { forwardRef } from \"react\";\nimport MuiLink, { LinkProps } from \"@mui/material/Link\";\n\n/* eslint-disable react/display-name, @typescript-eslint/no-explicit-any */\nexport const LinkBehaviour = forwardRef<\n any,\n Omit<RouterLinkProps, \"to\"> & { href: RouterLinkProps[\"to\"] }\n>((props, ref) => {\n const { href, ...other } = props;\n return <RouterLink ref={ref} to={href} {...other} />;\n});\n\nexport const Link = forwardRef<any, LinkProps>((props, _1) => {\n return <MuiLink {...(props as any)} component={LinkBehaviour} />;\n});\n","import CircularProgress from \"@mui/material/CircularProgress\";\nimport Typography from \"@mui/material/Typography\";\nimport { useTheme } from \"@mui/material/styles\";\nimport { PropsWithChildren } from \"react\";\n\nexport type HeaderTitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderTitle = ({ loading, children }: HeaderTitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress color=\"inherit\" size={typography.h4.fontSize} aria-label=\"title loading\" />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"h4\" role=\"heading\" aria-level={1}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n\nexport type HeaderSubtitleProps = PropsWithChildren<{ loading?: boolean }>;\n\nexport const HeaderSubtitle = ({ loading, children }: HeaderSubtitleProps) => {\n const { typography } = useTheme();\n\n if (loading) {\n return (\n <CircularProgress\n color=\"inherit\"\n size={typography.body1.fontSize}\n aria-label=\"subtitle loading\"\n />\n );\n }\n\n if (typeof children === \"string\") {\n return (\n <Typography variant=\"body1\" role=\"heading\" aria-level={2}>\n {children}\n </Typography>\n );\n }\n\n return <>{children}</>;\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Breadcrumbs from \"@mui/material/Breadcrumbs\";\nimport Container from \"@mui/material/Container\";\nimport Box from \"@mui/material/Box\";\nimport Tabs from \"@mui/material/Tabs\";\nimport Tab from \"@mui/material/Tab\";\nimport Button from \"@mui/material/Button\";\nimport { Link } from \"../link\";\nimport { useGetDefaultThemeColor } from \"../utils\";\nimport { HeaderComponent, HeaderPreset, HeaderProps } from \"./header.types\";\nimport { useTab } from \"../tab-provider\";\nimport { useLocation } from \"react-router-dom\";\nimport { HeaderSubtitle, HeaderTitle } from \"./header-title\";\n\n/**\n * Section used to explain give basic information about the page\n * and put the main actions\n */\nexport const Header: HeaderComponent = ({\n title = \"\",\n loadingTitle,\n subtitle,\n loadingSubtitle,\n preset = \"default\",\n actionsVariant = \"outlined\",\n breadcrumbs,\n actions,\n tabs,\n tabsMode = \"panel\",\n navigationButton,\n}: HeaderProps) => {\n const location = useLocation();\n const { palette } = useTheme();\n const defaultColor = useGetDefaultThemeColor();\n const [selectedTab, setSelectedTab] = useTab();\n\n const bgColorPresets: Record<HeaderPreset, string> = {\n default: defaultColor,\n primary: palette.primary.main,\n secondary: palette.secondary.main,\n inherit: \"inherit\",\n transparent: \"transparent\",\n };\n const bgColor = bgColorPresets[preset];\n const textColorPresets: Record<HeaderPreset, string> = {\n default: palette.getContrastText(bgColorPresets.default),\n primary: palette.primary.contrastText,\n secondary: palette.secondary.contrastText,\n inherit: \"inherit\",\n transparent: palette.text.primary,\n };\n const textColor = textColorPresets[preset];\n\n const modedSelectedTab =\n tabsMode === \"panel\" ? selectedTab : tabs?.findIndex((tab) => tab.href === location.pathname);\n\n return (\n <Box bgcolor={bgColor} color={textColor}>\n <Container>\n <Box sx={{ py: 3, display: \"flex\", flexDirection: \"row\", justifyContent: \"space-between\" }}>\n <Box>\n {navigationButton && (\n <Button\n href={navigationButton.href}\n size=\"small\"\n color=\"inherit\"\n LinkComponent={Link}\n startIcon={navigationButton.icon}\n sx={{ mb: 1 }}\n >\n {navigationButton.text}\n </Button>\n )}\n {breadcrumbs?.length && (\n <Breadcrumbs\n color=\"inherit\"\n separator=\"›\"\n aria-label=\"breadcrumb\"\n sx={{ marginTop: 1 }}\n >\n {breadcrumbs.map(({ id, link, text }) => (\n <Link\n key={id}\n underline=\"hover\"\n color=\"inherit\"\n href={link}\n variant=\"body2\"\n role=\"link\"\n >\n {text}\n </Link>\n ))}\n </Breadcrumbs>\n )}\n <HeaderTitle loading={loadingTitle}>{title}</HeaderTitle>\n {(subtitle || loadingSubtitle) && (\n <HeaderSubtitle loading={loadingSubtitle}>{subtitle}</HeaderSubtitle>\n )}\n </Box>\n {actions && (\n <Box>\n {actions.map(({ disabled, id, href, onClick, text }, i) => (\n <Button\n component={href ? Link : \"button\"}\n role=\"button\"\n color=\"inherit\"\n disabled={disabled}\n key={id}\n variant={actionsVariant}\n size=\"small\"\n href={href}\n onClick={onClick}\n sx={{ mr: i != actions.length - 1 ? 1 : 0 }}\n >\n {text}\n </Button>\n ))}\n </Box>\n )}\n </Box>\n {tabs && (\n <Tabs\n value={modedSelectedTab}\n textColor=\"inherit\"\n onChange={tabsMode === \"panel\" ? (_, index) => setSelectedTab(index) : undefined}\n >\n {tabs.map(({ id, label, disabled, href }) => {\n const tabProps = { label, disabled };\n if (tabsMode === \"panel\") {\n return <Tab key={id} {...tabProps} />;\n } else {\n return <Tab key={id} {...tabProps} component={Link} href={href} />;\n }\n })}\n </Tabs>\n )}\n </Container>\n </Box>\n );\n};\n","import Container from \"@mui/material/Container\";\nimport { ContentProps } from \"./content.types\";\n\nexport const Content = ({ children }: ContentProps) => {\n return (\n <Container component=\"main\" sx={{ py: 3, flexGrow: 1 }}>\n {children}\n </Container>\n );\n};\n","import { useEffect } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { BasicModelInstance } from \"../../generators\";\nimport { ModelForm } from \"../../model-form\";\nimport { useNavigateWhenValueChanges } from \"../../hooks\";\nimport { HeaderLayout } from \"../../header-layout\";\nimport { useNotifyWhenValueChanges } from \"../../notification-center\";\nimport { RequestState } from \"../../model-router\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { Header } from \"../../header\";\nimport { Content } from \"../../content\";\n\nexport interface UpdateScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed when the user wants to update\n * an item\n */\n onSubmitUpdateItem: (obj: T) => void;\n /**\n * Current status of the request to update an item\n */\n submitUpdateItemRequest: RequestState;\n\n /**\n * Current status of the request to retrieve\n * the item to be updated\n */\n updateItemRequest: RequestState;\n\n /**\n * Callback executed to retrive the item that\n * has to going tobe updated\n */\n onRequestUpdateItem: (id: string) => void;\n\n /**\n * Item that is going to be updated\n */\n updateItem?: T;\n}\n\nexport const UpdateScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n basePath = \"\",\n submitUpdateItemRequest,\n updateItemRequest,\n updateItem,\n onSubmitUpdateItem,\n onRequestUpdateItem,\n}: UpdateScreenProps<T>) => {\n const { id = \"\" } = useParams();\n const loading = updateItemRequest.loading || submitUpdateItemRequest.loading;\n\n useEffect(() => {\n onRequestUpdateItem(id);\n }, [id]);\n\n useNotifyWhenValueChanges(\n {\n title: \"Item updated\",\n message: `The item ${id} has been updated successfully`,\n severity: \"success\",\n },\n !!submitUpdateItemRequest.success,\n { from: false, to: true },\n );\n useNavigateWhenValueChanges(`${basePath}/`, !!submitUpdateItemRequest.success, {\n from: false,\n to: true,\n });\n useNotifyWhenValueChanges(\n { title: \"We had an error\", message: submitUpdateItemRequest.error || \"\", severity: \"error\" },\n !!submitUpdateItemRequest.error,\n { from: false, to: true },\n );\n\n return (\n <HeaderLayout loading={loading}>\n <Header\n title={`Edit ${id}`}\n preset=\"default\"\n breadcrumbs={[\n {\n id: \"list\",\n text: modelName,\n link: `${basePath}/`,\n },\n {\n id: \"update\",\n text: `Edit ${id}`,\n link: `${basePath}/${id}/update`,\n },\n ]}\n />\n <Content>\n <ModelForm\n model={model}\n initialValues={updateItem}\n saveButtonText=\"Save\"\n onSubmit={onSubmitUpdateItem}\n />\n </Content>\n </HeaderLayout>\n );\n};\n","export default function chainPropTypes(propType1, propType2) {\n if (process.env.NODE_ENV === 'production') {\n return () => null;\n }\n return function validate(...args) {\n return propType1(...args) || propType2(...args);\n };\n}","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/** @license React v16.13.1\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';var b=\"function\"===typeof Symbol&&Symbol.for,c=b?Symbol.for(\"react.element\"):60103,d=b?Symbol.for(\"react.portal\"):60106,e=b?Symbol.for(\"react.fragment\"):60107,f=b?Symbol.for(\"react.strict_mode\"):60108,g=b?Symbol.for(\"react.profiler\"):60114,h=b?Symbol.for(\"react.provider\"):60109,k=b?Symbol.for(\"react.context\"):60110,l=b?Symbol.for(\"react.async_mode\"):60111,m=b?Symbol.for(\"react.concurrent_mode\"):60111,n=b?Symbol.for(\"react.forward_ref\"):60112,p=b?Symbol.for(\"react.suspense\"):60113,q=b?\nSymbol.for(\"react.suspense_list\"):60120,r=b?Symbol.for(\"react.memo\"):60115,t=b?Symbol.for(\"react.lazy\"):60116,v=b?Symbol.for(\"react.block\"):60121,w=b?Symbol.for(\"react.fundamental\"):60117,x=b?Symbol.for(\"react.responder\"):60118,y=b?Symbol.for(\"react.scope\"):60119;\nfunction z(a){if(\"object\"===typeof a&&null!==a){var u=a.$$typeof;switch(u){case c:switch(a=a.type,a){case l:case m:case e:case g:case f:case p:return a;default:switch(a=a&&a.$$typeof,a){case k:case n:case t:case r:case h:return a;default:return u}}case d:return u}}}function A(a){return z(a)===m}exports.AsyncMode=l;exports.ConcurrentMode=m;exports.ContextConsumer=k;exports.ContextProvider=h;exports.Element=c;exports.ForwardRef=n;exports.Fragment=e;exports.Lazy=t;exports.Memo=r;exports.Portal=d;\nexports.Profiler=g;exports.StrictMode=f;exports.Suspense=p;exports.isAsyncMode=function(a){return A(a)||z(a)===l};exports.isConcurrentMode=A;exports.isContextConsumer=function(a){return z(a)===k};exports.isContextProvider=function(a){return z(a)===h};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===c};exports.isForwardRef=function(a){return z(a)===n};exports.isFragment=function(a){return z(a)===e};exports.isLazy=function(a){return z(a)===t};\nexports.isMemo=function(a){return z(a)===r};exports.isPortal=function(a){return z(a)===d};exports.isProfiler=function(a){return z(a)===g};exports.isStrictMode=function(a){return z(a)===f};exports.isSuspense=function(a){return z(a)===p};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===e||a===m||a===g||a===f||a===p||a===q||\"object\"===typeof a&&null!==a&&(a.$$typeof===t||a.$$typeof===r||a.$$typeof===h||a.$$typeof===k||a.$$typeof===n||a.$$typeof===w||a.$$typeof===x||a.$$typeof===y||a.$$typeof===v)};exports.typeOf=z;\n","/** @license React v16.13.1\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\n\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// The Symbol used to tag the ReactElement-like types. If there is no native Symbol\n// nor polyfill, then a plain number is used for performance.\nvar hasSymbol = typeof Symbol === 'function' && Symbol.for;\nvar REACT_ELEMENT_TYPE = hasSymbol ? Symbol.for('react.element') : 0xeac7;\nvar REACT_PORTAL_TYPE = hasSymbol ? Symbol.for('react.portal') : 0xeaca;\nvar REACT_FRAGMENT_TYPE = hasSymbol ? Symbol.for('react.fragment') : 0xeacb;\nvar REACT_STRICT_MODE_TYPE = hasSymbol ? Symbol.for('react.strict_mode') : 0xeacc;\nvar REACT_PROFILER_TYPE = hasSymbol ? Symbol.for('react.profiler') : 0xead2;\nvar REACT_PROVIDER_TYPE = hasSymbol ? Symbol.for('react.provider') : 0xeacd;\nvar REACT_CONTEXT_TYPE = hasSymbol ? Symbol.for('react.context') : 0xeace; // TODO: We don't use AsyncMode or ConcurrentMode anymore. They were temporary\n// (unstable) APIs that have been removed. Can we remove the symbols?\n\nvar REACT_ASYNC_MODE_TYPE = hasSymbol ? Symbol.for('react.async_mode') : 0xeacf;\nvar REACT_CONCURRENT_MODE_TYPE = hasSymbol ? Symbol.for('react.concurrent_mode') : 0xeacf;\nvar REACT_FORWARD_REF_TYPE = hasSymbol ? Symbol.for('react.forward_ref') : 0xead0;\nvar REACT_SUSPENSE_TYPE = hasSymbol ? Symbol.for('react.suspense') : 0xead1;\nvar REACT_SUSPENSE_LIST_TYPE = hasSymbol ? Symbol.for('react.suspense_list') : 0xead8;\nvar REACT_MEMO_TYPE = hasSymbol ? Symbol.for('react.memo') : 0xead3;\nvar REACT_LAZY_TYPE = hasSymbol ? Symbol.for('react.lazy') : 0xead4;\nvar REACT_BLOCK_TYPE = hasSymbol ? Symbol.for('react.block') : 0xead9;\nvar REACT_FUNDAMENTAL_TYPE = hasSymbol ? Symbol.for('react.fundamental') : 0xead5;\nvar REACT_RESPONDER_TYPE = hasSymbol ? Symbol.for('react.responder') : 0xead6;\nvar REACT_SCOPE_TYPE = hasSymbol ? Symbol.for('react.scope') : 0xead7;\n\nfunction isValidElementType(type) {\n return typeof type === 'string' || typeof type === 'function' || // Note: its typeof might be other than 'symbol' or 'number' if it's a polyfill.\n type === REACT_FRAGMENT_TYPE || type === REACT_CONCURRENT_MODE_TYPE || type === REACT_PROFILER_TYPE || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || typeof type === 'object' && type !== null && (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || type.$$typeof === REACT_FUNDAMENTAL_TYPE || type.$$typeof === REACT_RESPONDER_TYPE || type.$$typeof === REACT_SCOPE_TYPE || type.$$typeof === REACT_BLOCK_TYPE);\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_ASYNC_MODE_TYPE:\n case REACT_CONCURRENT_MODE_TYPE:\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n} // AsyncMode is deprecated along with isAsyncMode\n\nvar AsyncMode = REACT_ASYNC_MODE_TYPE;\nvar ConcurrentMode = REACT_CONCURRENT_MODE_TYPE;\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 17+. Update your code to use ' + 'ReactIs.isConcurrentMode() instead. It has the exact same API.');\n }\n }\n\n return isConcurrentMode(object) || typeOf(object) === REACT_ASYNC_MODE_TYPE;\n}\nfunction isConcurrentMode(object) {\n return typeOf(object) === REACT_CONCURRENT_MODE_TYPE;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\n\nexports.AsyncMode = AsyncMode;\nexports.ConcurrentMode = ConcurrentMode;\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/*\nobject-assign\n(c) Sindre Sorhus\n@license MIT\n*/\n\n'use strict';\n/* eslint-disable no-unused-vars */\nvar getOwnPropertySymbols = Object.getOwnPropertySymbols;\nvar hasOwnProperty = Object.prototype.hasOwnProperty;\nvar propIsEnumerable = Object.prototype.propertyIsEnumerable;\n\nfunction toObject(val) {\n\tif (val === null || val === undefined) {\n\t\tthrow new TypeError('Object.assign cannot be called with null or undefined');\n\t}\n\n\treturn Object(val);\n}\n\nfunction shouldUseNative() {\n\ttry {\n\t\tif (!Object.assign) {\n\t\t\treturn false;\n\t\t}\n\n\t\t// Detect buggy property enumeration order in older V8 versions.\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=4118\n\t\tvar test1 = new String('abc'); // eslint-disable-line no-new-wrappers\n\t\ttest1[5] = 'de';\n\t\tif (Object.getOwnPropertyNames(test1)[0] === '5') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test2 = {};\n\t\tfor (var i = 0; i < 10; i++) {\n\t\t\ttest2['_' + String.fromCharCode(i)] = i;\n\t\t}\n\t\tvar order2 = Object.getOwnPropertyNames(test2).map(function (n) {\n\t\t\treturn test2[n];\n\t\t});\n\t\tif (order2.join('') !== '0123456789') {\n\t\t\treturn false;\n\t\t}\n\n\t\t// https://bugs.chromium.org/p/v8/issues/detail?id=3056\n\t\tvar test3 = {};\n\t\t'abcdefghijklmnopqrst'.split('').forEach(function (letter) {\n\t\t\ttest3[letter] = letter;\n\t\t});\n\t\tif (Object.keys(Object.assign({}, test3)).join('') !==\n\t\t\t\t'abcdefghijklmnopqrst') {\n\t\t\treturn false;\n\t\t}\n\n\t\treturn true;\n\t} catch (err) {\n\t\t// We don't expect any of the above to throw, but better to be safe.\n\t\treturn false;\n\t}\n}\n\nmodule.exports = shouldUseNative() ? Object.assign : function (target, source) {\n\tvar from;\n\tvar to = toObject(target);\n\tvar symbols;\n\n\tfor (var s = 1; s < arguments.length; s++) {\n\t\tfrom = Object(arguments[s]);\n\n\t\tfor (var key in from) {\n\t\t\tif (hasOwnProperty.call(from, key)) {\n\t\t\t\tto[key] = from[key];\n\t\t\t}\n\t\t}\n\n\t\tif (getOwnPropertySymbols) {\n\t\t\tsymbols = getOwnPropertySymbols(from);\n\t\t\tfor (var i = 0; i < symbols.length; i++) {\n\t\t\t\tif (propIsEnumerable.call(from, symbols[i])) {\n\t\t\t\t\tto[symbols[i]] = from[symbols[i]];\n\t\t\t\t}\n\t\t\t}\n\t\t}\n\t}\n\n\treturn to;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = 'SECRET_DO_NOT_PASS_THIS_OR_YOU_WILL_BE_FIRED';\n\nmodule.exports = ReactPropTypesSecret;\n","module.exports = Function.call.bind(Object.prototype.hasOwnProperty);\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactIs = require('react-is');\n\n // By explicitly using `prop-types` you are opting into new development behavior.\n // http://fb.me/prop-types-in-prod\n var throwOnDirectAccess = true;\n module.exports = require('./factoryWithTypeCheckers')(ReactIs.isElement, throwOnDirectAccess);\n} else {\n // By explicitly using `prop-types` you are opting into new production behavior.\n // http://fb.me/prop-types-in-prod\n module.exports = require('./factoryWithThrowingShims')();\n}\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactIs = require('react-is');\nvar assign = require('object-assign');\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\nvar has = require('./lib/has');\nvar checkPropTypes = require('./checkPropTypes');\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) {}\n };\n}\n\nfunction emptyFunctionThatReturnsNull() {\n return null;\n}\n\nmodule.exports = function(isValidElement, throwOnDirectAccess) {\n /* global Symbol */\n var ITERATOR_SYMBOL = typeof Symbol === 'function' && Symbol.iterator;\n var FAUX_ITERATOR_SYMBOL = '@@iterator'; // Before Symbol spec.\n\n /**\n * Returns the iterator method function contained on the iterable object.\n *\n * Be sure to invoke the function with the iterable as context:\n *\n * var iteratorFn = getIteratorFn(myIterable);\n * if (iteratorFn) {\n * var iterator = iteratorFn.call(myIterable);\n * ...\n * }\n *\n * @param {?object} maybeIterable\n * @return {?function}\n */\n function getIteratorFn(maybeIterable) {\n var iteratorFn = maybeIterable && (ITERATOR_SYMBOL && maybeIterable[ITERATOR_SYMBOL] || maybeIterable[FAUX_ITERATOR_SYMBOL]);\n if (typeof iteratorFn === 'function') {\n return iteratorFn;\n }\n }\n\n /**\n * Collection of methods that allow declaration and validation of props that are\n * supplied to React components. Example usage:\n *\n * var Props = require('ReactPropTypes');\n * var MyArticle = React.createClass({\n * propTypes: {\n * // An optional string prop named \"description\".\n * description: Props.string,\n *\n * // A required enum prop named \"category\".\n * category: Props.oneOf(['News','Photos']).isRequired,\n *\n * // A prop named \"dialog\" that requires an instance of Dialog.\n * dialog: Props.instanceOf(Dialog).isRequired\n * },\n * render: function() { ... }\n * });\n *\n * A more formal specification of how these methods are used:\n *\n * type := array|bool|func|object|number|string|oneOf([...])|instanceOf(...)\n * decl := ReactPropTypes.{type}(.isRequired)?\n *\n * Each and every declaration produces a function with the same signature. This\n * allows the creation of custom validation functions. For example:\n *\n * var MyLink = React.createClass({\n * propTypes: {\n * // An optional string or URI prop named \"href\".\n * href: function(props, propName, componentName) {\n * var propValue = props[propName];\n * if (propValue != null && typeof propValue !== 'string' &&\n * !(propValue instanceof URI)) {\n * return new Error(\n * 'Expected a string or an URI for ' + propName + ' in ' +\n * componentName\n * );\n * }\n * }\n * },\n * render: function() {...}\n * });\n *\n * @internal\n */\n\n var ANONYMOUS = '<<anonymous>>';\n\n // Important!\n // Keep this list in sync with production version in `./factoryWithThrowingShims.js`.\n var ReactPropTypes = {\n array: createPrimitiveTypeChecker('array'),\n bigint: createPrimitiveTypeChecker('bigint'),\n bool: createPrimitiveTypeChecker('boolean'),\n func: createPrimitiveTypeChecker('function'),\n number: createPrimitiveTypeChecker('number'),\n object: createPrimitiveTypeChecker('object'),\n string: createPrimitiveTypeChecker('string'),\n symbol: createPrimitiveTypeChecker('symbol'),\n\n any: createAnyTypeChecker(),\n arrayOf: createArrayOfTypeChecker,\n element: createElementTypeChecker(),\n elementType: createElementTypeTypeChecker(),\n instanceOf: createInstanceTypeChecker,\n node: createNodeChecker(),\n objectOf: createObjectOfTypeChecker,\n oneOf: createEnumTypeChecker,\n oneOfType: createUnionTypeChecker,\n shape: createShapeTypeChecker,\n exact: createStrictShapeTypeChecker,\n };\n\n /**\n * inlined Object.is polyfill to avoid requiring consumers ship their own\n * https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Object/is\n */\n /*eslint-disable no-self-compare*/\n function is(x, y) {\n // SameValue algorithm\n if (x === y) {\n // Steps 1-5, 7-10\n // Steps 6.b-6.e: +0 != -0\n return x !== 0 || 1 / x === 1 / y;\n } else {\n // Step 6.a: NaN == NaN\n return x !== x && y !== y;\n }\n }\n /*eslint-enable no-self-compare*/\n\n /**\n * We use an Error-like object for backward compatibility as people may call\n * PropTypes directly and inspect their output. However, we don't use real\n * Errors anymore. We don't inspect their stack anyway, and creating them\n * is prohibitively expensive if they are created too often, such as what\n * happens in oneOfType() for any type before the one that matched.\n */\n function PropTypeError(message, data) {\n this.message = message;\n this.data = data && typeof data === 'object' ? data: {};\n this.stack = '';\n }\n // Make `instanceof Error` still work for returned errors.\n PropTypeError.prototype = Error.prototype;\n\n function createChainableTypeChecker(validate) {\n if (process.env.NODE_ENV !== 'production') {\n var manualPropTypeCallCache = {};\n var manualPropTypeWarningCount = 0;\n }\n function checkType(isRequired, props, propName, componentName, location, propFullName, secret) {\n componentName = componentName || ANONYMOUS;\n propFullName = propFullName || propName;\n\n if (secret !== ReactPropTypesSecret) {\n if (throwOnDirectAccess) {\n // New behavior only for users of `prop-types` package\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use `PropTypes.checkPropTypes()` to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n } else if (process.env.NODE_ENV !== 'production' && typeof console !== 'undefined') {\n // Old behavior for people using React.PropTypes\n var cacheKey = componentName + ':' + propName;\n if (\n !manualPropTypeCallCache[cacheKey] &&\n // Avoid spamming the console because they are often not actionable except for lib authors\n manualPropTypeWarningCount < 3\n ) {\n printWarning(\n 'You are manually calling a React.PropTypes validation ' +\n 'function for the `' + propFullName + '` prop on `' + componentName + '`. This is deprecated ' +\n 'and will throw in the standalone `prop-types` package. ' +\n 'You may be seeing this warning due to a third-party PropTypes ' +\n 'library. See https://fb.me/react-warning-dont-call-proptypes ' + 'for details.'\n );\n manualPropTypeCallCache[cacheKey] = true;\n manualPropTypeWarningCount++;\n }\n }\n }\n if (props[propName] == null) {\n if (isRequired) {\n if (props[propName] === null) {\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required ' + ('in `' + componentName + '`, but its value is `null`.'));\n }\n return new PropTypeError('The ' + location + ' `' + propFullName + '` is marked as required in ' + ('`' + componentName + '`, but its value is `undefined`.'));\n }\n return null;\n } else {\n return validate(props, propName, componentName, location, propFullName);\n }\n }\n\n var chainedCheckType = checkType.bind(null, false);\n chainedCheckType.isRequired = checkType.bind(null, true);\n\n return chainedCheckType;\n }\n\n function createPrimitiveTypeChecker(expectedType) {\n function validate(props, propName, componentName, location, propFullName, secret) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== expectedType) {\n // `propValue` being instance of, say, date/regexp, pass the 'object'\n // check, but we can offer a more precise error message here rather than\n // 'of type `object`'.\n var preciseType = getPreciseType(propValue);\n\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + preciseType + '` supplied to `' + componentName + '`, expected ') + ('`' + expectedType + '`.'),\n {expectedType: expectedType}\n );\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createAnyTypeChecker() {\n return createChainableTypeChecker(emptyFunctionThatReturnsNull);\n }\n\n function createArrayOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside arrayOf.');\n }\n var propValue = props[propName];\n if (!Array.isArray(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an array.'));\n }\n for (var i = 0; i < propValue.length; i++) {\n var error = typeChecker(propValue, i, componentName, location, propFullName + '[' + i + ']', ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!isValidElement(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createElementTypeTypeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n if (!ReactIs.isValidElementType(propValue)) {\n var propType = getPropType(propValue);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected a single ReactElement type.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createInstanceTypeChecker(expectedClass) {\n function validate(props, propName, componentName, location, propFullName) {\n if (!(props[propName] instanceof expectedClass)) {\n var expectedClassName = expectedClass.name || ANONYMOUS;\n var actualClassName = getClassName(props[propName]);\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + actualClassName + '` supplied to `' + componentName + '`, expected ') + ('instance of `' + expectedClassName + '`.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createEnumTypeChecker(expectedValues) {\n if (!Array.isArray(expectedValues)) {\n if (process.env.NODE_ENV !== 'production') {\n if (arguments.length > 1) {\n printWarning(\n 'Invalid arguments supplied to oneOf, expected an array, got ' + arguments.length + ' arguments. ' +\n 'A common mistake is to write oneOf(x, y, z) instead of oneOf([x, y, z]).'\n );\n } else {\n printWarning('Invalid argument supplied to oneOf, expected an array.');\n }\n }\n return emptyFunctionThatReturnsNull;\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n for (var i = 0; i < expectedValues.length; i++) {\n if (is(propValue, expectedValues[i])) {\n return null;\n }\n }\n\n var valuesString = JSON.stringify(expectedValues, function replacer(key, value) {\n var type = getPreciseType(value);\n if (type === 'symbol') {\n return String(value);\n }\n return value;\n });\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of value `' + String(propValue) + '` ' + ('supplied to `' + componentName + '`, expected one of ' + valuesString + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createObjectOfTypeChecker(typeChecker) {\n function validate(props, propName, componentName, location, propFullName) {\n if (typeof typeChecker !== 'function') {\n return new PropTypeError('Property `' + propFullName + '` of component `' + componentName + '` has invalid PropType notation inside objectOf.');\n }\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type ' + ('`' + propType + '` supplied to `' + componentName + '`, expected an object.'));\n }\n for (var key in propValue) {\n if (has(propValue, key)) {\n var error = typeChecker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error instanceof Error) {\n return error;\n }\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createUnionTypeChecker(arrayOfTypeCheckers) {\n if (!Array.isArray(arrayOfTypeCheckers)) {\n process.env.NODE_ENV !== 'production' ? printWarning('Invalid argument supplied to oneOfType, expected an instance of array.') : void 0;\n return emptyFunctionThatReturnsNull;\n }\n\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n if (typeof checker !== 'function') {\n printWarning(\n 'Invalid argument supplied to oneOfType. Expected an array of check functions, but ' +\n 'received ' + getPostfixForTypeWarning(checker) + ' at index ' + i + '.'\n );\n return emptyFunctionThatReturnsNull;\n }\n }\n\n function validate(props, propName, componentName, location, propFullName) {\n var expectedTypes = [];\n for (var i = 0; i < arrayOfTypeCheckers.length; i++) {\n var checker = arrayOfTypeCheckers[i];\n var checkerResult = checker(props, propName, componentName, location, propFullName, ReactPropTypesSecret);\n if (checkerResult == null) {\n return null;\n }\n if (checkerResult.data && has(checkerResult.data, 'expectedType')) {\n expectedTypes.push(checkerResult.data.expectedType);\n }\n }\n var expectedTypesMessage = (expectedTypes.length > 0) ? ', expected one of type [' + expectedTypes.join(', ') + ']': '';\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`' + expectedTypesMessage + '.'));\n }\n return createChainableTypeChecker(validate);\n }\n\n function createNodeChecker() {\n function validate(props, propName, componentName, location, propFullName) {\n if (!isNode(props[propName])) {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` supplied to ' + ('`' + componentName + '`, expected a ReactNode.'));\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function invalidValidatorError(componentName, location, propFullName, key, type) {\n return new PropTypeError(\n (componentName || 'React class') + ': ' + location + ' type `' + propFullName + '.' + key + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + type + '`.'\n );\n }\n\n function createShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n for (var key in shapeTypes) {\n var checker = shapeTypes[key];\n if (typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n return createChainableTypeChecker(validate);\n }\n\n function createStrictShapeTypeChecker(shapeTypes) {\n function validate(props, propName, componentName, location, propFullName) {\n var propValue = props[propName];\n var propType = getPropType(propValue);\n if (propType !== 'object') {\n return new PropTypeError('Invalid ' + location + ' `' + propFullName + '` of type `' + propType + '` ' + ('supplied to `' + componentName + '`, expected `object`.'));\n }\n // We need to check all keys in case some are required but missing from props.\n var allKeys = assign({}, props[propName], shapeTypes);\n for (var key in allKeys) {\n var checker = shapeTypes[key];\n if (has(shapeTypes, key) && typeof checker !== 'function') {\n return invalidValidatorError(componentName, location, propFullName, key, getPreciseType(checker));\n }\n if (!checker) {\n return new PropTypeError(\n 'Invalid ' + location + ' `' + propFullName + '` key `' + key + '` supplied to `' + componentName + '`.' +\n '\\nBad object: ' + JSON.stringify(props[propName], null, ' ') +\n '\\nValid keys: ' + JSON.stringify(Object.keys(shapeTypes), null, ' ')\n );\n }\n var error = checker(propValue, key, componentName, location, propFullName + '.' + key, ReactPropTypesSecret);\n if (error) {\n return error;\n }\n }\n return null;\n }\n\n return createChainableTypeChecker(validate);\n }\n\n function isNode(propValue) {\n switch (typeof propValue) {\n case 'number':\n case 'string':\n case 'undefined':\n return true;\n case 'boolean':\n return !propValue;\n case 'object':\n if (Array.isArray(propValue)) {\n return propValue.every(isNode);\n }\n if (propValue === null || isValidElement(propValue)) {\n return true;\n }\n\n var iteratorFn = getIteratorFn(propValue);\n if (iteratorFn) {\n var iterator = iteratorFn.call(propValue);\n var step;\n if (iteratorFn !== propValue.entries) {\n while (!(step = iterator.next()).done) {\n if (!isNode(step.value)) {\n return false;\n }\n }\n } else {\n // Iterator will provide entry [k,v] tuples rather than values.\n while (!(step = iterator.next()).done) {\n var entry = step.value;\n if (entry) {\n if (!isNode(entry[1])) {\n return false;\n }\n }\n }\n }\n } else {\n return false;\n }\n\n return true;\n default:\n return false;\n }\n }\n\n function isSymbol(propType, propValue) {\n // Native Symbol.\n if (propType === 'symbol') {\n return true;\n }\n\n // falsy value can't be a Symbol\n if (!propValue) {\n return false;\n }\n\n // 19.4.3.5 Symbol.prototype[@@toStringTag] === 'Symbol'\n if (propValue['@@toStringTag'] === 'Symbol') {\n return true;\n }\n\n // Fallback for non-spec compliant Symbols which are polyfilled.\n if (typeof Symbol === 'function' && propValue instanceof Symbol) {\n return true;\n }\n\n return false;\n }\n\n // Equivalent of `typeof` but with special handling for array and regexp.\n function getPropType(propValue) {\n var propType = typeof propValue;\n if (Array.isArray(propValue)) {\n return 'array';\n }\n if (propValue instanceof RegExp) {\n // Old webkits (at least until Android 4.0) return 'function' rather than\n // 'object' for typeof a RegExp. We'll normalize this here so that /bla/\n // passes PropTypes.object.\n return 'object';\n }\n if (isSymbol(propType, propValue)) {\n return 'symbol';\n }\n return propType;\n }\n\n // This handles more types than `getPropType`. Only used for error messages.\n // See `createPrimitiveTypeChecker`.\n function getPreciseType(propValue) {\n if (typeof propValue === 'undefined' || propValue === null) {\n return '' + propValue;\n }\n var propType = getPropType(propValue);\n if (propType === 'object') {\n if (propValue instanceof Date) {\n return 'date';\n } else if (propValue instanceof RegExp) {\n return 'regexp';\n }\n }\n return propType;\n }\n\n // Returns a string that is postfixed to a warning about an invalid type.\n // For example, \"undefined\" or \"of type array\"\n function getPostfixForTypeWarning(value) {\n var type = getPreciseType(value);\n switch (type) {\n case 'array':\n case 'object':\n return 'an ' + type;\n case 'boolean':\n case 'date':\n case 'regexp':\n return 'a ' + type;\n default:\n return type;\n }\n }\n\n // Returns class name of the object, if any.\n function getClassName(propValue) {\n if (!propValue.constructor || !propValue.constructor.name) {\n return ANONYMOUS;\n }\n return propValue.constructor.name;\n }\n\n ReactPropTypes.checkPropTypes = checkPropTypes;\n ReactPropTypes.resetWarningCache = checkPropTypes.resetWarningCache;\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar printWarning = function() {};\n\nif (process.env.NODE_ENV !== 'production') {\n var ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n var loggedTypeFailures = {};\n var has = require('./lib/has');\n\n printWarning = function(text) {\n var message = 'Warning: ' + text;\n if (typeof console !== 'undefined') {\n console.error(message);\n }\n try {\n // --- Welcome to debugging React ---\n // This error was thrown as a convenience so that you can use this stack\n // to find the callsite that caused this warning to fire.\n throw new Error(message);\n } catch (x) { /**/ }\n };\n}\n\n/**\n * Assert that the values match with the type specs.\n * Error messages are memorized and will only be shown once.\n *\n * @param {object} typeSpecs Map of name to a ReactPropType\n * @param {object} values Runtime values that need to be type-checked\n * @param {string} location e.g. \"prop\", \"context\", \"child context\"\n * @param {string} componentName Name of the component for error messages.\n * @param {?Function} getStack Returns the component stack.\n * @private\n */\nfunction checkPropTypes(typeSpecs, values, location, componentName, getStack) {\n if (process.env.NODE_ENV !== 'production') {\n for (var typeSpecName in typeSpecs) {\n if (has(typeSpecs, typeSpecName)) {\n var error;\n // Prop type validation may throw. In case they do, we don't want to\n // fail the render phase where it didn't fail before. So we log it.\n // After these have been cleaned up, we'll let them throw.\n try {\n // This is intentionally an invariant that gets caught. It's the same\n // behavior as without this statement except with a better message.\n if (typeof typeSpecs[typeSpecName] !== 'function') {\n var err = Error(\n (componentName || 'React class') + ': ' + location + ' type `' + typeSpecName + '` is invalid; ' +\n 'it must be a function, usually from the `prop-types` package, but received `' + typeof typeSpecs[typeSpecName] + '`.' +\n 'This often happens because of typos such as `PropTypes.function` instead of `PropTypes.func`.'\n );\n err.name = 'Invariant Violation';\n throw err;\n }\n error = typeSpecs[typeSpecName](values, typeSpecName, componentName, location, null, ReactPropTypesSecret);\n } catch (ex) {\n error = ex;\n }\n if (error && !(error instanceof Error)) {\n printWarning(\n (componentName || 'React class') + ': type specification of ' +\n location + ' `' + typeSpecName + '` is invalid; the type checker ' +\n 'function must return `null` or an `Error` but returned a ' + typeof error + '. ' +\n 'You may have forgotten to pass an argument to the type checker ' +\n 'creator (arrayOf, instanceOf, objectOf, oneOf, oneOfType, and ' +\n 'shape all require an argument).'\n );\n }\n if (error instanceof Error && !(error.message in loggedTypeFailures)) {\n // Only monitor this failure once because there tends to be a lot of the\n // same error.\n loggedTypeFailures[error.message] = true;\n\n var stack = getStack ? getStack() : '';\n\n printWarning(\n 'Failed ' + location + ' type: ' + error.message + (stack != null ? stack : '')\n );\n }\n }\n }\n }\n}\n\n/**\n * Resets warning cache when testing.\n *\n * @private\n */\ncheckPropTypes.resetWarningCache = function() {\n if (process.env.NODE_ENV !== 'production') {\n loggedTypeFailures = {};\n }\n}\n\nmodule.exports = checkPropTypes;\n","/**\n * Copyright (c) 2013-present, Facebook, Inc.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nvar ReactPropTypesSecret = require('./lib/ReactPropTypesSecret');\n\nfunction emptyFunction() {}\nfunction emptyFunctionWithReset() {}\nemptyFunctionWithReset.resetWarningCache = emptyFunction;\n\nmodule.exports = function() {\n function shim(props, propName, componentName, location, propFullName, secret) {\n if (secret === ReactPropTypesSecret) {\n // It is still safe when called from React.\n return;\n }\n var err = new Error(\n 'Calling PropTypes validators directly is not supported by the `prop-types` package. ' +\n 'Use PropTypes.checkPropTypes() to call them. ' +\n 'Read more at http://fb.me/use-check-prop-types'\n );\n err.name = 'Invariant Violation';\n throw err;\n };\n shim.isRequired = shim;\n function getShim() {\n return shim;\n };\n // Important!\n // Keep this list in sync with production version in `./factoryWithTypeCheckers.js`.\n var ReactPropTypes = {\n array: shim,\n bigint: shim,\n bool: shim,\n func: shim,\n number: shim,\n object: shim,\n string: shim,\n symbol: shim,\n\n any: shim,\n arrayOf: getShim,\n element: shim,\n elementType: shim,\n instanceOf: getShim,\n node: shim,\n objectOf: getShim,\n oneOf: getShim,\n oneOfType: getShim,\n shape: getShim,\n exact: getShim,\n\n checkPropTypes: emptyFunctionWithReset,\n resetWarningCache: emptyFunction\n };\n\n ReactPropTypes.PropTypes = ReactPropTypes;\n\n return ReactPropTypes;\n};\n","import PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n const {\n prototype = {}\n } = elementType;\n return Boolean(prototype.isReactComponent);\n}\nfunction acceptingRef(props, propName, componentName, location, propFullName) {\n const element = props[propName];\n const safePropName = propFullName || propName;\n if (element == null ||\n // When server-side rendering React doesn't warn either.\n // This is not an accurate check for SSR.\n // This is only in place for Emotion compat.\n // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.\n typeof window === 'undefined') {\n return null;\n }\n let warningHint;\n const elementType = element.type;\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n if (typeof elementType === 'function' && !isClassComponent(elementType)) {\n warningHint = 'Did you accidentally use a plain function component for an element instead?';\n }\n if (warningHint !== undefined) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an element that can hold a ref. ${warningHint} ` + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n return null;\n}\nconst elementAcceptingRef = chainPropTypes(PropTypes.element, acceptingRef);\nelementAcceptingRef.isRequired = chainPropTypes(PropTypes.element.isRequired, acceptingRef);\nexport default elementAcceptingRef;","import PropTypes from 'prop-types';\nimport chainPropTypes from './chainPropTypes';\nfunction isClassComponent(elementType) {\n // elementType.prototype?.isReactComponent\n const {\n prototype = {}\n } = elementType;\n return Boolean(prototype.isReactComponent);\n}\nfunction elementTypeAcceptingRef(props, propName, componentName, location, propFullName) {\n const propValue = props[propName];\n const safePropName = propFullName || propName;\n if (propValue == null ||\n // When server-side rendering React doesn't warn either.\n // This is not an accurate check for SSR.\n // This is only in place for emotion compat.\n // TODO: Revisit once https://github.com/facebook/react/issues/20047 is resolved.\n typeof window === 'undefined') {\n return null;\n }\n let warningHint;\n\n /**\n * Blacklisting instead of whitelisting\n *\n * Blacklisting will miss some components, such as React.Fragment. Those will at least\n * trigger a warning in React.\n * We can't whitelist because there is no safe way to detect React.forwardRef\n * or class components. \"Safe\" means there's no public API.\n *\n */\n if (typeof propValue === 'function' && !isClassComponent(propValue)) {\n warningHint = 'Did you accidentally provide a plain function component instead?';\n }\n if (warningHint !== undefined) {\n return new Error(`Invalid ${location} \\`${safePropName}\\` supplied to \\`${componentName}\\`. ` + `Expected an element type that can hold a ref. ${warningHint} ` + 'For more information see https://mui.com/r/caveat-with-refs-guide');\n }\n return null;\n}\nexport default chainPropTypes(PropTypes.elementType, elementTypeAcceptingRef);","'use strict';\n\nif (process.env.NODE_ENV === 'production') {\n module.exports = require('./cjs/react-is.production.min.js');\n} else {\n module.exports = require('./cjs/react-is.development.js');\n}\n","/**\n * @license React\n * react-is.production.min.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n'use strict';var b=Symbol.for(\"react.element\"),c=Symbol.for(\"react.portal\"),d=Symbol.for(\"react.fragment\"),e=Symbol.for(\"react.strict_mode\"),f=Symbol.for(\"react.profiler\"),g=Symbol.for(\"react.provider\"),h=Symbol.for(\"react.context\"),k=Symbol.for(\"react.server_context\"),l=Symbol.for(\"react.forward_ref\"),m=Symbol.for(\"react.suspense\"),n=Symbol.for(\"react.suspense_list\"),p=Symbol.for(\"react.memo\"),q=Symbol.for(\"react.lazy\"),t=Symbol.for(\"react.offscreen\"),u;u=Symbol.for(\"react.module.reference\");\nfunction v(a){if(\"object\"===typeof a&&null!==a){var r=a.$$typeof;switch(r){case b:switch(a=a.type,a){case d:case f:case e:case m:case n:return a;default:switch(a=a&&a.$$typeof,a){case k:case h:case l:case q:case p:case g:return a;default:return r}}case c:return r}}}exports.ContextConsumer=h;exports.ContextProvider=g;exports.Element=b;exports.ForwardRef=l;exports.Fragment=d;exports.Lazy=q;exports.Memo=p;exports.Portal=c;exports.Profiler=f;exports.StrictMode=e;exports.Suspense=m;\nexports.SuspenseList=n;exports.isAsyncMode=function(){return!1};exports.isConcurrentMode=function(){return!1};exports.isContextConsumer=function(a){return v(a)===h};exports.isContextProvider=function(a){return v(a)===g};exports.isElement=function(a){return\"object\"===typeof a&&null!==a&&a.$$typeof===b};exports.isForwardRef=function(a){return v(a)===l};exports.isFragment=function(a){return v(a)===d};exports.isLazy=function(a){return v(a)===q};exports.isMemo=function(a){return v(a)===p};\nexports.isPortal=function(a){return v(a)===c};exports.isProfiler=function(a){return v(a)===f};exports.isStrictMode=function(a){return v(a)===e};exports.isSuspense=function(a){return v(a)===m};exports.isSuspenseList=function(a){return v(a)===n};\nexports.isValidElementType=function(a){return\"string\"===typeof a||\"function\"===typeof a||a===d||a===f||a===e||a===m||a===n||a===t||\"object\"===typeof a&&null!==a&&(a.$$typeof===q||a.$$typeof===p||a.$$typeof===g||a.$$typeof===h||a.$$typeof===l||a.$$typeof===u||void 0!==a.getModuleId)?!0:!1};exports.typeOf=v;\n","/**\n * @license React\n * react-is.development.js\n *\n * Copyright (c) Facebook, Inc. and its affiliates.\n *\n * This source code is licensed under the MIT license found in the\n * LICENSE file in the root directory of this source tree.\n */\n\n'use strict';\n\nif (process.env.NODE_ENV !== \"production\") {\n (function() {\n'use strict';\n\n// ATTENTION\n// When adding new symbols to this file,\n// Please consider also adding to 'react-devtools-shared/src/backend/ReactSymbols'\n// The Symbol used to tag the ReactElement-like types.\nvar REACT_ELEMENT_TYPE = Symbol.for('react.element');\nvar REACT_PORTAL_TYPE = Symbol.for('react.portal');\nvar REACT_FRAGMENT_TYPE = Symbol.for('react.fragment');\nvar REACT_STRICT_MODE_TYPE = Symbol.for('react.strict_mode');\nvar REACT_PROFILER_TYPE = Symbol.for('react.profiler');\nvar REACT_PROVIDER_TYPE = Symbol.for('react.provider');\nvar REACT_CONTEXT_TYPE = Symbol.for('react.context');\nvar REACT_SERVER_CONTEXT_TYPE = Symbol.for('react.server_context');\nvar REACT_FORWARD_REF_TYPE = Symbol.for('react.forward_ref');\nvar REACT_SUSPENSE_TYPE = Symbol.for('react.suspense');\nvar REACT_SUSPENSE_LIST_TYPE = Symbol.for('react.suspense_list');\nvar REACT_MEMO_TYPE = Symbol.for('react.memo');\nvar REACT_LAZY_TYPE = Symbol.for('react.lazy');\nvar REACT_OFFSCREEN_TYPE = Symbol.for('react.offscreen');\n\n// -----------------------------------------------------------------------------\n\nvar enableScopeAPI = false; // Experimental Create Event Handle API.\nvar enableCacheElement = false;\nvar enableTransitionTracing = false; // No known bugs, but needs performance testing\n\nvar enableLegacyHidden = false; // Enables unstable_avoidThisFallback feature in Fiber\n// stuff. Intended to enable React core members to more easily debug scheduling\n// issues in DEV builds.\n\nvar enableDebugTracing = false; // Track which Fiber(s) schedule render work.\n\nvar REACT_MODULE_REFERENCE;\n\n{\n REACT_MODULE_REFERENCE = Symbol.for('react.module.reference');\n}\n\nfunction isValidElementType(type) {\n if (typeof type === 'string' || typeof type === 'function') {\n return true;\n } // Note: typeof might be other than 'symbol' or 'number' (e.g. if it's a polyfill).\n\n\n if (type === REACT_FRAGMENT_TYPE || type === REACT_PROFILER_TYPE || enableDebugTracing || type === REACT_STRICT_MODE_TYPE || type === REACT_SUSPENSE_TYPE || type === REACT_SUSPENSE_LIST_TYPE || enableLegacyHidden || type === REACT_OFFSCREEN_TYPE || enableScopeAPI || enableCacheElement || enableTransitionTracing ) {\n return true;\n }\n\n if (typeof type === 'object' && type !== null) {\n if (type.$$typeof === REACT_LAZY_TYPE || type.$$typeof === REACT_MEMO_TYPE || type.$$typeof === REACT_PROVIDER_TYPE || type.$$typeof === REACT_CONTEXT_TYPE || type.$$typeof === REACT_FORWARD_REF_TYPE || // This needs to include all possible module reference object\n // types supported by any Flight configuration anywhere since\n // we don't know which Flight build this will end up being used\n // with.\n type.$$typeof === REACT_MODULE_REFERENCE || type.getModuleId !== undefined) {\n return true;\n }\n }\n\n return false;\n}\n\nfunction typeOf(object) {\n if (typeof object === 'object' && object !== null) {\n var $$typeof = object.$$typeof;\n\n switch ($$typeof) {\n case REACT_ELEMENT_TYPE:\n var type = object.type;\n\n switch (type) {\n case REACT_FRAGMENT_TYPE:\n case REACT_PROFILER_TYPE:\n case REACT_STRICT_MODE_TYPE:\n case REACT_SUSPENSE_TYPE:\n case REACT_SUSPENSE_LIST_TYPE:\n return type;\n\n default:\n var $$typeofType = type && type.$$typeof;\n\n switch ($$typeofType) {\n case REACT_SERVER_CONTEXT_TYPE:\n case REACT_CONTEXT_TYPE:\n case REACT_FORWARD_REF_TYPE:\n case REACT_LAZY_TYPE:\n case REACT_MEMO_TYPE:\n case REACT_PROVIDER_TYPE:\n return $$typeofType;\n\n default:\n return $$typeof;\n }\n\n }\n\n case REACT_PORTAL_TYPE:\n return $$typeof;\n }\n }\n\n return undefined;\n}\nvar ContextConsumer = REACT_CONTEXT_TYPE;\nvar ContextProvider = REACT_PROVIDER_TYPE;\nvar Element = REACT_ELEMENT_TYPE;\nvar ForwardRef = REACT_FORWARD_REF_TYPE;\nvar Fragment = REACT_FRAGMENT_TYPE;\nvar Lazy = REACT_LAZY_TYPE;\nvar Memo = REACT_MEMO_TYPE;\nvar Portal = REACT_PORTAL_TYPE;\nvar Profiler = REACT_PROFILER_TYPE;\nvar StrictMode = REACT_STRICT_MODE_TYPE;\nvar Suspense = REACT_SUSPENSE_TYPE;\nvar SuspenseList = REACT_SUSPENSE_LIST_TYPE;\nvar hasWarnedAboutDeprecatedIsAsyncMode = false;\nvar hasWarnedAboutDeprecatedIsConcurrentMode = false; // AsyncMode should be deprecated\n\nfunction isAsyncMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsAsyncMode) {\n hasWarnedAboutDeprecatedIsAsyncMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isAsyncMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isConcurrentMode(object) {\n {\n if (!hasWarnedAboutDeprecatedIsConcurrentMode) {\n hasWarnedAboutDeprecatedIsConcurrentMode = true; // Using console['warn'] to evade Babel and ESLint\n\n console['warn']('The ReactIs.isConcurrentMode() alias has been deprecated, ' + 'and will be removed in React 18+.');\n }\n }\n\n return false;\n}\nfunction isContextConsumer(object) {\n return typeOf(object) === REACT_CONTEXT_TYPE;\n}\nfunction isContextProvider(object) {\n return typeOf(object) === REACT_PROVIDER_TYPE;\n}\nfunction isElement(object) {\n return typeof object === 'object' && object !== null && object.$$typeof === REACT_ELEMENT_TYPE;\n}\nfunction isForwardRef(object) {\n return typeOf(object) === REACT_FORWARD_REF_TYPE;\n}\nfunction isFragment(object) {\n return typeOf(object) === REACT_FRAGMENT_TYPE;\n}\nfunction isLazy(object) {\n return typeOf(object) === REACT_LAZY_TYPE;\n}\nfunction isMemo(object) {\n return typeOf(object) === REACT_MEMO_TYPE;\n}\nfunction isPortal(object) {\n return typeOf(object) === REACT_PORTAL_TYPE;\n}\nfunction isProfiler(object) {\n return typeOf(object) === REACT_PROFILER_TYPE;\n}\nfunction isStrictMode(object) {\n return typeOf(object) === REACT_STRICT_MODE_TYPE;\n}\nfunction isSuspense(object) {\n return typeOf(object) === REACT_SUSPENSE_TYPE;\n}\nfunction isSuspenseList(object) {\n return typeOf(object) === REACT_SUSPENSE_LIST_TYPE;\n}\n\nexports.ContextConsumer = ContextConsumer;\nexports.ContextProvider = ContextProvider;\nexports.Element = Element;\nexports.ForwardRef = ForwardRef;\nexports.Fragment = Fragment;\nexports.Lazy = Lazy;\nexports.Memo = Memo;\nexports.Portal = Portal;\nexports.Profiler = Profiler;\nexports.StrictMode = StrictMode;\nexports.Suspense = Suspense;\nexports.SuspenseList = SuspenseList;\nexports.isAsyncMode = isAsyncMode;\nexports.isConcurrentMode = isConcurrentMode;\nexports.isContextConsumer = isContextConsumer;\nexports.isContextProvider = isContextProvider;\nexports.isElement = isElement;\nexports.isForwardRef = isForwardRef;\nexports.isFragment = isFragment;\nexports.isLazy = isLazy;\nexports.isMemo = isMemo;\nexports.isPortal = isPortal;\nexports.isProfiler = isProfiler;\nexports.isStrictMode = isStrictMode;\nexports.isSuspense = isSuspense;\nexports.isSuspenseList = isSuspenseList;\nexports.isValidElementType = isValidElementType;\nexports.typeOf = typeOf;\n })();\n}\n","/* eslint-disable */\n// https://github.com/zloirock/core-js/issues/86#issuecomment-115759028\nexport default typeof window != 'undefined' && window.Math == Math ? window : typeof self != 'undefined' && self.Math == Math ? self : Function('return this')();","import PropTypes from 'prop-types';\nconst refType = PropTypes.oneOfType([PropTypes.func, PropTypes.object]);\nexport default refType;","const visuallyHidden = {\n border: 0,\n clip: 'rect(0 0 0 0)',\n height: '1px',\n margin: -1,\n overflow: 'hidden',\n padding: 0,\n position: 'absolute',\n whiteSpace: 'nowrap',\n width: '1px'\n};\nexport default visuallyHidden;","export function getTypeByValue(value) {\n const valueType = typeof value;\n switch (valueType) {\n case 'number':\n if (Number.isNaN(value)) {\n return 'NaN';\n }\n if (!Number.isFinite(value)) {\n return 'Infinity';\n }\n if (value !== Math.floor(value)) {\n return 'float';\n }\n return 'number';\n case 'object':\n if (value === null) {\n return 'null';\n }\n return value.constructor.name;\n default:\n return valueType;\n }\n}\n\n// IE 11 support\nfunction ponyfillIsInteger(x) {\n // eslint-disable-next-line no-restricted-globals\n return typeof x === 'number' && isFinite(x) && Math.floor(x) === x;\n}\nconst isInteger = Number.isInteger || ponyfillIsInteger;\nfunction requiredInteger(props, propName, componentName, location) {\n const propValue = props[propName];\n if (propValue == null || !isInteger(propValue)) {\n const propType = getTypeByValue(propValue);\n return new RangeError(`Invalid ${location} \\`${propName}\\` of type \\`${propType}\\` supplied to \\`${componentName}\\`, expected \\`integer\\`.`);\n }\n return null;\n}\nfunction validator(props, propName, ...other) {\n const propValue = props[propName];\n if (propValue === undefined) {\n return null;\n }\n return requiredInteger(props, propName, ...other);\n}\nfunction validatorNoop() {\n return null;\n}\nvalidator.isRequired = requiredInteger;\nvalidatorNoop.isRequired = validatorNoop;\nexport default process.env.NODE_ENV === 'production' ? validatorNoop : validator;","import TableSortLabel from \"@mui/material/TableSortLabel\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Box from \"@mui/material/Box\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableHead from \"@mui/material/TableHead\";\nimport { visuallyHidden } from \"@mui/utils\";\n\nexport type Order = \"asc\" | \"desc\";\nexport interface HeadCell<T> {\n disablePadding: boolean;\n id: keyof T;\n label: string;\n numeric: boolean;\n sort: boolean;\n}\n\ninterface EnhancedTableHeadProps<T> {\n onRequestSort: (property: keyof T) => void;\n order: Order;\n orderBy: keyof T;\n headCells: HeadCell<T>[];\n}\n\nexport const EnhancedTableHead = <T,>({\n order,\n orderBy,\n headCells,\n onRequestSort,\n}: EnhancedTableHeadProps<T>) => {\n const createSortHandler = (property: keyof T) => () => {\n onRequestSort(property);\n };\n\n return (\n <TableHead>\n <TableRow>\n {headCells.map((headCell) => (\n <TableCell\n variant=\"head\"\n key={String(headCell.id)}\n padding={headCell.disablePadding ? \"none\" : \"normal\"}\n sortDirection={orderBy === headCell.id ? order : false}\n sx={{ fontWeight: \"bold\" }}\n >\n {headCell.sort ? (\n <TableSortLabel\n active={orderBy === headCell.id}\n direction={orderBy === headCell.id ? order : \"asc\"}\n onClick={createSortHandler(headCell.id)}\n >\n {headCell.label}\n {orderBy === headCell.id ? (\n <Box component=\"span\" sx={visuallyHidden}>\n {order === \"desc\" ? \"sorted descending\" : \"sorted ascending\"}\n </Box>\n ) : null}\n </TableSortLabel>\n ) : (\n headCell.label\n )}\n </TableCell>\n ))}\n </TableRow>\n </TableHead>\n );\n};\n","import { ChangeEvent } from \"react\";\nimport { ReactNode, useState } from \"react\";\nimport Box from \"@mui/material/Box\";\nimport TableContainer from \"@mui/material/TableContainer\";\nimport TextField from \"@mui/material/TextField\";\nimport TableBody from \"@mui/material/TableBody\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport Table from \"@mui/material/Table\";\nimport CircularProgress from \"@mui/material/CircularProgress\";\nimport TableCell from \"@mui/material/TableCell\";\nimport TableRow from \"@mui/material/TableRow\";\nimport Search from \"@mui/icons-material/Search\";\nimport { EnhancedTableHead, HeadCell, Order } from \"./enhanced-table-head\";\n\nfunction getFilter<T>(columns: HeadCell<T>[], search: string) {\n return (d: T) => {\n return (\n !search ||\n columns.some((col) => {\n // eslint-disable-next-line @typescript-eslint/no-explicit-any\n let value = (d as any)[col.id];\n if (value?.toLowerCase) {\n value = value.toLowerCase();\n }\n return value?.toString().includes(search.toLowerCase());\n })\n );\n };\n}\n\nfunction getComparator<T>(order: Order, orderBy: keyof T): (a: T, b: T) => number {\n return order === \"desc\"\n ? (a, b) => descendingComparator(a, b, orderBy)\n : (a, b) => -descendingComparator(a, b, orderBy);\n}\nfunction descendingComparator<T>(a: T, b: T, orderBy: keyof T) {\n if (b[orderBy] < a[orderBy]) {\n return -1;\n }\n if (b[orderBy] > a[orderBy]) {\n return 1;\n }\n return 0;\n}\n\ninterface Props<T> {\n readonly data: T[];\n search?: boolean;\n defaultSort: keyof T;\n defaultOrder?: Order;\n loading?: boolean;\n columns: HeadCell<T>[];\n children: (data: T[]) => ReactNode;\n}\n\nexport const EnhancedTable = <T,>({\n children,\n data,\n search,\n columns,\n defaultSort,\n defaultOrder = \"asc\",\n loading = false,\n}: Props<T>) => {\n const [searchFilter, setSearchFilter] = useState<string>(\"\");\n const [order, setOrder] = useState<Order>(defaultOrder);\n const [orderBy, setOrderBy] = useState<keyof T>(defaultSort);\n\n const handleRequestSort = (property: keyof T) => {\n const isAsc = orderBy === property && order === \"asc\";\n setOrder(isAsc ? \"desc\" : \"asc\");\n setOrderBy(property);\n };\n\n const filteredData = data\n .slice()\n .filter(getFilter<T>(columns, searchFilter))\n .sort(getComparator(order, orderBy));\n\n return (\n <>\n <Box sx={{ paddingX: 1, paddingBottom: 2 }}>\n {search && (\n <Box paddingY={2}>\n <TextField\n fullWidth\n placeholder=\"Search\"\n InputProps={{\n role: \"search\",\n startAdornment: (\n <InputAdornment position=\"start\">\n <Search />\n </InputAdornment>\n ),\n }}\n onChange={(e: ChangeEvent<HTMLInputElement>) => setSearchFilter(e.target.value)}\n />\n </Box>\n )}\n <TableContainer>\n <Table>\n <EnhancedTableHead\n order={order}\n orderBy={orderBy}\n headCells={columns}\n onRequestSort={handleRequestSort}\n />\n <TableBody>\n {loading ? (\n <TableRow>\n <TableCell colSpan={columns.length} sx={{ textAlign: \"center\" }}>\n <CircularProgress />\n </TableCell>\n </TableRow>\n ) : filteredData.length === 0 ? (\n <TableRow>\n <TableCell colSpan={columns.length} sx={{ textAlign: \"center\" }}>\n No data\n </TableCell>\n </TableRow>\n ) : (\n children(filteredData)\n )}\n </TableBody>\n </Table>\n </TableContainer>\n </Box>\n </>\n );\n};\n\nEnhancedTable.defaultProps = {\n defaultOrder: \"asc\",\n};\n","import TableRow from \"@mui/material/TableRow\";\nimport TableCell from \"@mui/material/TableCell\";\nimport IconButton from \"@mui/material/IconButton\";\nimport MenuItem from \"@mui/material/MenuItem\";\nimport Menu from \"@mui/material/Menu\";\nimport { EnhancedTable, HeadCell, Order } from \"../enhanced-table\";\nimport MoreVertIcon from \"@mui/icons-material/MoreVert\";\nimport { BasicModelInstance } from \"../generators\";\nimport { useState } from \"react\";\n\nconst OptionsId = \"__options\";\n\nexport interface TableRowOption<T extends BasicModelInstance> {\n id: string;\n label: string;\n onClick: (item: T) => void;\n}\n\nexport interface TableListProps<T extends BasicModelInstance> {\n columns: HeadCell<T>[];\n data: T[];\n search?: boolean;\n defaultSort: string;\n defaultOrder?: Order;\n loading?: boolean;\n options?: TableRowOption<T>[];\n onClick?: (d: T) => void;\n}\n\n// TODO: Move this to teh generators section\nexport const TableList = <T extends BasicModelInstance>({\n columns: columnsProp,\n options,\n data,\n onClick,\n search,\n defaultSort,\n defaultOrder,\n loading,\n}: TableListProps<T>) => {\n const columns = [\n ...columnsProp,\n {\n id: OptionsId,\n label: \"\",\n disablePadding: false,\n numeric: false,\n sort: false,\n },\n ];\n const [anchorMenuEl, setAnchorMenuEl] = useState<null | { item: T; anchor: HTMLElement }>(null);\n\n return (\n <>\n <EnhancedTable<T>\n columns={columns}\n data={data}\n search={search}\n defaultSort={defaultSort}\n defaultOrder={defaultOrder}\n loading={loading}\n >\n {(filteredData) =>\n filteredData.map((row, i) => {\n return (\n <TableRow\n key={row.id}\n onClick={() => onClick && onClick(row)}\n role=\"row\"\n aria-rowindex={i}\n sx={{ cursor: onClick && \"pointer\" }}\n >\n {columns.map(({ id }, j) => (\n <TableCell\n role=\"cell\"\n scope=\"row\"\n key={id.toString()}\n aria-rowindex={i}\n aria-colindex={j}\n >\n {\n row[\n id\n ] as string /* TODO: This has to be reimplemented having a cell based on each model type */\n }\n </TableCell>\n ))}\n {options && (\n <TableCell>\n <IconButton\n data-testid={`options-${row.id}`}\n onClick={(event) => {\n event.stopPropagation();\n setAnchorMenuEl({\n item: row,\n anchor: event.currentTarget,\n });\n }}\n >\n <MoreVertIcon />\n </IconButton>\n </TableCell>\n )}\n </TableRow>\n );\n })\n }\n </EnhancedTable>\n {options && (\n <Menu\n anchorEl={anchorMenuEl?.anchor}\n open={!!anchorMenuEl}\n onClose={() => setAnchorMenuEl(null)}\n anchorOrigin={{\n vertical: \"top\",\n horizontal: \"left\",\n }}\n transformOrigin={{\n vertical: \"top\",\n horizontal: \"left\",\n }}\n >\n {options.map(({ id, label, onClick }) => (\n <MenuItem\n key={id}\n onClick={() => {\n if (anchorMenuEl) {\n onClick(anchorMenuEl?.item);\n }\n setAnchorMenuEl(null);\n }}\n >\n {label}\n </MenuItem>\n ))}\n </Menu>\n )}\n </>\n );\n};\n","import { useEffect } from \"react\";\nimport { useNavigate } from \"react-router-dom\";\nimport { useNotifyWhenValueChanges } from \"../../notification-center\";\nimport { HeaderLayout } from \"../../header-layout\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { Header, HeaderAction } from \"../../header\";\nimport { Content } from \"../../content\";\nimport { BasicModelInstance } from \"../../generators\";\nimport { RequestState } from \"../../model-router\";\nimport { TableList, TableRowOption } from \"../../table-list\";\n\nexport interface ListScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed each time the list screen\n * requests for a data update\n */\n onRequestList: () => void;\n\n /**\n * List of items to be displayed in the list screen\n */\n listData: T[];\n\n /**\n * Callback executed when the user clicks an option\n * to delete an item\n */\n onClickDeleteItem: (item: T) => void;\n\n /**\n * Current status of the request to retrieve\n * the list items\n */\n listRequest: RequestState;\n\n /**\n * Current status of the request to delete\n * an item\n */\n deleteRequest: RequestState;\n}\n\nexport const ListScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n listData,\n listRequest,\n deleteRequest,\n basePath = \"\",\n deleteFeature = true,\n updateFeature = true,\n addFeature = true,\n detailsFeature = true,\n onRequestList,\n onClickDeleteItem,\n}: ListScreenProps<T>) => {\n const navigate = useNavigate();\n\n useEffect(() => {\n onRequestList();\n }, []);\n\n useNotifyWhenValueChanges(\n {\n title: \"Item deleted\",\n message: \"The item has been deleted successfully\",\n severity: \"success\",\n },\n !!deleteRequest.success,\n { from: false, to: true },\n );\n\n useNotifyWhenValueChanges(\n { title: \"We had an error\", message: deleteRequest.error || \"\", severity: \"error\" },\n !!deleteRequest.error,\n { from: false, to: true },\n );\n\n const handleClickListItem = detailsFeature\n ? (item: T) => {\n navigate(`${basePath}/${item.id}`);\n }\n : undefined;\n\n const handleClickListOption = (optionId: \"edit\" | \"remove\", item: T) => {\n if (optionId === \"edit\") {\n navigate(`${basePath}/${item.id}/update`);\n } else {\n onClickDeleteItem(item);\n }\n };\n\n const options: TableRowOption<T>[] = [];\n\n updateFeature &&\n options.push({\n id: \"edit\",\n label: \"Edit\",\n onClick: (item: T) => handleClickListOption(\"edit\", item),\n });\n\n deleteFeature &&\n options.push({\n id: \"remove\",\n label: \"Remove\",\n onClick: (item: T) => handleClickListOption(\"remove\", item),\n });\n\n const actions: HeaderAction[] = [];\n\n addFeature &&\n actions.push({\n id: \"add\",\n text: \"Add\",\n href: `${basePath}/add`,\n });\n\n return (\n <HeaderLayout loading={listRequest.loading || deleteRequest.loading}>\n <Header\n title={modelName}\n preset=\"default\"\n actions={actions.length > 0 ? actions : undefined}\n />\n <Content>\n <TableList\n columns={model.fields\n .filter(({ listable }) => listable)\n .map(({ id, name, type }) => ({\n disablePadding: false,\n id,\n label: name,\n numeric: type === \"number\",\n sort: false,\n }))}\n data={listData}\n defaultSort={model.fields[0].id}\n onClick={handleClickListItem}\n options={options.length > 0 ? options : undefined}\n />\n </Content>\n </HeaderLayout>\n );\n};\n","import { HeaderLayout } from \"../../header-layout\";\nimport { useNotifyWhenValueChanges } from \"../../notification-center\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { useNavigateWhenValueChanges } from \"../../hooks\";\nimport { Header } from \"../../header\";\nimport { Content } from \"../../content\";\nimport { BasicModelInstance } from \"../../generators\";\nimport { RequestState } from \"../../model-router\";\nimport { ModelForm } from \"../../model-form\";\n\nexport interface AddScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed when the user wants to\n * add a new item\n */\n onSubmitNewItem: (obj: T) => void;\n\n /**\n * Current status of the request to retrieve\n * add a new item\n */\n newItemRequest: RequestState;\n}\n\nexport const AddScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n basePath = \"\",\n onSubmitNewItem,\n newItemRequest,\n}: AddScreenProps<T>) => {\n useNotifyWhenValueChanges(\n { message: \"Item added successfully\", severity: \"success\" },\n !!newItemRequest.success,\n { from: false, to: true },\n );\n useNavigateWhenValueChanges(`${basePath}/`, !!newItemRequest.success, { from: false, to: true });\n useNotifyWhenValueChanges(\n { title: \"We had an error\", message: newItemRequest.error || \"\", severity: \"error\" },\n !!newItemRequest.error,\n { from: false, to: true },\n );\n\n return (\n <HeaderLayout loading={newItemRequest.loading}>\n <Header\n title={`Add ${modelName}`}\n preset=\"default\"\n breadcrumbs={[\n {\n id: \"list\",\n text: modelName,\n link: `${basePath}/`,\n },\n {\n id: \"add\",\n text: `Add new ${modelName}`,\n link: `${basePath}/add`,\n },\n ]}\n />\n <Content>\n <ModelForm model={model} saveButtonText=\"Save\" onSubmit={onSubmitNewItem} />\n </Content>\n </HeaderLayout>\n );\n};\n","import { useState } from \"react\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport ClearIcon from \"@mui/icons-material/Clear\";\nimport { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Button from \"@mui/material/Button\";\nimport IconButton from \"@mui/material/IconButton\";\nimport InputAdornment from \"@mui/material/InputAdornment\";\nimport EditIcon from \"@mui/icons-material/Edit\";\n\nexport interface ValueEditButtonsProps {\n onClickCancel: () => void;\n onClickSubmit: () => void;\n sx?: SxProps<Theme>;\n}\n\nexport const ValueEditButtons = ({ onClickCancel, onClickSubmit, sx }: ValueEditButtonsProps) => {\n return (\n <InputAdornment position=\"end\" sx={sx}>\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"error\"\n aria-label=\"cancel button\"\n startIcon={<ClearIcon sx={{ fontSize: 12 }} />}\n onClick={onClickCancel}\n sx={{ paddingRight: 0, minWidth: 0, marginRight: 1 }}\n />\n <Button\n variant=\"contained\"\n size=\"small\"\n color=\"primary\"\n aria-label=\"submit button\"\n startIcon={<CheckIcon sx={{ fontSize: 12 }} />}\n onClick={onClickSubmit}\n sx={{ paddingRight: 0, minWidth: 0 }}\n />\n </InputAdornment>\n );\n};\n\n/**\n * Hook to manage the editing behaviour\n */\nexport const useEditableValueDisplay = <T,>(\n initialValue: T | undefined,\n onEdit: (value?: T) => void,\n) => {\n const [isEditing, setIsEditing] = useState(false);\n const [editValue, setEditValue] = useState<T | undefined>(initialValue);\n\n const cancelEdit = () => {\n setIsEditing(false);\n setEditValue(initialValue);\n };\n const startEdit = () => {\n setIsEditing(true);\n };\n\n const submitEdit = () => {\n onEdit(editValue);\n cancelEdit();\n };\n\n return { isEditing, cancelEdit, editValue, setEditValue, startEdit, submitEdit };\n};\n\nexport interface ValueEditButtonProps {\n dense?: boolean;\n onClick: () => void;\n}\n\nexport const ValueEditButton = ({ dense, onClick }: ValueEditButtonProps) => {\n const { typography } = useTheme();\n return (\n <IconButton\n size=\"small\"\n onClick={onClick}\n sx={{ ml: dense ? 0.5 : 1 }}\n aria-label=\"edit button\"\n >\n <EditIcon sx={{ fontSize: typography.pxToRem(dense ? 18 : 24) }} />\n </IconButton>\n );\n};\n","import { SxProps, Theme, useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Tooltip from \"@mui/material/Tooltip\";\nimport Typography from \"@mui/material/Typography\";\n\nexport const getValueContentLabelId = (label: string): string =>\n `label-${label.replace(/ /g, \"-\")}`;\n\nexport interface ValueContentProps {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * If true, the label will not be shown\n */\n hideLabel?: boolean;\n\n /**\n * If defined, a tooltip is going to be added arround the children;\n */\n tooltip?: string;\n\n /**\n * Timeout before the tooltip appears when the user hovers the value\n */\n tooltipEnterDelay?: number;\n\n /**\n * Component that's going to be renderd under the label\n */\n children: React.ReactElement<any, any>;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n\n /**\n * Custom styles for the root component\n */\n sx?: SxProps<Theme>;\n}\n\n/**\n * Displays a string value with a label\n */\nexport const ValueContent = ({\n label,\n hideLabel,\n tooltip,\n tooltipEnterDelay = 2000,\n children,\n dense,\n sx,\n}: ValueContentProps) => {\n const { typography } = useTheme();\n const id = getValueContentLabelId(label);\n\n return (\n <Box width={1} lineHeight={dense ? 0 : undefined} sx={sx}>\n {!hideLabel && (\n <Typography\n variant={dense ? \"caption\" : \"subtitle2\"}\n role=\"label\"\n id={id}\n lineHeight={dense ? typography.pxToRem(15) : undefined}\n >\n {label}\n </Typography>\n )}\n {tooltip ? (\n <Tooltip title={tooltip} placement=\"top\" enterDelay={tooltipEnterDelay}>\n {children}\n </Tooltip>\n ) : (\n children\n )}\n </Box>\n );\n};\n","import { useTheme } from \"@mui/material/styles\";\nimport Box from \"@mui/material/Box\";\nimport Switch from \"@mui/material/Switch\";\nimport Typography from \"@mui/material/Typography\";\nimport CheckIcon from \"@mui/icons-material/Check\";\nimport CloseIcon from \"@mui/icons-material/Close\";\nimport {\n BaseValueProps,\n DefaultPlaceholder,\n EditableValueProps,\n useEditableValueDisplay,\n ValueEditButton,\n ValueEditButtons,\n} from \"../value-base\";\nimport { ValueContent, getValueContentLabelId } from \"../value-content\";\n\nexport type ValueBooleanProps = BaseValueProps<boolean> & EditableValueProps<boolean>;\n\n/**\n * Displays a boolean value with a label\n */\nexport const ValueBoolean = ({\n label,\n value,\n placeholder = DefaultPlaceholder,\n editable,\n dense,\n onEdit = () => null,\n}: ValueBooleanProps) => {\n const id = getValueContentLabelId(label);\n const { typography } = useTheme();\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(value, onEdit);\n\n const iconSx = { fontSize: dense ? typography.h6.fontSize : typography.h5.fontSize };\n\n return (\n <ValueContent label={label} dense={dense}>\n {isEditing ? (\n <Box display=\"flex\" alignItems=\"center\">\n <Switch\n size={dense ? \"small\" : \"medium\"}\n checked={editValue}\n onChange={(e) => setEditValue(e.target.checked)}\n />\n <ValueEditButtons onClickCancel={cancelEdit} onClickSubmit={submitEdit} />\n </Box>\n ) : (\n <Box\n display=\"flex\"\n alignItems=\"center\"\n aria-labelledby={id}\n role=\"checkbox\"\n aria-checked={value}\n >\n {value === undefined ? (\n <Typography variant=\"h5\">{placeholder}</Typography>\n ) : value ? (\n <CheckIcon color=\"success\" sx={iconSx} />\n ) : (\n <CloseIcon color=\"error\" sx={iconSx} />\n )}\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n","export interface BaseValueProps<T> {\n /**\n * Name of the displayed value\n */\n label: string;\n\n /**\n * Value displayed\n */\n value?: T;\n\n /**\n * String rendered if value is undefined\n */\n placeholder?: string;\n\n /**\n * The value has to be displayed as compact or not.\n * False by default\n */\n dense?: boolean;\n}\n\nexport interface EditableValueProps<T> {\n /**\n * This field can be edited or not\n */\n editable?: boolean;\n\n /**\n * Callback executed when the value is edited\n */\n onEdit?: (value?: T) => void;\n}\n\nexport const DefaultPlaceholder = \"-\";\n","import Box from \"@mui/material/Box\";\nimport TextField from \"@mui/material/TextField\";\nimport Typography from \"@mui/material/Typography\";\nimport { format } from \"date-fns\";\nimport { BaseValueProps, DefaultPlaceholder, EditableValueProps } from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\nimport { useEditableValueDisplay, ValueEditButton, ValueEditButtons } from \"../value-base\";\nimport { DatePicker } from \"@mui/x-date-pickers/DatePicker\";\nimport { DateTimePicker } from \"@mui/x-date-pickers/DateTimePicker\";\nimport { TimePicker } from \"@mui/x-date-pickers/TimePicker\";\n\nexport type EditInputType = \"datetime\" | \"date\" | \"time\";\n\nexport interface ValueDatetimeProps extends BaseValueProps<Date>, EditableValueProps<Date> {\n /**\n * Datetime format\n */\n format: string;\n\n /**\n * Edit input type\n */\n editInputType?: EditInputType;\n}\n\n/**\n * Displays a formated datetime with a label\n */\nexport const ValueDatetime = ({\n label,\n value: valueProp,\n format: fmt,\n placeholder = DefaultPlaceholder,\n editable,\n editInputType = \"datetime\",\n dense,\n onEdit = () => null,\n}: ValueDatetimeProps) => {\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp, onEdit);\n const id = getValueContentLabelId(label);\n const value = (valueProp && format(valueProp, fmt)) || placeholder;\n\n const EditPickerComponent =\n editInputType === \"datetime\"\n ? DateTimePicker\n : editInputType === \"time\"\n ? TimePicker\n : DatePicker;\n\n return (\n <ValueContent\n label={label}\n hideLabel={isEditing}\n tooltip={value}\n dense={dense}\n sx={{ display: \"flex\", flexDirection: \"column\" }}\n >\n {isEditing ? (\n <EditPickerComponent\n value={editValue}\n format={fmt}\n label={label}\n onChange={(newValue) => setEditValue(newValue ? newValue : undefined)}\n slots={{\n textField: (params) => (\n <TextField\n {...params}\n size=\"small\"\n InputProps={{\n ...params.InputProps,\n endAdornment: (\n <>\n {params.InputProps?.endAdornment}\n <ValueEditButtons\n onClickCancel={cancelEdit}\n onClickSubmit={submitEdit}\n sx={{ ml: 2 }}\n />\n </>\n ),\n sx: { marginY: !dense ? 1 : 0.2 },\n }}\n />\n ),\n }}\n />\n ) : (\n <Box display=\"flex\" alignItems=\"center\">\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n </Typography>\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Box>\n )}\n </ValueContent>\n );\n};\n","import Typography from \"@mui/material/Typography\";\nimport TextField from \"@mui/material/TextField\";\nimport { useEffect, useRef } from \"react\";\nimport {\n BaseValueProps,\n DefaultPlaceholder,\n EditableValueProps,\n useEditableValueDisplay,\n ValueEditButton,\n ValueEditButtons,\n} from \"../value-base\";\nimport { getValueContentLabelId, ValueContent } from \"../value-content\";\n\nexport type ValueTextProps = BaseValueProps<string | number> & EditableValueProps<string>;\n\n/**\n * Displays a string value with a label\n */\nexport const ValueText = ({\n label,\n value: valueProp,\n placeholder = DefaultPlaceholder,\n editable,\n dense,\n onEdit = () => null,\n}: ValueTextProps) => {\n const editInputRef = useRef<HTMLInputElement>(null);\n const { isEditing, editValue, startEdit, cancelEdit, setEditValue, submitEdit } =\n useEditableValueDisplay(valueProp?.toString(), onEdit);\n const id = getValueContentLabelId(label);\n const value = valueProp?.toString() || placeholder;\n\n const editKeyPressListener = (e: KeyboardEvent) => {\n if (e.key === \"Enter\") {\n onEdit((e.target as any).value);\n }\n };\n\n useEffect(() => {\n editInputRef.current?.addEventListener(\"keypress\", editKeyPressListener);\n return () => editInputRef.current?.removeEventListener(\"keypress\", editKeyPressListener);\n }, [editInputRef.current]);\n\n return (\n <ValueContent hideLabel={isEditing} label={label} tooltip={value} dense={dense}>\n {isEditing ? (\n <TextField\n inputRef={editInputRef}\n value={editValue}\n label={label}\n size=\"small\"\n onChange={(e) => setEditValue(e.target.value)}\n InputProps={{\n endAdornment: (\n <ValueEditButtons onClickCancel={cancelEdit} onClickSubmit={submitEdit} />\n ),\n }}\n sx={{ marginY: !dense ? 1 : 0 }}\n />\n ) : (\n <Typography variant={dense ? \"body1\" : \"h5\"} noWrap aria-labelledby={id}>\n {value}\n {editable && <ValueEditButton dense={dense} onClick={startEdit} />}\n </Typography>\n )}\n </ValueContent>\n );\n};\n","import Grid, { GridProps } from \"@mui/material/Grid\";\nimport Box from \"@mui/material/Box\";\nimport { ResponsiveStyleValue } from \"@mui/system\";\nimport { PropsWithChildren, FunctionComponent, ReactElement } from \"react\";\nimport { useGetDefaultThemeColor } from \"../utils\";\n\nexport type ValueItemProps = PropsWithChildren<\n Omit<GridProps, \"item\" | \"container\"> & { bordered?: ResponsiveStyleValue<boolean> }\n>;\nexport type ValueItemComponent = FunctionComponent<ValueItemProps>;\nexport type ValueItemElement = ReactElement<ValueItemProps, ValueItemComponent>;\n\nexport const valueItemClasses = {\n root: \"RdsValueItem-root\",\n content: \"RdsValueItem-content\",\n};\n\nconst resolveBorderStyle = (bordered: ResponsiveStyleValue<boolean>, color: string) => {\n const borderStyle = `solid ${color} 1px`;\n const noBorder = \"none\";\n\n if (!bordered) {\n return undefined;\n }\n\n if (Array.isArray(bordered)) {\n return bordered.map((b) => (b ? borderStyle : noBorder));\n }\n\n if (typeof bordered === \"object\") {\n const style: Record<string, string | undefined> = {};\n Object.entries(bordered).forEach(([key, value]) => {\n style[key] = value ? borderStyle : noBorder;\n });\n return style;\n }\n\n return borderStyle;\n};\n\nexport const ValueItem: ValueItemComponent = ({\n children,\n bordered = true,\n ...rest\n}: ValueItemProps) => {\n const defaultColor = useGetDefaultThemeColor({ lightWeight: 200, darkWeight: 800 });\n const borderLeft = resolveBorderStyle(bordered, defaultColor);\n return (\n <Grid item className={valueItemClasses.root} {...rest}>\n <Box className={valueItemClasses.content} px={1} borderLeft={borderLeft}>\n {children}\n </Box>\n </Grid>\n );\n};\n","import Grid from \"@mui/material/Grid\";\nimport { newBreakpointsCounter } from \"../utils/breakpoints\";\nimport { ValueBoolean } from \"../value-boolean\";\nimport { ValueDatetime } from \"../value-datetime\";\nimport { ValueText } from \"../value-text\";\nimport { GroupValueCard } from \"../group-value-card\";\nimport { ValueItem } from \"../value-item\";\nimport {\n ArrayGroupField,\n ArrayInstanceType,\n BasicModelInstance,\n GroupField,\n GroupInstanceType,\n Model,\n ModelField,\n} from \"../generators/generators.model\";\nimport { GridColDef, DataGrid } from \"@mui/x-data-grid\";\n\ninterface SingleDetailValueFactoryOptions {\n dense?: boolean;\n}\n\nconst singleDetailValueFactory = <T extends BasicModelInstance>(\n field: ModelField,\n instance: T | GroupInstanceType,\n { dense }: SingleDetailValueFactoryOptions = {},\n) => {\n const { id, name, type } = field;\n const value = instance[id];\n if (type === \"boolean\") {\n return <ValueBoolean dense={dense} label={name} value={value as boolean} />;\n } else if (type === \"date\" || type === \"time\" || type === \"datetime\") {\n return <ValueDatetime dense={dense} label={name} value={value as Date} format={field.format} />;\n }\n\n if (typeof value === \"object\" && !Array.isArray(value)) {\n return <ValueText dense={dense} label={name} value={JSON.stringify(value)} />;\n }\n return <ValueText dense={dense} label={name} value={value?.toString()} />;\n};\n\ninterface ObjectArrayGroupProps {\n field: ArrayGroupField;\n instance: ArrayInstanceType;\n dense?: boolean;\n}\n\nconst ObjectArrayGroup = ({\n field: { name, description, value },\n instance,\n dense,\n}: ObjectArrayGroupProps) => {\n const columns: GridColDef[] = [{ field: \"id\", headerName: \"ID\", width: 70 }];\n\n value.forEach((column) => {\n columns.push({\n field: column.id,\n headerName: column.name,\n });\n });\n\n const rows = instance.map((f, id) => ({\n id,\n ...f,\n }));\n\n return (\n <GroupValueCard title={name} subtitle={description} dense={dense}>\n <Grid item xs={12}>\n <DataGrid\n rows={rows}\n columns={columns}\n density={dense ? \"compact\" : \"standard\"}\n disableRowSelectionOnClick\n pageSizeOptions={[5]}\n initialState={{\n pagination: {\n paginationModel: {\n pageSize: 5,\n },\n },\n }}\n sx={{ height: 400 }}\n />\n </Grid>\n </GroupValueCard>\n );\n};\n\ninterface ObjectDetailGroupProps {\n field: GroupField;\n instance: GroupInstanceType;\n dense?: boolean;\n}\n\nconst ObjectDetailGroup = ({\n field: { name, description, value },\n instance,\n dense,\n}: ObjectDetailGroupProps) => {\n const breakpointsCounter = newBreakpointsCounter();\n\n return (\n <GroupValueCard title={name} subtitle={description} dense={dense}>\n {value.map((field) => {\n const { id, xs, sm, md, lg, xl } = field;\n const bordered = breakpointsCounter.increment(field);\n return (\n <ValueItem key={id} xs={xs} sm={sm} md={md} lg={lg} xl={xl} bordered={bordered}>\n {singleDetailValueFactory(field, instance, { dense })}\n </ValueItem>\n );\n })}\n </GroupValueCard>\n );\n};\n\nexport interface ObjectDetailsProps<T extends BasicModelInstance> {\n model: Model;\n dense?: boolean;\n instance: T;\n}\n\nexport const ObjectDetails = <T extends BasicModelInstance>({\n model,\n instance,\n dense,\n}: ObjectDetailsProps<T>) => {\n const breakpointsCounter = newBreakpointsCounter();\n return (\n <Grid container spacing={dense ? 1 : 2}>\n {model.fields.map((field) => {\n const { id, type, xs = 3, sm = 0, md = 0, lg = 0, xl = 0 } = field;\n\n if (type === \"group\") {\n breakpointsCounter.increment({ xs: 12 });\n return (\n <Grid item key={id} xs={12}>\n <ObjectDetailGroup\n field={field}\n instance={instance[id] as GroupInstanceType}\n dense={dense}\n />\n </Grid>\n );\n }\n\n if (type === \"group[]\") {\n breakpointsCounter.increment({ xs: 12 });\n return (\n <Grid item key={id} xs={12}>\n <ObjectArrayGroup field={field} instance={instance[id] as any} dense={dense} />\n </Grid>\n );\n }\n\n const bordered = breakpointsCounter.increment(field);\n return (\n <ValueItem key={id} xs={xs} sm={sm} md={md} lg={lg} xl={xl} bordered={bordered}>\n {singleDetailValueFactory(field, instance, { dense })}\n </ValueItem>\n );\n })}\n </Grid>\n );\n};\n","import { useEffect } from \"react\";\nimport { useParams } from \"react-router-dom\";\nimport { HeaderLayout } from \"../../header-layout\";\nimport { BaseScreenProps } from \"./screens.types\";\nimport { ObjectDetails } from \"../../object-details\";\nimport { Header } from \"../../header\";\nimport { Content } from \"../../content\";\nimport { RequestState } from \"../../model-router\";\nimport { BasicModelInstance } from \"../../generators\";\n\nexport interface DetailsScreenProps<T extends BasicModelInstance> extends BaseScreenProps {\n /**\n * Callback executed each time we want\n * the details information of an item\n */\n onRequestItem: (id: string) => void;\n\n /**\n * Current status of the request to retrieve\n * an item\n */\n itemRequest: RequestState;\n\n /**\n * Item to be displayed\n */\n detailsItem?: T;\n}\n\nexport const DetailsScreen = <T extends BasicModelInstance>({\n model,\n modelName,\n basePath = \"\",\n onRequestItem,\n itemRequest,\n detailsItem,\n}: DetailsScreenProps<T>) => {\n const { id = \"\" } = useParams();\n\n useEffect(() => {\n onRequestItem(id);\n }, [id]);\n\n return (\n <HeaderLayout loading={itemRequest.loading}>\n <Header\n title={id}\n preset=\"default\"\n breadcrumbs={[\n {\n id: \"list\",\n text: modelName,\n link: `${basePath}/`,\n },\n {\n id: \"detail\",\n text: id,\n link: `${basePath}/${id}`,\n },\n ]}\n />\n <Content>{detailsItem && <ObjectDetails model={model} instance={detailsItem} />}</Content>\n </HeaderLayout>\n );\n};\n","import { Routes, Route } from \"react-router-dom\";\nimport { BasicModelInstance } from \"../generators\";\nimport {\n AddScreen,\n AddScreenProps,\n DetailsScreen,\n DetailsScreenProps,\n ListScreen,\n ListScreenProps,\n UpdateScreen,\n UpdateScreenProps,\n} from \"./screens\";\n\nexport type ModelRouterProps<T extends BasicModelInstance> = DetailsScreenProps<T> &\n ListScreenProps<T> &\n AddScreenProps<T> &\n UpdateScreenProps<T>;\n\nexport const ModelRouter = <T extends BasicModelInstance>(props: ModelRouterProps<T>) => {\n const { updateFeature = true, addFeature = true, detailsFeature = true } = props;\n return (\n <Routes>\n <Route path=\"\" element={<ListScreen {...props} />} />\n {detailsFeature && <Route path=\":id\" element={<DetailsScreen {...props} />} />}\n {addFeature && <Route path=\"add\" element={<AddScreen {...props} />} />}\n {updateFeature && <Route path=\":id/update\" element={<UpdateScreen {...props} />} />}\n </Routes>\n );\n};\n","export interface RequestState {\n idle?: boolean;\n loading?: boolean;\n error?: string;\n success?: boolean;\n}\n\nexport const IdleRequest: RequestState = {\n idle: true,\n};\n\nexport const LoadingRequest: RequestState = {\n loading: true,\n};\n\nexport const SuccessRequest: RequestState = {\n success: true,\n};\n"],"names":["InitialStateZeroValue","string","number","boolean","enum","multienum","date","Date","time","datetime","group","getFieldValueOrZero","field","values","id","default","type","useGetDefaultThemeColor","lightWeight","darkWeight","palette","useTheme","mode","grey","newBreakpointsCounter","breakpoint","calculateBreakpointIncrement","breakpointsCounter","key","value","initialValue","xs","sm","md","lg","xl","increment","smInc","mdInc","lgInc","xlInc","this","GroupValueCard","title","subtitle","centered","children","dense","typography","defaultColor","_jsxs","Paper","sx","paddingBottom","Box","bgcolor","px","py","lineHeight","undefined","_jsx","Typography","variant","role","pxToRem","Grid","container","padding","rowSpacing","justifyContent","ModelFormField","path","update","onChangeValue","handleCheckboxChange","e","preventDefault","target","name","checked","handleSelectChange","handleMultiSelectChange","newValue","split","handleInputChange","parseInt","includes","handleDateChange","description","updatable","required","disabled","fieldInput","size","spacing","p","map","f","height","display","alignItems","FormControlLabel","control","Checkbox","onChange","label","FormControl","fullWidth","InputLabel","Select","labelId","fieldValue","MenuItem","renderValue","selected","join","multiple","ListItemText","primary","DesktopDatePicker","format","slotProps","TimePicker","DateTimePicker","TextField","helperText","item","_isPlaceholder","a","_curry1","fn","f1","arguments","length","apply","_curry2","f2","b","_b","_a","_curry3","f3","c","_c","_isArray","Array","isArray","val","Object","prototype","toString","call","_isInteger","Number","isInteger","n","isNil","x","assocPath","obj","idx","nextObj","prop","hasOwnProperty","_has","slice","arr","concat","result","_assoc","ModelForm","model","saveButtonText","onSubmit","initialValues","valuesInitialState","useMemo","fields","forEach","groupField","newInstanceFromValuesOrZeroValue","setValues","useState","setKeyValue","v","component","Button","useNavigateWhenValueChanges","from","to","prevRef","useRef","navigate","useNavigate","useEffect","current","LoadingArea","width","CircularProgress","TabContext","createContext","TabContextProvider","Provider","TabProvider","tabState","Placeholder","icon","iconSize","actions","flexDirection","textAlign","color","mt","pt","text","href","onClick","index","mr","DefaultErrorIcon","ReportProblemIcon","HeaderLayout","loading","fetching","error","headerElement","contentElement","LinearProgress","message","NotificationCenterProviderUndefinedError","Error","NotificationCenterContext","useNotifyWhenValueChanges","notification","show","context","useContext","useNotificationCenter","LinkBehaviour","forwardRef","props","ref","other","RouterLink","Link","_1","MuiLink","HeaderTitle","h4","fontSize","_Fragment","HeaderSubtitle","body1","Header","loadingTitle","loadingSubtitle","preset","actionsVariant","breadcrumbs","tabs","tabsMode","navigationButton","location","useLocation","selectedTab","setSelectedTab","bgColorPresets","main","secondary","inherit","transparent","bgColor","textColor","getContrastText","contrastText","modedSelectedTab","findIndex","tab","pathname","Container","LinkComponent","startIcon","mb","Breadcrumbs","separator","marginTop","link","underline","i","Tabs","_","tabProps","Tab","Content","flexGrow","UpdateScreen","modelName","basePath","submitUpdateItemRequest","updateItemRequest","updateItem","onSubmitUpdateItem","onRequestUpdateItem","useParams","severity","success","chainPropTypes","propType1","propType2","process","env","NODE_ENV","args","module","exports","Symbol","for","d","g","h","k","l","m","q","r","t","w","y","z","u","$$typeof","A","reactIs_production_min","AsyncMode","ConcurrentMode","ContextProvider","Element","ForwardRef","Fragment","Memo","Portal","Profiler","StrictMode","Suspense","isAsyncMode","isConcurrentMode","isContextConsumer","isContextProvider","isElement","isForwardRef","isFragment","isLazy","isMemo","isProfiler","isStrictMode","isSuspense","isValidElementType","typeOf","require$$0","hasSymbol","REACT_ELEMENT_TYPE","REACT_PORTAL_TYPE","REACT_FRAGMENT_TYPE","REACT_STRICT_MODE_TYPE","REACT_PROFILER_TYPE","REACT_PROVIDER_TYPE","REACT_CONTEXT_TYPE","REACT_ASYNC_MODE_TYPE","REACT_CONCURRENT_MODE_TYPE","REACT_FORWARD_REF_TYPE","REACT_SUSPENSE_TYPE","REACT_SUSPENSE_LIST_TYPE","REACT_MEMO_TYPE","REACT_LAZY_TYPE","REACT_BLOCK_TYPE","REACT_FUNDAMENTAL_TYPE","REACT_RESPONDER_TYPE","REACT_SCOPE_TYPE","object","$$typeofType","ContextConsumer","Lazy","hasWarnedAboutDeprecatedIsAsyncMode","reactIs_development","console","isPortal","getOwnPropertySymbols","propIsEnumerable","propertyIsEnumerable","objectAssign","assign","test1","String","getOwnPropertyNames","test2","fromCharCode","test3","letter","keys","err","shouldUseNative","source","symbols","TypeError","toObject","s","ReactPropTypesSecret_1","has","Function","bind","ReactIs","propTypesModule","require$$1","ReactPropTypesSecret","require$$2","require$$3","checkPropTypes","printWarning","loggedTypeFailures","typeSpecs","componentName","getStack","typeSpecName","ex","stack","resetWarningCache","checkPropTypes_1","require$$4","emptyFunctionThatReturnsNull","factoryWithTypeCheckers","isValidElement","throwOnDirectAccess","ITERATOR_SYMBOL","iterator","FAUX_ITERATOR_SYMBOL","ANONYMOUS","ReactPropTypes","array","createPrimitiveTypeChecker","bigint","bool","func","symbol","any","createChainableTypeChecker","arrayOf","typeChecker","propName","propFullName","PropTypeError","propValue","getPropType","element","elementType","instanceOf","expectedClass","expectedClassName","constructor","node","isNode","objectOf","propType","oneOf","expectedValues","is","valuesString","JSON","stringify","getPreciseType","oneOfType","arrayOfTypeCheckers","checker","getPostfixForTypeWarning","expectedTypes","checkerResult","data","push","expectedType","shape","shapeTypes","invalidValidatorError","exact","allKeys","validate","manualPropTypeCallCache","manualPropTypeWarningCount","checkType","isRequired","secret","cacheKey","chainedCheckType","every","iteratorFn","maybeIterable","getIteratorFn","step","entries","next","done","entry","RegExp","isSymbol","PropTypes","emptyFunction","emptyFunctionWithReset","factoryWithThrowingShims","shim","getShim","acceptingRef","safePropName","window","warningHint","Boolean","isReactComponent","isClassComponent","SuspenseList","isSuspenseList","getModuleId","REACT_MODULE_REFERENCE","REACT_SERVER_CONTEXT_TYPE","REACT_OFFSCREEN_TYPE","hasWarnedAboutDeprecatedIsConcurrentMode","Math","self","visuallyHidden","border","clip","margin","overflow","position","whiteSpace","isFinite","floor","requiredInteger","valueType","isNaN","getTypeByValue","RangeError","validator","validatorNoop","EnhancedTableHead","order","orderBy","headCells","onRequestSort","TableHead","TableRow","headCell","TableCell","disablePadding","sortDirection","fontWeight","sort","TableSortLabel","active","direction","property","descendingComparator","EnhancedTable","search","columns","defaultSort","defaultOrder","searchFilter","setSearchFilter","setOrder","setOrderBy","filteredData","filter","some","col","toLowerCase","getFilter","getComparator","paddingX","paddingY","placeholder","InputProps","startAdornment","InputAdornment","Search","TableContainer","Table","TableBody","colSpan","defaultProps","TableList","columnsProp","options","numeric","anchorMenuEl","setAnchorMenuEl","row","cursor","j","scope","IconButton","event","stopPropagation","anchor","currentTarget","MoreVertIcon","Menu","anchorEl","open","onClose","anchorOrigin","vertical","horizontal","transformOrigin","ListScreen","listData","listRequest","deleteRequest","deleteFeature","updateFeature","addFeature","detailsFeature","onRequestList","onClickDeleteItem","handleClickListItem","handleClickListOption","optionId","listable","AddScreen","onSubmitNewItem","newItemRequest","ValueEditButtons","onClickCancel","onClickSubmit","ClearIcon","paddingRight","minWidth","marginRight","CheckIcon","useEditableValueDisplay","onEdit","isEditing","setIsEditing","editValue","setEditValue","cancelEdit","startEdit","submitEdit","ValueEditButton","ml","EditIcon","getValueContentLabelId","replace","ValueContent","hideLabel","tooltip","tooltipEnterDelay","Tooltip","placement","enterDelay","ValueBoolean","editable","iconSx","h6","h5","Switch","CloseIcon","ValueDatetime","valueProp","fmt","editInputType","DatePicker","slots","textField","params","endAdornment","marginY","noWrap","ValueText","editInputRef","editKeyPressListener","addEventListener","removeEventListener","inputRef","valueItemClasses","ValueItem","bordered","rest","borderLeft","borderStyle","noBorder","style","resolveBorderStyle","className","singleDetailValueFactory","instance","ObjectArrayGroup","headerName","column","rows","DataGrid","density","disableRowSelectionOnClick","pageSizeOptions","initialState","pagination","paginationModel","pageSize","ObjectDetailGroup","ObjectDetails","DetailsScreen","onRequestItem","itemRequest","detailsItem","ModelRouter","Routes","Route","IdleRequest","idle","LoadingRequest","SuccessRequest"],"mappings":"k1EAkIA,MAAMA,GACJ,CACEC,OAAQ,GACRC,OAAQ,EACRC,SAAS,EACTC,KAAM,GACNC,UAAW,GACXC,KAAM,IAAIC,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BC,KAAM,IAAID,KAAK,KAAM,EAAG,EAAG,EAAG,GAC9BE,SAAU,IAAIF,KAAK,KAAM,EAAG,EAAG,EAAG,GAClCG,MAAO,CAAE,EACT,UAAW,GACX,WAAY,GACZ,WAAY,IAGVC,GAAsB,CAC1BC,EACAC,IAGGA,GAAUA,EAAOD,EAAME,KACvB,YAAaF,GAASA,EAAMG,SAC7Bf,GAAsBY,EAAMI,MCrJnBC,GAA0B,EACrCC,cAAc,IACdC,aAAa,KACwC,MACrD,MAAMC,QAAEA,GAAYC,IACpB,MAAwB,UAAjBD,EAAQE,KAAmBF,EAAQG,KAAKL,GAAeE,EAAQG,KAAKJ,EAAW,ECK3EK,GAAwB,CAACC,EAAa,MACjD,MAAMC,EAA+B,CACnCC,EACAC,EACAC,KAEA,MAAMC,EAAeH,EAAmBC,GAExC,OADAD,EAAmBC,IAAQC,EACvBF,EAAmBC,GAAOH,GAC5BE,EAAmBC,GAAOC,GACnB,IAGLF,EAAmBC,IAAQH,IAC7BE,EAAmBC,GAAO,GAGrBE,EAAe,EAAC,EAGzB,MAAO,CACLC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,GAAI,EACJC,UAAW,UAAUL,GACnBA,EAAK,EAACC,GACNA,EAAK,EAACC,GACNA,EAAK,EAACC,GACNA,EAAK,EAACC,GACNA,EAAK,IAEL,MAAME,EAAQL,GAAMD,EACdO,EAAQL,GAAMI,EACdE,EAAQL,GAAMI,EACdE,EAAQL,GAAMI,EAEpB,MAAO,CACLR,GAAIL,EAA6Be,KAAM,KAAMV,GAC7CC,GAAIN,EAA6Be,KAAM,KAAMJ,GAC7CJ,GAAIP,EAA6Be,KAAM,KAAMH,GAC7CJ,GAAIR,EAA6Be,KAAM,KAAMF,GAC7CJ,GAAIT,EAA6Be,KAAM,KAAMD,GAEhD,EACF,EC5CUE,GAAiB,EAC5BC,QACAC,WACAC,WACAC,WACAC,YAEA,MAAMC,WAAEA,GAAe3B,IACjB4B,EAAehC,GAAwB,CAAEC,YAAa,IAAKC,WAAY,MAE7E,OACE+B,EAACC,EAAK,CACJC,GAAI,CACFC,cAAeN,EAAQ,EAAI,GAC5BD,SAAA,CAEDI,EAACI,EACC,CAAAC,QAASN,EACTO,GAAIT,EAAQ,EAAI,EAChBU,GAAIV,EAAQ,GAAM,EAClBW,WAAYX,EAAQ,OAAIY,YAExBC,EAACC,EAAW,CAAAC,QAASf,EAAQ,QAAU,KAAMgB,KAAK,UAAS,aAAa,EACrEjB,SAAAH,IAEFC,GACCgB,EAACC,GACCC,QAASf,EAAQ,UAAY,QAC7BgB,KAAK,UAAS,aACF,EACZL,WAAYX,EAAQC,EAAWgB,QAAQ,SAAML,EAASb,SAErDF,OAIPgB,EAACK,EACC,CAAAC,WACA,EAAAC,QAAS,EACTC,WAAYrB,EAAQ,EAAI,EACxBsB,eAAgBxB,EAAW,SAAW,aAErCC,SAAAA,MAGL,EC9BSwB,GAAiB,EAC5B1D,QACA2D,OAAO,GACP1C,QACAkB,QACAyB,SACAC,oBAEA,MAAMC,EAAwBC,IAC5BA,EAAEC,iBACFH,EAAc,IAAIF,EAAMI,EAAEE,OAAOC,MAAOH,EAAEE,OAAOE,QAAQ,EAGrDC,EAAsBL,IAC1BA,EAAEC,iBACFH,EAAc,IAAIF,EAAMI,EAAEE,OAAOC,MAAOH,EAAEE,OAAOhD,MAAM,EAGnDoD,EAA2BN,IAC/BA,EAAEC,iBACF,MAAM/C,MAAEA,GAAU8C,EAAEE,OACdK,EAA4B,iBAAVrD,EAAqBA,EAAMsD,MAAM,KAAOtD,EAChE4C,EAAc,IAAIF,EAAMI,EAAEE,OAAOC,MAAOI,EAAS,EAG7CE,EAAoB,CACxBT,EACA3D,KAEA2D,EAAEC,iBAEF,IAAI/C,EAA+C8C,EAAEE,OAAOhD,MAC/C,WAATb,GAAsC,iBAAVa,EAC9BA,EAAQwD,SAASV,EAAEE,OAAOhD,MAAO,IACxBb,EAAKsE,SAAS,QACvBzD,EAAQ8C,EAAEE,OAAOhD,MAAMsD,MAAM,MAE/BV,EAAc,IAAIF,EAAMI,EAAEE,OAAOC,MAAOjD,EAAM,EAG1C0D,EAAmB,CAAC1D,EAAyBf,KACjD2D,EAAc,IAAIF,EAAMzD,GAAKe,EAAM,EAGhBZ,GAAwB,CAAEC,YAAa,IAAKC,WAAY,MAE7E,MAAML,GACJA,EAAEE,KACFA,EAAI8D,KACJA,EAAIU,YACJA,EAAWC,UACXA,GAAY,EAAIC,SAChBA,GAAW,EAAI3D,GACfA,EAAEC,GACFA,EAAEC,GACFA,EAAEC,GACFA,EAAEC,GACFA,GACEvB,EACE+E,GAAqBF,GAAajB,EAExC,IAAIoB,EACJ,MAAMC,EAAO9C,EAAQ,QAAU,SAC/B,GAAa,UAAT/B,EACF4E,EACEhC,EAAClB,IAAeC,MAAOmC,EAAMlC,SAAU4C,EAAazC,MAAOA,WACzDa,EAACK,GAAKC,WAAS,EAAC4B,QAAS,EAAG1C,GAAI,CAAE2C,EAAG,GAAGjD,SACrClC,EAAMiB,MAAMmE,KAAKC,GAChBrC,EAACU,GAAc,CAEb1D,MAAOqF,EACPlD,MAAOA,EACPwB,KAAM,IAAIA,EAAMzD,GAChBe,MAAOA,EAAMoE,EAAEnF,IACf0D,OAAQA,EACRC,cAAeA,GANVwB,EAAEnF,eAYZ,GAAa,YAATE,EACT4E,EACEhC,EAACN,EAAG,CAACF,GAAI,CAAE8C,OAAQ,EAAGC,QAAS,OAAQC,WAAY,UACjDtD,SAAAc,EAACyC,EAAgB,CACfC,QACE1C,EAAC2C,GACCzB,KAAMhE,EACN+E,KAAMA,EACNW,SAAU9B,EACVK,QAASlD,EACT8D,SAAUA,IAGdc,MAAO3B,WAIR,GAAa,SAAT9D,EACT4E,EACE1C,EAACwD,EAAY,CAAAC,uBACX/C,EAACgD,GAAW9F,GAAI,GAAGA,0BAAoBgE,IACvClB,EAACiD,GACCC,QAAS,GAAGhG,iBACZA,GAAI,GAAGA,WACPe,MAAOA,EACP4E,MAAO3B,EACPA,KAAMhE,EACN+E,KAAMA,EACNW,SAAUxB,EACVU,SAAUA,EACVC,SAAUA,EAAQ7C,SAEjBlC,EAAMiB,MAAMmE,KAAKe,GAChBnD,EAACoD,EAAQ,CAAkBnF,MAAOkF,WAC/BA,GADYA,eAOlB,GAAa,cAAT/F,EACT4E,EACE1C,EAACwD,EAAY,CAAAC,WACX,EAAA7D,SAAA,CAAAc,EAACgD,EAAU,CAAC9F,GAAI,GAAGA,iBAAiBgC,SAAGgC,IACvClB,EAACiD,EAAM,CACLC,QAAS,GAAGhG,iBACZA,GAAI,GAAGA,WACPe,MAAOA,GAAS,GAChBoF,YAAcC,GAAcA,EAA4BC,KAAK,MAC7DV,MAAO3B,EACPA,KAAMhE,EACN+E,KAAMA,EACNW,SAAUvB,EACVS,SAAUA,EACVC,SAAUA,EACVyB,qBAECxG,EAAMiB,MAAMmE,KAAKe,GAChB7D,EAAC8D,EAA0B,CAAAnF,MAAOkF,EAAUjE,SAAA,CAC1Cc,EAAC2C,EAAS,CAAAxB,SAAWlD,GAAmB,IAAIyD,SAASyB,KACrDnD,EAACyD,EAAa,CAAAC,QAASP,MAFVA,eAQlB,GAAa,SAAT/F,EACT4E,EACEhC,EAAC2D,GACCd,MAAO3B,EACP0C,OAAQ5G,EAAM4G,OACd3F,MAAOA,EACP4F,UACE,CACE7G,MAAO,CACLiF,SAINF,SAAUA,EACVa,SAAW3E,GAAU0D,EAAiB1D,EAAOf,UAG5C,GAAa,SAATE,EACT4E,EACEhC,EAAC8D,GACCjB,MAAO3B,EACP0C,OAAQ5G,EAAM4G,OACd3F,MAAOA,EACP4F,UACE,CACE7G,MAAO,CACLiF,SAINF,SAAUA,EACVa,SAAW3E,GAAU0D,EAAiB1D,EAAOf,UAG5C,GAAa,aAATE,EACT4E,EACEhC,EAAC+D,GACClB,MAAO3B,EACP0C,OAAQ5G,EAAM4G,OACd3F,MAAOA,EACP4F,UACE,CACE7G,MAAO,CACLiF,SAINF,SAAUA,EACVa,SAAW3E,GAAU0D,EAAiB1D,EAAOf,SAG5C,IAAa,YAATE,EACT,OAAO,KAEP4E,EADS5E,EAAKsE,SAAS,MAErB1B,EAACgE,EACC,CAAAlC,SAAUA,EACV1E,KAAK,OACLyF,MAAO3B,EACPA,KAAMhE,EACN+E,KAAMA,EACN/B,QAAQ,WACR+D,WAAW,wCACXlB,WAAS,EACThB,SAAUA,EACV9D,MAAQA,EAAgBsF,KAAK,KAC7BX,SAAW7B,GAAMS,EAAkBT,EAAG3D,KAKxC4C,EAACgE,EAAS,CACRlC,SAAUA,EACV1E,KAAMA,EACNyF,MAAO3B,EACPe,KAAMA,EACNf,KAAMhE,EACNgD,QAAQ,WACR6C,WACA,EAAA9E,MAAOA,EACP8D,SAAUA,EACVa,SAAW7B,GAAMS,EAAkBT,EAAG3D,IAG3C,CAED,OACE4C,EAACK,EAAI,CAAC6D,MAAI,EAAU/F,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAEW,SACvD8C,GADa9E,EAGhB,EC5QW,SAASiH,GAAeC,GACrC,OAAY,MAALA,GAA0B,iBAANA,IAAoD,IAAlCA,EAAE,2BACjD,CCQe,SAASC,GAAQC,GAC9B,OAAO,SAASC,EAAGH,GACjB,OAAyB,IAArBI,UAAUC,QAAgBN,GAAeC,GACpCG,EAEAD,EAAGI,MAAM7F,KAAM2F,UAE5B,CACA,CCPe,SAASG,GAAQL,GAC9B,OAAO,SAASM,EAAGR,EAAGS,GACpB,OAAQL,UAAUC,QAChB,KAAK,EACH,OAAOG,EAET,KAAK,EACH,OAAOT,GAAeC,GAAKQ,EAAKP,IAAQ,SAAUS,GAChD,OAAOR,EAAGF,EAAGU,EACvB,IAEM,QACE,OAAOX,GAAeC,IAAMD,GAAeU,GAAKD,EAAKT,GAAeC,GAAKC,IAAQ,SAAUU,GACzF,OAAOT,EAAGS,EAAIF,EACf,IAAIV,GAAeU,GAAKR,IAAQ,SAAUS,GACzC,OAAOR,EAAGF,EAAGU,EACd,IAAIR,EAAGF,EAAGS,GAEnB,CACA,CClBe,SAASG,GAAQV,GAC9B,OAAO,SAASW,EAAGb,EAAGS,EAAGK,GACvB,OAAQV,UAAUC,QAChB,KAAK,EACH,OAAOQ,EAET,KAAK,EACH,OAAOd,GAAeC,GAAKa,EAAKN,IAAQ,SAAUG,EAAIK,GACpD,OAAOb,EAAGF,EAAGU,EAAIK,EAC3B,IAEM,KAAK,EACH,OAAOhB,GAAeC,IAAMD,GAAeU,GAAKI,EAAKd,GAAeC,GAAKO,IAAQ,SAAUI,EAAII,GAC7F,OAAOb,EAAGS,EAAIF,EAAGM,EAC3B,IAAahB,GAAeU,GAAKF,IAAQ,SAAUG,EAAIK,GAC7C,OAAOb,EAAGF,EAAGU,EAAIK,EAC3B,IAAad,IAAQ,SAAUc,GACrB,OAAOb,EAAGF,EAAGS,EAAGM,EAC1B,IAEM,QACE,OAAOhB,GAAeC,IAAMD,GAAeU,IAAMV,GAAee,GAAKD,EAAKd,GAAeC,IAAMD,GAAeU,GAAKF,IAAQ,SAAUI,EAAID,GACvI,OAAOR,EAAGS,EAAID,EAAII,EAC5B,IAAaf,GAAeC,IAAMD,GAAee,GAAKP,IAAQ,SAAUI,EAAII,GAClE,OAAOb,EAAGS,EAAIF,EAAGM,EAC3B,IAAahB,GAAeU,IAAMV,GAAee,GAAKP,IAAQ,SAAUG,EAAIK,GAClE,OAAOb,EAAGF,EAAGU,EAAIK,EAClB,IAAIhB,GAAeC,GAAKC,IAAQ,SAAUU,GACzC,OAAOT,EAAGS,EAAIF,EAAGK,EAClB,IAAIf,GAAeU,GAAKR,IAAQ,SAAUS,GACzC,OAAOR,EAAGF,EAAGU,EAAII,EAClB,IAAIf,GAAee,GAAKb,IAAQ,SAAUc,GACzC,OAAOb,EAAGF,EAAGS,EAAGM,EACjB,IAAIb,EAAGF,EAAGS,EAAGK,GAEtB,CACA,CCpCA,IAAeE,GAAAC,MAAMC,SAAW,SAAkBC,GAChD,OAAc,MAAPA,GAAeA,EAAId,QAAU,GAA6C,mBAAxCe,OAAOC,UAAUC,SAASC,KAAKJ,EAC1E,ECNA,IAAeK,GAAAC,OAAOC,WAAa,SAAoBC,GACrD,OAAOA,GAAK,IAAMA,CACpB,ECSA,IAAIC,GAEJ3B,IAAQ,SAAe4B,GACrB,OAAY,MAALA,CACT,ICOIC,GAEJlB,IAAQ,SAASkB,EAAUvF,EAAM4E,EAAKY,GACpC,GAAoB,IAAhBxF,EAAK8D,OACP,OAAOc,EAGT,IAAIa,EAAMzF,EAAK,GAEf,GAAIA,EAAK8D,OAAS,EAAG,CACnB,IAAI4B,GAAWL,GAAMG,ICxCV,SAAcG,EAAMH,GACjC,OAAOX,OAAOC,UAAUc,eAAeZ,KAAKQ,EAAKG,EACnD,CDsCiCE,CAAKJ,EAAKD,IAA4B,iBAAbA,EAAIC,GAAoBD,EAAIC,GAAOR,GAAWjF,EAAK,IAAM,GAAK,GACpH4E,EAAMW,EAAUb,MAAMI,UAAUgB,MAAMd,KAAKhF,EAAM,GAAI4E,EAAKc,EAC3D,CAED,OE7Ba,SAAgBC,EAAMf,EAAKY,GACxC,GAAIP,GAAWU,IAASlB,GAASe,GAAM,CACrC,IAAIO,EAAM,GAAGC,OAAOR,GAEpB,OADAO,EAAIJ,GAAQf,EACLmB,CACR,CAED,IAAIE,EAAS,CAAA,EAEb,IAAK,IAAIzE,KAAKgE,EACZS,EAAOzE,GAAKgE,EAAIhE,GAIlB,OADAyE,EAAON,GAAQf,EACRqB,CACT,CFcSC,CAAOT,EAAKb,EAAKY,EAC1B,IGxBO,MAAMW,GAAY,EACvBC,QACAC,iBACA7H,QACA8H,WACAC,oBAEA,MAAMC,EAAqBC,GACzB,IfgI4C,EAC9CL,EACA9J,EAAwB8C,aAExB,MAAMoG,EAA6C,CAAA,EAiBnD,OAfAY,EAAMM,OAAOC,SAAStK,IACpB,GAAmB,UAAfA,EAAMI,KAAkB,CAC1B,MAAMa,EAA2B,CAAA,EACjCjB,EAAMiB,MAAMqJ,SAASC,IACnBtJ,EAAMsJ,EAAWrK,IAAMH,GACrBwK,EACAtK,GAAWA,EAAOD,EAAME,IACN,IAEtBiJ,EAAInJ,EAAME,IAAMe,CACjB,MACCkI,EAAInJ,EAAME,IAAMH,GAAoBC,EAAOC,EAC5C,IAGIkJ,CAAQ,EerJPqB,CAAoCT,EAAOG,IACjD,CAACH,EAAOG,KAEHjK,EAAQwK,GAAaC,EAAYP,GAElCQ,EAAc,CAAChH,EAAgB1C,KACnCwJ,GAAWG,GAAM1B,GAAUvF,EAAM1C,EAAO2J,IAAG,EAQ7C,OACEtI,EAACe,EAAI,CAACC,WAAU,EAAAuH,UAAU,OAAO3F,QAAS,EAAG+E,SANzBlG,IACpBA,EAAEC,iBACFiG,EAAShK,EAAO,EAImDiC,SAAA,CAChE6H,EAAMM,OAAOjF,KAAKC,GACjBrC,EAACU,GAEC,CAAAvB,MAAOA,EACPnC,MAAOqF,EACPpE,MAAOhB,EAAOoF,EAAEnF,IAChB0D,SAAUsG,EACVrG,cAAe8G,GALVtF,EAAEnF,MAQX8C,EAACK,EAAI,CAAC6D,MAAI,EAAC/F,GAAI,GACbe,SAAAc,EAAC8H,EAAM,CAAC1K,KAAK,SAAS8C,QAAQ,YAAY+B,KAAM9C,EAAQ,QAAU,SAAQD,SACvE8H,QAIP,ECrDSe,GAA8B,CACzCpH,EACA1C,GACE+J,OAAMC,SAER,MAAMC,EAAUC,IACVC,EAAWC,IAEjBC,GAAU,KACJJ,EAAQK,UAAYP,GAAQ/J,IAAUgK,GACxCG,EAASzH,GAEXuH,EAAQK,QAAUtK,CAAK,GACtB,CAACA,GAAO,ECfAuK,GAAc,IAEvBxI,EAACN,EAAG,CAAC+I,MAAO,EAAGnG,OAAQ,EAAGC,QAAQ,OAAO9B,eAAe,SAAS+B,WAAW,SAAQtD,SAClFc,EAAC0I,EAAmB,CAAA,KCPbC,GAAaC,EAA0D,CAClF,EACA,IAAM,OAEKC,GAAqBF,GAAWG,SCChCC,GAAc,EAAG7J,WAAUhB,eAAe,MACrD,MAAM8K,EAAWtB,EAASxJ,GAE1B,OAAO8B,EAAC6I,GAAmB,CAAA5K,MAAO+K,EAAQ9J,SAAGA,GAA8B,EC4BhE+J,GAAc,EACzBlK,QACAC,WACAkK,OACAC,WAAW,IACXC,aAGE9J,EAACI,EACC,CAAA6C,QAAQ,OACR8G,cAAc,SACd5I,eAAe,SACf+B,WAAW,SACX8G,UAAU,SAAQpK,SAAA,CAEjBgK,GAAQA,EAAK,CAAEjH,KAAMkH,EAAUI,MAAO,YACvCvJ,EAACC,EAAU,CAACC,QAAQ,KAAKC,KAAK,UAAS,aAAa,EAACjB,SAClDH,IAEHiB,EAACC,EAAU,CAACC,QAAQ,YAAYC,KAAK,UAAS,aAAa,EAAGX,GAAI,CAAEgK,GAAI,GAAGtK,SACxEF,IAEFoK,GACCpJ,EAACN,GAAIF,GAAI,CAAEiK,GAAI,GACZvK,SAAAkK,EAAQhH,KAAI,EAAGlF,KAAIwM,OAAMC,OAAMC,WAAWC,IACzC7J,EAAC8H,GAEC3H,KAAK,SACLD,QAAQ,YACRyJ,KAAMA,EACNC,QAASA,EACTpK,GAAI,CAAEsK,GAAID,EAAQT,EAAQ3E,OAAS,EAAI,EAAI,GAE1CvF,SAAAwK,GAPIxM,UC1Cb6M,GAAmB,IAAM/J,EAACgK,EAAiB,CAACT,MAAM,QAAQ/J,GAAI,CAAEiJ,MAAO,IAAKnG,OAAQ,OAE7E2H,GAAe,EAAGC,UAAShL,WAAUiL,WAAUC,YAC1D,MAAOC,EAAeC,GAAkBpL,EAExC,OACEc,EAAC+I,aACCzJ,EAACI,GAAI6C,QAAQ,OAAO8G,cAAc,SAAS/G,OAAQ,YAChD+H,EACAF,GACCnK,EAACN,EAAG,CAAC+I,MAAO,WACVzI,EAACuK,QAGJL,GAAWlK,EAACwI,GAAW,IACvB4B,GACCpK,EAACN,GAAI8J,GAAI,EACPtK,SAAAc,EAACiJ,GACC,CAAAC,KAAMkB,EAAMlB,MAAQa,GACpBhL,MAAOqL,EAAMrL,OAAS,0BACtBC,SAAUoL,EAAMI,aAIpBN,IAAYE,GAASE,MAG3B,EC9CSG,GAA2C,IAAIC,MAC1D,oEAcWC,GAA4B/B,OACvC7I,GCXW6K,GAA4B,CACvCC,EACA5M,GACE+J,OAAMC,SAER,MAAMC,EAAUC,KACV2C,KAAEA,GDQ2B,MACnC,MAAMC,EAAUC,EAAWL,IAE3B,QAAgB5K,IAAZgL,EACF,MAAMN,GAGR,OAAOM,CAAO,ECfGE,GAEjB3C,GAAU,KACJJ,EAAQK,UAAYP,GAAQ/J,IAAUgK,GACxC6C,EAAKD,GAEP3C,EAAQK,QAAUtK,CAAK,GACtB,CAACA,GAAO,EChBAiN,GAAgBC,GAG3B,CAACC,EAAOC,KACR,MAAM1B,KAAEA,KAAS2B,GAAUF,EAC3B,OAAOpL,EAACuL,EAAW,CAAAF,IAAKA,EAAKpD,GAAI0B,KAAU2B,GAAS,IAGzCE,GAAOL,GAA2B,CAACC,EAAOK,IAC9CzL,EAAC0L,EAAa,IAAAN,EAAevD,UAAWqD,OCPpCS,GAAc,EAAGzB,UAAShL,eACrC,MAAME,WAAEA,GAAe3B,IAEvB,OAAIyM,EAEAlK,EAAC0I,GAAiBa,MAAM,UAAUtH,KAAM7C,EAAWwM,GAAGC,sBAAqB,kBAIvD,iBAAb3M,EAEPc,EAACC,EAAW,CAAAC,QAAQ,KAAKC,KAAK,UAAsB,aAAA,WACjDjB,IAKAc,EAAA8L,EAAA,CAAA5M,SAAGA,GAAY,EAKX6M,GAAiB,EAAG7B,UAAShL,eACxC,MAAME,WAAEA,GAAe3B,IAEvB,OAAIyM,EAEAlK,EAAC0I,GACCa,MAAM,UACNtH,KAAM7C,EAAW4M,MAAMH,sBACZ,qBAKO,iBAAb3M,EAEPc,EAACC,EAAW,CAAAC,QAAQ,QAAQC,KAAK,UAAsB,aAAA,WACpDjB,IAKAc,EAAA8L,EAAA,CAAA5M,SAAGA,GAAY,EChCX+M,GAA0B,EACrClN,QAAQ,GACRmN,eACAlN,WACAmN,kBACAC,SAAS,UACTC,iBAAiB,WACjBC,cACAlD,UACAmD,OACAC,WAAW,QACXC,uBAEA,MAAMC,EAAWC,KACXnP,QAAEA,GAAYC,IACd4B,EAAehC,MACduP,EAAaC,GR3BM7B,EAAWrC,IQ6B/BmE,EAA+C,CACnD3P,QAASkC,EACTqE,QAASlG,EAAQkG,QAAQqJ,KACzBC,UAAWxP,EAAQwP,UAAUD,KAC7BE,QAAS,UACTC,YAAa,eAETC,EAAUL,EAAeV,GAQzBgB,EAPiD,CACrDjQ,QAASK,EAAQ6P,gBAAgBP,EAAe3P,SAChDuG,QAASlG,EAAQkG,QAAQ4J,aACzBN,UAAWxP,EAAQwP,UAAUM,aAC7BL,QAAS,UACTC,YAAa1P,EAAQkM,KAAKhG,SAEO0I,GAE7BmB,EACS,UAAbf,EAAuBI,EAAcL,GAAMiB,WAAWC,GAAQA,EAAI9D,OAAS+C,EAASgB,WAEtF,OACE1N,EAACN,EAAI,CAAAC,QAASwN,EAAS5D,MAAO6D,EAC5BlO,SAAAI,EAACqO,EACC,CAAAzO,SAAA,CAAAI,EAACI,EAAI,CAAAF,GAAI,CAAEK,GAAI,EAAG0C,QAAS,OAAQ8G,cAAe,MAAO5I,eAAgB,iBAAiBvB,SAAA,CACxFI,EAACI,EAAG,CAAAR,SAAA,CACDuN,GACCzM,EAAC8H,GACC6B,KAAM8C,EAAiB9C,KACvB1H,KAAK,QACLsH,MAAM,UACNqE,cAAepC,GACfqC,UAAWpB,EAAiBvD,KAC5B1J,GAAI,CAAEsO,GAAI,GAAG5O,SAEZuN,EAAiB/C,OAGrB4C,GAAa7H,QACZzE,EAAC+N,GACCxE,MAAM,UACNyE,UAAU,iBACC,aACXxO,GAAI,CAAEyO,UAAW,GAAG/O,SAEnBoN,EAAYlK,KAAI,EAAGlF,KAAIgR,OAAMxE,UAC5B1J,EAACwL,GAAI,CAEH2C,UAAU,QACV5E,MAAM,UACNI,KAAMuE,EACNhO,QAAQ,QACRC,KAAK,OAAMjB,SAEVwK,GAPIxM,OAYb8C,EAAC2L,GAAY,CAAAzB,QAASgC,EAAYhN,SAAGH,KACnCC,GAAYmN,IACZnM,EAAC+L,GAAc,CAAC7B,QAASiC,EAAkBjN,SAAAF,OAG9CoK,GACCpJ,EAACN,EACE,CAAAR,SAAAkK,EAAQhH,KAAI,EAAGL,WAAU7E,KAAIyM,OAAMC,UAASF,QAAQ0E,IACnDpO,EAAC8H,EACC,CAAAD,UAAW8B,EAAO6B,GAAO,SACzBrL,KAAK,SACLoJ,MAAM,UACNxH,SAAUA,EAEV7B,QAASmM,EACTpK,KAAK,QACL0H,KAAMA,EACNC,QAASA,EACTpK,GAAI,CAAEsK,GAAIsE,GAAKhF,EAAQ3E,OAAS,EAAI,EAAI,GAEvCvF,SAAAwK,GAPIxM,UAadqP,GACCvM,EAACqO,GACCpQ,MAAOsP,EACPH,UAAU,UACVxK,SAAuB,UAAb4J,EAAuB,CAAC8B,EAAGzE,IAAUgD,EAAehD,QAAS9J,EAASb,SAE/EqN,EAAKnK,KAAI,EAAGlF,KAAI2F,QAAOd,WAAU4H,WAChC,MAAM4E,EAAW,CAAE1L,QAAOd,YAC1B,OACS/B,EAACwO,EADO,UAAbhC,EACS,IAAc+B,GAEA,IAAAA,EAAU1G,UAAW2D,GAAM7B,KAAMA,GAFzCzM,EAGlB,UAMX,ECvISuR,GAAU,EAAGvP,cAEtBc,EAAC2N,EAAS,CAAC9F,UAAU,OAAOrI,GAAI,CAAEK,GAAI,EAAG6O,SAAU,GAChDxP,SAAAA,ICmCMyP,GAAe,EAC1B5H,QACA6H,YACAC,WAAW,GACXC,0BACAC,oBACAC,aACAC,qBACAC,0BAEA,MAAMhS,GAAEA,EAAK,IAAOiS,IACdjF,EAAU6E,EAAkB7E,SAAW4E,EAAwB5E,QAyBrE,OAvBA5B,GAAU,KACR4G,EAAoBhS,EAAG,GACtB,CAACA,IAEJ0N,GACE,CACE7L,MAAO,eACPyL,QAAS,YAAYtN,kCACrBkS,SAAU,aAEVN,EAAwBO,QAC1B,CAAErH,MAAM,EAAOC,IAAI,IAErBF,GAA4B,GAAG8G,OAAeC,EAAwBO,QAAS,CAC7ErH,MAAM,EACNC,IAAI,IAEN2C,GACE,CAAE7L,MAAO,kBAAmByL,QAASsE,EAAwB1E,OAAS,GAAIgF,SAAU,WAClFN,EAAwB1E,MAC1B,CAAEpC,MAAM,EAAOC,IAAI,IAInB3I,EAAC2K,GAAY,CAACC,QAASA,EACrBhL,SAAA,CAAAc,EAACiM,GAAM,CACLlN,MAAO,QAAQ7B,IACfkP,OAAO,UACPE,YAAa,CACX,CACEpP,GAAI,OACJwM,KAAMkF,EACNV,KAAM,GAAGW,MAEX,CACE3R,GAAI,SACJwM,KAAM,QAAQxM,IACdgR,KAAM,GAAGW,KAAY3R,eAI3B8C,EAACyO,GACC,CAAAvP,SAAAc,EAAC8G,GAAS,CACRC,MAAOA,EACPG,cAAe8H,EACfhI,eAAe,OACfC,SAAUgI,QAIhB,ECxGW,SAASK,GAAeC,EAAWC,GAChD,MAA6B,eAAzBC,QAAQC,IAAIC,SACP,IAAM,KAER,YAAqBC,GAC1B,OAAOL,KAAaK,IAASJ,KAAaI,EAC9C,CACA;;;;;;;;uCCL6B,eAAzBH,QAAQC,IAAIC,SACdE,EAAAC,wCCMW,IAAIjL,EAAE,mBAAoBkL,QAAQA,OAAOC,IAAI9K,EAAEL,EAAEkL,OAAOC,IAAI,iBAAiB,MAAMC,EAAEpL,EAAEkL,OAAOC,IAAI,gBAAgB,MAAMjP,EAAE8D,EAAEkL,OAAOC,IAAI,kBAAkB,MAAM3N,EAAEwC,EAAEkL,OAAOC,IAAI,qBAAqB,MAAME,EAAErL,EAAEkL,OAAOC,IAAI,kBAAkB,MAAMG,EAAEtL,EAAEkL,OAAOC,IAAI,kBAAkB,MAAMI,EAAEvL,EAAEkL,OAAOC,IAAI,iBAAiB,MAAMK,EAAExL,EAAEkL,OAAOC,IAAI,oBAAoB,MAAMM,EAAEzL,EAAEkL,OAAOC,IAAI,yBAAyB,MAAMjK,EAAElB,EAAEkL,OAAOC,IAAI,qBAAqB,MAAM7N,EAAE0C,EAAEkL,OAAOC,IAAI,kBAAkB,MAAMO,EAAE1L,EACpfkL,OAAOC,IAAI,uBAAuB,MAAMQ,EAAE3L,EAAEkL,OAAOC,IAAI,cAAc,MAAMS,EAAE5L,EAAEkL,OAAOC,IAAI,cAAc,MAAMpI,EAAE/C,EAAEkL,OAAOC,IAAI,eAAe,MAAMU,EAAE7L,EAAEkL,OAAOC,IAAI,qBAAqB,MAAM/J,EAAEpB,EAAEkL,OAAOC,IAAI,mBAAmB,MAAMW,EAAE9L,EAAEkL,OAAOC,IAAI,eAAe,MAClQ,SAASY,EAAExM,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIyM,EAAEzM,EAAE0M,SAAS,OAAOD,GAAG,KAAK3L,EAAE,OAAOd,EAAEA,EAAEhH,MAAQ,KAAKiT,EAAE,KAAKC,EAAE,KAAKvP,EAAE,KAAKmP,EAAE,KAAK7N,EAAE,KAAKF,EAAE,OAAOiC,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE0M,UAAY,KAAKV,EAAE,KAAKrK,EAAE,KAAK0K,EAAE,KAAKD,EAAE,KAAKL,EAAE,OAAO/L,EAAE,QAAQ,OAAOyM,GAAG,KAAKZ,EAAE,OAAOY,EAAE,CAAC,CAAC,SAASE,EAAE3M,GAAG,OAAOwM,EAAExM,KAAKkM,CAAC,QAACU,GAAAC,UAAkBZ,EAAEW,GAAsBE,eAACZ,EAAEU,mBAAwBZ,EAAEY,GAAAG,gBAAwBhB,EAAEa,GAAeI,QAAClM,EAAE8L,GAAAK,WAAmBtL,EAAEiL,GAAgBM,SAACvQ,EAAEiQ,QAAaP,EAAEO,GAAAO,KAAaf,EAAEQ,GAAcQ,OAACvB,EAChfe,GAAAS,SAAiBvB,EAAEc,GAAAU,WAAmBrP,EAAE2O,GAAAW,SAAiBxP,EAAE6O,GAAAY,YAAoB,SAASxN,GAAG,OAAO2M,EAAE3M,IAAIwM,EAAExM,KAAKiM,CAAC,EAAEW,GAAAa,iBAAyBd,EAAEC,GAAAc,kBAA0B,SAAS1N,GAAG,OAAOwM,EAAExM,KAAKgM,CAAC,EAAEY,GAAAe,kBAA0B,SAAS3N,GAAG,OAAOwM,EAAExM,KAAK+L,CAAC,EAAEa,GAAAgB,UAAkB,SAAS5N,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAE0M,WAAW5L,CAAC,EAAE8L,GAAAiB,aAAqB,SAAS7N,GAAG,OAAOwM,EAAExM,KAAK2B,CAAC,EAAEiL,GAAAkB,WAAmB,SAAS9N,GAAG,OAAOwM,EAAExM,KAAKrD,CAAC,EAAEiQ,GAAAmB,OAAe,SAAS/N,GAAG,OAAOwM,EAAExM,KAAKqM,CAAC,EAC1dO,GAAAoB,OAAe,SAAShO,GAAG,OAAOwM,EAAExM,KAAKoM,CAAC,EAAEQ,YAAiB,SAAS5M,GAAG,OAAOwM,EAAExM,KAAK6L,CAAC,EAAEe,GAAkBqB,WAAC,SAASjO,GAAG,OAAOwM,EAAExM,KAAK8L,CAAC,EAAEc,GAAAsB,aAAqB,SAASlO,GAAG,OAAOwM,EAAExM,KAAK/B,CAAC,EAAE2O,GAAAuB,WAAmB,SAASnO,GAAG,OAAOwM,EAAExM,KAAKjC,CAAC,EAChN6O,GAAAwB,mBAAC,SAASpO,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAIrD,GAAGqD,IAAIkM,GAAGlM,IAAI8L,GAAG9L,IAAI/B,GAAG+B,IAAIjC,GAAGiC,IAAImM,GAAG,iBAAkBnM,GAAG,OAAOA,IAAIA,EAAE0M,WAAWL,GAAGrM,EAAE0M,WAAWN,GAAGpM,EAAE0M,WAAWX,GAAG/L,EAAE0M,WAAWV,GAAGhM,EAAE0M,WAAW/K,GAAG3B,EAAE0M,WAAWJ,GAAGtM,EAAE0M,WAAW7K,GAAG7B,EAAE0M,WAAWH,GAAGvM,EAAE0M,WAAWlJ,EAAE,EAAEoJ,GAAcyB,OAAC7B,KDXhT8B,GAEjB7C,EAAAC,mBEQ2B,eAAzBL,QAAQC,IAAIC,UACd,WAKF,IAAIgD,EAA8B,mBAAX5C,QAAyBA,OAAOC,IACnD4C,EAAqBD,EAAY5C,OAAOC,IAAI,iBAAmB,MAC/D6C,EAAoBF,EAAY5C,OAAOC,IAAI,gBAAkB,MAC7D8C,EAAsBH,EAAY5C,OAAOC,IAAI,kBAAoB,MACjE+C,EAAyBJ,EAAY5C,OAAOC,IAAI,qBAAuB,MACvEgD,EAAsBL,EAAY5C,OAAOC,IAAI,kBAAoB,MACjEiD,EAAsBN,EAAY5C,OAAOC,IAAI,kBAAoB,MACjEkD,EAAqBP,EAAY5C,OAAOC,IAAI,iBAAmB,MAG/DmD,EAAwBR,EAAY5C,OAAOC,IAAI,oBAAsB,MACrEoD,EAA6BT,EAAY5C,OAAOC,IAAI,yBAA2B,MAC/EqD,EAAyBV,EAAY5C,OAAOC,IAAI,qBAAuB,MACvEsD,EAAsBX,EAAY5C,OAAOC,IAAI,kBAAoB,MACjEuD,EAA2BZ,EAAY5C,OAAOC,IAAI,uBAAyB,MAC3EwD,EAAkBb,EAAY5C,OAAOC,IAAI,cAAgB,MACzDyD,EAAkBd,EAAY5C,OAAOC,IAAI,cAAgB,MACzD0D,EAAmBf,EAAY5C,OAAOC,IAAI,eAAiB,MAC3D2D,EAAyBhB,EAAY5C,OAAOC,IAAI,qBAAuB,MACvE4D,EAAuBjB,EAAY5C,OAAOC,IAAI,mBAAqB,MACnE6D,EAAmBlB,EAAY5C,OAAOC,IAAI,eAAiB,MAO/D,SAASyC,EAAOqB,GACd,GAAsB,iBAAXA,GAAkC,OAAXA,EAAiB,CACjD,IAAIhD,EAAWgD,EAAOhD,SAEtB,OAAQA,GACN,KAAK8B,EACH,IAAIxV,EAAO0W,EAAO1W,KAElB,OAAQA,GACN,KAAK+V,EACL,KAAKC,EACL,KAAKN,EACL,KAAKE,EACL,KAAKD,EACL,KAAKO,EACH,OAAOlW,EAET,QACE,IAAI2W,EAAe3W,GAAQA,EAAK0T,SAEhC,OAAQiD,GACN,KAAKb,EACL,KAAKG,EACL,KAAKI,EACL,KAAKD,EACL,KAAKP,EACH,OAAOc,EAET,QACE,OAAOjD,GAKjB,KAAK+B,EACH,OAAO/B,EAEZ,CAGF,CAED,IAAIG,EAAYkC,EACZjC,EAAiBkC,EACjBY,EAAkBd,EAClB/B,EAAkB8B,EAClB7B,EAAUwB,EACVvB,EAAagC,EACb/B,EAAWwB,EACXmB,EAAOR,EACPlC,EAAOiC,EACPhC,EAASqB,EACTpB,EAAWuB,EACXtB,EAAaqB,EACbpB,EAAW2B,EACXY,GAAsC,EAa1C,SAASrC,EAAiBiC,GACxB,OAAOrB,EAAOqB,KAAYV,CAC3B,CAmCgBe,GAAAlD,UAAGA,EACEkD,GAAAjD,eAAGA,EACFiD,GAAAH,gBAAGA,EACHG,GAAAhD,gBAAGA,EACXgD,GAAA/C,QAAGA,EACA+C,GAAA9C,WAAGA,EACL8C,GAAA7C,SAAGA,EACP6C,GAAAF,KAAGA,EACHE,GAAA5C,KAAGA,EACD4C,GAAA3C,OAAGA,EACD2C,GAAA1C,SAAGA,EACD0C,GAAAzC,WAAGA,EACLyC,GAAAxC,SAAGA,EACAwC,GAAAvC,YA7DnB,SAAqBkC,GASnB,OAPOI,IACHA,GAAsC,EAEtCE,QAAc,KAAE,kLAIbvC,EAAiBiC,IAAWrB,EAAOqB,KAAYX,CACvD,EAoDuBgB,GAAAtC,iBAAGA,EACFsC,GAAArC,kBAjDzB,SAA2BgC,GACzB,OAAOrB,EAAOqB,KAAYZ,CAC3B,EAgDwBiB,GAAApC,kBA/CzB,SAA2B+B,GACzB,OAAOrB,EAAOqB,KAAYb,CAC3B,EA8CgBkB,GAAAnC,UA7CjB,SAAmB8B,GACjB,MAAyB,iBAAXA,GAAkC,OAAXA,GAAmBA,EAAOhD,WAAa8B,CAC7E,EA4CmBuB,GAAAlC,aA3CpB,SAAsB6B,GACpB,OAAOrB,EAAOqB,KAAYT,CAC3B,EA0CiBc,GAAAjC,WAzClB,SAAoB4B,GAClB,OAAOrB,EAAOqB,KAAYhB,CAC3B,EAwCaqB,GAAAhC,OAvCd,SAAgB2B,GACd,OAAOrB,EAAOqB,KAAYL,CAC3B,EAsCaU,GAAA/B,OArCd,SAAgB0B,GACd,OAAOrB,EAAOqB,KAAYN,CAC3B,EAoCeW,GAAAE,SAnChB,SAAkBP,GAChB,OAAOrB,EAAOqB,KAAYjB,CAC3B,EAkCiBsB,GAAA9B,WAjClB,SAAoByB,GAClB,OAAOrB,EAAOqB,KAAYd,CAC3B,EAgCmBmB,GAAA7B,aA/BpB,SAAsBwB,GACpB,OAAOrB,EAAOqB,KAAYf,CAC3B,EA8BiBoB,GAAA5B,WA7BlB,SAAoBuB,GAClB,OAAOrB,EAAOqB,KAAYR,CAC3B,EA4ByBa,GAAA3B,mBAxI1B,SAA4BpV,GAC1B,MAAuB,iBAATA,GAAqC,mBAATA,GAC1CA,IAAS0V,GAAuB1V,IAASgW,GAA8BhW,IAAS4V,GAAuB5V,IAAS2V,GAA0B3V,IAASkW,GAAuBlW,IAASmW,GAA4C,iBAATnW,GAA8B,OAATA,IAAkBA,EAAK0T,WAAa2C,GAAmBrW,EAAK0T,WAAa0C,GAAmBpW,EAAK0T,WAAamC,GAAuB7V,EAAK0T,WAAaoC,GAAsB9V,EAAK0T,WAAauC,GAA0BjW,EAAK0T,WAAa6C,GAA0BvW,EAAK0T,WAAa8C,GAAwBxW,EAAK0T,WAAa+C,GAAoBzW,EAAK0T,WAAa4C,EACnlB,EAsIaS,GAAA1B,OAAGA,CACd,CArKD;;;;;qCCNF,IAAI6B,EAAwB9O,OAAO8O,sBAC/B/N,EAAiBf,OAAOC,UAAUc,eAClCgO,EAAmB/O,OAAOC,UAAU+O,4BAsDxCC,GA5CA,WACC,IACC,IAAKjP,OAAOkP,OACX,OAAO,EAMR,IAAIC,EAAQ,IAAIC,OAAO,OAEvB,GADAD,EAAM,GAAK,KACkC,MAAzCnP,OAAOqP,oBAAoBF,GAAO,GACrC,OAAO,EAKR,IADA,IAAIG,EAAQ,CAAA,EACH1G,EAAI,EAAGA,EAAI,GAAIA,IACvB0G,EAAM,IAAMF,OAAOG,aAAa3G,IAAMA,EAKvC,GAAwB,eAHX5I,OAAOqP,oBAAoBC,GAAO1S,KAAI,SAAU2D,GAC5D,OAAO+O,EAAM/O,EAChB,IACaxC,KAAK,IACf,OAAO,EAIR,IAAIyR,EAAQ,CAAA,EAIZ,MAHA,uBAAuBzT,MAAM,IAAI+F,SAAQ,SAAU2N,GAClDD,EAAMC,GAAUA,CACnB,IAEI,yBADEzP,OAAO0P,KAAK1P,OAAOkP,OAAO,CAAE,EAAEM,IAAQzR,KAAK,GAM/C,CAAC,MAAO4R,GAER,OAAO,CACP,CACD,CAEgBC,GAAoB5P,OAAOkP,OAAS,SAAUzT,EAAQoU,GAKtE,IAJA,IAAIrN,EAEAsN,EADArN,EAtDL,SAAkB1C,GACjB,GAAIA,QACH,MAAM,IAAIgQ,UAAU,yDAGrB,OAAO/P,OAAOD,EACd,CAgDSiQ,CAASvU,GAGTwU,EAAI,EAAGA,EAAIjR,UAAUC,OAAQgR,IAAK,CAG1C,IAAK,IAAIzX,KAFTgK,EAAOxC,OAAOhB,UAAUiR,IAGnBlP,EAAeZ,KAAKqC,EAAMhK,KAC7BiK,EAAGjK,GAAOgK,EAAKhK,IAIjB,GAAIsW,EAAuB,CAC1BgB,EAAUhB,EAAsBtM,GAChC,IAAK,IAAIoG,EAAI,EAAGA,EAAIkH,EAAQ7Q,OAAQ2J,IAC/BmG,EAAiB5O,KAAKqC,EAAMsN,EAAQlH,MACvCnG,EAAGqN,EAAQlH,IAAMpG,EAAKsN,EAAQlH,IAGhC,CACD,CAED,OAAOnG,gDC7ERyN,GAF2B,gFCT3BC,GAAiBC,SAASjQ,KAAKkQ,KAAKrQ,OAAOC,UAAUc,iBCOrD,GAA6B,eAAzBkJ,QAAQC,IAAIC,SAA2B,CACzC,IAAImG,GAAUpD,KAKdqD,GAAAjG,wCCJF,IAAIgG,EAAUpD,KACVgC,EAASsB,KAETC,EAAuBC,KACvBP,EAAMQ,KACNC,kCCLJ,IAAIC,EAAe,aAEnB,GAA6B,eAAzB5G,QAAQC,IAAIC,SAA2B,CACzC,IAAIsG,EAAuBvD,KACvB4D,EAAqB,CAAA,EACrBX,EAAMK,KAEVK,EAAe,SAAS3M,GACtB,IAAIc,EAAU,YAAcd,EACL,oBAAZ0K,SACTA,QAAQhK,MAAMI,GAEhB,IAIE,MAAM,IAAIE,MAAMF,EACtB,CAAM,MAAOvE,GAAW,CACxB,CACC,CAaD,SAASmQ,EAAeG,EAAWtZ,EAAQyP,EAAU8J,EAAeC,GAClE,GAA6B,eAAzBhH,QAAQC,IAAIC,SACd,IAAK,IAAI+G,KAAgBH,EACvB,GAAIZ,EAAIY,EAAWG,GAAe,CAChC,IAAItM,EAIJ,IAGE,GAAuC,mBAA5BmM,EAAUG,GAA8B,CACjD,IAAIvB,EAAMzK,OACP8L,GAAiB,eAAiB,KAAO9J,EAAW,UAAYgK,EAAjE,oGACwFH,EAAUG,GADlG,mGAKF,MADAvB,EAAIjU,KAAO,sBACLiU,CACP,CACD/K,EAAQmM,EAAUG,GAAczZ,EAAQyZ,EAAcF,EAAe9J,EAAU,KAAMuJ,EACtF,CAAC,MAAOU,GACPvM,EAAQuM,CACT,CAWD,IAVIvM,GAAWA,aAAiBM,OAC9B2L,GACGG,GAAiB,eAAiB,2BACnC9J,EAAW,KAAOgK,EADlB,kGAEqEtM,EAFrE,kKAQAA,aAAiBM,SAAWN,EAAMI,WAAW8L,GAAqB,CAGpEA,EAAmBlM,EAAMI,UAAW,EAEpC,IAAIoM,EAAQH,EAAWA,IAAa,GAEpCJ,EACE,UAAY3J,EAAW,UAAYtC,EAAMI,SAAoB,MAAToM,EAAgBA,EAAQ,IAE/E,CACF,CAGN,QAODR,EAAeS,kBAAoB,WACJ,eAAzBpH,QAAQC,IAAIC,WACd2G,EAAqB,CAAA,EAExB,EAEDQ,GAAiBV,EDxFIW,GAEjBV,EAAe,aAiBnB,SAASW,IACP,OAAO,IACR,OAjB4B,eAAzBvH,QAAQC,IAAIC,WACd0G,EAAe,SAAS3M,GACtB,IAAIc,EAAU,YAAcd,EACL,oBAAZ0K,SACTA,QAAQhK,MAAMI,GAEhB,IAIE,MAAM,IAAIE,MAAMF,EACtB,CAAM,MAAOvE,GAAK,CAClB,GAOAgR,GAAiB,SAASC,EAAgBC,GAExC,IAAIC,EAAoC,mBAAXrH,QAAyBA,OAAOsH,SACzDC,EAAuB,aAsEvBC,EAAY,gBAIZC,EAAiB,CACnBC,MAAOC,EAA2B,SAClCC,OAAQD,EAA2B,UACnCE,KAAMF,EAA2B,WACjCG,KAAMH,EAA2B,YACjCpb,OAAQob,EAA2B,UACnC5D,OAAQ4D,EAA2B,UACnCrb,OAAQqb,EAA2B,UACnCI,OAAQJ,EAA2B,UAEnCK,IA6HOC,EAA2BhB,GA5HlCiB,QA+HF,SAAkCC,GAkBhC,OAAOF,GAjBP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,GAA2B,mBAAhBF,EACT,OAAO,IAAIG,EAAc,aAAeD,EAAe,mBAAqB5B,EAAgB,mDAE9F,IAAI8B,EAAYlN,EAAM+M,GACtB,IAAK9S,MAAMC,QAAQgT,GAEjB,OAAO,IAAID,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,cADVG,EAAYD,GAC6E,kBAAoB9B,EAAgB,yBAE9I,IAAK,IAAIpI,EAAI,EAAGA,EAAIkK,EAAU7T,OAAQ2J,IAAK,CACzC,IAAIhE,EAAQ8N,EAAYI,EAAWlK,EAAGoI,EAAe9J,EAAU0L,EAAe,IAAMhK,EAAI,IAAK6H,GAC7F,GAAI7L,aAAiBM,MACnB,OAAON,CAEV,CACD,OAAO,IACR,GAEF,EAjJCoO,QA4JOR,GARP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,IAAIE,EAAYlN,EAAM+M,GACtB,OAAKjB,EAAeoB,GAIb,KAFE,IAAID,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,cADVG,EAAYD,GAC6E,kBAAoB9B,EAAgB,qCAG/I,IA1JDiC,YAuKOT,GARP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,IAAIE,EAAYlN,EAAM+M,GACtB,OAAKrC,EAAQtD,mBAAmB8F,GAIzB,KAFE,IAAID,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,cADVG,EAAYD,GAC6E,kBAAoB9B,EAAgB,0CAG/I,IArKDkC,WAyKF,SAAmCC,GASjC,OAAOX,GARP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,KAAMhN,EAAM+M,aAAqBQ,GAAgB,CAC/C,IAAIC,EAAoBD,EAAczX,MAAQqW,EAE9C,OAAO,IAAIc,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,gBAuSTE,EAxSmBlN,EAAM+M,IAyS9BU,aAAgBP,EAAUO,YAAY3X,KAG9CoX,EAAUO,YAAY3X,KAFpBqW,GAzS0G,kBAAoBf,EAA1G,4BAA+JoC,EAAoB,KAC7M,CAsSL,IAAsBN,EArSlB,OAAO,IACR,GAEF,EAlLCQ,KAwROd,GANP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,OAAKW,EAAO3N,EAAM+M,IAGX,KAFE,IAAIE,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,kBAAwE5B,EAAgB,2BAGpH,IAtRDwC,SAsNF,SAAmCd,GAoBjC,OAAOF,GAnBP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,GAA2B,mBAAhBF,EACT,OAAO,IAAIG,EAAc,aAAeD,EAAe,mBAAqB5B,EAAgB,oDAE9F,IAAI8B,EAAYlN,EAAM+M,GAClBc,EAAWV,EAAYD,GAC3B,GAAiB,WAAbW,EACF,OAAO,IAAIZ,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,cAAoEa,EAAW,kBAAoBzC,EAAgB,0BAE9I,IAAK,IAAIxY,KAAOsa,EACd,GAAI3C,EAAI2C,EAAWta,GAAM,CACvB,IAAIoM,EAAQ8N,EAAYI,EAAWta,EAAKwY,EAAe9J,EAAU0L,EAAe,IAAMpa,EAAKiY,GAC3F,GAAI7L,aAAiBM,MACnB,OAAON,CAEV,CAEH,OAAO,IACR,GAEF,EA1OC8O,MAkLF,SAA+BC,GAC7B,OAAK9T,MAAMC,QAAQ6T,GA+BZnB,GAjBP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAE1D,IADA,IAAIE,EAAYlN,EAAM+M,GACb/J,EAAI,EAAGA,EAAI+K,EAAe1U,OAAQ2J,IACzC,GAAIgL,EAAGd,EAAWa,EAAe/K,IAC/B,OAAO,KAIX,IAAIiL,EAAeC,KAAKC,UAAUJ,GAAgB,SAAkBnb,EAAKC,GAEvE,MAAa,WADFub,EAAevb,GAEjB2W,OAAO3W,GAETA,CACf,IACM,OAAO,IAAIoa,EAAc,WAAa3L,EAAW,KAAO0L,EAAe,eAAiBxD,OAAO0D,GAAtE,kBAA6G9B,EAAgB,sBAAwB6C,EAAe,IAC9L,KA7B8B,eAAzB5J,QAAQC,IAAIC,UAEZ0G,EADE7R,UAAUC,OAAS,EAEnB,+DAAiED,UAAUC,OAA3E,uFAIW,0DAGVuS,EAqBV,EAlNCyC,UA2OF,SAAgCC,GAC9B,IAAKrU,MAAMC,QAAQoU,GAEjB,MADyB,eAAzBjK,QAAQC,IAAIC,UAA4B0G,EAAa,0EAC9CW,EAGT,IAAK,IAAI5I,EAAI,EAAGA,EAAIsL,EAAoBjV,OAAQ2J,IAAK,CACnD,IAAIuL,EAAUD,EAAoBtL,GAClC,GAAuB,mBAAZuL,EAKT,OAJAtD,EACE,8FACcuD,EAAyBD,GAAW,aAAevL,EAAI,KAEhE4I,CAEV,CAiBD,OAAOgB,GAfP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAE1D,IADA,IAAIyB,EAAgB,GACXzL,EAAI,EAAGA,EAAIsL,EAAoBjV,OAAQ2J,IAAK,CACnD,IACI0L,GAAgBH,EADND,EAAoBtL,IACNhD,EAAO+M,EAAU3B,EAAe9J,EAAU0L,EAAcnC,GACpF,GAAqB,MAAjB6D,EACF,OAAO,KAELA,EAAcC,MAAQpE,EAAImE,EAAcC,KAAM,iBAChDF,EAAcG,KAAKF,EAAcC,KAAKE,aAEzC,CAED,OAAO,IAAI5B,EAAc,WAAa3L,EAAW,KAAO0L,EAA/B,kBAAwE5B,EAAgB,KADrFqD,EAAcpV,OAAS,EAAK,2BAA6BoV,EAActW,KAAK,MAAQ,IAAK,IACyB,IAC/I,GAEF,EA3QC2W,MA8RF,SAAgCC,GAmB9B,OAAOnC,GAlBP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,IAAIE,EAAYlN,EAAM+M,GAClBc,EAAWV,EAAYD,GAC3B,GAAiB,WAAbW,EACF,OAAO,IAAIZ,EAAc,WAAa3L,EAAW,KAAO0L,EAAe,cAAgBa,EAA9D,kBAAmGzC,EAAgB,yBAE9I,IAAK,IAAIxY,KAAOmc,EAAY,CAC1B,IAAIR,EAAUQ,EAAWnc,GACzB,GAAuB,mBAAZ2b,EACT,OAAOS,EAAsB5D,EAAe9J,EAAU0L,EAAcpa,EAAKwb,EAAeG,IAE1F,IAAIvP,EAAQuP,EAAQrB,EAAWta,EAAKwY,EAAe9J,EAAU0L,EAAe,IAAMpa,EAAKiY,GACvF,GAAI7L,EACF,OAAOA,CAEV,CACD,OAAO,IACR,GAEF,EAjTCiQ,MAmTF,SAAsCF,GA6BpC,OAAOnC,GA5BP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC1D,IAAIE,EAAYlN,EAAM+M,GAClBc,EAAWV,EAAYD,GAC3B,GAAiB,WAAbW,EACF,OAAO,IAAIZ,EAAc,WAAa3L,EAAW,KAAO0L,EAAe,cAAgBa,EAA9D,kBAAmGzC,EAAgB,yBAG9I,IAAI8D,EAAU5F,EAAO,CAAE,EAAEtJ,EAAM+M,GAAWgC,GAC1C,IAAK,IAAInc,KAAOsc,EAAS,CACvB,IAAIX,EAAUQ,EAAWnc,GACzB,GAAI2X,EAAIwE,EAAYnc,IAA2B,mBAAZ2b,EACjC,OAAOS,EAAsB5D,EAAe9J,EAAU0L,EAAcpa,EAAKwb,EAAeG,IAE1F,IAAKA,EACH,OAAO,IAAItB,EACT,WAAa3L,EAAW,KAAO0L,EAAe,UAAYpa,EAAM,kBAAoBwY,EAApF,mBACmB8C,KAAKC,UAAUnO,EAAM+M,GAAW,KAAM,MACzD,iBAAmBmB,KAAKC,UAAU/T,OAAO0P,KAAKiF,GAAa,KAAM,OAGrE,IAAI/P,EAAQuP,EAAQrB,EAAWta,EAAKwY,EAAe9J,EAAU0L,EAAe,IAAMpa,EAAKiY,GACvF,GAAI7L,EACF,OAAOA,CAEV,CACD,OAAO,IACR,GAGF,GAzUD,SAASgP,EAAGnT,EAAG0K,GAEb,OAAI1K,IAAM0K,EAGK,IAAN1K,GAAW,EAAIA,GAAM,EAAI0K,EAGzB1K,GAAMA,GAAK0K,GAAMA,CAE3B,CAUD,SAAS0H,EAAc7N,EAASuP,GAC9Blb,KAAK2L,QAAUA,EACf3L,KAAKkb,KAAOA,GAAwB,iBAATA,EAAoBA,EAAM,GACrDlb,KAAK+X,MAAQ,EACd,CAID,SAASoB,EAA2BuC,GAClC,GAA6B,eAAzB9K,QAAQC,IAAIC,SACd,IAAI6K,EAA0B,CAAA,EAC1BC,EAA6B,EAEnC,SAASC,EAAUC,EAAYvP,EAAO+M,EAAU3B,EAAe9J,EAAU0L,EAAcwC,GAIrF,GAHApE,EAAgBA,GAAiBe,EACjCa,EAAeA,GAAgBD,EAE3ByC,IAAW3E,EAAsB,CACnC,GAAIkB,EAAqB,CAEvB,IAAIhC,EAAM,IAAIzK,MACZ,qLAKF,MADAyK,EAAIjU,KAAO,sBACLiU,CAChB,CAAe,GAA6B,eAAzB1F,QAAQC,IAAIC,UAAgD,oBAAZyE,QAAyB,CAElF,IAAIyG,EAAWrE,EAAgB,IAAM2B,GAElCqC,EAAwBK,IAEzBJ,EAA6B,IAE7BpE,EACE,2EACuB+B,EAAe,cAAgB5B,EADtD,wNAMFgE,EAAwBK,IAAY,EACpCJ,IAEH,CACF,CACD,OAAuB,MAAnBrP,EAAM+M,GACJwC,EACsB,OAApBvP,EAAM+M,GACD,IAAIE,EAAc,OAAS3L,EAAW,KAAO0L,EAA3B,+BAAiF5B,EAAgB,+BAErH,IAAI6B,EAAc,OAAS3L,EAAW,KAAO0L,EAA3B,+BAAiF5B,EAAgB,oCAErH,KAEA+D,EAASnP,EAAO+M,EAAU3B,EAAe9J,EAAU0L,EAE7D,CAED,IAAI0C,EAAmBJ,EAAU7E,KAAK,MAAM,GAG5C,OAFAiF,EAAiBH,WAAaD,EAAU7E,KAAK,MAAM,GAE5CiF,CACR,CAED,SAASpD,EAA2BuC,GAiBlC,OAAOjC,GAhBP,SAAkB5M,EAAO+M,EAAU3B,EAAe9J,EAAU0L,EAAcwC,GACxE,IAAItC,EAAYlN,EAAM+M,GAEtB,OADeI,EAAYD,KACV2B,EAMR,IAAI5B,EACT,WAAa3L,EAAW,KAAO0L,EAA/B,cAHgBoB,EAAelB,GAGmD,kBAAoB9B,EAAtG,gBAA+IyD,EAAe,KAC9J,CAACA,aAAcA,IAGZ,IACR,GAEF,CAsKD,SAASG,EAAsB5D,EAAe9J,EAAU0L,EAAcpa,EAAKZ,GACzE,OAAO,IAAIib,GACR7B,GAAiB,eAAiB,KAAO9J,EAAW,UAAY0L,EAAe,IAAMpa,EAAtF,6FACiFZ,EAAO,KAE3F,CAwDD,SAAS2b,EAAOT,GACd,cAAeA,GACb,IAAK,SACL,IAAK,SACL,IAAK,YACH,OAAO,EACT,IAAK,UACH,OAAQA,EACV,IAAK,SACH,GAAIjT,MAAMC,QAAQgT,GAChB,OAAOA,EAAUyC,MAAMhC,GAEzB,GAAkB,OAAdT,GAAsBpB,EAAeoB,GACvC,OAAO,EAGT,IAAI0C,EAjbV,SAAuBC,GACrB,IAAID,EAAaC,IAAkB7D,GAAmB6D,EAAc7D,IAAoB6D,EAAc3D,IACtG,GAA0B,mBAAf0D,EACT,OAAOA,CAEV,CA4asBE,CAAc5C,GAC/B,IAAI0C,EAqBF,OAAO,EApBP,IACIG,EADA9D,EAAW2D,EAAWrV,KAAK2S,GAE/B,GAAI0C,IAAe1C,EAAU8C,SAC3B,OAASD,EAAO9D,EAASgE,QAAQC,MAC/B,IAAKvC,EAAOoC,EAAKld,OACf,OAAO,OAKX,OAASkd,EAAO9D,EAASgE,QAAQC,MAAM,CACrC,IAAIC,EAAQJ,EAAKld,MACjB,GAAIsd,IACGxC,EAAOwC,EAAM,IAChB,OAAO,CAGZ,CAML,OAAO,EACT,QACE,OAAO,EAEZ,CA2BD,SAAShD,EAAYD,GACnB,IAAIW,SAAkBX,EACtB,OAAIjT,MAAMC,QAAQgT,GACT,QAELA,aAAqBkD,OAIhB,SAlCX,SAAkBvC,EAAUX,GAE1B,MAAiB,WAAbW,KAKCX,IAK8B,WAA/BA,EAAU,kBAKQ,mBAAXvI,QAAyBuI,aAAqBvI,OAK1D,CAcK0L,CAASxC,EAAUX,GACd,SAEFW,CACR,CAID,SAASO,EAAelB,GACtB,GAAI,MAAOA,EACT,MAAO,GAAKA,EAEd,IAAIW,EAAWV,EAAYD,GAC3B,GAAiB,WAAbW,EAAuB,CACzB,GAAIX,aAAqB3b,KACvB,MAAO,OACF,GAAI2b,aAAqBkD,OAC9B,MAAO,QAEV,CACD,OAAOvC,CACR,CAID,SAASW,EAAyB3b,GAChC,IAAIb,EAAOoc,EAAevb,GAC1B,OAAQb,GACN,IAAK,QACL,IAAK,SACH,MAAO,MAAQA,EACjB,IAAK,UACL,IAAK,OACL,IAAK,SACH,MAAO,KAAOA,EAChB,QACE,OAAOA,EAEZ,CAcD,OAxbAib,EAAc5S,UAAYiF,MAAMjF,UAobhC+R,EAAepB,eAAiBA,EAChCoB,EAAeX,kBAAoBT,EAAeS,kBAClDW,EAAekE,UAAYlE,EAEpBA,MDnlBUxB,GAAqCF,GAAQ9D,WADpC,EAE5B,MAGE+D,GAAcjG,wCGRhB,IAAImG,EAAuBvD,KAE3B,SAASiJ,IAAkB,CAC3B,SAASC,IAA2B,QACpCA,EAAuB/E,kBAAoB8E,EAE3CE,GAAiB,WACf,SAASC,EAAK1Q,EAAO+M,EAAU3B,EAAe9J,EAAU0L,EAAcwC,GACpE,GAAIA,IAAW3E,EAAf,CAIA,IAAId,EAAM,IAAIzK,MACZ,mLAKF,MADAyK,EAAIjU,KAAO,sBACLiU,CAPL,CAQL,CAEE,SAAS4G,IACP,OAAOD,CAEX,CAJEA,EAAKnB,WAAamB,EAMlB,IAAItE,EAAiB,CACnBC,MAAOqE,EACPnE,OAAQmE,EACRlE,KAAMkE,EACNjE,KAAMiE,EACNxf,OAAQwf,EACRhI,OAAQgI,EACRzf,OAAQyf,EACRhE,OAAQgE,EAER/D,IAAK+D,EACL7D,QAAS8D,EACTvD,QAASsD,EACTrD,YAAaqD,EACbpD,WAAYqD,EACZjD,KAAMgD,EACN9C,SAAU+C,EACV7C,MAAO6C,EACPtC,UAAWsC,EACX7B,MAAO6B,EACP1B,MAAO0B,EAEP3F,eAAgBwF,EAChB/E,kBAAmB8E,GAKrB,OAFAnE,EAAekE,UAAYlE,EAEpBA,GH9CUtB,KIRnB,SAAS8F,GAAa5Q,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GAC9D,MAAMI,EAAUpN,EAAM+M,GAChB8D,EAAe7D,GAAgBD,EACrC,GAAe,MAAXK,GAKc,oBAAX0D,OACL,OAAO,KAET,IAAIC,EACJ,MAAM1D,EAAcD,EAAQpb,KAa5B,MAH2B,mBAAhBqb,GA7Bb,SAA0BA,GAExB,MAAMhT,UACJA,EAAY,CAAE,GACZgT,EACJ,OAAO2D,QAAQ3W,EAAU4W,iBAC3B,CAuB4CC,CAAiB7D,KACzD0D,EAAc,oFAEIpc,IAAhBoc,EACK,IAAIzR,MAAM,WAAWgC,OAAcuP,qBAAgCzF,iDAAkE2F,uEAEvI,IACT,CAC4B7M,GAAeoM,GAAAA,QAAUlD,QAASwD,IAC1CrB,WAAarL,GAAeoM,GAAAA,QAAUlD,QAAQmC,WAAYqB,ICD/D1M,GAAeoM,GAAS5L,QAAC2I,aA9BxC,SAAiCrN,EAAO+M,EAAU3B,EAAe9J,EAAU0L,GACzE,MAAME,EAAYlN,EAAM+M,GAClB8D,EAAe7D,GAAgBD,EACrC,GAAiB,MAAbG,GAKc,oBAAX4D,OACL,OAAO,KAET,IAAIC,EAcJ,MAHyB,mBAAd7D,GA7Bb,SAA0BG,GAExB,MAAMhT,UACJA,EAAY,CAAE,GACZgT,EACJ,OAAO2D,QAAQ3W,EAAU4W,iBAC3B,CAuB0CC,CAAiBhE,KACvD6D,EAAc,yEAEIpc,IAAhBoc,EACK,IAAIzR,MAAM,WAAWgC,OAAcuP,qBAAgCzF,sDAAuE2F,uEAE5I,IACT;;;;;;;;;mBCpC6B,eAAzB1M,QAAQC,IAAIC,SACdE,GAAAC,wCCMW,IAA4be,EAAxbhM,EAAEkL,OAAOC,IAAI,iBAAiB9K,EAAE6K,OAAOC,IAAI,gBAAgBC,EAAEF,OAAOC,IAAI,kBAAkBjP,EAAEgP,OAAOC,IAAI,qBAAqB3N,EAAE0N,OAAOC,IAAI,kBAAkBE,EAAEH,OAAOC,IAAI,kBAAkBG,EAAEJ,OAAOC,IAAI,iBAAiBI,EAAEL,OAAOC,IAAI,wBAAwBK,EAAEN,OAAOC,IAAI,qBAAqBM,EAAEP,OAAOC,IAAI,kBAAkBjK,EAAEgK,OAAOC,IAAI,uBAAuB7N,EAAE4N,OAAOC,IAAI,cAAcO,EAAER,OAAOC,IAAI,cAAcS,EAAEV,OAAOC,IAAI,mBACtb,SAASpI,EAAExD,GAAG,GAAG,iBAAkBA,GAAG,OAAOA,EAAE,CAAC,IAAIoM,EAAEpM,EAAE0M,SAAS,OAAON,GAAG,KAAK3L,EAAE,OAAOT,EAAEA,EAAEhH,MAAQ,KAAK6S,EAAE,KAAK5N,EAAE,KAAKtB,EAAE,KAAKuP,EAAE,KAAKvK,EAAE,OAAO3B,EAAE,QAAQ,OAAOA,EAAEA,GAAGA,EAAE0M,UAAY,KAAKV,EAAE,KAAKD,EAAE,KAAKE,EAAE,KAAKE,EAAE,KAAKpO,EAAE,KAAK+N,EAAE,OAAO9L,EAAE,QAAQ,OAAOoM,GAAG,KAAKtL,EAAE,OAAOsL,EAAE,CAAC,QADkMK,EAAEd,OAAOC,IAAI,0BAC9MgB,GAAuBgD,gBAAC7D,EAAEa,mBAAwBd,EAAEc,GAAAI,QAAgBvM,EAAEmM,GAAAK,WAAmBhB,EAAEW,GAAgBM,SAACrB,EAAEe,GAAAiD,KAAa1D,EAAES,GAAYO,KAACpP,EAAE6O,GAAcQ,OAACtM,EAAE8L,YAAiB3O,EAAE2O,GAAAU,WAAmB3Q,EAAEiQ,GAAgBW,SAACrB,EACheU,GAAAuL,aAAqBxW,EAAEiL,GAAAY,YAAoB,WAAW,OAAM,CAAE,EAAEZ,oBAAyB,WAAW,OAAM,CAAE,EAAEA,GAAyBc,kBAAC,SAAS1N,GAAG,OAAOwD,EAAExD,KAAK+L,CAAC,EAAEa,GAAyBe,kBAAC,SAAS3N,GAAG,OAAOwD,EAAExD,KAAK8L,CAAC,EAAEc,GAAiBgB,UAAC,SAAS5N,GAAG,MAAM,iBAAkBA,GAAG,OAAOA,GAAGA,EAAE0M,WAAWjM,CAAC,EAAEmM,GAAoBiB,aAAC,SAAS7N,GAAG,OAAOwD,EAAExD,KAAKiM,CAAC,EAAEW,GAAkBkB,WAAC,SAAS9N,GAAG,OAAOwD,EAAExD,KAAK6L,CAAC,EAAEe,GAAcmB,OAAC,SAAS/N,GAAG,OAAOwD,EAAExD,KAAKmM,CAAC,EAAES,GAAcoB,OAAC,SAAShO,GAAG,OAAOwD,EAAExD,KAAKjC,CAAC,EACve6O,GAAAqD,SAAiB,SAASjQ,GAAG,OAAOwD,EAAExD,KAAKc,CAAC,EAAE8L,cAAmB,SAAS5M,GAAG,OAAOwD,EAAExD,KAAK/B,CAAC,EAAE2O,GAAoBsB,aAAC,SAASlO,GAAG,OAAOwD,EAAExD,KAAKrD,CAAC,EAAEiQ,GAAAuB,WAAmB,SAASnO,GAAG,OAAOwD,EAAExD,KAAKkM,CAAC,EAAEU,GAAAwL,eAAuB,SAASpY,GAAG,OAAOwD,EAAExD,KAAK2B,CAAC,EACxNiL,GAAAwB,mBAAC,SAASpO,GAAG,MAAM,iBAAkBA,GAAG,mBAAoBA,GAAGA,IAAI6L,GAAG7L,IAAI/B,GAAG+B,IAAIrD,GAAGqD,IAAIkM,GAAGlM,IAAI2B,GAAG3B,IAAIqM,GAAG,iBAAkBrM,GAAG,OAAOA,IAAIA,EAAE0M,WAAWP,GAAGnM,EAAE0M,WAAW3O,GAAGiC,EAAE0M,WAAWZ,GAAG9L,EAAE0M,WAAWX,GAAG/L,EAAE0M,WAAWT,GAAGjM,EAAE0M,WAAWD,QAAG,IAASzM,EAAEqY,YAAkB,EAAEzL,GAAcyB,OAAC7K,KDV9R8K,GAEjB7C,GAAAC,mBEO2B,eAAzBL,QAAQC,IAAIC,UACd,WAOF,IA2BI+M,EA3BA9J,EAAqB7C,OAAOC,IAAI,iBAChC6C,EAAoB9C,OAAOC,IAAI,gBAC/B8C,EAAsB/C,OAAOC,IAAI,kBACjC+C,EAAyBhD,OAAOC,IAAI,qBACpCgD,EAAsBjD,OAAOC,IAAI,kBACjCiD,EAAsBlD,OAAOC,IAAI,kBACjCkD,EAAqBnD,OAAOC,IAAI,iBAChC2M,EAA4B5M,OAAOC,IAAI,wBACvCqD,EAAyBtD,OAAOC,IAAI,qBACpCsD,EAAsBvD,OAAOC,IAAI,kBACjCuD,EAA2BxD,OAAOC,IAAI,uBACtCwD,EAAkBzD,OAAOC,IAAI,cAC7ByD,EAAkB1D,OAAOC,IAAI,cAC7B4M,EAAuB7M,OAAOC,IAAI,mBA2CtC,SAASyC,EAAOqB,GACd,GAAsB,iBAAXA,GAAkC,OAAXA,EAAiB,CACjD,IAAIhD,EAAWgD,EAAOhD,SAEtB,OAAQA,GACN,KAAK8B,EACH,IAAIxV,EAAO0W,EAAO1W,KAElB,OAAQA,GACN,KAAK0V,EACL,KAAKE,EACL,KAAKD,EACL,KAAKO,EACL,KAAKC,EACH,OAAOnW,EAET,QACE,IAAI2W,EAAe3W,GAAQA,EAAK0T,SAEhC,OAAQiD,GACN,KAAK4I,EACL,KAAKzJ,EACL,KAAKG,EACL,KAAKI,EACL,KAAKD,EACL,KAAKP,EACH,OAAOc,EAET,QACE,OAAOjD,GAKjB,KAAK+B,EACH,OAAO/B,EAEZ,CAGF,CAlEC4L,EAAyB3M,OAAOC,IAAI,0BAmEtC,IAAIgE,EAAkBd,EAClB/B,EAAkB8B,EAClB7B,EAAUwB,EACVvB,EAAagC,EACb/B,EAAWwB,EACXmB,EAAOR,EACPlC,EAAOiC,EACPhC,EAASqB,EACTpB,EAAWuB,EACXtB,EAAaqB,EACbpB,EAAW2B,EACXiJ,EAAehJ,EACfW,GAAsC,EACtC2I,GAA2C,EA6DxB1I,GAAAH,gBAAGA,EACHG,GAAAhD,gBAAGA,EACXgD,GAAA/C,QAAGA,EACA+C,GAAA9C,WAAGA,EACL8C,GAAA7C,SAAGA,EACP6C,GAAAF,KAAGA,EACHE,GAAA5C,KAAGA,EACD4C,GAAA3C,OAAGA,EACD2C,GAAA1C,SAAGA,EACD0C,GAAAzC,WAAGA,EACLyC,GAAAxC,SAAGA,EACCwC,GAAAoI,aAAGA,EACJpI,GAAAvC,YAvEnB,SAAqBkC,GASnB,OAPOI,IACHA,GAAsC,EAEtCE,QAAc,KAAE,4FAIb,CACR,EA8DuBD,GAAAtC,iBA7DxB,SAA0BiC,GASxB,OAPO+I,IACHA,GAA2C,EAE3CzI,QAAc,KAAE,iGAIb,CACR,EAoDwBD,GAAArC,kBAnDzB,SAA2BgC,GACzB,OAAOrB,EAAOqB,KAAYZ,CAC3B,EAkDwBiB,GAAApC,kBAjDzB,SAA2B+B,GACzB,OAAOrB,EAAOqB,KAAYb,CAC3B,EAgDgBkB,GAAAnC,UA/CjB,SAAmB8B,GACjB,MAAyB,iBAAXA,GAAkC,OAAXA,GAAmBA,EAAOhD,WAAa8B,CAC7E,EA8CmBuB,GAAAlC,aA7CpB,SAAsB6B,GACpB,OAAOrB,EAAOqB,KAAYT,CAC3B,EA4CiBc,GAAAjC,WA3ClB,SAAoB4B,GAClB,OAAOrB,EAAOqB,KAAYhB,CAC3B,EA0CaqB,GAAAhC,OAzCd,SAAgB2B,GACd,OAAOrB,EAAOqB,KAAYL,CAC3B,EAwCaU,GAAA/B,OAvCd,SAAgB0B,GACd,OAAOrB,EAAOqB,KAAYN,CAC3B,EAsCeW,GAAAE,SArChB,SAAkBP,GAChB,OAAOrB,EAAOqB,KAAYjB,CAC3B,EAoCiBsB,GAAA9B,WAnClB,SAAoByB,GAClB,OAAOrB,EAAOqB,KAAYd,CAC3B,EAkCmBmB,GAAA7B,aAjCpB,SAAsBwB,GACpB,OAAOrB,EAAOqB,KAAYf,CAC3B,EAgCiBoB,GAAA5B,WA/BlB,SAAoBuB,GAClB,OAAOrB,EAAOqB,KAAYR,CAC3B,EA8BqBa,GAAAqI,eA7BtB,SAAwB1I,GACtB,OAAOrB,EAAOqB,KAAYP,CAC3B,EA4ByBY,GAAA3B,mBApK1B,SAA4BpV,GAC1B,MAAoB,iBAATA,GAAqC,mBAATA,GAKnCA,IAAS0V,GAAuB1V,IAAS4V,GAA8C5V,IAAS2V,GAA0B3V,IAASkW,GAAuBlW,IAASmW,GAAmDnW,IAASwf,GAI/M,iBAATxf,GAA8B,OAATA,IAC1BA,EAAK0T,WAAa2C,GAAmBrW,EAAK0T,WAAa0C,GAAmBpW,EAAK0T,WAAamC,GAAuB7V,EAAK0T,WAAaoC,GAAsB9V,EAAK0T,WAAauC,GAIjLjW,EAAK0T,WAAa4L,QAA+C3c,IAArB3C,EAAKqf,YAMpD,EAgJatI,GAAA1B,OAAGA,CACd,CA9MD,QCX8B,oBAAVyJ,QAAyBA,OAAOY,MAAQA,KAAOZ,OAAwB,oBAARa,MAAuBA,KAAKD,MAAQA,KAAOC,KAAOnH,SAAS,cAATA,GCDvH8F,GAAS5L,QAAC2J,UAAU,CAACiC,GAAAA,QAAU7D,KAAM6D,GAAAA,QAAU5H,SCD/D,MAAMkJ,GAAiB,CACrBC,OAAQ,EACRC,KAAM,gBACN5a,OAAQ,MACR6a,QAAS,EACTC,SAAU,SACV7c,QAAS,EACT8c,SAAU,WACVC,WAAY,SACZ7U,MAAO,OCoBT,MAAM3C,GAAYD,OAAOC,WAJzB,SAA2BG,GAEzB,MAAoB,iBAANA,GAAkBsX,SAAStX,IAAM6W,KAAKU,MAAMvX,KAAOA,CACnE,EAEA,SAASwX,GAAgBrS,EAAO+M,EAAU3B,EAAe9J,GACvD,MAAM4L,EAAYlN,EAAM+M,GACxB,GAAiB,MAAbG,IAAsBxS,GAAUwS,GAAY,CAC9C,MAAMW,EAjCH,SAAwBhb,GAC7B,MAAMyf,SAAmBzf,EACzB,OAAQyf,GACN,IAAK,SACH,OAAI7X,OAAO8X,MAAM1f,GACR,MAEJ4H,OAAO0X,SAAStf,GAGjBA,IAAU6e,KAAKU,MAAMvf,GAChB,QAEF,SALE,WAMX,IAAK,SACH,OAAc,OAAVA,EACK,OAEFA,EAAM4a,YAAY3X,KAC3B,QACE,OAAOwc,EAEb,CAWqBE,CAAetF,GAChC,OAAO,IAAIuF,WAAW,WAAWnR,OAAcyL,iBAAwBc,qBAA4BzC,6BACpG,CACD,OAAO,IACT,CACA,SAASsH,GAAU1S,EAAO+M,KAAa7M,GAErC,YAAkBvL,IADAqL,EAAM+M,GAEf,KAEFsF,GAAgBrS,EAAO+M,KAAa7M,EAC7C,CACA,SAASyS,KACP,OAAO,IACT,CACAD,GAAUnD,WAAa8C,GACvBM,GAAcpD,WAAaoD,GACZtO,QAAQC,IAAIC,SC3BpB,MAAMqO,GAAoB,EAC/BC,QACAC,UACAC,YACAC,mBAOEpe,EAACqe,EACC,CAAAnf,SAAAc,EAACse,EACE,CAAApf,SAAAif,EAAU/b,KAAKmc,IACdve,OAAAA,EAACwe,EACC,CAAAte,QAAQ,OAERK,QAASge,EAASE,eAAiB,OAAS,SAC5CC,cAAeR,IAAYK,EAASrhB,IAAK+gB,EACzCze,GAAI,CAAEmf,WAAY,QAAQzf,SAEzBqf,EAASK,KACRtf,EAACuf,EACC,CAAAC,OAAQZ,IAAYK,EAASrhB,GAC7B6hB,UAAWb,IAAYK,EAASrhB,GAAK+gB,EAAQ,MAC7CrU,SAnBaoV,EAmBcT,EAASrhB,GAnBD,KAC/CkhB,EAAcY,EAAS,GAkB4B9f,SAAA,CAEtCqf,EAAS1b,MACTqb,IAAYK,EAASrhB,GACpB8C,EAACN,EAAG,CAACmI,UAAU,OAAOrI,GAAIwd,GAAc9d,SAC3B,SAAV+e,EAAmB,oBAAsB,qBAE1C,QAGNM,EAAc,OAnBX3J,OAAO2J,EAASrhB,KAVL,IAAC8hB,CAgCpB,QC1BT,SAASC,GAAwB7a,EAAMS,EAAMqZ,GAC3C,OAAIrZ,EAAEqZ,GAAW9Z,EAAE8Z,IACT,EAENrZ,EAAEqZ,GAAW9Z,EAAE8Z,GACV,EAEF,CACT,CAYO,MAAMgB,GAAgB,EAC3BhgB,WACA6a,OACAoF,SACAC,UACAC,cACAC,eAAe,MACfpV,WAAU,MAEV,MAAOqV,EAAcC,GAAmB9X,EAAiB,KAClDuW,EAAOwB,GAAY/X,EAAgB4X,IACnCpB,EAASwB,GAAchY,EAAkB2X,GAQ1CM,EAAe5F,EAClBtT,QACAmZ,OA9DL,SAAsBR,EAAwBD,GAC5C,OAAQlP,IAEHkP,GACDC,EAAQS,MAAMC,IAEZ,IAAI7hB,EAASgS,EAAU6P,EAAI5iB,IAI3B,OAHIe,GAAO8hB,cACT9hB,EAAQA,EAAM8hB,eAET9hB,GAAOyH,WAAWhE,SAASyd,EAAOY,cAAc,GAI/D,CAgDYC,CAAaZ,EAASG,IAC7BX,KA/CL,SAA0BX,EAAcC,GACtC,MAAiB,SAAVD,EACH,CAAC7Z,EAAGS,IAAMoa,GAAqB7a,EAAGS,EAAGqZ,GACrC,CAAC9Z,EAAGS,KAAOoa,GAAqB7a,EAAGS,EAAGqZ,EAC5C,CA2CU+B,CAAchC,EAAOC,IAE7B,OACEle,EACE8L,EAAA,CAAA5M,SAAAI,EAACI,EAAG,CAACF,GAAI,CAAE0gB,SAAU,EAAGzgB,cAAe,GACpCP,SAAA,CAAAigB,GACCnf,EAACN,EAAG,CAACygB,SAAU,EACbjhB,SAAAc,EAACgE,EAAS,CACRjB,WACA,EAAAqd,YAAY,SACZC,WAAY,CACVlgB,KAAM,SACNmgB,eACEtgB,EAACugB,EAAe,CAAAlD,SAAS,QACvBne,SAAAc,EAACwgB,EAAM,CAAA,MAIb5d,SAAW7B,GAAqCye,EAAgBze,EAAEE,OAAOhD,WAI/E+B,EAACygB,EAAc,CAAAvhB,SACbI,EAACohB,EACC,CAAAxhB,SAAA,CAAAc,EAACge,GAAiB,CAChBC,MAAOA,EACPC,QAASA,EACTC,UAAWiB,EACXhB,cArCeY,IAEzBS,EADcvB,IAAYc,GAAsB,QAAVf,EACrB,OAAS,OAC1ByB,EAAWV,EAAS,IAoCZhf,EAAC2gB,EACE,CAAAzhB,SAAAgL,EACClK,EAACse,EACC,CAAApf,SAAAc,EAACwe,EAAS,CAACoC,QAASxB,EAAQ3a,OAAQjF,GAAI,CAAE8J,UAAW,UACnDpK,SAAAc,EAAC0I,EAAgB,QAGK,IAAxBiX,EAAalb,OACfzE,EAACse,EAAQ,CAAApf,SACPc,EAACwe,EAAS,CAACoC,QAASxB,EAAQ3a,OAAQjF,GAAI,CAAE8J,UAAW,UAAUpK,SAAA,cAKjEA,EAASygB,cAOrB,EAGJT,GAAc2B,aAAe,CAC3BvB,aAAc,OC1HhB,MAoBawB,GAAY,EACvB1B,QAAS2B,EACTC,UACAjH,OACAnQ,UACAuV,SACAE,cACAC,eACApV,cAEA,MAAMkV,EAAU,IACX2B,EACH,CACE7jB,GAjCY,YAkCZ2F,MAAO,GACP4b,gBAAgB,EAChBwC,SAAS,EACTrC,MAAM,KAGHsC,EAAcC,GAAmBzZ,EAAkD,MAE1F,OACEpI,EACEwM,EAAA,CAAA5M,SAAA,CAAAc,EAACkf,GACC,CAAAE,QAASA,EACTrF,KAAMA,EACNoF,OAAQA,EACRE,YAAaA,EACbC,aAAcA,EACdpV,QAASA,EAERhL,SAACygB,GACAA,EAAavd,KAAI,CAACgf,EAAKhT,IAEnB9O,EAACgf,EAAQ,CAEP1U,QAAS,IAAMA,GAAWA,EAAQwX,GAClCjhB,KAAK,MACU,gBAAAiO,EACf5O,GAAI,CAAE6hB,OAAQzX,GAAW,WAAW1K,SAAA,CAEnCkgB,EAAQhd,KAAI,EAAGlF,MAAMokB,IACpBthB,EAACwe,GACCre,KAAK,OACLohB,MAAM,MAAK,gBAEInT,EACA,gBAAAkT,WAGbF,EACElkB,IANCA,EAAGwI,cAWXsb,GACChhB,EAACwe,EAAS,CAAAtf,SACRc,EAACwhB,EAAU,CAAA,cACI,WAAWJ,EAAIlkB,KAC5B0M,QAAU6X,IACRA,EAAMC,kBACNP,EAAgB,CACdjd,KAAMkd,EACNO,OAAQF,EAAMG,eACd,EAGJ1iB,SAAAc,EAAC6hB,EAAY,UAjCdT,EAAIlkB,QA0ClB8jB,GACChhB,EAAC8hB,EAAI,CACHC,SAAUb,GAAcS,OACxBK,OAAQd,EACRe,QAAS,IAAMd,EAAgB,MAC/Be,aAAc,CACZC,SAAU,MACVC,WAAY,QAEdC,gBAAiB,CACfF,SAAU,MACVC,WAAY,QAGbljB,SAAA8hB,EAAQ5e,KAAI,EAAGlF,KAAI2F,QAAO+G,aACzB5J,EAACoD,EAEC,CAAAwG,QAAS,KACHsX,GACFtX,EAAQsX,GAAchd,MAExBid,EAAgB,KAAK,EACtBjiB,SAEA2D,GARI3F,SAcf,EChGSolB,GAAa,EACxBvb,QACA6H,YACA2T,WACAC,cACAC,gBACA5T,WAAW,GACX6T,iBAAgB,EAChBC,iBAAgB,EAChBC,cAAa,EACbC,kBAAiB,EACjBC,gBACAC,wBAEA,MAAM3a,EAAWC,IAEjBC,GAAU,KACRwa,GAAe,GACd,IAEHlY,GACE,CACE7L,MAAO,eACPyL,QAAS,yCACT4E,SAAU,aAEVqT,EAAcpT,QAChB,CAAErH,MAAM,EAAOC,IAAI,IAGrB2C,GACE,CAAE7L,MAAO,kBAAmByL,QAASiY,EAAcrY,OAAS,GAAIgF,SAAU,WACxEqT,EAAcrY,MAChB,CAAEpC,MAAM,EAAOC,IAAI,IAGrB,MAAM+a,EAAsBH,EACvB3e,IACCkE,EAAS,GAAGyG,KAAY3K,EAAKhH,KAAK,OAEpC6C,EAEEkjB,EAAwB,CAACC,EAA6Bhf,KACzC,SAAbgf,EACF9a,EAAS,GAAGyG,KAAY3K,EAAKhH,aAE7B6lB,EAAkB7e,EACnB,EAGG8c,EAA+B,GAErC2B,GACE3B,EAAQhH,KAAK,CACX9c,GAAI,OACJ2F,MAAO,OACP+G,QAAU1F,GAAY+e,EAAsB,OAAQ/e,KAGxDwe,GACE1B,EAAQhH,KAAK,CACX9c,GAAI,SACJ2F,MAAO,SACP+G,QAAU1F,GAAY+e,EAAsB,SAAU/e,KAG1D,MAAMkF,EAA0B,GAShC,OAPAwZ,GACExZ,EAAQ4Q,KAAK,CACX9c,GAAI,MACJwM,KAAM,MACNC,KAAM,GAAGkF,UAIXvP,EAAC2K,GAAa,CAAAC,QAASsY,EAAYtY,SAAWuY,EAAcvY,QAC1DhL,SAAA,CAAAc,EAACiM,GAAM,CACLlN,MAAO6P,EACPxC,OAAO,UACPhD,QAASA,EAAQ3E,OAAS,EAAI2E,OAAUrJ,IAE1CC,EAACyO,GAAO,CAAAvP,SACNc,EAAC8gB,IACC1B,QAASrY,EAAMM,OACZuY,QAAO,EAAGuD,cAAeA,IACzB/gB,KAAI,EAAGlF,KAAIgE,OAAM9D,WAAY,CAC5BqhB,gBAAgB,EAChBvhB,KACA2F,MAAO3B,EACP+f,QAAkB,WAAT7jB,EACTwhB,MAAM,MAEV7E,KAAMwI,EACNlD,YAAatY,EAAMM,OAAO,GAAGnK,GAC7B0M,QAASoZ,EACThC,QAASA,EAAQvc,OAAS,EAAIuc,OAAUjhB,QAI9C,ECtHSqjB,GAAY,EACvBrc,QACA6H,YACAC,WAAW,GACXwU,kBACAC,qBAEA1Y,GACE,CAAEJ,QAAS,0BAA2B4E,SAAU,aAC9CkU,EAAejU,QACjB,CAAErH,MAAM,EAAOC,IAAI,IAErBF,GAA4B,GAAG8G,OAAeyU,EAAejU,QAAS,CAAErH,MAAM,EAAOC,IAAI,IACzF2C,GACE,CAAE7L,MAAO,kBAAmByL,QAAS8Y,EAAelZ,OAAS,GAAIgF,SAAU,WACzEkU,EAAelZ,MACjB,CAAEpC,MAAM,EAAOC,IAAI,IAInB3I,EAAC2K,GAAa,CAAAC,QAASoZ,EAAepZ,QAAOhL,SAAA,CAC3Cc,EAACiM,IACClN,MAAO,OAAO6P,IACdxC,OAAO,UACPE,YAAa,CACX,CACEpP,GAAI,OACJwM,KAAMkF,EACNV,KAAM,GAAGW,MAEX,CACE3R,GAAI,MACJwM,KAAM,WAAWkF,IACjBV,KAAM,GAAGW,YAIf7O,EAACyO,GAAO,CAAAvP,SACNc,EAAC8G,GAAS,CAACC,MAAOA,EAAOC,eAAe,OAAOC,SAAUoc,UC/CpDE,GAAmB,EAAGC,gBAAeC,gBAAejkB,QAE7DF,EAACihB,EAAe,CAAAlD,SAAS,MAAM7d,GAAIA,EAAEN,SAAA,CACnCc,EAAC8H,EAAM,CACL5H,QAAQ,YACR+B,KAAK,QACLsH,MAAM,QAAO,aACF,gBACXsE,UAAW7N,EAAC0jB,GAAS,CAAClkB,GAAI,CAAEqM,SAAU,MACtCjC,QAAS4Z,EACThkB,GAAI,CAAEmkB,aAAc,EAAGC,SAAU,EAAGC,YAAa,KAEnD7jB,EAAC8H,EACC,CAAA5H,QAAQ,YACR+B,KAAK,QACLsH,MAAM,UAAS,aACJ,gBACXsE,UAAW7N,EAAC8jB,IAAUtkB,GAAI,CAAEqM,SAAU,MACtCjC,QAAS6Z,EACTjkB,GAAI,CAAEmkB,aAAc,EAAGC,SAAU,QAS5BG,GAA0B,CACrC7lB,EACA8lB,KAEA,MAAOC,EAAWC,GAAgBxc,GAAS,IACpCyc,EAAWC,GAAgB1c,EAAwBxJ,GAEpDmmB,EAAa,KACjBH,GAAa,GACbE,EAAalmB,EAAa,EAW5B,MAAO,CAAE+lB,YAAWI,aAAYF,YAAWC,eAAcE,UATvC,KAChBJ,GAAa,EAAK,EAQgDK,WALjD,KACjBP,EAAOG,GACPE,GAAY,EAGkE,EAQrEG,GAAkB,EAAGrlB,QAAOyK,cACvC,MAAMxK,WAAEA,GAAe3B,IACvB,OACEuC,EAACwhB,EACC,CAAAvf,KAAK,QACL2H,QAASA,EACTpK,GAAI,CAAEilB,GAAItlB,EAAQ,GAAM,GAAG,aAChB,cAEXD,SAAAc,EAAC0kB,GAAQ,CAACllB,GAAI,CAAEqM,SAAUzM,EAAWgB,QAAQjB,EAAQ,GAAK,QAE5D,EC7ESwlB,GAA0B9hB,GACrC,SAASA,EAAM+hB,QAAQ,KAAM,OA2ClBC,GAAe,EAC1BhiB,QACAiiB,YACAC,UACAC,oBAAoB,IACpB9lB,WACAC,QACAK,SAEA,MAAMJ,WAAEA,GAAe3B,IACjBP,EAAKynB,GAAuB9hB,GAElC,OACEvD,EAACI,EAAG,CAAC+I,MAAO,EAAG3I,WAAYX,EAAQ,OAAIY,EAAWP,GAAIA,EAAEN,SAAA,EACpD4lB,GACA9kB,EAACC,GACCC,QAASf,EAAQ,UAAY,YAC7BgB,KAAK,QACLjD,GAAIA,EACJ4C,WAAYX,EAAQC,EAAWgB,QAAQ,SAAML,EAE5Cb,SAAA2D,IAGJkiB,EACC/kB,EAACilB,GAAQ,CAAAlmB,MAAOgmB,EAASG,UAAU,MAAMC,WAAYH,WAClD9lB,IACO,IAKd,EC5DSkmB,GAAe,EAC1BviB,QACA5E,QACAmiB,cCWgC,IDVhCiF,WACAlmB,QACA6kB,SAAS,KAAM,UAEf,MAAM9mB,EAAKynB,GAAuB9hB,IAC5BzD,WAAEA,GAAe3B,KACjBwmB,UAAEA,EAASE,UAAEA,EAASG,UAAEA,EAASD,WAAEA,EAAUD,aAAEA,EAAYG,WAAEA,GACjER,GAAwB9lB,EAAO+lB,GAE3BsB,EAAS,CAAEzZ,SAAU1M,EAAQC,EAAWmmB,GAAG1Z,SAAWzM,EAAWomB,GAAG3Z,UAE1E,OACE7L,EAAC6kB,GAAa,CAAAhiB,MAAOA,EAAO1D,MAAOA,EAChCD,SACCI,EAACI,EADFukB,EACM,CAAA1hB,QAAQ,OAAOC,WAAW,mBAC7BxC,EAACylB,GACC,CAAAxjB,KAAM9C,EAAQ,QAAU,SACxBgC,QAASgjB,EACTvhB,SAAW7B,GAAMqjB,EAAarjB,EAAEE,OAAOE,WAEzCnB,EAACujB,GAAiB,CAAAC,cAAea,EAAYZ,cAAec,MAI5D,CAAAhiB,QAAQ,OACRC,WAAW,SACM,kBAAAtF,EACjBiD,KAAK,WAAU,eACDlC,EAEbiB,SAAA,MAAUa,IAAV9B,EACC+B,EAACC,GAAWC,QAAQ,KAAMhB,SAAAkhB,IACxBniB,EACF+B,EAAC8jB,GAAU,CAAAva,MAAM,UAAU/J,GAAI8lB,IAE/BtlB,EAAC0lB,GAAU,CAAAnc,MAAM,QAAQ/J,GAAI8lB,IAE9BD,GAAYrlB,EAACwkB,GAAe,CAACrlB,MAAOA,EAAOyK,QAAS0a,QAI3D,EEtCSqB,GAAgB,EAC3B9iB,QACA5E,MAAO2nB,EACPhiB,OAAQiiB,EACRzF,cDGgC,ICFhCiF,WACAS,gBAAgB,WAChB3mB,QACA6kB,SAAS,KAAM,UAEf,MAAMC,UAAEA,EAASE,UAAEA,EAASG,UAAEA,EAASD,WAAEA,EAAUD,aAAEA,EAAYG,WAAEA,GACjER,GAAwB6B,EAAW5B,GAC/B9mB,EAAKynB,GAAuB9hB,GAC5B5E,EAAS2nB,GAAahiB,GAAOgiB,EAAWC,IAASzF,EASvD,OACEpgB,EAAC6kB,GAAY,CACXhiB,MAAOA,EACPiiB,UAAWb,EACXc,QAAS9mB,EACTkB,MAAOA,EACPK,GAAI,CAAE+C,QAAS,OAAQ8G,cAAe,UAErCnK,SAAA+kB,EACCjkB,EAfc,aAAlB8lB,EACI/hB,GACkB,SAAlB+hB,EACAhiB,GACAiiB,GAWoB,CAClB9nB,MAAOkmB,EACPvgB,OAAQiiB,EACRhjB,MAAOA,EACPD,SAAWtB,GAAa8iB,EAAa9iB,QAAsBvB,GAC3DimB,MAAO,CACLC,UAAYC,GACVlmB,EAACgE,EAAS,IACJkiB,EACJjkB,KAAK,QACLoe,WAAY,IACP6F,EAAO7F,WACV8F,aACE7mB,EACGwM,EAAA,CAAA5M,SAAA,CAAAgnB,EAAO7F,YAAY8F,aACpBnmB,EAACujB,GAAgB,CACfC,cAAea,EACfZ,cAAec,EACf/kB,GAAI,CAAEilB,GAAI,QAIhBjlB,GAAI,CAAE4mB,QAAUjnB,EAAY,GAAJ,SAOlCG,EAACI,EAAG,CAAC6C,QAAQ,OAAOC,WAAW,SAC7BtD,SAAA,CAAAc,EAACC,EAAU,CAACC,QAASf,EAAQ,QAAU,KAAMknB,QAAwB,EAAA,kBAAAnpB,EAClEgC,SAAAjB,IAEFonB,GAAYrlB,EAACwkB,IAAgBrlB,MAAOA,EAAOyK,QAAS0a,QAI3D,EC9ESgC,GAAY,EACvBzjB,QACA5E,MAAO2nB,EACPxF,cFcgC,IEbhCiF,WACAlmB,QACA6kB,SAAS,KAAM,UAEf,MAAMuC,EAAepe,EAAyB,OACxC8b,UAAEA,EAASE,UAAEA,EAASG,UAAEA,EAASD,WAAEA,EAAUD,aAAEA,EAAYG,WAAEA,GACjER,GAAwB6B,GAAWlgB,WAAYse,GAC3C9mB,EAAKynB,GAAuB9hB,GAC5B5E,EAAQ2nB,GAAWlgB,YAAc0a,EAEjCoG,EAAwBzlB,IACd,UAAVA,EAAE/C,KACJgmB,EAAQjjB,EAAEE,OAAehD,MAC1B,EAQH,OALAqK,GAAU,KACRie,EAAahe,SAASke,iBAAiB,WAAYD,GAC5C,IAAMD,EAAahe,SAASme,oBAAoB,WAAYF,KAClE,CAACD,EAAahe,UAGfvI,EAAC6kB,GAAY,CAACC,UAAWb,EAAWphB,MAAOA,EAAOkiB,QAAS9mB,EAAOkB,MAAOA,EAAKD,SAC3E+kB,EACCjkB,EAACgE,EAAS,CACR2iB,SAAUJ,EACVtoB,MAAOkmB,EACPthB,MAAOA,EACPZ,KAAK,QACLW,SAAW7B,GAAMqjB,EAAarjB,EAAEE,OAAOhD,OACvCoiB,WAAY,CACV8F,aACEnmB,EAACujB,GAAiB,CAAAC,cAAea,EAAYZ,cAAec,KAGhE/kB,GAAI,CAAE4mB,QAAUjnB,EAAY,EAAJ,KAG1BG,EAACW,EAAW,CAAAC,QAASf,EAAQ,QAAU,KAAMknB,QAAwB,EAAA,kBAAAnpB,EAClEgC,SAAA,CAAAjB,EACAonB,GAAYrlB,EAACwkB,GAAe,CAACrlB,MAAOA,EAAOyK,QAAS0a,QAI3D,ECtDSsC,GACL,oBADKA,GAEF,uBA0BEC,GAAgC,EAC3C3nB,WACA4nB,YAAW,KACRC,MAEH,MACMC,EA7BmB,EAACF,EAAyCvd,KACnE,MAAM0d,EAAc,SAAS1d,QACvB2d,EAAW,OAEjB,GAAKJ,EAAL,CAIA,GAAIzhB,MAAMC,QAAQwhB,GAChB,OAAOA,EAAS1kB,KAAKyC,GAAOA,EAAIoiB,EAAcC,IAGhD,GAAwB,iBAAbJ,EAAuB,CAChC,MAAMK,EAA4C,CAAA,EAIlD,OAHA3hB,OAAO4V,QAAQ0L,GAAUxf,SAAQ,EAAEtJ,EAAKC,MACtCkpB,EAAMnpB,GAAOC,EAAQgpB,EAAcC,CAAQ,IAEtCC,CACR,CAED,OAAOF,CAdN,CAciB,EASCG,CAAmBN,EADjBzpB,GAAwB,CAAEC,YAAa,IAAKC,WAAY,OAE7E,OACEyC,EAACK,EAAI,CAAC6D,MAAK,EAAAmjB,UAAWT,MAA2BG,EAAI7nB,SACnDc,EAACN,EAAG,CAAC2nB,UAAWT,GAA0BhnB,GAAI,EAAGonB,WAAYA,EAC1D9nB,SAAAA,KAGL,EC/BEooB,GAA2B,CAC/BtqB,EACAuqB,GACEpoB,SAA2C,CAAA,KAE7C,MAAMjC,GAAEA,EAAEgE,KAAEA,EAAI9D,KAAEA,GAASJ,EACrBiB,EAAQspB,EAASrqB,GACvB,MAAa,YAATE,EACK4C,EAAColB,GAAa,CAAAjmB,MAAOA,EAAO0D,MAAO3B,EAAMjD,MAAOA,IACrC,SAATb,GAA4B,SAATA,GAA4B,aAATA,EACxC4C,EAAC2lB,GAAc,CAAAxmB,MAAOA,EAAO0D,MAAO3B,EAAMjD,MAAOA,EAAe2F,OAAQ5G,EAAM4G,SAGlE,iBAAV3F,GAAuBoH,MAAMC,QAAQrH,GAGzC+B,EAACsmB,GAAS,CAACnnB,MAAOA,EAAO0D,MAAO3B,EAAMjD,MAAOA,GAAOyH,aAFlD1F,EAACsmB,GAAU,CAAAnnB,MAAOA,EAAO0D,MAAO3B,EAAMjD,MAAOqb,KAAKC,UAAUtb,IAEI,EASrEupB,GAAmB,EACvBxqB,OAASkE,OAAMU,cAAa3D,SAC5BspB,WACApoB,YAEA,MAAMigB,EAAwB,CAAC,CAAEpiB,MAAO,KAAMyqB,WAAY,KAAMhf,MAAO,KAEvExK,EAAMqJ,SAASogB,IACbtI,EAAQpF,KAAK,CACXhd,MAAO0qB,EAAOxqB,GACduqB,WAAYC,EAAOxmB,MACnB,IAGJ,MAAMymB,EAAOJ,EAASnlB,KAAI,CAACC,EAAGnF,KAAQ,CACpCA,QACGmF,MAGL,OACErC,EAAClB,GAAe,CAAAC,MAAOmC,EAAMlC,SAAU4C,EAAazC,MAAOA,EAAKD,SAC9Dc,EAACK,EAAK,CAAA6D,MAAK,EAAA/F,GAAI,GACbe,SAAAc,EAAC4nB,GAAQ,CACPD,KAAMA,EACNvI,QAASA,EACTyI,QAAS1oB,EAAQ,UAAY,WAC7B2oB,4BACA,EAAAC,gBAAiB,CAAC,GAClBC,aAAc,CACZC,WAAY,CACVC,gBAAiB,CACfC,SAAU,KAIhB3oB,GAAI,CAAE8C,OAAQ,UAIpB,EASE8lB,GAAoB,EACxBprB,OAASkE,OAAMU,cAAa3D,SAC5BspB,WACApoB,YAEA,MAAMpB,EAAqBH,KAE3B,OACEoC,EAAClB,GAAc,CAACC,MAAOmC,EAAMlC,SAAU4C,EAAazC,MAAOA,EAAKD,SAC7DjB,EAAMmE,KAAKpF,IACV,MAAME,GAAEA,EAAEiB,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,EAAEC,GAAEA,GAAOvB,EAC7B8pB,EAAW/oB,EAAmBS,UAAUxB,GAC9C,OACEgD,EAAC6mB,IAAmB1oB,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIuoB,SAAUA,EACnE5nB,SAAAooB,GAAyBtqB,EAAOuqB,EAAU,CAAEpoB,WAD/BjC,EAGhB,KAGN,EASSmrB,GAAgB,EAC3BthB,QACAwgB,WACApoB,YAEA,MAAMpB,EAAqBH,KAC3B,OACEoC,EAACK,EAAK,CAAAC,WAAU,EAAA4B,QAAS/C,EAAQ,EAAI,EAClCD,SAAA6H,EAAMM,OAAOjF,KAAKpF,IACjB,MAAME,GAAEA,EAAEE,KAAEA,EAAIe,GAAEA,EAAK,EAACC,GAAEA,EAAK,EAACC,GAAEA,EAAK,EAACC,GAAEA,EAAK,EAACC,GAAEA,EAAK,GAAMvB,EAE7D,GAAa,UAATI,EAEF,OADAW,EAAmBS,UAAU,CAAEL,GAAI,KAEjC6B,EAACK,EAAI,CAAC6D,MAAc,EAAA/F,GAAI,GACtBe,SAAAc,EAACooB,GAAiB,CAChBprB,MAAOA,EACPuqB,SAAUA,EAASrqB,GACnBiC,MAAOA,KAJKjC,GAUpB,GAAa,YAATE,EAEF,OADAW,EAAmBS,UAAU,CAAEL,GAAI,KAEjC6B,EAACK,EAAI,CAAC6D,MAAc,EAAA/F,GAAI,GACtBe,SAAAc,EAACwnB,GAAgB,CAACxqB,MAAOA,EAAOuqB,SAAUA,EAASrqB,GAAYiC,MAAOA,KADxDjC,GAMpB,MAAM4pB,EAAW/oB,EAAmBS,UAAUxB,GAC9C,OACEgD,EAAC6mB,IAAmB1oB,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIC,GAAIA,EAAIuoB,SAAUA,EACnE5nB,SAAAooB,GAAyBtqB,EAAOuqB,EAAU,CAAEpoB,WAD/BjC,EAGhB,KAGN,ECvISorB,GAAgB,EAC3BvhB,QACA6H,YACAC,WAAW,GACX0Z,gBACAC,cACAC,kBAEA,MAAMvrB,GAAEA,EAAK,IAAOiS,IAMpB,OAJA7G,GAAU,KACRigB,EAAcrrB,EAAG,GAChB,CAACA,IAGFoC,EAAC2K,GAAY,CAACC,QAASse,EAAYte,QACjChL,SAAA,CAAAc,EAACiM,GACC,CAAAlN,MAAO7B,EACPkP,OAAO,UACPE,YAAa,CACX,CACEpP,GAAI,OACJwM,KAAMkF,EACNV,KAAM,GAAGW,MAEX,CACE3R,GAAI,SACJwM,KAAMxM,EACNgR,KAAM,GAAGW,KAAY3R,QAI3B8C,EAACyO,GAAO,CAAAvP,SAAEupB,GAAezoB,EAACqoB,GAAc,CAAAthB,MAAOA,EAAOwgB,SAAUkB,QAElE,EC7CSC,GAA6Ctd,IACxD,MAAMuX,cAAEA,GAAgB,EAAIC,WAAEA,GAAa,EAAIC,eAAEA,GAAiB,GAASzX,EAC3E,OACE9L,EAACqpB,EAAM,CAAAzpB,SAAA,CACLc,EAAC4oB,EAAK,CAACjoB,KAAK,GAAG6X,QAASxY,EAACsiB,GAAe,IAAAlX,MACvCyX,GAAkB7iB,EAAC4oB,GAAMjoB,KAAK,MAAM6X,QAASxY,EAACsoB,GAAa,IAAKld,MAChEwX,GAAc5iB,EAAC4oB,EAAM,CAAAjoB,KAAK,MAAM6X,QAASxY,EAACojB,GAAS,IAAKhY,MACxDuX,GAAiB3iB,EAAC4oB,EAAM,CAAAjoB,KAAK,aAAa6X,QAASxY,EAAC2O,OAAiBvD,QAExE,ECpBSyd,GAA4B,CACvCC,MAAM,GAGKC,GAA+B,CAC1C7e,SAAS,GAGE8e,GAA+B,CAC1C3Z,SAAS"}
|