@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
@@ -22,137 +22,105 @@
22
22
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
23
  THE SOFTWARE.
24
24
  */
25
- import startsWith from 'lodash/startsWith';
26
25
  import merge from 'lodash/merge';
27
- import React from 'react';
26
+ import React, { useMemo } from 'react';
28
27
  import {
29
- computeLabel,
30
- ControlState,
31
- DispatchPropsOfControl,
28
+ ControlProps,
32
29
  isDateControl,
33
30
  isDescriptionHidden,
34
- isPlainLabel,
35
31
  RankedTester,
36
32
  rankWith,
37
- StatePropsOfControl
38
33
  } from '@jsonforms/core';
39
- import { Control, withJsonFormsControlProps } from '@jsonforms/react';
40
- import { Hidden } from '@material-ui/core';
41
- import KeyboardArrowLeftIcon from '@material-ui/icons/KeyboardArrowLeft';
42
- import KeyboardArrowRightIcon from '@material-ui/icons/KeyboardArrowRight';
43
- import EventIcon from '@material-ui/icons/Event';
44
- import moment from 'moment';
45
- import { Moment } from 'moment';
34
+ import { withJsonFormsControlProps } from '@jsonforms/react';
35
+ import { FormHelperText, Hidden, TextField } from '@mui/material';
46
36
  import {
47
- KeyboardDatePicker,
48
- MuiPickersUtilsProvider
49
- } from '@material-ui/pickers';
50
- import MomentUtils from '@date-io/moment';
37
+ DatePicker,
38
+ LocalizationProvider
39
+ } from '@mui/lab';
40
+ import AdapterDayjs from '@mui/lab/AdapterDayjs';
41
+ import { createOnChangeHandler, getData, useFocus } from '../util';
51
42
 
