@jsonforms/material-renderers 3.0.0-beta.1 → 3.0.0-beta.4

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 (52) hide show
  1. package/README.md +71 -13
  2. package/docs/globals.html +55 -85
  3. package/docs/index.html +70 -13
  4. package/docs/interfaces/emptytableprops.html +1 -1
  5. package/docs/interfaces/nonemptycellcomponentprops.html +9 -9
  6. package/docs/interfaces/nonemptycellprops.html +9 -9
  7. package/docs/interfaces/ownoneofprops.html +1 -1
  8. package/docs/interfaces/ownpropsofnonemptycell.html +6 -6
  9. package/docs/interfaces/tableheadercellprops.html +1 -1
  10. package/lib/additional/MaterialListWithDetailRenderer.d.ts +1 -1
  11. package/lib/jsonforms-react-material.cjs.js +20 -28
  12. package/lib/jsonforms-react-material.cjs.js.map +1 -1
  13. package/lib/jsonforms-react-material.esm.js +19 -27
  14. package/lib/jsonforms-react-material.esm.js.map +1 -1
  15. package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +1 -1
  16. package/package.json +8 -6
  17. package/src/additional/MaterialListWithDetailRenderer.tsx +5 -3
  18. package/src/complex/MaterialAllOfRenderer.tsx +3 -5
  19. package/src/complex/MaterialAnyOfRenderer.tsx +3 -5
  20. package/src/complex/MaterialEnumArrayRenderer.tsx +1 -2
  21. package/src/complex/MaterialObjectRenderer.tsx +3 -8
  22. package/src/complex/MaterialOneOfRenderer.tsx +3 -5
  23. package/src/complex/MaterialTableControl.tsx +6 -6
  24. package/src/layouts/ExpandPanelRenderer.tsx +2 -1
  25. package/src/layouts/MaterialArrayLayoutRenderer.tsx +3 -25
  26. package/stats.html +1 -1
  27. package/test/renderers/MaterialAnyOfStringOrEnumControl.test.tsx +7 -7
  28. package/test/renderers/MaterialArrayLayout.test.tsx +66 -8
  29. package/test/renderers/MaterialBooleanCell.test.tsx +10 -7
  30. package/test/renderers/MaterialBooleanToggleCell.test.tsx +14 -9
  31. package/test/renderers/MaterialBooleanToggleControl.test.tsx +14 -9
  32. package/test/renderers/MaterialCategorizationLayout.test.tsx +12 -12
  33. package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +12 -12
  34. package/test/renderers/MaterialDateCell.test.tsx +10 -7
  35. package/test/renderers/MaterialDateControl.test.tsx +12 -8
  36. package/test/renderers/MaterialDateTimeControl.test.tsx +12 -8
  37. package/test/renderers/MaterialEnumArrayRenderer.test.tsx +9 -7
  38. package/test/renderers/MaterialEnumCell.test.tsx +2 -1
  39. package/test/renderers/MaterialEnumControl.test.tsx +75 -0
  40. package/test/renderers/MaterialIntegerCell.test.tsx +10 -7
  41. package/test/renderers/MaterialLabelRenderer.test.tsx +4 -4
  42. package/test/renderers/MaterialListWithDetailRenderer.test.tsx +5 -5
  43. package/test/renderers/MaterialNumberCell.test.tsx +10 -7
  44. package/test/renderers/MaterialObjectControl.test.tsx +10 -7
  45. package/test/renderers/MaterialOneOfEnumCell.test.tsx +2 -1
  46. package/test/renderers/MaterialOneOfRadioGroupControl.test.tsx +3 -2
  47. package/test/renderers/MaterialOneOfRenderer.test.tsx +12 -7
  48. package/test/renderers/MaterialRadioGroupControl.test.tsx +2 -2
  49. package/test/renderers/MaterialSliderControl.test.tsx +20 -12
  50. package/test/renderers/MaterialTextCell.test.tsx +10 -7
  51. package/test/renderers/MaterialTimeCell.test.tsx +10 -7
  52. package/test/renderers/MaterialTimeControl.test.tsx +12 -8
package/docs/index.html CHANGED
@@ -72,7 +72,7 @@
72
72
  </a>
73
73
  <p>This is the JSON Forms Material Renderers Package. This package only contains renderers and must be combined with <a href="https://github.com/eclipsesource/jsonforms/blob/master/packages/react">JSON Forms React</a>.</p>
74
74
  <p>See the official <a href="https://jsonforms.io/docs/integrations/react/">documentation</a> and the JSON Forms React <a href="https://github.com/eclipsesource/jsonforms-react-seed">seed repository</a> for examples on how to integrate JSON Forms with your application.</p>
