@jsonforms/material-renderers 3.0.0 → 3.1.0-alpha.1

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.
Files changed (102) hide show
  1. package/lib/controls/MaterialBooleanControl.d.ts +1 -1
  2. package/lib/controls/MaterialBooleanToggleControl.d.ts +1 -1
  3. package/lib/controls/index.d.ts +2 -2
  4. package/lib/jsonforms-react-material.cjs.js +84 -17
  5. package/lib/jsonforms-react-material.cjs.js.map +1 -1
  6. package/lib/jsonforms-react-material.esm.js +85 -18
  7. package/lib/jsonforms-react-material.esm.js.map +1 -1
  8. package/lib/mui-controls/MuiCheckbox.d.ts +6 -1
  9. package/lib/mui-controls/MuiToggle.d.ts +6 -1
  10. package/package.json +23 -12
  11. package/src/additional/ListWithDetailMasterItem.tsx +1 -1
  12. package/src/complex/TableToolbar.tsx +3 -3
  13. package/src/controls/MaterialBooleanControl.tsx +84 -23
  14. package/src/controls/MaterialBooleanToggleControl.tsx +84 -23
  15. package/src/layouts/ArrayToolbar.tsx +2 -3
  16. package/src/mui-controls/MuiCheckbox.tsx +12 -5
  17. package/src/mui-controls/MuiToggle.tsx +12 -5
  18. package/docs/assets/css/main.css +0 -1
  19. package/docs/assets/images/icons.png +0 -0
  20. package/docs/assets/images/icons@2x.png +0 -0
  21. package/docs/assets/images/widgets.png +0 -0
  22. package/docs/assets/images/widgets@2x.png +0 -0
  23. package/docs/assets/js/main.js +0 -51
  24. package/docs/assets/js/search.json +0 -1
  25. package/docs/classes/combinatorproperties.html +0 -957
  26. package/docs/classes/materialanyofstringorenumcontrol.html +0 -822
  27. package/docs/classes/materialtablecontrol.html +0 -999
  28. package/docs/globals.html +0 -4492
  29. package/docs/index.html +0 -753
  30. package/docs/interfaces/ajvprops.html +0 -162
  31. package/docs/interfaces/arraylayouttoolbarprops.html +0 -253
  32. package/docs/interfaces/categorizationstate.html +0 -154
  33. package/docs/interfaces/categorizationstepperstate.html +0 -154
  34. package/docs/interfaces/combinatorpropertiesprops.html +0 -182
  35. package/docs/interfaces/deletedialogprops.html +0 -225
  36. package/docs/interfaces/dispatchpropsofexpandpanel.html +0 -296
  37. package/docs/interfaces/emptytableprops.html +0 -154
  38. package/docs/interfaces/expandpanelprops.html +0 -594
  39. package/docs/interfaces/inputref.html +0 -168
  40. package/docs/interfaces/jsonformstheme.html +0 -352
  41. package/docs/interfaces/materialcategorizationlayoutrendererprops.html +0 -460
  42. package/docs/interfaces/materialcategorizationstepperlayoutrendererprops.html +0 -394
  43. package/docs/interfaces/materiallabelablelayoutrendererprops.html +0 -328
  44. package/docs/interfaces/materiallayoutrendererprops.html +0 -317
  45. package/docs/interfaces/materialtabletoolbarprops.html +0 -302
  46. package/docs/interfaces/muitextinputprops.html +0 -168
  47. package/docs/interfaces/nonemptycellcomponentprops.html +0 -266
  48. package/docs/interfaces/nonemptycellprops.html +0 -277
  49. package/docs/interfaces/nonemptyrowprops.html +0 -366
  50. package/docs/interfaces/ownoneofprops.html +0 -308
  51. package/docs/interfaces/ownpropsofexpandpanel.html +0 -397
  52. package/docs/interfaces/ownpropsofnonemptycell.html +0 -229
  53. package/docs/interfaces/statepropsofexpandpanel.html +0 -445
  54. package/docs/interfaces/tableheadercellprops.html +0 -154
  55. package/docs/interfaces/tablerowsprop.html +0 -330
  56. package/docs/interfaces/validationprops.html +0 -168
  57. package/docs/interfaces/withdeletedialogsupport.html +0 -170
  58. package/docs/interfaces/withinput.html +0 -154
  59. package/docs/interfaces/withoptionlabel.html +0 -230
  60. package/example/index.html +0 -16
  61. package/example/index.ts +0 -31
  62. package/rollup.config.js +0 -51
  63. package/stats.html +0 -3279
  64. package/test/renderers/MatchMediaMock.ts +0 -36
  65. package/test/renderers/MaterialAllOfRenderer.test.tsx +0 -114
  66. package/test/renderers/MaterialAnyOfRenderer.test.tsx +0 -310
  67. package/test/renderers/MaterialAnyOfStringOrEnumControl.test.tsx +0 -126
  68. package/test/renderers/MaterialArrayControl.test.tsx +0 -633
  69. package/test/renderers/MaterialArrayLayout.test.tsx +0 -528
  70. package/test/renderers/MaterialBooleanCell.test.tsx +0 -374
  71. package/test/renderers/MaterialBooleanToggleCell.test.tsx +0 -466
  72. package/test/renderers/MaterialBooleanToggleControl.test.tsx +0 -469
  73. package/test/renderers/MaterialCategorizationLayout.test.tsx +0 -458
  74. package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +0 -647
  75. package/test/renderers/MaterialDateCell.test.tsx +0 -303
  76. package/test/renderers/MaterialDateControl.test.tsx +0 -411
  77. package/test/renderers/MaterialDateTimeControl.test.tsx +0 -417
  78. package/test/renderers/MaterialEnumArrayRenderer.test.tsx +0 -207
  79. package/test/renderers/MaterialEnumCell.test.tsx +0 -88
  80. package/test/renderers/MaterialEnumControl.test.tsx +0 -75
  81. package/test/renderers/MaterialGroupLayout.test.tsx +0 -90
  82. package/test/renderers/MaterialInputControl.test.tsx +0 -370
  83. package/test/renderers/MaterialIntegerCell.test.tsx +0 -333
  84. package/test/renderers/MaterialLabelRenderer.test.tsx +0 -114
  85. package/test/renderers/MaterialLayouts.test.tsx +0 -542
  86. package/test/renderers/MaterialListWithDetailRenderer.test.tsx +0 -279
  87. package/test/renderers/MaterialNativeControl.test.tsx +0 -81
  88. package/test/renderers/MaterialNumberCell.test.tsx +0 -382
  89. package/test/renderers/MaterialObjectControl.test.tsx +0 -186
  90. package/test/renderers/MaterialOneOfEnumCell.test.tsx +0 -94
  91. package/test/renderers/MaterialOneOfRadioGroupControl.test.tsx +0 -108
  92. package/test/renderers/MaterialOneOfRenderer.test.tsx +0 -603
  93. package/test/renderers/MaterialRadioGroupControl.test.tsx +0 -125
  94. package/test/renderers/MaterialSliderControl.test.tsx +0 -438
  95. package/test/renderers/MaterialTextCell.test.tsx +0 -541
  96. package/test/renderers/MaterialTextControl.test.tsx +0 -115
  97. package/test/renderers/MaterialTimeCell.test.tsx +0 -331
  98. package/test/renderers/MaterialTimeControl.test.tsx +0 -411
  99. package/test/renderers/util.ts +0 -50
  100. package/tsconfig.json +0 -13
  101. package/tsconfig.test.json +0 -7
  102. package/webpack/webpack.dev.js +0 -11
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { RankedTester, ControlProps } from '@jsonforms/core';
3
- export declare const MaterialBooleanControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config }: ControlProps) => JSX.Element;
3
+ export declare const MaterialBooleanControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config, description }: ControlProps) => JSX.Element;
4
4
  export declare const materialBooleanControlTester: RankedTester;
