@jsonforms/material-renderers 3.3.0-beta.1 → 3.4.0-alpha.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/complex/MaterialTableControl.d.ts +2 -1
- package/lib/complex/TableToolbar.d.ts +1 -0
- package/lib/index.d.ts +1 -1
- package/lib/jsonforms-react-material.cjs.js +36 -23
- package/lib/jsonforms-react-material.cjs.js.map +1 -1
- package/lib/jsonforms-react-material.esm.js +36 -23
- package/lib/jsonforms-react-material.esm.js.map +1 -1
- package/lib/layouts/ArrayToolbar.d.ts +1 -0
- package/lib/layouts/ExpandPanelRenderer.d.ts +1 -0
- package/package.json +5 -5
- package/src/additional/ListWithDetailMasterItem.tsx +2 -1
- package/src/additional/MaterialListWithDetailRenderer.tsx +6 -0
- package/src/complex/MaterialTableControl.tsx +31 -14
- package/src/complex/TableToolbar.tsx +3 -1
- package/src/layouts/ArrayToolbar.tsx +3 -1
- package/src/layouts/ExpandPanelRenderer.tsx +37 -16
- package/src/layouts/MaterialArrayLayout.tsx +6 -0
|
@@ -114,7 +114,7 @@ const fixedCellSmall = {
|
|
|
114
114
|
paddingLeft: 0,
|
|
115
115
|
paddingRight: 0,
|
|
116
116
|
};
|
|
117
|
-
const TableToolbar = React.memo(function TableToolbar({ numColumns, errors, label, description, path, addItem, schema, enabled, translations, rootSchema, }) {
|
|
117
|
+
const TableToolbar = React.memo(function TableToolbar({ numColumns, errors, label, description, path, addItem, schema, enabled, translations, rootSchema, disableAdd, }) {
|
|
118
118
|
return (React.createElement(TableRow, null,
|
|
119
119
|
React.createElement(NoBorderTableCell, { colSpan: numColumns },
|
|
120
120
|
React.createElement(Stack, null,
|
|
@@ -124,7 +124,7 @@ const TableToolbar = React.memo(function TableToolbar({ numColumns, errors, labe
|
|
|
124
124
|
React.createElement(Grid, { item: true }, errors.length !== 0 && (React.createElement(Grid, { item: true },
|
|
125
125
|
React.createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors }))))),
|
|
126
126
|
description && React.createElement(FormHelperText, null, description))),
|
|
127
|
-
enabled ? (React.createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
|
|
127
|
+
enabled && !disableAdd ? (React.createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
|
|
128
128
|
React.createElement(Tooltip, { id: 'tooltip-add', title: translations.addTooltip, placement: 'bottom' },
|
|
129
129
|
React.createElement(IconButton, { "aria-label": translations.addAriaLabel, onClick: addItem(path, createDefaultValue(schema, rootSchema)), size: 'large' },
|
|
130
130
|
React.createElement(Add, null))))) : null));
|
|
@@ -217,7 +217,7 @@ const NonEmptyCell = (ownProps) => {
|
|
|
217
217
|
const isValid = isEmpty(emptyCellProps.errors);
|
|
218
218
|
return React.createElement(NonEmptyCellComponent, { ...emptyCellProps, isValid: isValid });
|
|
219
219
|
};
|
|
220
|
-
const NonEmptyRowComponent = ({ childPath, schema, rowIndex, openDeleteDialog, moveUpCreator, moveDownCreator, enableUp, enableDown, showSortButtons, enabled, cells, path, translations, }) => {
|
|
220
|
+
const NonEmptyRowComponent = ({ childPath, schema, rowIndex, openDeleteDialog, moveUpCreator, moveDownCreator, enableUp, enableDown, showSortButtons, enabled, cells, path, translations, disableRemove, }) => {
|
|
221
221
|
const moveUp = useMemo(() => moveUpCreator(path, rowIndex), [moveUpCreator, path, rowIndex]);
|
|
222
222
|
const moveDown = useMemo(() => moveDownCreator(path, rowIndex), [moveDownCreator, path, rowIndex]);
|
|
223
223
|
return (React.createElement(TableRow, { key: childPath, hover: true },
|
|
@@ -233,13 +233,13 @@ const NonEmptyRowComponent = ({ childPath, schema, rowIndex, openDeleteDialog, m
|
|
|
233
233
|
React.createElement(Tooltip, { id: 'tooltip-down', title: translations.down, placement: 'bottom', open: enableDown ? undefined : false },
|
|
234
234
|
React.createElement(IconButton, { "aria-label": translations.downAriaLabel, onClick: moveDown, disabled: !enableDown, size: 'large' },
|
|
235
235
|
React.createElement(ArrowDownward, null)))))) : null,
|
|
236
|
-
React.createElement(Grid, { item: true },
|
|
236
|
+
!disableRemove ? (React.createElement(Grid, { item: true },
|
|
237
237
|
React.createElement(Tooltip, { id: 'tooltip-remove', title: translations.removeTooltip, placement: 'bottom' },
|
|
238
238
|
React.createElement(IconButton, { "aria-label": translations.removeAriaLabel, onClick: () => openDeleteDialog(childPath, rowIndex), size: 'large' },
|
|
239
|
-
React.createElement(Delete, null))))))) : null));
|
|
239
|
+
React.createElement(Delete, null))))) : null))) : null));
|
|
240
240
|
};
|
|
241
241
|
const NonEmptyRow = React.memo(NonEmptyRowComponent);
|
|
242
|
-
const TableRows = ({ data, path, schema, openDeleteDialog, moveUp, moveDown, uischema, config, enabled, cells, translations, }) => {
|
|
242
|
+
const TableRows = ({ data, path, schema, openDeleteDialog, moveUp, moveDown, uischema, config, enabled, cells, translations, disableRemove, }) => {
|
|
243
243
|
const isEmptyTable = data === 0;
|
|
244
244
|
if (isEmptyTable) {
|
|
245
245
|
return (React.createElement(EmptyTable, { numColumns: getValidColumnProps(schema).length + 1, translations: translations }));
|
|
@@ -248,7 +248,7 @@ const TableRows = ({ data, path, schema, openDeleteDialog, moveUp, moveDown, uis
|
|
|
248
248
|
return (React.createElement(React.Fragment, null, range(data).map((index) => {
|
|
249
249
|
const childPath = Paths.compose(path, `${index}`);
|
|
250
250
|
return (React.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 ||
|
|
251
|
-
appliedUiSchemaOptions.showArrayTableSortButtons, enabled: enabled, cells: cells, path: path, translations: translations }));
|
|
251
|
+
appliedUiSchemaOptions.showArrayTableSortButtons, enabled: enabled, cells: cells, path: path, translations: translations, disableRemove: disableRemove }));
|
|
252
252
|
})));
|
|
253
253
|
};
|
|
254
254
|
class MaterialTableControl extends React.Component {
|
|
@@ -257,7 +257,10 @@ class MaterialTableControl extends React.Component {
|
|
|
257
257
|
this.addItem = (path, value) => this.props.addItem(path, value);
|
|
258
258
|
}
|
|
259
259
|
render() {
|
|
260
|
-
const { label, description, path, schema, rootSchema, uischema, errors, openDeleteDialog, visible, enabled, cells, translations, } = this.props;
|
|
260
|
+
const { label, description, path, schema, rootSchema, uischema, errors, openDeleteDialog, visible, enabled, cells, translations, disableAdd, disableRemove, config, } = this.props;
|
|
261
|
+
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
262
|
+
const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
|
|
263
|
+
const doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
|
|
261
264
|
const controlElement = uischema;
|
|
262
265
|
const isObjectSchema = schema.type === 'object';
|
|
263
266
|
const headerCells = isObjectSchema
|
|
@@ -268,12 +271,12 @@ class MaterialTableControl extends React.Component {
|
|
|
268
271
|
}
|
|
269
272
|
return (React.createElement(Table, null,
|
|
270
273
|
React.createElement(TableHead, null,
|
|
271
|
-
React.createElement(TableToolbar, { errors: errors, label: label, description: description, addItem: this.addItem, numColumns: isObjectSchema ? headerCells.length : 1, path: path, uischema: controlElement, schema: schema, rootSchema: rootSchema, enabled: enabled, translations: translations }),
|
|
274
|
+
React.createElement(TableToolbar, { errors: errors, label: label, description: description, addItem: this.addItem, numColumns: isObjectSchema ? headerCells.length : 1, path: path, uischema: controlElement, schema: schema, rootSchema: rootSchema, enabled: enabled, translations: translations, disableAdd: doDisableAdd }),
|
|
272
275
|
isObjectSchema && (React.createElement(TableRow, null,
|
|
273
276
|
headerCells,
|
|
274
277
|
enabled ? React.createElement(TableCell, null) : null))),
|
|
275
278
|
React.createElement(TableBody, null,
|
|
276
|
-
React.createElement(TableRows, { openDeleteDialog: openDeleteDialog, translations: translations, ...this.props }))));
|
|
279
|
+
React.createElement(TableRows, { openDeleteDialog: openDeleteDialog, translations: translations, ...this.props, disableRemove: doDisableRemove }))));
|
|
277
280
|
}
|
|
278
281
|
}
|
|
279
282
|
|
|
@@ -675,7 +678,7 @@ const MaterialLabelRenderer = ({ text, visible }) => {
|
|
|
675
678
|
};
|
|
676
679
|
var MaterialLabelRenderer$1 = withJsonFormsLabelProps(MaterialLabelRenderer);
|
|
677
680
|
|
|
678
|
-
const ArrayLayoutToolbar = React.memo(function ArrayLayoutToolbar({ label, description, errors, addItem, path, enabled, createDefault, translations, }) {
|
|
681
|
+
const ArrayLayoutToolbar = React.memo(function ArrayLayoutToolbar({ label, description, errors, addItem, path, enabled, createDefault, translations, disableAdd, }) {
|
|
679
682
|
return (React.createElement(Toolbar, { disableGutters: true },
|
|
680
683
|
React.createElement(Stack, null,
|
|
681
684
|
React.createElement(Grid, { container: true, alignItems: 'center', justifyContent: 'space-between' },
|
|
@@ -685,7 +688,7 @@ const ArrayLayoutToolbar = React.memo(function ArrayLayoutToolbar({ label, descr
|
|
|
685
688
|
React.createElement(Typography, { variant: 'h6' }, label)),
|
|
686
689
|
React.createElement(Grid, { item: true }, errors.length !== 0 && (React.createElement(Grid, { item: true },
|
|
687
690
|
React.createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })))))),
|
|
688
|
-
enabled && (React.createElement(Grid, { item: true },
|
|
691
|
+
enabled && !disableAdd && (React.createElement(Grid, { item: true },
|
|
689
692
|
React.createElement(Grid, { container: true },
|
|
690
693
|
React.createElement(Grid, { item: true },
|
|
691
694
|
React.createElement(Tooltip, { id: 'tooltip-add', title: translations.addTooltip, placement: 'bottom' },
|
|
@@ -694,19 +697,19 @@ const ArrayLayoutToolbar = React.memo(function ArrayLayoutToolbar({ label, descr
|
|
|
694
697
|
description && React.createElement(FormHelperText, null, description))));
|
|
695
698
|
});
|
|
696
699
|
|
|
697
|
-
const ListWithDetailMasterItem = ({ index, childLabel, selected, enabled, handleSelect, removeItem, path, translations, }) => {
|
|
700
|
+
const ListWithDetailMasterItem = ({ index, childLabel, selected, enabled, handleSelect, removeItem, path, translations, disableRemove, }) => {
|
|
698
701
|
return (React.createElement(ListItem, { button: true, selected: selected, onClick: handleSelect(index) },
|
|
699
702
|
React.createElement(ListItemAvatar, null,
|
|
700
703
|
React.createElement(Avatar, { "aria-label": 'Index' }, index + 1)),
|
|
701
704
|
React.createElement(ListItemText, { primary: childLabel }),
|
|
702
|
-
enabled && (React.createElement(ListItemSecondaryAction, null,
|
|
705
|
+
enabled && !disableRemove && (React.createElement(ListItemSecondaryAction, null,
|
|
703
706
|
React.createElement(Tooltip, { id: 'tooltip-remove', title: translations.removeTooltip, placement: 'bottom' },
|
|
704
707
|
React.createElement(IconButton, { "aria-label": translations.removeAriaLabel, onClick: removeItem(path, index), size: 'large' },
|
|
705
708
|
React.createElement(Delete, null)))))));
|
|
706
709
|
};
|
|
707
710
|
var ListWithDetailMasterItem$1 = withJsonFormsMasterListItemProps(ListWithDetailMasterItem);
|
|
708
711
|
|
|
709
|
-
const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, }) => {
|
|
712
|
+
const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, disableAdd, disableRemove, }) => {
|
|
710
713
|
const [selectedIndex, setSelectedIndex] = useState(undefined);
|
|
711
714
|
const handleRemoveItem = useCallback((p, value) => () => {
|
|
712
715
|
removeItems(p, [value])();
|
|
@@ -721,6 +724,8 @@ const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, ena
|
|
|
721
724
|
const handleCreateDefaultValue = useCallback(() => createDefaultValue(schema, rootSchema), [createDefaultValue]);
|
|
722
725
|
const foundUISchema = useMemo(() => findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema), [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
|
|
723
726
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
727
|
+
const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
|
|
728
|
+
const doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
|
|
724
729
|
React.useEffect(() => {
|
|
725
730
|
setSelectedIndex(undefined);
|
|
726
731
|
}, [schema]);
|
|
@@ -728,10 +733,10 @@ const MaterialListWithDetailRenderer = ({ uischemas, schema, uischema, path, ena
|
|
|
728
733
|
return null;
|
|
729
734
|
}
|
|
730
735
|
return (React.createElement(React.Fragment, null,
|
|
731
|
-
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: handleCreateDefaultValue }),
|
|
736
|
+
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: handleCreateDefaultValue, disableAdd: doDisableAdd }),
|
|
732
737
|
React.createElement(Grid, { container: true, direction: 'row', spacing: 2 },
|
|
733
738
|
React.createElement(Grid, { item: true, xs: 3 },
|
|
734
|
-
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, uischema: foundUISchema, childLabelProp: appliedUiSchemaOptions.elementLabelProp, translations: translations })))) : (React.createElement("p", null, translations.noDataMessage)))),
|
|
739
|
+
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, uischema: foundUISchema, childLabelProp: appliedUiSchemaOptions.elementLabelProp, translations: translations, disableRemove: doDisableRemove })))) : (React.createElement("p", null, translations.noDataMessage)))),
|
|
735
740
|
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))))));
|
|
736
741
|
};
|
|
737
742
|
const materialListWithDetailTester = rankWith(4, and(uiTypeIs('ListWithDetail'), isObjectArray));
|
|
@@ -1158,7 +1163,7 @@ const ExpandPanelRendererComponent = (props) => {
|
|
|
1158
1163
|
removeId(labelHtmlId);
|
|
1159
1164
|
};
|
|
1160
1165
|
}, [labelHtmlId]);
|
|
1161
|
-
const { enabled, childLabel, childPath, index, expanded, moveDown, moveUp, enableMoveDown, enableMoveUp, handleExpansion, removeItems, path, rootSchema, schema, uischema, uischemas, renderers, cells, config, translations, } = props;
|
|
1166
|
+
const { enabled, childLabel, childPath, index, expanded, moveDown, moveUp, enableMoveDown, enableMoveUp, handleExpansion, removeItems, path, rootSchema, schema, uischema, uischemas, renderers, cells, config, translations, disableRemove, } = props;
|
|
1162
1167
|
const foundUISchema = useMemo(() => findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema), [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
|
|
1163
1168
|
const appliedUiSchemaOptions = merge({}, config, uischema.options);
|
|
1164
1169
|
const showSortButtons = appliedUiSchemaOptions.showSortButtons ||
|
|
@@ -1185,7 +1190,7 @@ const ExpandPanelRendererComponent = (props) => {
|
|
|
1185
1190
|
React.createElement(Tooltip, { id: 'tooltip-down', title: translations.down, placement: 'bottom', open: enableMoveDown ? undefined : false },
|
|
1186
1191
|
React.createElement(IconButton, { onClick: moveDown(path, index), style: iconStyle, disabled: !enableMoveDown, "aria-label": translations.downAriaLabel, size: 'large' },
|
|
1187
1192
|
React.createElement(ArrowDownward, null)))))) : (''),
|
|
1188
|
-
enabled && (React.createElement(Grid, { item: true },
|
|
1193
|
+
enabled && !disableRemove && (React.createElement(Grid, { item: true },
|
|
1189
1194
|
React.createElement(Tooltip, { id: 'tooltip-remove', title: translations.removeTooltip, placement: 'bottom' },
|
|
1190
1195
|
React.createElement(IconButton, { onClick: removeItems(path, [index]), style: iconStyle, "aria-label": translations.removeAriaLabel, size: 'large' },
|
|
1191
1196
|
React.createElement(Delete, null))))))))))),
|
|
@@ -1202,13 +1207,16 @@ const ctxDispatchToExpandPanelProps = (dispatch) => ({
|
|
|
1202
1207
|
.reverse()
|
|
1203
1208
|
.forEach((s) => array.splice(s, 1));
|
|
1204
1209
|
return array;
|
|
1205
|
-
}));
|
|
1210
|
+
}, { type: 'REMOVE', indices: toDelete }));
|
|
1206
1211
|
}, [dispatch]),
|
|
1207
1212
|
moveUp: useCallback((path, toMove) => (event) => {
|
|
1208
1213
|
event.stopPropagation();
|
|
1209
1214
|
dispatch(update(path, (array) => {
|
|
1210
1215
|
moveUp(array, toMove);
|
|
1211
1216
|
return array;
|
|
1217
|
+
}, {
|
|
1218
|
+
type: 'MOVE',
|
|
1219
|
+
moves: [{ from: toMove, to: toMove - 1 }],
|
|
1212
1220
|
}));
|
|
1213
1221
|
}, [dispatch]),
|
|
1214
1222
|
moveDown: useCallback((path, toMove) => (event) => {
|
|
@@ -1216,6 +1224,9 @@ const ctxDispatchToExpandPanelProps = (dispatch) => ({
|
|
|
1216
1224
|
dispatch(update(path, (array) => {
|
|
1217
1225
|
moveDown(array, toMove);
|
|
1218
1226
|
return array;
|
|
1227
|
+
}, {
|
|
1228
|
+
type: 'MOVE',
|
|
1229
|
+
moves: [{ from: toMove, to: toMove + 1 }],
|
|
1219
1230
|
}));
|
|
1220
1231
|
}, [dispatch]),
|
|
1221
1232
|
});
|
|
@@ -1351,12 +1362,14 @@ const MaterialArrayLayoutComponent = (props) => {
|
|
|
1351
1362
|
setExpanded(expandedPanel ? panel : false);
|
|
1352
1363
|
}, []);
|
|
1353
1364
|
const isExpanded = (index) => expanded === composePaths(props.path, `${index}`);
|
|
1354
|
-
const { enabled, data, path, schema, uischema, errors, addItem, renderers, cells, label, required, rootSchema, config, uischemas, translations, description, } = props;
|
|
1365
|
+
const { enabled, data, path, schema, uischema, errors, addItem, renderers, cells, label, required, rootSchema, config, uischemas, translations, description, disableAdd, disableRemove, } = props;
|
|
1355
1366
|
const appliedUiSchemaOptions = merge({}, config, props.uischema.options);
|
|
1367
|
+
const doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
|
|
1368
|
+
const doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
|
|
1356
1369
|
return (React.createElement("div", null,
|
|
1357
|
-
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: innerCreateDefaultValue }),
|
|
1370
|
+
React.createElement(ArrayLayoutToolbar, { translations: translations, label: computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: innerCreateDefaultValue, disableAdd: doDisableAdd }),
|
|
1358
1371
|
React.createElement("div", null, data > 0 ? (map(range(data), (index) => {
|
|
1359
|
-
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 }));
|
|
1372
|
+
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, disableRemove: doDisableRemove }));
|
|
1360
1373
|
})) : (React.createElement("p", null, translations.noDataMessage)))));
|
|
1361
1374
|
};
|
|
1362
1375
|
const MaterialArrayLayout$1 = React.memo(MaterialArrayLayoutComponent);
|