@jsonforms/material-renderers 2.5.2-alpha.0 → 3.0.0-alpha.2

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 (311) hide show
  1. package/README.md +1 -1
  2. package/docs/assets/js/search.json +1 -1
  3. package/docs/classes/combinatorproperties.html +2 -5
  4. package/docs/classes/materialanyofstringorenumcontrol.html +6 -9
  5. package/docs/classes/materialtablecontrol.html +4 -7
  6. package/docs/globals.html +986 -274
  7. package/docs/index.html +78 -51
  8. package/docs/interfaces/ajvprops.html +1 -4
  9. package/docs/interfaces/arraylayouttoolbarprops.html +0 -3
  10. package/docs/interfaces/categorizationstate.html +0 -3
  11. package/docs/interfaces/categorizationstepperstate.html +0 -3
  12. package/docs/interfaces/combinatorpropertiesprops.html +0 -3
  13. package/docs/interfaces/deletedialogprops.html +0 -3
  14. package/docs/interfaces/dispatchpropsofexpandpanel.html +3 -6
  15. package/docs/interfaces/emptytableprops.html +0 -3
  16. package/docs/interfaces/expandpanelprops.html +19 -22
  17. package/docs/interfaces/jsonformstheme.html +0 -3
  18. package/docs/interfaces/materialcategorizationlayoutrendererprops.html +7 -10
  19. package/docs/interfaces/materialcategorizationstepperlayoutrendererprops.html +7 -10
  20. package/docs/interfaces/materiallayoutrendererprops.html +0 -3
  21. package/docs/interfaces/materialtabletoolbarprops.html +10 -13
  22. package/docs/interfaces/muitextinputprops.html +2 -5
  23. package/docs/interfaces/nonemptycellcomponentprops.html +266 -0
  24. package/docs/interfaces/nonemptycellprops.html +0 -3
  25. package/docs/interfaces/nonemptyrowprops.html +80 -27
  26. package/docs/interfaces/ownoneofprops.html +0 -3
  27. package/docs/interfaces/ownpropsofexpandpanel.html +14 -17
  28. package/docs/interfaces/ownpropsofnonemptycell.html +0 -3
  29. package/docs/interfaces/statepropsofexpandpanel.html +16 -19
  30. package/docs/interfaces/tableheadercellprops.html +0 -3
  31. package/docs/interfaces/tablerowsprop.html +9 -12
  32. package/docs/interfaces/validationprops.html +0 -3
  33. package/docs/interfaces/withdeletedialogsupport.html +0 -3
  34. package/docs/interfaces/withinput.html +1 -4
  35. package/docs/interfaces/withoptionlabel.html +3 -6
  36. package/lib/additional/ListWithDetailMasterItem.d.ts +1 -1
  37. package/lib/additional/ListWithDetailMasterItem.js.map +1 -1
  38. package/lib/additional/MaterialLabelRenderer.d.ts +1 -1
  39. package/lib/additional/MaterialLabelRenderer.js +3 -1
  40. package/lib/additional/MaterialLabelRenderer.js.map +1 -1
  41. package/lib/additional/MaterialListWithDetailRenderer.d.ts +1 -1
  42. package/lib/additional/MaterialListWithDetailRenderer.js +5 -3
  43. package/lib/additional/MaterialListWithDetailRenderer.js.map +1 -1
  44. package/lib/additional/index.js +3 -2
  45. package/lib/additional/index.js.map +1 -1
  46. package/lib/cells/CustomizableCells.d.ts +1 -0
  47. package/lib/cells/CustomizableCells.js +11 -8
  48. package/lib/cells/CustomizableCells.js.map +1 -1
  49. package/lib/cells/MaterialBooleanCell.d.ts +1 -1
  50. package/lib/cells/MaterialBooleanCell.js +3 -1
  51. package/lib/cells/MaterialBooleanCell.js.map +1 -1
  52. package/lib/cells/MaterialBooleanToggleCell.d.ts +1 -1
  53. package/lib/cells/MaterialBooleanToggleCell.js +3 -1
  54. package/lib/cells/MaterialBooleanToggleCell.js.map +1 -1
  55. package/lib/cells/MaterialDateCell.d.ts +1 -1
  56. package/lib/cells/MaterialDateCell.js +3 -1
  57. package/lib/cells/MaterialDateCell.js.map +1 -1
  58. package/lib/cells/MaterialEnumCell.d.ts +1 -1
  59. package/lib/cells/MaterialEnumCell.js +3 -1
  60. package/lib/cells/MaterialEnumCell.js.map +1 -1
  61. package/lib/cells/MaterialIntegerCell.d.ts +1 -1
  62. package/lib/cells/MaterialIntegerCell.js +3 -1
  63. package/lib/cells/MaterialIntegerCell.js.map +1 -1
  64. package/lib/cells/MaterialNumberCell.d.ts +1 -1
  65. package/lib/cells/MaterialNumberCell.js +3 -1
  66. package/lib/cells/MaterialNumberCell.js.map +1 -1
  67. package/lib/cells/MaterialNumberFormatCell.d.ts +1 -1
  68. package/lib/cells/MaterialNumberFormatCell.js +3 -1
  69. package/lib/cells/MaterialNumberFormatCell.js.map +1 -1
  70. package/lib/cells/MaterialOneOfEnumCell.d.ts +10 -0
  71. package/lib/cells/MaterialOneOfEnumCell.js +41 -0
  72. package/lib/cells/MaterialOneOfEnumCell.js.map +1 -0
  73. package/lib/cells/MaterialTextCell.d.ts +1 -1
  74. package/lib/cells/MaterialTextCell.js +3 -1
  75. package/lib/cells/MaterialTextCell.js.map +1 -1
  76. package/lib/cells/MaterialTimeCell.d.ts +1 -1
  77. package/lib/cells/MaterialTimeCell.js +3 -1
  78. package/lib/cells/MaterialTimeCell.js.map +1 -1
  79. package/lib/cells/index.d.ts +2 -1
  80. package/lib/cells/index.js +13 -9
  81. package/lib/cells/index.js.map +1 -1
  82. package/lib/complex/CombinatorProperties.js +4 -2
  83. package/lib/complex/CombinatorProperties.js.map +1 -1
  84. package/lib/complex/DeleteDialog.js +1 -0
  85. package/lib/complex/DeleteDialog.js.map +1 -1
  86. package/lib/complex/MaterialAllOfRenderer.d.ts +3 -2
  87. package/lib/complex/MaterialAllOfRenderer.js +5 -3
  88. package/lib/complex/MaterialAllOfRenderer.js.map +1 -1
  89. package/lib/complex/MaterialAnyOfRenderer.d.ts +3 -2
  90. package/lib/complex/MaterialAnyOfRenderer.js +4 -2
  91. package/lib/complex/MaterialAnyOfRenderer.js.map +1 -1
  92. package/lib/complex/MaterialArrayControlRenderer.d.ts +1 -1
  93. package/lib/complex/MaterialArrayControlRenderer.js +3 -1
  94. package/lib/complex/MaterialArrayControlRenderer.js.map +1 -1
  95. package/lib/complex/MaterialEnumArrayRenderer.d.ts +2 -2
  96. package/lib/complex/MaterialEnumArrayRenderer.js +6 -3
  97. package/lib/complex/MaterialEnumArrayRenderer.js.map +1 -1
  98. package/lib/complex/MaterialObjectRenderer.d.ts +3 -2
  99. package/lib/complex/MaterialObjectRenderer.js +5 -3
  100. package/lib/complex/MaterialObjectRenderer.js.map +1 -1
  101. package/lib/complex/MaterialOneOfRenderer.d.ts +2 -1
  102. package/lib/complex/MaterialOneOfRenderer.js +6 -5
  103. package/lib/complex/MaterialOneOfRenderer.js.map +1 -1
  104. package/lib/complex/MaterialTableControl.d.ts +16 -1
  105. package/lib/complex/MaterialTableControl.js +16 -8
  106. package/lib/complex/MaterialTableControl.js.map +1 -1
  107. package/lib/complex/NoBorderTableCell.js.map +1 -1
  108. package/lib/complex/TableToolbar.d.ts +2 -2
  109. package/lib/complex/TableToolbar.js.map +1 -1
  110. package/lib/complex/ValidationIcon.d.ts +5 -3
  111. package/lib/complex/ValidationIcon.js.map +1 -1
  112. package/lib/complex/index.js +6 -5
  113. package/lib/complex/index.js.map +1 -1
  114. package/lib/controls/MaterialAnyOfStringOrEnumControl.d.ts +1 -1
  115. package/lib/controls/MaterialAnyOfStringOrEnumControl.js +17 -12
  116. package/lib/controls/MaterialAnyOfStringOrEnumControl.js.map +1 -1
  117. package/lib/controls/MaterialBooleanControl.d.ts +1 -1
  118. package/lib/controls/MaterialBooleanControl.js +3 -1
  119. package/lib/controls/MaterialBooleanControl.js.map +1 -1
  120. package/lib/controls/MaterialBooleanToggleControl.d.ts +1 -1
  121. package/lib/controls/MaterialBooleanToggleControl.js +3 -1
  122. package/lib/controls/MaterialBooleanToggleControl.js.map +1 -1
  123. package/lib/controls/MaterialDateControl.d.ts +3 -15
  124. package/lib/controls/MaterialDateControl.js +27 -45
  125. package/lib/controls/MaterialDateControl.js.map +1 -1
  126. package/lib/controls/MaterialDateTimeControl.d.ts +3 -6
  127. package/lib/controls/MaterialDateTimeControl.js +27 -24
  128. package/lib/controls/MaterialDateTimeControl.js.map +1 -1
  129. package/lib/controls/MaterialEnumControl.d.ts +1 -1
  130. package/lib/controls/MaterialEnumControl.js +3 -1
  131. package/lib/controls/MaterialEnumControl.js.map +1 -1
  132. package/lib/controls/MaterialInputControl.d.ts +2 -5
  133. package/lib/controls/MaterialInputControl.js +23 -28
  134. package/lib/controls/MaterialInputControl.js.map +1 -1
  135. package/lib/controls/MaterialIntegerControl.d.ts +1 -1
  136. package/lib/controls/MaterialIntegerControl.js +3 -1
  137. package/lib/controls/MaterialIntegerControl.js.map +1 -1
  138. package/lib/controls/MaterialNativeControl.d.ts +3 -6
  139. package/lib/controls/MaterialNativeControl.js +15 -18
  140. package/lib/controls/MaterialNativeControl.js.map +1 -1
  141. package/lib/controls/MaterialNumberControl.d.ts +1 -1
  142. package/lib/controls/MaterialNumberControl.js +3 -1
  143. package/lib/controls/MaterialNumberControl.js.map +1 -1
  144. package/lib/controls/MaterialOneOfEnumControl.d.ts +1 -1
  145. package/lib/controls/MaterialOneOfEnumControl.js +3 -1
  146. package/lib/controls/MaterialOneOfEnumControl.js.map +1 -1
  147. package/lib/controls/MaterialOneOfRadioGroupControl.d.ts +1 -1
  148. package/lib/controls/MaterialOneOfRadioGroupControl.js +3 -1
  149. package/lib/controls/MaterialOneOfRadioGroupControl.js.map +1 -1
  150. package/lib/controls/MaterialRadioGroup.d.ts +2 -5
  151. package/lib/controls/MaterialRadioGroup.js +15 -20
  152. package/lib/controls/MaterialRadioGroup.js.map +1 -1
  153. package/lib/controls/MaterialRadioGroupControl.d.ts +1 -1
  154. package/lib/controls/MaterialRadioGroupControl.js +3 -1
  155. package/lib/controls/MaterialRadioGroupControl.js.map +1 -1
  156. package/lib/controls/MaterialSliderControl.d.ts +3 -6
  157. package/lib/controls/MaterialSliderControl.js +35 -39
  158. package/lib/controls/MaterialSliderControl.js.map +1 -1
  159. package/lib/controls/MaterialTextControl.d.ts +1 -1
  160. package/lib/controls/MaterialTextControl.js +3 -1
  161. package/lib/controls/MaterialTextControl.js.map +1 -1
  162. package/lib/controls/MaterialTimeControl.d.ts +6 -0
  163. package/lib/controls/MaterialTimeControl.js +62 -0
  164. package/lib/controls/MaterialTimeControl.js.map +1 -0
  165. package/lib/controls/index.d.ts +11 -9
  166. package/lib/controls/index.js +19 -14
  167. package/lib/controls/index.js.map +1 -1
  168. package/lib/extended/MaterialAutocompleteEnumControl.d.ts +1 -1
  169. package/lib/extended/MaterialAutocompleteEnumControl.js +3 -1
  170. package/lib/extended/MaterialAutocompleteEnumControl.js.map +1 -1
  171. package/lib/extended/MaterialAutocompleteOneOfEnumControl.d.ts +1 -1
  172. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js +3 -1
  173. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js.map +1 -1
  174. package/lib/extended/MuiAutocomplete.d.ts +2 -2
  175. package/lib/extended/MuiAutocomplete.js +4 -3
  176. package/lib/extended/MuiAutocomplete.js.map +1 -1
  177. package/lib/extended/index.d.ts +2 -2
  178. package/lib/extended/index.js +2 -1
  179. package/lib/extended/index.js.map +1 -1
  180. package/lib/index.js +3 -0
  181. package/lib/index.js.map +1 -1
  182. package/lib/jsonforms-material.js +9 -281
  183. package/lib/jsonforms-material.js.map +1 -1
  184. package/lib/layouts/ArrayToolbar.js +1 -0
  185. package/lib/layouts/ArrayToolbar.js.map +1 -1
  186. package/lib/layouts/ExpandPanelRenderer.d.ts +2 -3
  187. package/lib/layouts/ExpandPanelRenderer.js +29 -22
  188. package/lib/layouts/ExpandPanelRenderer.js.map +1 -1
  189. package/lib/layouts/MaterialArrayLayout.d.ts +1 -11
  190. package/lib/layouts/MaterialArrayLayout.js +19 -31
  191. package/lib/layouts/MaterialArrayLayout.js.map +1 -1
  192. package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +1 -1
  193. package/lib/layouts/MaterialArrayLayoutRenderer.js +3 -1
  194. package/lib/layouts/MaterialArrayLayoutRenderer.js.map +1 -1
  195. package/lib/layouts/MaterialCategorizationLayout.d.ts +2 -10
  196. package/lib/layouts/MaterialCategorizationLayout.js +31 -47
  197. package/lib/layouts/MaterialCategorizationLayout.js.map +1 -1
  198. package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +2 -9
  199. package/lib/layouts/MaterialCategorizationStepperLayout.js +42 -53
  200. package/lib/layouts/MaterialCategorizationStepperLayout.js.map +1 -1
  201. package/lib/layouts/MaterialGroupLayout.d.ts +1 -1
  202. package/lib/layouts/MaterialGroupLayout.js +3 -1
  203. package/lib/layouts/MaterialGroupLayout.js.map +1 -1
  204. package/lib/layouts/MaterialHorizontalLayout.d.ts +1 -1
  205. package/lib/layouts/MaterialHorizontalLayout.js +3 -1
  206. package/lib/layouts/MaterialHorizontalLayout.js.map +1 -1
  207. package/lib/layouts/MaterialVerticalLayout.d.ts +1 -1
  208. package/lib/layouts/MaterialVerticalLayout.js +3 -1
  209. package/lib/layouts/MaterialVerticalLayout.js.map +1 -1
  210. package/lib/layouts/index.js +6 -5
  211. package/lib/layouts/index.js.map +1 -1
  212. package/lib/mui-controls/MuiCheckbox.js +2 -2
  213. package/lib/mui-controls/MuiCheckbox.js.map +1 -1
  214. package/lib/mui-controls/MuiInputInteger.js +9 -6
  215. package/lib/mui-controls/MuiInputInteger.js.map +1 -1
  216. package/lib/mui-controls/MuiInputNumber.js +9 -6
  217. package/lib/mui-controls/MuiInputNumber.js.map +1 -1
  218. package/lib/mui-controls/MuiInputNumberFormat.js +7 -8
  219. package/lib/mui-controls/MuiInputNumberFormat.js.map +1 -1
  220. package/lib/mui-controls/MuiInputText.js +11 -7
  221. package/lib/mui-controls/MuiInputText.js.map +1 -1
  222. package/lib/mui-controls/MuiInputTime.js +5 -3
  223. package/lib/mui-controls/MuiInputTime.js.map +1 -1
  224. package/lib/mui-controls/MuiSelect.js +3 -3
  225. package/lib/mui-controls/MuiSelect.js.map +1 -1
  226. package/lib/mui-controls/MuiToggle.js +2 -2
  227. package/lib/mui-controls/MuiToggle.js.map +1 -1
  228. package/lib/util/datejs.d.ts +3 -0
  229. package/lib/util/datejs.js +29 -0
  230. package/lib/util/datejs.js.map +1 -0
  231. package/lib/util/debounce.d.ts +1 -0
  232. package/lib/util/debounce.js +48 -0
  233. package/lib/util/debounce.js.map +1 -0
  234. package/lib/util/focus.d.ts +1 -0
  235. package/lib/util/focus.js +36 -0
  236. package/lib/util/focus.js.map +1 -0
  237. package/lib/util/index.d.ts +3 -0
  238. package/lib/util/index.js +4 -0
  239. package/lib/util/index.js.map +1 -1
  240. package/lib/util/layout.d.ts +2 -1
  241. package/lib/util/layout.js +9 -5
  242. package/lib/util/layout.js.map +1 -1
  243. package/package.json +12 -13
  244. package/src/additional/MaterialListWithDetailRenderer.tsx +3 -4
  245. package/src/cells/CustomizableCells.ts +1 -0
  246. package/src/cells/MaterialOneOfEnumCell.tsx +46 -0
  247. package/src/cells/MaterialTimeCell.tsx +1 -0
  248. package/src/cells/index.ts +5 -0
  249. package/src/complex/CombinatorProperties.tsx +2 -2
  250. package/src/complex/MaterialAllOfRenderer.tsx +5 -4
  251. package/src/complex/MaterialAnyOfRenderer.tsx +4 -3
  252. package/src/complex/MaterialEnumArrayRenderer.tsx +1 -0
  253. package/src/complex/MaterialObjectRenderer.tsx +5 -5
  254. package/src/complex/MaterialOneOfRenderer.tsx +8 -8
  255. package/src/complex/MaterialTableControl.tsx +36 -24
  256. package/src/complex/TableToolbar.tsx +1 -2
  257. package/src/controls/MaterialAnyOfStringOrEnumControl.tsx +16 -12
  258. package/src/controls/MaterialDateControl.tsx +82 -113
  259. package/src/controls/MaterialDateTimeControl.tsx +88 -70
  260. package/src/controls/MaterialInputControl.tsx +62 -70
  261. package/src/controls/MaterialNativeControl.tsx +54 -58
  262. package/src/controls/MaterialRadioGroup.tsx +67 -70
  263. package/src/controls/MaterialSliderControl.tsx +92 -88
  264. package/src/controls/MaterialTimeControl.tsx +128 -0
  265. package/src/controls/index.ts +7 -0
  266. package/src/extended/MuiAutocomplete.tsx +2 -3
  267. package/src/index.ts +6 -0
  268. package/src/layouts/ExpandPanelRenderer.tsx +32 -32
  269. package/src/layouts/MaterialArrayLayout.tsx +73 -83
  270. package/src/layouts/MaterialCategorizationLayout.tsx +49 -65
  271. package/src/layouts/MaterialCategorizationStepperLayout.tsx +79 -87
  272. package/src/mui-controls/MuiCheckbox.tsx +1 -2
  273. package/src/mui-controls/MuiInputInteger.tsx +12 -9
  274. package/src/mui-controls/MuiInputNumber.tsx +9 -6
  275. package/src/mui-controls/MuiInputNumberFormat.tsx +8 -11
  276. package/src/mui-controls/MuiInputText.tsx +17 -15
  277. package/src/mui-controls/MuiInputTime.tsx +6 -4
  278. package/src/mui-controls/MuiSelect.tsx +2 -3
  279. package/src/mui-controls/MuiToggle.tsx +1 -2
  280. package/src/util/datejs.ts +32 -0
  281. package/src/util/debounce.ts +43 -0
  282. package/src/util/focus.ts +32 -0
  283. package/src/util/index.ts +3 -0
  284. package/src/util/layout.tsx +6 -7
  285. package/test/renderers/MaterialAnyOfRenderer.test.tsx +14 -8
  286. package/test/renderers/MaterialArrayLayout.test.tsx +8 -8
  287. package/test/renderers/MaterialBooleanToggleControl.test.tsx +0 -1
  288. package/test/renderers/MaterialCategorizationLayout.test.tsx +73 -0
  289. package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +73 -0
  290. package/test/renderers/MaterialDateControl.test.tsx +42 -0
  291. package/test/renderers/MaterialDateTimeControl.test.tsx +54 -11
  292. package/test/renderers/MaterialInputControl.test.tsx +3 -3
  293. package/test/renderers/MaterialIntegerCell.test.tsx +41 -20
  294. package/test/renderers/MaterialNumberCell.test.tsx +45 -24
  295. package/test/renderers/MaterialOneOfEnumCell.test.tsx +93 -0
  296. package/test/renderers/MaterialOneOfRenderer.test.tsx +10 -7
  297. package/test/renderers/MaterialTextCell.test.tsx +41 -20
  298. package/test/renderers/MaterialTimeCell.test.tsx +41 -20
  299. package/test/renderers/MaterialTimeControl.test.tsx +378 -0
  300. package/docs/classes/materialarraylayout.html +0 -777
  301. package/docs/classes/materialcategorizationlayoutrenderer.html +0 -786
  302. package/docs/classes/materialcategorizationstepperlayoutrenderer.html +0 -762
  303. package/docs/classes/materialdatecontrol.html +0 -825
  304. package/docs/classes/materialdatetimecontrol.html +0 -825
  305. package/docs/classes/materialinputcontrol.html +0 -825
  306. package/docs/classes/materialnativecontrol.html +0 -825
  307. package/docs/classes/materialradiogroup.html +0 -825
  308. package/docs/classes/materialslidercontrol.html +0 -825
  309. package/docs/interfaces/datecontrol.html +0 -157
  310. package/docs/interfaces/materialarraylayoutstate.html +0 -157
  311. package/docs/interfaces/statepropsofdatecontrol.html +0 -468
