@jsonforms/material-renderers 3.1.0-beta.0 → 3.1.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/lib/additional/ListWithDetailMasterItem.d.ts +1 -1
- package/lib/additional/MaterialListWithDetailRenderer.d.ts +1 -1
- package/lib/additional/unwrapped.d.ts +1 -1
- package/lib/index.d.ts +1 -1
- package/lib/jsonforms-react-material.cjs.js +19 -17
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +19 -17
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/layouts/ArrayToolbar.d.ts +1 -0
- package/package.json +6 -6
- package/src/additional/ListWithDetailMasterItem.tsx +12 -9
- package/src/additional/MaterialListWithDetailRenderer.tsx +3 -0
- package/src/layouts/ArrayToolbar.tsx +39 -21
- package/src/layouts/ExpandPanelRenderer.tsx +13 -11
- package/src/layouts/MaterialArrayLayout.tsx +1 -0
|
@@ -565,33 +565,35 @@ const MaterialLabelRenderer = ({ text, visible }) => {
|
|
|
565
565
|
};
|
|
566
566
|
var MaterialLabelRenderer$1 = withJsonFormsLabelProps(MaterialLabelRenderer);
|
|
567
567
|
|
|
568
|
-
const ArrayLayoutToolbar = React.memo(function ArrayLayoutToolbar({ label, errors, addItem, path, createDefault, translations, }) {
|
|
568
|
+
const ArrayLayoutToolbar = React.memo(function ArrayLayoutToolbar({ label, errors, addItem, path, enabled, createDefault, translations, }) {
|
|
569
569
|
return (React.createElement(Toolbar, { disableGutters: true },
|
|
570
570
|
React.createElement(Grid, { container: true, alignItems: 'center', justifyContent: 'space-between' },
|
|
571
571
|
React.createElement(Grid, { item: true },
|
|
572
|
-
React.createElement(
|
|
573
|
-
|
|
574
|
-
|
|
575
|
-
|
|
572
|
+
React.createElement(Grid, { container: true, justifyContent: 'flex-start', alignItems: 'center', spacing: 2 },
|
|
573
|
+
React.createElement(Grid, { item: true },
|
|
574
|
+
React.createElement(Typography, { variant: 'h6' }, label)),
|
|
575
|
+
React.createElement(Grid, { item: true }, errors.length !== 0 && (React.createElement(Grid, { item: true },
|
|
576
|
+
React.createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })))))),
|
|
577
|
+
enabled && (React.createElement(Grid, { item: true },
|
|
576
578
|
React.createElement(Grid, { container: true },
|
|
577
579
|
React.createElement(Grid, { item: true },
|
|
578
580
|
React.createElement(Tooltip, { id: 'tooltip-add', title: translations.addTooltip, placement: 'bottom' },
|
|
579
|
-
React.createElement(IconButton, { "aria-label": translations.
|
|
580
|
-
React.createElement(AddIcon, null)))))))));
|
|
581
|
+
React.createElement(IconButton, { "aria-label": translations.addTooltip, onClick: addItem(path, createDefault()), size: 'large' },
|
|
582
|
+
React.createElement(AddIcon, null))))))))));
|
|
581
583
|
});
|
|
582
584
|
|
|
583
|
-
const ListWithDetailMasterItem = ({ index, childLabel, selected, handleSelect, removeItem, path, translations, }) => {
|
|
585
|
+
const ListWithDetailMasterItem = ({ index, childLabel, selected, enabled, handleSelect, removeItem, path, translations, }) => {
|
|
584
586
|
return (React.createElement(ListItem, { button: true, selected: selected, onClick: handleSelect(index) },
|
|
585
587
|
React.createElement(ListItemAvatar, null,
|
|
586
588
|
React.createElement(Avatar, { "aria-label": 'Index' }, index + 1)),
|
|
587
589
|
React.createElement(ListItemText, { primary: childLabel }),
|
|
588
|
-
React.createElement(ListItemSecondaryAction, null,
|
|
590
|
+
enabled && (React.createElement(ListItemSecondaryAction, null,
|
|
589
591
|
React.createElement(IconButton, { "aria-label": translations.removeAriaLabel, onClick: removeItem(path, index), size: 'large' },
|
|
590
|
-
React.createElement(DeleteIcon, null)))));
|
|
592
|
+
React.createElement(DeleteIcon, null))))));
|
|
591
593
|
};
|
|
592
594
|
var ListWithDetailMasterItem$1 = withJsonFormsMasterListItemProps(ListWithDetailMasterItem);
|
|
593
595
|
|
|
594
|
-
const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, }) => {
|
|
596
|
+
const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, }) => {
|
|
595
597
|
const [selectedIndex, setSelectedIndex] = useState(undefined);
|
|
596
598
|
const handleRemoveItem = useCallback((p, value) => () => {
|
|
597
599
|
removeItems(p, [value])();
|
|
@@ -610,10 +612,10 @@ const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, err
|
|
|
610
612
|
setSelectedIndex(undefined);
|
|
611
613
|
}, [schema]);
|
|
612
614
|
return (React.createElement(Hidden, { xsUp: !visible },
|
|
613
|
-
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: handleCreateDefaultValue }),
|
|
615
|
+
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: handleCreateDefaultValue }),
|
|
614
616
|
React.createElement(Grid, { container: true, direction: 'row', spacing: 2 },
|
|
615
617
|
React.createElement(Grid, { item: true, xs: 3 },
|
|
616
|
-
React.createElement(List, null, data > 0 ? (map(range(data), (index) => (React.createElement(ListWithDetailMasterItem$1, { index: index, path: path, schema: schema, handleSelect: handleListItemClick, removeItem: handleRemoveItem, selected: selectedIndex === index, key: index, translations: translations })))) : (React.createElement("p", null, "No data")))),
|
|
618
|
+
React.createElement(List, null, data > 0 ? (map(range(data), (index) => (React.createElement(ListWithDetailMasterItem$1, { index: index, path: path, schema: schema, enabled: enabled, handleSelect: handleListItemClick, removeItem: handleRemoveItem, selected: selectedIndex === index, key: index, translations: translations })))) : (React.createElement("p", null, "No data")))),
|
|
617
619
|
React.createElement(Grid, { item: true, xs: true }, selectedIndex !== undefined ? (React.createElement(JsonFormsDispatch, { renderers: renderers, cells: cells, visible: visible, schema: schema, uischema: foundUISchema, path: composePaths(path, `${selectedIndex}`) })) : (React.createElement(Typography, { variant: 'h6' }, translations.noSelection))))));
|
|
618
620
|
};
|
|
619
621
|
const materialListWithDetailTester = rankWith(4, and(uiTypeIs('ListWithDetail'), isObjectArray));
|
|
@@ -1034,16 +1036,16 @@ const ExpandPanelRendererComponent = (props) => {
|
|
|
1034
1036
|
React.createElement(Grid, { container: true, justifyContent: 'flex-end' },
|
|
1035
1037
|
React.createElement(Grid, { item: true },
|
|
1036
1038
|
React.createElement(Grid, { container: true, direction: 'row', justifyContent: 'center', alignItems: 'center' },
|
|
1037
|
-
showSortButtons ? (React.createElement(Fragment, null,
|
|
1039
|
+
showSortButtons && enabled ? (React.createElement(Fragment, null,
|
|
1038
1040
|
React.createElement(Grid, { item: true },
|
|
1039
1041
|
React.createElement(IconButton, { onClick: moveUp(path, index), style: iconStyle, disabled: !enableMoveUp, "aria-label": translations.upAriaLabel, size: 'large' },
|
|
1040
1042
|
React.createElement(ArrowUpward, null))),
|
|
1041
1043
|
React.createElement(Grid, { item: true },
|
|
1042
1044
|
React.createElement(IconButton, { onClick: moveDown(path, index), style: iconStyle, disabled: !enableMoveDown, "aria-label": translations.downAriaLabel, size: 'large' },
|
|
1043
1045
|
React.createElement(ArrowDownward, null))))) : (''),
|
|
1044
|
-
React.createElement(Grid, { item: true },
|
|
1046
|
+
enabled && (React.createElement(Grid, { item: true },
|
|
1045
1047
|
React.createElement(IconButton, { onClick: removeItems(path, [index]), style: iconStyle, "aria-label": translations.removeAriaLabel, size: 'large' },
|
|
1046
|
-
React.createElement(DeleteIcon, null))))))))),
|
|
1048
|
+
React.createElement(DeleteIcon, null)))))))))),
|
|
1047
1049
|
React.createElement(AccordionDetails, null,
|
|
1048
1050
|
React.createElement(JsonFormsDispatch, { enabled: enabled, schema: schema, uischema: foundUISchema, path: childPath, key: childPath, renderers: renderers, cells: cells }))));
|
|
1049
1051
|
};
|
|
@@ -1188,7 +1190,7 @@ const MaterialArrayLayoutComponent = (props) => {
|
|
|
1188
1190
|
const { enabled, data, path, schema, uischema, errors, addItem, renderers, cells, label, required, rootSchema, config, uischemas, translations, } = props;
|
|
1189
1191
|
const appliedUiSchemaOptions = merge({}, config, props.uischema.options);
|
|
1190
1192
|
return (React.createElement("div", null,
|
|
1191
|
-
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: innerCreateDefaultValue }),
|
|
1193
|
+
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: innerCreateDefaultValue }),
|
|
1192
1194
|
React.createElement("div", null, data > 0 ? (map(range(data), (index) => {
|
|
1193
1195
|
return (React.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, translations: translations }));
|
|
1194
1196
|
})) : (React.createElement("p", null, "No data")))));
|