@jsonforms/material-renderers 3.0.0-beta.4 → 3.0.0-beta.5
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 +89 -8
- package/docs/index.html +9 -0
- package/docs/interfaces/inputref.html +168 -0
- package/lib/jsonforms-react-material.cjs.js +39 -12
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +43 -9
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/util/datejs.d.ts +17 -1
- package/package.json +6 -6
- package/src/controls/MaterialDateControl.tsx +23 -6
- package/src/controls/MaterialDateTimeControl.tsx +23 -6
- package/src/controls/MaterialTimeControl.tsx +24 -7
- package/src/mui-controls/MuiAutocomplete.tsx +1 -0
- package/src/util/datejs.tsx +73 -0
- package/stats.html +1 -1
- package/test/renderers/MaterialDateControl.test.tsx +27 -0
- package/test/renderers/MaterialDateTimeControl.test.tsx +27 -0
- package/test/renderers/MaterialTimeControl.test.tsx +27 -0
- package/src/util/datejs.ts +0 -32
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
import { createDefaultValue, Resolve, encode, Paths, formatErrorMessage, errorsAt, rankWith, isObjectControl, findUISchema, Generate, isAllOfControl, findMatchingUISchema, createCombinatorRenderInfos, isAnyOfControl, isOneOfControl, getAjv, and, uiTypeIs, schemaMatches, hasType, schemaSubPathMatches, or, isObjectArrayControl, isPrimitiveArrayControl, isObjectArray, computeLabel, composePaths, isBooleanControl, optionIs, isDescriptionHidden, showAsRequired, isEnumControl, isDateControl, isTimeControl, isDateTimeControl, isRangeControl, isIntegerControl, isNumberControl, isStringControl, isOneOfEnumControl, withIncreasedRank, isVisible, update, moveUp, moveDown, getFirstPrimitiveProp, createId, removeId, isObjectArrayWithNesting, isNumberFormatControl, categorizationHasCategory } from '@jsonforms/core';
|
|
2
|
-
import React, { useMemo, Fragment, useState, useCallback, useEffect } from 'react';
|
|
2
|
+
import React, { useMemo, Fragment, useState, useCallback, useRef, useEffect } from 'react';
|
|
3
3
|
import { DispatchCell, useJsonForms, withJsonFormsArrayLayoutProps, withJsonFormsDetailProps, JsonFormsDispatch, withJsonFormsAllOfProps, withJsonFormsAnyOfProps, withJsonFormsOneOfProps, withJsonFormsMultiEnumProps, withJsonFormsLayoutProps, withJsonFormsMasterListItemProps, withJsonFormsControlProps, withJsonFormsEnumProps, Control, withJsonFormsOneOfEnumProps, withJsonFormsContext, withJsonFormsCellProps, withJsonFormsEnumCellProps, withJsonFormsOneOfEnumCellProps } from '@jsonforms/react';
|
|
4
4
|
import isEmpty from 'lodash/isEmpty';
|
|
5
5
|
import union from 'lodash/union';
|
|
6
6
|
import startCase from 'lodash/startCase';
|
|
7
7
|
import range from 'lodash/range';
|
|
8
|
-
import { TableCell, styled as styled$1, Badge, Tooltip, TableRow, Grid, Typography, Hidden, IconButton, FormHelperText, Table, TableHead, TableBody, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Tabs, Tab, Checkbox, Select, MenuItem, Input, useTheme, InputAdornment, FormControl, FormGroup, FormControlLabel, Toolbar, ListItem, ListItemAvatar, Avatar, ListItemText, ListItemSecondaryAction, List, Switch, InputLabel, Autocomplete,
|
|
8
|
+
import { TableCell, styled as styled$1, Badge, Tooltip, TableRow, Grid, Typography, Hidden, IconButton, FormHelperText, Table, TableHead, TableBody, Dialog, DialogTitle, DialogContent, DialogContentText, DialogActions, Button, Tabs, Tab, Checkbox, Select, MenuItem, TextField, Input, useTheme, InputAdornment, FormControl, FormGroup, FormControlLabel, Toolbar, ListItem, ListItemAvatar, Avatar, ListItemText, ListItemSecondaryAction, List, Switch, InputLabel, Autocomplete, FormLabel, Slider, RadioGroup, Radio, Card, CardHeader, CardContent, AppBar, Accordion, AccordionSummary, AccordionDetails, Stepper, Step, StepButton } from '@mui/material';
|
|
9
9
|
import DeleteIcon from '@mui/icons-material/Delete';
|
|
10
10
|
import ArrowDownward from '@mui/icons-material/ArrowDownward';
|
|
11
11
|
import ArrowUpward from '@mui/icons-material/ArrowUpward';
|
|
@@ -334,13 +334,13 @@ const MuiSelect = React.memo((props) => {
|
|
|
334
334
|
});
|
|
335
335
|
|
|
336
336
|
dayjs.extend(customParsing);
|
|
337
|
-
const createOnChangeHandler = (path, handleChange, saveFormat) => (time) => {
|
|
337
|
+
const createOnChangeHandler = (path, handleChange, saveFormat) => (time, textInputValue) => {
|
|
338
338
|
if (!time) {
|
|
339
339
|
handleChange(path, undefined);
|
|
340
340
|
return;
|
|
341
341
|
}
|
|
342
342
|
const result = dayjs(time).format(saveFormat);
|
|
343
|
-
handleChange(path, result === 'Invalid Date' ?
|
|
343
|
+
handleChange(path, result === 'Invalid Date' ? textInputValue : result);
|
|
344
344
|
};
|
|
345
345
|
const getData = (data, saveFormat) => {
|
|
346
346
|
if (!data) {
|
|
@@ -352,6 +352,22 @@ const getData = (data, saveFormat) => {
|
|
|
352
352
|
}
|
|
353
353
|
return dayjsData;
|
|
354
354
|
};
|
|
355
|
+
const ResettableTextField = ({ rawValue, dayjsValueIsValid, valueInInputFormat, focused, inputProps, ...props }) => {
|
|
356
|
+
const value = useRef({ lastInput: inputProps?.value, toShow: inputProps?.value });
|
|
357
|
+
if (!focused) {
|
|
358
|
+
if (!dayjsValueIsValid) {
|
|
359
|
+
value.current.toShow = typeof rawValue === 'string' || rawValue === null || rawValue === undefined ? rawValue : JSON.stringify(rawValue);
|
|
360
|
+
}
|
|
361
|
+
else {
|
|
362
|
+
value.current.toShow = valueInInputFormat;
|
|
363
|
+
}
|
|
364
|
+
}
|
|
365
|
+
if (focused && inputProps?.value !== value.current.lastInput) {
|
|
366
|
+
value.current.lastInput = inputProps?.value;
|
|
367
|
+
value.current.toShow = inputProps?.value;
|
|
368
|
+
}
|
|
369
|
+
return React.createElement(TextField, Object.assign({}, props, { inputProps: { ...inputProps, value: value.current.toShow || '' } }));
|
|
370
|
+
};
|
|
355
371
|
|
|
356
372
|
const renderLayoutElements = (elements, schema, path, enabled, renderers, cells) => {
|
|
357
373
|
return elements.map((child, index) => (React.createElement(Grid, { item: true, key: `${path}-${index}`, xs: true },
|
|
@@ -614,7 +630,7 @@ const MuiAutocomplete = (props) => {
|
|
|
614
630
|
handleChange(path, newValue?.value);
|
|
615
631
|
}, inputValue: inputValue, onInputChange: (_event, newInputValue) => {
|
|
616
632
|
setInputValue(newInputValue);
|
|
617
|
-
}, autoHighlight: true, autoSelect: true, autoComplete: true, fullWidth: true, options: options, getOptionLabel: getOptionLabel || (option => option?.label), style: { marginTop: 16 }, renderInput: params => (React.createElement(Input, { style: { width: '100%' }, type: 'text', inputProps: params.inputProps, inputRef: params.InputProps.ref, autoFocus: appliedUiSchemaOptions.focus, disabled: !enabled })), renderOption: renderOption, filterOptions: filterOptions }));
|
|
633
|
+
}, autoHighlight: true, autoSelect: true, autoComplete: true, fullWidth: true, options: options, getOptionLabel: getOptionLabel || (option => option?.label), freeSolo: false, style: { marginTop: 16 }, renderInput: params => (React.createElement(Input, { style: { width: '100%' }, type: 'text', inputProps: params.inputProps, inputRef: params.InputProps.ref, autoFocus: appliedUiSchemaOptions.focus, disabled: !enabled })), renderOption: renderOption, filterOptions: filterOptions }));
|
|
618
634
|
};
|
|
619
635
|
|
|
620
636
|
const MaterialEnumControl = (props) => {
|
|
@@ -647,6 +663,7 @@ const MaterialDateControl = (props) => {
|
|
|
647
663
|
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
648
664
|
const format = appliedUiSchemaOptions.dateFormat ?? 'YYYY-MM-DD';
|
|
649
665
|
const saveFormat = appliedUiSchemaOptions.dateSaveFormat ?? 'YYYY-MM-DD';
|
|
666
|
+
const views = appliedUiSchemaOptions.views ?? ['year', 'day'];
|
|
650
667
|
const firstFormHelperText = showDescription
|
|
651
668
|
? description
|
|
652
669
|
: !isValid
|
|
@@ -654,9 +671,14 @@ const MaterialDateControl = (props) => {
|
|
|
654
671
|
: null;
|
|
655
672
|
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
656
673
|
const onChange = useMemo(() => createOnChangeHandler(path, handleChange, saveFormat), [path, handleChange, saveFormat]);
|
|
674
|
+
const value = getData(data, saveFormat);
|
|
675
|
+
const valueInInputFormat = value ? value.format(format) : '';
|
|
657
676
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
658
677
|
React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs },
|
|
659
|
-
React.createElement(DatePicker, { label: label, value:
|
|
678
|
+
React.createElement(DatePicker, { label: label, value: value, clearable: true, onChange: onChange, inputFormat: format, disableMaskedInput: true, views: views, disabled: !enabled, cancelText: appliedUiSchemaOptions.cancelLabel, clearText: appliedUiSchemaOptions.clearLabel, okText: appliedUiSchemaOptions.okLabel, renderInput: params => (React.createElement(ResettableTextField, Object.assign({}, params, { rawValue: data, dayjsValueIsValid: value !== null, valueInInputFormat: valueInInputFormat, focused: focused, id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: {
|
|
679
|
+
...params.inputProps,
|
|
680
|
+
type: 'text',
|
|
681
|
+
}, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))) }),
|
|
660
682
|
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
661
683
|
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
662
684
|
};
|
|
@@ -671,6 +693,7 @@ const MaterialDateTimeControl = (props) => {
|
|
|
671
693
|
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
672
694
|
const format = appliedUiSchemaOptions.dateTimeFormat ?? 'YYYY-MM-DD HH:mm';
|
|
673
695
|
const saveFormat = appliedUiSchemaOptions.dateTimeSaveFormat ?? undefined;
|
|
696
|
+
const views = appliedUiSchemaOptions.views ?? ['year', 'day', 'hours', 'minutes'];
|
|
674
697
|
const firstFormHelperText = showDescription
|
|
675
698
|
? description
|
|
676
699
|
: !isValid
|
|
@@ -678,9 +701,14 @@ const MaterialDateTimeControl = (props) => {
|
|
|
678
701
|
: null;
|
|
679
702
|
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
680
703
|
const onChange = useMemo(() => createOnChangeHandler(path, handleChange, saveFormat), [path, handleChange, saveFormat]);
|
|
704
|
+
const value = getData(data, saveFormat);
|
|
705
|
+
const valueInInputFormat = value ? value.format(format) : '';
|
|
681
706
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
682
707
|
React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs },
|
|
683
|
-
React.createElement(DateTimePicker, { label: label, value:
|
|
708
|
+
React.createElement(DateTimePicker, { label: label, value: value, clearable: true, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: views, disabled: !enabled, cancelText: appliedUiSchemaOptions.cancelLabel, clearText: appliedUiSchemaOptions.clearLabel, okText: appliedUiSchemaOptions.okLabel, renderInput: params => (React.createElement(ResettableTextField, Object.assign({}, params, { rawValue: data, dayjsValueIsValid: value !== null, valueInInputFormat: valueInInputFormat, focused: focused, id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: {
|
|
709
|
+
...params.inputProps,
|
|
710
|
+
type: 'text',
|
|
711
|
+
}, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))) }),
|
|
684
712
|
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
685
713
|
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
686
714
|
};
|
|
@@ -695,6 +723,7 @@ const MaterialTimeControl = (props) => {
|
|
|
695
723
|
const showDescription = !isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
696
724
|
const format = appliedUiSchemaOptions.timeFormat ?? 'HH:mm';
|
|
697
725
|
const saveFormat = appliedUiSchemaOptions.timeSaveFormat ?? 'HH:mm:ss';
|
|
726
|
+
const views = appliedUiSchemaOptions.views ?? ['hours', 'minutes'];
|
|
698
727
|
const firstFormHelperText = showDescription
|
|
699
728
|
? description
|
|
700
729
|
: !isValid
|
|
@@ -702,9 +731,14 @@ const MaterialTimeControl = (props) => {
|
|
|
702
731
|
: null;
|
|
703
732
|
const secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
704
733
|
const onChange = useMemo(() => createOnChangeHandler(path, handleChange, saveFormat), [path, handleChange, saveFormat]);
|
|
734
|
+
const value = getData(data, saveFormat);
|
|
735
|
+
const valueInInputFormat = value ? value.format(format) : '';
|
|
705
736
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
706
737
|
React.createElement(LocalizationProvider, { dateAdapter: AdapterDayjs },
|
|
707
|
-
React.createElement(TimePicker, { label: label, value:
|
|
738
|
+
React.createElement(TimePicker, { label: label, value: value, clearable: true, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: views, disabled: !enabled, cancelText: appliedUiSchemaOptions.cancelLabel, clearText: appliedUiSchemaOptions.clearLabel, okText: appliedUiSchemaOptions.okLabel, renderInput: params => (React.createElement(ResettableTextField, Object.assign({}, params, { rawValue: data, dayjsValueIsValid: value !== null, valueInInputFormat: valueInInputFormat, focused: focused, id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: {
|
|
739
|
+
...params.inputProps,
|
|
740
|
+
type: 'text'
|
|
741
|
+
}, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))) }),
|
|
708
742
|
React.createElement(FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
709
743
|
React.createElement(FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
710
744
|
};
|
|
@@ -1209,5 +1243,5 @@ const materialCells = [
|
|
|
1209
1243
|
{ tester: materialTimeCellTester, cell: MaterialTimeCell$1 }
|
|
1210
1244
|
];
|
|
1211
1245
|
|
|
1212
|
-
export { CustomizableCells as Customizable, MaterialAllOfRenderer$1 as MaterialAllOfRenderer, MaterialAnyOfRenderer$1 as MaterialAnyOfRenderer, MaterialAnyOfStringOrEnumControl$1 as MaterialAnyOfStringOrEnumControl, MaterialArrayControlRenderer$1 as MaterialArrayControlRenderer, MaterialArrayLayout, MaterialBooleanCell$1 as MaterialBooleanCell, MaterialBooleanControl$1 as MaterialBooleanControl, MaterialBooleanToggleCell$1 as MaterialBooleanToggleCell, MaterialBooleanToggleControl$1 as MaterialBooleanToggleControl, MaterialCategorizationLayout, MaterialDateCell$1 as MaterialDateCell, MaterialDateControl$1 as MaterialDateControl, MaterialDateTimeControl$1 as MaterialDateTimeControl, MaterialEnumArrayRenderer$1 as MaterialEnumArrayRenderer, MaterialEnumCell$1 as MaterialEnumCell, MaterialEnumControl$1 as MaterialEnumControl, MaterialGroupLayout, MaterialHorizontalLayout, MaterialInputControl, MaterialIntegerCell$1 as MaterialIntegerCell, MaterialIntegerControl$1 as MaterialIntegerControl, MaterialLayoutRenderer, MaterialNativeControl$1 as MaterialNativeControl, MaterialNumberCell$1 as MaterialNumberCell, MaterialNumberControl$1 as MaterialNumberControl, MaterialNumberFormatCell$1 as MaterialNumberFormatCell, MaterialObjectRenderer$1 as MaterialObjectRenderer, MaterialOneOfEnumCell$1 as MaterialOneOfEnumCell, MaterialOneOfEnumControl$1 as MaterialOneOfEnumControl, MaterialOneOfRadioGroupControl$1 as MaterialOneOfRadioGroupControl, MaterialOneOfRenderer$1 as MaterialOneOfRenderer, MaterialRadioGroupControl$1 as MaterialRadioGroupControl, MaterialSliderControl$1 as MaterialSliderControl, MaterialTextCell$1 as MaterialTextCell, MaterialTextControl$1 as MaterialTextControl, MaterialTimeCell$1 as MaterialTimeCell, MaterialTimeControl$1 as MaterialTimeControl, MaterialVerticalLayout, MuiCheckbox, MuiInputInteger, MuiInputNumber, MuiInputNumberFormat, MuiInputText, MuiInputTime, MuiSelect, Unwrapped, createOnChangeHandler, getData, materialAllOfControlTester, materialAnyOfControlTester, materialAnyOfStringOrEnumControlTester, materialArrayControlTester, materialArrayLayoutTester, materialBooleanCellTester, materialBooleanControlTester, materialBooleanToggleCellTester, materialBooleanToggleControlTester, materialCategorizationTester, materialCells, materialDateCellTester, materialDateControlTester, materialDateTimeControlTester, materialEnumArrayRendererTester, materialEnumCellTester, materialEnumControlTester, materialGroupTester, materialHorizontalLayoutTester, materialIntegerCellTester, materialIntegerControlTester, materialNativeControlTester, materialNumberCellTester, materialNumberControlTester, materialNumberFormatCellTester, materialObjectControlTester, materialOneOfControlTester, materialOneOfEnumCellTester, materialOneOfEnumControlTester, materialOneOfRadioGroupControlTester, materialRadioGroupControlTester, materialRenderers, materialSliderControlTester, materialTextCellTester, materialTextControlTester, materialTimeCellTester, materialTimeControlTester, materialVerticalLayoutTester, renderLayoutElements, useDebouncedChange, useFocus, withAjvProps };
|
|
1246
|
+
export { CustomizableCells as Customizable, MaterialAllOfRenderer$1 as MaterialAllOfRenderer, MaterialAnyOfRenderer$1 as MaterialAnyOfRenderer, MaterialAnyOfStringOrEnumControl$1 as MaterialAnyOfStringOrEnumControl, MaterialArrayControlRenderer$1 as MaterialArrayControlRenderer, MaterialArrayLayout, MaterialBooleanCell$1 as MaterialBooleanCell, MaterialBooleanControl$1 as MaterialBooleanControl, MaterialBooleanToggleCell$1 as MaterialBooleanToggleCell, MaterialBooleanToggleControl$1 as MaterialBooleanToggleControl, MaterialCategorizationLayout, MaterialDateCell$1 as MaterialDateCell, MaterialDateControl$1 as MaterialDateControl, MaterialDateTimeControl$1 as MaterialDateTimeControl, MaterialEnumArrayRenderer$1 as MaterialEnumArrayRenderer, MaterialEnumCell$1 as MaterialEnumCell, MaterialEnumControl$1 as MaterialEnumControl, MaterialGroupLayout, MaterialHorizontalLayout, MaterialInputControl, MaterialIntegerCell$1 as MaterialIntegerCell, MaterialIntegerControl$1 as MaterialIntegerControl, MaterialLayoutRenderer, MaterialNativeControl$1 as MaterialNativeControl, MaterialNumberCell$1 as MaterialNumberCell, MaterialNumberControl$1 as MaterialNumberControl, MaterialNumberFormatCell$1 as MaterialNumberFormatCell, MaterialObjectRenderer$1 as MaterialObjectRenderer, MaterialOneOfEnumCell$1 as MaterialOneOfEnumCell, MaterialOneOfEnumControl$1 as MaterialOneOfEnumControl, MaterialOneOfRadioGroupControl$1 as MaterialOneOfRadioGroupControl, MaterialOneOfRenderer$1 as MaterialOneOfRenderer, MaterialRadioGroupControl$1 as MaterialRadioGroupControl, MaterialSliderControl$1 as MaterialSliderControl, MaterialTextCell$1 as MaterialTextCell, MaterialTextControl$1 as MaterialTextControl, MaterialTimeCell$1 as MaterialTimeCell, MaterialTimeControl$1 as MaterialTimeControl, MaterialVerticalLayout, MuiCheckbox, MuiInputInteger, MuiInputNumber, MuiInputNumberFormat, MuiInputText, MuiInputTime, MuiSelect, ResettableTextField, Unwrapped, createOnChangeHandler, getData, materialAllOfControlTester, materialAnyOfControlTester, materialAnyOfStringOrEnumControlTester, materialArrayControlTester, materialArrayLayoutTester, materialBooleanCellTester, materialBooleanControlTester, materialBooleanToggleCellTester, materialBooleanToggleControlTester, materialCategorizationTester, materialCells, materialDateCellTester, materialDateControlTester, materialDateTimeControlTester, materialEnumArrayRendererTester, materialEnumCellTester, materialEnumControlTester, materialGroupTester, materialHorizontalLayoutTester, materialIntegerCellTester, materialIntegerControlTester, materialNativeControlTester, materialNumberCellTester, materialNumberControlTester, materialNumberFormatCellTester, materialObjectControlTester, materialOneOfControlTester, materialOneOfEnumCellTester, materialOneOfEnumControlTester, materialOneOfRadioGroupControlTester, materialRadioGroupControlTester, materialRenderers, materialSliderControlTester, materialTextCellTester, materialTextControlTester, materialTimeCellTester, materialTimeControlTester, materialVerticalLayoutTester, renderLayoutElements, useDebouncedChange, useFocus, withAjvProps };
|
|
1213
1247
|
//# sourceMappingURL=jsonforms-react-material.esm.js.map
|