@jsonforms/material-renderers 2.5.2 → 3.0.0-alpha.3

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 (357) 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 +1040 -328
  7. package/docs/index.html +84 -51
  8. package/docs/interfaces/ajvprops.html +1 -4
  9. package/docs/interfaces/arraylayouttoolbarprops.html +5 -8
  10. package/docs/interfaces/categorizationstate.html +1 -4
  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 +39 -49
  18. package/docs/interfaces/materialcategorizationlayoutrendererprops.html +11 -14
  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 +2 -5
  33. package/docs/interfaces/withdeletedialogsupport.html +0 -3
  34. package/docs/interfaces/withinput.html +1 -4
  35. package/docs/interfaces/withoptionlabel.html +7 -7
  36. package/example/index.ts +5 -20
  37. package/lib/additional/ListWithDetailMasterItem.d.ts +1 -1
  38. package/lib/additional/ListWithDetailMasterItem.js +8 -8
  39. package/lib/additional/ListWithDetailMasterItem.js.map +1 -1
  40. package/lib/additional/MaterialLabelRenderer.d.ts +1 -1
  41. package/lib/additional/MaterialLabelRenderer.js +6 -4
  42. package/lib/additional/MaterialLabelRenderer.js.map +1 -1
  43. package/lib/additional/MaterialListWithDetailRenderer.d.ts +1 -1
  44. package/lib/additional/MaterialListWithDetailRenderer.js +10 -8
  45. package/lib/additional/MaterialListWithDetailRenderer.js.map +1 -1
  46. package/lib/additional/index.js +3 -2
  47. package/lib/additional/index.js.map +1 -1
  48. package/lib/cells/CustomizableCells.d.ts +1 -0
  49. package/lib/cells/CustomizableCells.js +11 -8
  50. package/lib/cells/CustomizableCells.js.map +1 -1
  51. package/lib/cells/MaterialBooleanCell.d.ts +1 -1
  52. package/lib/cells/MaterialBooleanCell.js +3 -1
  53. package/lib/cells/MaterialBooleanCell.js.map +1 -1
  54. package/lib/cells/MaterialBooleanToggleCell.d.ts +1 -1
  55. package/lib/cells/MaterialBooleanToggleCell.js +3 -1
  56. package/lib/cells/MaterialBooleanToggleCell.js.map +1 -1
  57. package/lib/cells/MaterialDateCell.d.ts +1 -1
  58. package/lib/cells/MaterialDateCell.js +4 -2
  59. package/lib/cells/MaterialDateCell.js.map +1 -1
  60. package/lib/cells/MaterialEnumCell.d.ts +1 -1
  61. package/lib/cells/MaterialEnumCell.js +3 -1
  62. package/lib/cells/MaterialEnumCell.js.map +1 -1
  63. package/lib/cells/MaterialIntegerCell.d.ts +1 -1
  64. package/lib/cells/MaterialIntegerCell.js +3 -1
  65. package/lib/cells/MaterialIntegerCell.js.map +1 -1
  66. package/lib/cells/MaterialNumberCell.d.ts +1 -1
  67. package/lib/cells/MaterialNumberCell.js +3 -1
  68. package/lib/cells/MaterialNumberCell.js.map +1 -1
  69. package/lib/cells/MaterialNumberFormatCell.d.ts +1 -1
  70. package/lib/cells/MaterialNumberFormatCell.js +3 -1
  71. package/lib/cells/MaterialNumberFormatCell.js.map +1 -1
  72. package/lib/cells/MaterialOneOfEnumCell.d.ts +10 -0
  73. package/lib/cells/MaterialOneOfEnumCell.js +41 -0
  74. package/lib/cells/MaterialOneOfEnumCell.js.map +1 -0
  75. package/lib/cells/MaterialTextCell.d.ts +1 -1
  76. package/lib/cells/MaterialTextCell.js +3 -1
  77. package/lib/cells/MaterialTextCell.js.map +1 -1
  78. package/lib/cells/MaterialTimeCell.d.ts +1 -1
  79. package/lib/cells/MaterialTimeCell.js +3 -1
  80. package/lib/cells/MaterialTimeCell.js.map +1 -1
  81. package/lib/cells/index.d.ts +2 -1
  82. package/lib/cells/index.js +13 -9
  83. package/lib/cells/index.js.map +1 -1
  84. package/lib/complex/CombinatorProperties.js +4 -2
  85. package/lib/complex/CombinatorProperties.js.map +1 -1
  86. package/lib/complex/DeleteDialog.js +9 -9
  87. package/lib/complex/DeleteDialog.js.map +1 -1
  88. package/lib/complex/MaterialAllOfRenderer.d.ts +3 -2
  89. package/lib/complex/MaterialAllOfRenderer.js +12 -10
  90. package/lib/complex/MaterialAllOfRenderer.js.map +1 -1
  91. package/lib/complex/MaterialAnyOfRenderer.d.ts +3 -2
  92. package/lib/complex/MaterialAnyOfRenderer.js +7 -5
  93. package/lib/complex/MaterialAnyOfRenderer.js.map +1 -1
  94. package/lib/complex/MaterialArrayControlRenderer.d.ts +1 -1
  95. package/lib/complex/MaterialArrayControlRenderer.js +5 -3
  96. package/lib/complex/MaterialArrayControlRenderer.js.map +1 -1
  97. package/lib/complex/MaterialEnumArrayRenderer.d.ts +2 -2
  98. package/lib/complex/MaterialEnumArrayRenderer.js +12 -9
  99. package/lib/complex/MaterialEnumArrayRenderer.js.map +1 -1
  100. package/lib/complex/MaterialObjectRenderer.d.ts +3 -2
  101. package/lib/complex/MaterialObjectRenderer.js +7 -5
  102. package/lib/complex/MaterialObjectRenderer.js.map +1 -1
  103. package/lib/complex/MaterialOneOfRenderer.d.ts +2 -1
  104. package/lib/complex/MaterialOneOfRenderer.js +16 -15
  105. package/lib/complex/MaterialOneOfRenderer.js.map +1 -1
  106. package/lib/complex/MaterialTableControl.d.ts +16 -1
  107. package/lib/complex/MaterialTableControl.js +42 -35
  108. package/lib/complex/MaterialTableControl.js.map +1 -1
  109. package/lib/complex/NoBorderTableCell.d.ts +2 -2
  110. package/lib/complex/NoBorderTableCell.js +8 -10
  111. package/lib/complex/NoBorderTableCell.js.map +1 -1
  112. package/lib/complex/TableToolbar.d.ts +2 -2
  113. package/lib/complex/TableToolbar.js +12 -14
  114. package/lib/complex/TableToolbar.js.map +1 -1
  115. package/lib/complex/ValidationIcon.d.ts +2 -6
  116. package/lib/complex/ValidationIcon.js +9 -13
  117. package/lib/complex/ValidationIcon.js.map +1 -1
  118. package/lib/complex/index.js +6 -5
  119. package/lib/complex/index.js.map +1 -1
  120. package/lib/controls/MaterialAnyOfStringOrEnumControl.d.ts +1 -1
  121. package/lib/controls/MaterialAnyOfStringOrEnumControl.js +18 -13
  122. package/lib/controls/MaterialAnyOfStringOrEnumControl.js.map +1 -1
  123. package/lib/controls/MaterialBooleanControl.d.ts +1 -1
  124. package/lib/controls/MaterialBooleanControl.js +6 -4
  125. package/lib/controls/MaterialBooleanControl.js.map +1 -1
  126. package/lib/controls/MaterialBooleanToggleControl.d.ts +1 -1
  127. package/lib/controls/MaterialBooleanToggleControl.js +6 -4
  128. package/lib/controls/MaterialBooleanToggleControl.js.map +1 -1
  129. package/lib/controls/MaterialDateControl.d.ts +3 -15
  130. package/lib/controls/MaterialDateControl.js +29 -50
  131. package/lib/controls/MaterialDateControl.js.map +1 -1
  132. package/lib/controls/MaterialDateTimeControl.d.ts +3 -6
  133. package/lib/controls/MaterialDateTimeControl.js +29 -31
  134. package/lib/controls/MaterialDateTimeControl.js.map +1 -1
  135. package/lib/controls/MaterialEnumControl.d.ts +1 -1
  136. package/lib/controls/MaterialEnumControl.js +3 -1
  137. package/lib/controls/MaterialEnumControl.js.map +1 -1
  138. package/lib/controls/MaterialInputControl.d.ts +2 -5
  139. package/lib/controls/MaterialInputControl.js +25 -30
  140. package/lib/controls/MaterialInputControl.js.map +1 -1
  141. package/lib/controls/MaterialIntegerControl.d.ts +1 -1
  142. package/lib/controls/MaterialIntegerControl.js +3 -1
  143. package/lib/controls/MaterialIntegerControl.js.map +1 -1
  144. package/lib/controls/MaterialNativeControl.d.ts +3 -6
  145. package/lib/controls/MaterialNativeControl.js +16 -20
  146. package/lib/controls/MaterialNativeControl.js.map +1 -1
  147. package/lib/controls/MaterialNumberControl.d.ts +1 -1
  148. package/lib/controls/MaterialNumberControl.js +3 -1
  149. package/lib/controls/MaterialNumberControl.js.map +1 -1
  150. package/lib/controls/MaterialOneOfEnumControl.d.ts +1 -1
  151. package/lib/controls/MaterialOneOfEnumControl.js +3 -1
  152. package/lib/controls/MaterialOneOfEnumControl.js.map +1 -1
  153. package/lib/controls/MaterialOneOfRadioGroupControl.d.ts +1 -1
  154. package/lib/controls/MaterialOneOfRadioGroupControl.js +3 -1
  155. package/lib/controls/MaterialOneOfRadioGroupControl.js.map +1 -1
  156. package/lib/controls/MaterialRadioGroup.d.ts +2 -5
  157. package/lib/controls/MaterialRadioGroup.js +16 -23
  158. package/lib/controls/MaterialRadioGroup.js.map +1 -1
  159. package/lib/controls/MaterialRadioGroupControl.d.ts +1 -1
  160. package/lib/controls/MaterialRadioGroupControl.js +3 -1
  161. package/lib/controls/MaterialRadioGroupControl.js.map +1 -1
  162. package/lib/controls/MaterialSliderControl.d.ts +3 -6
  163. package/lib/controls/MaterialSliderControl.js +36 -40
  164. package/lib/controls/MaterialSliderControl.js.map +1 -1
  165. package/lib/controls/MaterialTextControl.d.ts +1 -1
  166. package/lib/controls/MaterialTextControl.js +3 -1
  167. package/lib/controls/MaterialTextControl.js.map +1 -1
  168. package/lib/controls/MaterialTimeControl.d.ts +6 -0
  169. package/lib/controls/MaterialTimeControl.js +62 -0
  170. package/lib/controls/MaterialTimeControl.js.map +1 -0
  171. package/lib/controls/index.d.ts +11 -9
  172. package/lib/controls/index.js +19 -14
  173. package/lib/controls/index.js.map +1 -1
  174. package/lib/extended/MaterialAutocompleteEnumControl.d.ts +1 -1
  175. package/lib/extended/MaterialAutocompleteEnumControl.js +3 -1
  176. package/lib/extended/MaterialAutocompleteEnumControl.js.map +1 -1
  177. package/lib/extended/MaterialAutocompleteOneOfEnumControl.d.ts +1 -1
  178. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js +3 -1
  179. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js.map +1 -1
  180. package/lib/extended/MuiAutocomplete.d.ts +3 -4
  181. package/lib/extended/MuiAutocomplete.js +7 -7
  182. package/lib/extended/MuiAutocomplete.js.map +1 -1
  183. package/lib/extended/index.d.ts +3 -3
  184. package/lib/extended/index.js +3 -2
  185. package/lib/extended/index.js.map +1 -1
  186. package/lib/index.js +3 -0
  187. package/lib/index.js.map +1 -1
  188. package/lib/jsonforms-material.js +248 -315
  189. package/lib/jsonforms-material.js.map +1 -1
  190. package/lib/layouts/ArrayToolbar.js +14 -16
  191. package/lib/layouts/ArrayToolbar.js.map +1 -1
  192. package/lib/layouts/ExpandPanelRenderer.d.ts +2 -3
  193. package/lib/layouts/ExpandPanelRenderer.js +47 -45
  194. package/lib/layouts/ExpandPanelRenderer.js.map +1 -1
  195. package/lib/layouts/MaterialArrayLayout.d.ts +1 -11
  196. package/lib/layouts/MaterialArrayLayout.js +19 -31
  197. package/lib/layouts/MaterialArrayLayout.js.map +1 -1
  198. package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +1 -1
  199. package/lib/layouts/MaterialArrayLayoutRenderer.js +5 -3
  200. package/lib/layouts/MaterialArrayLayoutRenderer.js.map +1 -1
  201. package/lib/layouts/MaterialCategorizationLayout.d.ts +2 -10
  202. package/lib/layouts/MaterialCategorizationLayout.js +35 -52
  203. package/lib/layouts/MaterialCategorizationLayout.js.map +1 -1
  204. package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +2 -9
  205. package/lib/layouts/MaterialCategorizationStepperLayout.js +45 -56
  206. package/lib/layouts/MaterialCategorizationStepperLayout.js.map +1 -1
  207. package/lib/layouts/MaterialGroupLayout.d.ts +1 -1
  208. package/lib/layouts/MaterialGroupLayout.js +11 -9
  209. package/lib/layouts/MaterialGroupLayout.js.map +1 -1
  210. package/lib/layouts/MaterialHorizontalLayout.d.ts +1 -1
  211. package/lib/layouts/MaterialHorizontalLayout.js +3 -1
  212. package/lib/layouts/MaterialHorizontalLayout.js.map +1 -1
  213. package/lib/layouts/MaterialVerticalLayout.d.ts +1 -1
  214. package/lib/layouts/MaterialVerticalLayout.js +3 -1
  215. package/lib/layouts/MaterialVerticalLayout.js.map +1 -1
  216. package/lib/layouts/index.js +6 -5
  217. package/lib/layouts/index.js.map +1 -1
  218. package/lib/mui-controls/MuiCheckbox.js +4 -4
  219. package/lib/mui-controls/MuiCheckbox.js.map +1 -1
  220. package/lib/mui-controls/MuiInputInteger.js +10 -7
  221. package/lib/mui-controls/MuiInputInteger.js.map +1 -1
  222. package/lib/mui-controls/MuiInputNumber.js +10 -7
  223. package/lib/mui-controls/MuiInputNumber.js.map +1 -1
  224. package/lib/mui-controls/MuiInputNumberFormat.js +8 -9
  225. package/lib/mui-controls/MuiInputNumberFormat.js.map +1 -1
  226. package/lib/mui-controls/MuiInputText.d.ts +1 -1
  227. package/lib/mui-controls/MuiInputText.js +17 -13
  228. package/lib/mui-controls/MuiInputText.js.map +1 -1
  229. package/lib/mui-controls/MuiInputTime.js +6 -4
  230. package/lib/mui-controls/MuiInputTime.js.map +1 -1
  231. package/lib/mui-controls/MuiSelect.js +4 -5
  232. package/lib/mui-controls/MuiSelect.js.map +1 -1
  233. package/lib/mui-controls/MuiToggle.js +4 -4
  234. package/lib/mui-controls/MuiToggle.js.map +1 -1
  235. package/lib/util/datejs.d.ts +3 -0
  236. package/lib/util/datejs.js +29 -0
  237. package/lib/util/datejs.js.map +1 -0
  238. package/lib/util/debounce.d.ts +1 -0
  239. package/lib/util/debounce.js +48 -0
  240. package/lib/util/debounce.js.map +1 -0
  241. package/lib/util/focus.d.ts +1 -0
  242. package/lib/util/focus.js +36 -0
  243. package/lib/util/focus.js.map +1 -0
  244. package/lib/util/index.d.ts +3 -0
  245. package/lib/util/index.js +4 -0
  246. package/lib/util/index.js.map +1 -1
  247. package/lib/util/layout.d.ts +2 -1
  248. package/lib/util/layout.js +13 -9
  249. package/lib/util/layout.js.map +1 -1
  250. package/lib/util/theme.d.ts +1 -1
  251. package/package.json +22 -26
  252. package/src/additional/ListWithDetailMasterItem.tsx +3 -6
  253. package/src/additional/MaterialLabelRenderer.tsx +1 -1
  254. package/src/additional/MaterialListWithDetailRenderer.tsx +4 -5
  255. package/src/cells/CustomizableCells.ts +1 -0
  256. package/src/cells/MaterialDateCell.tsx +1 -1
  257. package/src/cells/MaterialOneOfEnumCell.tsx +46 -0
  258. package/src/cells/MaterialTimeCell.tsx +1 -0
  259. package/src/cells/index.ts +5 -0
  260. package/src/complex/CombinatorProperties.tsx +2 -2
  261. package/src/complex/DeleteDialog.tsx +2 -2
  262. package/src/complex/MaterialAllOfRenderer.tsx +6 -5
  263. package/src/complex/MaterialAnyOfRenderer.tsx +5 -4
  264. package/src/complex/MaterialArrayControlRenderer.tsx +1 -1
  265. package/src/complex/MaterialEnumArrayRenderer.tsx +2 -1
  266. package/src/complex/MaterialObjectRenderer.tsx +6 -6
  267. package/src/complex/MaterialOneOfRenderer.tsx +9 -9
  268. package/src/complex/MaterialTableControl.tsx +45 -37
  269. package/src/complex/NoBorderTableCell.tsx +10 -12
  270. package/src/complex/TableToolbar.tsx +10 -9
  271. package/src/complex/ValidationIcon.tsx +12 -19
  272. package/src/controls/MaterialAnyOfStringOrEnumControl.tsx +17 -14
  273. package/src/controls/MaterialBooleanControl.tsx +1 -1
  274. package/src/controls/MaterialBooleanToggleControl.tsx +1 -1
  275. package/src/controls/MaterialDateControl.tsx +87 -119
  276. package/src/controls/MaterialDateTimeControl.tsx +91 -78
  277. package/src/controls/MaterialEnumControl.tsx +1 -1
  278. package/src/controls/MaterialInputControl.tsx +65 -72
  279. package/src/controls/MaterialNativeControl.tsx +55 -60
  280. package/src/controls/MaterialOneOfEnumControl.tsx +1 -1
  281. package/src/controls/MaterialOneOfRadioGroupControl.tsx +4 -4
  282. package/src/controls/MaterialRadioGroup.tsx +73 -74
  283. package/src/controls/MaterialRadioGroupControl.tsx +1 -1
  284. package/src/controls/MaterialSliderControl.tsx +93 -89
  285. package/src/controls/MaterialTimeControl.tsx +133 -0
  286. package/src/controls/index.ts +7 -0
  287. package/src/extended/MuiAutocomplete.tsx +11 -9
  288. package/src/extended/index.ts +1 -1
  289. package/src/index.ts +6 -0
  290. package/src/layouts/ArrayToolbar.tsx +11 -7
  291. package/src/layouts/ExpandPanelRenderer.tsx +46 -44
  292. package/src/layouts/MaterialArrayLayout.tsx +73 -83
  293. package/src/layouts/MaterialArrayLayoutRenderer.tsx +1 -1
  294. package/src/layouts/MaterialCategorizationLayout.tsx +50 -67
  295. package/src/layouts/MaterialCategorizationStepperLayout.tsx +80 -88
  296. package/src/layouts/MaterialGroupLayout.tsx +1 -1
  297. package/src/mui-controls/MuiCheckbox.tsx +2 -3
  298. package/src/mui-controls/MuiInputInteger.tsx +13 -10
  299. package/src/mui-controls/MuiInputNumber.tsx +10 -7
  300. package/src/mui-controls/MuiInputNumberFormat.tsx +9 -12
  301. package/src/mui-controls/MuiInputText.tsx +30 -21
  302. package/src/mui-controls/MuiInputTime.tsx +7 -5
  303. package/src/mui-controls/MuiSelect.tsx +4 -5
  304. package/src/mui-controls/MuiToggle.tsx +2 -3
  305. package/src/util/datejs.ts +32 -0
  306. package/src/util/debounce.ts +43 -0
  307. package/src/util/focus.ts +32 -0
  308. package/src/util/index.ts +3 -0
  309. package/src/util/layout.tsx +7 -8
  310. package/src/util/theme.ts +1 -1
  311. package/test/renderers/MaterialAllOfRenderer.test.tsx +1 -1
  312. package/test/renderers/MaterialAnyOfRenderer.test.tsx +15 -9
  313. package/test/renderers/MaterialAnyOfStringOrEnumControl.test.tsx +1 -1
  314. package/test/renderers/MaterialArrayControl.test.tsx +1 -1
  315. package/test/renderers/MaterialArrayLayout.test.tsx +9 -9
  316. package/test/renderers/MaterialBooleanCell.test.tsx +1 -1
  317. package/test/renderers/MaterialBooleanToggleCell.test.tsx +3 -2
  318. package/test/renderers/MaterialBooleanToggleControl.test.tsx +3 -3
  319. package/test/renderers/MaterialCategorizationLayout.test.tsx +75 -2
  320. package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +75 -2
  321. package/test/renderers/MaterialDateCell.test.tsx +1 -1
  322. package/test/renderers/MaterialDateControl.test.tsx +46 -2
  323. package/test/renderers/MaterialDateTimeControl.test.tsx +57 -12
  324. package/test/renderers/MaterialEnumArrayRenderer.test.tsx +1 -1
  325. package/test/renderers/MaterialEnumCell.test.tsx +1 -1
  326. package/test/renderers/MaterialGroupLayout.test.tsx +1 -1
  327. package/test/renderers/MaterialInputControl.test.tsx +4 -4
  328. package/test/renderers/MaterialIntegerCell.test.tsx +42 -21
  329. package/test/renderers/MaterialLabelRenderer.test.tsx +1 -1
  330. package/test/renderers/MaterialLayouts.test.tsx +1 -1
  331. package/test/renderers/MaterialListWithDetailRenderer.test.tsx +2 -2
  332. package/test/renderers/MaterialNativeControl.test.tsx +2 -2
  333. package/test/renderers/MaterialNumberCell.test.tsx +46 -25
  334. package/test/renderers/MaterialObjectControl.test.tsx +1 -1
  335. package/test/renderers/MaterialOneOfEnumCell.test.tsx +93 -0
  336. package/test/renderers/MaterialOneOfRadioGroupControl.test.tsx +1 -1
  337. package/test/renderers/MaterialOneOfRenderer.test.tsx +20 -14
  338. package/test/renderers/MaterialRadioGroupControl.test.tsx +1 -1
  339. package/test/renderers/MaterialSliderControl.test.tsx +2 -2
  340. package/test/renderers/MaterialTextCell.test.tsx +47 -33
  341. package/test/renderers/MaterialTextControl.test.tsx +8 -4
  342. package/test/renderers/MaterialTimeCell.test.tsx +42 -21
  343. package/test/renderers/MaterialTimeControl.test.tsx +380 -0
  344. package/webpack/webpack.build.js +3 -3
  345. package/docs/classes/materialarraylayout.html +0 -777
  346. package/docs/classes/materialcategorizationlayoutrenderer.html +0 -786
  347. package/docs/classes/materialcategorizationstepperlayoutrenderer.html +0 -762
  348. package/docs/classes/materialdatecontrol.html +0 -825
  349. package/docs/classes/materialdatetimecontrol.html +0 -825
  350. package/docs/classes/materialinputcontrol.html +0 -825
  351. package/docs/classes/materialnativecontrol.html +0 -825
  352. package/docs/classes/materialradiogroup.html +0 -825
  353. package/docs/classes/materialslidercontrol.html +0 -825
  354. package/docs/interfaces/datecontrol.html +0 -157
  355. package/docs/interfaces/materialarraylayoutstate.html +0 -157
  356. package/docs/interfaces/statepropsofdatecontrol.html +0 -468
  357. package/example/CustomAutocomplete.tsx +0 -54
