@jsonforms/material-renderers 3.0.0-beta.3 → 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/README.md +71 -13
- package/docs/assets/js/search.json +1 -1
- package/docs/globals.html +174 -80
- package/docs/index.html +85 -13
- package/docs/interfaces/categorizationstate.html +1 -1
- package/docs/interfaces/categorizationstepperstate.html +1 -1
- package/docs/interfaces/inputref.html +168 -0
- 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 +125 -61
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +124 -58
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +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/datejs.d.ts +17 -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 +7 -7
- package/src/additional/MaterialLabelRenderer.tsx +5 -7
- package/src/cells/MaterialEnumCell.tsx +4 -3
- package/src/cells/MaterialOneOfEnumCell.tsx +3 -3
- package/src/complex/MaterialTableControl.tsx +1 -1
- package/src/controls/MaterialDateControl.tsx +23 -6
- package/src/controls/MaterialDateTimeControl.tsx +23 -6
- package/src/controls/MaterialEnumControl.tsx +12 -5
- package/src/controls/MaterialOneOfEnumControl.tsx +13 -5
- package/src/controls/MaterialTimeControl.tsx +24 -7
- package/src/layouts/ExpandPanelRenderer.tsx +2 -1
- package/src/layouts/MaterialArrayLayoutRenderer.tsx +3 -25
- 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 -37
- package/src/mui-controls/MuiInputText.tsx +4 -1
- package/src/mui-controls/MuiSelect.tsx +10 -5
- package/src/util/datejs.tsx +73 -0
- 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 +36 -5
- package/test/renderers/MaterialCategorizationLayout.test.tsx +17 -7
- package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +21 -11
- package/test/renderers/MaterialDateControl.test.tsx +27 -0
- package/test/renderers/MaterialDateTimeControl.test.tsx +27 -0
- 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/MaterialTimeControl.test.tsx +27 -0
- package/test/renderers/util.ts +5 -0
- package/src/util/datejs.ts +0 -32
|
@@ -270,7 +270,7 @@ var TableRows = function (_a) {
|
|
|
270
270
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
271
271
|
return (React__default["default"].createElement(React__default["default"].Fragment, null, range__default["default"](data).map(function (index) {
|
|
272
272
|
var childPath = core.Paths.compose(path, "" + index);
|
|
273
|
-
return (React__default["default"].createElement(NonEmptyRow, { key: childPath, childPath: childPath, rowIndex: index, schema: schema, openDeleteDialog: openDeleteDialog, moveUpCreator: moveUp, moveDownCreator: moveDown, enableUp: index !== 0, enableDown: index !== data - 1, showSortButtons: appliedUiSchemaOptions.showSortButtons, enabled: enabled, cells: cells, path: path }));
|
|
273
|
+
return (React__default["default"].createElement(NonEmptyRow, { key: childPath, childPath: childPath, rowIndex: index, schema: schema, openDeleteDialog: openDeleteDialog, moveUpCreator: moveUp, moveDownCreator: moveDown, enableUp: index !== 0, enableDown: index !== data - 1, showSortButtons: appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayTableSortButtons, enabled: enabled, cells: cells, path: path }));
|
|
274
274
|
})));
|
|
275
275
|
};
|
|
276
276
|
var MaterialTableControl = (function (_super) {
|
|
@@ -448,20 +448,14 @@ 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
|
-
var createOnChangeHandler = function (path, handleChange, saveFormat) { return function (time) {
|
|
452
|
+
var createOnChangeHandler = function (path, handleChange, saveFormat) { return function (time, textInputValue) {
|
|
459
453
|
if (!time) {
|
|
460
454
|
handleChange(path, undefined);
|
|
461
455
|
return;
|
|
462
456
|
}
|
|
463
457
|
var result = dayjs__default["default"](time).format(saveFormat);
|
|
464
|
-
handleChange(path, result === 'Invalid Date' ?
|
|
458
|
+
handleChange(path, result === 'Invalid Date' ? textInputValue : result);
|
|
465
459
|
}; };
|
|
466
460
|
var getData = function (data, saveFormat) {
|
|
467
461
|
if (!data) {
|
|
@@ -473,6 +467,23 @@ var getData = function (data, saveFormat) {
|
|
|
473
467
|
}
|
|
474
468
|
return dayjsData;
|
|
475
469
|
};
|
|
470
|
+
var ResettableTextField = function (_a) {
|
|
471
|
+
var rawValue = _a.rawValue, dayjsValueIsValid = _a.dayjsValueIsValid, valueInInputFormat = _a.valueInInputFormat, focused = _a.focused, inputProps = _a.inputProps, props = __rest(_a, ["rawValue", "dayjsValueIsValid", "valueInInputFormat", "focused", "inputProps"]);
|
|
472
|
+
var value = React.useRef({ lastInput: inputProps === null || inputProps === void 0 ? void 0 : inputProps.value, toShow: inputProps === null || inputProps === void 0 ? void 0 : inputProps.value });
|
|
473
|
+
if (!focused) {
|
|
474
|
+
if (!dayjsValueIsValid) {
|
|
475
|
+
value.current.toShow = typeof rawValue === 'string' || rawValue === null || rawValue === undefined ? rawValue : JSON.stringify(rawValue);
|
|
476
|
+
}
|
|
477
|
+
else {
|
|
478
|
+
value.current.toShow = valueInInputFormat;
|
|
479
|
+
}
|
|
480
|
+
}
|
|
481
|
+
if (focused && (inputProps === null || inputProps === void 0 ? void 0 : inputProps.value) !== value.current.lastInput) {
|
|
482
|
+
value.current.lastInput = inputProps === null || inputProps === void 0 ? void 0 : inputProps.value;
|
|
483
|
+
value.current.toShow = inputProps === null || inputProps === void 0 ? void 0 : inputProps.value;
|
|
484
|
+
}
|
|
485
|
+
return React__default["default"].createElement(material.TextField, __assign({}, props, { inputProps: __assign(__assign({}, inputProps), { value: value.current.toShow || '' }) }));
|
|
486
|
+
};
|
|
476
487
|
|
|
477
488
|
var renderLayoutElements = function (elements, schema, path, enabled, renderers, cells) {
|
|
478
489
|
return elements.map(function (child, index) { return (React__default["default"].createElement(material.Grid, { item: true, key: path + "-" + index, xs: true },
|
|
@@ -497,9 +508,9 @@ var withAjvProps = function (Component) {
|
|
|
497
508
|
};
|
|
498
509
|
};
|
|
499
510
|
|
|
500
|
-
var eventToValue$
|
|
511
|
+
var eventToValue$3 = function (ev) { return ev.target.value; };
|
|
501
512
|
var useDebouncedChange = function (handleChange, defaultValue, data, path, eventToValueFunction, timeout) {
|
|
502
|
-
if (eventToValueFunction === void 0) { eventToValueFunction = eventToValue$
|
|
513
|
+
if (eventToValueFunction === void 0) { eventToValueFunction = eventToValue$3; }
|
|
503
514
|
if (timeout === void 0) { timeout = 300; }
|
|
504
515
|
var _a = React.useState(data !== null && data !== void 0 ? data : defaultValue), input = _a[0], setInput = _a[1];
|
|
505
516
|
React.useEffect(function () {
|
|
@@ -522,27 +533,39 @@ var useFocus = function () {
|
|
|
522
533
|
return [focused, onFocus, onBlur];
|
|
523
534
|
};
|
|
524
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
|
+
|
|
525
548
|
var toNumber$1 = function (value) {
|
|
526
549
|
return value === '' ? undefined : parseInt(value, 10);
|
|
527
550
|
};
|
|
528
|
-
var eventToValue$
|
|
551
|
+
var eventToValue$2 = function (ev) { return toNumber$1(ev.target.value); };
|
|
529
552
|
var MuiInputInteger = React__default["default"].memo(function (props) {
|
|
530
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;
|
|
531
554
|
var inputProps = { step: '1' };
|
|
532
555
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
533
|
-
var _a = useDebouncedChange(handleChange, '', data, path, eventToValue$
|
|
556
|
+
var _a = useDebouncedChange(handleChange, '', data, path, eventToValue$2), inputValue = _a[0], onChange = _a[1];
|
|
534
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 }));
|
|
535
558
|
});
|
|
536
559
|
|
|
537
560
|
var toNumber = function (value) {
|
|
538
561
|
return value === '' ? undefined : parseFloat(value);
|
|
539
562
|
};
|
|
540
|
-
var eventToValue = function (ev) { return toNumber(ev.target.value); };
|
|
563
|
+
var eventToValue$1 = function (ev) { return toNumber(ev.target.value); };
|
|
541
564
|
var MuiInputNumber = React__default["default"].memo(function (props) {
|
|
542
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;
|
|
543
566
|
var inputProps = { step: '0.1' };
|
|
544
567
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
545
|
-
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];
|
|
546
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 }));
|
|
547
570
|
});
|
|
548
571
|
|
|
@@ -563,6 +586,7 @@ var MuiInputNumberFormat = React__default["default"].memo(function (props) {
|
|
|
563
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 }));
|
|
564
587
|
});
|
|
565
588
|
|
|
589
|
+
var eventToValue = function (ev) { return ev.target.value === '' ? undefined : ev.target.value; };
|
|
566
590
|
var MuiInputText = React__default["default"].memo(function (props) {
|
|
567
591
|
var _a, _b, _c;
|
|
568
592
|
var _d = React.useState(false), showAdornment = _d[0], setShowAdornment = _d[1];
|
|
@@ -580,7 +604,7 @@ var MuiInputText = React__default["default"].memo(function (props) {
|
|
|
580
604
|
if (appliedUiSchemaOptions.trim && maxLength !== undefined) {
|
|
581
605
|
inputProps.size = maxLength;
|
|
582
606
|
}
|
|
583
|
-
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];
|
|
584
608
|
var onPointerEnter = function () { return setShowAdornment(true); };
|
|
585
609
|
var onPointerLeave = function () { return setShowAdornment(false); };
|
|
586
610
|
var theme = material.useTheme();
|
|
@@ -644,12 +668,11 @@ var materialArrayControlTester = core.rankWith(3, core.or(core.isObjectArrayCont
|
|
|
644
668
|
|
|
645
669
|
var materialLabelRendererTester = core.rankWith(1, core.uiTypeIs('Label'));
|
|
646
670
|
var MaterialLabelRenderer = function (_a) {
|
|
647
|
-
var
|
|
648
|
-
var labelElement = uischema;
|
|
671
|
+
var text = _a.text, visible = _a.visible;
|
|
649
672
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
650
|
-
React__default["default"].createElement(material.Typography, { variant: 'h6' },
|
|
673
|
+
React__default["default"].createElement(material.Typography, { variant: 'h6' }, text)));
|
|
651
674
|
};
|
|
652
|
-
var MaterialLabelRenderer$1 = react.
|
|
675
|
+
var MaterialLabelRenderer$1 = react.withJsonFormsLabelProps(MaterialLabelRenderer);
|
|
653
676
|
|
|
654
677
|
var ArrayLayoutToolbar = React__default["default"].memo(function (_a) {
|
|
655
678
|
var label = _a.label, errors = _a.errors, addItem = _a.addItem, path = _a.path, createDefault = _a.createDefault;
|
|
@@ -755,24 +778,40 @@ var MaterialInputControl = function (props) {
|
|
|
755
778
|
|
|
756
779
|
var MuiAutocomplete = function (props) {
|
|
757
780
|
var _a;
|
|
758
|
-
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;
|
|
759
782
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
760
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];
|
|
761
785
|
var findOption = (_a = options.find(function (o) { return o.value === data; })) !== null && _a !== void 0 ? _a : null;
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
|
|
766
|
-
|
|
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)));
|
|
767
803
|
};
|
|
768
804
|
|
|
769
805
|
var MaterialEnumControl = function (props) {
|
|
770
|
-
var config = props.config, uischema = props.uischema;
|
|
806
|
+
var config = props.config, uischema = props.uischema, errors = props.errors;
|
|
771
807
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
772
|
-
|
|
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 })));
|
|
773
812
|
};
|
|
774
813
|
var materialEnumControlTester = core.rankWith(2, core.isEnumControl);
|
|
775
|
-
var MaterialEnumControl$1 = react.withJsonFormsEnumProps(MaterialEnumControl);
|
|
814
|
+
var MaterialEnumControl$1 = react.withJsonFormsEnumProps(react.withTranslateProps(React__default["default"].memo(MaterialEnumControl)), false);
|
|
776
815
|
|
|
777
816
|
var MaterialNativeControl = function (props) {
|
|
778
817
|
var _a;
|
|
@@ -790,14 +829,15 @@ var materialNativeControlTester = core.rankWith(2, core.or(core.isDateControl, c
|
|
|
790
829
|
var MaterialNativeControl$1 = react.withJsonFormsControlProps(MaterialNativeControl);
|
|
791
830
|
|
|
792
831
|
var MaterialDateControl = function (props) {
|
|
793
|
-
var _a, _b;
|
|
794
|
-
var
|
|
832
|
+
var _a, _b, _c;
|
|
833
|
+
var _d = useFocus(), focused = _d[0], onFocus = _d[1], onBlur = _d[2];
|
|
795
834
|
var description = props.description, id = props.id, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, enabled = props.enabled, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
|
|
796
835
|
var isValid = errors.length === 0;
|
|
797
836
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
798
837
|
var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
799
838
|
var format = (_a = appliedUiSchemaOptions.dateFormat) !== null && _a !== void 0 ? _a : 'YYYY-MM-DD';
|
|
800
839
|
var saveFormat = (_b = appliedUiSchemaOptions.dateSaveFormat) !== null && _b !== void 0 ? _b : 'YYYY-MM-DD';
|
|
840
|
+
var views = (_c = appliedUiSchemaOptions.views) !== null && _c !== void 0 ? _c : ['year', 'day'];
|
|
801
841
|
var firstFormHelperText = showDescription
|
|
802
842
|
? description
|
|
803
843
|
: !isValid
|
|
@@ -805,9 +845,11 @@ var MaterialDateControl = function (props) {
|
|
|
805
845
|
: null;
|
|
806
846
|
var secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
807
847
|
var onChange = React.useMemo(function () { return createOnChangeHandler(path, handleChange, saveFormat); }, [path, handleChange, saveFormat]);
|
|
848
|
+
var value = getData(data, saveFormat);
|
|
849
|
+
var valueInInputFormat = value ? value.format(format) : '';
|
|
808
850
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
809
851
|
React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
|
|
810
|
-
React__default["default"].createElement(lab.DatePicker, { label: label, value:
|
|
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' }))); } }),
|
|
811
853
|
React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
812
854
|
React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
813
855
|
};
|
|
@@ -815,14 +857,15 @@ var materialDateControlTester = core.rankWith(4, core.isDateControl);
|
|
|
815
857
|
var MaterialDateControl$1 = react.withJsonFormsControlProps(MaterialDateControl);
|
|
816
858
|
|
|
817
859
|
var MaterialDateTimeControl = function (props) {
|
|
818
|
-
var _a, _b;
|
|
819
|
-
var
|
|
860
|
+
var _a, _b, _c;
|
|
861
|
+
var _d = useFocus(), focused = _d[0], onFocus = _d[1], onBlur = _d[2];
|
|
820
862
|
var id = props.id, description = props.description, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, enabled = props.enabled, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
|
|
821
863
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
822
864
|
var isValid = errors.length === 0;
|
|
823
865
|
var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
824
866
|
var format = (_a = appliedUiSchemaOptions.dateTimeFormat) !== null && _a !== void 0 ? _a : 'YYYY-MM-DD HH:mm';
|
|
825
867
|
var saveFormat = (_b = appliedUiSchemaOptions.dateTimeSaveFormat) !== null && _b !== void 0 ? _b : undefined;
|
|
868
|
+
var views = (_c = appliedUiSchemaOptions.views) !== null && _c !== void 0 ? _c : ['year', 'day', 'hours', 'minutes'];
|
|
826
869
|
var firstFormHelperText = showDescription
|
|
827
870
|
? description
|
|
828
871
|
: !isValid
|
|
@@ -830,9 +873,11 @@ var MaterialDateTimeControl = function (props) {
|
|
|
830
873
|
: null;
|
|
831
874
|
var secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
832
875
|
var onChange = React.useMemo(function () { return createOnChangeHandler(path, handleChange, saveFormat); }, [path, handleChange, saveFormat]);
|
|
876
|
+
var value = getData(data, saveFormat);
|
|
877
|
+
var valueInInputFormat = value ? value.format(format) : '';
|
|
833
878
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
834
879
|
React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
|
|
835
|
-
React__default["default"].createElement(lab.DateTimePicker, { label: label, value:
|
|
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' }))); } }),
|
|
836
881
|
React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
837
882
|
React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
838
883
|
};
|
|
@@ -840,14 +885,15 @@ var materialDateTimeControlTester = core.rankWith(2, core.isDateTimeControl);
|
|
|
840
885
|
var MaterialDateTimeControl$1 = react.withJsonFormsControlProps(MaterialDateTimeControl);
|
|
841
886
|
|
|
842
887
|
var MaterialTimeControl = function (props) {
|
|
843
|
-
var _a, _b;
|
|
844
|
-
var
|
|
888
|
+
var _a, _b, _c;
|
|
889
|
+
var _d = useFocus(), focused = _d[0], onFocus = _d[1], onBlur = _d[2];
|
|
845
890
|
var id = props.id, description = props.description, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, enabled = props.enabled, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
|
|
846
891
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
847
892
|
var isValid = errors.length === 0;
|
|
848
893
|
var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
|
|
849
894
|
var format = (_a = appliedUiSchemaOptions.timeFormat) !== null && _a !== void 0 ? _a : 'HH:mm';
|
|
850
895
|
var saveFormat = (_b = appliedUiSchemaOptions.timeSaveFormat) !== null && _b !== void 0 ? _b : 'HH:mm:ss';
|
|
896
|
+
var views = (_c = appliedUiSchemaOptions.views) !== null && _c !== void 0 ? _c : ['hours', 'minutes'];
|
|
851
897
|
var firstFormHelperText = showDescription
|
|
852
898
|
? description
|
|
853
899
|
: !isValid
|
|
@@ -855,9 +901,11 @@ var MaterialTimeControl = function (props) {
|
|
|
855
901
|
: null;
|
|
856
902
|
var secondFormHelperText = showDescription && !isValid ? errors : null;
|
|
857
903
|
var onChange = React.useMemo(function () { return createOnChangeHandler(path, handleChange, saveFormat); }, [path, handleChange, saveFormat]);
|
|
904
|
+
var value = getData(data, saveFormat);
|
|
905
|
+
var valueInInputFormat = value ? value.format(format) : '';
|
|
858
906
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
859
907
|
React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
|
|
860
|
-
React__default["default"].createElement(lab.TimePicker, { label: label, value:
|
|
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' }))); } }),
|
|
861
909
|
React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
|
|
862
910
|
React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
|
|
863
911
|
};
|
|
@@ -980,12 +1028,15 @@ var materialAnyOfStringOrEnumControlTester = core.rankWith(5, simpleAnyOf);
|
|
|
980
1028
|
var MaterialAnyOfStringOrEnumControl$1 = react.withJsonFormsControlProps(MaterialAnyOfStringOrEnumControl);
|
|
981
1029
|
|
|
982
1030
|
var MaterialOneOfEnumControl = function (props) {
|
|
983
|
-
var config = props.config, uischema = props.uischema;
|
|
1031
|
+
var config = props.config, uischema = props.uischema, errors = props.errors;
|
|
984
1032
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
985
|
-
|
|
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 })));
|
|
986
1037
|
};
|
|
987
1038
|
var materialOneOfEnumControlTester = core.rankWith(5, core.isOneOfEnumControl);
|
|
988
|
-
var MaterialOneOfEnumControl$1 = react.withJsonFormsOneOfEnumProps(MaterialOneOfEnumControl);
|
|
1039
|
+
var MaterialOneOfEnumControl$1 = react.withJsonFormsOneOfEnumProps(react.withTranslateProps(React__default["default"].memo(MaterialOneOfEnumControl)), false);
|
|
989
1040
|
|
|
990
1041
|
var MaterialOneOfRadioGroupControl = function (props) {
|
|
991
1042
|
return React__default["default"].createElement(MaterialRadioGroup, __assign({}, props));
|
|
@@ -1014,18 +1065,18 @@ var Unwrapped = {
|
|
|
1014
1065
|
var groupTester = core.rankWith(1, core.uiTypeIs('Group'));
|
|
1015
1066
|
var style = { marginBottom: '10px' };
|
|
1016
1067
|
var GroupComponent = React__default["default"].memo(function (_a) {
|
|
1017
|
-
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"]);
|
|
1018
1069
|
var groupLayout = uischema;
|
|
1019
1070
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1020
1071
|
React__default["default"].createElement(material.Card, { style: style },
|
|
1021
|
-
!isEmpty__default["default"](
|
|
1072
|
+
!isEmpty__default["default"](label) && (React__default["default"].createElement(material.CardHeader, { title: label })),
|
|
1022
1073
|
React__default["default"].createElement(material.CardContent, null,
|
|
1023
1074
|
React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, props, { visible: visible, enabled: enabled, elements: groupLayout.elements }))))));
|
|
1024
1075
|
});
|
|
1025
1076
|
var MaterializedGroupLayoutRenderer = function (_a) {
|
|
1026
|
-
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;
|
|
1027
1078
|
var groupLayout = uischema;
|
|
1028
|
-
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 }));
|
|
1029
1080
|
};
|
|
1030
1081
|
var MaterialGroupLayout = react.withJsonFormsLayoutProps(MaterializedGroupLayoutRenderer);
|
|
1031
1082
|
var materialGroupTester = core.withIncreasedRank(1, groupTester);
|
|
@@ -1069,12 +1120,12 @@ var isSingleLevelCategorization = core.and(core.uiTypeIs('Categorization'), func
|
|
|
1069
1120
|
});
|
|
1070
1121
|
var materialCategorizationTester = core.rankWith(1, isSingleLevelCategorization);
|
|
1071
1122
|
var MaterialCategorizationLayoutRenderer = function (props) {
|
|
1072
|
-
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;
|
|
1073
1124
|
var categorization = uischema;
|
|
1074
1125
|
var _a = React.useState(selected !== null && selected !== void 0 ? selected : 0), activeCategory = _a[0], setActiveCategory = _a[1];
|
|
1075
|
-
var categories = categorization.elements.filter(function (category) {
|
|
1126
|
+
var categories = React.useMemo(function () { return categorization.elements.filter(function (category) {
|
|
1076
1127
|
return core.isVisible(category, data, undefined, ajv);
|
|
1077
|
-
});
|
|
1128
|
+
}); }, [categorization, data, ajv]);
|
|
1078
1129
|
var childProps = {
|
|
1079
1130
|
elements: categories[activeCategory].elements,
|
|
1080
1131
|
schema: schema,
|
|
@@ -1091,13 +1142,18 @@ var MaterialCategorizationLayoutRenderer = function (props) {
|
|
|
1091
1142
|
}
|
|
1092
1143
|
setActiveCategory(value);
|
|
1093
1144
|
};
|
|
1145
|
+
var tabLabels = React.useMemo(function () {
|
|
1146
|
+
return categories.map(function (e) {
|
|
1147
|
+
return core.deriveLabelForUISchemaElement(e, t);
|
|
1148
|
+
});
|
|
1149
|
+
}, [categories, t]);
|
|
1094
1150
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1095
1151
|
React__default["default"].createElement(material.AppBar, { position: 'static' },
|
|
1096
|
-
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] })); }))),
|
|
1097
1153
|
React__default["default"].createElement("div", { style: { marginTop: '0.5em' } },
|
|
1098
1154
|
React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps)))));
|
|
1099
1155
|
};
|
|
1100
|
-
var MaterialCategorizationLayout = react.withJsonFormsLayoutProps(
|
|
1156
|
+
var MaterialCategorizationLayout = withAjvProps(react.withTranslateProps(react.withJsonFormsLayoutProps(MaterialCategorizationLayoutRenderer)));
|
|
1101
1157
|
|
|
1102
1158
|
var iconStyle = { float: 'right' };
|
|
1103
1159
|
var ExpandPanelRendererComponent = function (props) {
|
|
@@ -1112,6 +1168,7 @@ var ExpandPanelRendererComponent = function (props) {
|
|
|
1112
1168
|
return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
|
|
1113
1169
|
}, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
|
|
1114
1170
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
1171
|
+
var showSortButtons = appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayLayoutSortButtons;
|
|
1115
1172
|
return (React__default["default"].createElement(material.Accordion, { "aria-labelledby": labelHtmlId, expanded: expanded, onChange: handleExpansion(childPath) },
|
|
1116
1173
|
React__default["default"].createElement(material.AccordionSummary, { expandIcon: React__default["default"].createElement(ExpandMoreIcon__default["default"], null) },
|
|
1117
1174
|
React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center' },
|
|
@@ -1125,7 +1182,7 @@ var ExpandPanelRendererComponent = function (props) {
|
|
|
1125
1182
|
React__default["default"].createElement(material.Grid, { container: true, justifyContent: 'flex-end' },
|
|
1126
1183
|
React__default["default"].createElement(material.Grid, { item: true },
|
|
1127
1184
|
React__default["default"].createElement(material.Grid, { container: true, direction: 'row', justifyContent: 'center', alignItems: 'center' },
|
|
1128
|
-
|
|
1185
|
+
showSortButtons ? (React__default["default"].createElement(React.Fragment, null,
|
|
1129
1186
|
React__default["default"].createElement(material.Grid, { item: true },
|
|
1130
1187
|
React__default["default"].createElement(material.IconButton, { onClick: moveUp(path, index), style: iconStyle, disabled: !enableMoveUp, "aria-label": "Move up", size: 'large' },
|
|
1131
1188
|
React__default["default"].createElement(ArrowUpward__default["default"], null))),
|
|
@@ -1201,12 +1258,12 @@ var MaterialArrayLayoutComponent = function (props) {
|
|
|
1201
1258
|
var MaterialArrayLayout$1 = React__default["default"].memo(MaterialArrayLayoutComponent);
|
|
1202
1259
|
|
|
1203
1260
|
var MaterialArrayLayoutRenderer = function (_a) {
|
|
1204
|
-
var visible = _a.visible,
|
|
1261
|
+
var visible = _a.visible, addItem = _a.addItem, props = __rest(_a, ["visible", "addItem"]);
|
|
1205
1262
|
var addItemCb = React.useCallback(function (p, value) { return addItem(p, value); }, [
|
|
1206
1263
|
addItem
|
|
1207
1264
|
]);
|
|
1208
1265
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1209
|
-
React__default["default"].createElement(MaterialArrayLayout$1, {
|
|
1266
|
+
React__default["default"].createElement(MaterialArrayLayout$1, __assign({ visible: visible, addItem: addItemCb }, props))));
|
|
1210
1267
|
};
|
|
1211
1268
|
var materialArrayLayoutTester = core.rankWith(4, core.isObjectArrayWithNesting);
|
|
1212
1269
|
var MaterialArrayLayout = react.withJsonFormsArrayLayoutProps(MaterialArrayLayoutRenderer);
|
|
@@ -1233,7 +1290,7 @@ var MaterialDateCell$1 = react.withJsonFormsCellProps(MaterialDateCell);
|
|
|
1233
1290
|
|
|
1234
1291
|
var MaterialEnumCell = function (props) { return (React__default["default"].createElement(MuiSelect, __assign({}, props))); };
|
|
1235
1292
|
var materialEnumCellTester = core.rankWith(2, core.isEnumControl);
|
|
1236
|
-
var MaterialEnumCell$1 = react.withJsonFormsEnumCellProps(MaterialEnumCell);
|
|
1293
|
+
var MaterialEnumCell$1 = react.withJsonFormsEnumCellProps(react.withTranslateProps(React__default["default"].memo(MaterialEnumCell)), false);
|
|
1237
1294
|
|
|
1238
1295
|
var MaterialIntegerCell = function (props) { return (React__default["default"].createElement(MuiInputInteger, __assign({}, props))); };
|
|
1239
1296
|
var materialIntegerCellTester = core.rankWith(2, core.isIntegerControl);
|
|
@@ -1249,7 +1306,7 @@ var MaterialNumberFormatCell$1 = react.withJsonFormsCellProps(MaterialNumberForm
|
|
|
1249
1306
|
|
|
1250
1307
|
var MaterialOneOfEnumCell = function (props) { return (React__default["default"].createElement(MuiSelect, __assign({}, props))); };
|
|
1251
1308
|
var materialOneOfEnumCellTester = core.rankWith(2, core.isOneOfEnumControl);
|
|
1252
|
-
var MaterialOneOfEnumCell$1 = react.withJsonFormsOneOfEnumCellProps(MaterialOneOfEnumCell);
|
|
1309
|
+
var MaterialOneOfEnumCell$1 = react.withJsonFormsOneOfEnumCellProps(react.withTranslateProps(React__default["default"].memo(MaterialOneOfEnumCell)), false);
|
|
1253
1310
|
|
|
1254
1311
|
var MaterialTextCell = function (props) { return (React__default["default"].createElement(MuiInputText, __assign({}, props))); };
|
|
1255
1312
|
var materialTextCellTester = core.rankWith(1, core.isStringControl);
|
|
@@ -1278,7 +1335,7 @@ var MaterialCategorizationStepperLayoutRenderer = function (props) {
|
|
|
1278
1335
|
var handleStep = function (step) {
|
|
1279
1336
|
setActiveCategory(step);
|
|
1280
1337
|
};
|
|
1281
|
-
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;
|
|
1282
1339
|
var categorization = uischema;
|
|
1283
1340
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
1284
1341
|
var buttonWrapperStyle = {
|
|
@@ -1292,9 +1349,9 @@ var MaterialCategorizationStepperLayoutRenderer = function (props) {
|
|
|
1292
1349
|
var buttonStyle = {
|
|
1293
1350
|
marginRight: '1em'
|
|
1294
1351
|
};
|
|
1295
|
-
var categories = categorization.elements.filter(function (category) {
|
|
1352
|
+
var categories = React.useMemo(function () { return categorization.elements.filter(function (category) {
|
|
1296
1353
|
return core.isVisible(category, data, undefined, ajv);
|
|
1297
|
-
});
|
|
1354
|
+
}); }, [categorization, data, ajv]);
|
|
1298
1355
|
var childProps = {
|
|
1299
1356
|
elements: categories[activeCategory].elements,
|
|
1300
1357
|
schema: schema,
|
|
@@ -1304,16 +1361,21 @@ var MaterialCategorizationStepperLayoutRenderer = function (props) {
|
|
|
1304
1361
|
renderers: renderers,
|
|
1305
1362
|
cells: cells
|
|
1306
1363
|
};
|
|
1364
|
+
var tabLabels = React.useMemo(function () {
|
|
1365
|
+
return categories.map(function (e) {
|
|
1366
|
+
return core.deriveLabelForUISchemaElement(e, t);
|
|
1367
|
+
});
|
|
1368
|
+
}, [categories, t]);
|
|
1307
1369
|
return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
|
|
1308
|
-
React__default["default"].createElement(material.Stepper, { activeStep: activeCategory, nonLinear: true }, categories.map(function (
|
|
1309
|
-
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]))); })),
|
|
1310
1372
|
React__default["default"].createElement("div", null,
|
|
1311
1373
|
React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps))),
|
|
1312
1374
|
!!appliedUiSchemaOptions.showNavButtons ? (React__default["default"].createElement("div", { style: buttonWrapperStyle },
|
|
1313
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"),
|
|
1314
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))));
|
|
1315
1377
|
};
|
|
1316
|
-
var MaterialCategorizationStepperLayout = react.withJsonFormsLayoutProps(
|
|
1378
|
+
var MaterialCategorizationStepperLayout = withAjvProps(react.withTranslateProps(react.withJsonFormsLayoutProps(MaterialCategorizationStepperLayoutRenderer)));
|
|
1317
1379
|
|
|
1318
1380
|
var materialRenderers = [
|
|
1319
1381
|
{
|
|
@@ -1432,9 +1494,11 @@ exports.MuiInputNumberFormat = MuiInputNumberFormat;
|
|
|
1432
1494
|
exports.MuiInputText = MuiInputText;
|
|
1433
1495
|
exports.MuiInputTime = MuiInputTime;
|
|
1434
1496
|
exports.MuiSelect = MuiSelect;
|
|
1497
|
+
exports.ResettableTextField = ResettableTextField;
|
|
1435
1498
|
exports.Unwrapped = Unwrapped;
|
|
1436
1499
|
exports.createOnChangeHandler = createOnChangeHandler;
|
|
1437
1500
|
exports.getData = getData;
|
|
1501
|
+
exports.i18nDefaults = i18nDefaults;
|
|
1438
1502
|
exports.materialAllOfControlTester = materialAllOfControlTester;
|
|
1439
1503
|
exports.materialAnyOfControlTester = materialAnyOfControlTester;
|
|
1440
1504
|
exports.materialAnyOfStringOrEnumControlTester = materialAnyOfStringOrEnumControlTester;
|