@jsonforms/material-renderers 3.0.0-rc.0 → 3.0.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.
@@ -23,8 +23,8 @@ var customParsing = require('dayjs/plugin/customParseFormat');
23
23
  var debounce = require('lodash/debounce');
24
24
  var Close = require('@mui/icons-material/Close');
25
25
  var map = require('lodash/map');
26
- var lab = require('@mui/lab');
27
- var AdapterDayjs = require('@mui/lab/AdapterDayjs');
26
+ var xDatePickers = require('@mui/x-date-pickers');
27
+ var AdapterDayjs = require('@mui/x-date-pickers/AdapterDayjs');
28
28
  var get = require('lodash/get');
29
29
  var ExpandMoreIcon = require('@mui/icons-material/ExpandMore');
30
30
  var Input = require('@mui/material/Input');
@@ -48,7 +48,6 @@ var customParsing__default = /*#__PURE__*/_interopDefaultLegacy(customParsing);
48
48
  var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
49
49
  var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
50
50
  var map__default = /*#__PURE__*/_interopDefaultLegacy(map);
51
- var AdapterDayjs__default = /*#__PURE__*/_interopDefaultLegacy(AdapterDayjs);
52
51
  var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
53
52
  var ExpandMoreIcon__default = /*#__PURE__*/_interopDefaultLegacy(ExpandMoreIcon);
54
53
  var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
@@ -721,6 +720,9 @@ var MaterialListWithDetailRenderer = function (_a) {
721
720
  return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
722
721
  }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
723
722
  var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
723
+ React__default["default"].useEffect(function () {
724
+ setSelectedIndex(undefined);
725
+ }, [schema]);
724
726
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
725
727
  React__default["default"].createElement(ArrayLayoutToolbar, { label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: handleCreateDefaultValue }),
