@jsonforms/material-renderers 3.0.0-alpha.3 → 3.0.0-beta.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 (295) hide show
  1. package/docs/assets/js/search.json +1 -1
  2. package/docs/globals.html +50 -185
  3. package/docs/index.html +0 -18
  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/docs/interfaces/withoptionlabel.html +3 -3
  11. package/example/index.ts +2 -3
  12. package/lib/additional/ListWithDetailMasterItem.d.ts +3 -3
  13. package/lib/additional/MaterialLabelRenderer.d.ts +13 -13
  14. package/lib/additional/MaterialListWithDetailRenderer.d.ts +6 -6
  15. package/lib/additional/index.d.ts +4 -4
  16. package/lib/cells/CustomizableCells.d.ts +9 -9
  17. package/lib/cells/MaterialBooleanCell.d.ts +6 -6
  18. package/lib/cells/MaterialBooleanToggleCell.d.ts +6 -6
  19. package/lib/cells/MaterialDateCell.d.ts +6 -6
  20. package/lib/cells/MaterialEnumCell.d.ts +10 -10
  21. package/lib/cells/MaterialIntegerCell.d.ts +6 -6
  22. package/lib/cells/MaterialNumberCell.d.ts +10 -10
  23. package/lib/cells/MaterialNumberFormatCell.d.ts +10 -10
  24. package/lib/cells/MaterialOneOfEnumCell.d.ts +10 -10
  25. package/lib/cells/MaterialTextCell.d.ts +10 -10
  26. package/lib/cells/MaterialTimeCell.d.ts +6 -6
  27. package/lib/cells/index.d.ts +13 -13
  28. package/lib/complex/CombinatorProperties.d.ts +12 -12
  29. package/lib/complex/DeleteDialog.d.ts +11 -11
  30. package/lib/complex/MaterialAllOfRenderer.d.ts +6 -6
  31. package/lib/complex/MaterialAnyOfRenderer.d.ts +6 -6
  32. package/lib/complex/MaterialArrayControlRenderer.d.ts +5 -5
  33. package/lib/complex/MaterialEnumArrayRenderer.d.ts +6 -6
  34. package/lib/complex/MaterialObjectRenderer.d.ts +6 -6
  35. package/lib/complex/MaterialOneOfRenderer.d.ts +9 -9
  36. package/lib/complex/MaterialTableControl.d.ts +25 -25
  37. package/lib/complex/NoBorderTableCell.d.ts +3 -3
  38. package/lib/complex/TableToolbar.d.ts +15 -15
  39. package/lib/complex/ValidationIcon.d.ts +7 -7
  40. package/lib/complex/index.d.ts +19 -19
  41. package/lib/controls/MaterialAnyOfStringOrEnumControl.d.ts +9 -9
  42. package/lib/controls/MaterialBooleanControl.d.ts +6 -6
  43. package/lib/controls/MaterialBooleanToggleControl.d.ts +6 -6
  44. package/lib/controls/MaterialDateControl.d.ts +6 -6
  45. package/lib/controls/MaterialDateTimeControl.d.ts +6 -6
  46. package/lib/controls/MaterialEnumControl.d.ts +7 -6
  47. package/lib/controls/MaterialInputControl.d.ts +6 -6
  48. package/lib/controls/MaterialIntegerControl.d.ts +6 -6
  49. package/lib/controls/MaterialNativeControl.d.ts +6 -6
  50. package/lib/controls/MaterialNumberControl.d.ts +6 -6
  51. package/lib/controls/MaterialOneOfEnumControl.d.ts +7 -6
  52. package/lib/controls/MaterialOneOfRadioGroupControl.d.ts +6 -6
  53. package/lib/controls/MaterialRadioGroup.d.ts +3 -3
  54. package/lib/controls/MaterialRadioGroupControl.d.ts +6 -6
  55. package/lib/controls/MaterialSliderControl.d.ts +6 -6
  56. package/lib/controls/MaterialTextControl.d.ts +6 -6
  57. package/lib/controls/MaterialTimeControl.d.ts +6 -6
  58. package/lib/controls/index.d.ts +35 -35
  59. package/lib/index.d.ts +9 -9
  60. package/lib/jsonforms-react-material.cjs.js +1480 -0
  61. package/lib/jsonforms-react-material.cjs.js.map +1 -0
  62. package/lib/jsonforms-react-material.esm.js +1212 -0
  63. package/lib/jsonforms-react-material.esm.js.map +1 -0
  64. package/lib/layouts/ArrayToolbar.d.ts +9 -9
  65. package/lib/layouts/ExpandPanelRenderer.d.ts +51 -51
  66. package/lib/layouts/MaterialArrayLayout.d.ts +3 -3
  67. package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +6 -6
  68. package/lib/layouts/MaterialCategorizationLayout.d.ts +17 -17
  69. package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +13 -13
  70. package/lib/layouts/MaterialGroupLayout.d.ts +7 -7
  71. package/lib/layouts/MaterialHorizontalLayout.d.ts +10 -10
  72. package/lib/layouts/MaterialVerticalLayout.d.ts +10 -10
  73. package/lib/layouts/index.d.ts +6 -6
  74. package/lib/{extended → mui-controls}/MuiAutocomplete.d.ts +9 -9
  75. package/lib/mui-controls/MuiCheckbox.d.ts +3 -3
  76. package/lib/mui-controls/MuiInputInteger.d.ts +3 -3
  77. package/lib/mui-controls/MuiInputNumber.d.ts +3 -3
  78. package/lib/mui-controls/MuiInputNumberFormat.d.ts +3 -3
  79. package/lib/mui-controls/MuiInputText.d.ts +9 -9
  80. package/lib/mui-controls/MuiInputTime.d.ts +3 -3
  81. package/lib/mui-controls/MuiSelect.d.ts +3 -3
  82. package/lib/mui-controls/MuiToggle.d.ts +3 -3
  83. package/lib/mui-controls/index.d.ts +7 -7
  84. package/lib/util/datejs.d.ts +3 -3
  85. package/lib/util/debounce.d.ts +1 -1
  86. package/lib/util/focus.d.ts +1 -1
  87. package/lib/util/index.d.ts +5 -5
  88. package/lib/util/layout.d.ts +15 -14
  89. package/lib/util/theme.d.ts +10 -10
  90. package/package.json +22 -11
  91. package/rollup.config.js +51 -0
  92. package/src/complex/CombinatorProperties.tsx +2 -2
  93. package/src/complex/MaterialAllOfRenderer.tsx +3 -5
  94. package/src/complex/MaterialAnyOfRenderer.tsx +3 -5
  95. package/src/complex/MaterialEnumArrayRenderer.tsx +2 -3
  96. package/src/complex/MaterialObjectRenderer.tsx +3 -8
  97. package/src/complex/MaterialOneOfRenderer.tsx +3 -5
  98. package/src/complex/MaterialTableControl.tsx +5 -5
  99. package/src/controls/MaterialEnumControl.tsx +12 -3
  100. package/src/controls/MaterialOneOfEnumControl.tsx +13 -4
  101. package/src/{extended → mui-controls}/MuiAutocomplete.tsx +0 -0
  102. package/src/util/debounce.ts +1 -1
  103. package/src/util/layout.tsx +1 -1
  104. package/stats.html +3279 -0
  105. package/test/renderers/MaterialAnyOfStringOrEnumControl.test.tsx +7 -7
  106. package/test/renderers/MaterialArrayLayout.test.tsx +65 -31
  107. package/test/renderers/MaterialBooleanCell.test.tsx +10 -7
  108. package/test/renderers/MaterialBooleanToggleCell.test.tsx +14 -9
  109. package/test/renderers/MaterialBooleanToggleControl.test.tsx +14 -9
  110. package/test/renderers/MaterialCategorizationLayout.test.tsx +14 -14
  111. package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +18 -18
  112. package/test/renderers/MaterialDateCell.test.tsx +10 -7
  113. package/test/renderers/MaterialDateControl.test.tsx +12 -8
  114. package/test/renderers/MaterialDateTimeControl.test.tsx +12 -8
  115. package/test/renderers/MaterialEnumArrayRenderer.test.tsx +23 -13
  116. package/test/renderers/MaterialEnumCell.test.tsx +2 -1
  117. package/test/renderers/MaterialEnumControl.test.tsx +75 -0
  118. package/test/renderers/MaterialIntegerCell.test.tsx +10 -7
  119. package/test/renderers/MaterialLabelRenderer.test.tsx +4 -4
  120. package/test/renderers/MaterialListWithDetailRenderer.test.tsx +5 -5
  121. package/test/renderers/MaterialNumberCell.test.tsx +10 -7
  122. package/test/renderers/MaterialObjectControl.test.tsx +10 -7
  123. package/test/renderers/MaterialOneOfEnumCell.test.tsx +2 -1
  124. package/test/renderers/MaterialOneOfRadioGroupControl.test.tsx +3 -2
  125. package/test/renderers/MaterialOneOfRenderer.test.tsx +12 -7
  126. package/test/renderers/MaterialRadioGroupControl.test.tsx +2 -2
  127. package/test/renderers/MaterialSliderControl.test.tsx +20 -12
  128. package/test/renderers/MaterialTextCell.test.tsx +10 -7
  129. package/test/renderers/MaterialTimeCell.test.tsx +10 -7
  130. package/test/renderers/MaterialTimeControl.test.tsx +12 -8
  131. package/tsconfig.json +1 -2
  132. package/tsconfig.test.json +7 -0
  133. package/lib/additional/ListWithDetailMasterItem.js +0 -19
  134. package/lib/additional/ListWithDetailMasterItem.js.map +0 -1
  135. package/lib/additional/MaterialLabelRenderer.js +0 -49
  136. package/lib/additional/MaterialLabelRenderer.js.map +0 -1
  137. package/lib/additional/MaterialListWithDetailRenderer.js +0 -66
  138. package/lib/additional/MaterialListWithDetailRenderer.js.map +0 -1
  139. package/lib/additional/index.js +0 -35
  140. package/lib/additional/index.js.map +0 -1
  141. package/lib/cells/CustomizableCells.js +0 -46
  142. package/lib/cells/CustomizableCells.js.map +0 -1
  143. package/lib/cells/MaterialBooleanCell.js +0 -39
  144. package/lib/cells/MaterialBooleanCell.js.map +0 -1
  145. package/lib/cells/MaterialBooleanToggleCell.js +0 -40
  146. package/lib/cells/MaterialBooleanToggleCell.js.map +0 -1
  147. package/lib/cells/MaterialDateCell.js +0 -42
  148. package/lib/cells/MaterialDateCell.js.map +0 -1
  149. package/lib/cells/MaterialEnumCell.js +0 -41
  150. package/lib/cells/MaterialEnumCell.js.map +0 -1
  151. package/lib/cells/MaterialIntegerCell.js +0 -37
  152. package/lib/cells/MaterialIntegerCell.js.map +0 -1
  153. package/lib/cells/MaterialNumberCell.js +0 -41
  154. package/lib/cells/MaterialNumberCell.js.map +0 -1
  155. package/lib/cells/MaterialNumberFormatCell.js +0 -41
  156. package/lib/cells/MaterialNumberFormatCell.js.map +0 -1
  157. package/lib/cells/MaterialOneOfEnumCell.js +0 -41
  158. package/lib/cells/MaterialOneOfEnumCell.js.map +0 -1
  159. package/lib/cells/MaterialTextCell.js +0 -41
  160. package/lib/cells/MaterialTextCell.js.map +0 -1
  161. package/lib/cells/MaterialTimeCell.js +0 -37
  162. package/lib/cells/MaterialTimeCell.js.map +0 -1
  163. package/lib/cells/index.js +0 -61
  164. package/lib/cells/index.js.map +0 -1
  165. package/lib/complex/CombinatorProperties.js +0 -59
  166. package/lib/complex/CombinatorProperties.js.map +0 -1
  167. package/lib/complex/DeleteDialog.js +0 -41
  168. package/lib/complex/DeleteDialog.js.map +0 -1
  169. package/lib/complex/MaterialAllOfRenderer.js +0 -47
  170. package/lib/complex/MaterialAllOfRenderer.js.map +0 -1
  171. package/lib/complex/MaterialAnyOfRenderer.js +0 -51
  172. package/lib/complex/MaterialAnyOfRenderer.js.map +0 -1
  173. package/lib/complex/MaterialArrayControlRenderer.js +0 -57
  174. package/lib/complex/MaterialArrayControlRenderer.js.map +0 -1
  175. package/lib/complex/MaterialEnumArrayRenderer.js +0 -48
  176. package/lib/complex/MaterialEnumArrayRenderer.js.map +0 -1
  177. package/lib/complex/MaterialObjectRenderer.js +0 -51
  178. package/lib/complex/MaterialObjectRenderer.js.map +0 -1
  179. package/lib/complex/MaterialOneOfRenderer.js +0 -78
  180. package/lib/complex/MaterialOneOfRenderer.js.map +0 -1
  181. package/lib/complex/MaterialTableControl.js +0 -197
  182. package/lib/complex/MaterialTableControl.js.map +0 -1
  183. package/lib/complex/NoBorderTableCell.js +0 -39
  184. package/lib/complex/NoBorderTableCell.js.map +0 -1
  185. package/lib/complex/TableToolbar.js +0 -56
  186. package/lib/complex/TableToolbar.js.map +0 -1
  187. package/lib/complex/ValidationIcon.js +0 -44
  188. package/lib/complex/ValidationIcon.js.map +0 -1
  189. package/lib/complex/index.js +0 -48
  190. package/lib/complex/index.js.map +0 -1
  191. package/lib/controls/MaterialAnyOfStringOrEnumControl.js +0 -85
  192. package/lib/controls/MaterialAnyOfStringOrEnumControl.js.map +0 -1
  193. package/lib/controls/MaterialBooleanControl.js +0 -43
  194. package/lib/controls/MaterialBooleanControl.js.map +0 -1
  195. package/lib/controls/MaterialBooleanToggleControl.js +0 -43
  196. package/lib/controls/MaterialBooleanToggleControl.js.map +0 -1
  197. package/lib/controls/MaterialDateControl.js +0 -62
  198. package/lib/controls/MaterialDateControl.js.map +0 -1
  199. package/lib/controls/MaterialDateTimeControl.js +0 -62
  200. package/lib/controls/MaterialDateTimeControl.js.map +0 -1
  201. package/lib/controls/MaterialEnumControl.js +0 -38
  202. package/lib/controls/MaterialEnumControl.js.map +0 -1
  203. package/lib/controls/MaterialInputControl.js +0 -56
  204. package/lib/controls/MaterialInputControl.js.map +0 -1
  205. package/lib/controls/MaterialIntegerControl.js +0 -38
  206. package/lib/controls/MaterialIntegerControl.js.map +0 -1
  207. package/lib/controls/MaterialNativeControl.js +0 -50
  208. package/lib/controls/MaterialNativeControl.js.map +0 -1
  209. package/lib/controls/MaterialNumberControl.js +0 -38
  210. package/lib/controls/MaterialNumberControl.js.map +0 -1
  211. package/lib/controls/MaterialOneOfEnumControl.js +0 -38
  212. package/lib/controls/MaterialOneOfEnumControl.js.map +0 -1
  213. package/lib/controls/MaterialOneOfRadioGroupControl.js +0 -39
  214. package/lib/controls/MaterialOneOfRadioGroupControl.js.map +0 -1
  215. package/lib/controls/MaterialRadioGroup.js +0 -48
  216. package/lib/controls/MaterialRadioGroup.js.map +0 -1
  217. package/lib/controls/MaterialRadioGroupControl.js +0 -39
  218. package/lib/controls/MaterialRadioGroupControl.js.map +0 -1
  219. package/lib/controls/MaterialSliderControl.js +0 -70
  220. package/lib/controls/MaterialSliderControl.js.map +0 -1
  221. package/lib/controls/MaterialTextControl.js +0 -38
  222. package/lib/controls/MaterialTextControl.js.map +0 -1
  223. package/lib/controls/MaterialTimeControl.js +0 -62
  224. package/lib/controls/MaterialTimeControl.js.map +0 -1
  225. package/lib/controls/index.js +0 -92
  226. package/lib/controls/index.js.map +0 -1
  227. package/lib/extended/MaterialAutocompleteEnumControl.d.ts +0 -7
  228. package/lib/extended/MaterialAutocompleteEnumControl.js +0 -44
  229. package/lib/extended/MaterialAutocompleteEnumControl.js.map +0 -1
  230. package/lib/extended/MaterialAutocompleteOneOfEnumControl.d.ts +0 -7
  231. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js +0 -44
  232. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js.map +0 -1
  233. package/lib/extended/MuiAutocomplete.js +0 -45
  234. package/lib/extended/MuiAutocomplete.js.map +0 -1
  235. package/lib/extended/index.d.ts +0 -10
  236. package/lib/extended/index.js +0 -49
  237. package/lib/extended/index.js.map +0 -1
  238. package/lib/index.js +0 -90
  239. package/lib/index.js.map +0 -1
  240. package/lib/jsonforms-material.js +0 -291
  241. package/lib/jsonforms-material.js.map +0 -1
  242. package/lib/layouts/ArrayToolbar.js +0 -25
  243. package/lib/layouts/ArrayToolbar.js.map +0 -1
  244. package/lib/layouts/ExpandPanelRenderer.js +0 -111
  245. package/lib/layouts/ExpandPanelRenderer.js.map +0 -1
  246. package/lib/layouts/MaterialArrayLayout.js +0 -54
  247. package/lib/layouts/MaterialArrayLayout.js.map +0 -1
  248. package/lib/layouts/MaterialArrayLayoutRenderer.js +0 -45
  249. package/lib/layouts/MaterialArrayLayoutRenderer.js.map +0 -1
  250. package/lib/layouts/MaterialCategorizationLayout.js +0 -71
  251. package/lib/layouts/MaterialCategorizationLayout.js.map +0 -1
  252. package/lib/layouts/MaterialCategorizationStepperLayout.js +0 -78
  253. package/lib/layouts/MaterialCategorizationStepperLayout.js.map +0 -1
  254. package/lib/layouts/MaterialGroupLayout.js +0 -54
  255. package/lib/layouts/MaterialGroupLayout.js.map +0 -1
  256. package/lib/layouts/MaterialHorizontalLayout.js +0 -53
  257. package/lib/layouts/MaterialHorizontalLayout.js.map +0 -1
  258. package/lib/layouts/MaterialVerticalLayout.js +0 -53
  259. package/lib/layouts/MaterialVerticalLayout.js.map +0 -1
  260. package/lib/layouts/index.js +0 -44
  261. package/lib/layouts/index.js.map +0 -1
  262. package/lib/mui-controls/MuiCheckbox.js +0 -40
  263. package/lib/mui-controls/MuiCheckbox.js.map +0 -1
  264. package/lib/mui-controls/MuiInputInteger.js +0 -44
  265. package/lib/mui-controls/MuiInputInteger.js.map +0 -1
  266. package/lib/mui-controls/MuiInputNumber.js +0 -44
  267. package/lib/mui-controls/MuiInputNumber.js.map +0 -1
  268. package/lib/mui-controls/MuiInputNumberFormat.js +0 -49
  269. package/lib/mui-controls/MuiInputNumberFormat.js.map +0 -1
  270. package/lib/mui-controls/MuiInputText.js +0 -68
  271. package/lib/mui-controls/MuiInputText.js.map +0 -1
  272. package/lib/mui-controls/MuiInputTime.js +0 -39
  273. package/lib/mui-controls/MuiInputTime.js.map +0 -1
  274. package/lib/mui-controls/MuiSelect.js +0 -37
  275. package/lib/mui-controls/MuiSelect.js.map +0 -1
  276. package/lib/mui-controls/MuiToggle.js +0 -39
  277. package/lib/mui-controls/MuiToggle.js.map +0 -1
  278. package/lib/mui-controls/index.js +0 -35
  279. package/lib/mui-controls/index.js.map +0 -1
  280. package/lib/util/datejs.js +0 -29
  281. package/lib/util/datejs.js.map +0 -1
  282. package/lib/util/debounce.js +0 -48
  283. package/lib/util/debounce.js.map +0 -1
  284. package/lib/util/focus.js +0 -36
  285. package/lib/util/focus.js.map +0 -1
  286. package/lib/util/index.js +0 -33
  287. package/lib/util/index.js.map +0 -1
  288. package/lib/util/layout.js +0 -58
  289. package/lib/util/layout.js.map +0 -1
  290. package/lib/util/theme.js +0 -3
  291. package/lib/util/theme.js.map +0 -1
  292. package/src/extended/MaterialAutocompleteEnumControl.tsx +0 -55
  293. package/src/extended/MaterialAutocompleteOneOfEnumControl.tsx +0 -55
  294. package/src/extended/index.ts +0 -56
  295. package/webpack/webpack.build.js +0 -21
