@jsonforms/material-renderers 3.2.0-alpha.1 → 3.2.0-alpha.3

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.
@@ -4,6 +4,7 @@ interface CombinatorPropertiesProps {
4
4
  schema: JsonSchema;
5
5
  combinatorKeyword: 'oneOf' | 'anyOf';
6
6
  path: string;
7
+ rootSchema: JsonSchema;
7
8
  }
8
9
  export declare class CombinatorProperties extends React.Component<CombinatorPropertiesProps, {}> {
9
10
  render(): React.JSX.Element;
@@ -128,9 +128,9 @@ var CombinatorProperties = (function (_super) {
128
128
  return _super !== null && _super.apply(this, arguments) || this;
129
129
  }
130
130
  CombinatorProperties.prototype.render = function () {
131
- var _a = this.props, schema = _a.schema, combinatorKeyword = _a.combinatorKeyword, path = _a.path;
131
+ var _a = this.props, schema = _a.schema, combinatorKeyword = _a.combinatorKeyword, path = _a.path, rootSchema = _a.rootSchema;
132
132
  var otherProps = omit__default["default"](schema, combinatorKeyword);
133
- var foundUISchema = core.Generate.uiSchema(otherProps, 'VerticalLayout');
133
+ var foundUISchema = core.Generate.uiSchema(otherProps, 'VerticalLayout', undefined, rootSchema);
134
134
  var isLayoutWithElements = false;
135
135
  if (foundUISchema !== null && core.isLayout(foundUISchema)) {
136
136
  isLayoutWithElements = foundUISchema.elements.length > 0;
@@ -163,7 +163,7 @@ var MaterialAnyOfRenderer = function (_a) {
163
163
  var handleTabChange = React.useCallback(function (_event, newIndex) {
164
164
  if (isEmpty__default["default"](data) ||
165
165
  typeof data ===
166
- typeof core.createDefaultValue(anyOfRenderInfos[newIndex].schema)) {
166
+ typeof core.createDefaultValue(anyOfRenderInfos[newIndex].schema, rootSchema)) {
167
167
  setSelectedAnyOf(newIndex);
168
168
  }
169
169
  else {
@@ -172,7 +172,7 @@ var MaterialAnyOfRenderer = function (_a) {
172
172
  }
173
173
  }, [setConfirmDialogOpen, setSelectedAnyOf, data]);
174
174
  var openNewTab = function (newIndex) {
175
- handleChange(path, core.createDefaultValue(anyOfRenderInfos[newIndex].schema));
175
+ handleChange(path, core.createDefaultValue(anyOfRenderInfos[newIndex].schema, rootSchema));
176
176
  setSelectedAnyOf(newIndex);
177
177
  };
178
178
  var confirm = React.useCallback(function () {
@@ -182,7 +182,7 @@ var MaterialAnyOfRenderer = function (_a) {
182
182
  var anyOf = 'anyOf';
183
183
  var anyOfRenderInfos = core.createCombinatorRenderInfos(schema.anyOf, rootSchema, anyOf, uischema, path, uischemas);
184
184
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
185
- React__default["default"].createElement(CombinatorProperties, { schema: schema, combinatorKeyword: anyOf, path: path }),
185
+ React__default["default"].createElement(CombinatorProperties, { schema: schema, combinatorKeyword: anyOf, path: path, rootSchema: rootSchema }),
186
186
  React__default["default"].createElement(material.Tabs, { value: selectedAnyOf, onChange: handleTabChange }, anyOfRenderInfos.map(function (anyOfRenderInfo) { return (React__default["default"].createElement(material.Tab, { key: anyOfRenderInfo.label, label: anyOfRenderInfo.label })); })),
187
187
  anyOfRenderInfos.map(function (anyOfRenderInfo, anyOfIndex) {
188
188
  return selectedAnyOf === anyOfIndex && (React__default["default"].createElement(react.JsonFormsDispatch, { key: anyOfIndex, schema: anyOfRenderInfo.schema, uischema: anyOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells }));
@@ -218,7 +218,7 @@ var fixedCellSmall = {
218
218
  paddingRight: 0,
219
219
  };
220
220
  var TableToolbar = React__default["default"].memo(function TableToolbar(_a) {
221
- var numColumns = _a.numColumns, errors = _a.errors, label = _a.label, path = _a.path, addItem = _a.addItem, schema = _a.schema, enabled = _a.enabled, translations = _a.translations;
221
+ var numColumns = _a.numColumns, errors = _a.errors, label = _a.label, path = _a.path, addItem = _a.addItem, schema = _a.schema, enabled = _a.enabled, translations = _a.translations, rootSchema = _a.rootSchema;
222
222
  return (React__default["default"].createElement(material.TableRow, null,
223
223
  React__default["default"].createElement(NoBorderTableCell, { colSpan: numColumns },
224
224
  React__default["default"].createElement(material.Grid, { container: true, justifyContent: 'flex-start', alignItems: 'center', spacing: 2 },
@@ -228,7 +228,7 @@ var TableToolbar = React__default["default"].memo(function TableToolbar(_a) {
228
228
  React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })))))),
229
229
  enabled ? (React__default["default"].createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
230
230
  React__default["default"].createElement(material.Tooltip, { id: 'tooltip-add', title: translations.addTooltip, placement: 'bottom' },
231
- React__default["default"].createElement(material.IconButton, { "aria-label": translations.addAriaLabel, onClick: addItem(path, core.createDefaultValue(schema)), size: 'large' },
231
+ React__default["default"].createElement(material.IconButton, { "aria-label": translations.addAriaLabel, onClick: addItem(path, core.createDefaultValue(schema, rootSchema)), size: 'large' },
232
232
  React__default["default"].createElement(AddIcon__default["default"], null))))) : null));
233
233
  });
234
234
 
@@ -447,7 +447,7 @@ var MuiAutocomplete = function (props) {
447
447
  }, inputValue: inputValue, onInputChange: function (_event, newInputValue) {
448
448
  setInputValue(newInputValue);
449
449
  }, 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) {
450
- return (React__default["default"].createElement(material.TextField, __assign({ label: label, 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 })));
450
+ return (React__default["default"].createElement(material.TextField, __assign({ label: label, type: 'text', inputProps: params.inputProps, inputRef: params.InputProps.ref, autoFocus: appliedUiSchemaOptions.focus, disabled: !enabled }, params, { id: id, required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, focused: focused })));
451
451
  }, renderOption: renderOption, filterOptions: filterOptions }),
452
452
  React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
453
453
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText)));
@@ -696,8 +696,11 @@ var materialEnumArrayRendererTester = core.rankWith(5, core.and(core.uiTypeIs('C
696
696
  return core.hasType(schema, 'array') &&
697
697
  !Array.isArray(schema.items) &&
698
698
  schema.uniqueItems === true;
699
- }), core.schemaSubPathMatches('items', function (schema) {
700
- return hasOneOfItems(schema) || hasEnumItems(schema);
699
+ }), core.schemaSubPathMatches('items', function (schema, rootSchema) {
700
+ var resolvedSchema = schema.$ref
701
+ ? core.resolveSchema(rootSchema, schema.$ref, rootSchema)
702
+ : schema;
703
+ return hasOneOfItems(resolvedSchema) || hasEnumItems(resolvedSchema);
701
704
  }))));
