@jsonforms/material-renderers 3.0.0-beta.5 → 3.0.0-rc.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/assets/js/search.json +1 -1
- package/docs/globals.html +77 -31
- package/docs/index.html +6 -0
- package/docs/interfaces/categorizationstate.html +1 -1
- package/docs/interfaces/categorizationstepperstate.html +1 -1
- package/docs/interfaces/materialcategorizationlayoutrendererprops.html +49 -4
- package/docs/interfaces/materialcategorizationstepperlayoutrendererprops.html +46 -1
- package/docs/interfaces/materiallabelablelayoutrendererprops.html +328 -0
- package/docs/interfaces/materiallayoutrendererprops.html +5 -0
- package/docs/interfaces/withoptionlabel.html +3 -3
- package/lib/additional/MaterialLabelRenderer.d.ts +3 -3
- package/lib/cells/MaterialEnumCell.d.ts +2 -1
- package/lib/cells/MaterialOneOfEnumCell.d.ts +2 -1
- package/lib/controls/MaterialEnumControl.d.ts +2 -1
- package/lib/controls/MaterialOneOfEnumControl.d.ts +2 -1
- package/lib/controls/index.d.ts +2 -2
- package/lib/jsonforms-react-material.cjs.js +82 -46
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +79 -48
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/layouts/MaterialCategorizationLayout.d.ts +4 -3
- package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +4 -3
- package/lib/layouts/MaterialGroupLayout.d.ts +2 -2
- package/lib/layouts/MaterialHorizontalLayout.d.ts +1 -1
- package/lib/layouts/MaterialVerticalLayout.d.ts +1 -1
- package/lib/mui-controls/MuiAutocomplete.d.ts +2 -2
- package/lib/mui-controls/MuiSelect.d.ts +2 -1
- package/lib/util/i18nDefaults.d.ts +3 -0
- package/lib/util/index.d.ts +1 -0
- package/lib/util/layout.d.ts +3 -0
- package/package.json +6 -6
- package/src/additional/MaterialLabelRenderer.tsx +5 -7
- package/src/cells/MaterialEnumCell.tsx +4 -3
- package/src/cells/MaterialOneOfEnumCell.tsx +3 -3
- package/src/controls/MaterialEnumControl.tsx +12 -5
- package/src/controls/MaterialOneOfEnumControl.tsx +13 -5
- package/src/layouts/MaterialCategorizationLayout.tsx +18 -9
- package/src/layouts/MaterialCategorizationStepperLayout.tsx +19 -12
- package/src/layouts/MaterialGroupLayout.tsx +6 -5
- package/src/mui-controls/MuiAutocomplete.tsx +81 -38
- package/src/mui-controls/MuiInputText.tsx +4 -1
- package/src/mui-controls/MuiSelect.tsx +10 -5
- package/src/util/i18nDefaults.ts +3 -0
- package/src/util/index.ts +1 -0
- package/src/util/layout.tsx +4 -0
- package/stats.html +1 -1
- package/test/renderers/MaterialArrayLayout.test.tsx +4 -4
- package/test/renderers/MaterialCategorizationLayout.test.tsx +17 -7
- package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +21 -11
- package/test/renderers/MaterialGroupLayout.test.tsx +4 -1
- package/test/renderers/MaterialInputControl.test.tsx +4 -0
- package/test/renderers/MaterialLabelRenderer.test.tsx +2 -1
- package/test/renderers/util.ts +5 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"jsonforms-react-material.esm.js","sources":["../src/complex/NoBorderTableCell.tsx","../src/complex/ValidationIcon.tsx","../src/complex/TableToolbar.tsx","../src/complex/MaterialTableControl.tsx","../src/complex/DeleteDialog.tsx","../src/complex/MaterialArrayControlRenderer.tsx","../src/complex/MaterialObjectRenderer.tsx","../src/complex/MaterialAllOfRenderer.tsx","../src/complex/CombinatorProperties.tsx","../src/complex/MaterialAnyOfRenderer.tsx","../src/complex/MaterialOneOfRenderer.tsx","../src/mui-controls/MuiCheckbox.tsx","../src/mui-controls/MuiSelect.tsx","../src/util/datejs.tsx","../src/util/layout.tsx","../src/util/debounce.ts","../src/util/focus.ts","../src/mui-controls/MuiInputInteger.tsx","../src/mui-controls/MuiInputNumber.tsx","../src/mui-controls/MuiInputNumberFormat.tsx","../src/mui-controls/MuiInputText.tsx","../src/mui-controls/MuiInputTime.tsx","../src/complex/MaterialEnumArrayRenderer.tsx","../src/complex/index.ts","../src/additional/MaterialLabelRenderer.tsx","../src/layouts/ArrayToolbar.tsx","../src/additional/ListWithDetailMasterItem.tsx","../src/additional/MaterialListWithDetailRenderer.tsx","../src/controls/MaterialBooleanControl.tsx","../src/mui-controls/MuiToggle.tsx","../src/controls/MaterialBooleanToggleControl.tsx","../src/controls/MaterialInputControl.tsx","../src/mui-controls/MuiAutocomplete.tsx","../src/controls/MaterialEnumControl.tsx","../src/controls/MaterialNativeControl.tsx","../src/controls/MaterialDateControl.tsx","../src/controls/MaterialDateTimeControl.tsx","../src/controls/MaterialTimeControl.tsx","../src/controls/MaterialSliderControl.tsx","../src/controls/MaterialRadioGroup.tsx","../src/controls/MaterialRadioGroupControl.tsx","../src/controls/MaterialIntegerControl.tsx","../src/controls/MaterialNumberControl.tsx","../src/controls/MaterialTextControl.tsx","../src/controls/MaterialAnyOfStringOrEnumControl.tsx","../src/controls/MaterialOneOfEnumControl.tsx","../src/controls/MaterialOneOfRadioGroupControl.tsx","../src/controls/index.ts","../src/layouts/MaterialGroupLayout.tsx","../src/layouts/MaterialHorizontalLayout.tsx","../src/layouts/MaterialVerticalLayout.tsx","../src/layouts/MaterialCategorizationLayout.tsx","../src/layouts/ExpandPanelRenderer.tsx","../src/layouts/MaterialArrayLayout.tsx","../src/layouts/MaterialArrayLayoutRenderer.tsx","../src/cells/MaterialBooleanCell.tsx","../src/cells/MaterialBooleanToggleCell.tsx","../src/cells/MaterialDateCell.tsx","../src/cells/MaterialEnumCell.tsx","../src/cells/MaterialIntegerCell.tsx","../src/cells/MaterialNumberCell.tsx","../src/cells/MaterialNumberFormatCell.tsx","../src/cells/MaterialOneOfEnumCell.tsx","../src/cells/MaterialTextCell.tsx","../src/cells/MaterialTimeCell.tsx","../src/layouts/MaterialCategorizationStepperLayout.tsx","../src/index.ts"],"sourcesContent":["/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport { styled } from '@mui/material/styles';\nimport { TableCell } from '@mui/material';\nimport React from 'react';\n\nconst StyledTableCell = styled(TableCell)({\n borderBottom: 'none'\n});\n\nconst NoBorderTableCell = ({ children, ...otherProps }: any) => (\n <StyledTableCell {...otherProps}>\n {children}\n </StyledTableCell>\n);\n\nexport default (NoBorderTableCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\n\nimport ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';\nimport {\n Badge,\n Tooltip,\n styled\n} from '@mui/material';\n\nconst StyledBadge = styled(Badge)(({ theme }: any) => ({\n color: theme.palette.error.main\n}));\n\nexport interface ValidationProps {\n errorMessages: string;\n id: string;\n}\n\nconst ValidationIcon: React.FC<ValidationProps> =\n ({ errorMessages, id }) => {\n return (\n <Tooltip\n id={id}\n title={errorMessages}\n >\n <StyledBadge badgeContent={errorMessages.split('\\n').length}>\n <ErrorOutlineIcon color='inherit'/>\n </StyledBadge>\n </Tooltip>\n );\n};\n\nexport default ValidationIcon;\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlElement,\n createDefaultValue,\n JsonSchema,\n} from '@jsonforms/core';\nimport {\n IconButton,\n TableRow,\n Tooltip\n} from '@mui/material';\nimport { Grid, Hidden, Typography } from '@mui/material';\nimport AddIcon from '@mui/icons-material/Add';\nimport ValidationIcon from './ValidationIcon';\nimport NoBorderTableCell from './NoBorderTableCell';\n\nexport interface MaterialTableToolbarProps {\n numColumns: number;\n errors: string;\n label: string;\n path: string;\n uischema: ControlElement;\n schema: JsonSchema;\n rootSchema: JsonSchema;\n enabled: boolean;\n addItem(path: string, value: any): () => void;\n}\n\nconst fixedCellSmall = {\n paddingLeft: 0,\n paddingRight: 0,\n}\n\nconst TableToolbar = React.memo(\n ({\n numColumns,\n errors,\n label,\n path,\n addItem,\n schema,\n enabled\n }: MaterialTableToolbarProps) => (\n <TableRow>\n <NoBorderTableCell colSpan={numColumns}>\n <Grid\n container\n justifyContent={'flex-start'}\n alignItems={'center'}\n spacing={2}\n >\n <Grid item>\n <Typography variant={'h6'}>{label}</Typography>\n </Grid>\n <Grid item>\n <Hidden smUp={errors.length === 0}>\n <Grid item>\n <ValidationIcon\n id='tooltip-validation'\n errorMessages={errors}\n />\n </Grid>\n </Hidden>\n </Grid>\n </Grid>\n </NoBorderTableCell>\n {enabled ? (\n <NoBorderTableCell align='right' style={ fixedCellSmall }>\n <Tooltip\n id='tooltip-add'\n title={`Add to ${label}`}\n placement='bottom'\n >\n <IconButton\n aria-label={`Add to ${label}`}\n onClick={addItem(path, createDefaultValue(schema))}\n size='large'>\n <AddIcon />\n </IconButton>\n </Tooltip>\n </NoBorderTableCell>\n ) : null}\n </TableRow>\n )\n);\n\nexport default TableToolbar;\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport union from 'lodash/union';\nimport {\n DispatchCell,\n JsonFormsStateContext,\n useJsonForms\n} from '@jsonforms/react';\nimport startCase from 'lodash/startCase';\nimport range from 'lodash/range';\nimport React, { Fragment, useMemo } from 'react';\nimport {\n FormHelperText,\n Grid,\n Hidden,\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography\n} from '@mui/material';\nimport {\n ArrayLayoutProps,\n ControlElement,\n errorsAt,\n formatErrorMessage,\n JsonSchema,\n Paths,\n Resolve,\n JsonFormsRendererRegistryEntry,\n JsonFormsCellRendererRegistryEntry,\n encode\n} from '@jsonforms/core';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport ArrowDownward from '@mui/icons-material/ArrowDownward';\nimport ArrowUpward from '@mui/icons-material/ArrowUpward';\n\nimport { WithDeleteDialogSupport } from './DeleteDialog';\nimport NoBorderTableCell from './NoBorderTableCell';\nimport TableToolbar from './TableToolbar';\nimport { ErrorObject } from 'ajv';\nimport merge from 'lodash/merge';\n\n// we want a cell that doesn't automatically span\nconst styles = {\n fixedCell: {\n width: '150px',\n height: '50px',\n paddingLeft: 0,\n paddingRight: 0,\n textAlign: 'center'\n },\n fixedCellSmall: {\n width: '50px',\n height: '50px',\n paddingLeft: 0,\n paddingRight: 0,\n textAlign: 'center'\n }\n};\n\nconst generateCells = (\n Cell: React.ComponentType<OwnPropsOfNonEmptyCell | TableHeaderCellProps>,\n schema: JsonSchema,\n rowPath: string,\n enabled: boolean,\n cells?: JsonFormsCellRendererRegistryEntry[]\n) => {\n if (schema.type === 'object') {\n return getValidColumnProps(schema).map(prop => {\n const cellPath = Paths.compose(rowPath, prop);\n const props = {\n propName: prop,\n schema,\n title: schema.properties?.[prop]?.title ?? startCase(prop),\n rowPath,\n cellPath,\n enabled,\n cells\n };\n return <Cell key={cellPath} {...props} />;\n });\n } else {\n // primitives\n const props = {\n schema,\n rowPath,\n cellPath: rowPath,\n enabled\n };\n return <Cell key={rowPath} {...props} />;\n }\n};\n\nconst getValidColumnProps = (scopedSchema: JsonSchema) => {\n if (scopedSchema.type === 'object' && typeof scopedSchema.properties === 'object') {\n return Object.keys(scopedSchema.properties).filter(\n prop => scopedSchema.properties[prop].type !== 'array'\n );\n }\n // primitives\n return [''];\n};\n\nexport interface EmptyTableProps {\n numColumns: number;\n}\n\nconst EmptyTable = ({ numColumns }: EmptyTableProps) => (\n <TableRow>\n <NoBorderTableCell colSpan={numColumns}>\n <Typography align='center'>No data</Typography>\n </NoBorderTableCell>\n </TableRow>\n);\n\ninterface TableHeaderCellProps {\n title: string;\n}\n\nconst TableHeaderCell = React.memo(({ title }: TableHeaderCellProps) => (\n <TableCell>{title}</TableCell>\n));\n\ninterface NonEmptyCellProps extends OwnPropsOfNonEmptyCell {\n rootSchema: JsonSchema;\n errors: string;\n path: string;\n enabled: boolean;\n}\ninterface OwnPropsOfNonEmptyCell {\n rowPath: string;\n propName?: string;\n schema: JsonSchema;\n enabled: boolean;\n renderers?: JsonFormsRendererRegistryEntry[];\n cells?: JsonFormsCellRendererRegistryEntry[];\n}\nconst ctxToNonEmptyCellProps = (\n ctx: JsonFormsStateContext,\n ownProps: OwnPropsOfNonEmptyCell\n): NonEmptyCellProps => {\n const path =\n ownProps.rowPath +\n (ownProps.schema.type === 'object' ? '.' + ownProps.propName : '');\n const errors = formatErrorMessage(\n union(\n errorsAt(\n path,\n ownProps.schema,\n p => p === path\n )(ctx.core.errors).map((error: ErrorObject) => error.message)\n )\n );\n return {\n rowPath: ownProps.rowPath,\n propName: ownProps.propName,\n schema: ownProps.schema,\n rootSchema: ctx.core.schema,\n errors,\n path,\n enabled: ownProps.enabled,\n cells: ownProps.cells || ctx.cells,\n renderers: ownProps.renderers || ctx.renderers\n };\n};\n\nconst controlWithoutLabel = (scope: string): ControlElement => ({\n type: 'Control',\n scope: scope,\n label: false\n});\n\ninterface NonEmptyCellComponentProps {\n path: string,\n propName?: string,\n schema: JsonSchema,\n rootSchema: JsonSchema,\n errors: string,\n enabled: boolean,\n renderers?: JsonFormsRendererRegistryEntry[],\n cells?: JsonFormsCellRendererRegistryEntry[],\n isValid: boolean\n}\nconst NonEmptyCellComponent = React.memo(({path, propName, schema, rootSchema, errors, enabled, renderers, cells, isValid}:NonEmptyCellComponentProps) => {\n return (\n <NoBorderTableCell>\n {schema.properties ? (\n <DispatchCell\n schema={Resolve.schema(\n schema,\n `#/properties/${encode(propName)}`,\n rootSchema\n )}\n uischema={controlWithoutLabel(`#/properties/${encode(propName)}`)}\n path={path}\n enabled={enabled}\n renderers={renderers}\n cells={cells}\n />\n ) : (\n <DispatchCell\n schema={schema}\n uischema={controlWithoutLabel('#')}\n path={path}\n enabled={enabled}\n renderers={renderers}\n cells={cells}\n />\n )}\n <FormHelperText error={!isValid}>{!isValid && errors}</FormHelperText>\n </NoBorderTableCell>\n );\n});\n\nconst NonEmptyCell = (ownProps: OwnPropsOfNonEmptyCell) => {\n const ctx = useJsonForms();\n const emptyCellProps = ctxToNonEmptyCellProps(ctx, ownProps);\n\n const isValid = isEmpty(emptyCellProps.errors);\n return <NonEmptyCellComponent {...emptyCellProps} isValid={isValid}/>\n};\n\ninterface NonEmptyRowProps {\n childPath: string;\n schema: JsonSchema;\n rowIndex: number;\n moveUpCreator: (path:string, position: number)=> ()=> void;\n moveDownCreator: (path:string, position: number)=> ()=> void;\n enableUp: boolean;\n enableDown: boolean;\n showSortButtons: boolean;\n enabled: boolean;\n cells?: JsonFormsCellRendererRegistryEntry[];\n path: string;\n}\n\nconst NonEmptyRowComponent = \n ({\n childPath,\n schema,\n rowIndex,\n openDeleteDialog,\n moveUpCreator,\n moveDownCreator,\n enableUp,\n enableDown,\n showSortButtons,\n enabled,\n cells,\n path\n }: NonEmptyRowProps & WithDeleteDialogSupport) => {\n const moveUp = useMemo(() => moveUpCreator(path, rowIndex),[moveUpCreator, path, rowIndex]);\n const moveDown = useMemo(() => moveDownCreator(path, rowIndex),[moveDownCreator, path, rowIndex]);\n return (\n <TableRow key={childPath} hover>\n {generateCells(NonEmptyCell, schema, childPath, enabled, cells)}\n {enabled ? (\n <NoBorderTableCell\n style={showSortButtons ? styles.fixedCell : styles.fixedCellSmall}\n >\n <Grid\n container\n direction='row'\n justifyContent='flex-end'\n alignItems='center'\n >\n {showSortButtons ? (\n <Fragment>\n <Grid item>\n <IconButton aria-label={`Move up`} onClick={moveUp} disabled={!enableUp} size='large'>\n <ArrowUpward />\n </IconButton>\n </Grid>\n <Grid item>\n <IconButton\n aria-label={`Move down`}\n onClick={moveDown}\n disabled={!enableDown}\n size='large'>\n <ArrowDownward />\n </IconButton>\n </Grid>\n </Fragment>\n ) : null}\n <Grid item>\n <IconButton\n aria-label={`Delete`}\n onClick={() => openDeleteDialog(childPath, rowIndex)}\n size='large'>\n <DeleteIcon />\n </IconButton>\n </Grid>\n </Grid>\n </NoBorderTableCell>\n ) : null}\n </TableRow>\n );\n };\nexport const NonEmptyRow = React.memo(NonEmptyRowComponent);\ninterface TableRowsProp {\n data: number;\n path: string;\n schema: JsonSchema;\n uischema: ControlElement;\n config?: any;\n enabled: boolean;\n cells?: JsonFormsCellRendererRegistryEntry[];\n moveUp?(path: string, toMove: number): () => void;\n moveDown?(path: string, toMove: number): () => void;\n}\nconst TableRows = ({\n data,\n path,\n schema,\n openDeleteDialog,\n moveUp,\n moveDown,\n uischema,\n config,\n enabled,\n cells\n}: TableRowsProp & WithDeleteDialogSupport) => {\n const isEmptyTable = data === 0;\n\n if (isEmptyTable) {\n return <EmptyTable numColumns={getValidColumnProps(schema).length + 1} />;\n }\n\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <React.Fragment>\n {range(data).map((index: number) => {\n const childPath = Paths.compose(path, `${index}`);\n\n return (\n <NonEmptyRow\n key={childPath}\n childPath={childPath}\n rowIndex={index}\n schema={schema}\n openDeleteDialog={openDeleteDialog}\n moveUpCreator={moveUp}\n moveDownCreator={moveDown}\n enableUp={index !== 0}\n enableDown={index !== data - 1}\n showSortButtons={appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayTableSortButtons}\n enabled={enabled}\n cells={cells}\n path={path}\n />\n );\n })}\n </React.Fragment>\n );\n};\n\nexport class MaterialTableControl extends React.Component<\n ArrayLayoutProps & WithDeleteDialogSupport,\n any\n> {\n addItem = (path: string, value: any) => this.props.addItem(path, value);\n render() {\n const {\n label,\n path,\n schema,\n rootSchema,\n uischema,\n errors,\n openDeleteDialog,\n visible,\n enabled,\n cells\n } = this.props;\n\n const controlElement = uischema as ControlElement;\n const isObjectSchema = schema.type === 'object';\n const headerCells: any = isObjectSchema\n ? generateCells(TableHeaderCell, schema, path, enabled, cells)\n : undefined;\n\n return (\n <Hidden xsUp={!visible}>\n <Table>\n <TableHead>\n <TableToolbar\n errors={errors}\n label={label}\n addItem={this.addItem}\n numColumns={isObjectSchema ? headerCells.length : 1}\n path={path}\n uischema={controlElement}\n schema={schema}\n rootSchema={rootSchema}\n enabled={enabled}\n />\n {isObjectSchema && (\n <TableRow>\n {headerCells}\n {enabled ? <TableCell /> : null}\n </TableRow>\n )}\n </TableHead>\n <TableBody>\n <TableRows openDeleteDialog={openDeleteDialog} {...this.props} />\n </TableBody>\n </Table>\n </Hidden>\n );\n }\n}\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from '@mui/material';\n\nexport interface DeleteDialogProps {\n open: boolean;\n onClose(): void;\n onConfirm(): void;\n onCancel(): void;\n}\n\nexport interface WithDeleteDialogSupport {\n openDeleteDialog(path: string, data: number): void;\n}\n\nexport const DeleteDialog = React.memo(({ open, onClose, onConfirm, onCancel }: DeleteDialogProps) => {\n return (\n <Dialog\n open={open}\n keepMounted\n onClose={onClose}\n aria-labelledby='alert-dialog-confirmdelete-title'\n aria-describedby='alert-dialog-confirmdelete-description'\n >\n <DialogTitle id='alert-dialog-confirmdelete-title'>\n {'Confirm Deletion'}\n </DialogTitle>\n <DialogContent>\n <DialogContentText id='alert-dialog-confirmdelete-description'>\n Are you sure you want to delete the selected entry?\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel} color='primary'>\n No\n </Button>\n <Button onClick={onConfirm} color='primary'>\n Yes\n </Button>\n </DialogActions>\n </Dialog>\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback, useState } from 'react';\nimport { ArrayLayoutProps } from '@jsonforms/core';\nimport { withJsonFormsArrayLayoutProps } from '@jsonforms/react';\nimport { MaterialTableControl } from './MaterialTableControl';\nimport { Hidden } from '@mui/material';\nimport { DeleteDialog } from './DeleteDialog';\n\nexport const MaterialArrayControlRenderer = (props: ArrayLayoutProps) => {\n const [open, setOpen] = useState(false);\n const [path, setPath] = useState(undefined);\n const [rowData, setRowData] = useState(undefined);\n const { removeItems, visible } = props;\n\n const openDeleteDialog = useCallback((p: string, rowIndex: number) => {\n setOpen(true);\n setPath(p);\n setRowData(rowIndex);\n }, [setOpen, setPath, setRowData]);\n const deleteCancel = useCallback(() => setOpen(false), [setOpen]);\n const deleteConfirm = useCallback(() => {\n const p = path.substring(0, path.lastIndexOf(('.')));\n removeItems(p, [rowData])();\n setOpen(false);\n }, [setOpen, path, rowData]);\n const deleteClose = useCallback(() => setOpen(false), [setOpen]);\n\n return (\n <Hidden xsUp={!visible}>\n <MaterialTableControl\n {...props}\n openDeleteDialog={openDeleteDialog}\n />\n <DeleteDialog\n open={open}\n onCancel={deleteCancel}\n onConfirm={deleteConfirm}\n onClose={deleteClose}\n />\n </Hidden>\n );\n};\n\nexport default withJsonFormsArrayLayoutProps(MaterialArrayControlRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport {\n findUISchema,\n Generate,\n isObjectControl,\n RankedTester,\n rankWith,\n StatePropsOfControlWithDetail\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsDetailProps } from '@jsonforms/react';\nimport { Hidden } from '@mui/material';\nimport React, { useMemo } from 'react';\n\nexport const MaterialObjectRenderer = ({\n renderers,\n cells,\n uischemas,\n schema,\n label,\n path,\n visible,\n enabled,\n uischema,\n rootSchema\n}: StatePropsOfControlWithDetail) => {\n const detailUiSchema = useMemo(\n () =>\n findUISchema(\n uischemas,\n schema,\n uischema.scope,\n path,\n () => isEmpty(path) ? Generate.uiSchema(schema, 'VerticalLayout') : {...Generate.uiSchema(schema, 'Group'), label},\n uischema,\n rootSchema\n ),\n [uischemas, schema, uischema.scope, path, label, uischema, rootSchema]\n );\n return (\n <Hidden xsUp={!visible}>\n <JsonFormsDispatch\n visible={visible}\n enabled={enabled}\n schema={schema}\n uischema={detailUiSchema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n </Hidden>\n );\n};\n\nexport const materialObjectControlTester: RankedTester = rankWith(\n 2,\n isObjectControl\n);\n\nexport default withJsonFormsDetailProps(MaterialObjectRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { Hidden } from '@mui/material';\n\nimport {\n createCombinatorRenderInfos,\n findMatchingUISchema,\n isAllOfControl,\n JsonSchema,\n RankedTester,\n rankWith,\n StatePropsOfCombinator\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsAllOfProps } from '@jsonforms/react';\n\nexport const MaterialAllOfRenderer = ({\n schema,\n rootSchema,\n visible,\n renderers,\n cells,\n path,\n uischemas,\n uischema\n}: StatePropsOfCombinator) => {\n const delegateUISchema = findMatchingUISchema(uischemas)(\n schema,\n uischema.scope,\n path\n );\n if (delegateUISchema) {\n return (\n <Hidden xsUp={!visible}>\n <JsonFormsDispatch\n schema={schema}\n uischema={delegateUISchema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n </Hidden>\n );\n }\n const allOfRenderInfos = createCombinatorRenderInfos(\n (schema as JsonSchema).allOf,\n rootSchema,\n 'allOf',\n uischema,\n path,\n uischemas\n );\n\n return (\n <Hidden xsUp={!visible}>\n {allOfRenderInfos.map((allOfRenderInfo, allOfIndex) => (\n <JsonFormsDispatch\n key={allOfIndex}\n schema={allOfRenderInfo.schema}\n uischema={allOfRenderInfo.uischema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n ))}\n </Hidden>\n );\n};\n\nexport const materialAllOfControlTester: RankedTester = rankWith(\n 3,\n isAllOfControl\n);\n\nexport default withJsonFormsAllOfProps(MaterialAllOfRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { Generate, JsonSchema, Layout, UISchemaElement } from '@jsonforms/core';\nimport { JsonFormsDispatch } from '@jsonforms/react';\nimport omit from 'lodash/omit';\n\ninterface CombinatorPropertiesProps {\n schema: JsonSchema;\n combinatorKeyword: 'oneOf' | 'anyOf';\n path: string;\n}\n\nexport const isLayout = (uischema: UISchemaElement): uischema is Layout =>\n uischema.hasOwnProperty('elements');\n\nexport class CombinatorProperties extends React.Component<CombinatorPropertiesProps, {}> {\n\n render() {\n\n const { schema, combinatorKeyword, path } = this.props;\n\n const otherProps: JsonSchema = omit(schema, combinatorKeyword) as JsonSchema;\n const foundUISchema: UISchemaElement = Generate.uiSchema(otherProps, 'VerticalLayout');\n let isLayoutWithElements = false;\n if (foundUISchema !== null && isLayout(foundUISchema)) {\n isLayoutWithElements = foundUISchema.elements.length > 0;\n }\n\n if (isLayoutWithElements) {\n return (\n <JsonFormsDispatch\n schema={otherProps}\n path={path}\n uischema={foundUISchema}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default CombinatorProperties;\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback, useState } from 'react';\n\nimport {\n createCombinatorRenderInfos,\n isAnyOfControl,\n JsonSchema,\n RankedTester,\n rankWith,\n StatePropsOfCombinator\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsAnyOfProps } from '@jsonforms/react';\nimport { Hidden, Tab, Tabs } from '@mui/material';\nimport CombinatorProperties from './CombinatorProperties';\n\nexport const MaterialAnyOfRenderer = ({\n schema,\n rootSchema,\n indexOfFittingSchema,\n visible,\n path,\n renderers,\n cells,\n uischema,\n uischemas\n}: StatePropsOfCombinator) => {\n const [selectedAnyOf, setSelectedAnyOf] = useState(indexOfFittingSchema || 0);\n const handleChange = useCallback(\n (_ev: any, value: number) => setSelectedAnyOf(value),\n [setSelectedAnyOf]\n );\n const anyOf = 'anyOf';\n const anyOfRenderInfos = createCombinatorRenderInfos(\n (schema as JsonSchema).anyOf,\n rootSchema,\n anyOf,\n uischema,\n path,\n uischemas\n );\n\n return (\n <Hidden xsUp={!visible}>\n <CombinatorProperties\n schema={schema}\n combinatorKeyword={anyOf}\n path={path}\n />\n <Tabs value={selectedAnyOf} onChange={handleChange}>\n {anyOfRenderInfos.map(anyOfRenderInfo => (\n <Tab key={anyOfRenderInfo.label} label={anyOfRenderInfo.label} />\n ))}\n </Tabs>\n {anyOfRenderInfos.map(\n (anyOfRenderInfo, anyOfIndex) =>\n selectedAnyOf === anyOfIndex && (\n <JsonFormsDispatch\n key={anyOfIndex}\n schema={anyOfRenderInfo.schema}\n uischema={anyOfRenderInfo.uischema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n )\n )}\n </Hidden>\n );\n};\n\nexport const materialAnyOfControlTester: RankedTester = rankWith(\n 3,\n isAnyOfControl\n);\n\nexport default withJsonFormsAnyOfProps(MaterialAnyOfRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\n\nimport {\n CombinatorRendererProps,\n createCombinatorRenderInfos,\n createDefaultValue,\n isOneOfControl,\n JsonSchema,\n OwnPropsOfControl,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Hidden,\n Tab,\n Tabs\n} from '@mui/material';\nimport {\n JsonFormsDispatch,\n withJsonFormsOneOfProps\n} from '@jsonforms/react';\nimport CombinatorProperties from './CombinatorProperties';\n\nexport interface OwnOneOfProps extends OwnPropsOfControl {\n indexOfFittingSchema?: number;\n}\n\nexport const MaterialOneOfRenderer =\n ({ handleChange, schema, path, renderers, cells, rootSchema, id, visible, indexOfFittingSchema, uischema, uischemas, data }: CombinatorRendererProps) => {\n const [open, setOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(indexOfFittingSchema || 0);\n const [newSelectedIndex, setNewSelectedIndex] = useState(0);\n const handleClose = useCallback(() => setOpen(false), [setOpen]);\n const cancel = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n const oneOfRenderInfos = createCombinatorRenderInfos(\n (schema as JsonSchema).oneOf,\n rootSchema,\n 'oneOf',\n uischema,\n path,\n uischemas\n );\n\n const openNewTab = (newIndex: number) => {\n handleChange(\n path,\n createDefaultValue(oneOfRenderInfos[newIndex].schema)\n );\n setSelectedIndex(newIndex);\n }\n\n const confirm = useCallback(() => {\n openNewTab(newSelectedIndex)\n setOpen(false);\n }, [handleChange, createDefaultValue, newSelectedIndex]);\n const handleTabChange = useCallback((_event: any, newOneOfIndex: number) => {\n setNewSelectedIndex(newOneOfIndex);\n if(isEmpty(data)) {\n openNewTab(newOneOfIndex)\n } else {\n setOpen(true);\n }\n\n }, [setOpen, setSelectedIndex, data]);\n\n return (\n <Hidden xsUp={!visible}>\n <CombinatorProperties\n schema={schema}\n combinatorKeyword={'oneOf'}\n path={path}\n />\n <Tabs value={selectedIndex} onChange={handleTabChange}>\n {oneOfRenderInfos.map(oneOfRenderInfo => <Tab key={oneOfRenderInfo.label} label={oneOfRenderInfo.label} />)}\n </Tabs>\n {\n oneOfRenderInfos.map((oneOfRenderInfo, oneOfIndex) => (\n selectedIndex === oneOfIndex && (\n <JsonFormsDispatch\n key={oneOfIndex}\n schema={oneOfRenderInfo.schema}\n uischema={oneOfRenderInfo.uischema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n )\n ))\n }\n <Dialog\n open={open}\n onClose={handleClose}\n aria-labelledby='alert-dialog-title'\n aria-describedby='alert-dialog-description'\n >\n <DialogTitle id='alert-dialog-title'>{'Clear form?'}</DialogTitle>\n <DialogContent>\n <DialogContentText id='alert-dialog-description'>\n Your data will be cleared if you navigate away from this tab.\n Do you want to proceed?\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={cancel} color='primary'>\n No\n </Button>\n <Button onClick={confirm} color='primary' autoFocus id={`oneOf-${id}-confirm-yes`}>\n Yes\n </Button>\n </DialogActions>\n </Dialog>\n </Hidden>\n );\n };\n\nexport const materialOneOfControlTester: RankedTester = rankWith(3, isOneOfControl);\n\nexport default withJsonFormsOneOfProps(MaterialOneOfRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Checkbox } from '@mui/material';\nimport merge from 'lodash/merge';\n\nexport const MuiCheckbox = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };\n // !! causes undefined value to be converted to false, otherwise has no effect\n const checked = !!data;\n\n return (\n <Checkbox\n checked={checked}\n onChange={(_ev, isChecked) => handleChange(path, isChecked)}\n className={className}\n id={id}\n disabled={!enabled}\n inputProps={inputProps}\n />\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { EnumCellProps, WithClassname } from '@jsonforms/core';\n\nimport { MenuItem, Select } from '@mui/material';\nimport merge from 'lodash/merge';\n\nexport const MuiSelect = React.memo((props: EnumCellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n options,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <Select\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n value={data !== undefined ? data : ''}\n onChange={ev => handleChange(path, ev.target.value)}\n fullWidth={true}\n variant={'standard'}\n >\n {[<MenuItem value='' key={'empty'} />].concat(\n options.map(optionValue => (\n <MenuItem value={optionValue.value} key={optionValue.value}>\n {optionValue.label}\n </MenuItem>\n ))\n )}\n </Select>\n );\n});\n","import { TextField, TextFieldProps } from '@mui/material';\nimport dayjs from 'dayjs';\nimport customParsing from 'dayjs/plugin/customParseFormat';\nimport React, { useRef} from 'react';\n\n// required for the custom save formats in the date, time and date-time pickers\ndayjs.extend(customParsing);\n\nexport const createOnChangeHandler = (\n path: string,\n handleChange: (path: string, value: any) => void,\n saveFormat: string | undefined\n) => (time: dayjs.Dayjs, textInputValue: string) => {\n if (!time) {\n handleChange(path, undefined);\n return;\n }\n const result = dayjs(time).format(saveFormat);\n handleChange(path, result === 'Invalid Date' ? textInputValue : result);\n};\n\nexport const getData = (\n data: any,\n saveFormat: string | undefined\n): dayjs.Dayjs | null => {\n if (!data) {\n return null;\n }\n const dayjsData = dayjs(data, saveFormat);\n if (dayjsData.toString() === 'Invalid Date') {\n return null;\n }\n return dayjsData;\n};\n\n\ninterface InputRef {\n lastInput: string;\n toShow: string;\n}\n\ntype ResettableTextFieldProps = TextFieldProps & {\n rawValue: any;\n dayjsValueIsValid: boolean;\n valueInInputFormat: string;\n focused: boolean;\n}\n\n/**\n * The dayjs formatter/parser is very lenient and for example ignores additional digits and/or characters.\n * In these cases the input text can look vastly different than the actual value stored in the data.\n * The 'ResettableTextField' component adjusts the text field to reflect the actual value stored in the data\n * once it's no longer 'focused', i.e. when the user stops editing.\n */\nexport const ResettableTextField: React.FC<ResettableTextFieldProps> = ({ rawValue, dayjsValueIsValid, valueInInputFormat, focused, inputProps, ...props }) => {\n const value = useRef<InputRef>({ lastInput: inputProps?.value, toShow: inputProps?.value });\n if (!focused) {\n // The input text is not focused, therefore let's show the value actually stored in the data\n if (!dayjsValueIsValid) {\n // pass through the \"raw\" value in case it can't be formatted by dayjs\n value.current.toShow = typeof rawValue === 'string' || rawValue === null || rawValue === undefined ? rawValue : JSON.stringify(rawValue)\n } else {\n // otherwise use the specified format\n value.current.toShow = valueInInputFormat;\n }\n }\n if (focused && inputProps?.value !== value.current.lastInput) {\n // Show the current text the user is typing into the text input\n value.current.lastInput = inputProps?.value;\n value.current.toShow = inputProps?.value;\n }\n return <TextField {...props} inputProps={{ ...inputProps, value: value.current.toShow || '' }} />\n}\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { ComponentType } from 'react';\nimport Ajv from 'ajv';\nimport type { UISchemaElement } from '@jsonforms/core';\nimport {\n getAjv,\n JsonFormsCellRendererRegistryEntry,\n JsonFormsRendererRegistryEntry,\n JsonSchema,\n OwnPropsOfRenderer,\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, useJsonForms } from '@jsonforms/react';\nimport { Grid, Hidden } from '@mui/material';\n\nexport const renderLayoutElements = (\n elements: UISchemaElement[],\n schema: JsonSchema,\n path: string,\n enabled: boolean,\n renderers?: JsonFormsRendererRegistryEntry[],\n cells?: JsonFormsCellRendererRegistryEntry[]\n) => {\n return elements.map((child, index) => (\n <Grid item key={`${path}-${index}`} xs>\n <JsonFormsDispatch\n uischema={child}\n schema={schema}\n path={path}\n enabled={enabled}\n renderers={renderers}\n cells={cells}\n />\n </Grid>\n ));\n};\n\nexport interface MaterialLayoutRendererProps extends OwnPropsOfRenderer {\n elements: UISchemaElement[];\n direction: 'row' | 'column';\n}\nconst MaterialLayoutRendererComponent =\n ({\n visible,\n elements,\n schema,\n path,\n enabled,\n direction,\n renderers,\n cells\n }: MaterialLayoutRendererProps) => {\n if (isEmpty(elements)) {\n return null;\n } else {\n return (\n <Hidden xsUp={!visible}>\n <Grid\n container\n direction={direction}\n spacing={direction === 'row' ? 2 : 0}\n >\n {renderLayoutElements(\n elements,\n schema,\n path,\n enabled,\n renderers,\n cells\n )}\n </Grid>\n </Hidden>\n );\n }\n };\nexport const MaterialLayoutRenderer = React.memo(MaterialLayoutRendererComponent);\n\nexport interface AjvProps {\n ajv: Ajv;\n}\n\nexport const withAjvProps = <P extends {}>(Component: ComponentType<AjvProps & P>) =>\n (props: P) => {\n const ctx = useJsonForms();\n const ajv = getAjv({jsonforms: {...ctx}});\n\n return (<Component {...props} ajv={ajv} />);\n };\n","/*\n The MIT License\n \n Copyright (c) 2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport debounce from 'lodash/debounce';\nimport { useState, useCallback, useEffect } from 'react'\n\n\nconst eventToValue = (ev: any) => ev.target.value;\nexport const useDebouncedChange = (handleChange: (path: string, value: any) => void, defaultValue: any, data: any, path: string, eventToValueFunction: (ev: any) => any = eventToValue, timeout = 300): [any, React.ChangeEventHandler, () => void] => {\n const [input, setInput] = useState(data ?? defaultValue);\n useEffect(() => {\n setInput(data ?? defaultValue);\n }, [data]);\n const debouncedUpdate = useCallback(debounce((newValue: string) => handleChange(path, newValue), timeout), [handleChange, path, timeout]);\n const onChange = useCallback((ev: any) => {\n const newValue = eventToValueFunction(ev);\n setInput(newValue ?? defaultValue);\n debouncedUpdate(newValue);\n }, [debouncedUpdate, eventToValueFunction]);\n const onClear = useCallback(() => { setInput(defaultValue); handleChange(path, undefined) }, [defaultValue, handleChange, path]);\n return [input, onChange, onClear];\n};","/*\n The MIT License\n \n Copyright (c) 2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {useState, useCallback} from 'react';\n\nexport const useFocus = ():[boolean, () => void, () => void] => {\n const [focused, setFocused] = useState(false);\n const onFocus = useCallback(() => setFocused(true), []);\n const onBlur = useCallback(() => setFocused(false), []);\n return [focused, onFocus, onBlur];\n};","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange } from '../util';\n\nconst toNumber = (value: string) =>\n value === '' ? undefined : parseInt(value, 10);\nconst eventToValue = (ev:any) => toNumber(ev.target.value);\n\nexport const MuiInputInteger = React.memo( \n (props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const inputProps = { step: '1' };\n \n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);\n\n return (\n <Input\n type='number'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n inputProps={inputProps}\n fullWidth={true}\n />\n );\n });\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport {useDebouncedChange} from '../util';\n\nconst toNumber = (value: string) =>\n value === '' ? undefined : parseFloat(value);\nconst eventToValue = (ev:any) => toNumber(ev.target.value);\nexport const MuiInputNumber = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const inputProps = { step: '0.1' };\n \n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);\n\n return (\n <Input\n type='number'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n inputProps={inputProps}\n fullWidth={true}\n />\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useCallback} from 'react';\nimport { CellProps, Formatted, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange } from '../util';\n\nexport const MuiInputNumberFormat = React.memo( \n (props: CellProps & WithClassname & Formatted<number>) => {\n const {\n className,\n id,\n enabled,\n uischema,\n isValid,\n path,\n handleChange,\n schema,\n config\n } = props;\n const maxLength = schema.maxLength;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n let inputProps;\n if (appliedUiSchemaOptions.restrict) {\n inputProps = { maxLength: maxLength };\n } else {\n inputProps = {};\n }\n const formattedNumber = props.toFormatted(props.data);\n\n const validStringNumber = useCallback((ev:any) => props.fromFormatted(ev.currentTarget.value),[props.fromFormatted]);\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', formattedNumber, path, validStringNumber);\n\n\n return (\n <Input\n type='text'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n multiline={appliedUiSchemaOptions.multi}\n fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}\n inputProps={inputProps}\n error={!isValid}\n />\n );\n });\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useState } from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport {\n IconButton,\n Input,\n InputAdornment,\n InputBaseComponentProps,\n InputProps,\n useTheme\n} from '@mui/material';\nimport merge from 'lodash/merge';\nimport Close from '@mui/icons-material/Close';\nimport { JsonFormsTheme, useDebouncedChange } from '../util';\n\ninterface MuiTextInputProps {\n muiInputProps?: InputProps['inputProps'];\n inputComponent?: InputProps['inputComponent'];\n}\nexport const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTextInputProps) => { \n const [showAdornment, setShowAdornment] = useState(false);\n const {\n data,\n config,\n className,\n id,\n enabled,\n uischema,\n isValid,\n path,\n handleChange,\n schema,\n muiInputProps,\n inputComponent\n } = props;\n const maxLength = schema.maxLength;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n let inputProps: InputBaseComponentProps;\n if (appliedUiSchemaOptions.restrict) {\n inputProps = { maxLength: maxLength };\n } else {\n inputProps = {};\n }\n \n inputProps = merge(inputProps, muiInputProps);\n \n if (appliedUiSchemaOptions.trim && maxLength !== undefined) {\n inputProps.size = maxLength;\n };\n \n const [inputText, onChange, onClear] = useDebouncedChange(handleChange, '', data, path);\n const onPointerEnter = () => setShowAdornment(true);\n const onPointerLeave = () => setShowAdornment(false);\n\n const theme: JsonFormsTheme = useTheme();\n \n const closeStyle = {\n background: theme.jsonforms?.input?.delete?.background || theme.palette.background.default,\n borderRadius: '50%'\n };\n\n return (\n <Input\n type={\n appliedUiSchemaOptions.format === 'password' ? 'password' : 'text'\n }\n value={inputText}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n multiline={appliedUiSchemaOptions.multi}\n fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}\n inputProps={inputProps}\n error={!isValid}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n endAdornment={\n <InputAdornment\n position='end'\n style={{\n display:\n !showAdornment || !enabled || data === undefined ? 'none' : 'flex',\n position: 'absolute',\n right: 0\n }}\n >\n <IconButton\n aria-label='Clear input field'\n onClick={onClear} \n size='large'\n >\n <Close style={closeStyle}/>\n </IconButton>\n </InputAdornment>\n }\n inputComponent={inputComponent}\n />\n );\n});\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange } from '../util';\n\nexport const MuiInputTime = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path);\n\n return (\n <Input\n type='time'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n fullWidth={true}\n />\n );\n});\n","import {\n and,\n ControlProps,\n DispatchPropsOfMultiEnumControl,\n hasType,\n JsonSchema,\n OwnPropsOfEnum,\n Paths,\n RankedTester,\n rankWith,\n schemaMatches,\n schemaSubPathMatches,\n uiTypeIs\n} from '@jsonforms/core';\n\nimport { withJsonFormsMultiEnumProps } from '@jsonforms/react';\nimport { MuiCheckbox } from '../mui-controls';\nimport {\n FormControl,\n FormControlLabel,\n FormGroup,\n FormHelperText,\n Hidden\n} from '@mui/material';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\n\nexport const MaterialEnumArrayRenderer = ({\n schema,\n visible,\n errors,\n path,\n options,\n data,\n addItem,\n removeItem,\n handleChange,\n ...otherProps\n}: ControlProps & OwnPropsOfEnum & DispatchPropsOfMultiEnumControl) => {\n return (\n <Hidden xlUp={!visible}>\n <FormControl component='fieldset'>\n <FormGroup row>\n {options.map((option: any, index: number) => {\n const optionPath = Paths.compose(path, `${index}`);\n const checkboxValue = data?.includes(option.value)\n ? option.value\n : undefined;\n return (\n <FormControlLabel\n id={option.value}\n key={option.value}\n control={\n <MuiCheckbox\n key={'checkbox-' + option.value}\n isValid={isEmpty(errors)}\n path={optionPath}\n handleChange={(_childPath, newValue) =>\n newValue\n ? addItem(path, option.value)\n : removeItem(path, option.value)\n }\n data={checkboxValue}\n errors={errors}\n schema={schema}\n visible={visible}\n {...otherProps}\n />\n }\n label={option.label}\n />\n );\n })}\n </FormGroup>\n <FormHelperText error>\n {errors}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\n\nconst hasOneOfItems = (schema: JsonSchema): boolean =>\n schema.oneOf !== undefined &&\n schema.oneOf.length > 0 &&\n (schema.oneOf as JsonSchema[]).every((entry: JsonSchema) => {\n return entry.const !== undefined;\n });\n\nconst hasEnumItems = (schema: JsonSchema): boolean =>\n schema.type === 'string' && schema.enum !== undefined;\n\nexport const materialEnumArrayRendererTester: RankedTester = rankWith(\n 5,\n and(\n uiTypeIs('Control'),\n and(\n schemaMatches(\n schema =>\n hasType(schema, 'array') &&\n !Array.isArray(schema.items) &&\n schema.uniqueItems === true\n ),\n schemaSubPathMatches('items', schema => {\n return hasOneOfItems(schema) || hasEnumItems(schema);\n })\n )\n )\n);\n\nexport default withJsonFormsMultiEnumProps(MaterialEnumArrayRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n isObjectArrayControl,\n isPrimitiveArrayControl,\n or,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport MaterialArrayControlRenderer from './MaterialArrayControlRenderer';\nimport MaterialObjectRenderer, {\n materialObjectControlTester\n} from './MaterialObjectRenderer';\nimport MaterialAllOfRenderer, {\n materialAllOfControlTester\n} from './MaterialAllOfRenderer';\nimport MaterialAnyOfRenderer, {\n materialAnyOfControlTester\n} from './MaterialAnyOfRenderer';\nimport MaterialOneOfRenderer, {\n materialOneOfControlTester\n} from './MaterialOneOfRenderer';\nimport MaterialEnumArrayRenderer, {\n materialEnumArrayRendererTester\n} from './MaterialEnumArrayRenderer';\n\nexport const materialArrayControlTester: RankedTester = rankWith(\n 3,\n or(isObjectArrayControl, isPrimitiveArrayControl)\n);\nexport { MaterialArrayControlRenderer };\nexport { MaterialObjectRenderer };\nexport { MaterialAllOfRenderer };\nexport { MaterialAnyOfRenderer };\nexport { MaterialOneOfRenderer };\nexport { MaterialEnumArrayRenderer };\nexport { materialObjectControlTester };\nexport { materialAllOfControlTester };\nexport { materialAnyOfControlTester };\nexport { materialOneOfControlTester };\nexport { materialEnumArrayRendererTester };\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n LabelElement,\n OwnPropsOfRenderer,\n RankedTester,\n rankWith,\n uiTypeIs,\n} from '@jsonforms/core';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\nimport {\n Hidden,\n Typography\n} from '@mui/material';\n\n/**\n * Default tester for a label.\n * @type {RankedTester}\n */\nexport const materialLabelRendererTester: RankedTester = rankWith(1, uiTypeIs('Label'));\n\n/**\n * Default renderer for a label.\n */\nexport const MaterialLabelRenderer = ({ uischema, visible }: OwnPropsOfRenderer) => {\n const labelElement: LabelElement = uischema as LabelElement;\n return (\n <Hidden xsUp={!visible}>\n <Typography variant='h6'>\n {labelElement.text !== undefined && labelElement.text !== null && labelElement.text}\n </Typography>\n </Hidden>\n );\n};\n\nexport default withJsonFormsLayoutProps(MaterialLabelRenderer);\n","import { \n Grid,\n IconButton,\n Hidden,\n Toolbar,\n Tooltip,\n Typography\n} from '@mui/material';\nimport AddIcon from '@mui/icons-material/Add';\nimport React from 'react';\nimport ValidationIcon from '../complex/ValidationIcon';\nexport interface ArrayLayoutToolbarProps {\n label: string;\n errors: string;\n path: string;\n addItem(path: string, data: any): () => void;\n createDefault(): any;\n}\nexport const ArrayLayoutToolbar = React.memo(\n ({\n label,\n errors,\n addItem,\n path,\n createDefault\n }: ArrayLayoutToolbarProps) => {\n return (\n <Toolbar disableGutters={true}>\n <Grid container alignItems='center' justifyContent='space-between'>\n <Grid item>\n <Typography variant={'h6'}>{label}</Typography>\n </Grid>\n <Hidden smUp={errors.length === 0}>\n <Grid item>\n <ValidationIcon id='tooltip-validation' errorMessages={errors} />\n </Grid>\n </Hidden>\n <Grid item>\n <Grid container>\n <Grid item>\n <Tooltip\n id='tooltip-add'\n title={`Add to ${label}`}\n placement='bottom'\n >\n <IconButton\n aria-label={`Add to ${label}`}\n onClick={addItem(path, createDefault())}\n size='large'>\n <AddIcon />\n </IconButton>\n </Tooltip>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Toolbar>\n );\n }\n);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport { StatePropsOfMasterItem } from '@jsonforms/core';\nimport { withJsonFormsMasterListItemProps } from '@jsonforms/react';\nimport {\n Avatar,\n IconButton,\n ListItem,\n ListItemAvatar,\n ListItemSecondaryAction,\n ListItemText,\n} from '@mui/material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport React from 'react';\n\nconst ListWithDetailMasterItem = ({ index, childLabel, selected, handleSelect, removeItem, path }: StatePropsOfMasterItem) => {\n return (\n <ListItem\n button\n selected={selected}\n onClick={handleSelect(index)}\n >\n <ListItemAvatar>\n <Avatar aria-label='Index'>{index + 1}</Avatar>\n </ListItemAvatar>\n <ListItemText primary={childLabel} />\n <ListItemSecondaryAction>\n <IconButton aria-label='Delete' onClick={removeItem(path, index)} size='large'>\n <DeleteIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n );\n};\n\nexport default withJsonFormsMasterListItemProps(ListWithDetailMasterItem);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n and,\n ArrayLayoutProps,\n composePaths,\n computeLabel,\n createDefaultValue,\n findUISchema,\n isObjectArray,\n RankedTester,\n rankWith,\n uiTypeIs\n} from '@jsonforms/core';\nimport {\n JsonFormsDispatch,\n withJsonFormsArrayLayoutProps\n} from '@jsonforms/react';\nimport { Grid, Hidden, List, Typography } from '@mui/material';\nimport map from 'lodash/map';\nimport range from 'lodash/range';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { ArrayLayoutToolbar } from '../layouts/ArrayToolbar';\nimport ListWithDetailMasterItem from './ListWithDetailMasterItem';\nimport merge from 'lodash/merge';\n\nexport const MaterialListWithDetailRenderer = ({\n uischemas,\n schema,\n uischema,\n path,\n errors,\n visible,\n label,\n required,\n removeItems,\n addItem,\n data,\n renderers,\n cells,\n config,\n rootSchema\n}: ArrayLayoutProps) => {\n const [selectedIndex, setSelectedIndex] = useState(undefined);\n const handleRemoveItem = useCallback(\n (p: string, value: any) => () => {\n removeItems(p, [value])();\n if (selectedIndex === value) {\n setSelectedIndex(undefined);\n } else if (selectedIndex > value) {\n setSelectedIndex(selectedIndex - 1);\n }\n },\n [removeItems, setSelectedIndex]\n );\n const handleListItemClick = useCallback(\n (index: number) => () => setSelectedIndex(index),\n [setSelectedIndex]\n );\n const handleCreateDefaultValue = useCallback(\n () => createDefaultValue(schema),\n [createDefaultValue]\n );\n const foundUISchema = useMemo(\n () =>\n findUISchema(\n uischemas,\n schema,\n uischema.scope,\n path,\n undefined,\n uischema,\n rootSchema\n ),\n [uischemas, schema, uischema.scope, path, uischema, rootSchema]\n );\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <Hidden xsUp={!visible}>\n <ArrayLayoutToolbar\n label={computeLabel(\n label,\n required,\n appliedUiSchemaOptions.hideRequiredAsterisk\n )}\n errors={errors}\n path={path}\n addItem={addItem}\n createDefault={handleCreateDefaultValue}\n />\n <Grid container direction='row' spacing={2}>\n <Grid item xs={3}>\n <List>\n {data > 0 ? (\n map(range(data), index => (\n <ListWithDetailMasterItem\n index={index}\n path={path}\n schema={schema}\n handleSelect={handleListItemClick}\n removeItem={handleRemoveItem}\n selected={selectedIndex === index}\n key={index}\n />\n ))\n ) : (\n <p>No data</p>\n )}\n </List>\n </Grid>\n <Grid item xs>\n {selectedIndex !== undefined ? (\n <JsonFormsDispatch\n renderers={renderers}\n cells={cells}\n visible={visible}\n schema={schema}\n uischema={foundUISchema}\n path={composePaths(path, `${selectedIndex}`)}\n />\n ) : (\n <Typography variant='h6'>No Selection</Typography>\n )}\n </Grid>\n </Grid>\n </Hidden>\n );\n};\n\nexport const materialListWithDetailTester: RankedTester = rankWith(\n 4,\n and(uiTypeIs('ListWithDetail'), isObjectArray)\n);\n\nexport default withJsonFormsArrayLayoutProps(MaterialListWithDetailRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport {\n isBooleanControl,\n RankedTester,\n rankWith,\n ControlProps\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormControlLabel, Hidden } from '@mui/material';\nimport { MuiCheckbox } from '../mui-controls/MuiCheckbox';\n\nexport const MaterialBooleanControl = ({\n data,\n visible,\n label,\n id,\n enabled,\n uischema,\n schema,\n rootSchema,\n handleChange,\n errors,\n path,\n config\n}: ControlProps) => {\n return (\n <Hidden xsUp={!visible}>\n <FormControlLabel\n label={label}\n id={id}\n control={\n <MuiCheckbox\n id={`${id}-input`}\n isValid={isEmpty(errors)}\n data={data}\n enabled={enabled}\n visible={visible}\n path={path}\n uischema={uischema}\n schema={schema}\n rootSchema={rootSchema}\n handleChange={handleChange}\n errors={errors}\n config={config}\n />\n }\n />\n </Hidden>\n );\n};\n\nexport const materialBooleanControlTester: RankedTester = rankWith(\n 2,\n isBooleanControl\n);\nexport default withJsonFormsControlProps(MaterialBooleanControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Switch } from '@mui/material';\nimport merge from 'lodash/merge';\n\nexport const MuiToggle = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };\n const checked = !!data;\n\n return (\n <Switch\n checked={checked}\n onChange={(_ev, isChecked) => handleChange(path, isChecked)}\n className={className}\n id={id}\n disabled={!enabled}\n inputProps={inputProps}\n />\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport {\n isBooleanControl,\n RankedTester,\n rankWith,\n ControlProps,\n optionIs,\n and\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormControlLabel, Hidden } from '@mui/material';\nimport { MuiToggle } from '../mui-controls/MuiToggle';\n\nexport const MaterialBooleanToggleControl = ({\n data,\n visible,\n label,\n id,\n enabled,\n uischema,\n schema,\n rootSchema,\n handleChange,\n errors,\n path,\n config\n}: ControlProps) => {\n return (\n <Hidden xsUp={!visible}>\n <FormControlLabel\n label={label}\n id={id}\n control={\n <MuiToggle\n id={`${id}-input`}\n isValid={isEmpty(errors)}\n data={data}\n enabled={enabled}\n visible={visible}\n path={path}\n uischema={uischema}\n schema={schema}\n rootSchema={rootSchema}\n handleChange={handleChange}\n errors={errors}\n config={config}\n />\n }\n />\n </Hidden>\n );\n};\n\nexport const materialBooleanToggleControlTester: RankedTester = rankWith(\n 3,\n and(isBooleanControl, optionIs('toggle', true))\n);\n\nexport default withJsonFormsControlProps(MaterialBooleanToggleControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n showAsRequired,\n ControlProps,\n isDescriptionHidden,\n} from '@jsonforms/core';\n\nimport { Hidden, InputLabel } from '@mui/material';\nimport { FormControl, FormHelperText } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useFocus } from '../util';\n\nexport interface WithInput {\n input: any;\n}\n\nexport const MaterialInputControl = (props: ControlProps & WithInput) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n description,\n errors,\n label,\n uischema,\n visible,\n required,\n config,\n input\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n const InnerComponent = input;\n\n return (\n <Hidden xsUp={!visible}>\n <FormControl\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n variant={'standard'}\n >\n <InputLabel\n htmlFor={id + '-input'}\n error={!isValid}\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n >\n {label}\n </InputLabel>\n <InnerComponent\n {...props}\n id={id + '-input'}\n isValid={isValid}\n visible={visible}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\n","/*\n The MIT License\n\n Copyright (c) 2017-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { ReactNode } from 'react';\nimport { EnumCellProps, EnumOption, WithClassname } from '@jsonforms/core';\n\nimport {\n Autocomplete,\n AutocompleteRenderOptionState,\n Input,\n FilterOptionsState\n} from '@mui/material';\nimport merge from 'lodash/merge';\n\nexport interface WithOptionLabel {\n getOptionLabel?(option: EnumOption) : string;\n renderOption?(props: React.HTMLAttributes<HTMLLIElement>, option: EnumOption, state: AutocompleteRenderOptionState): ReactNode;\n filterOptions?(options: EnumOption[], state: FilterOptionsState<EnumOption>) : EnumOption[];\n}\n\nexport const MuiAutocomplete = (props: EnumCellProps & WithClassname & WithOptionLabel) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n options,\n config,\n getOptionLabel,\n renderOption,\n filterOptions\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const [inputValue, setInputValue] = React.useState(data ?? '');\n\n const findOption = options.find(o => o.value === data) ?? null;\n return (\n <Autocomplete\n className={className}\n id={id}\n disabled={!enabled}\n value={findOption}\n onChange={(_event: any, newValue: EnumOption | null) => {\n handleChange(path, newValue?.value);\n }}\n inputValue={inputValue}\n onInputChange={(_event, newInputValue) => {\n setInputValue(newInputValue);\n }}\n autoHighlight\n autoSelect\n autoComplete\n fullWidth\n options={options}\n getOptionLabel={getOptionLabel || (option => option?.label)}\n freeSolo={false}\n style={{ marginTop: 16 }}\n renderInput={params => (\n <Input\n style={{ width: '100%' }}\n type='text'\n inputProps={params.inputProps}\n inputRef={params.InputProps.ref}\n autoFocus={appliedUiSchemaOptions.focus}\n disabled={!enabled}\n />\n )}\n renderOption={renderOption}\n filterOptions={filterOptions}\n />\n );\n};\n","/*\n The MIT License\n\n Copyright (c) 2018-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isEnumControl,\n OwnPropsOfEnum,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { withJsonFormsEnumProps } from '@jsonforms/react';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\nimport merge from 'lodash/merge';\nimport { MaterialInputControl } from './MaterialInputControl';\nimport { MuiAutocomplete, WithOptionLabel } from '../mui-controls/MuiAutocomplete';\n\nexport const MaterialEnumControl = (props: ControlProps & OwnPropsOfEnum & WithOptionLabel) => {\n const {config, uischema} = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n return (\n <MaterialInputControl\n {...props}\n input={appliedUiSchemaOptions.autocomplete === false ? MuiSelect : MuiAutocomplete}\n />\n );\n};\n\nexport const materialEnumControlTester: RankedTester = rankWith(\n 2,\n isEnumControl\n);\n\nexport default withJsonFormsEnumProps(MaterialEnumControl);","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n showAsRequired,\n isDateControl,\n isDescriptionHidden,\n isTimeControl,\n or,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { Hidden, TextField } from '@mui/material';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange, useFocus } from '../util';\n\nexport const MaterialNativeControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n errors,\n label,\n schema,\n description,\n enabled,\n visible,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path);\n const fieldType = appliedUiSchemaOptions.format ?? schema.format;\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n return (\n <Hidden xsUp={!visible}>\n <TextField\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n id={id + '-input'}\n label={label}\n type={fieldType}\n error={!isValid}\n disabled={!enabled}\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n helperText={!isValid ? errors : showDescription ? description : null}\n InputLabelProps={{ shrink: true }}\n value={inputValue}\n onChange={onChange}\n />\n </Hidden>\n );\n};\n\nexport const materialNativeControlTester: RankedTester = rankWith(\n 2,\n or(isDateControl, isTimeControl)\n);\n\nexport default withJsonFormsControlProps(MaterialNativeControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport merge from 'lodash/merge';\nimport React, { useMemo } from 'react';\nimport {\n ControlProps,\n isDateControl,\n isDescriptionHidden,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormHelperText, Hidden } from '@mui/material';\nimport {\n DatePicker,\n LocalizationProvider \n} from '@mui/lab';\nimport AdapterDayjs from '@mui/lab/AdapterDayjs';\nimport {\n createOnChangeHandler,\n getData,\n ResettableTextField,\n useFocus,\n} from '../util';\n\nexport const MaterialDateControl = (props: ControlProps)=> {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n description,\n id,\n errors,\n label,\n uischema,\n visible,\n enabled,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const format = appliedUiSchemaOptions.dateFormat ?? 'YYYY-MM-DD';\n const saveFormat = appliedUiSchemaOptions.dateSaveFormat ?? 'YYYY-MM-DD';\n\n const views = appliedUiSchemaOptions.views ?? ['year', 'day'];\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n const onChange = useMemo(() => createOnChangeHandler(\n path,\n handleChange,\n saveFormat\n ),[path, handleChange, saveFormat]);\n\n const value = getData(data, saveFormat);\n const valueInInputFormat = value ? value.format(format) : '';\n\n return (\n <Hidden xsUp={!visible}>\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DatePicker\n label={label}\n value={value}\n clearable\n onChange={onChange}\n inputFormat={format}\n disableMaskedInput\n views={views}\n disabled={!enabled}\n cancelText={appliedUiSchemaOptions.cancelLabel}\n clearText={appliedUiSchemaOptions.clearLabel}\n okText={appliedUiSchemaOptions.okLabel}\n renderInput={params => (\n <ResettableTextField \n {...params}\n rawValue={data}\n dayjsValueIsValid={value !== null}\n valueInInputFormat={valueInInputFormat}\n focused={focused}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n autoFocus={appliedUiSchemaOptions.focus}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n inputProps={{\n ...params.inputProps,\n type: 'text',\n }}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n variant={'standard'}\n />\n )}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </LocalizationProvider>\n </Hidden>\n );\n};\n\nexport const materialDateControlTester: RankedTester = rankWith(\n 4,\n isDateControl\n);\n\nexport default withJsonFormsControlProps(MaterialDateControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useMemo } from 'react';\nimport merge from 'lodash/merge';\nimport {\n ControlProps,\n isDateTimeControl,\n isDescriptionHidden,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormHelperText, Hidden } from '@mui/material';\nimport {\n DateTimePicker,\n LocalizationProvider \n} from '@mui/lab';\nimport AdapterDayjs from '@mui/lab/AdapterDayjs';\nimport {\n createOnChangeHandler,\n getData,\n ResettableTextField,\n useFocus\n} from '../util';\n\nexport const MaterialDateTimeControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n description,\n errors,\n label,\n uischema,\n visible,\n enabled,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const isValid = errors.length === 0;\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const format = appliedUiSchemaOptions.dateTimeFormat ?? 'YYYY-MM-DD HH:mm';\n const saveFormat = appliedUiSchemaOptions.dateTimeSaveFormat ?? undefined;\n\n const views = appliedUiSchemaOptions.views ?? ['year', 'day', 'hours', 'minutes'];\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n\n const onChange = useMemo(() => createOnChangeHandler(\n path,\n handleChange,\n saveFormat\n ),[path, handleChange, saveFormat]);\n\n const value = getData(data, saveFormat);\n const valueInInputFormat = value ? value.format(format) : '';\n\n return (\n <Hidden xsUp={!visible}>\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DateTimePicker\n label={label}\n value={value}\n clearable\n onChange={onChange}\n inputFormat={format}\n disableMaskedInput\n ampm={!!appliedUiSchemaOptions.ampm}\n views={views}\n disabled={!enabled}\n cancelText={appliedUiSchemaOptions.cancelLabel}\n clearText={appliedUiSchemaOptions.clearLabel}\n okText={appliedUiSchemaOptions.okLabel}\n renderInput={params => (\n <ResettableTextField \n {...params}\n rawValue={data}\n dayjsValueIsValid={value !== null}\n valueInInputFormat={valueInInputFormat}\n focused={focused}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n autoFocus={appliedUiSchemaOptions.focus}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n inputProps={{\n ...params.inputProps,\n type: 'text',\n }}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n variant={'standard'}\n />\n )}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </LocalizationProvider>\n </Hidden>\n );\n};\n\nexport const materialDateTimeControlTester: RankedTester = rankWith(\n 2,\n isDateTimeControl\n);\n\nexport default withJsonFormsControlProps(MaterialDateTimeControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useMemo } from 'react';\nimport merge from 'lodash/merge';\nimport {\n ControlProps,\n isTimeControl,\n isDescriptionHidden,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormHelperText, Hidden } from '@mui/material';\nimport {\n TimePicker,\n LocalizationProvider \n} from '@mui/lab';\nimport AdapterDayjs from '@mui/lab/AdapterDayjs';\nimport {\n createOnChangeHandler,\n getData,\n ResettableTextField,\n useFocus\n} from '../util';\n\nexport const MaterialTimeControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n description,\n errors,\n label,\n uischema,\n visible,\n enabled,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const isValid = errors.length === 0;\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const format = appliedUiSchemaOptions.timeFormat ?? 'HH:mm';\n const saveFormat = appliedUiSchemaOptions.timeSaveFormat ?? 'HH:mm:ss';\n\n const views = appliedUiSchemaOptions.views ?? ['hours', 'minutes'];\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n\n const onChange = useMemo(() => createOnChangeHandler(\n path,\n handleChange,\n saveFormat\n ),[path, handleChange, saveFormat]);\n\n const value = getData(data, saveFormat);\n const valueInInputFormat = value ? value.format(format) : '';\n\n return (\n <Hidden xsUp={!visible}>\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <TimePicker\n label={label}\n value={value}\n clearable\n onChange={onChange}\n inputFormat={format}\n disableMaskedInput\n ampm={!!appliedUiSchemaOptions.ampm}\n views={views}\n disabled={!enabled}\n cancelText={appliedUiSchemaOptions.cancelLabel}\n clearText={appliedUiSchemaOptions.clearLabel}\n okText={appliedUiSchemaOptions.okLabel}\n renderInput={params => (\n <ResettableTextField \n {...params}\n rawValue={data}\n dayjsValueIsValid={value !== null}\n valueInInputFormat={valueInInputFormat}\n focused={focused}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n autoFocus={appliedUiSchemaOptions.focus}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n inputProps={{\n ...params.inputProps,\n type: 'text'\n }}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n variant={'standard'}\n />\n )}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </LocalizationProvider>\n </Hidden>\n );\n};\n\nexport const materialTimeControlTester: RankedTester = rankWith(\n 4,\n isTimeControl\n);\n\nexport default withJsonFormsControlProps(MaterialTimeControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useCallback} from 'react';\nimport {\n ControlProps,\n showAsRequired,\n isDescriptionHidden,\n isRangeControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\n\nimport {\n FormControl,\n FormHelperText,\n FormLabel,\n Hidden,\n Slider,\n Typography\n} from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useFocus } from '../util';\n\nexport const MaterialSliderControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n data,\n description,\n enabled,\n errors,\n label,\n schema,\n handleChange,\n visible,\n path,\n required,\n config\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n const labelStyle: { [x: string]: any } = {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '100%'\n };\n const rangeContainerStyle: { [x: string]: any } = {\n display: 'flex'\n };\n const rangeItemStyle: { [x: string]: any } = {\n flexGrow: '1'\n };\n const sliderStyle: { [x: string]: any } = {\n marginTop: '7px'\n };\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const onChange = useCallback((_ev: any, value: any) => handleChange(path, Number(value)), [path, handleChange]);\n\n return (\n <Hidden xsUp={!visible}>\n <FormControl\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n >\n <FormLabel\n htmlFor={id}\n error={!isValid}\n component={'legend' as 'label'}\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n >\n <Typography id={id + '-typo'} style={labelStyle} variant='caption'>\n {label}\n </Typography>\n </FormLabel>\n <div style={rangeContainerStyle}>\n <Typography style={rangeItemStyle} variant='caption' align='left'>\n {schema.minimum}\n </Typography>\n <Typography style={rangeItemStyle} variant='caption' align='right'>\n {schema.maximum}\n </Typography>\n </div>\n <Slider\n style={sliderStyle}\n min={schema.minimum}\n max={schema.maximum}\n value={Number(data || schema.default)}\n onChange={onChange}\n id={id + '-input'}\n disabled={!enabled}\n step={schema.multipleOf || 1}\n />\n <FormHelperText error={!isValid}>\n {!isValid ? errors : showDescription ? description : null}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\nexport const materialSliderControlTester: RankedTester = rankWith(\n 4,\n isRangeControl\n);\n\nexport default withJsonFormsControlProps(MaterialSliderControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport merge from 'lodash/merge';\nimport React from 'react';\nimport {\n ControlProps,\n showAsRequired,\n isDescriptionHidden,\n OwnPropsOfEnum\n} from '@jsonforms/core';\nimport {\n FormControl,\n FormControlLabel,\n FormHelperText,\n FormLabel,\n Hidden,\n Radio,\n RadioGroup\n} from '@mui/material';\nimport { useFocus } from '../util';\n\nexport const MaterialRadioGroup = (props: ControlProps & OwnPropsOfEnum) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n config,\n id,\n label,\n required,\n description,\n errors,\n data,\n visible,\n options,\n handleChange,\n path,\n enabled\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n const onChange = (_ev:any, value:any) => handleChange(path, value);\n\n return (\n <Hidden xsUp={!visible}>\n <FormControl\n component={'fieldset' as 'div'}\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n <FormLabel\n htmlFor={id}\n error={!isValid}\n component={'legend' as 'label'}\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n >\n {label}\n </FormLabel>\n\n <RadioGroup\n value={props.data}\n onChange={onChange}\n row={true}\n >\n {options.map(option => (\n <FormControlLabel\n value={option.value}\n key={option.label}\n control={<Radio checked={data === option.value} />}\n label={option.label}\n disabled={!enabled}\n />\n ))}\n </RadioGroup>\n <FormHelperText error={!isValid}>\n {!isValid ? errors : showDescription ? description : null}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n and,\n ControlProps,\n isEnumControl,\n optionIs, OwnPropsOfEnum, RankedTester, rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsEnumProps } from '@jsonforms/react';\nimport { MaterialRadioGroup } from './MaterialRadioGroup';\nexport const MaterialRadioGroupControl = (props: ControlProps & OwnPropsOfEnum) => {\n return <MaterialRadioGroup {...props} />;\n};\n\nexport const materialRadioGroupControlTester: RankedTester = rankWith(\n 20,\n and(isEnumControl, optionIs('format', 'radio'))\n);\nexport default withJsonFormsEnumProps(MaterialRadioGroupControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isIntegerControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { MuiInputInteger } from '../mui-controls/MuiInputInteger';\nimport { MaterialInputControl } from './MaterialInputControl';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\n\nexport const MaterialIntegerControl = (props: ControlProps) => (\n <MaterialInputControl {...props} input={MuiInputInteger} />\n);\nexport const materialIntegerControlTester: RankedTester = rankWith(\n 2,\n isIntegerControl\n);\nexport default withJsonFormsControlProps(MaterialIntegerControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isNumberControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { MuiInputNumber } from '../mui-controls/MuiInputNumber';\nimport { MaterialInputControl } from './MaterialInputControl';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\n\nexport const MaterialNumberControl = (props: ControlProps) => (\n <MaterialInputControl {...props} input={MuiInputNumber} />\n);\n\nexport const materialNumberControlTester: RankedTester = rankWith(\n 2,\n isNumberControl\n);\n\nexport default withJsonFormsControlProps(MaterialNumberControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isStringControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { MuiInputText } from '../mui-controls/MuiInputText';\nimport { MaterialInputControl } from './MaterialInputControl';\n\nexport const MaterialTextControl = (props: ControlProps) => (\n <MaterialInputControl {...props} input={MuiInputText} />\n);\n\nexport const materialTextControlTester: RankedTester = rankWith(\n 1,\n isStringControl\n);\nexport default withJsonFormsControlProps(MaterialTextControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n and,\n ControlProps,\n ControlState,\n EnumCellProps,\n JsonSchema,\n RankedTester,\n rankWith,\n schemaMatches,\n uiTypeIs,\n WithClassname\n} from '@jsonforms/core';\nimport { Control, withJsonFormsControlProps } from '@jsonforms/react';\nimport { Input, InputBaseComponentProps } from '@mui/material';\nimport merge from 'lodash/merge';\nimport React, { useMemo } from 'react';\nimport { useDebouncedChange } from '../util';\nimport { MaterialInputControl } from './MaterialInputControl';\n\nconst findEnumSchema = (schemas: JsonSchema[]) =>\n schemas.find(\n s => s.enum !== undefined && (s.type === 'string' || s.type === undefined)\n );\nconst findTextSchema = (schemas: JsonSchema[]) =>\n schemas.find(s => s.type === 'string' && s.enum === undefined);\n\nconst MuiAutocompleteInputText = (props: EnumCellProps & WithClassname) => {\n const {\n data,\n config,\n className,\n id,\n enabled,\n uischema,\n isValid,\n path,\n handleChange,\n schema\n } = props;\n const enumSchema = findEnumSchema(schema.anyOf);\n const stringSchema = findTextSchema(schema.anyOf);\n const maxLength = stringSchema.maxLength;\n const appliedUiSchemaOptions = useMemo(() => merge({}, config, uischema.options),[config, uischema.options]);\n const inputProps: InputBaseComponentProps = useMemo(() => {\n let propMemo: InputBaseComponentProps = {};\n if (appliedUiSchemaOptions.restrict) {\n propMemo = { maxLength: maxLength };\n }\n if (appliedUiSchemaOptions.trim && maxLength !== undefined) {\n propMemo.size = maxLength;\n }\n propMemo.list = props.id + 'datalist';\n return propMemo;\n },[appliedUiSchemaOptions,props.id]);\n const [inputText, onChange] = useDebouncedChange(handleChange, '', data, path);\n\n const dataList = (\n <datalist id={props.id + 'datalist'}>\n {enumSchema.enum.map(optionValue => (\n <option value={optionValue} key={optionValue} />\n ))}\n </datalist>\n );\n return (\n <Input\n type='text'\n value={inputText}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}\n inputProps={inputProps}\n error={!isValid}\n endAdornment={dataList}\n />\n );\n};\n\nexport class MaterialAnyOfStringOrEnumControl extends Control<\n ControlProps,\n ControlState\n> {\n render() {\n return (\n <MaterialInputControl {...this.props} input={MuiAutocompleteInputText} />\n );\n }\n}\nconst hasEnumAndText = (schemas: JsonSchema[]) => {\n // idea: map to type,enum and check that all types are string and at least one item is of type enum,\n const enumSchema = findEnumSchema(schemas);\n const stringSchema = findTextSchema(schemas);\n const remainingSchemas = schemas.filter(\n s => s !== enumSchema || s !== stringSchema\n );\n const wrongType = remainingSchemas.find(s => s.type && s.type !== 'string');\n return enumSchema && stringSchema && !wrongType;\n};\nconst simpleAnyOf = and(\n uiTypeIs('Control'),\n schemaMatches(\n schema => schema.hasOwnProperty('anyOf') && hasEnumAndText(schema.anyOf)\n )\n);\nexport const materialAnyOfStringOrEnumControlTester: RankedTester = rankWith(\n 5,\n simpleAnyOf\n);\nexport default withJsonFormsControlProps(MaterialAnyOfStringOrEnumControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isOneOfEnumControl,\n OwnPropsOfEnum,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { withJsonFormsOneOfEnumProps } from '@jsonforms/react';\nimport { MuiAutocomplete, WithOptionLabel } from '../mui-controls/MuiAutocomplete';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\nimport { MaterialInputControl } from '../controls/MaterialInputControl';\nimport merge from 'lodash/merge';\n\nexport const MaterialOneOfEnumControl = (props: ControlProps & OwnPropsOfEnum & WithOptionLabel) => {\n const {config, uischema} = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n return (\n <MaterialInputControl\n {...props}\n input={appliedUiSchemaOptions.autocomplete === false ? MuiSelect : MuiAutocomplete}\n />\n );\n};\n\nexport const materialOneOfEnumControlTester: RankedTester = rankWith(\n 5,\n isOneOfEnumControl\n);\n\nexport default withJsonFormsOneOfEnumProps(MaterialOneOfEnumControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n and,\n ControlProps,\n isOneOfEnumControl,\n optionIs,\n OwnPropsOfEnum,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { withJsonFormsOneOfEnumProps } from '@jsonforms/react';\nimport { MaterialRadioGroup } from './MaterialRadioGroup';\n\nexport const MaterialOneOfRadioGroupControl = (props: ControlProps & OwnPropsOfEnum) => {\n return <MaterialRadioGroup {...props}/>;\n};\n\nexport const materialOneOfRadioGroupControlTester: RankedTester = rankWith(\n 20,\n and(isOneOfEnumControl, optionIs('format', 'radio'))\n);\n\nexport default withJsonFormsOneOfEnumProps(MaterialOneOfRadioGroupControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport MaterialBooleanControl, {\n materialBooleanControlTester,\n MaterialBooleanControl as MaterialBooleanControlUnwrapped\n} from './MaterialBooleanControl';\nimport MaterialBooleanToggleControl, {\n materialBooleanToggleControlTester,\n MaterialBooleanToggleControl as MaterialBooleanToggleControlUnwrapped\n} from './MaterialBooleanToggleControl';\nimport MaterialEnumControl, {\n materialEnumControlTester,\n MaterialEnumControl as MaterialEnumControlUnwrapped\n} from './MaterialEnumControl';\nimport MaterialNativeControl, {\n materialNativeControlTester,\n MaterialNativeControl as MaterialNativeControlUnwrapped\n} from './MaterialNativeControl';\nimport MaterialDateControl, {\n materialDateControlTester,\n MaterialDateControl as MaterialDateControlUnwrapped\n} from './MaterialDateControl';\nimport MaterialDateTimeControl, {\n materialDateTimeControlTester,\n MaterialDateTimeControl as MaterialDateTimeControlUnwrapped\n} from './MaterialDateTimeControl';\nimport MaterialTimeControl, {\n materialTimeControlTester,\n MaterialTimeControl as MaterialTimeControlUnwrapped\n} from './MaterialTimeControl';\nimport MaterialSliderControl, {\n materialSliderControlTester,\n MaterialSliderControl as MaterialSliderControlUnwrapped\n} from './MaterialSliderControl';\nimport MaterialRadioGroupControl, {\n materialRadioGroupControlTester,\n MaterialRadioGroupControl as MaterialRadioGroupControlUnwrapped\n} from './MaterialRadioGroupControl';\nimport MaterialIntegerControl, {\n materialIntegerControlTester,\n MaterialIntegerControl as MaterialIntegerControlUnwrapped\n} from './MaterialIntegerControl';\nimport MaterialNumberControl, {\n materialNumberControlTester,\n MaterialNumberControl as MaterialNumberControlUnwrapped\n} from './MaterialNumberControl';\nimport MaterialTextControl, {\n materialTextControlTester,\n MaterialTextControl as MaterialTextControlUnwrapped\n} from './MaterialTextControl';\n\nimport MaterialAnyOfStringOrEnumControl, {\n materialAnyOfStringOrEnumControlTester,\n MaterialAnyOfStringOrEnumControl as MaterialAnyOfStringOrEnumControlUnwrapped\n} from './MaterialAnyOfStringOrEnumControl';\n\nimport MaterialOneOfEnumControl, {\n materialOneOfEnumControlTester,\n MaterialOneOfEnumControl as MaterialOneOfEnumControlUnwrapped\n} from './MaterialOneOfEnumControl';\n\nimport MaterialOneOfRadioGroupControl, {\n materialOneOfRadioGroupControlTester,\n MaterialOneOfRadioGroupControl as MaterialOneOfRadioGroupControlUnwrapped\n} from './MaterialOneOfRadioGroupControl';\n\nexport const Unwrapped = {\n MaterialBooleanControl: MaterialBooleanControlUnwrapped,\n MaterialBooleanToggleControl: MaterialBooleanToggleControlUnwrapped,\n MaterialEnumControl: MaterialEnumControlUnwrapped,\n MaterialNativeControl: MaterialNativeControlUnwrapped,\n MaterialDateControl: MaterialDateControlUnwrapped,\n MaterialDateTimeControl: MaterialDateTimeControlUnwrapped,\n MaterialTimeControl: MaterialTimeControlUnwrapped,\n MaterialSliderControl: MaterialSliderControlUnwrapped,\n MaterialRadioGroupControl: MaterialRadioGroupControlUnwrapped,\n MaterialIntegerControl: MaterialIntegerControlUnwrapped,\n MaterialNumberControl: MaterialNumberControlUnwrapped,\n MaterialTextControl: MaterialTextControlUnwrapped,\n MaterialAnyOfStringOrEnumControl: MaterialAnyOfStringOrEnumControlUnwrapped,\n MaterialOneOfEnumControl: MaterialOneOfEnumControlUnwrapped,\n MaterialOneOfRadioGroupControl: MaterialOneOfRadioGroupControlUnwrapped\n};\n\nexport {\n MaterialBooleanControl,\n materialBooleanControlTester,\n MaterialBooleanToggleControl,\n materialBooleanToggleControlTester,\n MaterialEnumControl,\n materialEnumControlTester,\n MaterialNativeControl,\n materialNativeControlTester,\n MaterialDateControl,\n materialDateControlTester,\n MaterialDateTimeControl,\n materialDateTimeControlTester,\n MaterialTimeControl,\n materialTimeControlTester,\n MaterialSliderControl,\n materialSliderControlTester,\n MaterialRadioGroupControl,\n materialRadioGroupControlTester,\n MaterialIntegerControl,\n materialIntegerControlTester,\n MaterialNumberControl,\n materialNumberControlTester,\n MaterialTextControl,\n materialTextControlTester,\n MaterialAnyOfStringOrEnumControl,\n materialAnyOfStringOrEnumControlTester,\n MaterialOneOfEnumControl,\n materialOneOfEnumControlTester,\n MaterialOneOfRadioGroupControl,\n materialOneOfRadioGroupControlTester\n};\n\nexport * from './MaterialInputControl';\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { Card, CardContent, CardHeader, Hidden } from '@mui/material';\nimport {\n GroupLayout,\n LayoutProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n withIncreasedRank,\n} from '@jsonforms/core';\nimport {\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps\n} from '../util/layout';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\n\nexport const groupTester: RankedTester = rankWith(1, uiTypeIs('Group'));\nconst style: { [x: string]: any } = { marginBottom: '10px' };\n\nconst GroupComponent = React.memo(({ visible, enabled, uischema, ...props }: MaterialLayoutRendererProps) => {\n const groupLayout = uischema as GroupLayout;\n return (\n <Hidden xsUp={!visible}>\n <Card style={style}>\n {!isEmpty(groupLayout.label) && (\n <CardHeader title={groupLayout.label} />\n )}\n <CardContent>\n <MaterialLayoutRenderer {...props} visible={visible} enabled={enabled} elements={groupLayout.elements} />\n </CardContent>\n </Card>\n </Hidden>\n );\n});\n\nexport const MaterializedGroupLayoutRenderer = ({ uischema, schema, path, visible, enabled, renderers, cells, direction }: LayoutProps) => {\n const groupLayout = uischema as GroupLayout;\n\n return (\n <GroupComponent\n elements={groupLayout.elements}\n schema={schema}\n path={path}\n direction={direction}\n visible={visible}\n enabled={enabled}\n uischema={uischema}\n renderers={renderers}\n cells={cells}\n />\n );\n};\n\nexport default withJsonFormsLayoutProps(MaterializedGroupLayoutRenderer);\n\nexport const materialGroupTester: RankedTester = withIncreasedRank(\n 1,\n groupTester\n);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n HorizontalLayout,\n LayoutProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n} from '@jsonforms/core';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\nimport {\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps\n} from '../util/layout';\n\n/**\n * Default tester for a horizontal layout.\n * @type {RankedTester}\n */\nexport const materialHorizontalLayoutTester: RankedTester = rankWith(\n 2,\n uiTypeIs('HorizontalLayout')\n);\n\nexport const MaterialHorizontalLayoutRenderer = ({ uischema, renderers, cells, schema, path, enabled, visible }: LayoutProps) => {\n const layout = uischema as HorizontalLayout;\n const childProps: MaterialLayoutRendererProps = {\n elements: layout.elements,\n schema,\n path,\n enabled,\n direction: 'row',\n visible\n };\n\n return <MaterialLayoutRenderer {...childProps} renderers={renderers} cells={cells} />;\n};\n\nexport default withJsonFormsLayoutProps(MaterialHorizontalLayoutRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n LayoutProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n VerticalLayout,\n} from '@jsonforms/core';\nimport {\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps\n} from '../util/layout';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\n\n/**\n * Default tester for a vertical layout.\n * @type {RankedTester}\n */\nexport const materialVerticalLayoutTester: RankedTester = rankWith(\n 1,\n uiTypeIs('VerticalLayout')\n);\n\nexport const MaterialVerticalLayoutRenderer = ({ uischema, schema, path, enabled, visible, renderers, cells }: LayoutProps) => {\n const verticalLayout = uischema as VerticalLayout;\n const childProps: MaterialLayoutRendererProps = {\n elements: verticalLayout.elements,\n schema,\n path,\n enabled,\n direction: 'column',\n visible\n };\n\n return <MaterialLayoutRenderer {...childProps} renderers={renderers} cells={cells} />;\n};\n\nexport default withJsonFormsLayoutProps(MaterialVerticalLayoutRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useState} from 'react';\nimport { AppBar, Hidden, Tab, Tabs } from '@mui/material';\nimport {\n and,\n Categorization,\n Category,\n isVisible,\n RankedTester,\n rankWith,\n StatePropsOfLayout,\n Tester,\n UISchemaElement,\n uiTypeIs\n} from '@jsonforms/core';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\nimport {\n AjvProps,\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps,\n withAjvProps\n} from '../util/layout';\n\nexport const isSingleLevelCategorization: Tester = and(\n uiTypeIs('Categorization'),\n (uischema: UISchemaElement): boolean => {\n const categorization = uischema as Categorization;\n\n return (\n categorization.elements &&\n categorization.elements.reduce(\n (acc, e) => acc && e.type === 'Category',\n true\n )\n );\n }\n);\n\nexport const materialCategorizationTester: RankedTester = rankWith(\n 1,\n isSingleLevelCategorization\n);\nexport interface CategorizationState {\n activeCategory: number;\n}\n\nexport interface MaterialCategorizationLayoutRendererProps\n extends StatePropsOfLayout, AjvProps {\n selected?: number;\n ownState?: boolean;\n data?: any;\n onChange?(selected: number, prevSelected: number): void;\n}\n\nexport const MaterialCategorizationLayoutRenderer = (props: MaterialCategorizationLayoutRendererProps) => {\n const {\n data,\n path,\n renderers,\n cells,\n schema,\n uischema,\n visible,\n enabled,\n selected,\n onChange,\n ajv\n } = props;\n const categorization = uischema as Categorization;\n const [activeCategory, setActiveCategory]= useState<number|undefined>(selected??0);\n const categories = categorization.elements.filter((category: Category) =>\n isVisible(category, data, undefined, ajv)\n );\n const childProps: MaterialLayoutRendererProps = {\n elements: categories[activeCategory].elements,\n schema,\n path,\n direction: 'column',\n enabled,\n visible,\n renderers,\n cells\n };\n const onTabChange = (_event: any, value: any) => {\n if (onChange) {\n onChange(value, activeCategory);\n }\n setActiveCategory(value);\n };\n return (\n <Hidden xsUp={!visible}>\n <AppBar position='static'>\n <Tabs value={activeCategory} onChange={onTabChange} textColor='inherit' indicatorColor='secondary' variant='scrollable'>\n {categories.map((e: Category, idx: number) => (\n <Tab key={idx} label={e.label} />\n ))}\n </Tabs>\n </AppBar>\n <div style={{ marginTop: '0.5em' }}>\n <MaterialLayoutRenderer {...childProps} />\n </div>\n </Hidden>\n );\n};\n\nexport default withJsonFormsLayoutProps(withAjvProps(MaterialCategorizationLayoutRenderer));\n","import merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport React, { ComponentType, Dispatch, Fragment, ReducerAction, useMemo, useState, useEffect, useCallback } from 'react';\nimport {\n JsonFormsDispatch,\n JsonFormsStateContext,\n withJsonFormsContext\n} from '@jsonforms/react';\nimport {\n composePaths,\n ControlElement,\n findUISchema,\n JsonFormsRendererRegistryEntry,\n JsonSchema,\n moveDown,\n moveUp,\n Resolve,\n update,\n JsonFormsCellRendererRegistryEntry,\n JsonFormsUISchemaRegistryEntry,\n getFirstPrimitiveProp,\n createId,\n removeId\n} from '@jsonforms/core';\nimport {\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Avatar,\n Grid,\n IconButton\n} from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport ArrowUpward from '@mui/icons-material/ArrowUpward';\nimport ArrowDownward from '@mui/icons-material/ArrowDownward';\n\nconst iconStyle: any = { float: 'right' };\n\ninterface OwnPropsOfExpandPanel {\n index: number;\n path: string;\n uischema: ControlElement;\n schema: JsonSchema;\n expanded: boolean;\n renderers?: JsonFormsRendererRegistryEntry[];\n cells?: JsonFormsCellRendererRegistryEntry[];\n uischemas?: JsonFormsUISchemaRegistryEntry[];\n rootSchema: JsonSchema;\n enableMoveUp: boolean;\n enableMoveDown: boolean;\n config: any;\n childLabelProp?: string;\n handleExpansion(panel: string): (event: any, expanded: boolean) => void;\n}\n\ninterface StatePropsOfExpandPanel extends OwnPropsOfExpandPanel {\n childLabel: string;\n childPath: string;\n enableMoveUp: boolean;\n enableMoveDown: boolean;\n}\n\n/**\n * Dispatch props of a table control\n */\nexport interface DispatchPropsOfExpandPanel {\n removeItems(path: string, toDelete: number[]): (event: any) => void;\n moveUp(path: string, toMove: number): (event: any) => void;\n moveDown(path: string, toMove: number): (event: any) => void;\n}\n\nexport interface ExpandPanelProps\n extends StatePropsOfExpandPanel,\n DispatchPropsOfExpandPanel {}\n\nconst ExpandPanelRendererComponent = (props: ExpandPanelProps) => {\n const [labelHtmlId] = useState<string>(createId('expand-panel'));\n\n useEffect(() => {\n return () => {\n removeId(labelHtmlId);\n };\n }, [labelHtmlId]);\n\n const {\n childLabel,\n childPath,\n index,\n expanded,\n moveDown,\n moveUp,\n enableMoveDown,\n enableMoveUp,\n handleExpansion,\n removeItems,\n path,\n rootSchema,\n schema,\n uischema,\n uischemas,\n renderers,\n cells,\n config\n } = props;\n\n const foundUISchema = useMemo(\n () =>\n findUISchema(\n uischemas,\n schema,\n uischema.scope,\n path,\n undefined,\n uischema,\n rootSchema\n ),\n [uischemas, schema, uischema.scope, path, uischema, rootSchema]\n );\n\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const showSortButtons = appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayLayoutSortButtons;\n\n return (\n <Accordion\n aria-labelledby={labelHtmlId}\n expanded={expanded}\n onChange={handleExpansion(childPath)}\n >\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Grid container alignItems={'center'}>\n <Grid item xs={7} md={9}>\n <Grid container alignItems={'center'}>\n <Grid item xs={2} md={1}>\n <Avatar aria-label='Index'>{index + 1}</Avatar>\n </Grid>\n <Grid item xs={10} md={11}>\n <span id={labelHtmlId}>{childLabel}</span>\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={5} md={3}>\n <Grid container justifyContent='flex-end'>\n <Grid item>\n <Grid\n container\n direction='row'\n justifyContent='center'\n alignItems='center'\n >\n {showSortButtons ? (\n <Fragment>\n <Grid item>\n <IconButton\n onClick={moveUp(path, index)}\n style={iconStyle}\n disabled={!enableMoveUp}\n aria-label={`Move up`}\n size='large'>\n <ArrowUpward />\n </IconButton>\n </Grid>\n <Grid item>\n <IconButton\n onClick={moveDown(path, index)}\n style={iconStyle}\n disabled={!enableMoveDown}\n aria-label={`Move down`}\n size='large'>\n <ArrowDownward />\n </IconButton>\n </Grid>\n </Fragment>\n ) : (\n ''\n )}\n <Grid item>\n <IconButton\n onClick={removeItems(path, [index])}\n style={iconStyle}\n aria-label={`Delete`}\n size='large'>\n <DeleteIcon />\n </IconButton>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </AccordionSummary>\n <AccordionDetails>\n <JsonFormsDispatch\n schema={schema}\n uischema={foundUISchema}\n path={childPath}\n key={childPath}\n renderers={renderers}\n cells={cells}\n />\n </AccordionDetails>\n </Accordion>\n );\n};\n\nconst ExpandPanelRenderer = React.memo(ExpandPanelRendererComponent);\n\n/**\n * Maps state to dispatch properties of an expand pandel control.\n *\n * @param dispatch the store's dispatch method\n * @returns {DispatchPropsOfArrayControl} dispatch props of an expand panel control\n */\nexport const ctxDispatchToExpandPanelProps: (\n dispatch: Dispatch<ReducerAction<any>>\n) => DispatchPropsOfExpandPanel = dispatch => ({\n removeItems: useCallback((path: string, toDelete: number[]) => (event: any): void => {\n event.stopPropagation();\n dispatch(\n update(path, array => {\n toDelete\n .sort()\n .reverse()\n .forEach(s => array.splice(s, 1));\n return array;\n })\n );\n }, [dispatch]),\n moveUp: useCallback((path: string, toMove: number) => (event: any): void => {\n event.stopPropagation();\n dispatch(\n update(path, array => {\n moveUp(array, toMove);\n return array;\n })\n );\n }, [dispatch]),\n moveDown: useCallback((path: string, toMove: number) => (event: any): void => {\n event.stopPropagation();\n dispatch(\n update(path, array => {\n moveDown(array, toMove);\n return array;\n })\n );\n }, [dispatch])\n});\n\n/**\n * Map state to control props.\n * @param state the JSON Forms state\n * @param ownProps any own props\n * @returns {StatePropsOfControl} state props for a control\n */\nexport const withContextToExpandPanelProps = (\n Component: ComponentType<ExpandPanelProps>\n): ComponentType<OwnPropsOfExpandPanel> => ({\n ctx,\n props\n}: JsonFormsStateContext & ExpandPanelProps) => {\n const dispatchProps = ctxDispatchToExpandPanelProps(ctx.dispatch);\n const { childLabelProp, schema, path, index, uischemas } = props;\n const childPath = composePaths(path, `${index}`);\n const childData = Resolve.data(ctx.core.data, childPath);\n const childLabel = childLabelProp\n ? get(childData, childLabelProp, '')\n : get(childData, getFirstPrimitiveProp(schema), '');\n\n return (\n <Component\n {...props}\n {...dispatchProps}\n childLabel={childLabel}\n childPath={childPath}\n uischemas={uischemas}\n />\n );\n};\n\nexport const withJsonFormsExpandPanelProps = (\n Component: ComponentType<ExpandPanelProps>\n): ComponentType<OwnPropsOfExpandPanel> =>\n withJsonFormsContext(\n withContextToExpandPanelProps(Component));\n\nexport default withJsonFormsExpandPanelProps(ExpandPanelRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport range from 'lodash/range';\nimport React, {useState, useCallback} from 'react';\nimport {\n ArrayLayoutProps,\n composePaths,\n computeLabel,\n createDefaultValue,\n} from '@jsonforms/core';\nimport map from 'lodash/map';\nimport { ArrayLayoutToolbar } from './ArrayToolbar';\nimport ExpandPanelRenderer from './ExpandPanelRenderer';\nimport merge from 'lodash/merge';\n\nconst MaterialArrayLayoutComponent = (props: ArrayLayoutProps)=> {\n const [expanded, setExpanded] = useState<string|boolean>(false);\n const innerCreateDefaultValue = useCallback(() => createDefaultValue(props.schema), [props.schema]);\n const handleChange = useCallback((panel: string) => (_event: any, expandedPanel: boolean) => {\n setExpanded(expandedPanel ? panel : false)\n }, []);\n const isExpanded = (index: number) => \n expanded === composePaths(props.path, `${index}`);\n \n const {\n data,\n path,\n schema,\n uischema,\n errors,\n addItem,\n renderers,\n cells,\n label,\n required,\n rootSchema,\n config,\n uischemas\n } = props;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n\n return (\n <div>\n <ArrayLayoutToolbar\n label={computeLabel(\n label,\n required,\n appliedUiSchemaOptions.hideRequiredAsterisk\n )}\n errors={errors}\n path={path}\n addItem={addItem}\n createDefault={innerCreateDefaultValue}\n />\n <div>\n {data > 0 ? (\n map(range(data), index => {\n return (\n <ExpandPanelRenderer\n index={index}\n expanded={isExpanded(index)}\n schema={schema}\n path={path}\n handleExpansion={handleChange}\n uischema={uischema}\n renderers={renderers}\n cells={cells}\n key={index}\n rootSchema={rootSchema}\n enableMoveUp={index != 0}\n enableMoveDown={index < data - 1}\n config={config}\n childLabelProp={appliedUiSchemaOptions.elementLabelProp}\n uischemas={uischemas}\n />\n );\n })\n ) : (\n <p>No data</p>\n )}\n </div>\n </div>\n );\n};\n\nexport const MaterialArrayLayout = React.memo(MaterialArrayLayoutComponent);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback } from 'react';\n\nimport {\n ArrayLayoutProps,\n isObjectArrayWithNesting,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { Hidden } from '@mui/material';\nimport { MaterialArrayLayout } from './MaterialArrayLayout';\nimport { withJsonFormsArrayLayoutProps } from '@jsonforms/react';\n\nexport const MaterialArrayLayoutRenderer = ({\n visible,\n addItem,\n ...props\n}: ArrayLayoutProps) => {\n const addItemCb = useCallback((p: string, value: any) => addItem(p, value), [\n addItem\n ]);\n return (\n <Hidden xsUp={!visible}>\n <MaterialArrayLayout\n visible={visible}\n addItem={addItemCb}\n {...props}\n />\n </Hidden>\n );\n};\n\nexport const materialArrayLayoutTester: RankedTester = rankWith(\n 4,\n isObjectArrayWithNesting\n);\nexport default withJsonFormsArrayLayoutProps(MaterialArrayLayoutRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isBooleanControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiCheckbox } from '../mui-controls/MuiCheckbox';\n\nexport const MaterialBooleanCell = (props: CellProps & WithClassname) => {\n return <MuiCheckbox {...props} />;\n};\n\nexport const materialBooleanCellTester: RankedTester = rankWith(\n 2,\n isBooleanControl\n);\n\nexport default withJsonFormsCellProps(MaterialBooleanCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n and,\n CellProps,\n isBooleanControl,\n optionIs,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiToggle } from '../mui-controls/MuiToggle';\n\nexport const MaterialBooleanToggleCell = (props: CellProps & WithClassname) => {\n return <MuiToggle {...props} />;\n};\n\nexport const materialBooleanToggleCellTester: RankedTester = rankWith(\n 3,\n and(isBooleanControl, optionIs('toggle', true))\n);;\n\nexport default withJsonFormsCellProps(MaterialBooleanToggleCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isDateControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport Input from '@mui/material/Input';\nimport merge from 'lodash/merge';\n\nexport const MaterialDateCell = (props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <Input\n type='date'\n value={data || ''}\n onChange={ev => handleChange(path, ev.target.value)}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n fullWidth={true}\n />\n );\n};\nexport const materialDateCellTester: RankedTester = rankWith(2, isDateControl);\n\nexport default withJsonFormsCellProps(MaterialDateCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n EnumCellProps,\n isEnumControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsEnumCellProps } from '@jsonforms/react';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\n\nexport const MaterialEnumCell = (props: EnumCellProps & WithClassname) => (\n <MuiSelect {...props} />\n);\n\n/**\n * Default tester for enum controls.\n * @type {RankedTester}\n */\nexport const materialEnumCellTester: RankedTester = rankWith(2, isEnumControl);\n\nexport default withJsonFormsEnumCellProps(MaterialEnumCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isIntegerControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputInteger } from '../mui-controls/MuiInputInteger';\n\nexport const MaterialIntegerCell = (props: CellProps & WithClassname) => (\n <MuiInputInteger {...props} />\n);\nexport const materialIntegerCellTester: RankedTester = rankWith(\n 2,\n isIntegerControl\n);\n\nexport default withJsonFormsCellProps(MaterialIntegerCell);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isNumberControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputNumber } from '../mui-controls/MuiInputNumber';\n\nexport const MaterialNumberCell = (props: CellProps & WithClassname) => (\n <MuiInputNumber {...props} />\n);\n/**\n * Default tester for number controls.\n * @type {RankedTester}\n */\nexport const materialNumberCellTester: RankedTester = rankWith(\n 2,\n isNumberControl\n);\nexport default withJsonFormsCellProps(MaterialNumberCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n Formatted,\n isNumberFormatControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputNumberFormat } from '../mui-controls/MuiInputNumberFormat';\n\nexport const MaterialNumberFormatCell = (\n props: CellProps & WithClassname & Formatted<number>\n) => <MuiInputNumberFormat {...props} />;\n/**\n * Default tester for text-based/string controls.\n * @type {RankedTester}\n */\nexport const materialNumberFormatCellTester: RankedTester = rankWith(\n 4,\n isNumberFormatControl\n);\n\nexport default withJsonFormsCellProps(MaterialNumberFormatCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n EnumCellProps,\n isOneOfEnumControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsOneOfEnumCellProps } from '@jsonforms/react';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\n\nexport const MaterialOneOfEnumCell = (props: EnumCellProps & WithClassname) => (\n <MuiSelect {...props} />\n);\n\n/**\n * Default tester for oneOf enum controls.\n * @type {RankedTester}\n */\nexport const materialOneOfEnumCellTester: RankedTester = rankWith(2, isOneOfEnumControl);\n\nexport default withJsonFormsOneOfEnumCellProps(MaterialOneOfEnumCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isStringControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputText } from '../mui-controls/MuiInputText';\n\nexport const MaterialTextCell = (props: CellProps & WithClassname) => (\n <MuiInputText {...props} />\n);\n\n/**\n * Default tester for text-based/string controls.\n * @type {RankedTester}\n */\nexport const materialTextCellTester: RankedTester = rankWith(\n 1,\n isStringControl\n);\n\nexport default withJsonFormsCellProps(MaterialTextCell);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isTimeControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputTime } from '../mui-controls/MuiInputTime';\n\nexport const MaterialTimeCell = (props: CellProps & WithClassname) => (\n <MuiInputTime {...props} />\n);\nexport const materialTimeCellTester: RankedTester = rankWith(2, isTimeControl);\n\nexport default withJsonFormsCellProps(MaterialTimeCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useState} from 'react';\nimport merge from 'lodash/merge';\nimport { Button, Hidden, Step, StepButton, Stepper } from '@mui/material';\nimport {\n and,\n Categorization,\n categorizationHasCategory,\n Category,\n isVisible,\n optionIs,\n RankedTester,\n rankWith,\n StatePropsOfLayout,\n uiTypeIs\n} from '@jsonforms/core';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\nimport {\n AjvProps,\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps,\n withAjvProps\n} from '../util/layout';\n\nexport const materialCategorizationStepperTester: RankedTester = rankWith(\n 2,\n and(\n uiTypeIs('Categorization'),\n categorizationHasCategory,\n optionIs('variant', 'stepper')\n )\n);\n\nexport interface CategorizationStepperState {\n activeCategory: number;\n}\n\nexport interface MaterialCategorizationStepperLayoutRendererProps\n extends StatePropsOfLayout, AjvProps {\n data: any;\n}\n\nexport const MaterialCategorizationStepperLayoutRenderer = (props: MaterialCategorizationStepperLayoutRendererProps)=> {\n const [activeCategory, setActiveCategory] = useState<number>(0);\n\n const handleStep = (step: number) => {\n setActiveCategory( step);\n };\n\n const {\n data,\n path,\n renderers,\n schema,\n uischema,\n visible,\n cells,\n config,\n ajv\n } = props;\n const categorization = uischema as Categorization;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const buttonWrapperStyle = {\n textAlign: 'right' as 'right',\n width: '100%',\n margin: '1em auto'\n };\n const buttonNextStyle = {\n float: 'right' as 'right'\n };\n const buttonStyle = {\n marginRight: '1em'\n };\n const categories = categorization.elements.filter((category: Category) =>\n isVisible(category, data, undefined, ajv)\n );\n const childProps: MaterialLayoutRendererProps = {\n elements: categories[activeCategory].elements,\n schema,\n path,\n direction: 'column',\n visible,\n renderers,\n cells\n };\n return (\n <Hidden xsUp={!visible}>\n <Stepper activeStep={activeCategory} nonLinear>\n {categories.map((e: Category, idx: number) => (\n <Step key={e.label}>\n <StepButton onClick={() => handleStep(idx)}>\n {e.label}\n </StepButton>\n </Step>\n ))}\n </Stepper>\n <div>\n <MaterialLayoutRenderer {...childProps} />\n </div>\n { !!appliedUiSchemaOptions.showNavButtons ? (<div style={buttonWrapperStyle}>\n <Button\n style={buttonNextStyle}\n variant=\"contained\"\n color=\"primary\"\n disabled={activeCategory >= categories.length - 1}\n onClick={() => handleStep(activeCategory + 1)}\n >\n Next\n </Button>\n <Button\n style={buttonStyle}\n color=\"secondary\"\n variant=\"contained\"\n disabled={activeCategory <= 0}\n onClick={() => handleStep(activeCategory - 1)}\n >\n Previous\n </Button>\n </div>) : (<></>)}\n </Hidden>\n );\n};\n\nexport default withJsonFormsLayoutProps(withAjvProps(\n MaterialCategorizationStepperLayoutRenderer\n));\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n JsonFormsCellRendererRegistryEntry,\n JsonFormsRendererRegistryEntry\n} from '@jsonforms/core';\nimport {\n materialAllOfControlTester,\n MaterialAllOfRenderer,\n materialAnyOfControlTester,\n MaterialAnyOfRenderer,\n MaterialArrayControlRenderer,\n materialArrayControlTester,\n materialObjectControlTester,\n MaterialObjectRenderer,\n materialOneOfControlTester,\n MaterialOneOfRenderer,\n MaterialEnumArrayRenderer,\n materialEnumArrayRendererTester\n} from './complex';\nimport {\n MaterialLabelRenderer,\n materialLabelRendererTester,\n MaterialListWithDetailRenderer,\n materialListWithDetailTester\n} from './additional';\nimport {\n MaterialAnyOfStringOrEnumControl,\n materialAnyOfStringOrEnumControlTester,\n MaterialBooleanControl,\n materialBooleanControlTester,\n MaterialBooleanToggleControl,\n materialBooleanToggleControlTester,\n MaterialDateControl,\n materialDateControlTester,\n MaterialDateTimeControl,\n materialDateTimeControlTester,\n MaterialTimeControl,\n materialTimeControlTester,\n MaterialEnumControl,\n materialEnumControlTester,\n MaterialIntegerControl,\n materialIntegerControlTester,\n MaterialNativeControl,\n materialNativeControlTester,\n MaterialNumberControl,\n materialNumberControlTester,\n MaterialOneOfEnumControl,\n materialOneOfEnumControlTester,\n MaterialRadioGroupControl,\n materialRadioGroupControlTester,\n MaterialSliderControl,\n materialSliderControlTester,\n MaterialTextControl,\n materialTextControlTester,\n MaterialOneOfRadioGroupControl,\n materialOneOfRadioGroupControlTester\n} from './controls';\nimport {\n MaterialArrayLayout,\n materialArrayLayoutTester,\n MaterialCategorizationLayout,\n materialCategorizationTester,\n MaterialGroupLayout,\n materialGroupTester,\n MaterialHorizontalLayout,\n materialHorizontalLayoutTester,\n MaterialVerticalLayout,\n materialVerticalLayoutTester\n} from './layouts';\nimport {\n MaterialBooleanCell,\n materialBooleanCellTester,\n MaterialBooleanToggleCell,\n materialBooleanToggleCellTester,\n MaterialDateCell,\n materialDateCellTester,\n MaterialEnumCell,\n materialEnumCellTester,\n MaterialIntegerCell,\n materialIntegerCellTester,\n MaterialNumberCell,\n materialNumberCellTester,\n MaterialNumberFormatCell,\n materialNumberFormatCellTester,\n MaterialOneOfEnumCell,\n materialOneOfEnumCellTester,\n MaterialTextCell,\n materialTextCellTester,\n MaterialTimeCell,\n materialTimeCellTester\n} from './cells';\nimport MaterialCategorizationStepperLayout, {\n materialCategorizationStepperTester\n} from './layouts/MaterialCategorizationStepperLayout';\n\nexport * from './complex';\nexport * from './controls';\nexport * from './layouts';\nexport * from './cells';\nexport * from './mui-controls';\nexport * from './util';\n\nexport const materialRenderers: JsonFormsRendererRegistryEntry[] = [\n // controls\n {\n tester: materialArrayControlTester,\n renderer: MaterialArrayControlRenderer\n },\n { tester: materialBooleanControlTester, renderer: MaterialBooleanControl },\n { tester: materialBooleanToggleControlTester, renderer: MaterialBooleanToggleControl },\n { tester: materialNativeControlTester, renderer: MaterialNativeControl },\n { tester: materialEnumControlTester, renderer: MaterialEnumControl },\n { tester: materialIntegerControlTester, renderer: MaterialIntegerControl },\n { tester: materialNumberControlTester, renderer: MaterialNumberControl },\n { tester: materialTextControlTester, renderer: MaterialTextControl },\n { tester: materialDateTimeControlTester, renderer: MaterialDateTimeControl },\n { tester: materialDateControlTester, renderer: MaterialDateControl },\n { tester: materialTimeControlTester, renderer: MaterialTimeControl }, \n { tester: materialSliderControlTester, renderer: MaterialSliderControl },\n { tester: materialObjectControlTester, renderer: MaterialObjectRenderer },\n { tester: materialAllOfControlTester, renderer: MaterialAllOfRenderer },\n { tester: materialAnyOfControlTester, renderer: MaterialAnyOfRenderer },\n { tester: materialOneOfControlTester, renderer: MaterialOneOfRenderer },\n {\n tester: materialRadioGroupControlTester,\n renderer: MaterialRadioGroupControl\n },\n {\n tester: materialOneOfRadioGroupControlTester,\n renderer: MaterialOneOfRadioGroupControl\n },\n { tester: materialOneOfEnumControlTester, renderer: MaterialOneOfEnumControl },\n // layouts\n { tester: materialGroupTester, renderer: MaterialGroupLayout },\n {\n tester: materialHorizontalLayoutTester,\n renderer: MaterialHorizontalLayout\n },\n { tester: materialVerticalLayoutTester, renderer: MaterialVerticalLayout },\n {\n tester: materialCategorizationTester,\n renderer: MaterialCategorizationLayout\n },\n {\n tester: materialCategorizationStepperTester,\n renderer: MaterialCategorizationStepperLayout\n },\n { tester: materialArrayLayoutTester, renderer: MaterialArrayLayout },\n // additional\n { tester: materialLabelRendererTester, renderer: MaterialLabelRenderer },\n {\n tester: materialListWithDetailTester,\n renderer: MaterialListWithDetailRenderer\n },\n {\n tester: materialAnyOfStringOrEnumControlTester,\n renderer: MaterialAnyOfStringOrEnumControl\n },\n {\n tester: materialEnumArrayRendererTester,\n renderer: MaterialEnumArrayRenderer\n }\n];\n\nexport const materialCells: JsonFormsCellRendererRegistryEntry[] = [\n { tester: materialBooleanCellTester, cell: MaterialBooleanCell },\n { tester: materialBooleanToggleCellTester, cell: MaterialBooleanToggleCell },\n { tester: materialDateCellTester, cell: MaterialDateCell },\n { tester: materialEnumCellTester, cell: MaterialEnumCell },\n { tester: materialIntegerCellTester, cell: MaterialIntegerCell },\n { tester: materialNumberCellTester, cell: MaterialNumberCell },\n { tester: materialNumberFormatCellTester, cell: MaterialNumberFormatCell },\n { tester: materialOneOfEnumCellTester, cell: MaterialOneOfEnumCell },\n { tester: materialTextCellTester, cell: MaterialTextCell },\n { tester: materialTimeCellTester, cell: MaterialTimeCell }\n];\n"],"names":["styled","eventToValue","toNumber","ListWithDetailMasterItem","MaterialBooleanControlUnwrapped","MaterialBooleanToggleControlUnwrapped","MaterialEnumControlUnwrapped","MaterialNativeControlUnwrapped","MaterialDateControlUnwrapped","MaterialDateTimeControlUnwrapped","MaterialTimeControlUnwrapped","MaterialSliderControlUnwrapped","MaterialRadioGroupControlUnwrapped","MaterialIntegerControlUnwrapped","MaterialNumberControlUnwrapped","MaterialTextControlUnwrapped","MaterialAnyOfStringOrEnumControlUnwrapped","MaterialOneOfEnumControlUnwrapped","MaterialOneOfRadioGroupControlUnwrapped","ExpandPanelRenderer","MaterialArrayLayout","Input","MaterialArrayControlRenderer","MaterialBooleanControl","MaterialBooleanToggleControl","MaterialNativeControl","MaterialEnumControl","MaterialIntegerControl","MaterialNumberControl","MaterialTextControl","MaterialDateTimeControl","MaterialDateControl","MaterialTimeControl","MaterialSliderControl","MaterialObjectRenderer","MaterialAllOfRenderer","MaterialAnyOfRenderer","MaterialOneOfRenderer","MaterialRadioGroupControl","MaterialOneOfRadioGroupControl","MaterialOneOfEnumControl","MaterialLabelRenderer","MaterialListWithDetailRenderer","MaterialAnyOfStringOrEnumControl","MaterialEnumArrayRenderer","MaterialBooleanCell","MaterialBooleanToggleCell","MaterialDateCell","MaterialEnumCell","MaterialIntegerCell","MaterialNumberCell","MaterialNumberFormatCell","MaterialOneOfEnumCell","MaterialTextCell","MaterialTimeCell"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"jsonforms-react-material.esm.js","sources":["../src/complex/NoBorderTableCell.tsx","../src/complex/ValidationIcon.tsx","../src/complex/TableToolbar.tsx","../src/complex/MaterialTableControl.tsx","../src/complex/DeleteDialog.tsx","../src/complex/MaterialArrayControlRenderer.tsx","../src/complex/MaterialObjectRenderer.tsx","../src/complex/MaterialAllOfRenderer.tsx","../src/complex/CombinatorProperties.tsx","../src/complex/MaterialAnyOfRenderer.tsx","../src/complex/MaterialOneOfRenderer.tsx","../src/mui-controls/MuiCheckbox.tsx","../src/util/datejs.tsx","../src/util/layout.tsx","../src/util/debounce.ts","../src/util/focus.ts","../src/util/i18nDefaults.ts","../src/mui-controls/MuiSelect.tsx","../src/mui-controls/MuiInputInteger.tsx","../src/mui-controls/MuiInputNumber.tsx","../src/mui-controls/MuiInputNumberFormat.tsx","../src/mui-controls/MuiInputText.tsx","../src/mui-controls/MuiInputTime.tsx","../src/complex/MaterialEnumArrayRenderer.tsx","../src/complex/index.ts","../src/additional/MaterialLabelRenderer.tsx","../src/layouts/ArrayToolbar.tsx","../src/additional/ListWithDetailMasterItem.tsx","../src/additional/MaterialListWithDetailRenderer.tsx","../src/controls/MaterialBooleanControl.tsx","../src/mui-controls/MuiToggle.tsx","../src/controls/MaterialBooleanToggleControl.tsx","../src/controls/MaterialInputControl.tsx","../src/mui-controls/MuiAutocomplete.tsx","../src/controls/MaterialEnumControl.tsx","../src/controls/MaterialNativeControl.tsx","../src/controls/MaterialDateControl.tsx","../src/controls/MaterialDateTimeControl.tsx","../src/controls/MaterialTimeControl.tsx","../src/controls/MaterialSliderControl.tsx","../src/controls/MaterialRadioGroup.tsx","../src/controls/MaterialRadioGroupControl.tsx","../src/controls/MaterialIntegerControl.tsx","../src/controls/MaterialNumberControl.tsx","../src/controls/MaterialTextControl.tsx","../src/controls/MaterialAnyOfStringOrEnumControl.tsx","../src/controls/MaterialOneOfEnumControl.tsx","../src/controls/MaterialOneOfRadioGroupControl.tsx","../src/controls/index.ts","../src/layouts/MaterialGroupLayout.tsx","../src/layouts/MaterialHorizontalLayout.tsx","../src/layouts/MaterialVerticalLayout.tsx","../src/layouts/MaterialCategorizationLayout.tsx","../src/layouts/ExpandPanelRenderer.tsx","../src/layouts/MaterialArrayLayout.tsx","../src/layouts/MaterialArrayLayoutRenderer.tsx","../src/cells/MaterialBooleanCell.tsx","../src/cells/MaterialBooleanToggleCell.tsx","../src/cells/MaterialDateCell.tsx","../src/cells/MaterialEnumCell.tsx","../src/cells/MaterialIntegerCell.tsx","../src/cells/MaterialNumberCell.tsx","../src/cells/MaterialNumberFormatCell.tsx","../src/cells/MaterialOneOfEnumCell.tsx","../src/cells/MaterialTextCell.tsx","../src/cells/MaterialTimeCell.tsx","../src/layouts/MaterialCategorizationStepperLayout.tsx","../src/index.ts"],"sourcesContent":["/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport { styled } from '@mui/material/styles';\nimport { TableCell } from '@mui/material';\nimport React from 'react';\n\nconst StyledTableCell = styled(TableCell)({\n borderBottom: 'none'\n});\n\nconst NoBorderTableCell = ({ children, ...otherProps }: any) => (\n <StyledTableCell {...otherProps}>\n {children}\n </StyledTableCell>\n);\n\nexport default (NoBorderTableCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\n\nimport ErrorOutlineIcon from '@mui/icons-material/ErrorOutline';\nimport {\n Badge,\n Tooltip,\n styled\n} from '@mui/material';\n\nconst StyledBadge = styled(Badge)(({ theme }: any) => ({\n color: theme.palette.error.main\n}));\n\nexport interface ValidationProps {\n errorMessages: string;\n id: string;\n}\n\nconst ValidationIcon: React.FC<ValidationProps> =\n ({ errorMessages, id }) => {\n return (\n <Tooltip\n id={id}\n title={errorMessages}\n >\n <StyledBadge badgeContent={errorMessages.split('\\n').length}>\n <ErrorOutlineIcon color='inherit'/>\n </StyledBadge>\n </Tooltip>\n );\n};\n\nexport default ValidationIcon;\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlElement,\n createDefaultValue,\n JsonSchema,\n} from '@jsonforms/core';\nimport {\n IconButton,\n TableRow,\n Tooltip\n} from '@mui/material';\nimport { Grid, Hidden, Typography } from '@mui/material';\nimport AddIcon from '@mui/icons-material/Add';\nimport ValidationIcon from './ValidationIcon';\nimport NoBorderTableCell from './NoBorderTableCell';\n\nexport interface MaterialTableToolbarProps {\n numColumns: number;\n errors: string;\n label: string;\n path: string;\n uischema: ControlElement;\n schema: JsonSchema;\n rootSchema: JsonSchema;\n enabled: boolean;\n addItem(path: string, value: any): () => void;\n}\n\nconst fixedCellSmall = {\n paddingLeft: 0,\n paddingRight: 0,\n}\n\nconst TableToolbar = React.memo(\n ({\n numColumns,\n errors,\n label,\n path,\n addItem,\n schema,\n enabled\n }: MaterialTableToolbarProps) => (\n <TableRow>\n <NoBorderTableCell colSpan={numColumns}>\n <Grid\n container\n justifyContent={'flex-start'}\n alignItems={'center'}\n spacing={2}\n >\n <Grid item>\n <Typography variant={'h6'}>{label}</Typography>\n </Grid>\n <Grid item>\n <Hidden smUp={errors.length === 0}>\n <Grid item>\n <ValidationIcon\n id='tooltip-validation'\n errorMessages={errors}\n />\n </Grid>\n </Hidden>\n </Grid>\n </Grid>\n </NoBorderTableCell>\n {enabled ? (\n <NoBorderTableCell align='right' style={ fixedCellSmall }>\n <Tooltip\n id='tooltip-add'\n title={`Add to ${label}`}\n placement='bottom'\n >\n <IconButton\n aria-label={`Add to ${label}`}\n onClick={addItem(path, createDefaultValue(schema))}\n size='large'>\n <AddIcon />\n </IconButton>\n </Tooltip>\n </NoBorderTableCell>\n ) : null}\n </TableRow>\n )\n);\n\nexport default TableToolbar;\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport union from 'lodash/union';\nimport {\n DispatchCell,\n JsonFormsStateContext,\n useJsonForms\n} from '@jsonforms/react';\nimport startCase from 'lodash/startCase';\nimport range from 'lodash/range';\nimport React, { Fragment, useMemo } from 'react';\nimport {\n FormHelperText,\n Grid,\n Hidden,\n IconButton,\n Table,\n TableBody,\n TableCell,\n TableHead,\n TableRow,\n Typography\n} from '@mui/material';\nimport {\n ArrayLayoutProps,\n ControlElement,\n errorsAt,\n formatErrorMessage,\n JsonSchema,\n Paths,\n Resolve,\n JsonFormsRendererRegistryEntry,\n JsonFormsCellRendererRegistryEntry,\n encode\n} from '@jsonforms/core';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport ArrowDownward from '@mui/icons-material/ArrowDownward';\nimport ArrowUpward from '@mui/icons-material/ArrowUpward';\n\nimport { WithDeleteDialogSupport } from './DeleteDialog';\nimport NoBorderTableCell from './NoBorderTableCell';\nimport TableToolbar from './TableToolbar';\nimport { ErrorObject } from 'ajv';\nimport merge from 'lodash/merge';\n\n// we want a cell that doesn't automatically span\nconst styles = {\n fixedCell: {\n width: '150px',\n height: '50px',\n paddingLeft: 0,\n paddingRight: 0,\n textAlign: 'center'\n },\n fixedCellSmall: {\n width: '50px',\n height: '50px',\n paddingLeft: 0,\n paddingRight: 0,\n textAlign: 'center'\n }\n};\n\nconst generateCells = (\n Cell: React.ComponentType<OwnPropsOfNonEmptyCell | TableHeaderCellProps>,\n schema: JsonSchema,\n rowPath: string,\n enabled: boolean,\n cells?: JsonFormsCellRendererRegistryEntry[]\n) => {\n if (schema.type === 'object') {\n return getValidColumnProps(schema).map(prop => {\n const cellPath = Paths.compose(rowPath, prop);\n const props = {\n propName: prop,\n schema,\n title: schema.properties?.[prop]?.title ?? startCase(prop),\n rowPath,\n cellPath,\n enabled,\n cells\n };\n return <Cell key={cellPath} {...props} />;\n });\n } else {\n // primitives\n const props = {\n schema,\n rowPath,\n cellPath: rowPath,\n enabled\n };\n return <Cell key={rowPath} {...props} />;\n }\n};\n\nconst getValidColumnProps = (scopedSchema: JsonSchema) => {\n if (scopedSchema.type === 'object' && typeof scopedSchema.properties === 'object') {\n return Object.keys(scopedSchema.properties).filter(\n prop => scopedSchema.properties[prop].type !== 'array'\n );\n }\n // primitives\n return [''];\n};\n\nexport interface EmptyTableProps {\n numColumns: number;\n}\n\nconst EmptyTable = ({ numColumns }: EmptyTableProps) => (\n <TableRow>\n <NoBorderTableCell colSpan={numColumns}>\n <Typography align='center'>No data</Typography>\n </NoBorderTableCell>\n </TableRow>\n);\n\ninterface TableHeaderCellProps {\n title: string;\n}\n\nconst TableHeaderCell = React.memo(({ title }: TableHeaderCellProps) => (\n <TableCell>{title}</TableCell>\n));\n\ninterface NonEmptyCellProps extends OwnPropsOfNonEmptyCell {\n rootSchema: JsonSchema;\n errors: string;\n path: string;\n enabled: boolean;\n}\ninterface OwnPropsOfNonEmptyCell {\n rowPath: string;\n propName?: string;\n schema: JsonSchema;\n enabled: boolean;\n renderers?: JsonFormsRendererRegistryEntry[];\n cells?: JsonFormsCellRendererRegistryEntry[];\n}\nconst ctxToNonEmptyCellProps = (\n ctx: JsonFormsStateContext,\n ownProps: OwnPropsOfNonEmptyCell\n): NonEmptyCellProps => {\n const path =\n ownProps.rowPath +\n (ownProps.schema.type === 'object' ? '.' + ownProps.propName : '');\n const errors = formatErrorMessage(\n union(\n errorsAt(\n path,\n ownProps.schema,\n p => p === path\n )(ctx.core.errors).map((error: ErrorObject) => error.message)\n )\n );\n return {\n rowPath: ownProps.rowPath,\n propName: ownProps.propName,\n schema: ownProps.schema,\n rootSchema: ctx.core.schema,\n errors,\n path,\n enabled: ownProps.enabled,\n cells: ownProps.cells || ctx.cells,\n renderers: ownProps.renderers || ctx.renderers\n };\n};\n\nconst controlWithoutLabel = (scope: string): ControlElement => ({\n type: 'Control',\n scope: scope,\n label: false\n});\n\ninterface NonEmptyCellComponentProps {\n path: string,\n propName?: string,\n schema: JsonSchema,\n rootSchema: JsonSchema,\n errors: string,\n enabled: boolean,\n renderers?: JsonFormsRendererRegistryEntry[],\n cells?: JsonFormsCellRendererRegistryEntry[],\n isValid: boolean\n}\nconst NonEmptyCellComponent = React.memo(({path, propName, schema, rootSchema, errors, enabled, renderers, cells, isValid}:NonEmptyCellComponentProps) => {\n return (\n <NoBorderTableCell>\n {schema.properties ? (\n <DispatchCell\n schema={Resolve.schema(\n schema,\n `#/properties/${encode(propName)}`,\n rootSchema\n )}\n uischema={controlWithoutLabel(`#/properties/${encode(propName)}`)}\n path={path}\n enabled={enabled}\n renderers={renderers}\n cells={cells}\n />\n ) : (\n <DispatchCell\n schema={schema}\n uischema={controlWithoutLabel('#')}\n path={path}\n enabled={enabled}\n renderers={renderers}\n cells={cells}\n />\n )}\n <FormHelperText error={!isValid}>{!isValid && errors}</FormHelperText>\n </NoBorderTableCell>\n );\n});\n\nconst NonEmptyCell = (ownProps: OwnPropsOfNonEmptyCell) => {\n const ctx = useJsonForms();\n const emptyCellProps = ctxToNonEmptyCellProps(ctx, ownProps);\n\n const isValid = isEmpty(emptyCellProps.errors);\n return <NonEmptyCellComponent {...emptyCellProps} isValid={isValid}/>\n};\n\ninterface NonEmptyRowProps {\n childPath: string;\n schema: JsonSchema;\n rowIndex: number;\n moveUpCreator: (path:string, position: number)=> ()=> void;\n moveDownCreator: (path:string, position: number)=> ()=> void;\n enableUp: boolean;\n enableDown: boolean;\n showSortButtons: boolean;\n enabled: boolean;\n cells?: JsonFormsCellRendererRegistryEntry[];\n path: string;\n}\n\nconst NonEmptyRowComponent = \n ({\n childPath,\n schema,\n rowIndex,\n openDeleteDialog,\n moveUpCreator,\n moveDownCreator,\n enableUp,\n enableDown,\n showSortButtons,\n enabled,\n cells,\n path\n }: NonEmptyRowProps & WithDeleteDialogSupport) => {\n const moveUp = useMemo(() => moveUpCreator(path, rowIndex),[moveUpCreator, path, rowIndex]);\n const moveDown = useMemo(() => moveDownCreator(path, rowIndex),[moveDownCreator, path, rowIndex]);\n return (\n <TableRow key={childPath} hover>\n {generateCells(NonEmptyCell, schema, childPath, enabled, cells)}\n {enabled ? (\n <NoBorderTableCell\n style={showSortButtons ? styles.fixedCell : styles.fixedCellSmall}\n >\n <Grid\n container\n direction='row'\n justifyContent='flex-end'\n alignItems='center'\n >\n {showSortButtons ? (\n <Fragment>\n <Grid item>\n <IconButton aria-label={`Move up`} onClick={moveUp} disabled={!enableUp} size='large'>\n <ArrowUpward />\n </IconButton>\n </Grid>\n <Grid item>\n <IconButton\n aria-label={`Move down`}\n onClick={moveDown}\n disabled={!enableDown}\n size='large'>\n <ArrowDownward />\n </IconButton>\n </Grid>\n </Fragment>\n ) : null}\n <Grid item>\n <IconButton\n aria-label={`Delete`}\n onClick={() => openDeleteDialog(childPath, rowIndex)}\n size='large'>\n <DeleteIcon />\n </IconButton>\n </Grid>\n </Grid>\n </NoBorderTableCell>\n ) : null}\n </TableRow>\n );\n };\nexport const NonEmptyRow = React.memo(NonEmptyRowComponent);\ninterface TableRowsProp {\n data: number;\n path: string;\n schema: JsonSchema;\n uischema: ControlElement;\n config?: any;\n enabled: boolean;\n cells?: JsonFormsCellRendererRegistryEntry[];\n moveUp?(path: string, toMove: number): () => void;\n moveDown?(path: string, toMove: number): () => void;\n}\nconst TableRows = ({\n data,\n path,\n schema,\n openDeleteDialog,\n moveUp,\n moveDown,\n uischema,\n config,\n enabled,\n cells\n}: TableRowsProp & WithDeleteDialogSupport) => {\n const isEmptyTable = data === 0;\n\n if (isEmptyTable) {\n return <EmptyTable numColumns={getValidColumnProps(schema).length + 1} />;\n }\n\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <React.Fragment>\n {range(data).map((index: number) => {\n const childPath = Paths.compose(path, `${index}`);\n\n return (\n <NonEmptyRow\n key={childPath}\n childPath={childPath}\n rowIndex={index}\n schema={schema}\n openDeleteDialog={openDeleteDialog}\n moveUpCreator={moveUp}\n moveDownCreator={moveDown}\n enableUp={index !== 0}\n enableDown={index !== data - 1}\n showSortButtons={appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayTableSortButtons}\n enabled={enabled}\n cells={cells}\n path={path}\n />\n );\n })}\n </React.Fragment>\n );\n};\n\nexport class MaterialTableControl extends React.Component<\n ArrayLayoutProps & WithDeleteDialogSupport,\n any\n> {\n addItem = (path: string, value: any) => this.props.addItem(path, value);\n render() {\n const {\n label,\n path,\n schema,\n rootSchema,\n uischema,\n errors,\n openDeleteDialog,\n visible,\n enabled,\n cells\n } = this.props;\n\n const controlElement = uischema as ControlElement;\n const isObjectSchema = schema.type === 'object';\n const headerCells: any = isObjectSchema\n ? generateCells(TableHeaderCell, schema, path, enabled, cells)\n : undefined;\n\n return (\n <Hidden xsUp={!visible}>\n <Table>\n <TableHead>\n <TableToolbar\n errors={errors}\n label={label}\n addItem={this.addItem}\n numColumns={isObjectSchema ? headerCells.length : 1}\n path={path}\n uischema={controlElement}\n schema={schema}\n rootSchema={rootSchema}\n enabled={enabled}\n />\n {isObjectSchema && (\n <TableRow>\n {headerCells}\n {enabled ? <TableCell /> : null}\n </TableRow>\n )}\n </TableHead>\n <TableBody>\n <TableRows openDeleteDialog={openDeleteDialog} {...this.props} />\n </TableBody>\n </Table>\n </Hidden>\n );\n }\n}\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n} from '@mui/material';\n\nexport interface DeleteDialogProps {\n open: boolean;\n onClose(): void;\n onConfirm(): void;\n onCancel(): void;\n}\n\nexport interface WithDeleteDialogSupport {\n openDeleteDialog(path: string, data: number): void;\n}\n\nexport const DeleteDialog = React.memo(({ open, onClose, onConfirm, onCancel }: DeleteDialogProps) => {\n return (\n <Dialog\n open={open}\n keepMounted\n onClose={onClose}\n aria-labelledby='alert-dialog-confirmdelete-title'\n aria-describedby='alert-dialog-confirmdelete-description'\n >\n <DialogTitle id='alert-dialog-confirmdelete-title'>\n {'Confirm Deletion'}\n </DialogTitle>\n <DialogContent>\n <DialogContentText id='alert-dialog-confirmdelete-description'>\n Are you sure you want to delete the selected entry?\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={onCancel} color='primary'>\n No\n </Button>\n <Button onClick={onConfirm} color='primary'>\n Yes\n </Button>\n </DialogActions>\n </Dialog>\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback, useState } from 'react';\nimport { ArrayLayoutProps } from '@jsonforms/core';\nimport { withJsonFormsArrayLayoutProps } from '@jsonforms/react';\nimport { MaterialTableControl } from './MaterialTableControl';\nimport { Hidden } from '@mui/material';\nimport { DeleteDialog } from './DeleteDialog';\n\nexport const MaterialArrayControlRenderer = (props: ArrayLayoutProps) => {\n const [open, setOpen] = useState(false);\n const [path, setPath] = useState(undefined);\n const [rowData, setRowData] = useState(undefined);\n const { removeItems, visible } = props;\n\n const openDeleteDialog = useCallback((p: string, rowIndex: number) => {\n setOpen(true);\n setPath(p);\n setRowData(rowIndex);\n }, [setOpen, setPath, setRowData]);\n const deleteCancel = useCallback(() => setOpen(false), [setOpen]);\n const deleteConfirm = useCallback(() => {\n const p = path.substring(0, path.lastIndexOf(('.')));\n removeItems(p, [rowData])();\n setOpen(false);\n }, [setOpen, path, rowData]);\n const deleteClose = useCallback(() => setOpen(false), [setOpen]);\n\n return (\n <Hidden xsUp={!visible}>\n <MaterialTableControl\n {...props}\n openDeleteDialog={openDeleteDialog}\n />\n <DeleteDialog\n open={open}\n onCancel={deleteCancel}\n onConfirm={deleteConfirm}\n onClose={deleteClose}\n />\n </Hidden>\n );\n};\n\nexport default withJsonFormsArrayLayoutProps(MaterialArrayControlRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport {\n findUISchema,\n Generate,\n isObjectControl,\n RankedTester,\n rankWith,\n StatePropsOfControlWithDetail\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsDetailProps } from '@jsonforms/react';\nimport { Hidden } from '@mui/material';\nimport React, { useMemo } from 'react';\n\nexport const MaterialObjectRenderer = ({\n renderers,\n cells,\n uischemas,\n schema,\n label,\n path,\n visible,\n enabled,\n uischema,\n rootSchema\n}: StatePropsOfControlWithDetail) => {\n const detailUiSchema = useMemo(\n () =>\n findUISchema(\n uischemas,\n schema,\n uischema.scope,\n path,\n () => isEmpty(path) ? Generate.uiSchema(schema, 'VerticalLayout') : {...Generate.uiSchema(schema, 'Group'), label},\n uischema,\n rootSchema\n ),\n [uischemas, schema, uischema.scope, path, label, uischema, rootSchema]\n );\n return (\n <Hidden xsUp={!visible}>\n <JsonFormsDispatch\n visible={visible}\n enabled={enabled}\n schema={schema}\n uischema={detailUiSchema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n </Hidden>\n );\n};\n\nexport const materialObjectControlTester: RankedTester = rankWith(\n 2,\n isObjectControl\n);\n\nexport default withJsonFormsDetailProps(MaterialObjectRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { Hidden } from '@mui/material';\n\nimport {\n createCombinatorRenderInfos,\n findMatchingUISchema,\n isAllOfControl,\n JsonSchema,\n RankedTester,\n rankWith,\n StatePropsOfCombinator\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsAllOfProps } from '@jsonforms/react';\n\nexport const MaterialAllOfRenderer = ({\n schema,\n rootSchema,\n visible,\n renderers,\n cells,\n path,\n uischemas,\n uischema\n}: StatePropsOfCombinator) => {\n const delegateUISchema = findMatchingUISchema(uischemas)(\n schema,\n uischema.scope,\n path\n );\n if (delegateUISchema) {\n return (\n <Hidden xsUp={!visible}>\n <JsonFormsDispatch\n schema={schema}\n uischema={delegateUISchema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n </Hidden>\n );\n }\n const allOfRenderInfos = createCombinatorRenderInfos(\n (schema as JsonSchema).allOf,\n rootSchema,\n 'allOf',\n uischema,\n path,\n uischemas\n );\n\n return (\n <Hidden xsUp={!visible}>\n {allOfRenderInfos.map((allOfRenderInfo, allOfIndex) => (\n <JsonFormsDispatch\n key={allOfIndex}\n schema={allOfRenderInfo.schema}\n uischema={allOfRenderInfo.uischema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n ))}\n </Hidden>\n );\n};\n\nexport const materialAllOfControlTester: RankedTester = rankWith(\n 3,\n isAllOfControl\n);\n\nexport default withJsonFormsAllOfProps(MaterialAllOfRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { Generate, JsonSchema, Layout, UISchemaElement } from '@jsonforms/core';\nimport { JsonFormsDispatch } from '@jsonforms/react';\nimport omit from 'lodash/omit';\n\ninterface CombinatorPropertiesProps {\n schema: JsonSchema;\n combinatorKeyword: 'oneOf' | 'anyOf';\n path: string;\n}\n\nexport const isLayout = (uischema: UISchemaElement): uischema is Layout =>\n uischema.hasOwnProperty('elements');\n\nexport class CombinatorProperties extends React.Component<CombinatorPropertiesProps, {}> {\n\n render() {\n\n const { schema, combinatorKeyword, path } = this.props;\n\n const otherProps: JsonSchema = omit(schema, combinatorKeyword) as JsonSchema;\n const foundUISchema: UISchemaElement = Generate.uiSchema(otherProps, 'VerticalLayout');\n let isLayoutWithElements = false;\n if (foundUISchema !== null && isLayout(foundUISchema)) {\n isLayoutWithElements = foundUISchema.elements.length > 0;\n }\n\n if (isLayoutWithElements) {\n return (\n <JsonFormsDispatch\n schema={otherProps}\n path={path}\n uischema={foundUISchema}\n />\n );\n }\n\n return null;\n }\n}\n\nexport default CombinatorProperties;\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback, useState } from 'react';\n\nimport {\n createCombinatorRenderInfos,\n isAnyOfControl,\n JsonSchema,\n RankedTester,\n rankWith,\n StatePropsOfCombinator\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, withJsonFormsAnyOfProps } from '@jsonforms/react';\nimport { Hidden, Tab, Tabs } from '@mui/material';\nimport CombinatorProperties from './CombinatorProperties';\n\nexport const MaterialAnyOfRenderer = ({\n schema,\n rootSchema,\n indexOfFittingSchema,\n visible,\n path,\n renderers,\n cells,\n uischema,\n uischemas\n}: StatePropsOfCombinator) => {\n const [selectedAnyOf, setSelectedAnyOf] = useState(indexOfFittingSchema || 0);\n const handleChange = useCallback(\n (_ev: any, value: number) => setSelectedAnyOf(value),\n [setSelectedAnyOf]\n );\n const anyOf = 'anyOf';\n const anyOfRenderInfos = createCombinatorRenderInfos(\n (schema as JsonSchema).anyOf,\n rootSchema,\n anyOf,\n uischema,\n path,\n uischemas\n );\n\n return (\n <Hidden xsUp={!visible}>\n <CombinatorProperties\n schema={schema}\n combinatorKeyword={anyOf}\n path={path}\n />\n <Tabs value={selectedAnyOf} onChange={handleChange}>\n {anyOfRenderInfos.map(anyOfRenderInfo => (\n <Tab key={anyOfRenderInfo.label} label={anyOfRenderInfo.label} />\n ))}\n </Tabs>\n {anyOfRenderInfos.map(\n (anyOfRenderInfo, anyOfIndex) =>\n selectedAnyOf === anyOfIndex && (\n <JsonFormsDispatch\n key={anyOfIndex}\n schema={anyOfRenderInfo.schema}\n uischema={anyOfRenderInfo.uischema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n )\n )}\n </Hidden>\n );\n};\n\nexport const materialAnyOfControlTester: RankedTester = rankWith(\n 3,\n isAnyOfControl\n);\n\nexport default withJsonFormsAnyOfProps(MaterialAnyOfRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback, useState } from 'react';\nimport isEmpty from 'lodash/isEmpty';\n\nimport {\n CombinatorRendererProps,\n createCombinatorRenderInfos,\n createDefaultValue,\n isOneOfControl,\n JsonSchema,\n OwnPropsOfControl,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport {\n Button,\n Dialog,\n DialogActions,\n DialogContent,\n DialogContentText,\n DialogTitle,\n Hidden,\n Tab,\n Tabs\n} from '@mui/material';\nimport {\n JsonFormsDispatch,\n withJsonFormsOneOfProps\n} from '@jsonforms/react';\nimport CombinatorProperties from './CombinatorProperties';\n\nexport interface OwnOneOfProps extends OwnPropsOfControl {\n indexOfFittingSchema?: number;\n}\n\nexport const MaterialOneOfRenderer =\n ({ handleChange, schema, path, renderers, cells, rootSchema, id, visible, indexOfFittingSchema, uischema, uischemas, data }: CombinatorRendererProps) => {\n const [open, setOpen] = useState(false);\n const [selectedIndex, setSelectedIndex] = useState(indexOfFittingSchema || 0);\n const [newSelectedIndex, setNewSelectedIndex] = useState(0);\n const handleClose = useCallback(() => setOpen(false), [setOpen]);\n const cancel = useCallback(() => {\n setOpen(false);\n }, [setOpen]);\n const oneOfRenderInfos = createCombinatorRenderInfos(\n (schema as JsonSchema).oneOf,\n rootSchema,\n 'oneOf',\n uischema,\n path,\n uischemas\n );\n\n const openNewTab = (newIndex: number) => {\n handleChange(\n path,\n createDefaultValue(oneOfRenderInfos[newIndex].schema)\n );\n setSelectedIndex(newIndex);\n }\n\n const confirm = useCallback(() => {\n openNewTab(newSelectedIndex)\n setOpen(false);\n }, [handleChange, createDefaultValue, newSelectedIndex]);\n const handleTabChange = useCallback((_event: any, newOneOfIndex: number) => {\n setNewSelectedIndex(newOneOfIndex);\n if(isEmpty(data)) {\n openNewTab(newOneOfIndex)\n } else {\n setOpen(true);\n }\n\n }, [setOpen, setSelectedIndex, data]);\n\n return (\n <Hidden xsUp={!visible}>\n <CombinatorProperties\n schema={schema}\n combinatorKeyword={'oneOf'}\n path={path}\n />\n <Tabs value={selectedIndex} onChange={handleTabChange}>\n {oneOfRenderInfos.map(oneOfRenderInfo => <Tab key={oneOfRenderInfo.label} label={oneOfRenderInfo.label} />)}\n </Tabs>\n {\n oneOfRenderInfos.map((oneOfRenderInfo, oneOfIndex) => (\n selectedIndex === oneOfIndex && (\n <JsonFormsDispatch\n key={oneOfIndex}\n schema={oneOfRenderInfo.schema}\n uischema={oneOfRenderInfo.uischema}\n path={path}\n renderers={renderers}\n cells={cells}\n />\n )\n ))\n }\n <Dialog\n open={open}\n onClose={handleClose}\n aria-labelledby='alert-dialog-title'\n aria-describedby='alert-dialog-description'\n >\n <DialogTitle id='alert-dialog-title'>{'Clear form?'}</DialogTitle>\n <DialogContent>\n <DialogContentText id='alert-dialog-description'>\n Your data will be cleared if you navigate away from this tab.\n Do you want to proceed?\n </DialogContentText>\n </DialogContent>\n <DialogActions>\n <Button onClick={cancel} color='primary'>\n No\n </Button>\n <Button onClick={confirm} color='primary' autoFocus id={`oneOf-${id}-confirm-yes`}>\n Yes\n </Button>\n </DialogActions>\n </Dialog>\n </Hidden>\n );\n };\n\nexport const materialOneOfControlTester: RankedTester = rankWith(3, isOneOfControl);\n\nexport default withJsonFormsOneOfProps(MaterialOneOfRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Checkbox } from '@mui/material';\nimport merge from 'lodash/merge';\n\nexport const MuiCheckbox = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };\n // !! causes undefined value to be converted to false, otherwise has no effect\n const checked = !!data;\n\n return (\n <Checkbox\n checked={checked}\n onChange={(_ev, isChecked) => handleChange(path, isChecked)}\n className={className}\n id={id}\n disabled={!enabled}\n inputProps={inputProps}\n />\n );\n});\n","import { TextField, TextFieldProps } from '@mui/material';\nimport dayjs from 'dayjs';\nimport customParsing from 'dayjs/plugin/customParseFormat';\nimport React, { useRef} from 'react';\n\n// required for the custom save formats in the date, time and date-time pickers\ndayjs.extend(customParsing);\n\nexport const createOnChangeHandler = (\n path: string,\n handleChange: (path: string, value: any) => void,\n saveFormat: string | undefined\n) => (time: dayjs.Dayjs, textInputValue: string) => {\n if (!time) {\n handleChange(path, undefined);\n return;\n }\n const result = dayjs(time).format(saveFormat);\n handleChange(path, result === 'Invalid Date' ? textInputValue : result);\n};\n\nexport const getData = (\n data: any,\n saveFormat: string | undefined\n): dayjs.Dayjs | null => {\n if (!data) {\n return null;\n }\n const dayjsData = dayjs(data, saveFormat);\n if (dayjsData.toString() === 'Invalid Date') {\n return null;\n }\n return dayjsData;\n};\n\n\ninterface InputRef {\n lastInput: string;\n toShow: string;\n}\n\ntype ResettableTextFieldProps = TextFieldProps & {\n rawValue: any;\n dayjsValueIsValid: boolean;\n valueInInputFormat: string;\n focused: boolean;\n}\n\n/**\n * The dayjs formatter/parser is very lenient and for example ignores additional digits and/or characters.\n * In these cases the input text can look vastly different than the actual value stored in the data.\n * The 'ResettableTextField' component adjusts the text field to reflect the actual value stored in the data\n * once it's no longer 'focused', i.e. when the user stops editing.\n */\nexport const ResettableTextField: React.FC<ResettableTextFieldProps> = ({ rawValue, dayjsValueIsValid, valueInInputFormat, focused, inputProps, ...props }) => {\n const value = useRef<InputRef>({ lastInput: inputProps?.value, toShow: inputProps?.value });\n if (!focused) {\n // The input text is not focused, therefore let's show the value actually stored in the data\n if (!dayjsValueIsValid) {\n // pass through the \"raw\" value in case it can't be formatted by dayjs\n value.current.toShow = typeof rawValue === 'string' || rawValue === null || rawValue === undefined ? rawValue : JSON.stringify(rawValue)\n } else {\n // otherwise use the specified format\n value.current.toShow = valueInInputFormat;\n }\n }\n if (focused && inputProps?.value !== value.current.lastInput) {\n // Show the current text the user is typing into the text input\n value.current.lastInput = inputProps?.value;\n value.current.toShow = inputProps?.value;\n }\n return <TextField {...props} inputProps={{ ...inputProps, value: value.current.toShow || '' }} />\n}\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { ComponentType } from 'react';\nimport Ajv from 'ajv';\nimport type { UISchemaElement } from '@jsonforms/core';\nimport {\n getAjv,\n JsonFormsCellRendererRegistryEntry,\n JsonFormsRendererRegistryEntry,\n JsonSchema,\n OwnPropsOfRenderer,\n} from '@jsonforms/core';\nimport { JsonFormsDispatch, useJsonForms } from '@jsonforms/react';\nimport { Grid, Hidden } from '@mui/material';\n\nexport const renderLayoutElements = (\n elements: UISchemaElement[],\n schema: JsonSchema,\n path: string,\n enabled: boolean,\n renderers?: JsonFormsRendererRegistryEntry[],\n cells?: JsonFormsCellRendererRegistryEntry[]\n) => {\n return elements.map((child, index) => (\n <Grid item key={`${path}-${index}`} xs>\n <JsonFormsDispatch\n uischema={child}\n schema={schema}\n path={path}\n enabled={enabled}\n renderers={renderers}\n cells={cells}\n />\n </Grid>\n ));\n};\n\nexport interface MaterialLayoutRendererProps extends OwnPropsOfRenderer {\n elements: UISchemaElement[];\n direction: 'row' | 'column';\n}\nconst MaterialLayoutRendererComponent =\n ({\n visible,\n elements,\n schema,\n path,\n enabled,\n direction,\n renderers,\n cells\n }: MaterialLayoutRendererProps) => {\n if (isEmpty(elements)) {\n return null;\n } else {\n return (\n <Hidden xsUp={!visible}>\n <Grid\n container\n direction={direction}\n spacing={direction === 'row' ? 2 : 0}\n >\n {renderLayoutElements(\n elements,\n schema,\n path,\n enabled,\n renderers,\n cells\n )}\n </Grid>\n </Hidden>\n );\n }\n };\nexport const MaterialLayoutRenderer = React.memo(MaterialLayoutRendererComponent);\n\nexport interface AjvProps {\n ajv: Ajv;\n}\n\nexport const withAjvProps = <P extends {}>(Component: ComponentType<AjvProps & P>) =>\n (props: P) => {\n const ctx = useJsonForms();\n const ajv = getAjv({jsonforms: {...ctx}});\n\n return (<Component {...props} ajv={ajv} />);\n };\n\nexport interface MaterialLabelableLayoutRendererProps extends MaterialLayoutRendererProps {\n label?: string;\n}\n","/*\n The MIT License\n \n Copyright (c) 2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport debounce from 'lodash/debounce';\nimport { useState, useCallback, useEffect } from 'react'\n\n\nconst eventToValue = (ev: any) => ev.target.value;\nexport const useDebouncedChange = (handleChange: (path: string, value: any) => void, defaultValue: any, data: any, path: string, eventToValueFunction: (ev: any) => any = eventToValue, timeout = 300): [any, React.ChangeEventHandler, () => void] => {\n const [input, setInput] = useState(data ?? defaultValue);\n useEffect(() => {\n setInput(data ?? defaultValue);\n }, [data]);\n const debouncedUpdate = useCallback(debounce((newValue: string) => handleChange(path, newValue), timeout), [handleChange, path, timeout]);\n const onChange = useCallback((ev: any) => {\n const newValue = eventToValueFunction(ev);\n setInput(newValue ?? defaultValue);\n debouncedUpdate(newValue);\n }, [debouncedUpdate, eventToValueFunction]);\n const onClear = useCallback(() => { setInput(defaultValue); handleChange(path, undefined) }, [defaultValue, handleChange, path]);\n return [input, onChange, onClear];\n};","/*\n The MIT License\n \n Copyright (c) 2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {useState, useCallback} from 'react';\n\nexport const useFocus = ():[boolean, () => void, () => void] => {\n const [focused, setFocused] = useState(false);\n const onFocus = useCallback(() => setFocused(true), []);\n const onBlur = useCallback(() => setFocused(false), []);\n return [focused, onFocus, onBlur];\n};","export const i18nDefaults = {\n 'enum.none': 'None'\n}\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useMemo } from 'react';\nimport { EnumCellProps, WithClassname } from '@jsonforms/core';\n\nimport { MenuItem, Select } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { TranslateProps } from '@jsonforms/react';\nimport { i18nDefaults } from '../util';\n\nexport const MuiSelect = React.memo((props: EnumCellProps & WithClassname & TranslateProps) => {\n const {\n data,\n className,\n id,\n enabled,\n schema,\n uischema,\n path,\n handleChange,\n options,\n config,\n t\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const noneOptionLabel = useMemo(() => t('enum.none', i18nDefaults['enum.none'], { schema, uischema, path}), [t, schema, uischema, path]);\n\n return (\n <Select\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n value={data !== undefined ? data : ''}\n onChange={ev =>handleChange(path, ev.target.value || undefined)}\n fullWidth={true}\n variant={'standard'}\n >\n {[<MenuItem value={''} key='jsonforms.enum.none'><em>{noneOptionLabel}</em></MenuItem>].concat(\n options.map(optionValue => (\n <MenuItem value={optionValue.value} key={optionValue.value}>\n {optionValue.label}\n </MenuItem>\n ))\n )}\n </Select>\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange } from '../util';\n\nconst toNumber = (value: string) =>\n value === '' ? undefined : parseInt(value, 10);\nconst eventToValue = (ev:any) => toNumber(ev.target.value);\n\nexport const MuiInputInteger = React.memo( \n (props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const inputProps = { step: '1' };\n \n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);\n\n return (\n <Input\n type='number'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n inputProps={inputProps}\n fullWidth={true}\n />\n );\n });\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport {useDebouncedChange} from '../util';\n\nconst toNumber = (value: string) =>\n value === '' ? undefined : parseFloat(value);\nconst eventToValue = (ev:any) => toNumber(ev.target.value);\nexport const MuiInputNumber = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const inputProps = { step: '0.1' };\n \n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);\n\n return (\n <Input\n type='number'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n inputProps={inputProps}\n fullWidth={true}\n />\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useCallback} from 'react';\nimport { CellProps, Formatted, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange } from '../util';\n\nexport const MuiInputNumberFormat = React.memo( \n (props: CellProps & WithClassname & Formatted<number>) => {\n const {\n className,\n id,\n enabled,\n uischema,\n isValid,\n path,\n handleChange,\n schema,\n config\n } = props;\n const maxLength = schema.maxLength;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n let inputProps;\n if (appliedUiSchemaOptions.restrict) {\n inputProps = { maxLength: maxLength };\n } else {\n inputProps = {};\n }\n const formattedNumber = props.toFormatted(props.data);\n\n const validStringNumber = useCallback((ev:any) => props.fromFormatted(ev.currentTarget.value),[props.fromFormatted]);\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', formattedNumber, path, validStringNumber);\n\n\n return (\n <Input\n type='text'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n multiline={appliedUiSchemaOptions.multi}\n fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}\n inputProps={inputProps}\n error={!isValid}\n />\n );\n });\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useState } from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport {\n IconButton,\n Input,\n InputAdornment,\n InputBaseComponentProps,\n InputProps,\n useTheme\n} from '@mui/material';\nimport merge from 'lodash/merge';\nimport Close from '@mui/icons-material/Close';\nimport { JsonFormsTheme, useDebouncedChange } from '../util';\n\ninterface MuiTextInputProps {\n muiInputProps?: InputProps['inputProps'];\n inputComponent?: InputProps['inputComponent'];\n}\n\nconst eventToValue = (ev:any) => ev.target.value === '' ? undefined : ev.target.value;\n\nexport const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTextInputProps) => { \n const [showAdornment, setShowAdornment] = useState(false);\n const {\n data,\n config,\n className,\n id,\n enabled,\n uischema,\n isValid,\n path,\n handleChange,\n schema,\n muiInputProps,\n inputComponent\n } = props;\n const maxLength = schema.maxLength;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n let inputProps: InputBaseComponentProps;\n if (appliedUiSchemaOptions.restrict) {\n inputProps = { maxLength: maxLength };\n } else {\n inputProps = {};\n }\n \n inputProps = merge(inputProps, muiInputProps);\n \n if (appliedUiSchemaOptions.trim && maxLength !== undefined) {\n inputProps.size = maxLength;\n };\n \n const [inputText, onChange, onClear] = useDebouncedChange(handleChange, '', data, path, eventToValue);\n const onPointerEnter = () => setShowAdornment(true);\n const onPointerLeave = () => setShowAdornment(false);\n\n const theme: JsonFormsTheme = useTheme();\n \n const closeStyle = {\n background: theme.jsonforms?.input?.delete?.background || theme.palette.background.default,\n borderRadius: '50%'\n };\n\n return (\n <Input\n type={\n appliedUiSchemaOptions.format === 'password' ? 'password' : 'text'\n }\n value={inputText}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n multiline={appliedUiSchemaOptions.multi}\n fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}\n inputProps={inputProps}\n error={!isValid}\n onPointerEnter={onPointerEnter}\n onPointerLeave={onPointerLeave}\n endAdornment={\n <InputAdornment\n position='end'\n style={{\n display:\n !showAdornment || !enabled || data === undefined ? 'none' : 'flex',\n position: 'absolute',\n right: 0\n }}\n >\n <IconButton\n aria-label='Clear input field'\n onClick={onClear} \n size='large'\n >\n <Close style={closeStyle}/>\n </IconButton>\n </InputAdornment>\n }\n inputComponent={inputComponent}\n />\n );\n});\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Input } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange } from '../util';\n\nexport const MuiInputTime = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path);\n\n return (\n <Input\n type='time'\n value={inputValue}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n fullWidth={true}\n />\n );\n});\n","import {\n and,\n ControlProps,\n DispatchPropsOfMultiEnumControl,\n hasType,\n JsonSchema,\n OwnPropsOfEnum,\n Paths,\n RankedTester,\n rankWith,\n schemaMatches,\n schemaSubPathMatches,\n uiTypeIs\n} from '@jsonforms/core';\n\nimport { withJsonFormsMultiEnumProps } from '@jsonforms/react';\nimport { MuiCheckbox } from '../mui-controls';\nimport {\n FormControl,\n FormControlLabel,\n FormGroup,\n FormHelperText,\n Hidden\n} from '@mui/material';\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\n\nexport const MaterialEnumArrayRenderer = ({\n schema,\n visible,\n errors,\n path,\n options,\n data,\n addItem,\n removeItem,\n handleChange,\n ...otherProps\n}: ControlProps & OwnPropsOfEnum & DispatchPropsOfMultiEnumControl) => {\n return (\n <Hidden xlUp={!visible}>\n <FormControl component='fieldset'>\n <FormGroup row>\n {options.map((option: any, index: number) => {\n const optionPath = Paths.compose(path, `${index}`);\n const checkboxValue = data?.includes(option.value)\n ? option.value\n : undefined;\n return (\n <FormControlLabel\n id={option.value}\n key={option.value}\n control={\n <MuiCheckbox\n key={'checkbox-' + option.value}\n isValid={isEmpty(errors)}\n path={optionPath}\n handleChange={(_childPath, newValue) =>\n newValue\n ? addItem(path, option.value)\n : removeItem(path, option.value)\n }\n data={checkboxValue}\n errors={errors}\n schema={schema}\n visible={visible}\n {...otherProps}\n />\n }\n label={option.label}\n />\n );\n })}\n </FormGroup>\n <FormHelperText error>\n {errors}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\n\nconst hasOneOfItems = (schema: JsonSchema): boolean =>\n schema.oneOf !== undefined &&\n schema.oneOf.length > 0 &&\n (schema.oneOf as JsonSchema[]).every((entry: JsonSchema) => {\n return entry.const !== undefined;\n });\n\nconst hasEnumItems = (schema: JsonSchema): boolean =>\n schema.type === 'string' && schema.enum !== undefined;\n\nexport const materialEnumArrayRendererTester: RankedTester = rankWith(\n 5,\n and(\n uiTypeIs('Control'),\n and(\n schemaMatches(\n schema =>\n hasType(schema, 'array') &&\n !Array.isArray(schema.items) &&\n schema.uniqueItems === true\n ),\n schemaSubPathMatches('items', schema => {\n return hasOneOfItems(schema) || hasEnumItems(schema);\n })\n )\n )\n);\n\nexport default withJsonFormsMultiEnumProps(MaterialEnumArrayRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n isObjectArrayControl,\n isPrimitiveArrayControl,\n or,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport MaterialArrayControlRenderer from './MaterialArrayControlRenderer';\nimport MaterialObjectRenderer, {\n materialObjectControlTester\n} from './MaterialObjectRenderer';\nimport MaterialAllOfRenderer, {\n materialAllOfControlTester\n} from './MaterialAllOfRenderer';\nimport MaterialAnyOfRenderer, {\n materialAnyOfControlTester\n} from './MaterialAnyOfRenderer';\nimport MaterialOneOfRenderer, {\n materialOneOfControlTester\n} from './MaterialOneOfRenderer';\nimport MaterialEnumArrayRenderer, {\n materialEnumArrayRendererTester\n} from './MaterialEnumArrayRenderer';\n\nexport const materialArrayControlTester: RankedTester = rankWith(\n 3,\n or(isObjectArrayControl, isPrimitiveArrayControl)\n);\nexport { MaterialArrayControlRenderer };\nexport { MaterialObjectRenderer };\nexport { MaterialAllOfRenderer };\nexport { MaterialAnyOfRenderer };\nexport { MaterialOneOfRenderer };\nexport { MaterialEnumArrayRenderer };\nexport { materialObjectControlTester };\nexport { materialAllOfControlTester };\nexport { materialAnyOfControlTester };\nexport { materialOneOfControlTester };\nexport { materialEnumArrayRendererTester };\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n LabelProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n} from '@jsonforms/core';\nimport { withJsonFormsLabelProps } from '@jsonforms/react';\nimport {\n Hidden,\n Typography\n} from '@mui/material';\n\n/**\n * Default tester for a label.\n * @type {RankedTester}\n */\nexport const materialLabelRendererTester: RankedTester = rankWith(1, uiTypeIs('Label'));\n\n/**\n * Default renderer for a label.\n */\nexport const MaterialLabelRenderer = ({ text, visible }: LabelProps ) => {\n return (\n <Hidden xsUp={!visible}>\n <Typography variant='h6'>\n {text}\n </Typography>\n </Hidden>\n );\n};\n\nexport default withJsonFormsLabelProps(MaterialLabelRenderer);\n","import { \n Grid,\n IconButton,\n Hidden,\n Toolbar,\n Tooltip,\n Typography\n} from '@mui/material';\nimport AddIcon from '@mui/icons-material/Add';\nimport React from 'react';\nimport ValidationIcon from '../complex/ValidationIcon';\nexport interface ArrayLayoutToolbarProps {\n label: string;\n errors: string;\n path: string;\n addItem(path: string, data: any): () => void;\n createDefault(): any;\n}\nexport const ArrayLayoutToolbar = React.memo(\n ({\n label,\n errors,\n addItem,\n path,\n createDefault\n }: ArrayLayoutToolbarProps) => {\n return (\n <Toolbar disableGutters={true}>\n <Grid container alignItems='center' justifyContent='space-between'>\n <Grid item>\n <Typography variant={'h6'}>{label}</Typography>\n </Grid>\n <Hidden smUp={errors.length === 0}>\n <Grid item>\n <ValidationIcon id='tooltip-validation' errorMessages={errors} />\n </Grid>\n </Hidden>\n <Grid item>\n <Grid container>\n <Grid item>\n <Tooltip\n id='tooltip-add'\n title={`Add to ${label}`}\n placement='bottom'\n >\n <IconButton\n aria-label={`Add to ${label}`}\n onClick={addItem(path, createDefault())}\n size='large'>\n <AddIcon />\n </IconButton>\n </Tooltip>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Toolbar>\n );\n }\n);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport { StatePropsOfMasterItem } from '@jsonforms/core';\nimport { withJsonFormsMasterListItemProps } from '@jsonforms/react';\nimport {\n Avatar,\n IconButton,\n ListItem,\n ListItemAvatar,\n ListItemSecondaryAction,\n ListItemText,\n} from '@mui/material';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport React from 'react';\n\nconst ListWithDetailMasterItem = ({ index, childLabel, selected, handleSelect, removeItem, path }: StatePropsOfMasterItem) => {\n return (\n <ListItem\n button\n selected={selected}\n onClick={handleSelect(index)}\n >\n <ListItemAvatar>\n <Avatar aria-label='Index'>{index + 1}</Avatar>\n </ListItemAvatar>\n <ListItemText primary={childLabel} />\n <ListItemSecondaryAction>\n <IconButton aria-label='Delete' onClick={removeItem(path, index)} size='large'>\n <DeleteIcon />\n </IconButton>\n </ListItemSecondaryAction>\n </ListItem>\n );\n};\n\nexport default withJsonFormsMasterListItemProps(ListWithDetailMasterItem);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n and,\n ArrayLayoutProps,\n composePaths,\n computeLabel,\n createDefaultValue,\n findUISchema,\n isObjectArray,\n RankedTester,\n rankWith,\n uiTypeIs\n} from '@jsonforms/core';\nimport {\n JsonFormsDispatch,\n withJsonFormsArrayLayoutProps\n} from '@jsonforms/react';\nimport { Grid, Hidden, List, Typography } from '@mui/material';\nimport map from 'lodash/map';\nimport range from 'lodash/range';\nimport React, { useCallback, useMemo, useState } from 'react';\nimport { ArrayLayoutToolbar } from '../layouts/ArrayToolbar';\nimport ListWithDetailMasterItem from './ListWithDetailMasterItem';\nimport merge from 'lodash/merge';\n\nexport const MaterialListWithDetailRenderer = ({\n uischemas,\n schema,\n uischema,\n path,\n errors,\n visible,\n label,\n required,\n removeItems,\n addItem,\n data,\n renderers,\n cells,\n config,\n rootSchema\n}: ArrayLayoutProps) => {\n const [selectedIndex, setSelectedIndex] = useState(undefined);\n const handleRemoveItem = useCallback(\n (p: string, value: any) => () => {\n removeItems(p, [value])();\n if (selectedIndex === value) {\n setSelectedIndex(undefined);\n } else if (selectedIndex > value) {\n setSelectedIndex(selectedIndex - 1);\n }\n },\n [removeItems, setSelectedIndex]\n );\n const handleListItemClick = useCallback(\n (index: number) => () => setSelectedIndex(index),\n [setSelectedIndex]\n );\n const handleCreateDefaultValue = useCallback(\n () => createDefaultValue(schema),\n [createDefaultValue]\n );\n const foundUISchema = useMemo(\n () =>\n findUISchema(\n uischemas,\n schema,\n uischema.scope,\n path,\n undefined,\n uischema,\n rootSchema\n ),\n [uischemas, schema, uischema.scope, path, uischema, rootSchema]\n );\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <Hidden xsUp={!visible}>\n <ArrayLayoutToolbar\n label={computeLabel(\n label,\n required,\n appliedUiSchemaOptions.hideRequiredAsterisk\n )}\n errors={errors}\n path={path}\n addItem={addItem}\n createDefault={handleCreateDefaultValue}\n />\n <Grid container direction='row' spacing={2}>\n <Grid item xs={3}>\n <List>\n {data > 0 ? (\n map(range(data), index => (\n <ListWithDetailMasterItem\n index={index}\n path={path}\n schema={schema}\n handleSelect={handleListItemClick}\n removeItem={handleRemoveItem}\n selected={selectedIndex === index}\n key={index}\n />\n ))\n ) : (\n <p>No data</p>\n )}\n </List>\n </Grid>\n <Grid item xs>\n {selectedIndex !== undefined ? (\n <JsonFormsDispatch\n renderers={renderers}\n cells={cells}\n visible={visible}\n schema={schema}\n uischema={foundUISchema}\n path={composePaths(path, `${selectedIndex}`)}\n />\n ) : (\n <Typography variant='h6'>No Selection</Typography>\n )}\n </Grid>\n </Grid>\n </Hidden>\n );\n};\n\nexport const materialListWithDetailTester: RankedTester = rankWith(\n 4,\n and(uiTypeIs('ListWithDetail'), isObjectArray)\n);\n\nexport default withJsonFormsArrayLayoutProps(MaterialListWithDetailRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport {\n isBooleanControl,\n RankedTester,\n rankWith,\n ControlProps\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormControlLabel, Hidden } from '@mui/material';\nimport { MuiCheckbox } from '../mui-controls/MuiCheckbox';\n\nexport const MaterialBooleanControl = ({\n data,\n visible,\n label,\n id,\n enabled,\n uischema,\n schema,\n rootSchema,\n handleChange,\n errors,\n path,\n config\n}: ControlProps) => {\n return (\n <Hidden xsUp={!visible}>\n <FormControlLabel\n label={label}\n id={id}\n control={\n <MuiCheckbox\n id={`${id}-input`}\n isValid={isEmpty(errors)}\n data={data}\n enabled={enabled}\n visible={visible}\n path={path}\n uischema={uischema}\n schema={schema}\n rootSchema={rootSchema}\n handleChange={handleChange}\n errors={errors}\n config={config}\n />\n }\n />\n </Hidden>\n );\n};\n\nexport const materialBooleanControlTester: RankedTester = rankWith(\n 2,\n isBooleanControl\n);\nexport default withJsonFormsControlProps(MaterialBooleanControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport { CellProps, WithClassname } from '@jsonforms/core';\nimport { Switch } from '@mui/material';\nimport merge from 'lodash/merge';\n\nexport const MuiToggle = React.memo((props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };\n const checked = !!data;\n\n return (\n <Switch\n checked={checked}\n onChange={(_ev, isChecked) => handleChange(path, isChecked)}\n className={className}\n id={id}\n disabled={!enabled}\n inputProps={inputProps}\n />\n );\n});\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport {\n isBooleanControl,\n RankedTester,\n rankWith,\n ControlProps,\n optionIs,\n and\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormControlLabel, Hidden } from '@mui/material';\nimport { MuiToggle } from '../mui-controls/MuiToggle';\n\nexport const MaterialBooleanToggleControl = ({\n data,\n visible,\n label,\n id,\n enabled,\n uischema,\n schema,\n rootSchema,\n handleChange,\n errors,\n path,\n config\n}: ControlProps) => {\n return (\n <Hidden xsUp={!visible}>\n <FormControlLabel\n label={label}\n id={id}\n control={\n <MuiToggle\n id={`${id}-input`}\n isValid={isEmpty(errors)}\n data={data}\n enabled={enabled}\n visible={visible}\n path={path}\n uischema={uischema}\n schema={schema}\n rootSchema={rootSchema}\n handleChange={handleChange}\n errors={errors}\n config={config}\n />\n }\n />\n </Hidden>\n );\n};\n\nexport const materialBooleanToggleControlTester: RankedTester = rankWith(\n 3,\n and(isBooleanControl, optionIs('toggle', true))\n);\n\nexport default withJsonFormsControlProps(MaterialBooleanToggleControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n showAsRequired,\n ControlProps,\n isDescriptionHidden,\n} from '@jsonforms/core';\n\nimport { Hidden, InputLabel } from '@mui/material';\nimport { FormControl, FormHelperText } from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useFocus } from '../util';\n\nexport interface WithInput {\n input: any;\n}\n\nexport const MaterialInputControl = (props: ControlProps & WithInput) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n description,\n errors,\n label,\n uischema,\n visible,\n required,\n config,\n input\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n const InnerComponent = input;\n\n return (\n <Hidden xsUp={!visible}>\n <FormControl\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n variant={'standard'}\n >\n <InputLabel\n htmlFor={id + '-input'}\n error={!isValid}\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n >\n {label}\n </InputLabel>\n <InnerComponent\n {...props}\n id={id + '-input'}\n isValid={isValid}\n visible={visible}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\n","/*\n The MIT License\n\n Copyright (c) 2017-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { ReactNode } from 'react';\nimport { ControlProps, EnumCellProps, EnumOption, isDescriptionHidden, WithClassname } from '@jsonforms/core';\n\nimport {\n Autocomplete,\n AutocompleteRenderOptionState,\n FilterOptionsState,\n FormHelperText,\n Hidden,\n TextField\n} from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useFocus } from '../util/focus';\n\nexport interface WithOptionLabel {\n getOptionLabel?(option: EnumOption) : string;\n renderOption?(props: React.HTMLAttributes<HTMLLIElement>, option: EnumOption, state: AutocompleteRenderOptionState): ReactNode;\n filterOptions?(options: EnumOption[], state: FilterOptionsState<EnumOption>) : EnumOption[];\n}\n\nexport const MuiAutocomplete = (props: ControlProps & EnumCellProps & WithClassname & WithOptionLabel) => {\n const {\n description,\n errors,\n visible,\n required,\n label,\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n options,\n config,\n getOptionLabel,\n renderOption,\n filterOptions,\n isValid\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const [inputValue, setInputValue] = React.useState(data ?? '');\n const [focused, onFocus, onBlur] = useFocus();\n\n const findOption = options.find(o => o.value === data) ?? null;\n \n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n \n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n\n return (\n <Hidden xsUp={!visible}>\n <Autocomplete\n className={className}\n id={id}\n disabled={!enabled}\n value={findOption}\n onChange={(_event: any, newValue: EnumOption | null) => {\n handleChange(path, newValue?.value);\n }}\n inputValue={inputValue}\n onInputChange={(_event, newInputValue) => {\n setInputValue(newInputValue);\n }}\n autoHighlight\n autoSelect\n autoComplete\n fullWidth\n options={options}\n getOptionLabel={getOptionLabel || (option => option?.label)}\n freeSolo={false}\n renderInput={params => { \n return(\n <TextField\n label={label} \n variant={'standard'}\n type='text'\n inputProps={params.inputProps}\n inputRef={params.InputProps.ref}\n autoFocus={appliedUiSchemaOptions.focus}\n disabled={!enabled}\n {...params}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n focused={focused}\n />\n )}}\n renderOption={renderOption}\n filterOptions={filterOptions}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </Hidden>\n );\n};\n","/*\n The MIT License\n\n Copyright (c) 2018-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isEnumControl,\n OwnPropsOfEnum,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { TranslateProps, withJsonFormsEnumProps, withTranslateProps } from '@jsonforms/react';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\nimport merge from 'lodash/merge';\nimport { MaterialInputControl } from './MaterialInputControl';\nimport { MuiAutocomplete, WithOptionLabel } from '../mui-controls/MuiAutocomplete';\n\nexport const MaterialEnumControl = (props: ControlProps & OwnPropsOfEnum & WithOptionLabel & TranslateProps) => {\n const {config, uischema, errors} = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const isValid = errors.length === 0;\n return (\n appliedUiSchemaOptions.autocomplete === false ?\n <MaterialInputControl\n {...props}\n input={MuiSelect}\n />:\n <MuiAutocomplete\n {...props}\n isValid={isValid}\n />\n );\n};\n\nexport const materialEnumControlTester: RankedTester = rankWith(\n 2,\n isEnumControl\n);\n\n// HOC order can be reversed with https://github.com/eclipsesource/jsonforms/issues/1987\nexport default withJsonFormsEnumProps(withTranslateProps(React.memo(MaterialEnumControl)), false);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n showAsRequired,\n isDateControl,\n isDescriptionHidden,\n isTimeControl,\n or,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { Hidden, TextField } from '@mui/material';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport merge from 'lodash/merge';\nimport { useDebouncedChange, useFocus } from '../util';\n\nexport const MaterialNativeControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n errors,\n label,\n schema,\n description,\n enabled,\n visible,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path);\n const fieldType = appliedUiSchemaOptions.format ?? schema.format;\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n return (\n <Hidden xsUp={!visible}>\n <TextField\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n id={id + '-input'}\n label={label}\n type={fieldType}\n error={!isValid}\n disabled={!enabled}\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n helperText={!isValid ? errors : showDescription ? description : null}\n InputLabelProps={{ shrink: true }}\n value={inputValue}\n onChange={onChange}\n />\n </Hidden>\n );\n};\n\nexport const materialNativeControlTester: RankedTester = rankWith(\n 2,\n or(isDateControl, isTimeControl)\n);\n\nexport default withJsonFormsControlProps(MaterialNativeControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport merge from 'lodash/merge';\nimport React, { useMemo } from 'react';\nimport {\n ControlProps,\n isDateControl,\n isDescriptionHidden,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormHelperText, Hidden } from '@mui/material';\nimport {\n DatePicker,\n LocalizationProvider \n} from '@mui/lab';\nimport AdapterDayjs from '@mui/lab/AdapterDayjs';\nimport {\n createOnChangeHandler,\n getData,\n ResettableTextField,\n useFocus,\n} from '../util';\n\nexport const MaterialDateControl = (props: ControlProps)=> {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n description,\n id,\n errors,\n label,\n uischema,\n visible,\n enabled,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const format = appliedUiSchemaOptions.dateFormat ?? 'YYYY-MM-DD';\n const saveFormat = appliedUiSchemaOptions.dateSaveFormat ?? 'YYYY-MM-DD';\n\n const views = appliedUiSchemaOptions.views ?? ['year', 'day'];\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n const onChange = useMemo(() => createOnChangeHandler(\n path,\n handleChange,\n saveFormat\n ),[path, handleChange, saveFormat]);\n\n const value = getData(data, saveFormat);\n const valueInInputFormat = value ? value.format(format) : '';\n\n return (\n <Hidden xsUp={!visible}>\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DatePicker\n label={label}\n value={value}\n clearable\n onChange={onChange}\n inputFormat={format}\n disableMaskedInput\n views={views}\n disabled={!enabled}\n cancelText={appliedUiSchemaOptions.cancelLabel}\n clearText={appliedUiSchemaOptions.clearLabel}\n okText={appliedUiSchemaOptions.okLabel}\n renderInput={params => (\n <ResettableTextField \n {...params}\n rawValue={data}\n dayjsValueIsValid={value !== null}\n valueInInputFormat={valueInInputFormat}\n focused={focused}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n autoFocus={appliedUiSchemaOptions.focus}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n inputProps={{\n ...params.inputProps,\n type: 'text',\n }}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n variant={'standard'}\n />\n )}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </LocalizationProvider>\n </Hidden>\n );\n};\n\nexport const materialDateControlTester: RankedTester = rankWith(\n 4,\n isDateControl\n);\n\nexport default withJsonFormsControlProps(MaterialDateControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useMemo } from 'react';\nimport merge from 'lodash/merge';\nimport {\n ControlProps,\n isDateTimeControl,\n isDescriptionHidden,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormHelperText, Hidden } from '@mui/material';\nimport {\n DateTimePicker,\n LocalizationProvider \n} from '@mui/lab';\nimport AdapterDayjs from '@mui/lab/AdapterDayjs';\nimport {\n createOnChangeHandler,\n getData,\n ResettableTextField,\n useFocus\n} from '../util';\n\nexport const MaterialDateTimeControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n description,\n errors,\n label,\n uischema,\n visible,\n enabled,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const isValid = errors.length === 0;\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const format = appliedUiSchemaOptions.dateTimeFormat ?? 'YYYY-MM-DD HH:mm';\n const saveFormat = appliedUiSchemaOptions.dateTimeSaveFormat ?? undefined;\n\n const views = appliedUiSchemaOptions.views ?? ['year', 'day', 'hours', 'minutes'];\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n\n const onChange = useMemo(() => createOnChangeHandler(\n path,\n handleChange,\n saveFormat\n ),[path, handleChange, saveFormat]);\n\n const value = getData(data, saveFormat);\n const valueInInputFormat = value ? value.format(format) : '';\n\n return (\n <Hidden xsUp={!visible}>\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <DateTimePicker\n label={label}\n value={value}\n clearable\n onChange={onChange}\n inputFormat={format}\n disableMaskedInput\n ampm={!!appliedUiSchemaOptions.ampm}\n views={views}\n disabled={!enabled}\n cancelText={appliedUiSchemaOptions.cancelLabel}\n clearText={appliedUiSchemaOptions.clearLabel}\n okText={appliedUiSchemaOptions.okLabel}\n renderInput={params => (\n <ResettableTextField \n {...params}\n rawValue={data}\n dayjsValueIsValid={value !== null}\n valueInInputFormat={valueInInputFormat}\n focused={focused}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n autoFocus={appliedUiSchemaOptions.focus}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n inputProps={{\n ...params.inputProps,\n type: 'text',\n }}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n variant={'standard'}\n />\n )}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </LocalizationProvider>\n </Hidden>\n );\n};\n\nexport const materialDateTimeControlTester: RankedTester = rankWith(\n 2,\n isDateTimeControl\n);\n\nexport default withJsonFormsControlProps(MaterialDateTimeControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useMemo } from 'react';\nimport merge from 'lodash/merge';\nimport {\n ControlProps,\n isTimeControl,\n isDescriptionHidden,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { FormHelperText, Hidden } from '@mui/material';\nimport {\n TimePicker,\n LocalizationProvider \n} from '@mui/lab';\nimport AdapterDayjs from '@mui/lab/AdapterDayjs';\nimport {\n createOnChangeHandler,\n getData,\n ResettableTextField,\n useFocus\n} from '../util';\n\nexport const MaterialTimeControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n description,\n errors,\n label,\n uischema,\n visible,\n enabled,\n required,\n path,\n handleChange,\n data,\n config\n } = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const isValid = errors.length === 0;\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const format = appliedUiSchemaOptions.timeFormat ?? 'HH:mm';\n const saveFormat = appliedUiSchemaOptions.timeSaveFormat ?? 'HH:mm:ss';\n\n const views = appliedUiSchemaOptions.views ?? ['hours', 'minutes'];\n\n const firstFormHelperText = showDescription\n ? description\n : !isValid\n ? errors\n : null;\n const secondFormHelperText = showDescription && !isValid ? errors : null;\n\n const onChange = useMemo(() => createOnChangeHandler(\n path,\n handleChange,\n saveFormat\n ),[path, handleChange, saveFormat]);\n\n const value = getData(data, saveFormat);\n const valueInInputFormat = value ? value.format(format) : '';\n\n return (\n <Hidden xsUp={!visible}>\n <LocalizationProvider dateAdapter={AdapterDayjs}>\n <TimePicker\n label={label}\n value={value}\n clearable\n onChange={onChange}\n inputFormat={format}\n disableMaskedInput\n ampm={!!appliedUiSchemaOptions.ampm}\n views={views}\n disabled={!enabled}\n cancelText={appliedUiSchemaOptions.cancelLabel}\n clearText={appliedUiSchemaOptions.clearLabel}\n okText={appliedUiSchemaOptions.okLabel}\n renderInput={params => (\n <ResettableTextField \n {...params}\n rawValue={data}\n dayjsValueIsValid={value !== null}\n valueInInputFormat={valueInInputFormat}\n focused={focused}\n id={id + '-input'}\n required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}\n autoFocus={appliedUiSchemaOptions.focus}\n error={!isValid}\n fullWidth={!appliedUiSchemaOptions.trim}\n inputProps={{\n ...params.inputProps,\n type: 'text'\n }}\n InputLabelProps={data ? { shrink: true } : undefined}\n onFocus={onFocus}\n onBlur={onBlur}\n variant={'standard'}\n />\n )}\n />\n <FormHelperText error={!isValid && !showDescription}>\n {firstFormHelperText}\n </FormHelperText>\n <FormHelperText error={!isValid}>\n {secondFormHelperText}\n </FormHelperText>\n </LocalizationProvider>\n </Hidden>\n );\n};\n\nexport const materialTimeControlTester: RankedTester = rankWith(\n 4,\n isTimeControl\n);\n\nexport default withJsonFormsControlProps(MaterialTimeControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useCallback} from 'react';\nimport {\n ControlProps,\n showAsRequired,\n isDescriptionHidden,\n isRangeControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\n\nimport {\n FormControl,\n FormHelperText,\n FormLabel,\n Hidden,\n Slider,\n Typography\n} from '@mui/material';\nimport merge from 'lodash/merge';\nimport { useFocus } from '../util';\n\nexport const MaterialSliderControl = (props: ControlProps) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n id,\n data,\n description,\n enabled,\n errors,\n label,\n schema,\n handleChange,\n visible,\n path,\n required,\n config\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n const labelStyle: { [x: string]: any } = {\n whiteSpace: 'nowrap',\n overflow: 'hidden',\n textOverflow: 'ellipsis',\n width: '100%'\n };\n const rangeContainerStyle: { [x: string]: any } = {\n display: 'flex'\n };\n const rangeItemStyle: { [x: string]: any } = {\n flexGrow: '1'\n };\n const sliderStyle: { [x: string]: any } = {\n marginTop: '7px'\n };\n\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n\n const onChange = useCallback((_ev: any, value: any) => handleChange(path, Number(value)), [path, handleChange]);\n\n return (\n <Hidden xsUp={!visible}>\n <FormControl\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n id={id}\n >\n <FormLabel\n htmlFor={id}\n error={!isValid}\n component={'legend' as 'label'}\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n >\n <Typography id={id + '-typo'} style={labelStyle} variant='caption'>\n {label}\n </Typography>\n </FormLabel>\n <div style={rangeContainerStyle}>\n <Typography style={rangeItemStyle} variant='caption' align='left'>\n {schema.minimum}\n </Typography>\n <Typography style={rangeItemStyle} variant='caption' align='right'>\n {schema.maximum}\n </Typography>\n </div>\n <Slider\n style={sliderStyle}\n min={schema.minimum}\n max={schema.maximum}\n value={Number(data || schema.default)}\n onChange={onChange}\n id={id + '-input'}\n disabled={!enabled}\n step={schema.multipleOf || 1}\n />\n <FormHelperText error={!isValid}>\n {!isValid ? errors : showDescription ? description : null}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\nexport const materialSliderControlTester: RankedTester = rankWith(\n 4,\n isRangeControl\n);\n\nexport default withJsonFormsControlProps(MaterialSliderControl);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport merge from 'lodash/merge';\nimport React from 'react';\nimport {\n ControlProps,\n showAsRequired,\n isDescriptionHidden,\n OwnPropsOfEnum\n} from '@jsonforms/core';\nimport {\n FormControl,\n FormControlLabel,\n FormHelperText,\n FormLabel,\n Hidden,\n Radio,\n RadioGroup\n} from '@mui/material';\nimport { useFocus } from '../util';\n\nexport const MaterialRadioGroup = (props: ControlProps & OwnPropsOfEnum) => {\n const [focused, onFocus, onBlur] = useFocus();\n const {\n config,\n id,\n label,\n required,\n description,\n errors,\n data,\n visible,\n options,\n handleChange,\n path,\n enabled\n } = props;\n const isValid = errors.length === 0;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n const showDescription = !isDescriptionHidden(\n visible,\n description,\n focused,\n appliedUiSchemaOptions.showUnfocusedDescription\n );\n const onChange = (_ev:any, value:any) => handleChange(path, value);\n\n return (\n <Hidden xsUp={!visible}>\n <FormControl\n component={'fieldset' as 'div'}\n fullWidth={!appliedUiSchemaOptions.trim}\n onFocus={onFocus}\n onBlur={onBlur}\n >\n <FormLabel\n htmlFor={id}\n error={!isValid}\n component={'legend' as 'label'}\n required={showAsRequired(required,\n appliedUiSchemaOptions.hideRequiredAsterisk)}\n >\n {label}\n </FormLabel>\n\n <RadioGroup\n value={props.data}\n onChange={onChange}\n row={true}\n >\n {options.map(option => (\n <FormControlLabel\n value={option.value}\n key={option.label}\n control={<Radio checked={data === option.value} />}\n label={option.label}\n disabled={!enabled}\n />\n ))}\n </RadioGroup>\n <FormHelperText error={!isValid}>\n {!isValid ? errors : showDescription ? description : null}\n </FormHelperText>\n </FormControl>\n </Hidden>\n );\n};\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n and,\n ControlProps,\n isEnumControl,\n optionIs, OwnPropsOfEnum, RankedTester, rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsEnumProps } from '@jsonforms/react';\nimport { MaterialRadioGroup } from './MaterialRadioGroup';\nexport const MaterialRadioGroupControl = (props: ControlProps & OwnPropsOfEnum) => {\n return <MaterialRadioGroup {...props} />;\n};\n\nexport const materialRadioGroupControlTester: RankedTester = rankWith(\n 20,\n and(isEnumControl, optionIs('format', 'radio'))\n);\nexport default withJsonFormsEnumProps(MaterialRadioGroupControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isIntegerControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { MuiInputInteger } from '../mui-controls/MuiInputInteger';\nimport { MaterialInputControl } from './MaterialInputControl';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\n\nexport const MaterialIntegerControl = (props: ControlProps) => (\n <MaterialInputControl {...props} input={MuiInputInteger} />\n);\nexport const materialIntegerControlTester: RankedTester = rankWith(\n 2,\n isIntegerControl\n);\nexport default withJsonFormsControlProps(MaterialIntegerControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isNumberControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { MuiInputNumber } from '../mui-controls/MuiInputNumber';\nimport { MaterialInputControl } from './MaterialInputControl';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\n\nexport const MaterialNumberControl = (props: ControlProps) => (\n <MaterialInputControl {...props} input={MuiInputNumber} />\n);\n\nexport const materialNumberControlTester: RankedTester = rankWith(\n 2,\n isNumberControl\n);\n\nexport default withJsonFormsControlProps(MaterialNumberControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isStringControl,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { withJsonFormsControlProps } from '@jsonforms/react';\nimport { MuiInputText } from '../mui-controls/MuiInputText';\nimport { MaterialInputControl } from './MaterialInputControl';\n\nexport const MaterialTextControl = (props: ControlProps) => (\n <MaterialInputControl {...props} input={MuiInputText} />\n);\n\nexport const materialTextControlTester: RankedTester = rankWith(\n 1,\n isStringControl\n);\nexport default withJsonFormsControlProps(MaterialTextControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n and,\n ControlProps,\n ControlState,\n EnumCellProps,\n JsonSchema,\n RankedTester,\n rankWith,\n schemaMatches,\n uiTypeIs,\n WithClassname\n} from '@jsonforms/core';\nimport { Control, withJsonFormsControlProps } from '@jsonforms/react';\nimport { Input, InputBaseComponentProps } from '@mui/material';\nimport merge from 'lodash/merge';\nimport React, { useMemo } from 'react';\nimport { useDebouncedChange } from '../util';\nimport { MaterialInputControl } from './MaterialInputControl';\n\nconst findEnumSchema = (schemas: JsonSchema[]) =>\n schemas.find(\n s => s.enum !== undefined && (s.type === 'string' || s.type === undefined)\n );\nconst findTextSchema = (schemas: JsonSchema[]) =>\n schemas.find(s => s.type === 'string' && s.enum === undefined);\n\nconst MuiAutocompleteInputText = (props: EnumCellProps & WithClassname) => {\n const {\n data,\n config,\n className,\n id,\n enabled,\n uischema,\n isValid,\n path,\n handleChange,\n schema\n } = props;\n const enumSchema = findEnumSchema(schema.anyOf);\n const stringSchema = findTextSchema(schema.anyOf);\n const maxLength = stringSchema.maxLength;\n const appliedUiSchemaOptions = useMemo(() => merge({}, config, uischema.options),[config, uischema.options]);\n const inputProps: InputBaseComponentProps = useMemo(() => {\n let propMemo: InputBaseComponentProps = {};\n if (appliedUiSchemaOptions.restrict) {\n propMemo = { maxLength: maxLength };\n }\n if (appliedUiSchemaOptions.trim && maxLength !== undefined) {\n propMemo.size = maxLength;\n }\n propMemo.list = props.id + 'datalist';\n return propMemo;\n },[appliedUiSchemaOptions,props.id]);\n const [inputText, onChange] = useDebouncedChange(handleChange, '', data, path);\n\n const dataList = (\n <datalist id={props.id + 'datalist'}>\n {enumSchema.enum.map(optionValue => (\n <option value={optionValue} key={optionValue} />\n ))}\n </datalist>\n );\n return (\n <Input\n type='text'\n value={inputText}\n onChange={onChange}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}\n inputProps={inputProps}\n error={!isValid}\n endAdornment={dataList}\n />\n );\n};\n\nexport class MaterialAnyOfStringOrEnumControl extends Control<\n ControlProps,\n ControlState\n> {\n render() {\n return (\n <MaterialInputControl {...this.props} input={MuiAutocompleteInputText} />\n );\n }\n}\nconst hasEnumAndText = (schemas: JsonSchema[]) => {\n // idea: map to type,enum and check that all types are string and at least one item is of type enum,\n const enumSchema = findEnumSchema(schemas);\n const stringSchema = findTextSchema(schemas);\n const remainingSchemas = schemas.filter(\n s => s !== enumSchema || s !== stringSchema\n );\n const wrongType = remainingSchemas.find(s => s.type && s.type !== 'string');\n return enumSchema && stringSchema && !wrongType;\n};\nconst simpleAnyOf = and(\n uiTypeIs('Control'),\n schemaMatches(\n schema => schema.hasOwnProperty('anyOf') && hasEnumAndText(schema.anyOf)\n )\n);\nexport const materialAnyOfStringOrEnumControlTester: RankedTester = rankWith(\n 5,\n simpleAnyOf\n);\nexport default withJsonFormsControlProps(MaterialAnyOfStringOrEnumControl);\n","/*\n The MIT License\n\n Copyright (c) 2018-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n ControlProps,\n isOneOfEnumControl,\n OwnPropsOfEnum,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { TranslateProps, withJsonFormsOneOfEnumProps, withTranslateProps } from '@jsonforms/react';\nimport { MuiAutocomplete, WithOptionLabel } from '../mui-controls/MuiAutocomplete';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\nimport { MaterialInputControl } from '../controls/MaterialInputControl';\nimport merge from 'lodash/merge';\n\nexport const MaterialOneOfEnumControl = (props: ControlProps & OwnPropsOfEnum & WithOptionLabel & TranslateProps) => {\n const {config, uischema, errors} = props;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const isValid = errors.length === 0;\n\n return (\n appliedUiSchemaOptions.autocomplete === false ?\n <MaterialInputControl\n {...props}\n input={MuiSelect}\n />:\n <MuiAutocomplete\n {...props}\n isValid={isValid}\n />\n );\n};\n\nexport const materialOneOfEnumControlTester: RankedTester = rankWith(\n 5,\n isOneOfEnumControl\n);\n\n// HOC order can be reversed with https://github.com/eclipsesource/jsonforms/issues/1987\nexport default withJsonFormsOneOfEnumProps(withTranslateProps(React.memo(MaterialOneOfEnumControl)), false);\n","/*\n The MIT License\n\n Copyright (c) 2018-2020 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n and,\n ControlProps,\n isOneOfEnumControl,\n optionIs,\n OwnPropsOfEnum,\n RankedTester,\n rankWith,\n} from '@jsonforms/core';\nimport { withJsonFormsOneOfEnumProps } from '@jsonforms/react';\nimport { MaterialRadioGroup } from './MaterialRadioGroup';\n\nexport const MaterialOneOfRadioGroupControl = (props: ControlProps & OwnPropsOfEnum) => {\n return <MaterialRadioGroup {...props}/>;\n};\n\nexport const materialOneOfRadioGroupControlTester: RankedTester = rankWith(\n 20,\n and(isOneOfEnumControl, optionIs('format', 'radio'))\n);\n\nexport default withJsonFormsOneOfEnumProps(MaterialOneOfRadioGroupControl);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport MaterialBooleanControl, {\n materialBooleanControlTester,\n MaterialBooleanControl as MaterialBooleanControlUnwrapped\n} from './MaterialBooleanControl';\nimport MaterialBooleanToggleControl, {\n materialBooleanToggleControlTester,\n MaterialBooleanToggleControl as MaterialBooleanToggleControlUnwrapped\n} from './MaterialBooleanToggleControl';\nimport MaterialEnumControl, {\n materialEnumControlTester,\n MaterialEnumControl as MaterialEnumControlUnwrapped\n} from './MaterialEnumControl';\nimport MaterialNativeControl, {\n materialNativeControlTester,\n MaterialNativeControl as MaterialNativeControlUnwrapped\n} from './MaterialNativeControl';\nimport MaterialDateControl, {\n materialDateControlTester,\n MaterialDateControl as MaterialDateControlUnwrapped\n} from './MaterialDateControl';\nimport MaterialDateTimeControl, {\n materialDateTimeControlTester,\n MaterialDateTimeControl as MaterialDateTimeControlUnwrapped\n} from './MaterialDateTimeControl';\nimport MaterialTimeControl, {\n materialTimeControlTester,\n MaterialTimeControl as MaterialTimeControlUnwrapped\n} from './MaterialTimeControl';\nimport MaterialSliderControl, {\n materialSliderControlTester,\n MaterialSliderControl as MaterialSliderControlUnwrapped\n} from './MaterialSliderControl';\nimport MaterialRadioGroupControl, {\n materialRadioGroupControlTester,\n MaterialRadioGroupControl as MaterialRadioGroupControlUnwrapped\n} from './MaterialRadioGroupControl';\nimport MaterialIntegerControl, {\n materialIntegerControlTester,\n MaterialIntegerControl as MaterialIntegerControlUnwrapped\n} from './MaterialIntegerControl';\nimport MaterialNumberControl, {\n materialNumberControlTester,\n MaterialNumberControl as MaterialNumberControlUnwrapped\n} from './MaterialNumberControl';\nimport MaterialTextControl, {\n materialTextControlTester,\n MaterialTextControl as MaterialTextControlUnwrapped\n} from './MaterialTextControl';\n\nimport MaterialAnyOfStringOrEnumControl, {\n materialAnyOfStringOrEnumControlTester,\n MaterialAnyOfStringOrEnumControl as MaterialAnyOfStringOrEnumControlUnwrapped\n} from './MaterialAnyOfStringOrEnumControl';\n\nimport MaterialOneOfEnumControl, {\n materialOneOfEnumControlTester,\n MaterialOneOfEnumControl as MaterialOneOfEnumControlUnwrapped\n} from './MaterialOneOfEnumControl';\n\nimport MaterialOneOfRadioGroupControl, {\n materialOneOfRadioGroupControlTester,\n MaterialOneOfRadioGroupControl as MaterialOneOfRadioGroupControlUnwrapped\n} from './MaterialOneOfRadioGroupControl';\n\nexport const Unwrapped = {\n MaterialBooleanControl: MaterialBooleanControlUnwrapped,\n MaterialBooleanToggleControl: MaterialBooleanToggleControlUnwrapped,\n MaterialEnumControl: MaterialEnumControlUnwrapped,\n MaterialNativeControl: MaterialNativeControlUnwrapped,\n MaterialDateControl: MaterialDateControlUnwrapped,\n MaterialDateTimeControl: MaterialDateTimeControlUnwrapped,\n MaterialTimeControl: MaterialTimeControlUnwrapped,\n MaterialSliderControl: MaterialSliderControlUnwrapped,\n MaterialRadioGroupControl: MaterialRadioGroupControlUnwrapped,\n MaterialIntegerControl: MaterialIntegerControlUnwrapped,\n MaterialNumberControl: MaterialNumberControlUnwrapped,\n MaterialTextControl: MaterialTextControlUnwrapped,\n MaterialAnyOfStringOrEnumControl: MaterialAnyOfStringOrEnumControlUnwrapped,\n MaterialOneOfEnumControl: MaterialOneOfEnumControlUnwrapped,\n MaterialOneOfRadioGroupControl: MaterialOneOfRadioGroupControlUnwrapped\n};\n\nexport {\n MaterialBooleanControl,\n materialBooleanControlTester,\n MaterialBooleanToggleControl,\n materialBooleanToggleControlTester,\n MaterialEnumControl,\n materialEnumControlTester,\n MaterialNativeControl,\n materialNativeControlTester,\n MaterialDateControl,\n materialDateControlTester,\n MaterialDateTimeControl,\n materialDateTimeControlTester,\n MaterialTimeControl,\n materialTimeControlTester,\n MaterialSliderControl,\n materialSliderControlTester,\n MaterialRadioGroupControl,\n materialRadioGroupControlTester,\n MaterialIntegerControl,\n materialIntegerControlTester,\n MaterialNumberControl,\n materialNumberControlTester,\n MaterialTextControl,\n materialTextControlTester,\n MaterialAnyOfStringOrEnumControl,\n materialAnyOfStringOrEnumControlTester,\n MaterialOneOfEnumControl,\n materialOneOfEnumControlTester,\n MaterialOneOfRadioGroupControl,\n materialOneOfRadioGroupControlTester\n};\n\nexport * from './MaterialInputControl';\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport isEmpty from 'lodash/isEmpty';\nimport React from 'react';\nimport { Card, CardContent, CardHeader, Hidden } from '@mui/material';\nimport {\n GroupLayout,\n LayoutProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n withIncreasedRank,\n} from '@jsonforms/core';\nimport {\n MaterialLabelableLayoutRendererProps,\n MaterialLayoutRenderer,\n} from '../util/layout';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\n\nexport const groupTester: RankedTester = rankWith(1, uiTypeIs('Group'));\nconst style: { [x: string]: any } = { marginBottom: '10px' };\n\nconst GroupComponent = React.memo(({ visible, enabled, uischema, label, ...props }: MaterialLabelableLayoutRendererProps) => {\n const groupLayout = uischema as GroupLayout;\n return (\n <Hidden xsUp={!visible}>\n <Card style={style}>\n {!isEmpty(label) && (\n <CardHeader title={label} />\n )}\n <CardContent>\n <MaterialLayoutRenderer {...props} visible={visible} enabled={enabled} elements={groupLayout.elements} />\n </CardContent>\n </Card>\n </Hidden>\n );\n});\n\nexport const MaterializedGroupLayoutRenderer = ({ uischema, schema, path, visible, enabled, renderers, cells, direction, label }: LayoutProps) => {\n const groupLayout = uischema as GroupLayout;\n\n return (\n <GroupComponent\n elements={groupLayout.elements}\n schema={schema}\n path={path}\n direction={direction}\n visible={visible}\n enabled={enabled}\n uischema={uischema}\n renderers={renderers}\n cells={cells}\n label={label}\n />\n );\n};\n\nexport default withJsonFormsLayoutProps(MaterializedGroupLayoutRenderer);\n\nexport const materialGroupTester: RankedTester = withIncreasedRank(\n 1,\n groupTester\n);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n HorizontalLayout,\n LayoutProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n} from '@jsonforms/core';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\nimport {\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps\n} from '../util/layout';\n\n/**\n * Default tester for a horizontal layout.\n * @type {RankedTester}\n */\nexport const materialHorizontalLayoutTester: RankedTester = rankWith(\n 2,\n uiTypeIs('HorizontalLayout')\n);\n\nexport const MaterialHorizontalLayoutRenderer = ({ uischema, renderers, cells, schema, path, enabled, visible }: LayoutProps) => {\n const layout = uischema as HorizontalLayout;\n const childProps: MaterialLayoutRendererProps = {\n elements: layout.elements,\n schema,\n path,\n enabled,\n direction: 'row',\n visible\n };\n\n return <MaterialLayoutRenderer {...childProps} renderers={renderers} cells={cells} />;\n};\n\nexport default withJsonFormsLayoutProps(MaterialHorizontalLayoutRenderer);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n LayoutProps,\n RankedTester,\n rankWith,\n uiTypeIs,\n VerticalLayout,\n} from '@jsonforms/core';\nimport {\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps\n} from '../util/layout';\nimport { withJsonFormsLayoutProps } from '@jsonforms/react';\n\n/**\n * Default tester for a vertical layout.\n * @type {RankedTester}\n */\nexport const materialVerticalLayoutTester: RankedTester = rankWith(\n 1,\n uiTypeIs('VerticalLayout')\n);\n\nexport const MaterialVerticalLayoutRenderer = ({ uischema, schema, path, enabled, visible, renderers, cells }: LayoutProps) => {\n const verticalLayout = uischema as VerticalLayout;\n const childProps: MaterialLayoutRendererProps = {\n elements: verticalLayout.elements,\n schema,\n path,\n enabled,\n direction: 'column',\n visible\n };\n\n return <MaterialLayoutRenderer {...childProps} renderers={renderers} cells={cells} />;\n};\n\nexport default withJsonFormsLayoutProps(MaterialVerticalLayoutRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useState, useMemo} from 'react';\nimport { AppBar, Hidden, Tab, Tabs } from '@mui/material';\nimport {\n and,\n Categorization,\n Category,\n deriveLabelForUISchemaElement,\n isVisible,\n RankedTester,\n rankWith,\n StatePropsOfLayout,\n Tester,\n UISchemaElement,\n uiTypeIs\n} from '@jsonforms/core';\nimport { TranslateProps, withJsonFormsLayoutProps, withTranslateProps } from '@jsonforms/react';\nimport {\n AjvProps,\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps,\n withAjvProps\n} from '../util/layout';\n\nexport const isSingleLevelCategorization: Tester = and(\n uiTypeIs('Categorization'),\n (uischema: UISchemaElement): boolean => {\n const categorization = uischema as Categorization;\n\n return (\n categorization.elements &&\n categorization.elements.reduce(\n (acc, e) => acc && e.type === 'Category',\n true\n )\n );\n }\n);\n\nexport const materialCategorizationTester: RankedTester = rankWith(\n 1,\n isSingleLevelCategorization\n);\nexport interface CategorizationState {\n activeCategory: number;\n}\n\nexport interface MaterialCategorizationLayoutRendererProps\n extends StatePropsOfLayout, AjvProps, TranslateProps {\n selected?: number;\n ownState?: boolean;\n data?: any;\n onChange?(selected: number, prevSelected: number): void;\n}\n\nexport const MaterialCategorizationLayoutRenderer = (props: MaterialCategorizationLayoutRendererProps) => {\n const {\n data,\n path,\n renderers,\n cells,\n schema,\n uischema,\n visible,\n enabled,\n selected,\n onChange,\n ajv,\n t\n } = props;\n const categorization = uischema as Categorization;\n const [activeCategory, setActiveCategory]= useState<number|undefined>(selected??0);\n const categories = useMemo(() => categorization.elements.filter((category: Category) =>\n isVisible(category, data, undefined, ajv)\n ),[categorization, data, ajv]);\n const childProps: MaterialLayoutRendererProps = {\n elements: categories[activeCategory].elements,\n schema,\n path,\n direction: 'column',\n enabled,\n visible,\n renderers,\n cells\n };\n const onTabChange = (_event: any, value: any) => {\n if (onChange) {\n onChange(value, activeCategory);\n }\n setActiveCategory(value);\n };\n\n const tabLabels = useMemo(() => {\n return categories.map((e: Category) => \n deriveLabelForUISchemaElement(e, t)\n )\n }, [categories, t])\n\n return (\n <Hidden xsUp={!visible}>\n <AppBar position='static'>\n <Tabs value={activeCategory} onChange={onTabChange} textColor='inherit' indicatorColor='secondary' variant='scrollable'>\n {categories.map((_, idx: number) => (\n <Tab key={idx} label={tabLabels[idx]} />\n ))}\n </Tabs>\n </AppBar>\n <div style={{ marginTop: '0.5em' }}>\n <MaterialLayoutRenderer {...childProps} />\n </div>\n </Hidden>\n );\n};\n\nexport default withAjvProps(withTranslateProps(withJsonFormsLayoutProps(MaterialCategorizationLayoutRenderer)));\n","import merge from 'lodash/merge';\nimport get from 'lodash/get';\nimport React, { ComponentType, Dispatch, Fragment, ReducerAction, useMemo, useState, useEffect, useCallback } from 'react';\nimport {\n JsonFormsDispatch,\n JsonFormsStateContext,\n withJsonFormsContext\n} from '@jsonforms/react';\nimport {\n composePaths,\n ControlElement,\n findUISchema,\n JsonFormsRendererRegistryEntry,\n JsonSchema,\n moveDown,\n moveUp,\n Resolve,\n update,\n JsonFormsCellRendererRegistryEntry,\n JsonFormsUISchemaRegistryEntry,\n getFirstPrimitiveProp,\n createId,\n removeId\n} from '@jsonforms/core';\nimport {\n Accordion,\n AccordionSummary,\n AccordionDetails,\n Avatar,\n Grid,\n IconButton\n} from '@mui/material';\nimport ExpandMoreIcon from '@mui/icons-material/ExpandMore';\nimport DeleteIcon from '@mui/icons-material/Delete';\nimport ArrowUpward from '@mui/icons-material/ArrowUpward';\nimport ArrowDownward from '@mui/icons-material/ArrowDownward';\n\nconst iconStyle: any = { float: 'right' };\n\ninterface OwnPropsOfExpandPanel {\n index: number;\n path: string;\n uischema: ControlElement;\n schema: JsonSchema;\n expanded: boolean;\n renderers?: JsonFormsRendererRegistryEntry[];\n cells?: JsonFormsCellRendererRegistryEntry[];\n uischemas?: JsonFormsUISchemaRegistryEntry[];\n rootSchema: JsonSchema;\n enableMoveUp: boolean;\n enableMoveDown: boolean;\n config: any;\n childLabelProp?: string;\n handleExpansion(panel: string): (event: any, expanded: boolean) => void;\n}\n\ninterface StatePropsOfExpandPanel extends OwnPropsOfExpandPanel {\n childLabel: string;\n childPath: string;\n enableMoveUp: boolean;\n enableMoveDown: boolean;\n}\n\n/**\n * Dispatch props of a table control\n */\nexport interface DispatchPropsOfExpandPanel {\n removeItems(path: string, toDelete: number[]): (event: any) => void;\n moveUp(path: string, toMove: number): (event: any) => void;\n moveDown(path: string, toMove: number): (event: any) => void;\n}\n\nexport interface ExpandPanelProps\n extends StatePropsOfExpandPanel,\n DispatchPropsOfExpandPanel {}\n\nconst ExpandPanelRendererComponent = (props: ExpandPanelProps) => {\n const [labelHtmlId] = useState<string>(createId('expand-panel'));\n\n useEffect(() => {\n return () => {\n removeId(labelHtmlId);\n };\n }, [labelHtmlId]);\n\n const {\n childLabel,\n childPath,\n index,\n expanded,\n moveDown,\n moveUp,\n enableMoveDown,\n enableMoveUp,\n handleExpansion,\n removeItems,\n path,\n rootSchema,\n schema,\n uischema,\n uischemas,\n renderers,\n cells,\n config\n } = props;\n\n const foundUISchema = useMemo(\n () =>\n findUISchema(\n uischemas,\n schema,\n uischema.scope,\n path,\n undefined,\n uischema,\n rootSchema\n ),\n [uischemas, schema, uischema.scope, path, uischema, rootSchema]\n );\n\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const showSortButtons = appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayLayoutSortButtons;\n\n return (\n <Accordion\n aria-labelledby={labelHtmlId}\n expanded={expanded}\n onChange={handleExpansion(childPath)}\n >\n <AccordionSummary expandIcon={<ExpandMoreIcon />}>\n <Grid container alignItems={'center'}>\n <Grid item xs={7} md={9}>\n <Grid container alignItems={'center'}>\n <Grid item xs={2} md={1}>\n <Avatar aria-label='Index'>{index + 1}</Avatar>\n </Grid>\n <Grid item xs={10} md={11}>\n <span id={labelHtmlId}>{childLabel}</span>\n </Grid>\n </Grid>\n </Grid>\n <Grid item xs={5} md={3}>\n <Grid container justifyContent='flex-end'>\n <Grid item>\n <Grid\n container\n direction='row'\n justifyContent='center'\n alignItems='center'\n >\n {showSortButtons ? (\n <Fragment>\n <Grid item>\n <IconButton\n onClick={moveUp(path, index)}\n style={iconStyle}\n disabled={!enableMoveUp}\n aria-label={`Move up`}\n size='large'>\n <ArrowUpward />\n </IconButton>\n </Grid>\n <Grid item>\n <IconButton\n onClick={moveDown(path, index)}\n style={iconStyle}\n disabled={!enableMoveDown}\n aria-label={`Move down`}\n size='large'>\n <ArrowDownward />\n </IconButton>\n </Grid>\n </Fragment>\n ) : (\n ''\n )}\n <Grid item>\n <IconButton\n onClick={removeItems(path, [index])}\n style={iconStyle}\n aria-label={`Delete`}\n size='large'>\n <DeleteIcon />\n </IconButton>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </Grid>\n </AccordionSummary>\n <AccordionDetails>\n <JsonFormsDispatch\n schema={schema}\n uischema={foundUISchema}\n path={childPath}\n key={childPath}\n renderers={renderers}\n cells={cells}\n />\n </AccordionDetails>\n </Accordion>\n );\n};\n\nconst ExpandPanelRenderer = React.memo(ExpandPanelRendererComponent);\n\n/**\n * Maps state to dispatch properties of an expand pandel control.\n *\n * @param dispatch the store's dispatch method\n * @returns {DispatchPropsOfArrayControl} dispatch props of an expand panel control\n */\nexport const ctxDispatchToExpandPanelProps: (\n dispatch: Dispatch<ReducerAction<any>>\n) => DispatchPropsOfExpandPanel = dispatch => ({\n removeItems: useCallback((path: string, toDelete: number[]) => (event: any): void => {\n event.stopPropagation();\n dispatch(\n update(path, array => {\n toDelete\n .sort()\n .reverse()\n .forEach(s => array.splice(s, 1));\n return array;\n })\n );\n }, [dispatch]),\n moveUp: useCallback((path: string, toMove: number) => (event: any): void => {\n event.stopPropagation();\n dispatch(\n update(path, array => {\n moveUp(array, toMove);\n return array;\n })\n );\n }, [dispatch]),\n moveDown: useCallback((path: string, toMove: number) => (event: any): void => {\n event.stopPropagation();\n dispatch(\n update(path, array => {\n moveDown(array, toMove);\n return array;\n })\n );\n }, [dispatch])\n});\n\n/**\n * Map state to control props.\n * @param state the JSON Forms state\n * @param ownProps any own props\n * @returns {StatePropsOfControl} state props for a control\n */\nexport const withContextToExpandPanelProps = (\n Component: ComponentType<ExpandPanelProps>\n): ComponentType<OwnPropsOfExpandPanel> => ({\n ctx,\n props\n}: JsonFormsStateContext & ExpandPanelProps) => {\n const dispatchProps = ctxDispatchToExpandPanelProps(ctx.dispatch);\n const { childLabelProp, schema, path, index, uischemas } = props;\n const childPath = composePaths(path, `${index}`);\n const childData = Resolve.data(ctx.core.data, childPath);\n const childLabel = childLabelProp\n ? get(childData, childLabelProp, '')\n : get(childData, getFirstPrimitiveProp(schema), '');\n\n return (\n <Component\n {...props}\n {...dispatchProps}\n childLabel={childLabel}\n childPath={childPath}\n uischemas={uischemas}\n />\n );\n};\n\nexport const withJsonFormsExpandPanelProps = (\n Component: ComponentType<ExpandPanelProps>\n): ComponentType<OwnPropsOfExpandPanel> =>\n withJsonFormsContext(\n withContextToExpandPanelProps(Component));\n\nexport default withJsonFormsExpandPanelProps(ExpandPanelRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport range from 'lodash/range';\nimport React, {useState, useCallback} from 'react';\nimport {\n ArrayLayoutProps,\n composePaths,\n computeLabel,\n createDefaultValue,\n} from '@jsonforms/core';\nimport map from 'lodash/map';\nimport { ArrayLayoutToolbar } from './ArrayToolbar';\nimport ExpandPanelRenderer from './ExpandPanelRenderer';\nimport merge from 'lodash/merge';\n\nconst MaterialArrayLayoutComponent = (props: ArrayLayoutProps)=> {\n const [expanded, setExpanded] = useState<string|boolean>(false);\n const innerCreateDefaultValue = useCallback(() => createDefaultValue(props.schema), [props.schema]);\n const handleChange = useCallback((panel: string) => (_event: any, expandedPanel: boolean) => {\n setExpanded(expandedPanel ? panel : false)\n }, []);\n const isExpanded = (index: number) => \n expanded === composePaths(props.path, `${index}`);\n \n const {\n data,\n path,\n schema,\n uischema,\n errors,\n addItem,\n renderers,\n cells,\n label,\n required,\n rootSchema,\n config,\n uischemas\n } = props;\n const appliedUiSchemaOptions = merge(\n {},\n config,\n props.uischema.options\n );\n\n return (\n <div>\n <ArrayLayoutToolbar\n label={computeLabel(\n label,\n required,\n appliedUiSchemaOptions.hideRequiredAsterisk\n )}\n errors={errors}\n path={path}\n addItem={addItem}\n createDefault={innerCreateDefaultValue}\n />\n <div>\n {data > 0 ? (\n map(range(data), index => {\n return (\n <ExpandPanelRenderer\n index={index}\n expanded={isExpanded(index)}\n schema={schema}\n path={path}\n handleExpansion={handleChange}\n uischema={uischema}\n renderers={renderers}\n cells={cells}\n key={index}\n rootSchema={rootSchema}\n enableMoveUp={index != 0}\n enableMoveDown={index < data - 1}\n config={config}\n childLabelProp={appliedUiSchemaOptions.elementLabelProp}\n uischemas={uischemas}\n />\n );\n })\n ) : (\n <p>No data</p>\n )}\n </div>\n </div>\n );\n};\n\nexport const MaterialArrayLayout = React.memo(MaterialArrayLayoutComponent);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, { useCallback } from 'react';\n\nimport {\n ArrayLayoutProps,\n isObjectArrayWithNesting,\n RankedTester,\n rankWith\n} from '@jsonforms/core';\nimport { Hidden } from '@mui/material';\nimport { MaterialArrayLayout } from './MaterialArrayLayout';\nimport { withJsonFormsArrayLayoutProps } from '@jsonforms/react';\n\nexport const MaterialArrayLayoutRenderer = ({\n visible,\n addItem,\n ...props\n}: ArrayLayoutProps) => {\n const addItemCb = useCallback((p: string, value: any) => addItem(p, value), [\n addItem\n ]);\n return (\n <Hidden xsUp={!visible}>\n <MaterialArrayLayout\n visible={visible}\n addItem={addItemCb}\n {...props}\n />\n </Hidden>\n );\n};\n\nexport const materialArrayLayoutTester: RankedTester = rankWith(\n 4,\n isObjectArrayWithNesting\n);\nexport default withJsonFormsArrayLayoutProps(MaterialArrayLayoutRenderer);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isBooleanControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiCheckbox } from '../mui-controls/MuiCheckbox';\n\nexport const MaterialBooleanCell = (props: CellProps & WithClassname) => {\n return <MuiCheckbox {...props} />;\n};\n\nexport const materialBooleanCellTester: RankedTester = rankWith(\n 2,\n isBooleanControl\n);\n\nexport default withJsonFormsCellProps(MaterialBooleanCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2021 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n and,\n CellProps,\n isBooleanControl,\n optionIs,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiToggle } from '../mui-controls/MuiToggle';\n\nexport const MaterialBooleanToggleCell = (props: CellProps & WithClassname) => {\n return <MuiToggle {...props} />;\n};\n\nexport const materialBooleanToggleCellTester: RankedTester = rankWith(\n 3,\n and(isBooleanControl, optionIs('toggle', true))\n);;\n\nexport default withJsonFormsCellProps(MaterialBooleanToggleCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isDateControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport Input from '@mui/material/Input';\nimport merge from 'lodash/merge';\n\nexport const MaterialDateCell = (props: CellProps & WithClassname) => {\n const {\n data,\n className,\n id,\n enabled,\n uischema,\n path,\n handleChange,\n config\n } = props;\n\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n\n return (\n <Input\n type='date'\n value={data || ''}\n onChange={ev => handleChange(path, ev.target.value)}\n className={className}\n id={id}\n disabled={!enabled}\n autoFocus={appliedUiSchemaOptions.focus}\n fullWidth={true}\n />\n );\n};\nexport const materialDateCellTester: RankedTester = rankWith(2, isDateControl);\n\nexport default withJsonFormsCellProps(MaterialDateCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n EnumCellProps,\n isEnumControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { TranslateProps, withJsonFormsEnumCellProps, withTranslateProps } from '@jsonforms/react';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\n\nexport const MaterialEnumCell = (props: EnumCellProps & WithClassname & TranslateProps) => (\n <MuiSelect {...props} />\n);\n\n/**\n * Default tester for enum controls.\n * @type {RankedTester}\n */\nexport const materialEnumCellTester: RankedTester = rankWith(2, isEnumControl);\n\n// HOC order can be reversed with https://github.com/eclipsesource/jsonforms/issues/1987\nexport default withJsonFormsEnumCellProps(withTranslateProps(React.memo(MaterialEnumCell)), false);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isIntegerControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputInteger } from '../mui-controls/MuiInputInteger';\n\nexport const MaterialIntegerCell = (props: CellProps & WithClassname) => (\n <MuiInputInteger {...props} />\n);\nexport const materialIntegerCellTester: RankedTester = rankWith(\n 2,\n isIntegerControl\n);\n\nexport default withJsonFormsCellProps(MaterialIntegerCell);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isNumberControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputNumber } from '../mui-controls/MuiInputNumber';\n\nexport const MaterialNumberCell = (props: CellProps & WithClassname) => (\n <MuiInputNumber {...props} />\n);\n/**\n * Default tester for number controls.\n * @type {RankedTester}\n */\nexport const materialNumberCellTester: RankedTester = rankWith(\n 2,\n isNumberControl\n);\nexport default withJsonFormsCellProps(MaterialNumberCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n Formatted,\n isNumberFormatControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputNumberFormat } from '../mui-controls/MuiInputNumberFormat';\n\nexport const MaterialNumberFormatCell = (\n props: CellProps & WithClassname & Formatted<number>\n) => <MuiInputNumberFormat {...props} />;\n/**\n * Default tester for text-based/string controls.\n * @type {RankedTester}\n */\nexport const materialNumberFormatCellTester: RankedTester = rankWith(\n 4,\n isNumberFormatControl\n);\n\nexport default withJsonFormsCellProps(MaterialNumberFormatCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n EnumCellProps,\n isOneOfEnumControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { TranslateProps, withJsonFormsOneOfEnumCellProps, withTranslateProps } from '@jsonforms/react';\nimport { MuiSelect } from '../mui-controls/MuiSelect';\n\nexport const MaterialOneOfEnumCell = (props: EnumCellProps & WithClassname & TranslateProps) => (\n <MuiSelect {...props} />\n);\n\n/**\n * Default tester for oneOf enum controls.\n * @type {RankedTester}\n */\nexport const materialOneOfEnumCellTester: RankedTester = rankWith(2, isOneOfEnumControl);\n\nexport default withJsonFormsOneOfEnumCellProps(withTranslateProps(React.memo(MaterialOneOfEnumCell)), false);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isStringControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputText } from '../mui-controls/MuiInputText';\n\nexport const MaterialTextCell = (props: CellProps & WithClassname) => (\n <MuiInputText {...props} />\n);\n\n/**\n * Default tester for text-based/string controls.\n * @type {RankedTester}\n */\nexport const materialTextCellTester: RankedTester = rankWith(\n 1,\n isStringControl\n);\n\nexport default withJsonFormsCellProps(MaterialTextCell);\n","/*\n The MIT License\n \n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n \n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n \n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n \n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React from 'react';\nimport {\n CellProps,\n isTimeControl,\n RankedTester,\n rankWith,\n WithClassname\n} from '@jsonforms/core';\nimport { withJsonFormsCellProps } from '@jsonforms/react';\nimport { MuiInputTime } from '../mui-controls/MuiInputTime';\n\nexport const MaterialTimeCell = (props: CellProps & WithClassname) => (\n <MuiInputTime {...props} />\n);\nexport const materialTimeCellTester: RankedTester = rankWith(2, isTimeControl);\n\nexport default withJsonFormsCellProps(MaterialTimeCell);\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport React, {useState, useMemo} from 'react';\nimport merge from 'lodash/merge';\nimport { Button, Hidden, Step, StepButton, Stepper } from '@mui/material';\nimport {\n and,\n Categorization,\n categorizationHasCategory,\n Category,\n deriveLabelForUISchemaElement,\n isVisible,\n optionIs,\n RankedTester,\n rankWith,\n StatePropsOfLayout,\n uiTypeIs\n} from '@jsonforms/core';\nimport { TranslateProps, withJsonFormsLayoutProps, withTranslateProps } from '@jsonforms/react';\nimport {\n AjvProps,\n MaterialLayoutRenderer,\n MaterialLayoutRendererProps,\n withAjvProps\n} from '../util/layout';\n\nexport const materialCategorizationStepperTester: RankedTester = rankWith(\n 2,\n and(\n uiTypeIs('Categorization'),\n categorizationHasCategory,\n optionIs('variant', 'stepper')\n )\n);\n\nexport interface CategorizationStepperState {\n activeCategory: number;\n}\n\nexport interface MaterialCategorizationStepperLayoutRendererProps\n extends StatePropsOfLayout, AjvProps, TranslateProps {\n data: any;\n}\n\nexport const MaterialCategorizationStepperLayoutRenderer = (props: MaterialCategorizationStepperLayoutRendererProps)=> {\n const [activeCategory, setActiveCategory] = useState<number>(0);\n\n const handleStep = (step: number) => {\n setActiveCategory( step);\n };\n\n const {\n data,\n path,\n renderers,\n schema,\n uischema,\n visible,\n cells,\n config,\n ajv,\n t\n } = props;\n const categorization = uischema as Categorization;\n const appliedUiSchemaOptions = merge({}, config, uischema.options);\n const buttonWrapperStyle = {\n textAlign: 'right' as 'right',\n width: '100%',\n margin: '1em auto'\n };\n const buttonNextStyle = {\n float: 'right' as 'right'\n };\n const buttonStyle = {\n marginRight: '1em'\n };\n const categories = useMemo(() => categorization.elements.filter((category: Category) =>\n isVisible(category, data, undefined, ajv)\n ),[categorization, data, ajv]);\n const childProps: MaterialLayoutRendererProps = {\n elements: categories[activeCategory].elements,\n schema,\n path,\n direction: 'column',\n visible,\n renderers,\n cells\n };\n const tabLabels = useMemo(() => {\n return categories.map((e: Category) => \n deriveLabelForUISchemaElement(e, t)\n )\n }, [categories, t])\n return (\n <Hidden xsUp={!visible}>\n <Stepper activeStep={activeCategory} nonLinear>\n {categories.map((_: Category, idx: number) => (\n <Step key={tabLabels[idx]}>\n <StepButton onClick={() => handleStep(idx)}>\n {tabLabels[idx]}\n </StepButton>\n </Step>\n ))}\n </Stepper>\n <div>\n <MaterialLayoutRenderer {...childProps} />\n </div>\n { !!appliedUiSchemaOptions.showNavButtons ? (<div style={buttonWrapperStyle}>\n <Button\n style={buttonNextStyle}\n variant=\"contained\"\n color=\"primary\"\n disabled={activeCategory >= categories.length - 1}\n onClick={() => handleStep(activeCategory + 1)}\n >\n Next\n </Button>\n <Button\n style={buttonStyle}\n color=\"secondary\"\n variant=\"contained\"\n disabled={activeCategory <= 0}\n onClick={() => handleStep(activeCategory - 1)}\n >\n Previous\n </Button>\n </div>) : (<></>)}\n </Hidden>\n );\n};\n\nexport default withAjvProps(withTranslateProps(\n withJsonFormsLayoutProps(MaterialCategorizationStepperLayoutRenderer\n)));\n","/*\n The MIT License\n\n Copyright (c) 2017-2019 EclipseSource Munich\n https://github.com/eclipsesource/jsonforms\n\n Permission is hereby granted, free of charge, to any person obtaining a copy\n of this software and associated documentation files (the \"Software\"), to deal\n in the Software without restriction, including without limitation the rights\n to use, copy, modify, merge, publish, distribute, sublicense, and/or sell\n copies of the Software, and to permit persons to whom the Software is\n furnished to do so, subject to the following conditions:\n\n The above copyright notice and this permission notice shall be included in\n all copies or substantial portions of the Software.\n\n THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR\n IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE\n AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER\n LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,\n OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN\n THE SOFTWARE.\n*/\nimport {\n JsonFormsCellRendererRegistryEntry,\n JsonFormsRendererRegistryEntry\n} from '@jsonforms/core';\nimport {\n materialAllOfControlTester,\n MaterialAllOfRenderer,\n materialAnyOfControlTester,\n MaterialAnyOfRenderer,\n MaterialArrayControlRenderer,\n materialArrayControlTester,\n materialObjectControlTester,\n MaterialObjectRenderer,\n materialOneOfControlTester,\n MaterialOneOfRenderer,\n MaterialEnumArrayRenderer,\n materialEnumArrayRendererTester\n} from './complex';\nimport {\n MaterialLabelRenderer,\n materialLabelRendererTester,\n MaterialListWithDetailRenderer,\n materialListWithDetailTester\n} from './additional';\nimport {\n MaterialAnyOfStringOrEnumControl,\n materialAnyOfStringOrEnumControlTester,\n MaterialBooleanControl,\n materialBooleanControlTester,\n MaterialBooleanToggleControl,\n materialBooleanToggleControlTester,\n MaterialDateControl,\n materialDateControlTester,\n MaterialDateTimeControl,\n materialDateTimeControlTester,\n MaterialTimeControl,\n materialTimeControlTester,\n MaterialEnumControl,\n materialEnumControlTester,\n MaterialIntegerControl,\n materialIntegerControlTester,\n MaterialNativeControl,\n materialNativeControlTester,\n MaterialNumberControl,\n materialNumberControlTester,\n MaterialOneOfEnumControl,\n materialOneOfEnumControlTester,\n MaterialRadioGroupControl,\n materialRadioGroupControlTester,\n MaterialSliderControl,\n materialSliderControlTester,\n MaterialTextControl,\n materialTextControlTester,\n MaterialOneOfRadioGroupControl,\n materialOneOfRadioGroupControlTester\n} from './controls';\nimport {\n MaterialArrayLayout,\n materialArrayLayoutTester,\n MaterialCategorizationLayout,\n materialCategorizationTester,\n MaterialGroupLayout,\n materialGroupTester,\n MaterialHorizontalLayout,\n materialHorizontalLayoutTester,\n MaterialVerticalLayout,\n materialVerticalLayoutTester\n} from './layouts';\nimport {\n MaterialBooleanCell,\n materialBooleanCellTester,\n MaterialBooleanToggleCell,\n materialBooleanToggleCellTester,\n MaterialDateCell,\n materialDateCellTester,\n MaterialEnumCell,\n materialEnumCellTester,\n MaterialIntegerCell,\n materialIntegerCellTester,\n MaterialNumberCell,\n materialNumberCellTester,\n MaterialNumberFormatCell,\n materialNumberFormatCellTester,\n MaterialOneOfEnumCell,\n materialOneOfEnumCellTester,\n MaterialTextCell,\n materialTextCellTester,\n MaterialTimeCell,\n materialTimeCellTester\n} from './cells';\nimport MaterialCategorizationStepperLayout, {\n materialCategorizationStepperTester\n} from './layouts/MaterialCategorizationStepperLayout';\n\nexport * from './complex';\nexport * from './controls';\nexport * from './layouts';\nexport * from './cells';\nexport * from './mui-controls';\nexport * from './util';\n\nexport const materialRenderers: JsonFormsRendererRegistryEntry[] = [\n // controls\n {\n tester: materialArrayControlTester,\n renderer: MaterialArrayControlRenderer\n },\n { tester: materialBooleanControlTester, renderer: MaterialBooleanControl },\n { tester: materialBooleanToggleControlTester, renderer: MaterialBooleanToggleControl },\n { tester: materialNativeControlTester, renderer: MaterialNativeControl },\n { tester: materialEnumControlTester, renderer: MaterialEnumControl },\n { tester: materialIntegerControlTester, renderer: MaterialIntegerControl },\n { tester: materialNumberControlTester, renderer: MaterialNumberControl },\n { tester: materialTextControlTester, renderer: MaterialTextControl },\n { tester: materialDateTimeControlTester, renderer: MaterialDateTimeControl },\n { tester: materialDateControlTester, renderer: MaterialDateControl },\n { tester: materialTimeControlTester, renderer: MaterialTimeControl }, \n { tester: materialSliderControlTester, renderer: MaterialSliderControl },\n { tester: materialObjectControlTester, renderer: MaterialObjectRenderer },\n { tester: materialAllOfControlTester, renderer: MaterialAllOfRenderer },\n { tester: materialAnyOfControlTester, renderer: MaterialAnyOfRenderer },\n { tester: materialOneOfControlTester, renderer: MaterialOneOfRenderer },\n {\n tester: materialRadioGroupControlTester,\n renderer: MaterialRadioGroupControl\n },\n {\n tester: materialOneOfRadioGroupControlTester,\n renderer: MaterialOneOfRadioGroupControl\n },\n { tester: materialOneOfEnumControlTester, renderer: MaterialOneOfEnumControl },\n // layouts\n { tester: materialGroupTester, renderer: MaterialGroupLayout },\n {\n tester: materialHorizontalLayoutTester,\n renderer: MaterialHorizontalLayout\n },\n { tester: materialVerticalLayoutTester, renderer: MaterialVerticalLayout },\n {\n tester: materialCategorizationTester,\n renderer: MaterialCategorizationLayout\n },\n {\n tester: materialCategorizationStepperTester,\n renderer: MaterialCategorizationStepperLayout\n },\n { tester: materialArrayLayoutTester, renderer: MaterialArrayLayout },\n // additional\n { tester: materialLabelRendererTester, renderer: MaterialLabelRenderer },\n {\n tester: materialListWithDetailTester,\n renderer: MaterialListWithDetailRenderer\n },\n {\n tester: materialAnyOfStringOrEnumControlTester,\n renderer: MaterialAnyOfStringOrEnumControl\n },\n {\n tester: materialEnumArrayRendererTester,\n renderer: MaterialEnumArrayRenderer\n }\n];\n\nexport const materialCells: JsonFormsCellRendererRegistryEntry[] = [\n { tester: materialBooleanCellTester, cell: MaterialBooleanCell },\n { tester: materialBooleanToggleCellTester, cell: MaterialBooleanToggleCell },\n { tester: materialDateCellTester, cell: MaterialDateCell },\n { tester: materialEnumCellTester, cell: MaterialEnumCell },\n { tester: materialIntegerCellTester, cell: MaterialIntegerCell },\n { tester: materialNumberCellTester, cell: MaterialNumberCell },\n { tester: materialNumberFormatCellTester, cell: MaterialNumberFormatCell },\n { tester: materialOneOfEnumCellTester, cell: MaterialOneOfEnumCell },\n { tester: materialTextCellTester, cell: MaterialTextCell },\n { tester: materialTimeCellTester, cell: MaterialTimeCell }\n];\n"],"names":["styled","eventToValue","toNumber","ListWithDetailMasterItem","MaterialBooleanControlUnwrapped","MaterialBooleanToggleControlUnwrapped","MaterialEnumControlUnwrapped","MaterialNativeControlUnwrapped","MaterialDateControlUnwrapped","MaterialDateTimeControlUnwrapped","MaterialTimeControlUnwrapped","MaterialSliderControlUnwrapped","MaterialRadioGroupControlUnwrapped","MaterialIntegerControlUnwrapped","MaterialNumberControlUnwrapped","MaterialTextControlUnwrapped","MaterialAnyOfStringOrEnumControlUnwrapped","MaterialOneOfEnumControlUnwrapped","MaterialOneOfRadioGroupControlUnwrapped","ExpandPanelRenderer","MaterialArrayLayout","Input","MaterialArrayControlRenderer","MaterialBooleanControl","MaterialBooleanToggleControl","MaterialNativeControl","MaterialEnumControl","MaterialIntegerControl","MaterialNumberControl","MaterialTextControl","MaterialDateTimeControl","MaterialDateControl","MaterialTimeControl","MaterialSliderControl","MaterialObjectRenderer","MaterialAllOfRenderer","MaterialAnyOfRenderer","MaterialOneOfRenderer","MaterialRadioGroupControl","MaterialOneOfRadioGroupControl","MaterialOneOfEnumControl","MaterialLabelRenderer","MaterialListWithDetailRenderer","MaterialAnyOfStringOrEnumControl","MaterialEnumArrayRenderer","MaterialBooleanCell","MaterialBooleanToggleCell","MaterialDateCell","MaterialEnumCell","MaterialIntegerCell","MaterialNumberCell","MaterialNumberFormatCell","MaterialOneOfEnumCell","MaterialTextCell","MaterialTimeCell"],"mappings":"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"}
|