@@ -57,14 +57,14 @@ const uischema: ControlElement = {
57
57
 
58
58
  describe('Material date control tester', () => {
59
59
  test('should fail', () => {
60
- expect(materialDateControlTester(undefined, undefined)).toBe(
60
+ expect(materialDateControlTester(undefined, undefined, undefined)).toBe(
61
61
  NOT_APPLICABLE
62
62
  );
63
- expect(materialDateControlTester(null, undefined)).toBe(NOT_APPLICABLE);
64
- expect(materialDateControlTester({ type: 'Foo' }, undefined)).toBe(
63
+ expect(materialDateControlTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
64
+ expect(materialDateControlTester({ type: 'Foo' }, undefined, undefined)).toBe(
65
65
  NOT_APPLICABLE
66
66
  );
67
- expect(materialDateControlTester({ type: 'Control' }, undefined)).toBe(
67
+ expect(materialDateControlTester({ type: 'Control' }, undefined, undefined)).toBe(
68
68
  NOT_APPLICABLE
69
69
  );
70
70
  expect(
@@ -73,7 +73,8 @@ describe('Material date control tester', () => {
73
73
  properties: {
74
74
  foo: { type: 'string' }
75
75
  }
76
- })
76
+ },
77
+ undefined)
77
78
  ).toBe(NOT_APPLICABLE);
78
79
  expect(
79
80
  materialDateControlTester(uischema, {
@@ -85,7 +86,8 @@ describe('Material date control tester', () => {
85
86
  format: 'date'
86
87
  }
87
88
  }
88
- })
89
+ },
90
+ undefined)
89
91
  ).toBe(NOT_APPLICABLE);
90
92
  });
91
93
 
@@ -99,7 +101,8 @@ describe('Material date control tester', () => {
99
101
  format: 'date'
100
102
  }
101
103
  }
102
- })
104
+ },
105
+ undefined)
103
106
  ).toBe(4);