@@ -31,17 +31,17 @@ import {
31
31
  import MaterialDateTimeControl, {
32
32
  materialDateTimeControlTester
33
33
  } from '../../src/controls/MaterialDateTimeControl';
34
- import moment from 'moment';
34
+ import dayjs from 'dayjs';
35
35
  import { materialRenderers } from '../../src';
36
36
 
37
37
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
38
- import Adapter from 'enzyme-adapter-react-16';
38
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
39
39
  import { JsonFormsStateProvider } from '@jsonforms/react';
40
40
  import { initCore, TestEmitter } from './util';
41
41
 
42
42
  Enzyme.configure({ adapter: new Adapter() });
43
43
 
44
- const data = { foo: moment('1980-04-04 13:37').format() };
44
+ const data = { foo: dayjs('1980-04-04 13:37').format() };
45
45
  const schema = {
46
46
  type: 'object',
47
47
  properties: {
@@ -102,6 +102,19 @@ describe('Material date time control tester', () => {
102
102
  }
103
103
  })
104
104
  ).toBe(2);
105
+ expect(
106
+ materialDateTimeControlTester(
107
+ { ...uischema, options: { format: 'date-time' } },
108
+ {
109
+ type: 'object',
110
+ properties: {
111
+ foo: {
112
+ type: 'string'
113
+ }
114
+ }
115
+ }
116
+ )
117
+ ).toBe(2);
105
118
  });
