@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.
- package/docs/assets/js/search.json +1 -1
- package/docs/globals.html +10 -10
- package/docs/interfaces/dispatchpropsofexpandpanel.html +3 -3
- package/docs/interfaces/expandpanelprops.html +34 -19
- package/docs/interfaces/ownpropsofexpandpanel.html +28 -14
- package/docs/interfaces/statepropsofexpandpanel.html +31 -16
- package/lib/jsonforms-react-material.cjs.js +30 -15
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +25 -10
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/layouts/ExpandPanelRenderer.d.ts +1 -0
- package/package.json +9 -9
- package/src/additional/MaterialListWithDetailRenderer.tsx +4 -0
- package/src/controls/MaterialDateControl.tsx +7 -6
- package/src/controls/MaterialDateTimeControl.tsx +9 -7
- package/src/controls/MaterialRadioGroup.tsx +1 -1
- package/src/controls/MaterialTimeControl.tsx +7 -6
- package/src/layouts/ExpandPanelRenderer.tsx +3 -0
- package/src/layouts/MaterialArrayLayout.tsx +2 -0
- package/stats.html +1 -1
- package/test/renderers/MaterialDateTimeControl.test.tsx +2 -2
- package/test/renderers/MaterialTimeControl.test.tsx +1 -1
|
@@ -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
|
|
27
|
-
var AdapterDayjs = require('@mui/
|
|
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(
|
|
852
|
-
React__default["default"].createElement(
|
|
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(
|
|
880
|
-
React__default["default"].createElement(
|
|
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(
|
|
908
|
-
React__default["default"].createElement(
|
|
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
|
|
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);
|