104
107
  expect(
105
108
  materialDateControlTester(
@@ -111,7 +114,8 @@ describe('Material date control tester', () => {
111
114
  type: 'string'
112
115
  }
113
116
  }
114
- }
117
+ },
118
+ undefined
115
119
  )
116
120
  ).toBe(4);
117
121
  });
@@ -58,14 +58,14 @@ const uischema: ControlElement = {
58
58
 
59
59
  describe('Material date time control tester', () => {
60
60
  it('should fail', () => {
61
- expect(materialDateTimeControlTester(undefined, undefined)).toBe(
61
+ expect(materialDateTimeControlTester(undefined, undefined, undefined)).toBe(
62
62
  NOT_APPLICABLE
63
63
  );
64
- expect(materialDateTimeControlTester(null, undefined)).toBe(NOT_APPLICABLE);
65
- expect(materialDateTimeControlTester({ type: 'Foo' }, undefined)).toBe(
64
+ expect(materialDateTimeControlTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
65
+ expect(materialDateTimeControlTester({ type: 'Foo' }, undefined, undefined)).toBe(
66
66
  NOT_APPLICABLE
67
67
  );
68
- expect(materialDateTimeControlTester({ type: 'Control' }, undefined)).toBe(
68
+ expect(materialDateTimeControlTester({ type: 'Control' }, undefined, undefined)).toBe(
69
69
  NOT_APPLICABLE
70
70
  );
71
71
  expect(
@@ -74,7 +74,8 @@ describe('Material date time control tester', () => {
74
74
  properties: {
75
75
  foo: { type: 'string' }
76
76
  }
77
- })
77
+ },
78
+ undefined)
78
79
  ).toBe(NOT_APPLICABLE);
79
80
  expect(
80
81
  materialDateTimeControlTester(uischema, {
@@ -86,7 +87,8 @@ describe('Material date time control tester', () => {
86
87
  format: 'date-time'
87
88
  }
88
89
  }
89
- })
90
+ },
91
+ undefined)
90
92
  ).toBe(NOT_APPLICABLE);
91
93
  });
92
94
 
@@ -100,7 +102,8 @@ describe('Material date time control tester', () => {
100
102
  format: 'date-time'
101
103
  }
102
104
  }
103
- })
105
+ },
106
+ undefined)
104
107
  ).toBe(2);