5
5
  declare const _default: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;
6
6
  export default _default;
@@ -1,6 +1,6 @@
1
1
  import React from 'react';
2
2
  import { RankedTester, ControlProps } from '@jsonforms/core';
3
- export declare const MaterialBooleanToggleControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config }: ControlProps) => JSX.Element;
3
+ export declare const MaterialBooleanToggleControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config, description }: ControlProps) => JSX.Element;
4
4
  export declare const materialBooleanToggleControlTester: RankedTester;
5
5
  declare const _default: React.ComponentType<import("@jsonforms/core").OwnPropsOfControl>;
6
6
  export default _default;
@@ -15,8 +15,8 @@ import MaterialAnyOfStringOrEnumControl, { materialAnyOfStringOrEnumControlTeste
15
15
  import MaterialOneOfEnumControl, { materialOneOfEnumControlTester } from './MaterialOneOfEnumControl';
16
16
  import MaterialOneOfRadioGroupControl, { materialOneOfRadioGroupControlTester } from './MaterialOneOfRadioGroupControl';
17
17
  export declare const Unwrapped: {
18
- MaterialBooleanControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config }: import("@jsonforms/core").ControlProps) => JSX.Element;
19
- MaterialBooleanToggleControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config }: import("@jsonforms/core").ControlProps) => JSX.Element;
18
+ MaterialBooleanControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config, description }: import("@jsonforms/core").ControlProps) => JSX.Element;
19
+ MaterialBooleanToggleControl: ({ data, visible, label, id, enabled, uischema, schema, rootSchema, handleChange, errors, path, config, description }: import("@jsonforms/core").ControlProps) => JSX.Element;
20
20
  MaterialEnumControl: (props: import("@jsonforms/core").ControlProps & import("@jsonforms/core").OwnPropsOfEnum & import("../mui-controls/MuiAutocomplete").WithOptionLabel & import("@jsonforms/react").TranslateProps) => JSX.Element;