702
705
  var MaterialEnumArrayRenderer$1 = react.withJsonFormsMultiEnumProps(MaterialEnumArrayRenderer);
703
706
 
@@ -706,8 +709,8 @@ var MaterialObjectRenderer = function (_a) {
706
709
  var detailUiSchema = React.useMemo(function () {
707
710
  return core.findUISchema(uischemas, schema, uischema.scope, path, function () {
708
711
  return isEmpty__default["default"](path)
709
- ? core.Generate.uiSchema(schema, 'VerticalLayout')
710
- : __assign(__assign({}, core.Generate.uiSchema(schema, 'Group')), { label: label });
712
+ ? core.Generate.uiSchema(schema, 'VerticalLayout', undefined, rootSchema)
713
+ : __assign(__assign({}, core.Generate.uiSchema(schema, 'Group', undefined, rootSchema)), { label: label });
711
714
  }, uischema, rootSchema);
712
715
  }, [uischemas, schema, uischema.scope, path, label, uischema, rootSchema]);
713
716
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
@@ -727,7 +730,7 @@ var MaterialOneOfRenderer = function (_a) {
727
730
  }, [setConfirmDialogOpen]);
728
731
  var oneOfRenderInfos = core.createCombinatorRenderInfos(schema.oneOf, rootSchema, 'oneOf', uischema, path, uischemas);