105
108
  expect(
106
109
  materialDateTimeControlTester(
@@ -112,7 +115,8 @@ describe('Material date time control tester', () => {
112
115
  type: 'string'
113
116
  }
114
117
  }
115
- }
118
+ },
119
+ undefined
116
120
  )
117
121
  ).toBe(2);
118
122
  });
@@ -51,7 +51,8 @@ describe('EnumArrayControl tester', () => {
51
51
  materialEnumArrayRendererTester(uischema, {
52
52
  type: 'array',
53
53
  items: {}
54
- })
54
+ },
55
+ undefined)
55
56
  ).toBe(NOT_APPLICABLE);
56
57
  expect(
57
58
  materialEnumArrayRendererTester(uischema, {
@@ -59,12 +60,13 @@ describe('EnumArrayControl tester', () => {
59
60
  items: {
60
61
  anyOf: []
61
62
  }
62
- })
63
+ },
64
+ undefined)
63
65
  ).toBe(NOT_APPLICABLE);
64
66
  });
65
67
 
66
68
  it('should succeed for schema with enum items', () => {
67
- expect(materialEnumArrayRendererTester(uischema, enumSchema)).toBe(5);
69
+ expect(materialEnumArrayRendererTester(uischema, enumSchema, undefined)).toBe(5);
68
70
  });