75
- <p>You can combine <a href="https://github.com/eclipsesource/jsonforms/blob/master/packages/react">JSON Forms React</a> with other renderers too, for example with the <a href="https://github.com/eclipsesource/jsonforms/blob/master/packages/vanilla-renderers">Vanilla Renderers</a>.</p>
75
+ <p>You can combine <a href="https://github.com/eclipsesource/jsonforms/blob/master/packages/react">JSON Forms React</a> with other renderers too, for example with the <a href="https://github.com/eclipsesource/jsonforms/tree/master/packages/vanilla">Vanilla Renderers</a>.</p>
76
76
  <p>Check <a href="https://www.npmjs.com/search?q=%40jsonforms">https://www.npmjs.com/search?q=%40jsonforms</a> for all published JSONForms packages.</p>
77
77
  <a href="#quick-start" id="quick-start" style="color: inherit; text-decoration: none;">
78
78
  <h3>Quick start</h3>
@@ -81,23 +81,76 @@
81
81
  <pre><code class="language-bash">npm i --save @jsonforms/core @jsonforms/react @jsonforms/material-renderers
82
82
  </code></pre>
83
83
  <p>Use the <code>JsonForms</code> component for each form you want to render and hand over the renderer set.</p>
84
- <pre><code class="language-js"><span class="hljs-keyword">import</span> React, { useState } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;react&#x27;</span>;
84
+ <pre><code class="language-ts"><span class="hljs-keyword">import</span> React, { useState } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;react&#x27;</span>;
85
+ <span class="hljs-keyword">import</span> {
86
+ materialRenderers,
87
+ materialCells
88
+ } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@jsonforms/material-renderers&#x27;</span>;
85
89
  <span class="hljs-keyword">import</span> { JsonForms } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@jsonforms/react&#x27;</span>;