21
21
  MaterialNativeControl: (props: import("@jsonforms/core").ControlProps) => JSX.Element;
22
22
  MaterialDateControl: (props: import("@jsonforms/core").ControlProps) => JSX.Element;
@@ -52,7 +52,7 @@ var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
52
52
  var ExpandMoreIcon__default = /*#__PURE__*/_interopDefaultLegacy(ExpandMoreIcon);
53
53
  var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
54
54
 
55
- /*! *****************************************************************************
55
+ /******************************************************************************
56
56
  Copyright (c) Microsoft Corporation.
57
57
 
58
58
  Permission to use, copy, modify, and/or distribute this software for any
@@ -138,10 +138,9 @@ var TableToolbar = React__default["default"].memo(function (_a) {
138
138
  React__default["default"].createElement(material.Grid, { container: true, justifyContent: 'flex-start', alignItems: 'center', spacing: 2 },
139
139
  React__default["default"].createElement(material.Grid, { item: true },
140
140
  React__default["default"].createElement(material.Typography, { variant: 'h6' }, label)),
141
- React__default["default"].createElement(material.Grid, { item: true },
142
- React__default["default"].createElement(material.Hidden, { smUp: errors.length === 0 },
143
- React__default["default"].createElement(material.Grid, { item: true },
144
- React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })))))),
141
+ React__default["default"].createElement(material.Grid, { item: true }, errors.length !== 0 &&
142
+ React__default["default"].createElement(material.Grid, { item: true },
143
+ React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors }))))),
145
144
  enabled ? (React__default["default"].createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
146
145
  React__default["default"].createElement(material.Tooltip, { id: 'tooltip-add', title: "Add to " + label, placement: 'bottom' },
147
146
  React__default["default"].createElement(material.IconButton, { "aria-label": "Add to " + label, onClick: addItem(path, core.createDefaultValue(schema)), size: 'large' },
@@ -440,11 +439,13 @@ var materialOneOfControlTester = core.rankWith(3, core.isOneOfControl);
440
439
  var MaterialOneOfRenderer$1 = react.withJsonFormsOneOfProps(MaterialOneOfRenderer);
441
440
 
442
441
  var MuiCheckbox = React__default["default"].memo(function (props) {
443
- 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;
442
+ 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, inputProps = props.inputProps;
444
443
  var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
445
- var inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };
444
+ var inputPropsMerged = merge__default["default"]({}, inputProps, {
445
+ autoFocus: !!appliedUiSchemaOptions.focus
446
+ });
446
447
  var checked = !!data;
447
- 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 }));
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: inputPropsMerged }));
448
449
  });
449
450
 
450
451
  dayjs__default["default"].extend(customParsing__default["default"]);
@@ -679,9 +680,9 @@ var ArrayLayoutToolbar = React__default["default"].memo(function (_a) {
679
680
  React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center', justifyContent: 'space-between' },
680
681
  React__default["default"].createElement(material.Grid, { item: true },
681
682
  React__default["default"].createElement(material.Typography, { variant: 'h6' }, label)),
682
- React__default["default"].createElement(material.Hidden, { smUp: errors.length === 0 },
683
+ errors.length !== 0 &&
683
684
  React__default["default"].createElement(material.Grid, { item: true },
684
- React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors }))),
685
+ React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })),
685
686
  React__default["default"].createElement(material.Grid, { item: true },
686
687
  React__default["default"].createElement(material.Grid, { container: true },
687
688
  React__default["default"].createElement(material.Grid, { item: true },
@@ -734,25 +735,91 @@ var materialListWithDetailTester = core.rankWith(4, core.and(core.uiTypeIs('List
734
735
  var MaterialListWithDetailRenderer$1 = react.withJsonFormsArrayLayoutProps(MaterialListWithDetailRenderer);
735
736
 
736
737
  var MaterialBooleanControl = function (_a) {
737
- var data = _a.data, visible = _a.visible, label = _a.label, id = _a.id, enabled = _a.enabled, uischema = _a.uischema, schema = _a.schema, rootSchema = _a.rootSchema, handleChange = _a.handleChange, errors = _a.errors, path = _a.path, config = _a.config;
738
+ var data = _a.data, visible = _a.visible, label = _a.label, id = _a.id, enabled = _a.enabled, uischema = _a.uischema, schema = _a.schema, rootSchema = _a.rootSchema, handleChange = _a.handleChange, errors = _a.errors, path = _a.path, config = _a.config, description = _a.description;
739
+ var isValid = errors.length === 0;
740
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
741
+ var showDescription = !core.isDescriptionHidden(visible, description,
742
+ false, appliedUiSchemaOptions.showUnfocusedDescription);
743
+ var showTooltip = !showDescription && !core.isDescriptionHidden(visible, description,
744
+ true,
745
+ true);
746
+ var firstFormHelperText = showDescription
747
+ ? description
748
+ : !isValid
749
+ ? errors
750
+ : null;
751
+ var secondFormHelperText = showDescription && !isValid ? errors : null;
752
+ var descriptionIds = [];
753
+ var tooltipId = id + "-tip";
754
+ var helpId1 = id + "-help1";
755
+ var helpId2 = id + "-help2";
756
+ if (showTooltip) {
757
+ descriptionIds.push(tooltipId);
758
+ }
759
+ if (firstFormHelperText) {
760
+ descriptionIds.push(helpId1);
761
+ }
762
+ if (secondFormHelperText) {
763
+ descriptionIds.push(helpId2);
764
+ }
765
+ var ariaDescribedBy = descriptionIds.join(' ');
738
766
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
739
- React__default["default"].createElement(material.FormControlLabel, { label: label, id: id, control: React__default["default"].createElement(MuiCheckbox, { id: id + "-input", isValid: isEmpty__default["default"](errors), data: data, enabled: enabled, visible: visible, path: path, uischema: uischema, schema: schema, rootSchema: rootSchema, handleChange: handleChange, errors: errors, config: config }) })));
767
+ React__default["default"].createElement(material.Tooltip, { id: tooltipId, title: (showTooltip) ? description : '' },
768
+ React__default["default"].createElement(material.FormControlLabel, { label: label, id: id, control: React__default["default"].createElement(MuiCheckbox, { id: id + "-input", isValid: isEmpty__default["default"](errors), data: data, enabled: enabled, visible: visible, path: path, uischema: uischema, schema: schema, rootSchema: rootSchema, handleChange: handleChange, errors: errors, config: config, inputProps: {
769
+ 'aria-describedby': ariaDescribedBy
770
+ } }) })),
771
+ React__default["default"].createElement(material.FormHelperText, { id: helpId1, error: !isValid && !showDescription }, firstFormHelperText),
772
+ React__default["default"].createElement(material.FormHelperText, { id: helpId2, error: !isValid }, secondFormHelperText)));
740
773
  };
741
774
  var materialBooleanControlTester = core.rankWith(2, core.isBooleanControl);
742
775
  var MaterialBooleanControl$1 = react.withJsonFormsControlProps(MaterialBooleanControl);
743
776
 
744
777
  var MuiToggle = React__default["default"].memo(function (props) {
745
- 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;
778
+ 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, inputProps = props.inputProps;
746
779
  var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
747
- var inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };
780
+ var inputPropsMerged = merge__default["default"]({}, inputProps, {
781
+ autoFocus: !!appliedUiSchemaOptions.focus
782
+ });
748
783
  var checked = !!data;
749
- return (React__default["default"].createElement(material.Switch, { checked: checked, onChange: function (_ev, isChecked) { return handleChange(path, isChecked); }, className: className, id: id, disabled: !enabled, inputProps: inputProps }));
784
+ return (React__default["default"].createElement(material.Switch, { checked: checked, onChange: function (_ev, isChecked) { return handleChange(path, isChecked); }, className: className, id: id, disabled: !enabled, inputProps: inputPropsMerged }));
750
785
  });
751
786
 
752
787
  var MaterialBooleanToggleControl = function (_a) {
753
- var data = _a.data, visible = _a.visible, label = _a.label, id = _a.id, enabled = _a.enabled, uischema = _a.uischema, schema = _a.schema, rootSchema = _a.rootSchema, handleChange = _a.handleChange, errors = _a.errors, path = _a.path, config = _a.config;
788
+ var data = _a.data, visible = _a.visible, label = _a.label, id = _a.id, enabled = _a.enabled, uischema = _a.uischema, schema = _a.schema, rootSchema = _a.rootSchema, handleChange = _a.handleChange, errors = _a.errors, path = _a.path, config = _a.config, description = _a.description;
789
+ var isValid = errors.length === 0;
790
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
791
+ var showDescription = !core.isDescriptionHidden(visible, description,
792
+ false, appliedUiSchemaOptions.showUnfocusedDescription);
793
+ var showTooltip = !showDescription && !core.isDescriptionHidden(visible, description,
794
+ true,
795
+ true);
796
+ var firstFormHelperText = showDescription
797
+ ? description
798
+ : !isValid
799
+ ? errors
800
+ : null;
801
+ var secondFormHelperText = showDescription && !isValid ? errors : null;
802
+ var descriptionIds = [];
803
+ var tooltipId = id + "-tip";
804
+ var helpId1 = id + "-help1";
805
+ var helpId2 = id + "-help2";
806
+ if (showTooltip) {
807
+ descriptionIds.push(tooltipId);
808
+ }
809
+ if (firstFormHelperText) {
810
+ descriptionIds.push(helpId1);
811
+ }
812
+ if (secondFormHelperText) {
813
+ descriptionIds.push(helpId2);
814
+ }
815
+ var ariaDescribedBy = descriptionIds.join(' ');
754
816
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
755
- React__default["default"].createElement(material.FormControlLabel, { label: label, id: id, control: React__default["default"].createElement(MuiToggle, { id: id + "-input", isValid: isEmpty__default["default"](errors), data: data, enabled: enabled, visible: visible, path: path, uischema: uischema, schema: schema, rootSchema: rootSchema, handleChange: handleChange, errors: errors, config: config }) })));
817
+ React__default["default"].createElement(material.Tooltip, { id: tooltipId, title: (showTooltip) ? description : '' },
818
+ React__default["default"].createElement(material.FormControlLabel, { label: label, id: id, control: React__default["default"].createElement(MuiToggle, { id: id + "-input", isValid: isEmpty__default["default"](errors), data: data, enabled: enabled, visible: visible, path: path, uischema: uischema, schema: schema, rootSchema: rootSchema, handleChange: handleChange, errors: errors, config: config, inputProps: {
819
+ 'aria-describedby': ariaDescribedBy
820
+ } }) })),
821
+ React__default["default"].createElement(material.FormHelperText, { id: helpId1, error: !isValid && !showDescription }, firstFormHelperText),
822
+ React__default["default"].createElement(material.FormHelperText, { id: helpId2, error: !isValid }, secondFormHelperText)));
756
823
  };
757
824
  var materialBooleanToggleControlTester = core.rankWith(3, core.and(core.isBooleanControl, core.optionIs('toggle', true)));
758
825
  var MaterialBooleanToggleControl$1 = react.withJsonFormsControlProps(MaterialBooleanToggleControl);