69
71
  });
70
72
 
@@ -113,11 +115,11 @@ describe('EnumArrayControl', () => {
113
115
  );
114
116
  const labels = wrapper.find('label');
115
117
  expect(labels.first().text()).toBe('My Title');
116
- expect(labels.last().text()).toBe('Bar');
118
+ expect(labels.last().text()).toBe('bar');
117
119
  });
118
120
 
119
- test('oneOf items - updates data', () => {
120
- let myData = undefined;
121
+ test('oneOf items - updates data', (done) => {
122
+ let myData: any = undefined;
121
123
  wrapper = mount(
122
124
  <JsonForms
123
125
  schema={oneOfSchema}
@@ -131,7 +133,11 @@ describe('EnumArrayControl', () => {
131
133
  );
132
134
  const input = wrapper.find('input').first();
133
135
  input.simulate('change', { target: { checked: true } });
134
- expect(myData).toStrictEqual(['foo']);
136
+ // events are debounced for some time, so let's wait
137
+ setTimeout(() => {
138
+ expect(myData).toStrictEqual(['foo']);
139
+ done();
140
+ }, 50);
135
141
  });
136
142
 
137
143
  test('enum items - renders', () => {
@@ -172,13 +178,13 @@ describe('EnumArrayControl', () => {
172
178
  />
173
179
  );
174
180
  const labels = wrapper.find('label');
175
- expect(labels.at(0).text()).toBe('A');
176
- expect(labels.at(1).text()).toBe('B');
177
- expect(labels.at(2).text()).toBe('C');
181
+ expect(labels.at(0).text()).toBe('a');
182
+ expect(labels.at(1).text()).toBe('b');
183
+ expect(labels.at(2).text()).toBe('c');
178
184
  });
179
185
 
180
- test('enum items - updates data', () => {
181
- let myData = undefined;
186
+ test('enum items - updates data', (done) => {
187
+ let myData: any = undefined;
182
188
  wrapper = mount(
183
189
  <JsonForms
184
190
  schema={enumSchema}
@@ -192,6 +198,10 @@ describe('EnumArrayControl', () => {
192
198
  );
193
199
  const input = wrapper.find('input').first();
194
200
  input.simulate('change', { target: { checked: true } });
195
- expect(myData).toStrictEqual(['a']);
201
+ // events are debounced for some time, so let's wait
202
+ setTimeout(() => {
203
+ expect(myData).toStrictEqual(['a']);
204
+ done();
205
+ }, 50);
196
206
  });
197
207
  });
@@ -64,7 +64,8 @@ describe('Material enum cell tester', () => {
64
64
  enum: ['DE', 'IT', 'JP', 'US', 'RU', 'Other']
65
65
  }
66
66
  }
67
- })
67
+ },
68
+ undefined)
68
69
  ).toBe(2);
69
70
  });