86
- <span class="hljs-keyword">import</span> { materialCells, materialRenderers } <span class="hljs-keyword">from</span> <span class="hljs-string">&#x27;@jsonforms/material-renderers&#x27;</span>;
90
+
91
+ <span class="hljs-keyword">const</span> schema = {
92
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;object&#x27;</span>,
93
+ <span class="hljs-attr">properties</span>: {
94
+ <span class="hljs-attr">name</span>: {
95
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;string&#x27;</span>,
96
+ <span class="hljs-attr">minLength</span>: <span class="hljs-number">1</span>
97
+ },
98
+ <span class="hljs-attr">done</span>: {
99
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;boolean&#x27;</span>
100
+ },
101
+ <span class="hljs-attr">due_date</span>: {
102
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;string&#x27;</span>,
103
+ <span class="hljs-attr">format</span>: <span class="hljs-string">&#x27;date&#x27;</span>
104
+ },
105
+ <span class="hljs-attr">recurrence</span>: {
106
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;string&#x27;</span>,
107
+ <span class="hljs-attr">enum</span>: [<span class="hljs-string">&#x27;Never&#x27;</span>, <span class="hljs-string">&#x27;Daily&#x27;</span>, <span class="hljs-string">&#x27;Weekly&#x27;</span>, <span class="hljs-string">&#x27;Monthly&#x27;</span>]
108
+ }
109
+ },
110
+ <span class="hljs-attr">required</span>: [<span class="hljs-string">&#x27;name&#x27;</span>, <span class="hljs-string">&#x27;due_date&#x27;</span>]
111
+ };
112
+
113
+ <span class="hljs-keyword">const</span> uischema = {
114
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;VerticalLayout&#x27;</span>,
115
+ <span class="hljs-attr">elements</span>: [
116
+ {
117
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;Control&#x27;</span>,
118
+ <span class="hljs-attr">label</span>: <span class="hljs-literal">false</span>,
119
+ <span class="hljs-attr">scope</span>: <span class="hljs-string">&#x27;#/properties/done&#x27;</span>
120
+ },
121
+ {
122
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;Control&#x27;</span>,
123
+ <span class="hljs-attr">scope</span>: <span class="hljs-string">&#x27;#/properties/name&#x27;</span>
124
+ },
125
+ {
126
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;HorizontalLayout&#x27;</span>,
127
+ <span class="hljs-attr">elements</span>: [
128
+ {
129
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;Control&#x27;</span>,
130
+ <span class="hljs-attr">scope</span>: <span class="hljs-string">&#x27;#/properties/due_date&#x27;</span>
131
+ },
132
+ {
133
+ <span class="hljs-attr">type</span>: <span class="hljs-string">&#x27;Control&#x27;</span>,
134
+ <span class="hljs-attr">scope</span>: <span class="hljs-string">&#x27;#/properties/recurrence&#x27;</span>
135
+ }
136
+ ]
137
+ }
138
+ ]
139
+ };
140
+
141
+ <span class="hljs-keyword">const</span> initialData = {};
87
142
 
88
143
  <span class="hljs-function"><span class="hljs-keyword">function</span> <span class="hljs-title">App</span>(<span class="hljs-params"></span>) </span>{
89
144
  <span class="hljs-keyword">const</span> [data, setData] = useState(initialData);
90
145
  <span class="hljs-keyword">return</span> (
91
- <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">div</span> <span class="hljs-attr">className</span>=<span class="hljs-string">&#x27;App&#x27;</span>&gt;</span>
92
- <span class="hljs-tag">&lt;<span class="hljs-name">JsonForms</span>
93
- <span class="hljs-attr">schema</span>=<span class="hljs-string">{schema}</span>
94
- <span class="hljs-attr">uischema</span>=<span class="hljs-string">{uischema}</span>
95
- <span class="hljs-attr">data</span>=<span class="hljs-string">{data}</span>
96
- <span class="hljs-attr">renderers</span>=<span class="hljs-string">{materialRenderers}</span>
97
- <span class="hljs-attr">cells</span>=<span class="hljs-string">{materialCells}</span>
98
- <span class="hljs-attr">onChange</span>=<span class="hljs-string">{({</span> <span class="hljs-attr">data</span>, <span class="hljs-attr">_errors</span> }) =&gt;</span> setData(data)}
99
- /&gt;
100
- <span class="hljs-tag">&lt;/<span class="hljs-name">div</span>&gt;</span></span>
146
+ <span class="xml"><span class="hljs-tag">&lt;<span class="hljs-name">JsonForms</span>
147
+ <span class="hljs-attr">schema</span>=<span class="hljs-string">{schema}</span>
148
+ <span class="hljs-attr">uischema</span>=<span class="hljs-string">{uischema}</span>
149
+ <span class="hljs-attr">data</span>=<span class="hljs-string">{data}</span>
150
+ <span class="hljs-attr">renderers</span>=<span class="hljs-string">{materialRenderers}</span>
151
+ <span class="hljs-attr">cells</span>=<span class="hljs-string">{materialCells}</span>
152
+ <span class="hljs-attr">onChange</span>=<span class="hljs-string">{({</span> <span class="hljs-attr">data</span>, <span class="hljs-attr">_errors</span> }) =&gt;</span> setData(data)}
153
+ /&gt;</span>
101
154
  );
102
155
  }
103
156
  </code></pre>
@@ -117,6 +170,10 @@
117
170
  For questions and discussions please use the <a href="https://jsonforms.discourse.group">JSON Forms board</a>.
118
171
  You can also reach us via <a href="mailto:jsonforms@eclipsesource.com?subject=JSON%20Forms">email</a>.
119
172
  In addition, EclipseSource also offers <a href="https://jsonforms.io/support">professional support</a> for JSON Forms.</p>
173
+ <a href="#migration" id="migration" style="color: inherit; text-decoration: none;">
174
+ <h2>Migration</h2>
175
+ </a>
176
+ <p>See our <a href="https://github.com/eclipsesource/jsonforms/blob/master/MIGRATION.md">migration guide</a> when updating JSON Forms.</p>
120
177
  </div>
121
178
  </div>
122
179
  <div class="col-4 col-menu menu-sticky-wrap menu-highlight">
@@ -93,7 +93,7 @@
93
93
  <div class="tsd-signature tsd-kind-icon">num<wbr>Columns<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
94
94
  <aside class="tsd-sources">
95
95
  <ul>
96
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:130</li>
96
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:131</li>
97
97
  </ul>
98
98
  </aside>
99
99
  </section>
@@ -101,7 +101,7 @@
101
101
  <div class="tsd-signature tsd-kind-icon">cells<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonFormsCellRendererRegistryEntry</span><span class="tsd-signature-symbol">[]</span></div>
102
102
  <aside class="tsd-sources">
103
103
  <ul>
104
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:206</li>
104
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:207</li>
105
105
  </ul>
106
106
  </aside>
107
107
  </section>
@@ -111,7 +111,7 @@
111
111
  <div class="tsd-signature tsd-kind-icon">enabled<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
112
112
  <aside class="tsd-sources">
113
113
  <ul>
114
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:204</li>
114
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:205</li>
115
115
  </ul>
116
116
  </aside>
117
117
  </section>
@@ -121,7 +121,7 @@
121
121
  <div class="tsd-signature tsd-kind-icon">errors<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
122
122
  <aside class="tsd-sources">
123
123
  <ul>
124
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:203</li>
124
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:204</li>
125
125
  </ul>
126
126
  </aside>
127
127
  </section>
@@ -131,7 +131,7 @@
131
131
  <div class="tsd-signature tsd-kind-icon">is<wbr>Valid<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
132
132
  <aside class="tsd-sources">
133
133
  <ul>
134
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:207</li>
134
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:208</li>
135
135
  </ul>
136
136
  </aside>
137
137
  </section>
@@ -141,7 +141,7 @@
141
141
  <div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
142
142
  <aside class="tsd-sources">
143
143
  <ul>
144
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:199</li>
144
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:200</li>
145
145
  </ul>
146
146
  </aside>
147
147
  </section>
@@ -151,7 +151,7 @@
151
151
  <div class="tsd-signature tsd-kind-icon">prop<wbr>Name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
152
152
  <aside class="tsd-sources">
153
153
  <ul>
154
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:200</li>
154
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:201</li>
155
155
  </ul>
156
156
  </aside>
157
157
  </section>
@@ -161,7 +161,7 @@
161
161
  <div class="tsd-signature tsd-kind-icon">renderers<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonFormsRendererRegistryEntry</span><span class="tsd-signature-symbol">[]</span></div>
162
162
  <aside class="tsd-sources">
163
163
  <ul>
164
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:205</li>
164
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:206</li>
165
165
  </ul>
166
166
  </aside>
167
167
  </section>
@@ -171,7 +171,7 @@
171
171
  <div class="tsd-signature tsd-kind-icon">root<wbr>Schema<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonSchema</span></div>
172
172
  <aside class="tsd-sources">
173
173
  <ul>
174
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:202</li>
174
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:203</li>
175
175
  </ul>
176
176
  </aside>
177
177
  </section>
@@ -181,7 +181,7 @@
181
181
  <div class="tsd-signature tsd-kind-icon">schema<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonSchema</span></div>
182
182
  <aside class="tsd-sources">
183
183
  <ul>
184
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:201</li>
184
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:202</li>
185
185
  </ul>
186
186
  </aside>
187
187
  </section>
@@ -107,7 +107,7 @@
107
107
  <aside class="tsd-sources">
108
108
  <p>Inherited from <a href="nonemptycellprops.html">NonEmptyCellProps</a>.<a href="nonemptycellprops.html#cells">cells</a></p>
109
109
  <ul>
110
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:161</li>
110
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:162</li>
111
111
  </ul>
112
112
  </aside>
113
113
  </section>
@@ -118,7 +118,7 @@
118
118
  <aside class="tsd-sources">
119
119
  <p>Overrides <a href="ownpropsofnonemptycell.html">OwnPropsOfNonEmptyCell</a>.<a href="ownpropsofnonemptycell.html#enabled">enabled</a></p>
120
120
  <ul>
121
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:153</li>
121
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:154</li>
122
122
  </ul>
123
123
  </aside>
124
124
  </section>
@@ -128,7 +128,7 @@
128
128
  <div class="tsd-signature tsd-kind-icon">errors<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
129
129
  <aside class="tsd-sources">
130
130
  <ul>
131
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:151</li>
131
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:152</li>
132
132
  </ul>
133
133
  </aside>
134
134
  </section>
@@ -138,7 +138,7 @@
138
138
  <div class="tsd-signature tsd-kind-icon">path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
139
139
  <aside class="tsd-sources">
140
140
  <ul>
141
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:152</li>
141
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:153</li>
142
142
  </ul>
143
143
  </aside>
144
144
  </section>
@@ -149,7 +149,7 @@
149
149
  <aside class="tsd-sources">
150
150
  <p>Inherited from <a href="nonemptycellprops.html">NonEmptyCellProps</a>.<a href="nonemptycellprops.html#propname">propName</a></p>
151
151
  <ul>
152
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:157</li>
152
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:158</li>
153
153
  </ul>
154
154
  </aside>
155
155
  </section>
@@ -160,7 +160,7 @@
160
160
  <aside class="tsd-sources">
161
161
  <p>Inherited from <a href="nonemptycellprops.html">NonEmptyCellProps</a>.<a href="nonemptycellprops.html#renderers">renderers</a></p>
162
162
  <ul>
163
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:160</li>
163
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:161</li>
164
164
  </ul>
165
165
  </aside>
166
166
  </section>
@@ -170,7 +170,7 @@
170
170
  <div class="tsd-signature tsd-kind-icon">root<wbr>Schema<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonSchema</span></div>
171
171
  <aside class="tsd-sources">
172
172
  <ul>
173
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:150</li>
173
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:151</li>
174
174
  </ul>
175
175
  </aside>
176
176
  </section>
@@ -181,7 +181,7 @@
181
181
  <aside class="tsd-sources">
182
182
  <p>Inherited from <a href="nonemptycellprops.html">NonEmptyCellProps</a>.<a href="nonemptycellprops.html#rowpath">rowPath</a></p>
183
183
  <ul>
184
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:156</li>
184
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:157</li>
185
185
  </ul>
186
186
  </aside>
187
187
  </section>
@@ -192,7 +192,7 @@
192
192
  <aside class="tsd-sources">
193
193
  <p>Inherited from <a href="nonemptycellprops.html">NonEmptyCellProps</a>.<a href="nonemptycellprops.html#schema">schema</a></p>
194
194
  <ul>
195
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:158</li>
195
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:159</li>
196
196
  </ul>
197
197
  </aside>
198
198
  </section>
@@ -142,7 +142,7 @@
142
142
  <div class="tsd-signature tsd-kind-icon">index<wbr>OfFitting<wbr>Schema<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">number</span></div>
143
143
  <aside class="tsd-sources">
144
144
  <ul>
145
- <li>Defined in packages/material/src/complex/MaterialOneOfRenderer.tsx:57</li>
145
+ <li>Defined in packages/material/src/complex/MaterialOneOfRenderer.tsx:56</li>
146
146
  </ul>
147
147
  </aside>
148
148
  </section>
@@ -103,7 +103,7 @@
103
103
  <div class="tsd-signature tsd-kind-icon">cells<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonFormsCellRendererRegistryEntry</span><span class="tsd-signature-symbol">[]</span></div>
104
104
  <aside class="tsd-sources">
105
105
  <ul>
106
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:161</li>
106
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:162</li>
107
107
  </ul>
108
108
  </aside>
109
109
  </section>
@@ -113,7 +113,7 @@
113
113
  <div class="tsd-signature tsd-kind-icon">enabled<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">boolean</span></div>
114
114
  <aside class="tsd-sources">
115
115
  <ul>
116
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:159</li>
116
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:160</li>
117
117
  </ul>
118
118
  </aside>
119
119
  </section>
@@ -123,7 +123,7 @@
123
123
  <div class="tsd-signature tsd-kind-icon">prop<wbr>Name<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
124
124
  <aside class="tsd-sources">
125
125
  <ul>
126
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:157</li>
126
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:158</li>
127
127
  </ul>
128
128
  </aside>
129
129
  </section>
@@ -133,7 +133,7 @@
133
133
  <div class="tsd-signature tsd-kind-icon">renderers<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonFormsRendererRegistryEntry</span><span class="tsd-signature-symbol">[]</span></div>
134
134
  <aside class="tsd-sources">
135
135
  <ul>
136
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:160</li>
136
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:161</li>
137
137
  </ul>
138
138
  </aside>
139
139
  </section>
@@ -143,7 +143,7 @@
143
143
  <div class="tsd-signature tsd-kind-icon">row<wbr>Path<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
144
144
  <aside class="tsd-sources">
145
145
  <ul>
146
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:156</li>
146
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:157</li>
147
147
  </ul>
148
148
  </aside>
149
149
  </section>
@@ -153,7 +153,7 @@
153
153
  <div class="tsd-signature tsd-kind-icon">schema<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">JsonSchema</span></div>
154
154
  <aside class="tsd-sources">
155
155
  <ul>
156
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:158</li>
156
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:159</li>
157
157
  </ul>
158
158
  </aside>
159
159
  </section>
@@ -93,7 +93,7 @@
93
93
  <div class="tsd-signature tsd-kind-icon">title<span class="tsd-signature-symbol">:</span> <span class="tsd-signature-type">string</span></div>
94
94
  <aside class="tsd-sources">
95
95
  <ul>
96
- <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:142</li>
96
+ <li>Defined in packages/material/src/complex/MaterialTableControl.tsx:143</li>
97
97
  </ul>
98
98
  </aside>
99
99
  </section>
@@ -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, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config }: ArrayLayoutProps) => JSX.Element;
3
+ export declare const MaterialListWithDetailRenderer: ({ uischemas, schema, uischema, path, errors, visible, label, required, removeItems, addItem, data, renderers, cells, config, rootSchema }: ArrayLayoutProps) => 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;
@@ -232,7 +232,7 @@ var controlWithoutLabel = function (scope) { return ({
232
232
  var NonEmptyCellComponent = React__default["default"].memo(function (_a) {
233
233
  var path = _a.path, propName = _a.propName, schema = _a.schema, rootSchema = _a.rootSchema, errors = _a.errors, enabled = _a.enabled, renderers = _a.renderers, cells = _a.cells, isValid = _a.isValid;
234
234
  return (React__default["default"].createElement(NoBorderTableCell, null,
235
- schema.properties ? (React__default["default"].createElement(react.DispatchCell, { schema: core.Resolve.schema(schema, "#/properties/" + propName, rootSchema), uischema: controlWithoutLabel("#/properties/" + propName), path: path, enabled: enabled, renderers: renderers, cells: cells })) : (React__default["default"].createElement(react.DispatchCell, { schema: schema, uischema: controlWithoutLabel('#'), path: path, enabled: enabled, renderers: renderers, cells: cells })),
235
+ schema.properties ? (React__default["default"].createElement(react.DispatchCell, { schema: core.Resolve.schema(schema, "#/properties/" + core.encode(propName), rootSchema), uischema: controlWithoutLabel("#/properties/" + core.encode(propName)), path: path, enabled: enabled, renderers: renderers, cells: cells })) : (React__default["default"].createElement(react.DispatchCell, { schema: schema, uischema: controlWithoutLabel('#'), path: path, enabled: enabled, renderers: renderers, cells: cells })),
236
236
  React__default["default"].createElement(material.FormHelperText, { error: !isValid }, !isValid && errors)));
237
237
  });
238
238
  var NonEmptyCell = function (ownProps) {
@@ -270,7 +270,7 @@ var TableRows = function (_a) {
270
270
  var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
271
271
  return (React__default["default"].createElement(React__default["default"].Fragment, null, range__default["default"](data).map(function (index) {
272
272
  var childPath = core.Paths.compose(path, "" + index);
273
- 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, enabled: enabled, cells: cells, path: path }));
273
+ 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 || appliedUiSchemaOptions.showArrayTableSortButtons, enabled: enabled, cells: cells, path: path }));
274
274
  })));
