@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
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import type { StatePropsOfMasterItem } from '@jsonforms/core';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export declare const ListWithDetailMasterItem: ({ index, childLabel, selected, enabled, handleSelect, removeItem, path, translations, }: StatePropsOfMasterItem) => React.JSX.Element;
|
|
3
|
+
export declare const ListWithDetailMasterItem: ({ index, childLabel, selected, enabled, handleSelect, removeItem, path, translations, disableRemove, }: StatePropsOfMasterItem) => React.JSX.Element;
|
|
4
4
|
declare const _default: React.ComponentType<import("@jsonforms/core").OwnPropsOfMasterListItem>;
|
|
5
5
|
export default _default;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ArrayLayoutProps, RankedTester } from '@jsonforms/core';
|
|
2
2
|
import React from 'react';
|
|
3
|
-
export declare const MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, }: ArrayLayoutProps) => React.JSX.Element;
|
|
3
|
+
export declare const MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, disableAdd, disableRemove, }: ArrayLayoutProps) => React.JSX.Element;
|
|
4
4
|
export declare const materialListWithDetailTester: RankedTester;
|
|
5
5
|
declare const _default: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;
|
|
6
6
|
export default _default;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
/// <reference types="react" />
|
|
2
2
|
export declare const UnwrappedAdditional: {
|
|
3
3
|
MaterialLabelRenderer: ({ text, visible }: import("@jsonforms/core").LabelProps) => import("react").JSX.Element;
|
|
4
|
-
MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, }: import("@jsonforms/core").ArrayLayoutProps) => import("react").JSX.Element;
|
|
4
|
+
MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, disableAdd, disableRemove, }: import("@jsonforms/core").ArrayLayoutProps) => import("react").JSX.Element;
|
|
5
5
|
};
|
|
@@ -18,8 +18,9 @@ interface NonEmptyRowProps {
|
|
|
18
18
|
cells?: JsonFormsCellRendererRegistryEntry[];
|
|
19
19
|
path: string;
|
|
20
20
|
translations: ArrayTranslations;
|
|
21
|
+
disableRemove?: boolean;
|
|
21
22
|
}
|
|
22
|
-
export declare const NonEmptyRow: React.MemoExoticComponent<({ childPath, schema, rowIndex, openDeleteDialog, moveUpCreator, moveDownCreator, enableUp, enableDown, showSortButtons, enabled, cells, path, translations, }: NonEmptyRowProps & WithDeleteDialogSupport) => React.JSX.Element>;
|
|
23
|
+
export declare const NonEmptyRow: React.MemoExoticComponent<({ childPath, schema, rowIndex, openDeleteDialog, moveUpCreator, moveDownCreator, enableUp, enableDown, showSortButtons, enabled, cells, path, translations, disableRemove, }: NonEmptyRowProps & WithDeleteDialogSupport) => React.JSX.Element>;
|
|
23
24
|
export declare class MaterialTableControl extends React.Component<ArrayLayoutProps & WithDeleteDialogSupport, any> {
|
|
24
25
|
addItem: (path: string, value: any) => () => void;
|
|
25
26
|
render(): React.JSX.Element;
|
|
@@ -12,6 +12,7 @@ export interface MaterialTableToolbarProps {
|
|
|
12
12
|
enabled: boolean;
|
|
13
13
|
translations: ArrayTranslations;
|
|
14
14
|
addItem(path: string, value: any): () => void;
|
|
15
|
+
disableAdd?: boolean;
|
|
15
16
|
}
|
|
16
17
|
declare const TableToolbar: React.NamedExoticComponent<MaterialTableToolbarProps>;
|
|
17
18
|
export default TableToolbar;
|
package/lib/index.d.ts
CHANGED
|
@@ -38,5 +38,5 @@ export declare const Unwrapped: {
|
|
|
38
38
|
MaterialObjectRenderer: ({ renderers, cells, uischemas, schema, label, path, visible, enabled, uischema, rootSchema, }: import("@jsonforms/core").StatePropsOfControlWithDetail) => import("react").JSX.Element;
|
|
39
39
|
MaterialOneOfRenderer: ({ handleChange, schema, path, renderers, cells, rootSchema, id, visible, indexOfFittingSchema, uischema, uischemas, data, }: import("@jsonforms/core").CombinatorRendererProps) => import("react").JSX.Element;
|
|
40
40
|
MaterialLabelRenderer: ({ text, visible }: import("@jsonforms/core").LabelProps) => import("react").JSX.Element;
|
|
41
|
-
MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, }: import("@jsonforms/core").ArrayLayoutProps) => import("react").JSX.Element;
|
|
41
|
+
MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, enabled, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema, translations, description, disableAdd, disableRemove, }: import("@jsonforms/core").ArrayLayoutProps) => import("react").JSX.Element;
|
|
42
42
|
};
|
|
@@ -210,7 +210,7 @@ var fixedCellSmall = {
|
|
|
210
210
|
paddingRight: 0,
|
|
211
211
|
};
|
|
212
212
|
var TableToolbar = React__default["default"].memo(function TableToolbar(_a) {
|
|
213
|
-
var numColumns = _a.numColumns, errors = _a.errors, label = _a.label, description = _a.description, path = _a.path, addItem = _a.addItem, schema = _a.schema, enabled = _a.enabled, translations = _a.translations, rootSchema = _a.rootSchema;
|
|
213
|
+
var numColumns = _a.numColumns, errors = _a.errors, label = _a.label, description = _a.description, path = _a.path, addItem = _a.addItem, schema = _a.schema, enabled = _a.enabled, translations = _a.translations, rootSchema = _a.rootSchema, disableAdd = _a.disableAdd;
|
|
214
214
|
return (React__default["default"].createElement(material.TableRow, null,
|
|
215
215
|
React__default["default"].createElement(NoBorderTableCell, { colSpan: numColumns },
|
|
216
216
|
React__default["default"].createElement(material.Stack, null,
|
|
@@ -220,7 +220,7 @@ var TableToolbar = React__default["default"].memo(function TableToolbar(_a) {
|
|
|
220
220
|
React__default["default"].createElement(material.Grid, { item: true }, errors.length !== 0 && (React__default["default"].createElement(material.Grid, { item: true },
|
|
221
221
|
React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors }))))),
|
|
222
222
|
description && React__default["default"].createElement(material.FormHelperText, null, description))),
|
|
223
|
-
enabled ? (React__default["default"].createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
|
|
223
|
+
enabled && !disableAdd ? (React__default["default"].createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
|
|
224
224
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-add', title: translations.addTooltip, placement: 'bottom' },
|
|
225
225
|
React__default["default"].createElement(material.IconButton, { "aria-label": translations.addAriaLabel, onClick: addItem(path, core.createDefaultValue(schema, rootSchema)), size: 'large' },
|
|
226
226
|
React__default["default"].createElement(iconsMaterial.Add, null))))) : null));
|
|
@@ -320,7 +320,7 @@ var NonEmptyCell = function (ownProps) {
|
|
|
320
320
|
return React__default["default"].createElement(NonEmptyCellComponent, __assign({}, emptyCellProps, { isValid: isValid }));
|
|
321
321
|
};
|
|
322
322
|
var NonEmptyRowComponent = function (_a) {
|
|
323
|
-
var childPath = _a.childPath, schema = _a.schema, rowIndex = _a.rowIndex, openDeleteDialog = _a.openDeleteDialog, moveUpCreator = _a.moveUpCreator, moveDownCreator = _a.moveDownCreator, enableUp = _a.enableUp, enableDown = _a.enableDown, showSortButtons = _a.showSortButtons, enabled = _a.enabled, cells = _a.cells, path = _a.path, translations = _a.translations;
|
|
323
|
+
var childPath = _a.childPath, schema = _a.schema, rowIndex = _a.rowIndex, openDeleteDialog = _a.openDeleteDialog, moveUpCreator = _a.moveUpCreator, moveDownCreator = _a.moveDownCreator, enableUp = _a.enableUp, enableDown = _a.enableDown, showSortButtons = _a.showSortButtons, enabled = _a.enabled, cells = _a.cells, path = _a.path, translations = _a.translations, disableRemove = _a.disableRemove;
|
|
324
324
|
var moveUp = React.useMemo(function () { return moveUpCreator(path, rowIndex); }, [moveUpCreator, path, rowIndex]);
|
|
325
325
|
var moveDown = React.useMemo(function () { return moveDownCreator(path, rowIndex); }, [moveDownCreator, path, rowIndex]);
|
|
326
326
|
return (React__default["default"].createElement(material.TableRow, { key: childPath, hover: true },
|
|
@@ -336,14 +336,14 @@ var NonEmptyRowComponent = function (_a) {
|
|
|
336
336
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-down', title: translations.down, placement: 'bottom', open: enableDown ? undefined : false },
|
|
337
337
|
React__default["default"].createElement(material.IconButton, { "aria-label": translations.downAriaLabel, onClick: moveDown, disabled: !enableDown, size: 'large' },
|
|
338
338
|
React__default["default"].createElement(iconsMaterial.ArrowDownward, null)))))) : null,
|
|
339
|
-
React__default["default"].createElement(material.Grid, { item: true },
|
|
339
|
+
!disableRemove ? (React__default["default"].createElement(material.Grid, { item: true },
|
|
340
340
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-remove', title: translations.removeTooltip, placement: 'bottom' },
|
|
341
341
|
React__default["default"].createElement(material.IconButton, { "aria-label": translations.removeAriaLabel, onClick: function () { return openDeleteDialog(childPath, rowIndex); }, size: 'large' },
|
|
342
|
-
React__default["default"].createElement(iconsMaterial.Delete, null))))))) : null));
|
|
342
|
+
React__default["default"].createElement(iconsMaterial.Delete, null))))) : null))) : null));
|
|
343
343
|
};
|
|
344
344
|
var NonEmptyRow = React__default["default"].memo(NonEmptyRowComponent);
|
|
345
345
|
var TableRows = function (_a) {
|
|
346
|
-
var data = _a.data, path = _a.path, schema = _a.schema, openDeleteDialog = _a.openDeleteDialog, moveUp = _a.moveUp, moveDown = _a.moveDown, uischema = _a.uischema, config = _a.config, enabled = _a.enabled, cells = _a.cells, translations = _a.translations;
|
|
346
|
+
var data = _a.data, path = _a.path, schema = _a.schema, openDeleteDialog = _a.openDeleteDialog, moveUp = _a.moveUp, moveDown = _a.moveDown, uischema = _a.uischema, config = _a.config, enabled = _a.enabled, cells = _a.cells, translations = _a.translations, disableRemove = _a.disableRemove;
|
|
347
347
|
var isEmptyTable = data === 0;
|
|
348
348
|
if (isEmptyTable) {
|
|
349
349
|
return (React__default["default"].createElement(EmptyTable, { numColumns: getValidColumnProps(schema).length + 1, translations: translations }));
|
|
@@ -352,7 +352,7 @@ var TableRows = function (_a) {
|
|
|
352
352
|
return (React__default["default"].createElement(React__default["default"].Fragment, null, range__default["default"](data).map(function (index) {
|
|
353
353
|
var childPath = core.Paths.compose(path, "".concat(index));
|
|
354
354
|
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 ||
|
|
355
|
-
appliedUiSchemaOptions.showArrayTableSortButtons, enabled: enabled, cells: cells, path: path, translations: translations }));
|
|
355
|
+
appliedUiSchemaOptions.showArrayTableSortButtons, enabled: enabled, cells: cells, path: path, translations: translations, disableRemove: disableRemove }));
|
|
356
356
|
})));
|
|
357
357
|
};
|
|
358
358
|
var MaterialTableControl = (function (_super) {
|
|
@@ -363,7 +363,10 @@ var MaterialTableControl = (function (_super) {
|
|
|
363
363
|
return _this;
|
|
364
364
|
}
|
|
365
365
|
MaterialTableControl.prototype.render = function () {
|
|
366
|
-
var _a = this.props, label = _a.label, description = _a.description, path = _a.path, schema = _a.schema, rootSchema = _a.rootSchema, uischema = _a.uischema, errors = _a.errors, openDeleteDialog = _a.openDeleteDialog, visible = _a.visible, enabled = _a.enabled, cells = _a.cells, translations = _a.translations;
|
|
366
|
+
var _a = this.props, label = _a.label, description = _a.description, path = _a.path, schema = _a.schema, rootSchema = _a.rootSchema, uischema = _a.uischema, errors = _a.errors, openDeleteDialog = _a.openDeleteDialog, visible = _a.visible, enabled = _a.enabled, cells = _a.cells, translations = _a.translations, disableAdd = _a.disableAdd, disableRemove = _a.disableRemove, config = _a.config;
|
|
367
|
+
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
368
|
+
var doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
|
|
369
|
+
var doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
|
|
367
370
|
var controlElement = uischema;
|
|
368
371
|
var isObjectSchema = schema.type === 'object';
|
|
369
372
|
var headerCells = isObjectSchema
|
|
@@ -374,12 +377,12 @@ var MaterialTableControl = (function (_super) {
|
|
|
374
377
|
}
|
|
375
378
|
return (React__default["default"].createElement(material.Table, null,
|
|
376
379
|
React__default["default"].createElement(material.TableHead, null,
|
|
377
|
-
React__default["default"].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 }),
|
|
380
|
+
React__default["default"].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 }),
|
|
378
381
|
isObjectSchema && (React__default["default"].createElement(material.TableRow, null,
|
|
379
382
|
headerCells,
|
|
380
383
|
enabled ? React__default["default"].createElement(material.TableCell, null) : null))),
|
|
381
384
|
React__default["default"].createElement(material.TableBody, null,
|
|
382
|
-
React__default["default"].createElement(TableRows, __assign({ openDeleteDialog: openDeleteDialog, translations: translations }, this.props)))));
|
|
385
|
+
React__default["default"].createElement(TableRows, __assign({ openDeleteDialog: openDeleteDialog, translations: translations }, this.props, { disableRemove: doDisableRemove })))));
|
|
383
386
|
};
|
|
384
387
|
return MaterialTableControl;
|
|
385
388
|
}(React__default["default"].Component));
|
|
@@ -817,7 +820,7 @@ var MaterialLabelRenderer = function (_a) {
|
|
|
817
820
|
var MaterialLabelRenderer$1 = react.withJsonFormsLabelProps(MaterialLabelRenderer);
|
|
818
821
|
|
|
819
822
|
var ArrayLayoutToolbar = React__default["default"].memo(function ArrayLayoutToolbar(_a) {
|
|
820
|
-
var label = _a.label, description = _a.description, errors = _a.errors, addItem = _a.addItem, path = _a.path, enabled = _a.enabled, createDefault = _a.createDefault, translations = _a.translations;
|
|
823
|
+
var label = _a.label, description = _a.description, errors = _a.errors, addItem = _a.addItem, path = _a.path, enabled = _a.enabled, createDefault = _a.createDefault, translations = _a.translations, disableAdd = _a.disableAdd;
|
|
821
824
|
return (React__default["default"].createElement(material.Toolbar, { disableGutters: true },
|
|
822
825
|
React__default["default"].createElement(material.Stack, null,
|
|
823
826
|
React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center', justifyContent: 'space-between' },
|
|
@@ -827,7 +830,7 @@ var ArrayLayoutToolbar = React__default["default"].memo(function ArrayLayoutTool
|
|
|
827
830
|
React__default["default"].createElement(material.Typography, { variant: 'h6' }, label)),
|
|
828
831
|
React__default["default"].createElement(material.Grid, { item: true }, errors.length !== 0 && (React__default["default"].createElement(material.Grid, { item: true },
|
|
829
832
|
React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })))))),
|
|
830
|
-
enabled && (React__default["default"].createElement(material.Grid, { item: true },
|
|
833
|
+
enabled && !disableAdd && (React__default["default"].createElement(material.Grid, { item: true },
|
|
831
834
|
React__default["default"].createElement(material.Grid, { container: true },
|
|
832
835
|
React__default["default"].createElement(material.Grid, { item: true },
|
|
833
836
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-add', title: translations.addTooltip, placement: 'bottom' },
|
|
@@ -837,12 +840,12 @@ var ArrayLayoutToolbar = React__default["default"].memo(function ArrayLayoutTool
|
|
|
837
840
|
});
|
|
838
841
|
|
|
839
842
|
var ListWithDetailMasterItem = function (_a) {
|
|
840
|
-
var index = _a.index, childLabel = _a.childLabel, selected = _a.selected, enabled = _a.enabled, handleSelect = _a.handleSelect, removeItem = _a.removeItem, path = _a.path, translations = _a.translations;
|
|
843
|
+
var index = _a.index, childLabel = _a.childLabel, selected = _a.selected, enabled = _a.enabled, handleSelect = _a.handleSelect, removeItem = _a.removeItem, path = _a.path, translations = _a.translations, disableRemove = _a.disableRemove;
|
|
841
844
|
return (React__default["default"].createElement(material.ListItem, { button: true, selected: selected, onClick: handleSelect(index) },
|
|
842
845
|
React__default["default"].createElement(material.ListItemAvatar, null,
|
|
843
846
|
React__default["default"].createElement(material.Avatar, { "aria-label": 'Index' }, index + 1)),
|
|
844
847
|
React__default["default"].createElement(material.ListItemText, { primary: childLabel }),
|
|
845
|
-
enabled && (React__default["default"].createElement(material.ListItemSecondaryAction, null,
|
|
848
|
+
enabled && !disableRemove && (React__default["default"].createElement(material.ListItemSecondaryAction, null,
|
|
846
849
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-remove', title: translations.removeTooltip, placement: 'bottom' },
|
|
847
850
|
React__default["default"].createElement(material.IconButton, { "aria-label": translations.removeAriaLabel, onClick: removeItem(path, index), size: 'large' },
|
|
848
851
|
React__default["default"].createElement(iconsMaterial.Delete, null)))))));
|
|
@@ -850,7 +853,7 @@ var ListWithDetailMasterItem = function (_a) {
|
|
|
850
853
|
var ListWithDetailMasterItem$1 = react.withJsonFormsMasterListItemProps(ListWithDetailMasterItem);
|
|
851
854
|
|
|
852
855
|
var MaterialListWithDetailRenderer = function (_a) {
|
|
853
|
-
var uischemas = _a.uischemas, schema = _a.schema, uischema = _a.uischema, path = _a.path, enabled = _a.enabled, errors = _a.errors, visible = _a.visible, label = _a.label, required = _a.required, removeItems = _a.removeItems, addItem = _a.addItem, data = _a.data, renderers = _a.renderers, cells = _a.cells, config = _a.config, rootSchema = _a.rootSchema, translations = _a.translations, description = _a.description;
|
|
856
|
+
var uischemas = _a.uischemas, schema = _a.schema, uischema = _a.uischema, path = _a.path, enabled = _a.enabled, errors = _a.errors, visible = _a.visible, label = _a.label, required = _a.required, removeItems = _a.removeItems, addItem = _a.addItem, data = _a.data, renderers = _a.renderers, cells = _a.cells, config = _a.config, rootSchema = _a.rootSchema, translations = _a.translations, description = _a.description, disableAdd = _a.disableAdd, disableRemove = _a.disableRemove;
|
|
854
857
|
var _b = React.useState(undefined), selectedIndex = _b[0], setSelectedIndex = _b[1];
|
|
855
858
|
var handleRemoveItem = React.useCallback(function (p, value) { return function () {
|
|
856
859
|
removeItems(p, [value])();
|
|
@@ -867,6 +870,8 @@ var MaterialListWithDetailRenderer = function (_a) {
|
|
|
867
870
|
return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
|
|
868
871
|
}, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
|
|
869
872
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
|
|
873
|
+
var doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
|
|
874
|
+
var doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
|
|
870
875
|
React__default["default"].useEffect(function () {
|
|
871
876
|
setSelectedIndex(undefined);
|
|
872
877
|
}, [schema]);
|
|
@@ -874,10 +879,10 @@ var MaterialListWithDetailRenderer = function (_a) {
|
|
|
874
879
|
return null;
|
|
875
880
|
}
|
|
876
881
|
return (React__default["default"].createElement(React__default["default"].Fragment, null,
|
|
877
|
-
React__default["default"].createElement(ArrayLayoutToolbar, { translations: translations, label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: handleCreateDefaultValue }),
|
|
882
|
+
React__default["default"].createElement(ArrayLayoutToolbar, { translations: translations, label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: handleCreateDefaultValue, disableAdd: doDisableAdd }),
|
|
878
883
|
React__default["default"].createElement(material.Grid, { container: true, direction: 'row', spacing: 2 },
|
|
879
884
|
React__default["default"].createElement(material.Grid, { item: true, xs: 3 },
|
|
880
|
-
React__default["default"].createElement(material.List, null, data > 0 ? (map__default["default"](range__default["default"](data), function (index) { return (React__default["default"].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__default["default"].createElement("p", null, translations.noDataMessage)))),
|
|
885
|
+
React__default["default"].createElement(material.List, null, data > 0 ? (map__default["default"](range__default["default"](data), function (index) { return (React__default["default"].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__default["default"].createElement("p", null, translations.noDataMessage)))),
|
|
881
886
|
React__default["default"].createElement(material.Grid, { item: true, xs: true }, selectedIndex !== undefined ? (React__default["default"].createElement(react.JsonFormsDispatch, { renderers: renderers, cells: cells, visible: visible, schema: schema, uischema: foundUISchema, path: core.composePaths(path, "".concat(selectedIndex)) })) : (React__default["default"].createElement(material.Typography, { variant: 'h6' }, translations.noSelection))))));
|
|
882
887
|
};
|
|
883
888
|
var materialListWithDetailTester = core.rankWith(4, core.and(core.uiTypeIs('ListWithDetail'), core.isObjectArray));
|
|
@@ -1337,7 +1342,7 @@ var ExpandPanelRendererComponent = function (props) {
|
|
|
1337
1342
|
core.removeId(labelHtmlId);
|
|
1338
1343
|
};
|
|
1339
1344
|
}, [labelHtmlId]);
|
|
1340
|
-
var enabled = props.enabled, childLabel = props.childLabel, childPath = props.childPath, index = props.index, expanded = props.expanded, moveDown = props.moveDown, moveUp = props.moveUp, enableMoveDown = props.enableMoveDown, enableMoveUp = props.enableMoveUp, handleExpansion = props.handleExpansion, removeItems = props.removeItems, path = props.path, rootSchema = props.rootSchema, schema = props.schema, uischema = props.uischema, uischemas = props.uischemas, renderers = props.renderers, cells = props.cells, config = props.config, translations = props.translations;
|
|
1345
|
+
var enabled = props.enabled, childLabel = props.childLabel, childPath = props.childPath, index = props.index, expanded = props.expanded, moveDown = props.moveDown, moveUp = props.moveUp, enableMoveDown = props.enableMoveDown, enableMoveUp = props.enableMoveUp, handleExpansion = props.handleExpansion, removeItems = props.removeItems, path = props.path, rootSchema = props.rootSchema, schema = props.schema, uischema = props.uischema, uischemas = props.uischemas, renderers = props.renderers, cells = props.cells, config = props.config, translations = props.translations, disableRemove = props.disableRemove;
|
|
1341
1346
|
var foundUISchema = React.useMemo(function () {
|
|
1342
1347
|
return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
|
|
1343
1348
|
}, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
|
|
@@ -1366,7 +1371,7 @@ var ExpandPanelRendererComponent = function (props) {
|
|
|
1366
1371
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-down', title: translations.down, placement: 'bottom', open: enableMoveDown ? undefined : false },
|
|
1367
1372
|
React__default["default"].createElement(material.IconButton, { onClick: moveDown(path, index), style: iconStyle, disabled: !enableMoveDown, "aria-label": translations.downAriaLabel, size: 'large' },
|
|
1368
1373
|
React__default["default"].createElement(iconsMaterial.ArrowDownward, null)))))) : (''),
|
|
1369
|
-
enabled && (React__default["default"].createElement(material.Grid, { item: true },
|
|
1374
|
+
enabled && !disableRemove && (React__default["default"].createElement(material.Grid, { item: true },
|
|
1370
1375
|
React__default["default"].createElement(material.Tooltip, { id: 'tooltip-remove', title: translations.removeTooltip, placement: 'bottom' },
|
|
1371
1376
|
React__default["default"].createElement(material.IconButton, { onClick: removeItems(path, [index]), style: iconStyle, "aria-label": translations.removeAriaLabel, size: 'large' },
|
|
1372
1377
|
React__default["default"].createElement(iconsMaterial.Delete, null))))))))))),
|
|
@@ -1384,7 +1389,7 @@ var ctxDispatchToExpandPanelProps = function (dispatch) { return ({
|
|
|
1384
1389
|
.reverse()
|
|
1385
1390
|
.forEach(function (s) { return array.splice(s, 1); });
|
|
1386
1391
|
return array;
|
|
1387
|
-
}));
|
|
1392
|
+
}, { type: 'REMOVE', indices: toDelete }));
|
|
1388
1393
|
};
|
|
1389
1394
|
}, [dispatch]),
|
|
1390
1395
|
moveUp: React.useCallback(function (path, toMove) {
|
|
@@ -1393,6 +1398,9 @@ var ctxDispatchToExpandPanelProps = function (dispatch) { return ({
|
|
|
1393
1398
|
dispatch(core.update(path, function (array) {
|
|
1394
1399
|
core.moveUp(array, toMove);
|
|
1395
1400
|
return array;
|
|
1401
|
+
}, {
|
|
1402
|
+
type: 'MOVE',
|
|
1403
|
+
moves: [{ from: toMove, to: toMove - 1 }],
|
|
1396
1404
|
}));
|
|
1397
1405
|
};
|
|
1398
1406
|
}, [dispatch]),
|
|
@@ -1402,6 +1410,9 @@ var ctxDispatchToExpandPanelProps = function (dispatch) { return ({
|
|
|
1402
1410
|
dispatch(core.update(path, function (array) {
|
|
1403
1411
|
core.moveDown(array, toMove);
|
|
1404
1412
|
return array;
|
|
1413
|
+
}, {
|
|
1414
|
+
type: 'MOVE',
|
|
1415
|
+
moves: [{ from: toMove, to: toMove + 1 }],
|
|
1405
1416
|
}));
|
|
1406
1417
|
};
|
|
1407
1418
|
}, [dispatch]),
|
|
@@ -1551,12 +1562,14 @@ var MaterialArrayLayoutComponent = function (props) {
|
|
|
1551
1562
|
var isExpanded = function (index) {
|
|
1552
1563
|
return expanded === core.composePaths(props.path, "".concat(index));
|
|
1553
1564
|
};
|
|
1554
|
-
var enabled = props.enabled, data = props.data, path = props.path, schema = props.schema, uischema = props.uischema, errors = props.errors, addItem = props.addItem, renderers = props.renderers, cells = props.cells, label = props.label, required = props.required, rootSchema = props.rootSchema, config = props.config, uischemas = props.uischemas, translations = props.translations, description = props.description;
|
|
1565
|
+
var enabled = props.enabled, data = props.data, path = props.path, schema = props.schema, uischema = props.uischema, errors = props.errors, addItem = props.addItem, renderers = props.renderers, cells = props.cells, label = props.label, required = props.required, rootSchema = props.rootSchema, config = props.config, uischemas = props.uischemas, translations = props.translations, description = props.description, disableAdd = props.disableAdd, disableRemove = props.disableRemove;
|
|
1555
1566
|
var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
|
|
1567
|
+
var doDisableAdd = disableAdd || appliedUiSchemaOptions.disableAdd;
|
|
1568
|
+
var doDisableRemove = disableRemove || appliedUiSchemaOptions.disableRemove;
|
|
1556
1569
|
return (React__default["default"].createElement("div", null,
|
|
1557
|
-
React__default["default"].createElement(ArrayLayoutToolbar, { translations: translations, label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: innerCreateDefaultValue }),
|
|
1570
|
+
React__default["default"].createElement(ArrayLayoutToolbar, { translations: translations, label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), description: description, errors: errors, path: path, enabled: enabled, addItem: addItem, createDefault: innerCreateDefaultValue, disableAdd: doDisableAdd }),
|
|
1558
1571
|
React__default["default"].createElement("div", null, data > 0 ? (map__default["default"](range__default["default"](data), function (index) {
|
|
1559
|
-
return (React__default["default"].createElement(ExpandPanelRenderer$1, { enabled: enabled, index: index, expanded: isExpanded(index), schema: schema, path: path, handleExpansion: handleChange, uischema: uischema, renderers: renderers, cells: cells, key: index, rootSchema: rootSchema, enableMoveUp: index != 0, enableMoveDown: index < data - 1, config: config, childLabelProp: appliedUiSchemaOptions.elementLabelProp, uischemas: uischemas, translations: translations }));
|
|
1572
|
+
return (React__default["default"].createElement(ExpandPanelRenderer$1, { enabled: enabled, index: index, expanded: isExpanded(index), schema: schema, path: path, handleExpansion: handleChange, uischema: uischema, renderers: renderers, cells: cells, key: index, rootSchema: rootSchema, enableMoveUp: index != 0, enableMoveDown: index < data - 1, config: config, childLabelProp: appliedUiSchemaOptions.elementLabelProp, uischemas: uischemas, translations: translations, disableRemove: doDisableRemove }));
|
|
1560
1573
|
})) : (React__default["default"].createElement("p", null, translations.noDataMessage)))));
|
|
1561
1574
|
};
|
|
1562
1575
|
var MaterialArrayLayout$1 = React__default["default"].memo(MaterialArrayLayoutComponent);
|