70
71
  });
@@ -0,0 +1,75 @@
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 { materialRenderers, MuiSelect } from '../../src';
31
+
32
+ import Enzyme, { mount } from 'enzyme';
33
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
34
+ import { JsonFormsStateProvider } from '@jsonforms/react';
35
+ import { initCore } from './util';
36
+ import { MaterialEnumControl } from '../../src';
37
+
38
+ Enzyme.configure({ adapter: new Adapter() });
39
+
40
+ const data = { nationality: 'JP' };
41
+ const schema = {
42
+ type: 'string',
43
+ enum: ['DE', 'IT', 'JP', 'US', 'RU', 'Other']
44
+ };
45
+ const uischema: ControlElement = {
46
+ type: 'Control',
47
+ scope: '#/properties/nationality',
48
+ options: {
49
+ autocomplete: false
50
+ }
51
+ };
52
+
53
+ describe('Material enum control', () => {
54
+ it('enum options should change when translation changes', () => {
55
+ const core = initCore(schema, uischema, data);
56
+ const translate = () => 'Translated';
57
+ const changedTranslate = () => 'OtherTranslation';
58
+ const wrapper = mount(
59
+ <JsonFormsStateProvider initState={{ renderers: materialRenderers, core, i18n: {translate} }}>
60
+ <MaterialEnumControl
61
+ schema={schema}
62
+ uischema={uischema}
63
+ path='nationality'
64
+ />
65
+ </JsonFormsStateProvider>
66
+ );
67
+
68
+ expect(wrapper.find(MuiSelect).props().options[0].label).toBe('Translated');
69
+
70
+ wrapper.setProps({ initState: { renderers: materialRenderers, core, i18n: {translate: changedTranslate} }} );
71
+ wrapper.update();
72
+
73
+ expect(wrapper.find(MuiSelect).props().options[0].label).toBe('OtherTranslation');
74
+ });
75
+ });
@@ -57,27 +57,29 @@ describe('Material integer cells tester', () => {
57
57
  };
58
58
 
59
59
  it('should fail', () => {
60
- expect(materialIntegerCellTester(undefined, undefined)).toBe(
60
+ expect(materialIntegerCellTester(undefined, undefined, undefined)).toBe(
61
61
  NOT_APPLICABLE
62
62
  );
63
- expect(materialIntegerCellTester(null, undefined)).toBe(NOT_APPLICABLE);
64
- expect(materialIntegerCellTester({ type: 'Foo' }, undefined)).toBe(
63
+ expect(materialIntegerCellTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
64
+ expect(materialIntegerCellTester({ type: 'Foo' }, undefined, undefined)).toBe(
65
65
  NOT_APPLICABLE
66
66
  );
67
- expect(materialIntegerCellTester({ type: 'Control' }, undefined)).toBe(
67
+ expect(materialIntegerCellTester({ type: 'Control' }, undefined, undefined)).toBe(
68
68
  NOT_APPLICABLE
69
69
  );
70
70
  expect(
71
71
  materialIntegerCellTester(controlElement, {
72
72
  type: 'object',
73
73
  properties: { foo: { type: 'string' } }
74
- })
74
+ },
75
+ undefined)
75
76
  ).toBe(NOT_APPLICABLE);
76
77
  expect(
77
78
  materialIntegerCellTester(controlElement, {
78
79
  type: 'object',
79
80
  properties: { foo: { type: 'string' }, bar: { type: 'integer' } }
80
- })
81
+ },
82
+ undefined)
81
83
  ).toBe(NOT_APPLICABLE);
82
84
  });
83
85
 
@@ -86,7 +88,8 @@ describe('Material integer cells tester', () => {
86
88
  materialIntegerCellTester(controlElement, {
87
89
  type: 'object',
88
90
  properties: { foo: { type: 'integer' } }
89
- })
91
+ },
92
+ undefined)
90
93
  ).toBe(2);
91
94
  });
92
95
  });
@@ -51,14 +51,14 @@ const uischema = {
51
51
 
52
52
  describe('Material Label Renderer tester', () => {
53
53
  it('should fail', () => {
54
- expect(materialLabelRendererTester(undefined, undefined)).toBe(
54
+ expect(materialLabelRendererTester(undefined, undefined, undefined)).toBe(
55
55
  NOT_APPLICABLE
56
56
  );
57
- expect(materialLabelRendererTester(null, undefined)).toBe(NOT_APPLICABLE);
58
- expect(materialLabelRendererTester({ type: 'Foo' }, undefined)).toBe(
57
+ expect(materialLabelRendererTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
58
+ expect(materialLabelRendererTester({ type: 'Foo' }, undefined, undefined)).toBe(
59
59
  NOT_APPLICABLE
60
60
  );
61
- expect(materialLabelRendererTester({ type: 'Label' }, undefined)).toBe(1);
61
+ expect(materialLabelRendererTester({ type: 'Label' }, undefined, undefined)).toBe(1);
62
62
  });
63
63
  });
64
64
 
@@ -110,13 +110,13 @@ describe('Material list with detail tester', () => {
110
110
  type: 'string'
111
111
  }
112
112
  };
113
- expect(materialListWithDetailTester(uischema, schema)).toBe(-1);
114
- expect(materialListWithDetailTester(correctUISchema, wrongSchema)).toBe(-1);
115
- expect(materialListWithDetailTester(correctUISchema, schema)).toBe(4);
116
- expect(materialListWithDetailTester(correctUISchema, nestedSchema)).toBe(
113
+ expect(materialListWithDetailTester(uischema, schema, undefined)).toBe(-1);
114
+ expect(materialListWithDetailTester(correctUISchema, wrongSchema, undefined)).toBe(-1);
115
+ expect(materialListWithDetailTester(correctUISchema, schema, undefined)).toBe(4);
116
+ expect(materialListWithDetailTester(correctUISchema, nestedSchema, undefined)).toBe(
117
117
  -1
118
118
  );
119
- expect(materialListWithDetailTester(correctUISchema, nestedSchema2)).toBe(
119
+ expect(materialListWithDetailTester(correctUISchema, nestedSchema2, undefined)).toBe(
120
120
  4
121
121
  );
122
122
  });
@@ -52,12 +52,12 @@ const uischema: ControlElement = {
52
52
 
53
53
  describe('Material number cells tester', () => {
54
54
  it('should fail', () => {
55
- expect(materialNumberCellTester(undefined, undefined)).toBe(NOT_APPLICABLE);
56
- expect(materialNumberCellTester(null, undefined)).toBe(NOT_APPLICABLE);
57
- expect(materialNumberCellTester({ type: 'Foo' }, undefined)).toBe(
55
+ expect(materialNumberCellTester(undefined, undefined, undefined)).toBe(NOT_APPLICABLE);
56
+ expect(materialNumberCellTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
57
+ expect(materialNumberCellTester({ type: 'Foo' }, undefined, undefined)).toBe(
58
58
  NOT_APPLICABLE
59
59
  );
60
- expect(materialNumberCellTester({ type: 'Control' }, undefined)).toBe(
60
+ expect(materialNumberCellTester({ type: 'Control' }, undefined, undefined)).toBe(
61
61
  NOT_APPLICABLE
62
62
  );
63
63
  });
@@ -75,7 +75,8 @@ describe('Material number cells tester', () => {
75
75
  type: 'string'
76
76
  }
77
77
  }
78
- })
78
+ },
79
+ undefined)
79
80
  ).toBe(NOT_APPLICABLE);
80
81
  });
81
82
 
@@ -95,7 +96,8 @@ describe('Material number cells tester', () => {
95
96
  type: 'number'
96
97
  }
97
98
  }
98
- })
99
+ },
100
+ undefined)
99
101
  ).toBe(NOT_APPLICABLE);