275
275
  };
276
276
  var MaterialTableControl = (function (_super) {
@@ -337,14 +337,8 @@ var MaterialArrayControlRenderer$1 = react.withJsonFormsArrayLayoutProps(Materia
337
337
  var MaterialObjectRenderer = function (_a) {
338
338
  var renderers = _a.renderers, cells = _a.cells, uischemas = _a.uischemas, schema = _a.schema, label = _a.label, path = _a.path, visible = _a.visible, enabled = _a.enabled, uischema = _a.uischema, rootSchema = _a.rootSchema;
339
339
  var detailUiSchema = React.useMemo(function () {
340
- return core.findUISchema(uischemas, schema, uischema.scope, path, 'Group', uischema, rootSchema);
341
- }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
342
- if (isEmpty__default["default"](path)) {
343
- detailUiSchema.type = 'VerticalLayout';
344
- }
345
- else {
346
- detailUiSchema.label = label;
347
- }
340
+ return core.findUISchema(uischemas, schema, uischema.scope, path, function () { return isEmpty__default["default"](path) ? core.Generate.uiSchema(schema, 'VerticalLayout') : __assign(__assign({}, core.Generate.uiSchema(schema, 'Group')), { label: label }); }, uischema, rootSchema);
341
+ }, [uischemas, schema, uischema.scope, path, label, uischema, rootSchema]);
348
342
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
349
343
  React__default["default"].createElement(react.JsonFormsDispatch, { visible: visible, enabled: enabled, schema: schema, uischema: detailUiSchema, path: path, renderers: renderers, cells: cells })));
350
344
  };
