@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
|
@@ -448,12 +448,6 @@ var MuiCheckbox = React__default["default"].memo(function (props) {
|
|
|
448
448
|
return (React__default["default"].createElement(material.Checkbox, { checked: checked, onChange: function (_ev, isChecked) { return handleChange(path, isChecked); }, className: className, id: id, disabled: !enabled, inputProps: inputProps }));
|
|
449
449
|
});
|
|
450
450
|
|
|
451
|
-
var MuiSelect = React__default["default"].memo(function (props) {
|
|
452
|
-
var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, options = props.options, config = props.config;
|
|
453
|
-
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
454
|
-
return (React__default["default"].createElement(material.Select, { className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, value: data !== undefined ? data : '', onChange: function (ev) { return handleChange(path, ev.target.value); }, fullWidth: true, variant: 'standard' }, [React__default["default"].createElement(material.MenuItem, { value: '', key: 'empty' })].concat(options.map(function (optionValue) { return (React__default["default"].createElement(material.MenuItem, { value: optionValue.value, key: optionValue.value }, optionValue.label)); }))));
|
|
455
|
-
});
|
|
456
|
-
|
|
457
451
|
dayjs__default["default"].extend(customParsing__default["default"]);
|
|
458
452
|
var createOnChangeHandler = function (path, handleChange, saveFormat) { return function (time, textInputValue) {
|
|
459
453
|
if (!time) {
|
|
@@ -514,9 +508,9 @@ var withAjvProps = function (Component) {
|
|
|
514
508
|
};
|
|
515
509
|
};
|
|
516
510
|
|
|
517
|
-
var eventToValue$
|
|
511
|
+
var eventToValue$3 = function (ev) { return ev.target.value; };
|
|
518
512
|
var useDebouncedChange = function (handleChange, defaultValue, data, path, eventToValueFunction, timeout) {
|
|
519
|
-
if (eventToValueFunction === void 0) { eventToValueFunction = eventToValue$
|
|
513
|
+
if (eventToValueFunction === void 0) { eventToValueFunction = eventToValue$3; }
|
|
520
514
|
if (timeout === void 0) { timeout = 300; }
|
|
521
515
|
var _a = React.useState(data !== null && data !== void 0 ? data : defaultValue), input = _a[0], setInput = _a[1];
|
|
522
516
|
React.useEffect(function () {
|
|
@@ -539,27 +533,39 @@ var useFocus = function () {
|
|
|
539
533
|
return [focused, onFocus, onBlur];
|
|
540
534
|
};
|
|
541
535
|
|
|
536
|
+
var i18nDefaults = {
|
|
537
|
+
'enum.none': 'None'
|
|
538
|
+
};
|
|
539
|
+
|
|
540
|
+
var MuiSelect = React__default["default"].memo(function (props) {
|
|
541
|
+
var data = props.data, className = props.className, id = props.id, enabled = props.enabled, schema = props.schema, uischema = props.uischema, path = props.path, handleChange = props.handleChange, options = props.options, config = props.config, t = props.t;
|
|
542
|
+
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
543
|
+
var noneOptionLabel = React.useMemo(function () { return t('enum.none', i18nDefaults['enum.none'], { schema: schema, uischema: uischema, path: path }); }, [t, schema, uischema, path]);
|
|
544
|
+
return (React__default["default"].createElement(material.Select, { className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, value: data !== undefined ? data : '', onChange: function (ev) { return handleChange(path, ev.target.value || undefined); }, fullWidth: true, variant: 'standard' }, [React__default["default"].createElement(material.MenuItem, { value: '', key: 'jsonforms.enum.none' },
|
|
545
|
+
React__default["default"].createElement("em", null, noneOptionLabel))].concat(options.map(function (optionValue) { return (React__default["default"].createElement(material.MenuItem, { value: optionValue.value, key: optionValue.value }, optionValue.label)); }))));
|
|
546
|
+
});
|
|
547
|
+
|
|
542
548
|
var toNumber$1 = function (value) {
|
|
543
549
|
return value === '' ? undefined : parseInt(value, 10);
|
|
544
550
|
};
|
|
545
|
-
var eventToValue$
|
|
551
|
+
var eventToValue$2 = function (ev) { return toNumber$1(ev.target.value); };
|
|
546
552
|
var MuiInputInteger = React__default["default"].memo(function (props) {
|
|
547
553
|
var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
|
|
548
554
|
var inputProps = { step: '1' };
|
|
549
555
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
550
|
-
var _a = useDebouncedChange(handleChange, '', data, path, eventToValue$
|
|
556
|
+
var _a = useDebouncedChange(handleChange, '', data, path, eventToValue$2), inputValue = _a[0], onChange = _a[1];
|
|
551
557
|
return (React__default["default"].createElement(material.Input, { type: 'number', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, inputProps: inputProps, fullWidth: true }));
|
|
552
558
|
});
|
|
553
559
|
|
|
554
560
|
var toNumber = function (value) {
|
|
555
561
|
return value === '' ? undefined : parseFloat(value);
|
|
556
562
|
};
|
|
557
|
-
var eventToValue = function (ev) { return toNumber(ev.target.value); };
|
|
563
|
+
var eventToValue$1 = function (ev) { return toNumber(ev.target.value); };
|
|
558
564
|
var MuiInputNumber = React__default["default"].memo(function (props) {
|
|
559
565
|
var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
|
|
560
566
|
var inputProps = { step: '0.1' };
|
|
561
567
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
562
|
-
var _a = useDebouncedChange(handleChange, '', data, path, eventToValue), inputValue = _a[0], onChange = _a[1];
|
|
568
|
+
var _a = useDebouncedChange(handleChange, '', data, path, eventToValue$1), inputValue = _a[0], onChange = _a[1];
|
|
563
569
|
return (React__default["default"].createElement(material.Input, { type: 'number', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, inputProps: inputProps, fullWidth: true }));
|
|
564
570
|
});
|
|
565
571
|
|
|
@@ -580,6 +586,7 @@ var MuiInputNumberFormat = React__default["default"].memo(function (props) {
|
|
|
580
586
|
return (React__default["default"].createElement(material.Input, { type: 'text', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, multiline: appliedUiSchemaOptions.multi, fullWidth: !appliedUiSchemaOptions.trim || maxLength === undefined, inputProps: inputProps, error: !isValid }));
|
|
581
587
|
});
|
|
582
588
|
|
|
589
|
+
var eventToValue = function (ev) { return ev.target.value === '' ? undefined : ev.target.value; };
|
|
583
590
|
var MuiInputText = React__default["default"].memo(function (props) {
|
|
584
591
|
var _a, _b, _c;
|
|
585
592
|
var _d = React.useState(false), showAdornment = _d[0], setShowAdornment = _d[1];
|
|
@@ -597,7 +604,7 @@ var MuiInputText = React__default["default"].memo(function (props) {
|
|
|
597
604
|
if (appliedUiSchemaOptions.trim && maxLength !== undefined) {
|
|
598
605
|
inputProps.size = maxLength;
|
|
599
606
|
}
|
|
600
|
-
var _e = useDebouncedChange(handleChange, '', data, path), inputText = _e[0], onChange = _e[1], onClear = _e[2];
|
|
607
|
+
var _e = useDebouncedChange(handleChange, '', data, path, eventToValue), inputText = _e[0], onChange = _e[1], onClear = _e[2];
|
|
601
608
|
var onPointerEnter = function () { return setShowAdornment(true); };
|
|
602
609
|
var onPointerLeave = function () { return setShowAdornment(false); };
|
|
603
610
|
var theme = material.useTheme();
|
|
@@ -661,12 +668,11 @@ var materialArrayControlTester = core.rankWith(3, core.or(core.isObjectArrayCont
|
|
|
661
668
|
|
|
662
669
|
var materialLabelRendererTester = core.rankWith(1, core.uiTypeIs('Label'));
|
|
663
670
|
var MaterialLabelRenderer = function (_a) {
|
|
664
|
-
var
|
|
665
|
-
var labelElement = uischema;
|
|
671
|
+
var text = _a.text, visible = _a.visible;
|
|
666
672
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
667
|
-
React__default["default"].createElement(material.Typography, { variant: 'h6' },
|
|
673
|
+
React__default["default"].createElement(material.Typography, { variant: 'h6' }, text)));
|
|
668
674
|
};
|
|
669
|
-
var MaterialLabelRenderer$1 = react.
|
|
675
|
+
var MaterialLabelRenderer$1 = react.withJsonFormsLabelProps(MaterialLabelRenderer);
|
|
670
676
|
|
|
671
677
|
var ArrayLayoutToolbar = React__default["default"].memo(function (_a) {
|
|
672
678
|
var label = _a.label, errors = _a.errors, addItem = _a.addItem, path = _a.path, createDefault = _a.createDefault;
|
|
@@ -772,24 +778,40 @@ var MaterialInputControl = function (props) {
|
|
|
772
778
|
|
|
773
779
|
var MuiAutocomplete = function (props) {
|
|
774
780
|
var _a;
|
|
775
|
-
var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, options = props.options, config = props.config, getOptionLabel = props.getOptionLabel, renderOption = props.renderOption, filterOptions = props.filterOptions;
|
|
781
|
+
var description = props.description, errors = props.errors, visible = props.visible, required = props.required, label = props.label, data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, options = props.options, config = props.config, getOptionLabel = props.getOptionLabel, renderOption = props.renderOption, filterOptions = props.filterOptions, isValid = props.isValid;
|
|
776
782
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
777
783
|
var _b = React__default["default"].useState(data !== null && data !== void 0 ? data : ''), inputValue = _b[0], setInputValue = _b[1];
|
|
784
|
+
var _c = useFocus(), focused = _c[0], onFocus = _c[1], onBlur = _c[2];
|
|
778
785
|
var findOption = (_a = options.find(function (o) { return o.value === data; })) !== null && _a !== void 0 ? _a : null;
|
|
779
|
-
|
|
780
|
-
|
|
781
|
-
|
|
782
|
-
|
|
783
|
-
|
|
786
|
+
var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
787
|
+
var firstFormHelperText = showDescription
|
|
788
|
+
? description
|
|
789
|
+
: !isValid
|
|
790
|
+
? errors
|
|
791
|
+
: null;
|
|
792
|
+
var secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
793
|
+
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
794
|
+
React__default["default"].createElement(material.Autocomplete, { className: className, id: id, disabled: !enabled, value: findOption, onChange: function (_event, newValue) {
|
|
795
|
+
handleChange(path, newValue === null || newValue === void 0 ? void 0 : newValue.value);
|
|
796
|
+
}, inputValue: inputValue, onInputChange: function (_event, newInputValue) {
|
|
797
|
+
setInputValue(newInputValue);
|
|
798
|
+
}, autoHighlight: true, autoSelect: true, autoComplete: true, fullWidth: true, options: options, getOptionLabel: getOptionLabel || (function (option) { return option === null || option === void 0 ? void 0 : option.label; }), freeSolo: false, renderInput: function (params) {
|
|
799
|
+
return (React__default["default"].createElement(material.TextField, __assign({ label: label, variant: 'standard', type: 'text', inputProps: params.inputProps, inputRef: params.InputProps.ref, autoFocus: appliedUiSchemaOptions.focus, disabled: !enabled }, params, { id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, focused: focused })));
|
|
800
|
+
}, renderOption: renderOption, filterOptions: filterOptions }),
|
|
801
|
+
React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
802
|
+
React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText)));
|
|
784
803
|
};
|
|
785
804
|
|
|
786
805
|
var MaterialEnumControl = function (props) {
|
|
787
|
-
var config = props.config, uischema = props.uischema;
|
|
806
|
+
var config = props.config, uischema = props.uischema, errors = props.errors;
|
|
788
807
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
789
|
-
|
|
808
|
+
var isValid = errors.length === 0;
|
|
809
|
+
return (appliedUiSchemaOptions.autocomplete === false ?
|
|
810
|
+
React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: MuiSelect })) :
|
|
811
|
+
React__default["default"].createElement(MuiAutocomplete, __assign({}, props, { isValid: isValid })));
|
|
790
812
|
};
|
|
791
813
|
var materialEnumControlTester = core.rankWith(2, core.isEnumControl);
|
|
792
|
-
var MaterialEnumControl$1 = react.withJsonFormsEnumProps(MaterialEnumControl);
|
|
814
|
+
var MaterialEnumControl$1 = react.withJsonFormsEnumProps(react.withTranslateProps(React__default["default"].memo(MaterialEnumControl)), false);
|
|
793
815
|
|
|
794
816
|
var MaterialNativeControl = function (props) {
|
|
795
817
|
var _a;
|
|
@@ -1006,12 +1028,15 @@ var materialAnyOfStringOrEnumControlTester = core.rankWith(5, simpleAnyOf);
|
|
|
1006
1028
|
var MaterialAnyOfStringOrEnumControl$1 = react.withJsonFormsControlProps(MaterialAnyOfStringOrEnumControl);
|
|
1007
1029
|
|
|
1008
1030
|
var MaterialOneOfEnumControl = function (props) {
|
|
1009
|
-
var config = props.config, uischema = props.uischema;
|
|
1031
|
+
var config = props.config, uischema = props.uischema, errors = props.errors;
|
|
1010
1032
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
1011
|
-
|
|
1033
|
+
var isValid = errors.length === 0;
|
|
1034
|
+
return (appliedUiSchemaOptions.autocomplete === false ?
|
|
1035
|
+
React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: MuiSelect })) :
|
|
1036
|
+
React__default["default"].createElement(MuiAutocomplete, __assign({}, props, { isValid: isValid })));
|
|
1012
1037
|
};
|
|
1013
1038
|
var materialOneOfEnumControlTester = core.rankWith(5, core.isOneOfEnumControl);
|
|
1014
|
-
var MaterialOneOfEnumControl$1 = react.withJsonFormsOneOfEnumProps(MaterialOneOfEnumControl);
|
|
1039
|
+
var MaterialOneOfEnumControl$1 = react.withJsonFormsOneOfEnumProps(react.withTranslateProps(React__default["default"].memo(MaterialOneOfEnumControl)), false);
|
|
1015
1040
|
|
|
1016
1041
|
var MaterialOneOfRadioGroupControl = function (props) {
|
|
1017
1042
|
return React__default["default"].createElement(MaterialRadioGroup, __assign({}, props));
|
|
@@ -1040,18 +1065,18 @@ var Unwrapped = {
|
|
|
1040
1065
|
var groupTester = core.rankWith(1, core.uiTypeIs('Group'));
|
|
1041
1066
|
var style = { marginBottom: '10px' };
|
|
1042
1067
|
var GroupComponent = React__default["default"].memo(function (_a) {
|
|
1043
|
-
var visible = _a.visible, enabled = _a.enabled, uischema = _a.uischema, props = __rest(_a, ["visible", "enabled", "uischema"]);
|
|
1068
|
+
var visible = _a.visible, enabled = _a.enabled, uischema = _a.uischema, label = _a.label, props = __rest(_a, ["visible", "enabled", "uischema", "label"]);
|
|
1044
1069
|
var groupLayout = uischema;
|
|
1045
1070
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1046
1071
|
React__default["default"].createElement(material.Card, { style: style },
|
|
1047
|
-
!isEmpty__default["default"](
|
|
1072
|
+
!isEmpty__default["default"](label) && (React__default["default"].createElement(material.CardHeader, { title: label })),
|
|
1048
1073
|
React__default["default"].createElement(material.CardContent, null,
|
|
1049
1074
|
React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, props, { visible: visible, enabled: enabled, elements: groupLayout.elements }))))));
|
|
1050
1075
|
});
|
|
1051
1076
|
var MaterializedGroupLayoutRenderer = function (_a) {
|
|
1052
|
-
var uischema = _a.uischema, schema = _a.schema, path = _a.path, visible = _a.visible, enabled = _a.enabled, renderers = _a.renderers, cells = _a.cells, direction = _a.direction;
|
|
1077
|
+
var uischema = _a.uischema, schema = _a.schema, path = _a.path, visible = _a.visible, enabled = _a.enabled, renderers = _a.renderers, cells = _a.cells, direction = _a.direction, label = _a.label;
|
|
1053
1078
|
var groupLayout = uischema;
|
|
1054
|
-
return (React__default["default"].createElement(GroupComponent, { elements: groupLayout.elements, schema: schema, path: path, direction: direction, visible: visible, enabled: enabled, uischema: uischema, renderers: renderers, cells: cells }));
|
|
1079
|
+
return (React__default["default"].createElement(GroupComponent, { elements: groupLayout.elements, schema: schema, path: path, direction: direction, visible: visible, enabled: enabled, uischema: uischema, renderers: renderers, cells: cells, label: label }));
|
|
1055
1080
|
};
|
|
1056
1081
|
var MaterialGroupLayout = react.withJsonFormsLayoutProps(MaterializedGroupLayoutRenderer);
|
|
1057
1082
|
var materialGroupTester = core.withIncreasedRank(1, groupTester);
|
|
@@ -1095,12 +1120,12 @@ var isSingleLevelCategorization = core.and(core.uiTypeIs('Categorization'), func
|
|
|
1095
1120
|
});
|
|
1096
1121
|
var materialCategorizationTester = core.rankWith(1, isSingleLevelCategorization);
|
|
1097
1122
|
var MaterialCategorizationLayoutRenderer = function (props) {
|
|
1098
|
-
var data = props.data, path = props.path, renderers = props.renderers, cells = props.cells, schema = props.schema, uischema = props.uischema, visible = props.visible, enabled = props.enabled, selected = props.selected, onChange = props.onChange, ajv = props.ajv;
|
|
1123
|
+
var data = props.data, path = props.path, renderers = props.renderers, cells = props.cells, schema = props.schema, uischema = props.uischema, visible = props.visible, enabled = props.enabled, selected = props.selected, onChange = props.onChange, ajv = props.ajv, t = props.t;
|
|
1099
1124
|
var categorization = uischema;
|
|
1100
1125
|
var _a = React.useState(selected !== null && selected !== void 0 ? selected : 0), activeCategory = _a[0], setActiveCategory = _a[1];
|
|
1101
|
-
var categories = categorization.elements.filter(function (category) {
|
|
1126
|
+
var categories = React.useMemo(function () { return categorization.elements.filter(function (category) {
|
|
1102
1127
|
return core.isVisible(category, data, undefined, ajv);
|
|
1103
|
-
});
|
|
1128
|
+
}); }, [categorization, data, ajv]);
|
|
1104
1129
|
var childProps = {
|
|
1105
1130
|
elements: categories[activeCategory].elements,
|
|
1106
1131
|
schema: schema,
|
|
@@ -1117,13 +1142,18 @@ var MaterialCategorizationLayoutRenderer = function (props) {
|
|
|
1117
1142
|
}
|
|
1118
1143
|
setActiveCategory(value);
|
|
1119
1144
|
};
|
|
1145
|
+
var tabLabels = React.useMemo(function () {
|
|
1146
|
+
return categories.map(function (e) {
|
|
1147
|
+
return core.deriveLabelForUISchemaElement(e, t);
|
|
1148
|
+
});
|
|
1149
|
+
}, [categories, t]);
|
|
1120
1150
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1121
1151
|
React__default["default"].createElement(material.AppBar, { position: 'static' },
|
|
1122
|
-
React__default["default"].createElement(material.Tabs, { value: activeCategory, onChange: onTabChange, textColor: 'inherit', indicatorColor: 'secondary', variant: 'scrollable' }, categories.map(function (
|
|
1152
|
+
React__default["default"].createElement(material.Tabs, { value: activeCategory, onChange: onTabChange, textColor: 'inherit', indicatorColor: 'secondary', variant: 'scrollable' }, categories.map(function (_, idx) { return (React__default["default"].createElement(material.Tab, { key: idx, label: tabLabels[idx] })); }))),
|
|
1123
1153
|
React__default["default"].createElement("div", { style: { marginTop: '0.5em' } },
|
|
1124
1154
|
React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps)))));
|
|
1125
1155
|
};
|
|
1126
|
-
var MaterialCategorizationLayout = react.withJsonFormsLayoutProps(
|
|
1156
|
+
var MaterialCategorizationLayout = withAjvProps(react.withTranslateProps(react.withJsonFormsLayoutProps(MaterialCategorizationLayoutRenderer)));
|
|
1127
1157
|
|
|
1128
1158
|
var iconStyle = { float: 'right' };
|
|
1129
1159
|
var ExpandPanelRendererComponent = function (props) {
|
|
@@ -1260,7 +1290,7 @@ var MaterialDateCell$1 = react.withJsonFormsCellProps(MaterialDateCell);
|
|
|
1260
1290
|
|
|
1261
1291
|
var MaterialEnumCell = function (props) { return (React__default["default"].createElement(MuiSelect, __assign({}, props))); };
|
|
1262
1292
|
var materialEnumCellTester = core.rankWith(2, core.isEnumControl);
|
|
1263
|
-
var MaterialEnumCell$1 = react.withJsonFormsEnumCellProps(MaterialEnumCell);
|
|
1293
|
+
var MaterialEnumCell$1 = react.withJsonFormsEnumCellProps(react.withTranslateProps(React__default["default"].memo(MaterialEnumCell)), false);
|
|
1264
1294
|
|
|
1265
1295
|
var MaterialIntegerCell = function (props) { return (React__default["default"].createElement(MuiInputInteger, __assign({}, props))); };
|
|
1266
1296
|
var materialIntegerCellTester = core.rankWith(2, core.isIntegerControl);
|
|
@@ -1276,7 +1306,7 @@ var MaterialNumberFormatCell$1 = react.withJsonFormsCellProps(MaterialNumberForm
|
|
|
1276
1306
|
|
|
1277
1307
|
var MaterialOneOfEnumCell = function (props) { return (React__default["default"].createElement(MuiSelect, __assign({}, props))); };
|
|
1278
1308
|
var materialOneOfEnumCellTester = core.rankWith(2, core.isOneOfEnumControl);
|
|
1279
|
-
var MaterialOneOfEnumCell$1 = react.withJsonFormsOneOfEnumCellProps(MaterialOneOfEnumCell);
|
|
1309
|
+
var MaterialOneOfEnumCell$1 = react.withJsonFormsOneOfEnumCellProps(react.withTranslateProps(React__default["default"].memo(MaterialOneOfEnumCell)), false);
|
|
1280
1310
|
|
|
1281
1311
|
var MaterialTextCell = function (props) { return (React__default["default"].createElement(MuiInputText, __assign({}, props))); };
|
|
1282
1312
|
var materialTextCellTester = core.rankWith(1, core.isStringControl);
|
|
@@ -1305,7 +1335,7 @@ var MaterialCategorizationStepperLayoutRenderer = function (props) {
|
|
|
1305
1335
|
var handleStep = function (step) {
|
|
1306
1336
|
setActiveCategory(step);
|
|
1307
1337
|
};
|
|
1308
|
-
var data = props.data, path = props.path, renderers = props.renderers, schema = props.schema, uischema = props.uischema, visible = props.visible, cells = props.cells, config = props.config, ajv = props.ajv;
|
|
1338
|
+
var data = props.data, path = props.path, renderers = props.renderers, schema = props.schema, uischema = props.uischema, visible = props.visible, cells = props.cells, config = props.config, ajv = props.ajv, t = props.t;
|
|
1309
1339
|
var categorization = uischema;
|
|
1310
1340
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
1311
1341
|
var buttonWrapperStyle = {
|
|
@@ -1319,9 +1349,9 @@ var MaterialCategorizationStepperLayoutRenderer = function (props) {
|
|
|
1319
1349
|
var buttonStyle = {
|
|
1320
1350
|
marginRight: '1em'
|
|
1321
1351
|
};
|
|
1322
|
-
var categories = categorization.elements.filter(function (category) {
|
|
1352
|
+
var categories = React.useMemo(function () { return categorization.elements.filter(function (category) {
|
|
1323
1353
|
return core.isVisible(category, data, undefined, ajv);
|
|
1324
|
-
});
|
|
1354
|
+
}); }, [categorization, data, ajv]);
|
|
1325
1355
|
var childProps = {
|
|
1326
1356
|
elements: categories[activeCategory].elements,
|
|
1327
1357
|
schema: schema,
|
|
@@ -1331,16 +1361,21 @@ var MaterialCategorizationStepperLayoutRenderer = function (props) {
|
|
|
1331
1361
|
renderers: renderers,
|
|
1332
1362
|
cells: cells
|
|
1333
1363
|
};
|
|
1364
|
+
var tabLabels = React.useMemo(function () {
|
|
1365
|
+
return categories.map(function (e) {
|
|
1366
|
+
return core.deriveLabelForUISchemaElement(e, t);
|
|
1367
|
+
});
|
|
1368
|
+
}, [categories, t]);
|
|
1334
1369
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1335
|
-
React__default["default"].createElement(material.Stepper, { activeStep: activeCategory, nonLinear: true }, categories.map(function (
|
|
1336
|
-
React__default["default"].createElement(material.StepButton, { onClick: function () { return handleStep(idx); } },
|
|
1370
|
+
React__default["default"].createElement(material.Stepper, { activeStep: activeCategory, nonLinear: true }, categories.map(function (_, idx) { return (React__default["default"].createElement(material.Step, { key: tabLabels[idx] },
|
|
1371
|
+
React__default["default"].createElement(material.StepButton, { onClick: function () { return handleStep(idx); } }, tabLabels[idx]))); })),
|
|
1337
1372
|
React__default["default"].createElement("div", null,
|
|
1338
1373
|
React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps))),
|
|
1339
1374
|
!!appliedUiSchemaOptions.showNavButtons ? (React__default["default"].createElement("div", { style: buttonWrapperStyle },
|
|
1340
1375
|
React__default["default"].createElement(material.Button, { style: buttonNextStyle, variant: "contained", color: "primary", disabled: activeCategory >= categories.length - 1, onClick: function () { return handleStep(activeCategory + 1); } }, "Next"),
|
|
1341
1376
|
React__default["default"].createElement(material.Button, { style: buttonStyle, color: "secondary", variant: "contained", disabled: activeCategory <= 0, onClick: function () { return handleStep(activeCategory - 1); } }, "Previous"))) : (React__default["default"].createElement(React__default["default"].Fragment, null))));
|
|
1342
1377
|
};
|
|
1343
|
-
var MaterialCategorizationStepperLayout = react.withJsonFormsLayoutProps(
|
|
1378
|
+
var MaterialCategorizationStepperLayout = withAjvProps(react.withTranslateProps(react.withJsonFormsLayoutProps(MaterialCategorizationStepperLayoutRenderer)));
|
|
1344
1379
|
|
|
1345
1380
|
var materialRenderers = [
|
|
1346
1381
|
{
|
|
@@ -1463,6 +1498,7 @@ exports.ResettableTextField = ResettableTextField;
|
|
|
1463
1498
|
exports.Unwrapped = Unwrapped;
|
|
1464
1499
|
exports.createOnChangeHandler = createOnChangeHandler;
|
|
1465
1500
|
exports.getData = getData;
|
|
1501
|
+
exports.i18nDefaults = i18nDefaults;
|
|
1466
1502
|
exports.materialAllOfControlTester = materialAllOfControlTester;
|
|
1467
1503
|
exports.materialAnyOfControlTester = materialAnyOfControlTester;
|
|
1468
1504
|
exports.materialAnyOfStringOrEnumControlTester = materialAnyOfStringOrEnumControlTester;
|