106
119
  });
107
120
 
@@ -173,7 +186,7 @@ describe('Material date time control', () => {
173
186
 
174
187
  const input = wrapper.find('input').first();
175
188
  expect(input.props().type).toBe('text');
176
- expect(input.props().value).toBe('04/04/1980 1:37 pm');
189
+ expect(input.props().value).toBe('1980-04-04 13:37');
177
190
  });
178
191
 
179
192
  it('should update via event', () => {
@@ -192,9 +205,10 @@ describe('Material date time control', () => {
192
205
  </JsonFormsStateProvider>
193
206
  );
194
207
  const input = wrapper.find('input').first();
195
- input.simulate('change', { target: { value: '04/12/1961 8:15 pm' } });
208
+ (input.getDOMNode() as HTMLInputElement).value ='1961-12-94 20:15';
209
+ input.simulate('change', input);
196
210
  expect(onChangeData.data.foo).toBe(
197
- moment('1961-04-12 20:15').format()
211
+ dayjs('1961-12-94 20:15').format()
198
212
  );
199
213
  });
200
214
 
@@ -205,11 +219,11 @@ describe('Material date time control', () => {
205
219
  <MaterialDateTimeControl schema={schema} uischema={uischema} />
206
220
  </JsonFormsStateProvider>
207
221
  );
208
- core.data = { ...core.data, foo: moment('1961-04-12 20:15').format() };
222
+ core.data = { ...core.data, foo: dayjs('1961-12-04 20:15').format() };
209
223
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
210
224
  wrapper.update();
211
225
  const input = wrapper.find('input').first();
212
- expect(input.props().value).toBe('04/12/1961 8:15 pm');
226
+ expect(input.props().value).toBe('1961-12-04 20:15');
213
227
  });