729
732
  var openNewTab = function (newIndex) {
730
- handleChange(path, core.createDefaultValue(oneOfRenderInfos[newIndex].schema));
733
+ handleChange(path, core.createDefaultValue(oneOfRenderInfos[newIndex].schema, rootSchema));
731
734
  setSelectedIndex(newIndex);
732
735
  };
733
736
  var confirm = React.useCallback(function () {
@@ -744,7 +747,7 @@ var MaterialOneOfRenderer = function (_a) {
744
747
  }
745
748
  }, [setConfirmDialogOpen, setSelectedIndex, data]);
746
749
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
747
- React__default["default"].createElement(CombinatorProperties, { schema: schema, combinatorKeyword: 'oneOf', path: path }),
750
+ React__default["default"].createElement(CombinatorProperties, { schema: schema, combinatorKeyword: 'oneOf', path: path, rootSchema: rootSchema }),
748
751
  React__default["default"].createElement(material.Tabs, { value: selectedIndex, onChange: handleTabChange }, oneOfRenderInfos.map(function (oneOfRenderInfo) { return (React__default["default"].createElement(material.Tab, { key: oneOfRenderInfo.label, label: oneOfRenderInfo.label })); })),
749
752
  oneOfRenderInfos.map(function (oneOfRenderInfo, oneOfIndex) {
750
753
  return selectedIndex === oneOfIndex && (React__default["default"].createElement(react.JsonFormsDispatch, { key: oneOfIndex, schema: oneOfRenderInfo.schema, uischema: oneOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells }));
@@ -805,7 +808,7 @@ var MaterialListWithDetailRenderer = function (_a) {
805
808
  }
806
809
  }; }, [removeItems, setSelectedIndex]);
807
810
  var handleListItemClick = React.useCallback(function (index) { return function () { return setSelectedIndex(index); }; }, [setSelectedIndex]);
808
- var handleCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(schema); }, [core.createDefaultValue]);
811
+ var handleCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(schema, rootSchema); }, [core.createDefaultValue]);
809
812
  var foundUISchema = React.useMemo(function () {
810
813
  return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
811
814
  }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
@@ -1130,11 +1133,10 @@ var MaterialRadioGroup = function (props) {
1130
1133
  var isValid = errors.length === 0;
1131
1134
  var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
1132
1135
  var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
1133
- var onChange = function (_ev, value) { return handleChange(path, value); };
1134
1136
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
1135
1137
  React__default["default"].createElement(material.FormControl, { component: 'fieldset', fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur },
1136
1138
  React__default["default"].createElement(material.FormLabel, { htmlFor: id, error: !isValid, component: 'legend', required: core.showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk) }, label),
1137
- React__default["default"].createElement(material.RadioGroup, { value: (_a = props.data) !== null && _a !== void 0 ? _a : '', onChange: onChange, row: true }, options.map(function (option) { return (React__default["default"].createElement(material.FormControlLabel, { value: option.value, key: option.label, control: React__default["default"].createElement(material.Radio, { checked: data === option.value }), label: option.label, disabled: !enabled })); })),
1139
+ React__default["default"].createElement(material.RadioGroup, { value: (_a = props.data) !== null && _a !== void 0 ? _a : '', row: true }, options.map(function (option) { return (React__default["default"].createElement(material.FormControlLabel, { value: option.value, key: option.label, control: React__default["default"].createElement(material.Radio, { checked: data === option.value, onChange: function () { return handleChange(path, option.value); } }), label: option.label, disabled: !enabled })); })),
1138
1140
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, !isValid ? errors : showDescription ? description : null))));
1139
1141
  };
1140
1142
 
@@ -1431,7 +1433,7 @@ var MaterialCategorizationLayout = withAjvProps(react.withTranslateProps(react.w
1431
1433
 
1432
1434
  var MaterialArrayLayoutComponent = function (props) {
1433
1435
  var _a = React.useState(false), expanded = _a[0], setExpanded = _a[1];
1434
- var innerCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(props.schema); }, [props.schema]);
1436
+ var innerCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(props.schema, props.rootSchema); }, [props.schema]);
1435
1437
  var handleChange = React.useCallback(function (panel) { return function (_event, expandedPanel) {
1436
1438
  setExpanded(expandedPanel ? panel : false);
1437
1439
  }; }, []);