100
102
  });
101
103
 
@@ -112,7 +114,8 @@ describe('Material number cells tester', () => {
112
114
  type: 'number'
113
115
  }
114
116
  }
115
- })
117
+ },
118
+ undefined)
116
119
  ).toBe(2);
117
120
  });
118
121
  });
@@ -68,14 +68,14 @@ const uischema2: ControlElement = {
68
68
 
69
69
  describe('Material object renderer tester', () => {
70
70
  test('should fail', () => {
71
- expect(materialObjectControlTester(undefined, undefined)).toBe(
71
+ expect(materialObjectControlTester(undefined, undefined, undefined)).toBe(
72
72
  NOT_APPLICABLE
73
73
  );
74
- expect(materialObjectControlTester(null, undefined)).toBe(NOT_APPLICABLE);
75
- expect(materialObjectControlTester({ type: 'Foo' }, undefined)).toBe(
74
+ expect(materialObjectControlTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
75
+ expect(materialObjectControlTester({ type: 'Foo' }, undefined, undefined)).toBe(
76
76
  NOT_APPLICABLE
77
77
  );
78
- expect(materialObjectControlTester({ type: 'Control' }, undefined)).toBe(
78
+ expect(materialObjectControlTester({ type: 'Control' }, undefined, undefined)).toBe(
79
79
  NOT_APPLICABLE
80
80
  );
81
81
  expect(
@@ -84,7 +84,8 @@ describe('Material object renderer tester', () => {
84
84
  properties: {
85
85
  foo: { type: 'string' }
86
86
  }
87
- })
87
+ },
88
+ undefined)
88
89
  ).toBe(NOT_APPLICABLE);
89
90
  expect(
90
91
  materialObjectControlTester(uischema2, {
@@ -93,7 +94,8 @@ describe('Material object renderer tester', () => {
93
94
  foo: { type: 'string' },
94
95
  bar: schema.properties.bar
95
96
  }
96
- })
97
+ },
98
+ undefined)
97
99
  ).toBe(NOT_APPLICABLE);
98
100
  });
99
101
 
@@ -104,7 +106,8 @@ describe('Material object renderer tester', () => {
104
106
  properties: {
105
107
  foo: schema.properties.foo
106
108
  }
107
- })
109
+ },
110
+ undefined)
108
111
  ).toBe(2);
109
112
  });
110
113
  });
@@ -70,7 +70,8 @@ describe('Material one of enum cell tester', () => {
70
70
  properties: {
71
71
  country: schema
72
72
  }
73
- })
73
+ },
74
+ undefined)
74
75
  ).toBe(2);
75
76
  });
76
77
  });
@@ -63,7 +63,7 @@ const uischema: ControlElement = {
63
63
 
64
64
  describe('Material oneof radio group tester', () => {
65
65
  it('should return valid rank for oneof enums with radio format', () => {
66
- const rank = materialOneOfRadioGroupControlTester(uischema, oneOfSchema);
66
+ const rank = materialOneOfRadioGroupControlTester(uischema, oneOfSchema, undefined);
67
67
  expect(rank).not.toBe(NOT_APPLICABLE);
68
68
  });
69
69
 
@@ -74,7 +74,8 @@ describe('Material oneof radio group tester', () => {
74
74
  };
75
75
  const rank = materialOneOfRadioGroupControlTester(
76
76
  uiSchemaNoRadio,
77
- oneOfSchema
77
+ oneOfSchema,
78
+ undefined
78
79
  );
79
80
  expect(rank).toBe(NOT_APPLICABLE);
80
81
  });
@@ -309,7 +309,7 @@ describe('Material oneOf renderer', () => {
309
309
  }, 1000);
310
310
  });
311
311
 