726
728
  React__default["default"].createElement(material.Grid, { container: true, direction: 'row', spacing: 2 },
@@ -848,8 +850,12 @@ var MaterialDateControl = function (props) {
848
850
  var value = getData(data, saveFormat);
849
851
  var valueInInputFormat = value ? value.format(format) : '';
850
852
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
851
- React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
852
- React__default["default"].createElement(lab.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: function (params) { return (React__default["default"].createElement(ResettableTextField, __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: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
853
+ React__default["default"].createElement(xDatePickers.LocalizationProvider, { dateAdapter: AdapterDayjs.AdapterDayjs },
854
+ React__default["default"].createElement(xDatePickers.DatePicker, { label: label, value: value, onChange: onChange, inputFormat: format, disableMaskedInput: true, views: views, disabled: !enabled, componentsProps: {
855
+ actionBar: {
856
+ actions: function (variant) { return (variant === 'desktop' ? [] : ['clear', 'cancel', 'accept']); }
857
+ }
858
+ }, renderInput: function (params) { return (React__default["default"].createElement(ResettableTextField, __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: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
853
859
  React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
854
860
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
855
861
  };
@@ -876,8 +882,12 @@ var MaterialDateTimeControl = function (props) {
876
882
  var value = getData(data, saveFormat);
877
883
  var valueInInputFormat = value ? value.format(format) : '';
878
884
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
879
- React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
880
- React__default["default"].createElement(lab.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: function (params) { return (React__default["default"].createElement(ResettableTextField, __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: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
885
+ React__default["default"].createElement(xDatePickers.LocalizationProvider, { dateAdapter: AdapterDayjs.AdapterDayjs },
886
+ React__default["default"].createElement(xDatePickers.DateTimePicker, { label: label, value: value, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: views, disabled: !enabled, componentsProps: {
887
+ actionBar: {
888
+ actions: function (variant) { return (variant === 'desktop' ? [] : ['clear', 'cancel', 'accept']); }
889
+ }
890
+ }, renderInput: function (params) { return (React__default["default"].createElement(ResettableTextField, __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: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
881
891
  React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
882
892
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
883
893
  };
@@ -904,8 +914,12 @@ var MaterialTimeControl = function (props) {
904
914
  var value = getData(data, saveFormat);
905
915
  var valueInInputFormat = value ? value.format(format) : '';
906
916
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
907
- React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
908
- React__default["default"].createElement(lab.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: function (params) { return (React__default["default"].createElement(ResettableTextField, __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: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
917
+ React__default["default"].createElement(xDatePickers.LocalizationProvider, { dateAdapter: AdapterDayjs.AdapterDayjs },
918
+ React__default["default"].createElement(xDatePickers.TimePicker, { label: label, value: value, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: views, disabled: !enabled, componentsProps: {
919
+ actionBar: {
920
+ actions: function (variant) { return (variant === 'desktop' ? [] : ['clear', 'cancel', 'accept']); }
921
+ }
922
+ }, renderInput: function (params) { return (React__default["default"].createElement(ResettableTextField, __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: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
909
923
  React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
910
924
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
911
925
  };
@@ -948,7 +962,8 @@ var materialSliderControlTester = core.rankWith(4, core.isRangeControl);
948
962
  var MaterialSliderControl$1 = react.withJsonFormsControlProps(MaterialSliderControl);
949
963
 
950
964
  var MaterialRadioGroup = function (props) {
951
- var _a = useFocus(), focused = _a[0], onFocus = _a[1], onBlur = _a[2];
965
+ var _a;
966
+ var _b = useFocus(), focused = _b[0], onFocus = _b[1], onBlur = _b[2];
952
967
  var config = props.config, id = props.id, label = props.label, required = props.required, description = props.description, errors = props.errors, data = props.data, visible = props.visible, options = props.options, handleChange = props.handleChange, path = props.path, enabled = props.enabled;
953
968
  var isValid = errors.length === 0;
954
969
  var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
@@ -957,7 +972,7 @@ var MaterialRadioGroup = function (props) {
957
972
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
958
973
  React__default["default"].createElement(material.FormControl, { component: 'fieldset', fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur },
959
974
  React__default["default"].createElement(material.FormLabel, { htmlFor: id, error: !isValid, component: 'legend', required: core.showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk) }, label),
960
- React__default["default"].createElement(material.RadioGroup, { value: props.data, onChange: onChange, row: true }, options.map(function (option) { return (React__default["default"].createElement(material.FormControlLabel, { value: option.value, key: option.label, control: React__default["default"].createElement(material.Radio, { checked: data === option.value }), label: option.label, disabled: !enabled })); })),
975
+ React__default["default"].createElement(material.RadioGroup, { value: (_a = props.data) !== null && _a !== void 0 ? _a : '', onChange: onChange, row: true }, options.map(function (option) { return (React__default["default"].createElement(material.FormControlLabel, { value: option.value, key: option.label, control: React__default["default"].createElement(material.Radio, { checked: data === option.value }), label: option.label, disabled: !enabled })); })),
961
976
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, !isValid ? errors : showDescription ? description : null))));
962
977
  };
963
978
 
@@ -1163,7 +1178,7 @@ var ExpandPanelRendererComponent = function (props) {
1163
1178
  core.removeId(labelHtmlId);
1164
1179
  };
1165
1180
  }, [labelHtmlId]);
1166
- var childLabel = props.childLabel, childPath = props.childPath, index = props.index, expanded = props.expanded, moveDown = props.moveDown, moveUp = props.moveUp, enableMoveDown = props.enableMoveDown, enableMoveUp = props.enableMoveUp, handleExpansion = props.handleExpansion, removeItems = props.removeItems, path = props.path, rootSchema = props.rootSchema, schema = props.schema, uischema = props.uischema, uischemas = props.uischemas, renderers = props.renderers, cells = props.cells, config = props.config;
1181
+ var enabled = props.enabled, childLabel = props.childLabel, childPath = props.childPath, index = props.index, expanded = props.expanded, moveDown = props.moveDown, moveUp = props.moveUp, enableMoveDown = props.enableMoveDown, enableMoveUp = props.enableMoveUp, handleExpansion = props.handleExpansion, removeItems = props.removeItems, path = props.path, rootSchema = props.rootSchema, schema = props.schema, uischema = props.uischema, uischemas = props.uischemas, renderers = props.renderers, cells = props.cells, config = props.config;
1167
1182
  var foundUISchema = React.useMemo(function () {
1168
1183
  return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
1169
1184
  }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
@@ -1193,7 +1208,7 @@ var ExpandPanelRendererComponent = function (props) {
1193
1208
  React__default["default"].createElement(material.IconButton, { onClick: removeItems(path, [index]), style: iconStyle, "aria-label": "Delete", size: 'large' },
1194
1209
  React__default["default"].createElement(DeleteIcon__default["default"], null))))))))),
1195
1210
  React__default["default"].createElement(material.AccordionDetails, null,
1196
- React__default["default"].createElement(react.JsonFormsDispatch, { schema: schema, uischema: foundUISchema, path: childPath, key: childPath, renderers: renderers, cells: cells }))));
1211
+ React__default["default"].createElement(react.JsonFormsDispatch, { enabled: enabled, schema: schema, uischema: foundUISchema, path: childPath, key: childPath, renderers: renderers, cells: cells }))));
1197
1212
  };
1198
1213
  var ExpandPanelRenderer = React__default["default"].memo(ExpandPanelRendererComponent);
1199
1214
  var ctxDispatchToExpandPanelProps = function (dispatch) { return ({
@@ -1247,12 +1262,12 @@ var MaterialArrayLayoutComponent = function (props) {
1247
1262
  var isExpanded = function (index) {
1248
1263
  return expanded === core.composePaths(props.path, "" + index);
1249
1264
  };
1250
- var data = props.data, path = props.path, schema = props.schema, uischema = props.uischema, errors = props.errors, addItem = props.addItem, renderers = props.renderers, cells = props.cells, label = props.label, required = props.required, rootSchema = props.rootSchema, config = props.config, uischemas = props.uischemas;
1265
+ var enabled = props.enabled, data = props.data, path = props.path, schema = props.schema, uischema = props.uischema, errors = props.errors, addItem = props.addItem, renderers = props.renderers, cells = props.cells, label = props.label, required = props.required, rootSchema = props.rootSchema, config = props.config, uischemas = props.uischemas;
1251
1266
  var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
1252
1267
  return (React__default["default"].createElement("div", null,
1253
1268
  React__default["default"].createElement(ArrayLayoutToolbar, { label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: innerCreateDefaultValue }),
1254
1269
  React__default["default"].createElement("div", null, data > 0 ? (map__default["default"](range__default["default"](data), function (index) {
1255
- return (React__default["default"].createElement(ExpandPanelRenderer$1, { index: index, expanded: isExpanded(index), schema: schema, path: path, handleExpansion: handleChange, uischema: uischema, renderers: renderers, cells: cells, key: index, rootSchema: rootSchema, enableMoveUp: index != 0, enableMoveDown: index < data - 1, config: config, childLabelProp: appliedUiSchemaOptions.elementLabelProp, uischemas: uischemas }));
1270
+ return (React__default["default"].createElement(ExpandPanelRenderer$1, { enabled: enabled, index: index, expanded: isExpanded(index), schema: schema, path: path, handleExpansion: handleChange, uischema: uischema, renderers: renderers, cells: cells, key: index, rootSchema: rootSchema, enableMoveUp: index != 0, enableMoveDown: index < data - 1, config: config, childLabelProp: appliedUiSchemaOptions.elementLabelProp, uischemas: uischemas }));
1256
1271
  })) : (React__default["default"].createElement("p", null, "No data")))));
1257
1272
  };
1258
1273
  var MaterialArrayLayout$1 = React__default["default"].memo(MaterialArrayLayoutComponent);