52
- export interface DateControl {
53
- momentLocale?: Moment;
54
- }
43
+ export const MaterialDateControl = (props: ControlProps)=> {
44
+ const [focused, onFocus, onBlur] = useFocus();
45
+ const {
46
+ description,
47
+ id,
48
+ errors,
49
+ label,
50
+ uischema,
51
+ visible,
52
+ enabled,
53
+ required,
54
+ path,
55
+ handleChange,
56
+ data,
57
+ config
58
+ } = props;
59
+ const isValid = errors.length === 0;
60
+ const appliedUiSchemaOptions = merge({}, config, uischema.options);
61
+ const showDescription = !isDescriptionHidden(
62
+ visible,
63
+ description,
64
+ focused,
65
+ appliedUiSchemaOptions.showUnfocusedDescription
66
+ );
55
67
 
56
- // Workaround typing problems in @material-ui/pickers@3.2.3
57
- const AnyPropsKeyboardDatePicker: React.FunctionComponent<
58
- any
59
- > = KeyboardDatePicker;
68
+ const format = appliedUiSchemaOptions.dateFormat ?? 'YYYY-MM-DD';
69
+ const saveFormat = appliedUiSchemaOptions.dateSaveFormat ?? 'YYYY-MM-DD';
60
70
 
61
- export class MaterialDateControl extends Control<
62
- StatePropsOfDateControl & DispatchPropsOfControl & DateControl,
63
- ControlState
64
- > {
65
- render() {
66
- const {
67
- description,
68
- id,
69
- errors,
70
- label,
71
- uischema,
72
- visible,
73
- enabled,
74
- required,
75
- path,
76
- handleChange,
77
- data,
78
- momentLocale,
79
- config
80
- } = this.props;
81
- const defaultLabel = label as string;
82
- const cancelLabel = '%cancel';
83
- const clearLabel = '%clear';
84
- const isValid = errors.length === 0;
85
- const appliedUiSchemaOptions = merge({}, config, uischema.options);
86
- const showDescription = !isDescriptionHidden(
87
- visible,
88
- description,
89
- this.state.isFocused,
90
- appliedUiSchemaOptions.showUnfocusedDescription
91
- );
92
- const inputProps = {};
93
- const localeDateTimeFormat = momentLocale
94
- ? `${momentLocale.localeData().longDateFormat('L')}`
95
- : 'YYYY-MM-DD';
71
+ const firstFormHelperText = showDescription
72
+ ? description
73
+ : !isValid
74
+ ? errors
75
+ : null;
76
+ const secondFormHelperText = showDescription && !isValid ? errors : null;
77
+ const onChange = useMemo(() => createOnChangeHandler(
78
+ path,
79
+ handleChange,
80
+ saveFormat
81
+ ),[path, handleChange, saveFormat]);
96
82
 
97
- let labelText;
98
- let labelCancel;
99
- let labelClear;
100
-
101
- if (isPlainLabel(label)) {
102
- labelText = label;
103
- labelCancel = 'Cancel';
104
- labelClear = 'Clear';
105
- } else {
106
- labelText = defaultLabel;
107
- labelCancel = startsWith(cancelLabel, '%') ? 'Cancel' : cancelLabel;
108
- labelClear = startsWith(clearLabel, '%') ? 'Clear' : clearLabel;
109
- }
110
-
111
- return (
112
- <Hidden xsUp={!visible}>
113
- <MuiPickersUtilsProvider utils={MomentUtils}>
114
- <AnyPropsKeyboardDatePicker
115
- id={id + '-input'}
116
- label={computeLabel(
117
- labelText,
118
- required,
119
- appliedUiSchemaOptions.hideRequiredAsterisk
120
- )}
121
- error={!isValid}
122
- fullWidth={!appliedUiSchemaOptions.trim}
123
- helperText={!isValid ? errors : showDescription ? description : ' '}
124
- InputLabelProps={{ shrink: true }}
125
- value={data || null}
126
- onChange={(datetime: any) =>
127
- handleChange(
128
- path,
129
- datetime ? moment(datetime).format('YYYY-MM-DD') : ''
130
- )
131
- }
132
- format={localeDateTimeFormat}
133
- clearable={true}
134
- disabled={!enabled}
135
- autoFocus={appliedUiSchemaOptions.focus}
136
- onFocus={this.onFocus}
137
- onBlur={this.onBlur}
138
- cancelLabel={labelCancel}
139
- clearLabel={labelClear}
140
- leftArrowIcon={<KeyboardArrowLeftIcon />}
141
- rightArrowIcon={<KeyboardArrowRightIcon />}
142
- keyboardIcon={<EventIcon />}
143
- InputProps={inputProps}
144
- />
145
- </MuiPickersUtilsProvider>
146
- </Hidden>
147
- );
148
- }
149
- }
150
-
151
- export interface StatePropsOfDateControl extends StatePropsOfControl {
152
- defaultLabel: string;
153
- cancelLabel: string;
154
- clearLabel: string;
155
- }
83
+ return (
84
+ <Hidden xsUp={!visible}>
85
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
86
+ <DatePicker
87
+ label={label}
88
+ value={getData(data, saveFormat)}
89
+ clearable
90
+ onChange={onChange}
91
+ inputFormat={format}
92
+ disableMaskedInput
93
+ views={appliedUiSchemaOptions.views}
94
+ disabled={!enabled}
95
+ cancelText={appliedUiSchemaOptions.cancelLabel}
96
+ clearText={appliedUiSchemaOptions.clearLabel}
97
+ okText={appliedUiSchemaOptions.okLabel}
98
+ renderInput={params => (
99
+ <TextField
100
+ {...params}
101
+ id={id + '-input'}
102
+ required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}
103
+ autoFocus={appliedUiSchemaOptions.focus}
104
+ error={!isValid}
105
+ fullWidth={!appliedUiSchemaOptions.trim}
106
+ inputProps={{ ...params.inputProps, type: 'text' }}
107
+ InputLabelProps={data ? { shrink: true } : undefined}
108
+ onFocus={onFocus}
109
+ onBlur={onBlur}
110
+ variant={'standard'}
111
+ />
112
+ )}
113
+ />
114
+ <FormHelperText error={!isValid && !showDescription}>
115
+ {firstFormHelperText}
116
+ </FormHelperText>
117
+ <FormHelperText error={!isValid}>
118
+ {secondFormHelperText}
119
+ </FormHelperText>
120
+ </LocalizationProvider>
121
+ </Hidden>
122
+ );
123
+ };
156
124
 
