Skip to content

Commit d4f629b

Browse files
committed
Export all unwrapped React Material renderers
Previously only the control renderers were made available unwrapped. Now all unwrapped React Material renderers are exported. Implements #1687 Contributed on behalf of STMicroelectronics
1 parent 8c82d78 commit d4f629b

File tree

14 files changed

+295
-111
lines changed

14 files changed

+295
-111
lines changed

packages/material-renderers/src/additional/ListWithDetailMasterItem.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -35,7 +35,7 @@ import {
3535
import DeleteIcon from '@mui/icons-material/Delete';
3636
import React from 'react';
3737

38-
const ListWithDetailMasterItem = ({
38+
export const ListWithDetailMasterItem = ({
3939
index,
4040
childLabel,
4141
selected,

packages/material-renderers/src/additional/index.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,16 @@
2525
import MaterialLabelRenderer, {
2626
materialLabelRendererTester,
2727
} from './MaterialLabelRenderer';
28-
export { MaterialLabelRenderer, materialLabelRendererTester };
28+
2929
import MaterialListWithDetailRenderer, {
3030
materialListWithDetailTester,
3131
} from './MaterialListWithDetailRenderer';
32-
export { MaterialListWithDetailRenderer, materialListWithDetailTester };
32+
33+
export {
34+
MaterialLabelRenderer,
35+
materialLabelRendererTester,
36+
MaterialListWithDetailRenderer,
37+
materialListWithDetailTester,
38+
};
39+
40+
export * from './ListWithDetailMasterItem';
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
/*
2+
The MIT License
3+
4+
Copyright (c) 2017-2019 EclipseSource Munich
5+
https://github.com/eclipsesource/jsonforms
6+
7+
Permission is hereby granted, free of charge, to any person obtaining a copy
8+
of this software and associated documentation files (the "Software"), to deal
9+
in the Software without restriction, including without limitation the rights
10+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
copies of the Software, and to permit persons to whom the Software is
12+
furnished to do so, subject to the following conditions:
13+
14+
The above copyright notice and this permission notice shall be included in
15+
all copies or substantial portions of the Software.
16+
17+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23+
THE SOFTWARE.
24+
*/
25+
import { MaterialLabelRenderer } from './MaterialLabelRenderer';
26+
27+
import { MaterialListWithDetailRenderer } from './MaterialListWithDetailRenderer';
28+
29+
export const UnwrappedAdditional = {
30+
MaterialLabelRenderer,
31+
MaterialListWithDetailRenderer,
32+
};

packages/material-renderers/src/complex/CombinatorProperties.tsx

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,12 @@
2323
THE SOFTWARE.
2424
*/
2525
import React from 'react';
26-
import { Generate, JsonSchema, Layout, UISchemaElement } from '@jsonforms/core';
26+
import {
27+
Generate,
28+
JsonSchema,
29+
UISchemaElement,
30+
isLayout,
31+
} from '@jsonforms/core';
2732
import { JsonFormsDispatch } from '@jsonforms/react';
2833
import omit from 'lodash/omit';
2934

@@ -33,9 +38,6 @@ interface CombinatorPropertiesProps {
3338
path: string;
3439
}
3540

36-
export const isLayout = (uischema: UISchemaElement): uischema is Layout =>
37-
uischema.hasOwnProperty('elements');
38-
3941
export class CombinatorProperties extends React.Component<
4042
CombinatorPropertiesProps,
4143
// TODO fix @typescript-eslint/ban-types

packages/material-renderers/src/complex/MaterialArrayControlRenderer.tsx

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,14 @@
2323
THE SOFTWARE.
2424
*/
2525
import React, { useCallback, useState } from 'react';
26-
import { ArrayLayoutProps } from '@jsonforms/core';
26+
import {
27+
ArrayLayoutProps,
28+
RankedTester,
29+
isObjectArrayControl,
30+
isPrimitiveArrayControl,
31+
or,
32+
rankWith,
33+
} from '@jsonforms/core';
2734
import { withJsonFormsArrayLayoutProps } from '@jsonforms/react';
2835
import { MaterialTableControl } from './MaterialTableControl';
2936
import { Hidden } from '@mui/material';
@@ -68,4 +75,9 @@ export const MaterialArrayControlRenderer = (props: ArrayLayoutProps) => {
6875
);
6976
};
7077

78+
export const materialArrayControlTester: RankedTester = rankWith(
79+
3,
80+
or(isObjectArrayControl, isPrimitiveArrayControl)
81+
);
82+
7183
export default withJsonFormsArrayLayoutProps(MaterialArrayControlRenderer);

packages/material-renderers/src/complex/index.ts

Lines changed: 31 additions & 28 deletions
Original file line numberDiff line numberDiff line change
@@ -22,42 +22,45 @@
2222
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2323
THE SOFTWARE.
2424
*/
25-
import {
26-
isObjectArrayControl,
27-
isPrimitiveArrayControl,
28-
or,
29-
RankedTester,
30-
rankWith,
31-
} from '@jsonforms/core';
32-
import MaterialArrayControlRenderer from './MaterialArrayControlRenderer';
33-
import MaterialObjectRenderer, {
34-
materialObjectControlTester,
35-
} from './MaterialObjectRenderer';
3625
import MaterialAllOfRenderer, {
3726
materialAllOfControlTester,
3827
} from './MaterialAllOfRenderer';
3928
import MaterialAnyOfRenderer, {
4029
materialAnyOfControlTester,
4130
} from './MaterialAnyOfRenderer';
31+
import MaterialArrayControlRenderer, {
32+
materialArrayControlTester,
33+
} from './MaterialArrayControlRenderer';
34+
import MaterialEnumArrayRenderer, {
35+
materialEnumArrayRendererTester,
36+
} from './MaterialEnumArrayRenderer';
37+
import MaterialObjectRenderer, {
38+
materialObjectControlTester,
39+
} from './MaterialObjectRenderer';
4240
import MaterialOneOfRenderer, {
4341
materialOneOfControlTester,
4442
} from './MaterialOneOfRenderer';
45-
import MaterialEnumArrayRenderer, {
43+
44+
export {
45+
materialAllOfControlTester,
46+
MaterialAllOfRenderer,
47+
materialAnyOfControlTester,
48+
MaterialAnyOfRenderer,
49+
materialArrayControlTester,
50+
MaterialArrayControlRenderer,
4651
materialEnumArrayRendererTester,
47-
} from './MaterialEnumArrayRenderer';
52+
MaterialEnumArrayRenderer,
53+
materialObjectControlTester,
54+
MaterialObjectRenderer,
55+
materialOneOfControlTester,
56+
MaterialOneOfRenderer,
57+
};
58+
59+
export * from './CombinatorProperties';
60+
export * from './DeleteDialog';
61+
export * from './MaterialTableControl';
62+
export * from './TableToolbar';
63+
export * from './ValidationIcon';
4864

49-
export const materialArrayControlTester: RankedTester = rankWith(
50-
3,
51-
or(isObjectArrayControl, isPrimitiveArrayControl)
52-
);
53-
export { MaterialArrayControlRenderer };
54-
export { MaterialObjectRenderer };
55-
export { MaterialAllOfRenderer };
56-
export { MaterialAnyOfRenderer };
57-
export { MaterialOneOfRenderer };
58-
export { MaterialEnumArrayRenderer };
59-
export { materialObjectControlTester };
60-
export { materialAllOfControlTester };
61-
export { materialAnyOfControlTester };
62-
export { materialOneOfControlTester };
63-
export { materialEnumArrayRendererTester };
65+
import NoBorderTableCell from './NoBorderTableCell';
66+
export { NoBorderTableCell };
Lines changed: 39 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,39 @@
1+
/*
2+
The MIT License
3+
4+
Copyright (c) 2017-2019 EclipseSource Munich
5+
https://github.com/eclipsesource/jsonforms
6+
7+
Permission is hereby granted, free of charge, to any person obtaining a copy
8+
of this software and associated documentation files (the "Software"), to deal
9+
in the Software without restriction, including without limitation the rights
10+
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
11+
copies of the Software, and to permit persons to whom the Software is
12+
furnished to do so, subject to the following conditions:
13+
14+
The above copyright notice and this permission notice shall be included in
15+
all copies or substantial portions of the Software.
16+
17+
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
18+
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
19+
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
20+
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
21+
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
22+
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23+
THE SOFTWARE.
24+
*/
25+
import { MaterialAllOfRenderer } from './MaterialAllOfRenderer';
26+
import { MaterialAnyOfRenderer } from './MaterialAnyOfRenderer';
27+
import { MaterialArrayControlRenderer } from './MaterialArrayControlRenderer';
28+
import { MaterialEnumArrayRenderer } from './MaterialEnumArrayRenderer';
29+
import { MaterialObjectRenderer } from './MaterialObjectRenderer';
30+
import { MaterialOneOfRenderer } from './MaterialOneOfRenderer';
31+
32+
export const UnwrappedComplex = {
33+
MaterialAllOfRenderer,
34+
MaterialAnyOfRenderer,
35+
MaterialArrayControlRenderer,
36+
MaterialEnumArrayRenderer,
37+
MaterialObjectRenderer,
38+
MaterialOneOfRenderer,
39+
};

packages/material-renderers/src/controls/index.ts

Lines changed: 35 additions & 71 deletions
Original file line numberDiff line numberDiff line change
@@ -22,119 +22,83 @@
2222
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2323
THE SOFTWARE.
2424
*/
25+
import MaterialAnyOfStringOrEnumControl, {
26+
materialAnyOfStringOrEnumControlTester,
27+
} from './MaterialAnyOfStringOrEnumControl';
2528
import MaterialBooleanControl, {
2629
materialBooleanControlTester,
27-
MaterialBooleanControl as MaterialBooleanControlUnwrapped,
2830
} from './MaterialBooleanControl';
2931
import MaterialBooleanToggleControl, {
3032
materialBooleanToggleControlTester,
31-
MaterialBooleanToggleControl as MaterialBooleanToggleControlUnwrapped,
3233
} from './MaterialBooleanToggleControl';
33-
import MaterialEnumControl, {
34-
materialEnumControlTester,
35-
MaterialEnumControl as MaterialEnumControlUnwrapped,
36-
} from './MaterialEnumControl';
37-
import MaterialNativeControl, {
38-
materialNativeControlTester,
39-
MaterialNativeControl as MaterialNativeControlUnwrapped,
40-
} from './MaterialNativeControl';
4134
import MaterialDateControl, {
4235
materialDateControlTester,
43-
MaterialDateControl as MaterialDateControlUnwrapped,
4436
} from './MaterialDateControl';
4537
import MaterialDateTimeControl, {
4638
materialDateTimeControlTester,
47-
MaterialDateTimeControl as MaterialDateTimeControlUnwrapped,
4839
} from './MaterialDateTimeControl';
49-
import MaterialTimeControl, {
50-
materialTimeControlTester,
51-
MaterialTimeControl as MaterialTimeControlUnwrapped,
52-
} from './MaterialTimeControl';
53-
import MaterialSliderControl, {
54-
materialSliderControlTester,
55-
MaterialSliderControl as MaterialSliderControlUnwrapped,
56-
} from './MaterialSliderControl';
57-
import MaterialRadioGroupControl, {
58-
materialRadioGroupControlTester,
59-
MaterialRadioGroupControl as MaterialRadioGroupControlUnwrapped,
60-
} from './MaterialRadioGroupControl';
40+
import MaterialEnumControl, {
41+
materialEnumControlTester,
42+
} from './MaterialEnumControl';
6143
import MaterialIntegerControl, {
6244
materialIntegerControlTester,
63-
MaterialIntegerControl as MaterialIntegerControlUnwrapped,
6445
} from './MaterialIntegerControl';
46+
import MaterialNativeControl, {
47+
materialNativeControlTester,
48+
} from './MaterialNativeControl';
6549
import MaterialNumberControl, {
6650
materialNumberControlTester,
67-
MaterialNumberControl as MaterialNumberControlUnwrapped,
6851
} from './MaterialNumberControl';
69-
import MaterialTextControl, {
70-
materialTextControlTester,
71-
MaterialTextControl as MaterialTextControlUnwrapped,
72-
} from './MaterialTextControl';
73-
74-
import MaterialAnyOfStringOrEnumControl, {
75-
materialAnyOfStringOrEnumControlTester,
76-
MaterialAnyOfStringOrEnumControl as MaterialAnyOfStringOrEnumControlUnwrapped,
77-
} from './MaterialAnyOfStringOrEnumControl';
78-
7952
import MaterialOneOfEnumControl, {
8053
materialOneOfEnumControlTester,
81-
MaterialOneOfEnumControl as MaterialOneOfEnumControlUnwrapped,
8254
} from './MaterialOneOfEnumControl';
83-
8455
import MaterialOneOfRadioGroupControl, {
8556
materialOneOfRadioGroupControlTester,
86-
MaterialOneOfRadioGroupControl as MaterialOneOfRadioGroupControlUnwrapped,
8757
} from './MaterialOneOfRadioGroupControl';
88-
89-
export const Unwrapped = {
90-
MaterialBooleanControl: MaterialBooleanControlUnwrapped,
91-
MaterialBooleanToggleControl: MaterialBooleanToggleControlUnwrapped,
92-
MaterialEnumControl: MaterialEnumControlUnwrapped,
93-
MaterialNativeControl: MaterialNativeControlUnwrapped,
94-
MaterialDateControl: MaterialDateControlUnwrapped,
95-
MaterialDateTimeControl: MaterialDateTimeControlUnwrapped,
96-
MaterialTimeControl: MaterialTimeControlUnwrapped,
97-
MaterialSliderControl: MaterialSliderControlUnwrapped,
98-
MaterialRadioGroupControl: MaterialRadioGroupControlUnwrapped,
99-
MaterialIntegerControl: MaterialIntegerControlUnwrapped,
100-
MaterialNumberControl: MaterialNumberControlUnwrapped,
101-
MaterialTextControl: MaterialTextControlUnwrapped,
102-
MaterialAnyOfStringOrEnumControl: MaterialAnyOfStringOrEnumControlUnwrapped,
103-
MaterialOneOfEnumControl: MaterialOneOfEnumControlUnwrapped,
104-
MaterialOneOfRadioGroupControl: MaterialOneOfRadioGroupControlUnwrapped,
105-
};
58+
import MaterialRadioGroupControl, {
59+
materialRadioGroupControlTester,
60+
} from './MaterialRadioGroupControl';
61+
import MaterialSliderControl, {
62+
materialSliderControlTester,
63+
} from './MaterialSliderControl';
64+
import MaterialTextControl, {
65+
materialTextControlTester,
66+
} from './MaterialTextControl';
67+
import MaterialTimeControl, {
68+
materialTimeControlTester,
69+
} from './MaterialTimeControl';
10670

10771
export {
72+
MaterialAnyOfStringOrEnumControl,
73+
materialAnyOfStringOrEnumControlTester,
10874
MaterialBooleanControl,
10975
materialBooleanControlTester,
11076
MaterialBooleanToggleControl,
11177
materialBooleanToggleControlTester,
112-
MaterialEnumControl,
113-
materialEnumControlTester,
114-
MaterialNativeControl,
115-
materialNativeControlTester,
11678
MaterialDateControl,
11779
materialDateControlTester,
11880
MaterialDateTimeControl,
11981
materialDateTimeControlTester,
120-
MaterialTimeControl,
121-
materialTimeControlTester,
122-
MaterialSliderControl,
123-
materialSliderControlTester,
124-
MaterialRadioGroupControl,
125-
materialRadioGroupControlTester,
82+
MaterialEnumControl,
83+
materialEnumControlTester,
12684
MaterialIntegerControl,
12785
materialIntegerControlTester,
86+
MaterialNativeControl,
87+
materialNativeControlTester,
12888
MaterialNumberControl,
12989
materialNumberControlTester,
130-
MaterialTextControl,
131-
materialTextControlTester,
132-
MaterialAnyOfStringOrEnumControl,
133-
materialAnyOfStringOrEnumControlTester,
13490
MaterialOneOfEnumControl,
13591
materialOneOfEnumControlTester,
13692
MaterialOneOfRadioGroupControl,
13793
materialOneOfRadioGroupControlTester,
94+
MaterialRadioGroupControl,
95+
materialRadioGroupControlTester,
96+
MaterialSliderControl,
97+
materialSliderControlTester,
98+
MaterialTextControl,
99+
materialTextControlTester,
100+
MaterialTimeControl,
101+
materialTimeControlTester,
138102
};
139103

140104
export * from './MaterialInputControl';

0 commit comments

Comments
 (0)