312
- it.skip('should add an item within an array', async () => {
312
+ it('should add an item within an array', async () => {
313
313
  const schema = {
314
314
  type: 'object',
315
315
  properties: {
@@ -366,7 +366,7 @@ describe('Material oneOf renderer', () => {
366
366
  expect(nrOfRowsAfterAdd.length).toBe(3);
367
367
  });
368
368
 
369
- it.skip('should add an object within an array', async () => {
369
+ it('should add an object within an array', async () => {
370
370
  const schema = {
371
371
  type: 'object',
372
372
  properties: {
@@ -424,7 +424,6 @@ describe('Material oneOf renderer', () => {
424
424
 
425
425
  await waitForAsync();
426
426
 
427
- // expect(wrapper.state())
428
427
  wrapper.update();
429
428
 
430
429
  selectOneOfTab(wrapper, 1, false);
@@ -441,7 +440,7 @@ describe('Material oneOf renderer', () => {
441
440
  });
442
441
  });
443
442
 
444
- it.skip('should switch to array based oneOf subschema, then switch back, then edit', async () => {
443
+ it('should switch to array based oneOf subschema, then switch back, then edit', async (done) => {
445
444
  const schema = {
446
445
  type: 'object',
447
446
  properties: {
@@ -511,9 +510,15 @@ describe('Material oneOf renderer', () => {
511
510
  const input = wrapper.find('input').first();
512
511
  input.simulate('change', { target: { value: 'test' } });
513
512
  wrapper.update();
514
- expect(onChangeData.data).toEqual({
515
- thingOrThings: { thing: 'test' }
516
- });
513
+
514
+ setTimeout(() => {
515
+ expect(onChangeData.data).toEqual({
516
+ thingOrThings: { thing: 'test' }
517
+ });
518
+ done();
519
+ }, 1000);
520
+
521
+
517
522
  });
518
523
 
519
524
  it('should show confirm dialog when data is not an empty object', async () => {
@@ -56,7 +56,7 @@ const uischema: ControlElement = {
56
56
 
57
57
  describe('Material radio group tester', () => {
58
58
  it('should return valid rank for enums with radio format', () => {
59
- const rank = materialRadioGroupControlTester(uischema, schema);
59
+ const rank = materialRadioGroupControlTester(uischema, schema, undefined);
60
60
  expect(rank).not.toBe(NOT_APPLICABLE);
61
61
  });
62
62
 
@@ -65,7 +65,7 @@ describe('Material radio group tester', () => {
65
65
  type: 'Control',
66
66
  scope: '#/properties/foo'
67
67
  };
68
- const rank = materialRadioGroupControlTester(uiSchemaNoRadio, schema);
68
+ const rank = materialRadioGroupControlTester(uiSchemaNoRadio, schema, undefined);
69
69
  expect(rank).toBe(NOT_APPLICABLE);
70
70
  });
71
71
  });
@@ -64,14 +64,14 @@ const uischema: ControlElement = {
64
64
 
65
65
  describe('Material slider tester', () => {
66
66
  it('should fail', () => {
67
- expect(materialSliderControlTester(undefined, undefined)).toBe(
67
+ expect(materialSliderControlTester(undefined, undefined, undefined)).toBe(
68
68
  NOT_APPLICABLE
69
69
  );
70
- expect(materialSliderControlTester(null, undefined)).toBe(NOT_APPLICABLE);
71
- expect(materialSliderControlTester({ type: 'Foo' }, undefined)).toBe(
70
+ expect(materialSliderControlTester(null, undefined, undefined)).toBe(NOT_APPLICABLE);
71
+ expect(materialSliderControlTester({ type: 'Foo' }, undefined, undefined)).toBe(
72
72
  NOT_APPLICABLE
73
73
  );
74
- expect(materialSliderControlTester({ type: 'Control' }, undefined)).toBe(
74
+ expect(materialSliderControlTester({ type: 'Control' }, undefined, undefined)).toBe(
75
75
  NOT_APPLICABLE
76
76
  );
77
77
  });
@@ -83,7 +83,8 @@ describe('Material slider tester', () => {
83
83
  properties: {
84
84
  foo: { type: 'string' }
85
85
  }
86
- })
86
+ },
87
+ undefined)
87
88
  ).toBe(NOT_APPLICABLE);
88
89
  });
89
90
 
@@ -95,7 +96,8 @@ describe('Material slider tester', () => {
95
96
  foo: { type: 'string' },
96
97
  bar: { type: 'number' }
97
98
  }
98
- })
99
+ },
100
+ undefined)
99
101
  ).toBe(NOT_APPLICABLE);
100
102
  });
101
103
 
@@ -106,7 +108,8 @@ describe('Material slider tester', () => {
106
108
  properties: {
107
109
  foo: { type: 'number' }
108
110
  }
109
- })
111
+ },
112
+ undefined)
110
113
  ).toBe(NOT_APPLICABLE);
111
114
  });
112
115
 
@@ -120,7 +123,8 @@ describe('Material slider tester', () => {
120
123
  minimum: 2
121
124
  }
122
125
  }
123
- })
126
+ },
127
+ undefined)
124
128
  ).toBe(NOT_APPLICABLE);
125
129
  });
126
130
 
@@ -134,7 +138,8 @@ describe('Material slider tester', () => {
134
138
  maximum: 10
135
139
  }
136
140
  }
137
- })
141
+ },
142
+ undefined)
138
143
  ).toBe(NOT_APPLICABLE);
139
144
  });
140
145
 
@@ -149,7 +154,8 @@ describe('Material slider tester', () => {
149
154
  minimum: 2
150
155
  }
151
156
  }
152
- })
157
+ },
158
+ undefined)
153
159
  ).toBe(NOT_APPLICABLE);
154
160
  });
155
161
 
@@ -165,7 +171,8 @@ describe('Material slider tester', () => {
165
171
  default: 6
166
172
  }
167
173
  }
168
- })
174
+ },
175
+ undefined)
169
176
  ).toBe(4);
170
177
  });
171
178
 
@@ -181,7 +188,8 @@ describe('Material slider tester', () => {
181
188
  default: 6
182
189
  }
183
190
  }
184
- })
191
+ },
192
+ undefined)
185
193
  ).toBe(4);
186
194
  });
187
195
  });