157
125
  export const materialDateControlTester: RankedTester = rankWith(
158
126
  4,
@@ -22,95 +22,108 @@
22
22
  OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
23
23
  THE SOFTWARE.
24
24
  */
25
- import React from 'react';
25
+ import React, { useMemo } from 'react';
26
26
  import merge from 'lodash/merge';
27
27
  import {
28
- computeLabel,
29
28
  ControlProps,
30
- ControlState,
31
29
  isDateTimeControl,
32
- isPlainLabel,
30
+ isDescriptionHidden,
33
31
  RankedTester,
34
32
  rankWith
35
33
  } from '@jsonforms/core';
36
- import { Control, withJsonFormsControlProps } from '@jsonforms/react';
37
- import moment from 'moment';
38
- import { Hidden } from '@material-ui/core';
39
- import KeyboardArrowLeftIcon from '@material-ui/icons/KeyboardArrowLeft';
40
- import KeyboardArrowRightIcon from '@material-ui/icons/KeyboardArrowRight';
41
- import DateRangeIcon from '@material-ui/icons/DateRange';
42
- import EventIcon from '@material-ui/icons/Event';
43
- import AccessTimeIcon from '@material-ui/icons/AccessTime';
34
+ import { withJsonFormsControlProps } from '@jsonforms/react';
35
+ import { FormHelperText, Hidden, TextField } from '@mui/material';
44
36
  import {
45
- KeyboardDateTimePicker,
46
- MuiPickersUtilsProvider
47
- } from '@material-ui/pickers';
48
- import MomentUtils from '@date-io/moment';
37
+ DateTimePicker,
38
+ LocalizationProvider
39
+ } from '@mui/lab';
40
+ import AdapterDayjs from '@mui/lab/AdapterDayjs';
41
+ import { createOnChangeHandler, getData, useFocus } from '../util';
49
42
 
50
- // Workaround typing problems in @material-ui/pickers@3.2.3
51
- const AnyPropsKeyboardDateTimepicker: React.FunctionComponent<
52
- any
53
- > = KeyboardDateTimePicker;
43
+ export const MaterialDateTimeControl = (props: ControlProps) => {
44
+ const [focused, onFocus, onBlur] = useFocus();
45
+ const {
46
+ id,
47
+ description,
48
+ errors,
49
+ label,
50
+ uischema,
51
+ visible,
52
+ enabled,
53
+ required,
54
+ path,
55
+ handleChange,
56
+ data,
57
+ config
58
+ } = props;
59
+ const appliedUiSchemaOptions = merge({}, config, uischema.options);
60
+ const isValid = errors.length === 0;
54
61
 
55
- export class MaterialDateTimeControl extends Control<
56
- ControlProps,
57
- ControlState
58
- > {
59
- render() {
60
- const {
61
- id,
62
- description,
63
- errors,
64
- label,
65
- uischema,
66
- visible,
67
- enabled,
68
- required,
69
- path,
70
- handleChange,
71
- data,
72
- config
73
- } = this.props;
74
- const appliedUiSchemaOptions = merge({}, config, uischema.options);
75
- const isValid = errors.length === 0;
76
- const inputProps = {};
62
+ const showDescription = !isDescriptionHidden(
63
+ visible,
64
+ description,
65
+ focused,
66
+ appliedUiSchemaOptions.showUnfocusedDescription
67
+ );
68
+
69
+ const format = appliedUiSchemaOptions.dateTimeFormat ?? 'YYYY-MM-DD HH:mm';
70
+ const saveFormat = appliedUiSchemaOptions.dateTimeSaveFormat ?? undefined;
71
+
72
+ const firstFormHelperText = showDescription
73
+ ? description
74
+ : !isValid
75
+ ? errors
76
+ : null;
77
+ const secondFormHelperText = showDescription && !isValid ? errors : null;
78
+
79
+ const onChange = useMemo(() => createOnChangeHandler(
80
+ path,
81
+ handleChange,
82
+ saveFormat
83
+ ),[path, handleChange, saveFormat]);
77
84
 
78
- return (
79
- <Hidden xsUp={!visible}>
80
- <MuiPickersUtilsProvider utils={MomentUtils}>
81
- <AnyPropsKeyboardDateTimepicker
82
- id={id + '-input'}
83
- label={computeLabel(
84
- isPlainLabel(label) ? label : label.default,
85
- required,
86
- appliedUiSchemaOptions.hideRequiredAsterisk
87
- )}
88
- error={!isValid}
89
- fullWidth={!appliedUiSchemaOptions.trim}
90
- onFocus={this.onFocus}
91
- onBlur={this.onBlur}
92
- helperText={!isValid ? errors : description}
93
- InputLabelProps={{ shrink: true }}
94
- value={data || null}
95
- onChange={(datetime: any) =>
96
- handleChange(path, datetime ? moment(datetime).format() : '')
97
- }
98
- format='MM/DD/YYYY h:mm a'
99
- clearable={true}
100
- disabled={!enabled}
101
- autoFocus={appliedUiSchemaOptions.focus}
102
- leftArrowIcon={<KeyboardArrowLeftIcon />}
103
- rightArrowIcon={<KeyboardArrowRightIcon />}
104
- dateRangeIcon={<DateRangeIcon />}
105
- keyboardIcon={<EventIcon />}
106
- timeIcon={<AccessTimeIcon />}
107
- InputProps={inputProps}
108
- />
109
- </MuiPickersUtilsProvider>
110
- </Hidden>
111
- );
112
- }
113
- }
85
+ return (
86
+ <Hidden xsUp={!visible}>
87
+ <LocalizationProvider dateAdapter={AdapterDayjs}>
88
+ <DateTimePicker
89
+ label={label}
90
+ value={getData(data, saveFormat)}
91
+ clearable
92
+ onChange={onChange}
93
+ inputFormat={format}
94
+ disableMaskedInput
95
+ ampm={!!appliedUiSchemaOptions.ampm}
96
+ views={appliedUiSchemaOptions.views}
97
+ disabled={!enabled}
98
+ cancelText={appliedUiSchemaOptions.cancelLabel}
99
+ clearText={appliedUiSchemaOptions.clearLabel}
100
+ okText={appliedUiSchemaOptions.okLabel}
101
+ renderInput={params => (
102
+ <TextField
103
+ {...params}
104
+ id={id + '-input'}
105
+ required={required && !appliedUiSchemaOptions.hideRequiredAsterisk}
106
+ autoFocus={appliedUiSchemaOptions.focus}
107
+ error={!isValid}
108
+ fullWidth={!appliedUiSchemaOptions.trim}
109
+ inputProps={{ ...params.inputProps, type: 'text' }}
110
+ InputLabelProps={data ? { shrink: true } : undefined}
111
+ onFocus={onFocus}
112
+ onBlur={onBlur}
113
+ variant={'standard'}
114
+ />
115
+ )}
116
+ />
117
+ <FormHelperText error={!isValid && !showDescription}>
118
+ {firstFormHelperText}
119
+ </FormHelperText>
120
+ <FormHelperText error={!isValid}>
121
+ {secondFormHelperText}
122
+ </FormHelperText>
123
+ </LocalizationProvider>
124
+ </Hidden>
125
+ );
126
+ };
114
127
 