@@ -353,13 +347,12 @@ var MaterialObjectRenderer$1 = react.withJsonFormsDetailProps(MaterialObjectRend
353
347
 
354
348
  var MaterialAllOfRenderer = function (_a) {
355
349
  var schema = _a.schema, rootSchema = _a.rootSchema, visible = _a.visible, renderers = _a.renderers, cells = _a.cells, path = _a.path, uischemas = _a.uischemas, uischema = _a.uischema;
356
- var _schema = core.resolveSubSchemas(schema, rootSchema, 'allOf');
357
- var delegateUISchema = core.findMatchingUISchema(uischemas)(_schema, uischema.scope, path);
350
+ var delegateUISchema = core.findMatchingUISchema(uischemas)(schema, uischema.scope, path);
358
351
  if (delegateUISchema) {
359
352
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
360
- React__default["default"].createElement(react.JsonFormsDispatch, { schema: _schema, uischema: delegateUISchema, path: path, renderers: renderers, cells: cells })));
353
+ React__default["default"].createElement(react.JsonFormsDispatch, { schema: schema, uischema: delegateUISchema, path: path, renderers: renderers, cells: cells })));
361
354
  }
362
- var allOfRenderInfos = core.createCombinatorRenderInfos(_schema.allOf, rootSchema, 'allOf', uischema, path, uischemas);
355
+ var allOfRenderInfos = core.createCombinatorRenderInfos(schema.allOf, rootSchema, 'allOf', uischema, path, uischemas);
363
356
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible }, allOfRenderInfos.map(function (allOfRenderInfo, allOfIndex) { return (React__default["default"].createElement(react.JsonFormsDispatch, { key: allOfIndex, schema: allOfRenderInfo.schema, uischema: allOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells })); })));
364
357
  };