@@ -217,7 +217,7 @@ describe('Material number cells', () => {
217
217
  expect(input.props().value).toBe(0);
218
218
  });
219
219
 
220
- it('should update via input event', () => {
220
+ it('should update via input event', (done) => {
221
221
  const core = initCore(schema, uischema, data);
222
222
  const onChangeData: any = {
223
223
  data: undefined
@@ -234,10 +234,13 @@ describe('Material number cells', () => {
234
234
  );
235
235
  const input = wrapper.find('input');
236
236
  input.simulate('change', { target: { value: 2.72 } });
237
- expect(onChangeData.data.foo).toBe(2.72);
237
+ setTimeout(() => {
238
+ expect(onChangeData.data.foo).toBe(2.72);
239
+ done();
240
+ }, 1000);
238
241
  });
239
242
 
240
- it('should update via action', () => {
243
+ it('should update via action', (done) => {
241
244
  const core = initCore(schema, uischema, { foo: 2.72 });
242
245
  wrapper = mount(
243
246
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -251,15 +254,18 @@ describe('Material number cells', () => {
251
254
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
252
255
  wrapper.update();
253
256
 
254
- expect(
255
- wrapper
256
- .find('input')
257
- .first()
258
- .props().value
259
- ).toBe(3.14);
257
+ setTimeout(() => {
258
+ expect(
259
+ wrapper
260
+ .find('input')
261
+ .first()
262
+ .props().value
263
+ ).toBe(3.14);
264
+ done();
265
+ }, 1000);
260
266
  });
261
267
 
262
- it('should update with undefined value', () => {
268
+ it('should update with undefined value', (done) => {
263
269
  const core = initCore(schema, uischema, data);
264
270
  wrapper = mount(
265
271
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -269,11 +275,14 @@ describe('Material number cells', () => {
269
275
  core.data = { ...core.data, foo: undefined };
270
276
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
271
277
  wrapper.update();
272
- const input = wrapper.find('input').first();
273
- expect(input.props().value).toBe('');
278
+ setTimeout(() => {
279
+ const input = wrapper.find('input').first();
280
+ expect(input.props().value).toBe('');
281
+ done();
282
+ }, 1000);
274
283
  });
275
284
 
276
- it('should not update with null value', () => {
285
+ it('should not update with null value', (done) => {
277
286
  const core = initCore(schema, uischema, data);
278
287
  wrapper = mount(
279
288
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -283,11 +292,14 @@ describe('Material number cells', () => {
283
292
  core.data = { ...core.data, foo: null };
284
293
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
285
294
  wrapper.update();
286
- const input = wrapper.find('input').first();
287
- expect(input.props().value).toBe('');
295
+ setTimeout(() => {
296
+ const input = wrapper.find('input').first();
297
+ expect(input.props().value).toBe('');
298
+ done();
299
+ }, 1000);
288
300
  });
289
301
 
290
- it('should not update with wrong ref', () => {
302
+ it('should not update with wrong ref', (done) => {
291
303
  const core = initCore(schema, uischema, data);
292
304
  wrapper = mount(
293
305
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -297,11 +309,14 @@ describe('Material number cells', () => {
297
309
  core.data = { ...core.data, bar: 11 };
298
310
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
299
311
  wrapper.update();
300
- const input = wrapper.find('input').first();
301
- expect(input.props().value).toBe(3.14);
312
+ setTimeout(() => {
313
+ const input = wrapper.find('input').first();
314
+ expect(input.props().value).toBe(3.14);
315
+ done();
316
+ }, 1000);
302
317
  });
303
318
 
304
- it('should not update with null ref', () => {
319
+ it('should not update with null ref', (done) => {
305
320
  const core = initCore(schema, uischema, data);
306
321
  wrapper = mount(
307
322
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -311,11 +326,14 @@ describe('Material number cells', () => {
311
326
  core.data = { ...core.data, null: 2.72 };
312
327
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
313
328
  wrapper.update();
314
- const input = wrapper.find('input').first();
315
- expect(input.props().value).toBe(3.14);
329
+ setTimeout(() => {
330
+ const input = wrapper.find('input').first();
331
+ expect(input.props().value).toBe(3.14);
332
+ done();
333
+ }, 1000);
316
334
  });
317
335
 
318
- it('should not update with undefined ref', () => {
336
+ it('should not update with undefined ref', (done) => {
319
337
  const core = initCore(schema, uischema, data);
320
338
  wrapper = mount(
321
339
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -325,8 +343,11 @@ describe('Material number cells', () => {
325
343
  core.data = { ...core.data, undefined: 13 };
326
344
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
327
345
  wrapper.update();
328
- const input = wrapper.find('input').first();
329
- expect(input.props().value).toBe(3.14);
346
+ setTimeout(() => {
347
+ const input = wrapper.find('input').first();
348
+ expect(input.props().value).toBe(3.14);
349
+ done();
350
+ }, 1000);
330
351
  });
331
352
 
332
353
  it('can be disabled', () => {
@@ -0,0 +1,93 @@
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 './MatchMediaMock';
26
+ import * as React from 'react';
27
+ import {
28
+ ControlElement
29
+ } from '@jsonforms/core';
30
+ import MaterialOneOfEnumCell, {
31
+ materialOneOfEnumCellTester
32
+ } from '../../src/cells/MaterialOneOfEnumCell';
33
+ import { materialRenderers } from '../../src';
34
+
35
+ import Enzyme, { mount } from 'enzyme';
36
+ import Adapter from 'enzyme-adapter-react-16';
37
+ import { JsonFormsStateProvider } from '@jsonforms/react';
38
+ import { initCore } from './util';
39
+
40
+ Enzyme.configure({ adapter: new Adapter() });
41
+
42
+ const data = { country: 'AU' };
43
+ const schema = {
44
+ type: 'string',
45
+ oneOf: [
46
+ {
47
+ const: 'AU',
48
+ title: 'Australia'
49
+ },
50
+ {
51
+ const: 'NZ',
52
+ title: 'New Zealand'
53
+ }
54
+ ]
55
+ };
56
+ const uischema: ControlElement = {
57
+ type: 'Control',
58
+ scope: '#/properties/country'
59
+ };
60
+
61
+ describe('Material one of enum cell tester', () => {
62
+ it('should succeed with matching prop type', () => {
63
+ const control: ControlElement = {
64
+ type: 'Control',
65
+ scope: '#/properties/country'
66
+ };
67
+ expect(
68
+ materialOneOfEnumCellTester(control, {
69
+ type: 'object',
70
+ properties: {
71
+ country: schema
72
+ }
73
+ })
74
+ ).toBe(2);
75
+ });
76
+ });
77
+
78
+ describe('Material enum cell', () => {
79
+ it('should select an item from dropdown list', () => {
80
+ const core = initCore(schema, uischema, data);
81
+ const wrapper = mount(
82
+ <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
83
+ <MaterialOneOfEnumCell
84
+ schema={schema}
85
+ uischema={uischema}
86
+ path='country'
87
+ />
88
+ </JsonFormsStateProvider>
89
+ );
90
+ const input = wrapper.find('input');
91
+ expect(input.props().value).toBe('AU');
92
+ });
93
+ });
@@ -256,7 +256,7 @@ describe('Material oneOf renderer', () => {
256
256
  expect(secondTab.props().selected).toBeTruthy();
257
257
  });
258
258
 
259
- it('should add an item at correct path', () => {
259
+ it('should add an item at correct path', (done) => {
260
260
  const schema = {
261
261
  type: 'object',
262
262
  properties: {
@@ -298,12 +298,15 @@ describe('Material oneOf renderer', () => {
298
298
  const input = wrapper.find('input').first();
299
299
  input.simulate('change', { target: { value: 'test' } });
300
300
  wrapper.update();
301
- expect(onChangeData.data).toEqual({
302
- value: 'test'
303
- });
301
+ setTimeout(() => {
302
+ expect(onChangeData.data).toEqual({
303
+ value: 'test'
304
+ });
305
+ done();
306
+ }, 1000);
304
307
  });
305
308
 
306
- it('should add an item within an array', async () => {
309
+ it.skip('should add an item within an array', async () => {
307
310
  const schema = {
308
311
  type: 'object',
309
312
  properties: {
@@ -360,7 +363,7 @@ describe('Material oneOf renderer', () => {
360
363
  expect(nrOfRowsAfterAdd.length).toBe(3);
361
364
  });
362
365
 
363
- it('should add an object within an array', async () => {
366
+ it.skip('should add an object within an array', async () => {
364
367
  const schema = {
365
368
  type: 'object',
366
369
  properties: {
@@ -435,7 +438,7 @@ describe('Material oneOf renderer', () => {
435
438
  });
436
439
  });
437
440
 
438
- it('should switch to array based oneOf subschema, then switch back, then edit', async () => {
441
+ it.skip('should switch to array based oneOf subschema, then switch back, then edit', async () => {
439
442
  const schema = {
440
443
  type: 'object',
441
444
  properties: {
@@ -196,7 +196,7 @@ describe('Material text cell', () => {
196
196
  expect(input.props().value).toBe('Foo');
197
197
  });
198
198
 
199
- it('should update via input event', () => {
199
+ it('should update via input event', (done) => {
200
200
  const core = initCore(minLengthSchema, uischema, data);
201
201
  const onChangeData: any = {
202
202
  data: undefined
@@ -214,10 +214,13 @@ describe('Material text cell', () => {
214
214
 
215
215
  const input = wrapper.find('input').first();
216
216
  input.simulate('change', { target: { value: 'Bar' } });
217
- expect(onChangeData.data.name).toBe('Bar');
217
+ setTimeout(() => {
218
+ expect(onChangeData.data.name).toBe('Bar');
219
+ done();
220
+ }, 1000);
218
221
  });
219
222
 
220
- it('should update via action', () => {
223
+ it('should update via action', (done) => {
221
224
  const core = initCore(minLengthSchema, uischema, data);
222
225
  wrapper = mount(
223
226
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -227,11 +230,14 @@ describe('Material text cell', () => {
227
230
  core.data = { ...core.data, name: 'Bar' };
228
231
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
229
232
  wrapper.update();
230
- const input = wrapper.find('input').first();
231
- expect(input.props().value).toBe('Bar');
233
+ setTimeout(() => {
234
+ const input = wrapper.find('input').first();
235
+ expect(input.props().value).toBe('Bar');
236
+ done();
237
+ }, 1000);
232
238
  });
233
239
 
234
- it('should update with undefined value', () => {
240
+ it('should update with undefined value', (done) => {
235
241
  const core = initCore(minLengthSchema, uischema, data);
236
242
  wrapper = mount(
237
243
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -241,11 +247,14 @@ describe('Material text cell', () => {
241
247
  core.data = { ...core.data, name: undefined };
242
248
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
243
249
  wrapper.update();
244
- const input = wrapper.find('input').first();
245
- expect(input.props().value).toBe('');
250
+ setTimeout(() => {
251
+ const input = wrapper.find('input').first();
252
+ expect(input.props().value).toBe('');
253
+ done();
254
+ }, 1000);
246
255
  });
247
256
 
248
- it('should update with null value', () => {
257
+ it('should update with null value', (done) => {
249
258
  const core = initCore(minLengthSchema, uischema, data);
250
259
  wrapper = mount(
251
260
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -255,11 +264,14 @@ describe('Material text cell', () => {
255
264
  core.data = { ...core.data, name: null };
256
265
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
257
266
  wrapper.update();
258
- const input = wrapper.find('input').first();
259
- expect(input.props().value).toBe('');
267
+ setTimeout(() => {
268
+ const input = wrapper.find('input').first();
269
+ expect(input.props().value).toBe('');
270
+ done();
271
+ }, 1000);
260
272
  });
261
273
 
262
- it('should not update if wrong ref', () => {
274
+ it('should not update if wrong ref', (done) => {
263
275
  const core = initCore(minLengthSchema, uischema, data);
264
276
  wrapper = mount(
265
277
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -269,11 +281,14 @@ describe('Material text cell', () => {
269
281
  core.data = { ...core.data, firstname: 'Bar' };
270
282
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
271
283
  wrapper.update();
272
- const input = wrapper.find('input').first();
273
- expect(input.props().value).toBe('Foo');
284
+ setTimeout(() => {
285
+ const input = wrapper.find('input').first();
286
+ expect(input.props().value).toBe('Foo');
287
+ done();
288
+ }, 1000);
274
289
  });
275
290
 
276
- it('should not update if null ref', () => {
291
+ it('should not update if null ref', (done) => {
277
292
  const core = initCore(minLengthSchema, uischema, data);
278
293
  wrapper = mount(
279
294
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -283,11 +298,14 @@ describe('Material text cell', () => {
283
298
  core.data = { ...core.data, null: 'Bar' };
284
299
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
285
300
  wrapper.update();
286
- const input = wrapper.find('input').first();
287
- expect(input.props().value).toBe('Foo');
301
+ setTimeout(() => {
302
+ const input = wrapper.find('input').first();
303
+ expect(input.props().value).toBe('Foo');
304
+ done();
305
+ }, 1000);
288
306
  });
289
307
 
290
- it('should not update if undefined ref', () => {
308
+ it('should not update if undefined ref', (done) => {
291
309
  const core = initCore(minLengthSchema, uischema, data);
292
310
  wrapper = mount(
293
311
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -297,8 +315,11 @@ describe('Material text cell', () => {
297
315
  core.data = { ...core.data, undefined: 'Bar' };
298
316
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
299
317
  wrapper.update();
300
- const input = wrapper.find('input').first();
301
- expect(input.props().value).toBe('Foo');
318
+ setTimeout(() => {
319
+ const input = wrapper.find('input').first();
320
+ expect(input.props().value).toBe('Foo');
321
+ done();
322
+ }, 1000);
302
323
  });
303
324
 
304
325
  it('can be disabled', () => {
@@ -174,7 +174,7 @@ describe('Material time cell', () => {
174
174
  expect(input.props().value).toBe('13:37');
175
175
  });
176
176
 
177
- it('should update via event', () => {
177
+ it('should update via event', (done) => {
178
178
  const core = initCore(schema, uischema, data);
179
179
  const onChangeData: any = {
180
180
  data: undefined
@@ -191,10 +191,13 @@ describe('Material time cell', () => {
191
191
  );
192
192
  const input = wrapper.find('input').first();
193
193
  input.simulate('change', { target: { value: '20:15' } });
194
- expect(onChangeData.data.foo).toBe('20:15');
194
+ setTimeout(() => {
195
+ expect(onChangeData.data.foo).toBe('20:15');
196
+ done();
197
+ }, 1000);
195
198
  });
196
199
 
197
- it('should update via action', () => {
200
+ it('should update via action', (done) => {
198
201
  const core = initCore(schema, uischema, data);
199
202
  wrapper = mount(
200
203
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -204,11 +207,14 @@ describe('Material time cell', () => {
204
207
  core.data = { ...core.data, foo: '20:15' };
205
208
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
206
209
  wrapper.update();
207
- const input = wrapper.find('input').first();
208
- expect(input.props().value).toBe('20:15');
210
+ setTimeout(() => {
211
+ const input = wrapper.find('input').first();
212
+ expect(input.props().value).toBe('20:15');
213
+ done();
214
+ }, 1000);
209
215
  });
210
216
 
211
- it('should update with null value', () => {
217
+ it('should update with null value', (done) => {
212
218
  const core = initCore(schema, uischema, data);
213
219
  wrapper = mount(
214
220
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -218,11 +224,14 @@ describe('Material time cell', () => {
218
224
  core.data = { ...core.data, foo: null };
219
225
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
220
226
  wrapper.update();
221
- const input = wrapper.find('input').first();
222
- expect(input.props().value).toBe('');
227
+ setTimeout(() => {
228
+ const input = wrapper.find('input').first();
229
+ expect(input.props().value).toBe('');
230
+ done();
231
+ }, 1000);
223
232
  });
224
233
 
225
- it('update with undefined value', () => {
234
+ it('update with undefined value', (done) => {
226
235
  const core = initCore(schema, uischema, data);
227
236
  wrapper = mount(
228
237
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -232,11 +241,14 @@ describe('Material time cell', () => {
232
241
  core.data = { ...core.data, foo: undefined };
233
242
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
234
243
  wrapper.update();
235
- const input = wrapper.find('input').first();
236
- expect(input.props().value).toBe('');
244
+ setTimeout(() => {
245
+ const input = wrapper.find('input').first();
246
+ expect(input.props().value).toBe('');
247
+ done();
248
+ }, 1000);
237
249
  });
238
250
 
239
- it('should update with wrong ref', () => {
251
+ it('should update with wrong ref', (done) => {
240
252
  const core = initCore(schema, uischema, data);
241
253
  wrapper = mount(
242
254
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -246,11 +258,14 @@ describe('Material time cell', () => {
246
258
  core.data = { ...core.data, bar: 'Bar' };
247
259
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
248
260
  wrapper.update();
249
- const input = wrapper.find('input').first();
250
- expect(input.props().value).toBe('13:37');
261
+ setTimeout(() => {
262
+ const input = wrapper.find('input').first();
263
+ expect(input.props().value).toBe('13:37');
264
+ done();
265
+ }, 1000);
251
266
  });
252
267
 
253
- it('should update with null ref', () => {
268
+ it('should update with null ref', (done) => {
254
269
  const core = initCore(schema, uischema, data);
255
270
  wrapper = mount(
256
271
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -260,11 +275,14 @@ describe('Material time cell', () => {
260
275
  core.data = { ...core.data, null: '20:15' };
261
276
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
262
277
  wrapper.update();
263
- const input = wrapper.find('input').first();
264
- expect(input.props().value).toBe('13:37');
278
+ setTimeout(() => {
279
+ const input = wrapper.find('input').first();
280
+ expect(input.props().value).toBe('13:37');
281
+ done();
282
+ }, 1000);
265
283
  });
266
284
 
267
- it('should update with undefined ref', () => {
285
+ it('should update with undefined ref', (done) => {
268
286
  const core = initCore(schema, uischema, data);
269
287
  wrapper = mount(
270
288
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -274,8 +292,11 @@ describe('Material time cell', () => {
274
292
  core.data = { ...core.data, undefined: '20:15' };
275
293
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
276
294
  wrapper.update();
277
- const input = wrapper.find('input').first();
278
- expect(input.props().value).toBe('13:37');
295
+ setTimeout(() => {
296
+ const input = wrapper.find('input').first();
297
+ expect(input.props().value).toBe('13:37');
298
+ done();
299
+ }, 1000);
279
300
  });
280
301
 
281
302
  it('can be disabled', () => {