214
228
 
215
229
  it('should update with null value', () => {
@@ -251,7 +265,7 @@ describe('Material date time control', () => {
251
265
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
252
266
  wrapper.update();
253
267
  const input = wrapper.find('input').first();
254
- expect(input.props().value).toBe('04/04/1980 1:37 pm');
268
+ expect(input.props().value).toBe('1980-04-04 13:37');
255
269
  });
256
270
 
257
271
  it('should not update with null ref', () => {
@@ -265,7 +279,7 @@ describe('Material date time control', () => {
265
279
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
266
280
  wrapper.update();
267
281
  const input = wrapper.find('input').first();
268
- expect(input.props().value).toBe('04/04/1980 1:37 pm');
282
+ expect(input.props().value).toBe('1980-04-04 13:37');
269
283
  });
270
284
 
271
285
  it('should not update with undefined ref', () => {
@@ -279,7 +293,7 @@ describe('Material date time control', () => {
279
293
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
280
294
  wrapper.update();
281
295
  const input = wrapper.find('input').first();
282
- expect(input.props().value).toBe('04/04/1980 1:37 pm');
296
+ expect(input.props().value).toBe('1980-04-04 13:37');
283
297
  });
284
298
 
285
299
  it('can be disabled', () => {
@@ -320,7 +334,7 @@ describe('Material date time control', () => {
320
334
  </JsonFormsStateProvider>
321
335
  );
322
336
  const input = wrapper.find('input').first();
323
- // there is only input id at the moment
337
+ // there is only input id at the dayjs
324
338
  expect(input.props().id).toBe('#/properties/foo-input');
325
339
  });
326
340
 
@@ -338,4 +352,35 @@ describe('Material date time control', () => {
338
352
  const inputs = wrapper.find('input');
339
353
  expect(inputs.length).toBe(0);
340
354
  });
355
+
356
+ it('should support format customizations', () => {
357
+ const core = initCore(schema, uischema, {foo: dayjs('1980-04-23 13:37').format('YYYY/MM/DD h:mm a')});
358
+ const onChangeData: any = {
359
+ data: undefined
360
+ };
361
+ wrapper = mount(
362
+ <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
363
+ <TestEmitter
364
+ onChange={({ data }) => {
365
+ onChangeData.data = data;
366
+ }}
367
+ />
368
+ <MaterialDateTimeControl
369
+ schema={schema}
370
+ uischema={{...uischema, options: {
371
+ dateTimeFormat: 'DD-MM-YY hh:mm:a',
372
+ dateTimeSaveFormat: 'YYYY/MM/DD h:mm a',
373
+ ampm: true
374
+ }}}
375
+ />
376
+ </JsonFormsStateProvider>
377
+ );
378
+
379
+ const input = wrapper.find('input').first();
380
+ expect(input.props().value).toBe('23-04-80 01:37:pm');
381
+
382
+ (input.getDOMNode() as HTMLInputElement).value = '10-12-05 11:22:am';
383
+ input.simulate('change', input);
384
+ expect(onChangeData.data.foo).toBe('2005/12/10 11:22 am');
385
+ });
341
386
  });
@@ -2,7 +2,7 @@ import './MatchMediaMock';
2
2
  import { ControlElement, NOT_APPLICABLE } from '@jsonforms/core';
3
3
  import { JsonForms } from '@jsonforms/react';
4
4
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
5
- import Adapter from 'enzyme-adapter-react-16';
5
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
6
6
  import React from 'react';
7
7
  import {
8
8
  materialEnumArrayRendererTester,
@@ -33,7 +33,7 @@ import MaterialEnumCell, {
33
33
  import { materialRenderers } from '../../src';
34
34
 
35
35
  import Enzyme, { mount } from 'enzyme';
36
- import Adapter from 'enzyme-adapter-react-16';
36
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
37
37
  import { JsonFormsStateProvider } from '@jsonforms/react';
38
38
  import { initCore } from './util';
39
39
 
@@ -25,7 +25,7 @@
25
25
  import './MatchMediaMock';
26
26
  import * as React from 'react';
27
27
  import Enzyme, { mount } from 'enzyme';
28
- import Adapter from 'enzyme-adapter-react-16';
28
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
29
29
  import MaterialGroupLayout from '../../src/layouts/MaterialGroupLayout';
30
30
  import { MaterialLayoutRenderer } from '../../src/util/layout';
31
31
 
@@ -25,7 +25,7 @@
25
25
  import './MatchMediaMock';
26
26
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
27
27
  import { materialRenderers } from '../../src';
28
- import Adapter from 'enzyme-adapter-react-16';
28
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
29
29
  import * as React from 'react';
30
30
  import {
31
31
  ControlElement,
@@ -159,7 +159,7 @@ describe('Material input control', () => {
159
159
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
160
160
  wrapper.update();
161
161
  const validation = wrapper.find('p').first();
162
- expect(validation.text()).toBe('should be string');
162
+ expect(validation.text()).toBe('must be string');
163
163
  });
164
164
 
165
165
  it('should display multiple errors', () => {
@@ -173,7 +173,7 @@ describe('Material input control', () => {
173
173
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
174
174
  wrapper.update();
175
175
  const validation = wrapper.find('p').first();
176
- expect(validation.text()).toBe('should be string');
176
+ expect(validation.text()).toBe('must be string');
177
177
  });
178
178
 
179
179
  it('should not show any errors', () => {
@@ -283,7 +283,7 @@ describe('Material input control', () => {
283
283
  </JsonFormsStateProvider>
284
284
  );
285
285
  const label = wrapper.find('label').first();
286
- expect(label.text()).toBe('Date Cell*');
286
+ expect(label.text()).toBe('Date Cell*');
287
287
  });
288
288
 
289
289
  it('should not display a marker for a non-required prop', () => {
@@ -34,7 +34,7 @@ import IntegerCell, {
34
34
  import { materialRenderers } from '../../src';
35
35
 
36
36
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
37
- import Adapter from 'enzyme-adapter-react-16';
37
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
38
38
  import { JsonFormsStateProvider } from '@jsonforms/react';
39
39
  import { initCore, TestEmitter } from './util';
40
40
 
@@ -175,7 +175,7 @@ describe('Material integer cells', () => {
175
175
  expect(input.props().value).toBe(0);
176
176
  });
177
177
 
178
- it('should update via input event', () => {
178
+ it('should update via input event', (done) => {
179
179
  const core = initCore(schema, uischema, data);
180
180
  const onChangeData: any = {
181
181
  data: undefined
@@ -193,10 +193,13 @@ describe('Material integer cells', () => {
193
193
 
194
194
  const input = wrapper.find('input');
195
195
  input.simulate('change', { target: { value: 13 } });
196
- expect(onChangeData.data.foo).toBe(13);
196
+ setTimeout(() => {
197
+ expect(onChangeData.data.foo).toBe(13);
198
+ done();
199
+ }, 1000)
197
200
  });
198
201
 
199
- it('should update via action', () => {
202
+ it('should update via action', (done) => {
200
203
  const core = initCore(schema, uischema, { foo: 13 });
201
204
  wrapper = mount(
202
205
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -206,11 +209,14 @@ describe('Material integer cells', () => {
206
209
  core.data = { ...core.data, foo: 42 };
207
210
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
208
211
  wrapper.update();
209
- const input = wrapper.find('input').first();
210
- expect(input.props().value).toBe(42);
212
+ setTimeout(() => {
213
+ const input = wrapper.find('input').first();
214
+ expect(input.props().value).toBe(42);
215
+ done();
216
+ }, 1000);
211
217
  });
212
218
 
213
- it('should not update with undefined value', () => {
219
+ it('should not update with undefined value', (done) => {
214
220
  const core = initCore(schema, uischema, data);
215
221
  wrapper = mount(
216
222
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -220,11 +226,14 @@ describe('Material integer cells', () => {
220
226
  core.data = { ...core.data, foo: undefined };
221
227
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
222
228
  wrapper.update();
223
- const input = wrapper.find('input');
224
- expect(input.props().value).toBe('');
229
+ setTimeout(() => {
230
+ const input = wrapper.find('input');
231
+ expect(input.props().value).toBe('');
232
+ done();
233
+ }, 1000);
225
234
  });
226
235
 
227
- it('should not update with null value', () => {
236
+ it('should not update with null value', (done) => {
228
237
  const core = initCore(schema, uischema, data);
229
238
  wrapper = mount(
230
239
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -234,11 +243,14 @@ describe('Material integer cells', () => {
234
243
  core.data = { ...core.data, foo: null };
235
244
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
236
245
  wrapper.update();
237
- const input = wrapper.find('input').first();
238
- expect(input.props().value).toBe('');
246
+ setTimeout(() => {
247
+ const input = wrapper.find('input').first();
248
+ expect(input.props().value).toBe('');
249
+ done();
250
+ }, 1000);
239
251
  });
240
252
 
241
- it('should not update with wrong ref', () => {
253
+ it('should not update with wrong ref', (done) => {
242
254
  const core = initCore(schema, uischema, data);
243
255
  wrapper = mount(
244
256
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -248,11 +260,14 @@ describe('Material integer cells', () => {
248
260
  core.data = { ...core.data, bar: 11 };
249
261
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
250
262
  wrapper.update();
251
- const input = wrapper.find('input');
252
- expect(input.props().value).toBe(42);
263
+ setTimeout(() => {
264
+ const input = wrapper.find('input');
265
+ expect(input.props().value).toBe(42);
266
+ done();
267
+ }, 1000);
253
268
  });
254
269
 
255
- it('should not update with null ref', () => {
270
+ it('should not update with null ref', (done) => {
256
271
  const core = initCore(schema, uischema, data);
257
272
  wrapper = mount(
258
273
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -262,11 +277,14 @@ describe('Material integer cells', () => {
262
277
  core.data = { ...core.data, null: 13 };
263
278
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
264
279
  wrapper.update();
265
- const input = wrapper.find('input').first();
266
- expect(input.props().value).toBe(42);
280
+ setTimeout(() => {
281
+ const input = wrapper.find('input');
282
+ expect(input.props().value).toBe(42);
283
+ done();
284
+ }, 1000);
267
285
  });
268
286
 
269
- it('should not update with undefined ref', () => {
287
+ it('should not update with undefined ref', (done) => {
270
288
  const core = initCore(schema, uischema, data);
271
289
  wrapper = mount(
272
290
  <JsonFormsStateProvider initState={{ renderers: materialRenderers, core }}>
@@ -276,8 +294,11 @@ describe('Material integer cells', () => {
276
294
  core.data = { ...core.data, undefined: 13 };
277
295
  wrapper.setProps({ initState: { renderers: materialRenderers, core }} );
278
296
  wrapper.update();
279
- const input = wrapper.find('input').first();
280
- expect(input.props().value).toBe(42);
297
+ setTimeout(() => {
298
+ const input = wrapper.find('input');
299
+ expect(input.props().value).toBe(42);
300
+ done();
301
+ }, 1000);
281
302
  });
282
303
 
283
304
  it('can be disabled', () => {
@@ -33,7 +33,7 @@ import MaterialLabelRenderer, {
33
33
  } from '../../src/additional/MaterialLabelRenderer';
34
34
  import { materialRenderers } from '../../src';
35
35
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
36
- import Adapter from 'enzyme-adapter-react-16';
36
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
37
37
  import { JsonForms, JsonFormsStateProvider } from '@jsonforms/react';
38
38
  import { initCore } from './util';
39
39
 
@@ -32,7 +32,7 @@ import {
32
32
  RuleEffect,
33
33
  UISchemaElement
34
34
  } from '@jsonforms/core';
35
- import Adapter from 'enzyme-adapter-react-16';
35
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
36
36
  import { JsonForms } from '@jsonforms/react';
37
37
 
38
38
  Enzyme.configure({ adapter: new Adapter() });
@@ -33,9 +33,9 @@ import MaterialListWithDetailRenderer, {
33
33
  materialListWithDetailTester
34
34
  } from '../../src/additional/MaterialListWithDetailRenderer';
35
35
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
36
- import Adapter from 'enzyme-adapter-react-16';
36
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
37
37
  import { JsonFormsStateProvider } from '@jsonforms/react';
38
- import { ListItem } from '@material-ui/core'
38
+ import { ListItem } from '@mui/material'
39
39
  import { initCore } from './util';
40
40
 
41
41
  Enzyme.configure({ adapter: new Adapter() });
@@ -26,8 +26,8 @@ import './MatchMediaMock';
26
26
  import React from 'react';
27
27
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
28
28
  import { MaterialNativeControl } from '../../src/controls/MaterialNativeControl';
29
- import TextField from '@material-ui/core/TextField';
30
- import Adapter from 'enzyme-adapter-react-16';
29
+ import TextField from '@mui/material/TextField';
30
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
31
31
  import { ControlElement, ControlProps } from '@jsonforms/core';
32
32
 
33
33
  Enzyme.configure({ adapter: new Adapter() });
@@ -34,7 +34,7 @@ import NumberCell, {
34
34
  } from '../../src/cells/MaterialNumberCell';
35
35
  import { materialRenderers } from '../../src';
36
36
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
37
- import Adapter from 'enzyme-adapter-react-16';
37
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
38
38
  import { JsonFormsStateProvider } from '@jsonforms/react';
39
39
  import { initCore, TestEmitter } from './util';
40
40
 
@@ -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', () => {
@@ -33,7 +33,7 @@ import MaterialObjectRenderer, {
33
33
  materialObjectControlTester
34
34
  } from '../../src/complex/MaterialObjectRenderer';
35
35
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
36
- import Adapter from 'enzyme-adapter-react-16';
36
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
37
37
  import { JsonFormsStateProvider } from '@jsonforms/react';
38
38
  import { initCore } from './util';
39
39
 
@@ -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 '@wojtekmaj/enzyme-adapter-react-17';
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
+ });
@@ -33,7 +33,7 @@ import MaterialOneOfRadioGroupControl, {
33
33
  } from '../../src/controls/MaterialOneOfRadioGroupControl';
34
34
  import { materialRenderers } from '../../src';
35
35
  import Enzyme, { mount, ReactWrapper } from 'enzyme';
36
- import Adapter from 'enzyme-adapter-react-16';
36
+ import Adapter from '@wojtekmaj/enzyme-adapter-react-17';
37
37
  import {
38
38
  JsonFormsStateProvider
39
39
  } from '@jsonforms/react';