365
358
  var materialAllOfControlTester = core.rankWith(3, core.isAllOfControl);
@@ -394,10 +387,9 @@ var MaterialAnyOfRenderer = function (_a) {
394
387
  var _b = React.useState(indexOfFittingSchema || 0), selectedAnyOf = _b[0], setSelectedAnyOf = _b[1];
395
388
  var handleChange = React.useCallback(function (_ev, value) { return setSelectedAnyOf(value); }, [setSelectedAnyOf]);
396
389
  var anyOf = 'anyOf';
397
- var _schema = core.resolveSubSchemas(schema, rootSchema, anyOf);
398
- var anyOfRenderInfos = core.createCombinatorRenderInfos(_schema.anyOf, rootSchema, anyOf, uischema, path, uischemas);
390
+ var anyOfRenderInfos = core.createCombinatorRenderInfos(schema.anyOf, rootSchema, anyOf, uischema, path, uischemas);
399
391
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
400
- React__default["default"].createElement(CombinatorProperties, { schema: _schema, combinatorKeyword: 'anyOf', path: path }),
392
+ React__default["default"].createElement(CombinatorProperties, { schema: schema, combinatorKeyword: anyOf, path: path }),
401
393
  React__default["default"].createElement(material.Tabs, { value: selectedAnyOf, onChange: handleChange }, anyOfRenderInfos.map(function (anyOfRenderInfo) { return (React__default["default"].createElement(material.Tab, { key: anyOfRenderInfo.label, label: anyOfRenderInfo.label })); })),
402
394
  anyOfRenderInfos.map(function (anyOfRenderInfo, anyOfIndex) {
403
395
  return selectedAnyOf === anyOfIndex && (React__default["default"].createElement(react.JsonFormsDispatch, { key: anyOfIndex, schema: anyOfRenderInfo.schema, uischema: anyOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells }));
@@ -415,10 +407,9 @@ var MaterialOneOfRenderer = function (_a) {
415
407
  var cancel = React.useCallback(function () {
416
408
  setOpen(false);
417
409
  }, [setOpen]);
418
- var _schema = core.resolveSubSchemas(schema, rootSchema, 'oneOf');
419
- var oneOfRenderInfos = core.createCombinatorRenderInfos(_schema.oneOf, rootSchema, 'oneOf', uischema, path, uischemas);
410
+ var oneOfRenderInfos = core.createCombinatorRenderInfos(schema.oneOf, rootSchema, 'oneOf', uischema, path, uischemas);
420
411
  var openNewTab = function (newIndex) {
421
- handleChange(path, core.createDefaultValue(schema.oneOf[newIndex]));
412
+ handleChange(path, core.createDefaultValue(oneOfRenderInfos[newIndex].schema));
422
413
  setSelectedIndex(newIndex);
423
414
  };
424
415
  var confirm = React.useCallback(function () {
@@ -435,7 +426,7 @@ var MaterialOneOfRenderer = function (_a) {
435
426
  }
436
427
  }, [setOpen, setSelectedIndex, data]);
437
428
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
438
- React__default["default"].createElement(CombinatorProperties, { schema: _schema, combinatorKeyword: 'oneOf', path: path }),
429
+ React__default["default"].createElement(CombinatorProperties, { schema: schema, combinatorKeyword: 'oneOf', path: path }),
439
430
  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 }); })),