115
128
  export const materialDateTimeControlTester: RankedTester = rankWith(
116
129
  2,
@@ -35,7 +35,7 @@ import { MuiSelect } from '../mui-controls/MuiSelect';
35
35
  import { MaterialInputControl } from './MaterialInputControl';
36
36
 
37
37
  export const MaterialEnumControl = (props: ControlProps & OwnPropsOfEnum) => (
38
- <MaterialInputControl {...props} input={MuiSelect} />
38
+ <MaterialInputControl {...props} input={MuiSelect} />
39
39
  );
40
40
 
41
41
  export const materialEnumControlTester: RankedTester = rankWith(
@@ -1,7 +1,7 @@
1
1
  /*
2
2
  The MIT License
3
3
 
4
- Copyright (c) 2017-2019 EclipseSource Munich
4
+ Copyright (c) 2017-2021 EclipseSource Munich
5
5
  https://github.com/eclipsesource/jsonforms
6
6
 
7
7
  Permission is hereby granted, free of charge, to any person obtaining a copy
@@ -24,88 +24,81 @@
24
24
  */
25
25
  import React from 'react';
26
26
  import {
27
- computeLabel,
27
+ showAsRequired,
28
28
  ControlProps,
29
- ControlState,
30
29
  isDescriptionHidden,
31
- isPlainLabel
32
30
  } from '@jsonforms/core';
33
- import { Control } from '@jsonforms/react';
34
31
 
35
- import { Hidden, InputLabel } from '@material-ui/core';
36
- import { FormControl, FormHelperText } from '@material-ui/core';
32
+ import { Hidden, InputLabel } from '@mui/material';
33
+ import { FormControl, FormHelperText } from '@mui/material';
37
34
  import merge from 'lodash/merge';
35
+ import { useFocus } from '../util';
38
36
 
39
37
  export interface WithInput {
40
38
  input: any;
41
39
  }
42
40
 
43
- export abstract class MaterialInputControl extends Control<
44
- ControlProps & WithInput,
45
- ControlState
46
- > {
47
- render() {
48
- const {
49
- id,
50
- description,
51
- errors,
52
- label,
53
- uischema,
54
- visible,
55
- required,
56
- config,
57
- input
58
- } = this.props;
59
- const isValid = errors.length === 0;
60
- const appliedUiSchemaOptions = merge({}, config, uischema.options);
41
+ export const MaterialInputControl = (props: ControlProps & WithInput) => {
42
+ const [focused, onFocus, onBlur] = useFocus();
43
+ const {
44
+ id,
45
+ description,
46
+ errors,
47
+ label,
48
+ uischema,
49
+ visible,
50
+ required,
51
+ config,
52
+ input
53
+ } = props;
54
+ const isValid = errors.length === 0;
55
+ const appliedUiSchemaOptions = merge({}, config, uischema.options);
61
56
 
62
- const showDescription = !isDescriptionHidden(
63
- visible,
64
- description,
65
- this.state.isFocused,
66
- appliedUiSchemaOptions.showUnfocusedDescription
67
- );
57
+ const showDescription = !isDescriptionHidden(
58
+ visible,
59
+ description,
60
+ focused,
61
+ appliedUiSchemaOptions.showUnfocusedDescription
62
+ );
68
63
 
69
- const firstFormHelperText = showDescription
70
- ? description
71
- : !isValid
72
- ? errors
73
- : null;
74
- const secondFormHelperText = showDescription && !isValid ? errors : null;
75
- const InnerComponent = input;
64
+ const firstFormHelperText = showDescription
65
+ ? description
66
+ : !isValid
67
+ ? errors
68
+ : null;
69
+ const secondFormHelperText = showDescription && !isValid ? errors : null;
70
+ const InnerComponent = input;
76
71
 
77
- return (
78
- <Hidden xsUp={!visible}>
79
- <FormControl
80
- fullWidth={!appliedUiSchemaOptions.trim}
81
- onFocus={this.onFocus}
82
- onBlur={this.onBlur}
83
- id={id}
72
+ return (
73
+ <Hidden xsUp={!visible}>
74
+ <FormControl
75
+ fullWidth={!appliedUiSchemaOptions.trim}
76
+ onFocus={onFocus}
77
+ onBlur={onBlur}
78
+ id={id}
79
+ variant={'standard'}
80
+ >
81
+ <InputLabel
82
+ htmlFor={id + '-input'}
83
+ error={!isValid}
84
+ required={showAsRequired(required,
85
+ appliedUiSchemaOptions.hideRequiredAsterisk)}
84
86
  >
85
- <InputLabel
86
- htmlFor={id + '-input'}
87
- error={!isValid}
88
- >
89
- {computeLabel(
90
- isPlainLabel(label) ? label : label.default,
91
- required,
92
- appliedUiSchemaOptions.hideRequiredAsterisk
93
- )}
94
- </InputLabel>
95
- <InnerComponent
96
- {...this.props}
97
- id={id + '-input'}
98
- isValid={isValid}
99
- visible={visible}
100
- />
101
- <FormHelperText error={!isValid && !showDescription}>
102
- {firstFormHelperText}
103
- </FormHelperText>
104
- <FormHelperText error={!isValid}>
105
- {secondFormHelperText}
106
- </FormHelperText>
107
- </FormControl>
108
- </Hidden>
109
- );
110
- }
111
- }
87
+ {label}
88
+ </InputLabel>
89
+ <InnerComponent
90
+ {...props}
91
+ id={id + '-input'}
92
+ isValid={isValid}
93
+ visible={visible}
94
+ />
95
+ <FormHelperText error={!isValid && !showDescription}>
96
+ {firstFormHelperText}
97
+ </FormHelperText>
98
+ <FormHelperText error={!isValid}>
99
+ {secondFormHelperText}
100
+ </FormHelperText>
101
+ </FormControl>
102
+ </Hidden>
103
+ );
104
+ };