440
431
  oneOfRenderInfos.map(function (oneOfRenderInfo, oneOfIndex) { return (selectedIndex === oneOfIndex && (React__default["default"].createElement(react.JsonFormsDispatch, { key: oneOfIndex, schema: oneOfRenderInfo.schema, uischema: oneOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells }))); }),
441
432
  React__default["default"].createElement(material.Dialog, { open: open, onClose: handleClose, "aria-labelledby": 'alert-dialog-title', "aria-describedby": 'alert-dialog-description' },
@@ -626,7 +617,7 @@ var MaterialEnumArrayRenderer = function (_a) {
626
617
  return newValue
627
618
  ? addItem(path, option.value)
628
619
  : removeItem(path, option.value);
629
- }, data: checkboxValue, errors: errors, schema: schema, visible: visible }, otherProps)), label: startCase__default["default"](option.label) }));
620
+ }, data: checkboxValue, errors: errors, schema: schema, visible: visible }, otherProps)), label: option.label }));
630
621
  })),
631
622
  React__default["default"].createElement(material.FormHelperText, { error: true }, errors))));
632
623
  };
@@ -690,7 +681,7 @@ var ListWithDetailMasterItem = function (_a) {
690
681
  var ListWithDetailMasterItem$1 = react.withJsonFormsMasterListItemProps(ListWithDetailMasterItem);
691
682
 
692
683
  var MaterialListWithDetailRenderer = function (_a) {
693
- var uischemas = _a.uischemas, schema = _a.schema, uischema = _a.uischema, path = _a.path, 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;
684
+ var uischemas = _a.uischemas, schema = _a.schema, uischema = _a.uischema, path = _a.path, 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;
694
685
  var _b = React.useState(undefined), selectedIndex = _b[0], setSelectedIndex = _b[1];
695
686
  var handleRemoveItem = React.useCallback(function (p, value) { return function () {
696
687
  removeItems(p, [value])();
@@ -704,8 +695,8 @@ var MaterialListWithDetailRenderer = function (_a) {
704
695
  var handleListItemClick = React.useCallback(function (index) { return function () { return setSelectedIndex(index); }; }, [setSelectedIndex]);
705
696
  var handleCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(schema); }, [core.createDefaultValue]);
706
697
  var foundUISchema = React.useMemo(function () {
707
- return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema);
708
- }, [uischemas, schema, uischema.scope, path, uischema]);
698
+ return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
699
+ }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
709
700
  var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
710
701
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
711
702
  React__default["default"].createElement(ArrayLayoutToolbar, { label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: handleCreateDefaultValue }),
@@ -1121,6 +1112,7 @@ var ExpandPanelRendererComponent = function (props) {
1121
1112
  return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
1122
1113
  }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
1123
1114
  var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
1115
+ var showSortButtons = appliedUiSchemaOptions.showSortButtons || appliedUiSchemaOptions.showArrayLayoutSortButtons;
1124
1116
  return (React__default["default"].createElement(material.Accordion, { "aria-labelledby": labelHtmlId, expanded: expanded, onChange: handleExpansion(childPath) },
1125
1117
  React__default["default"].createElement(material.AccordionSummary, { expandIcon: React__default["default"].createElement(ExpandMoreIcon__default["default"], null) },
1126
1118
  React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center' },
@@ -1134,7 +1126,7 @@ var ExpandPanelRendererComponent = function (props) {
1134
1126
  React__default["default"].createElement(material.Grid, { container: true, justifyContent: 'flex-end' },
1135
1127
  React__default["default"].createElement(material.Grid, { item: true },
1136
1128
  React__default["default"].createElement(material.Grid, { container: true, direction: 'row', justifyContent: 'center', alignItems: 'center' },
1137
- appliedUiSchemaOptions.showSortButtons ? (React__default["default"].createElement(React.Fragment, null,
1129
+ showSortButtons ? (React__default["default"].createElement(React.Fragment, null,
1138
1130
  React__default["default"].createElement(material.Grid, { item: true },
1139
1131
  React__default["default"].createElement(material.IconButton, { onClick: moveUp(path, index), style: iconStyle, disabled: !enableMoveUp, "aria-label": "Move up", size: 'large' },
1140
1132
  React__default["default"].createElement(ArrowUpward__default["default"], null))),
@@ -1210,12 +1202,12 @@ var MaterialArrayLayoutComponent = function (props) {
1210
1202
  var MaterialArrayLayout$1 = React__default["default"].memo(MaterialArrayLayoutComponent);
1211
1203
 
1212
1204
  var MaterialArrayLayoutRenderer = function (_a) {
1213
- var visible = _a.visible, enabled = _a.enabled, id = _a.id, uischema = _a.uischema, schema = _a.schema, label = _a.label, rootSchema = _a.rootSchema, renderers = _a.renderers, cells = _a.cells, data = _a.data, path = _a.path, errors = _a.errors, uischemas = _a.uischemas, addItem = _a.addItem;
1205
+ var visible = _a.visible, addItem = _a.addItem, props = __rest(_a, ["visible", "addItem"]);
1214
1206
  var addItemCb = React.useCallback(function (p, value) { return addItem(p, value); }, [
1215
1207
  addItem
1216
1208
  ]);
1217
1209
  return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
1218
- React__default["default"].createElement(MaterialArrayLayout$1, { label: label, uischema: uischema, schema: schema, id: id, rootSchema: rootSchema, errors: errors, enabled: enabled, visible: visible, data: data, path: path, addItem: addItemCb, renderers: renderers, cells: cells, uischemas: uischemas })));
1210
+ React__default["default"].createElement(MaterialArrayLayout$1, __assign({ visible: visible, addItem: addItemCb }, props))));
1219
1211
  };
1220
1212
  var materialArrayLayoutTester = core.rankWith(4, core.isObjectArrayWithNesting);
1221
1213
  var MaterialArrayLayout = react.withJsonFormsArrayLayoutProps(MaterialArrayLayoutRenderer);