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

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 (373) hide show
  1. package/docs/assets/js/search.json +1 -1
  2. package/docs/classes/combinatorproperties.html +2 -5
  3. package/docs/classes/materialanyofstringorenumcontrol.html +6 -9
  4. package/docs/classes/materialtablecontrol.html +4 -7
  5. package/docs/globals.html +878 -423
  6. package/docs/index.html +68 -59
  7. package/docs/interfaces/ajvprops.html +1 -4
  8. package/docs/interfaces/arraylayouttoolbarprops.html +5 -8
  9. package/docs/interfaces/categorizationstate.html +1 -4
  10. package/docs/interfaces/categorizationstepperstate.html +0 -3
  11. package/docs/interfaces/combinatorpropertiesprops.html +0 -3
  12. package/docs/interfaces/deletedialogprops.html +0 -3
  13. package/docs/interfaces/dispatchpropsofexpandpanel.html +3 -6
  14. package/docs/interfaces/emptytableprops.html +0 -3
  15. package/docs/interfaces/expandpanelprops.html +19 -22
  16. package/docs/interfaces/jsonformstheme.html +39 -49
  17. package/docs/interfaces/materialcategorizationlayoutrendererprops.html +5 -8
  18. package/docs/interfaces/materialcategorizationstepperlayoutrendererprops.html +1 -4
  19. package/docs/interfaces/materiallayoutrendererprops.html +0 -3
  20. package/docs/interfaces/materialtabletoolbarprops.html +9 -12
  21. package/docs/interfaces/muitextinputprops.html +2 -5
  22. package/docs/interfaces/nonemptycellcomponentprops.html +266 -0
  23. package/docs/interfaces/nonemptycellprops.html +0 -3
  24. package/docs/interfaces/nonemptyrowprops.html +80 -27
  25. package/docs/interfaces/ownoneofprops.html +0 -3
  26. package/docs/interfaces/ownpropsofexpandpanel.html +14 -17
  27. package/docs/interfaces/ownpropsofnonemptycell.html +0 -3
  28. package/docs/interfaces/statepropsofexpandpanel.html +16 -19
  29. package/docs/interfaces/tableheadercellprops.html +0 -3
  30. package/docs/interfaces/tablerowsprop.html +9 -12
  31. package/docs/interfaces/validationprops.html +2 -5
  32. package/docs/interfaces/withdeletedialogsupport.html +0 -3
  33. package/docs/interfaces/withinput.html +1 -4
  34. package/docs/interfaces/withoptionlabel.html +7 -7
  35. package/example/index.ts +7 -23
  36. package/lib/additional/ListWithDetailMasterItem.d.ts +3 -3
  37. package/lib/additional/MaterialLabelRenderer.d.ts +13 -13
  38. package/lib/additional/MaterialListWithDetailRenderer.d.ts +6 -6
  39. package/lib/additional/index.d.ts +4 -4
  40. package/lib/cells/CustomizableCells.d.ts +9 -9
  41. package/lib/cells/MaterialBooleanCell.d.ts +6 -6
  42. package/lib/cells/MaterialBooleanToggleCell.d.ts +6 -6
  43. package/lib/cells/MaterialDateCell.d.ts +6 -6
  44. package/lib/cells/MaterialEnumCell.d.ts +10 -10
  45. package/lib/cells/MaterialIntegerCell.d.ts +6 -6
  46. package/lib/cells/MaterialNumberCell.d.ts +10 -10
  47. package/lib/cells/MaterialNumberFormatCell.d.ts +10 -10
  48. package/lib/cells/MaterialOneOfEnumCell.d.ts +10 -10
  49. package/lib/cells/MaterialTextCell.d.ts +10 -10
  50. package/lib/cells/MaterialTimeCell.d.ts +6 -6
  51. package/lib/cells/index.d.ts +13 -13
  52. package/lib/complex/CombinatorProperties.d.ts +12 -12
  53. package/lib/complex/DeleteDialog.d.ts +11 -11
  54. package/lib/complex/MaterialAllOfRenderer.d.ts +6 -5
  55. package/lib/complex/MaterialAnyOfRenderer.d.ts +6 -5
  56. package/lib/complex/MaterialArrayControlRenderer.d.ts +5 -5
  57. package/lib/complex/MaterialEnumArrayRenderer.d.ts +6 -6
  58. package/lib/complex/MaterialObjectRenderer.d.ts +6 -5
  59. package/lib/complex/MaterialOneOfRenderer.d.ts +9 -8
  60. package/lib/complex/MaterialTableControl.d.ts +25 -10
  61. package/lib/complex/NoBorderTableCell.d.ts +3 -3
  62. package/lib/complex/TableToolbar.d.ts +15 -15
  63. package/lib/complex/ValidationIcon.d.ts +7 -11
  64. package/lib/complex/index.d.ts +19 -19
  65. package/lib/controls/MaterialAnyOfStringOrEnumControl.d.ts +9 -9
  66. package/lib/controls/MaterialBooleanControl.d.ts +6 -6
  67. package/lib/controls/MaterialBooleanToggleControl.d.ts +6 -6
  68. package/lib/controls/MaterialDateControl.d.ts +6 -9
  69. package/lib/controls/MaterialDateTimeControl.d.ts +6 -9
  70. package/lib/controls/MaterialEnumControl.d.ts +7 -6
  71. package/lib/controls/MaterialInputControl.d.ts +6 -9
  72. package/lib/controls/MaterialIntegerControl.d.ts +6 -6
  73. package/lib/controls/MaterialNativeControl.d.ts +6 -9
  74. package/lib/controls/MaterialNumberControl.d.ts +6 -6
  75. package/lib/controls/MaterialOneOfEnumControl.d.ts +7 -6
  76. package/lib/controls/MaterialOneOfRadioGroupControl.d.ts +6 -6
  77. package/lib/controls/MaterialRadioGroup.d.ts +3 -6
  78. package/lib/controls/MaterialRadioGroupControl.d.ts +6 -6
  79. package/lib/controls/MaterialSliderControl.d.ts +6 -9
  80. package/lib/controls/MaterialTextControl.d.ts +6 -6
  81. package/lib/controls/MaterialTimeControl.d.ts +6 -9
  82. package/lib/controls/index.d.ts +35 -35
  83. package/lib/index.d.ts +9 -9
  84. package/lib/jsonforms-react-material.cjs.js +1489 -0
  85. package/lib/jsonforms-react-material.cjs.js.map +1 -0
  86. package/lib/jsonforms-react-material.esm.js +1221 -0
  87. package/lib/jsonforms-react-material.esm.js.map +1 -0
  88. package/lib/layouts/ArrayToolbar.d.ts +9 -9
  89. package/lib/layouts/ExpandPanelRenderer.d.ts +51 -51
  90. package/lib/layouts/MaterialArrayLayout.d.ts +3 -13
  91. package/lib/layouts/MaterialArrayLayoutRenderer.d.ts +6 -6
  92. package/lib/layouts/MaterialCategorizationLayout.d.ts +17 -25
  93. package/lib/layouts/MaterialCategorizationStepperLayout.d.ts +13 -20
  94. package/lib/layouts/MaterialGroupLayout.d.ts +7 -7
  95. package/lib/layouts/MaterialHorizontalLayout.d.ts +10 -10
  96. package/lib/layouts/MaterialVerticalLayout.d.ts +10 -10
  97. package/lib/layouts/index.d.ts +6 -6
  98. package/lib/mui-controls/MuiAutocomplete.d.ts +9 -0
  99. package/lib/mui-controls/MuiCheckbox.d.ts +3 -3
  100. package/lib/mui-controls/MuiInputInteger.d.ts +3 -3
  101. package/lib/mui-controls/MuiInputNumber.d.ts +3 -3
  102. package/lib/mui-controls/MuiInputNumberFormat.d.ts +3 -3
  103. package/lib/mui-controls/MuiInputText.d.ts +9 -9
  104. package/lib/mui-controls/MuiInputTime.d.ts +3 -3
  105. package/lib/mui-controls/MuiSelect.d.ts +3 -3
  106. package/lib/mui-controls/MuiToggle.d.ts +3 -3
  107. package/lib/mui-controls/index.d.ts +7 -7
  108. package/lib/util/datejs.d.ts +3 -3
  109. package/lib/util/debounce.d.ts +1 -0
  110. package/lib/util/focus.d.ts +1 -0
  111. package/lib/util/index.d.ts +5 -3
  112. package/lib/util/layout.d.ts +15 -13
  113. package/lib/util/theme.d.ts +10 -10
  114. package/package.json +34 -28
  115. package/rollup.config.js +51 -0
  116. package/src/additional/ListWithDetailMasterItem.tsx +3 -6
  117. package/src/additional/MaterialLabelRenderer.tsx +1 -1
  118. package/src/additional/MaterialListWithDetailRenderer.tsx +1 -1
  119. package/src/cells/MaterialDateCell.tsx +1 -1
  120. package/src/cells/MaterialTimeCell.tsx +1 -0
  121. package/src/complex/CombinatorProperties.tsx +2 -2
  122. package/src/complex/DeleteDialog.tsx +2 -2
  123. package/src/complex/MaterialAllOfRenderer.tsx +3 -2
  124. package/src/complex/MaterialAnyOfRenderer.tsx +3 -2
  125. package/src/complex/MaterialArrayControlRenderer.tsx +1 -1
  126. package/src/complex/MaterialEnumArrayRenderer.tsx +4 -3
  127. package/src/complex/MaterialObjectRenderer.tsx +3 -2
  128. package/src/complex/MaterialOneOfRenderer.tsx +7 -7
  129. package/src/complex/MaterialTableControl.tsx +45 -37
  130. package/src/complex/NoBorderTableCell.tsx +10 -12
  131. package/src/complex/TableToolbar.tsx +9 -7
  132. package/src/complex/ValidationIcon.tsx +12 -19
  133. package/src/controls/MaterialAnyOfStringOrEnumControl.tsx +17 -14
  134. package/src/controls/MaterialBooleanControl.tsx +1 -1
  135. package/src/controls/MaterialBooleanToggleControl.tsx +1 -1
  136. package/src/controls/MaterialDateControl.tsx +87 -93
  137. package/src/controls/MaterialDateTimeControl.tsx +88 -96
  138. package/src/controls/MaterialEnumControl.tsx +12 -3
  139. package/src/controls/MaterialInputControl.tsx +65 -71
  140. package/src/controls/MaterialNativeControl.tsx +55 -59
  141. package/src/controls/MaterialOneOfEnumControl.tsx +13 -4
  142. package/src/controls/MaterialOneOfRadioGroupControl.tsx +4 -4
  143. package/src/controls/MaterialRadioGroup.tsx +73 -73
  144. package/src/controls/MaterialRadioGroupControl.tsx +1 -1
  145. package/src/controls/MaterialSliderControl.tsx +93 -88
  146. package/src/controls/MaterialTimeControl.tsx +87 -85
  147. package/src/layouts/ArrayToolbar.tsx +11 -7
  148. package/src/layouts/ExpandPanelRenderer.tsx +28 -32
  149. package/src/layouts/MaterialArrayLayout.tsx +73 -82
  150. package/src/layouts/MaterialArrayLayoutRenderer.tsx +1 -1
  151. package/src/layouts/MaterialCategorizationLayout.tsx +50 -67
  152. package/src/layouts/MaterialCategorizationStepperLayout.tsx +80 -88
  153. package/src/layouts/MaterialGroupLayout.tsx +1 -1
  154. package/src/{extended → mui-controls}/MuiAutocomplete.tsx +11 -9
  155. package/src/mui-controls/MuiCheckbox.tsx +2 -3
  156. package/src/mui-controls/MuiInputInteger.tsx +13 -10
  157. package/src/mui-controls/MuiInputNumber.tsx +10 -7
  158. package/src/mui-controls/MuiInputNumberFormat.tsx +9 -12
  159. package/src/mui-controls/MuiInputText.tsx +30 -21
  160. package/src/mui-controls/MuiInputTime.tsx +7 -5
  161. package/src/mui-controls/MuiSelect.tsx +4 -5
  162. package/src/mui-controls/MuiToggle.tsx +2 -3
  163. package/{lib/cells/MaterialNumberCell.js → src/util/debounce.ts} +20 -16
  164. package/{lib/util/index.js → src/util/focus.ts} +9 -7
  165. package/src/util/index.ts +2 -0
  166. package/src/util/layout.tsx +7 -8
  167. package/src/util/theme.ts +1 -1
  168. package/stats.html +3279 -0
  169. package/test/renderers/MaterialAllOfRenderer.test.tsx +1 -1
  170. package/test/renderers/MaterialAnyOfRenderer.test.tsx +15 -9
  171. package/test/renderers/MaterialAnyOfStringOrEnumControl.test.tsx +1 -1
  172. package/test/renderers/MaterialArrayControl.test.tsx +1 -1
  173. package/test/renderers/MaterialArrayLayout.test.tsx +39 -32
  174. package/test/renderers/MaterialBooleanCell.test.tsx +1 -1
  175. package/test/renderers/MaterialBooleanToggleCell.test.tsx +3 -2
  176. package/test/renderers/MaterialBooleanToggleControl.test.tsx +3 -2
  177. package/test/renderers/MaterialCategorizationLayout.test.tsx +76 -3
  178. package/test/renderers/MaterialCategorizationStepperLayout.test.tsx +79 -6
  179. package/test/renderers/MaterialDateCell.test.tsx +1 -1
  180. package/test/renderers/MaterialDateControl.test.tsx +5 -3
  181. package/test/renderers/MaterialDateTimeControl.test.tsx +5 -3
  182. package/test/renderers/MaterialEnumArrayRenderer.test.tsx +15 -7
  183. package/test/renderers/MaterialEnumCell.test.tsx +1 -1
  184. package/test/renderers/MaterialGroupLayout.test.tsx +1 -1
  185. package/test/renderers/MaterialInputControl.test.tsx +4 -4
  186. package/test/renderers/MaterialIntegerCell.test.tsx +42 -21
  187. package/test/renderers/MaterialLabelRenderer.test.tsx +1 -1
  188. package/test/renderers/MaterialLayouts.test.tsx +1 -1
  189. package/test/renderers/MaterialListWithDetailRenderer.test.tsx +2 -2
  190. package/test/renderers/MaterialNativeControl.test.tsx +2 -2
  191. package/test/renderers/MaterialNumberCell.test.tsx +46 -25
  192. package/test/renderers/MaterialObjectControl.test.tsx +1 -1
  193. package/test/renderers/MaterialOneOfEnumCell.test.tsx +1 -1
  194. package/test/renderers/MaterialOneOfRadioGroupControl.test.tsx +1 -1
  195. package/test/renderers/MaterialOneOfRenderer.test.tsx +17 -11
  196. package/test/renderers/MaterialRadioGroupControl.test.tsx +1 -1
  197. package/test/renderers/MaterialSliderControl.test.tsx +2 -2
  198. package/test/renderers/MaterialTextCell.test.tsx +47 -33
  199. package/test/renderers/MaterialTextControl.test.tsx +8 -4
  200. package/test/renderers/MaterialTimeCell.test.tsx +42 -21
  201. package/test/renderers/MaterialTimeControl.test.tsx +8 -6
  202. package/tsconfig.json +1 -2
  203. package/tsconfig.test.json +7 -0
  204. package/docs/classes/materialarraylayout.html +0 -777
  205. package/docs/classes/materialcategorizationlayoutrenderer.html +0 -786
  206. package/docs/classes/materialcategorizationstepperlayoutrenderer.html +0 -762
  207. package/docs/classes/materialdatecontrol.html +0 -825
  208. package/docs/classes/materialdatetimecontrol.html +0 -825
  209. package/docs/classes/materialinputcontrol.html +0 -825
  210. package/docs/classes/materialnativecontrol.html +0 -825
  211. package/docs/classes/materialradiogroup.html +0 -825
  212. package/docs/classes/materialslidercontrol.html +0 -825
  213. package/docs/classes/materialtimecontrol.html +0 -825
  214. package/docs/interfaces/materialarraylayoutstate.html +0 -157
  215. package/example/CustomAutocomplete.tsx +0 -54
  216. package/lib/additional/ListWithDetailMasterItem.js +0 -19
  217. package/lib/additional/ListWithDetailMasterItem.js.map +0 -1
  218. package/lib/additional/MaterialLabelRenderer.js +0 -47
  219. package/lib/additional/MaterialLabelRenderer.js.map +0 -1
  220. package/lib/additional/MaterialListWithDetailRenderer.js +0 -64
  221. package/lib/additional/MaterialListWithDetailRenderer.js.map +0 -1
  222. package/lib/additional/index.js +0 -34
  223. package/lib/additional/index.js.map +0 -1
  224. package/lib/cells/CustomizableCells.js +0 -45
  225. package/lib/cells/CustomizableCells.js.map +0 -1
  226. package/lib/cells/MaterialBooleanCell.js +0 -37
  227. package/lib/cells/MaterialBooleanCell.js.map +0 -1
  228. package/lib/cells/MaterialBooleanToggleCell.js +0 -38
  229. package/lib/cells/MaterialBooleanToggleCell.js.map +0 -1
  230. package/lib/cells/MaterialDateCell.js +0 -40
  231. package/lib/cells/MaterialDateCell.js.map +0 -1
  232. package/lib/cells/MaterialEnumCell.js +0 -39
  233. package/lib/cells/MaterialEnumCell.js.map +0 -1
  234. package/lib/cells/MaterialIntegerCell.js +0 -35
  235. package/lib/cells/MaterialIntegerCell.js.map +0 -1
  236. package/lib/cells/MaterialNumberCell.js.map +0 -1
  237. package/lib/cells/MaterialNumberFormatCell.js +0 -39
  238. package/lib/cells/MaterialNumberFormatCell.js.map +0 -1
  239. package/lib/cells/MaterialOneOfEnumCell.js +0 -39
  240. package/lib/cells/MaterialOneOfEnumCell.js.map +0 -1
  241. package/lib/cells/MaterialTextCell.js +0 -39
  242. package/lib/cells/MaterialTextCell.js.map +0 -1
  243. package/lib/cells/MaterialTimeCell.js +0 -35
  244. package/lib/cells/MaterialTimeCell.js.map +0 -1
  245. package/lib/cells/index.js +0 -60
  246. package/lib/cells/index.js.map +0 -1
  247. package/lib/complex/CombinatorProperties.js +0 -57
  248. package/lib/complex/CombinatorProperties.js.map +0 -1
  249. package/lib/complex/DeleteDialog.js +0 -41
  250. package/lib/complex/DeleteDialog.js.map +0 -1
  251. package/lib/complex/MaterialAllOfRenderer.js +0 -45
  252. package/lib/complex/MaterialAllOfRenderer.js.map +0 -1
  253. package/lib/complex/MaterialAnyOfRenderer.js +0 -49
  254. package/lib/complex/MaterialAnyOfRenderer.js.map +0 -1
  255. package/lib/complex/MaterialArrayControlRenderer.js +0 -55
  256. package/lib/complex/MaterialArrayControlRenderer.js.map +0 -1
  257. package/lib/complex/MaterialEnumArrayRenderer.js +0 -45
  258. package/lib/complex/MaterialEnumArrayRenderer.js.map +0 -1
  259. package/lib/complex/MaterialObjectRenderer.js +0 -49
  260. package/lib/complex/MaterialObjectRenderer.js.map +0 -1
  261. package/lib/complex/MaterialOneOfRenderer.js +0 -77
  262. package/lib/complex/MaterialOneOfRenderer.js.map +0 -1
  263. package/lib/complex/MaterialTableControl.js +0 -190
  264. package/lib/complex/MaterialTableControl.js.map +0 -1
  265. package/lib/complex/NoBorderTableCell.js +0 -41
  266. package/lib/complex/NoBorderTableCell.js.map +0 -1
  267. package/lib/complex/TableToolbar.js +0 -58
  268. package/lib/complex/TableToolbar.js.map +0 -1
  269. package/lib/complex/ValidationIcon.js +0 -48
  270. package/lib/complex/ValidationIcon.js.map +0 -1
  271. package/lib/complex/index.js +0 -47
  272. package/lib/complex/index.js.map +0 -1
  273. package/lib/controls/MaterialAnyOfStringOrEnumControl.js +0 -80
  274. package/lib/controls/MaterialAnyOfStringOrEnumControl.js.map +0 -1
  275. package/lib/controls/MaterialBooleanControl.js +0 -41
  276. package/lib/controls/MaterialBooleanControl.js.map +0 -1
  277. package/lib/controls/MaterialBooleanToggleControl.js +0 -41
  278. package/lib/controls/MaterialBooleanToggleControl.js.map +0 -1
  279. package/lib/controls/MaterialDateControl.js +0 -69
  280. package/lib/controls/MaterialDateControl.js.map +0 -1
  281. package/lib/controls/MaterialDateTimeControl.js +0 -71
  282. package/lib/controls/MaterialDateTimeControl.js.map +0 -1
  283. package/lib/controls/MaterialEnumControl.js +0 -36
  284. package/lib/controls/MaterialEnumControl.js.map +0 -1
  285. package/lib/controls/MaterialInputControl.js +0 -61
  286. package/lib/controls/MaterialInputControl.js.map +0 -1
  287. package/lib/controls/MaterialIntegerControl.js +0 -36
  288. package/lib/controls/MaterialIntegerControl.js.map +0 -1
  289. package/lib/controls/MaterialNativeControl.js +0 -55
  290. package/lib/controls/MaterialNativeControl.js.map +0 -1
  291. package/lib/controls/MaterialNumberControl.js +0 -36
  292. package/lib/controls/MaterialNumberControl.js.map +0 -1
  293. package/lib/controls/MaterialOneOfEnumControl.js +0 -36
  294. package/lib/controls/MaterialOneOfEnumControl.js.map +0 -1
  295. package/lib/controls/MaterialOneOfRadioGroupControl.js +0 -37
  296. package/lib/controls/MaterialOneOfRadioGroupControl.js.map +0 -1
  297. package/lib/controls/MaterialRadioGroup.js +0 -55
  298. package/lib/controls/MaterialRadioGroup.js.map +0 -1
  299. package/lib/controls/MaterialRadioGroupControl.js +0 -37
  300. package/lib/controls/MaterialRadioGroupControl.js.map +0 -1
  301. package/lib/controls/MaterialSliderControl.js +0 -74
  302. package/lib/controls/MaterialSliderControl.js.map +0 -1
  303. package/lib/controls/MaterialTextControl.js +0 -36
  304. package/lib/controls/MaterialTextControl.js.map +0 -1
  305. package/lib/controls/MaterialTimeControl.js +0 -66
  306. package/lib/controls/MaterialTimeControl.js.map +0 -1
  307. package/lib/controls/index.js +0 -91
  308. package/lib/controls/index.js.map +0 -1
  309. package/lib/extended/MaterialAutocompleteEnumControl.d.ts +0 -7
  310. package/lib/extended/MaterialAutocompleteEnumControl.js +0 -42
  311. package/lib/extended/MaterialAutocompleteEnumControl.js.map +0 -1
  312. package/lib/extended/MaterialAutocompleteOneOfEnumControl.d.ts +0 -7
  313. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js +0 -42
  314. package/lib/extended/MaterialAutocompleteOneOfEnumControl.js.map +0 -1
  315. package/lib/extended/MuiAutocomplete.d.ts +0 -10
  316. package/lib/extended/MuiAutocomplete.js +0 -45
  317. package/lib/extended/MuiAutocomplete.js.map +0 -1
  318. package/lib/extended/index.d.ts +0 -10
  319. package/lib/extended/index.js +0 -48
  320. package/lib/extended/index.js.map +0 -1
  321. package/lib/index.js +0 -89
  322. package/lib/index.js.map +0 -1
  323. package/lib/jsonforms-material.js +0 -86
  324. package/lib/jsonforms-material.js.map +0 -1
  325. package/lib/layouts/ArrayToolbar.js +0 -27
  326. package/lib/layouts/ArrayToolbar.js.map +0 -1
  327. package/lib/layouts/ExpandPanelRenderer.js +0 -113
  328. package/lib/layouts/ExpandPanelRenderer.js.map +0 -1
  329. package/lib/layouts/MaterialArrayLayout.js +0 -66
  330. package/lib/layouts/MaterialArrayLayout.js.map +0 -1
  331. package/lib/layouts/MaterialArrayLayoutRenderer.js +0 -43
  332. package/lib/layouts/MaterialArrayLayoutRenderer.js.map +0 -1
  333. package/lib/layouts/MaterialCategorizationLayout.js +0 -88
  334. package/lib/layouts/MaterialCategorizationLayout.js.map +0 -1
  335. package/lib/layouts/MaterialCategorizationStepperLayout.js +0 -89
  336. package/lib/layouts/MaterialCategorizationStepperLayout.js.map +0 -1
  337. package/lib/layouts/MaterialGroupLayout.js +0 -52
  338. package/lib/layouts/MaterialGroupLayout.js.map +0 -1
  339. package/lib/layouts/MaterialHorizontalLayout.js +0 -51
  340. package/lib/layouts/MaterialHorizontalLayout.js.map +0 -1
  341. package/lib/layouts/MaterialVerticalLayout.js +0 -51
  342. package/lib/layouts/MaterialVerticalLayout.js.map +0 -1
  343. package/lib/layouts/index.js +0 -43
  344. package/lib/layouts/index.js.map +0 -1
  345. package/lib/mui-controls/MuiCheckbox.js +0 -40
  346. package/lib/mui-controls/MuiCheckbox.js.map +0 -1
  347. package/lib/mui-controls/MuiInputInteger.js +0 -41
  348. package/lib/mui-controls/MuiInputInteger.js.map +0 -1
  349. package/lib/mui-controls/MuiInputNumber.js +0 -41
  350. package/lib/mui-controls/MuiInputNumber.js.map +0 -1
  351. package/lib/mui-controls/MuiInputNumberFormat.js +0 -50
  352. package/lib/mui-controls/MuiInputNumberFormat.js.map +0 -1
  353. package/lib/mui-controls/MuiInputText.js +0 -64
  354. package/lib/mui-controls/MuiInputText.js.map +0 -1
  355. package/lib/mui-controls/MuiInputTime.js +0 -37
  356. package/lib/mui-controls/MuiInputTime.js.map +0 -1
  357. package/lib/mui-controls/MuiSelect.js +0 -38
  358. package/lib/mui-controls/MuiSelect.js.map +0 -1
  359. package/lib/mui-controls/MuiToggle.js +0 -39
  360. package/lib/mui-controls/MuiToggle.js.map +0 -1
  361. package/lib/mui-controls/index.js +0 -35
  362. package/lib/mui-controls/index.js.map +0 -1
  363. package/lib/util/datejs.js +0 -26
  364. package/lib/util/datejs.js.map +0 -1
  365. package/lib/util/index.js.map +0 -1
  366. package/lib/util/layout.js +0 -54
  367. package/lib/util/layout.js.map +0 -1
  368. package/lib/util/theme.js +0 -3
  369. package/lib/util/theme.js.map +0 -1
  370. package/src/extended/MaterialAutocompleteEnumControl.tsx +0 -55
  371. package/src/extended/MaterialAutocompleteOneOfEnumControl.tsx +0 -55
  372. package/src/extended/index.ts +0 -56
  373. package/webpack/webpack.build.js +0 -21
@@ -22,9 +22,8 @@
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';
26
- import { Hidden, Tab, Tabs } from '@material-ui/core';
27
- import AppBar from '@material-ui/core/AppBar';
25
+ import React, {useState} from 'react';
26
+ import { AppBar, Hidden, Tab, Tabs } from '@mui/material';
28
27
  import {
29
28
  and,
30
29
  Categorization,
@@ -37,7 +36,7 @@ import {
37
36
  UISchemaElement,
38
37
  uiTypeIs
39
38
  } from '@jsonforms/core';
40
- import { RendererComponent, withJsonFormsLayoutProps } from '@jsonforms/react';
39
+ import { withJsonFormsLayoutProps } from '@jsonforms/react';
41
40
  import {
42
41
  AjvProps,
43
42
  MaterialLayoutRenderer,
@@ -76,71 +75,55 @@ export interface MaterialCategorizationLayoutRendererProps
76
75
  onChange?(selected: number, prevSelected: number): void;
77
76
  }
78
77
 
79
- export class MaterialCategorizationLayoutRenderer extends RendererComponent<
80
- MaterialCategorizationLayoutRendererProps,
81
- CategorizationState
82
- > {
83
- state = {
84
- activeCategory: 0
78
+ export const MaterialCategorizationLayoutRenderer = (props: MaterialCategorizationLayoutRendererProps) => {
79
+ const {
80
+ data,
81
+ path,
82
+ renderers,
83
+ cells,
84
+ schema,
85
+ uischema,
86
+ visible,
87
+ enabled,
88
+ selected,
89
+ onChange,
90
+ ajv
91
+ } = props;
92
+ const categorization = uischema as Categorization;
93
+ const [activeCategory, setActiveCategory]= useState<number|undefined>(selected??0);
94
+ const categories = categorization.elements.filter((category: Category) =>
95
+ isVisible(category, data, undefined, ajv)
96
+ );
97
+ const childProps: MaterialLayoutRendererProps = {
98
+ elements: categories[activeCategory].elements,
99
+ schema,
100
+ path,
101
+ direction: 'column',
102
+ enabled,
103
+ visible,
104
+ renderers,
105
+ cells
85
106
  };
86
-
87
- render() {
88
- const {
89
- data,
90
- path,
91
- renderers,
92
- cells,
93
- schema,
94
- uischema,
95
- visible,
96
- enabled,
97
- selected,
98
- ajv
99
- } = this.props;
100
- const categorization = uischema as Categorization;
101
- const value = this.hasOwnState() ? this.state.activeCategory : selected;
102
- const childProps: MaterialLayoutRendererProps = {
103
- elements: categorization.elements[value].elements,
104
- schema,
105
- path,
106
- direction: 'column',
107
- enabled,
108
- visible,
109
- renderers,
110
- cells
111
- };
112
- const categories = categorization.elements.filter((category: Category) =>
113
- isVisible(category, data, undefined, ajv)
114
- );
115
- return (
116
- <Hidden xsUp={!visible}>
117
- <AppBar position='static'>
118
- <Tabs value={value} onChange={this.handleChange} variant='scrollable'>
119
- {categories.map((e: Category, idx: number) => (
120
- <Tab key={idx} label={e.label} />
121
- ))}
122
- </Tabs>
123
- </AppBar>
124
- <div style={{ marginTop: '0.5em' }}>
125
- <MaterialLayoutRenderer {...childProps} />
126
- </div>
127
- </Hidden>
128
- );
129
- }
130
-
131
- hasOwnState = () => {
132
- return this.props.ownState !== undefined ? this.props.ownState : true;
133
- };
134
-
135
- private handleChange = (_event: any, value: any) => {
136
- if (this.props.onChange) {
137
- this.props.onChange(value, this.state.activeCategory);
138
- }
139
- const hasOwnState = this.hasOwnState();
140
- if (hasOwnState) {
141
- this.setState({ activeCategory: value });
107
+ const onTabChange = (_event: any, value: any) => {
108
+ if (onChange) {
109
+ onChange(value, activeCategory);
142
110
  }
111
+ setActiveCategory(value);
143
112
  };
144
- }
113
+ return (
114
+ <Hidden xsUp={!visible}>
115
+ <AppBar position='static'>
116
+ <Tabs value={activeCategory} onChange={onTabChange} textColor='inherit' indicatorColor='secondary' variant='scrollable'>
117
+ {categories.map((e: Category, idx: number) => (
118
+ <Tab key={idx} label={e.label} />
119
+ ))}
120
+ </Tabs>
121
+ </AppBar>
122
+ <div style={{ marginTop: '0.5em' }}>
123
+ <MaterialLayoutRenderer {...childProps} />
124
+ </div>
125
+ </Hidden>
126
+ );
127
+ };
145
128
 
146
129
  export default withJsonFormsLayoutProps(withAjvProps(MaterialCategorizationLayoutRenderer));
@@ -22,9 +22,9 @@
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, {useState} from 'react';
26
26
  import merge from 'lodash/merge';
27
- import { Button, Hidden, Step, StepButton, Stepper } from '@material-ui/core';
27
+ import { Button, Hidden, Step, StepButton, Stepper } from '@mui/material';
28
28
  import {
29
29
  and,
30
30
  Categorization,
@@ -37,7 +37,7 @@ import {
37
37
  StatePropsOfLayout,
38
38
  uiTypeIs
39
39
  } from '@jsonforms/core';
40
- import { RendererComponent, withJsonFormsLayoutProps } from '@jsonforms/react';
40
+ import { withJsonFormsLayoutProps } from '@jsonforms/react';
41
41
  import {
42
42
  AjvProps,
43
43
  MaterialLayoutRenderer,
@@ -63,94 +63,86 @@ export interface MaterialCategorizationStepperLayoutRendererProps
63
63
  data: any;
64
64
  }
65
65
 
66
- export class MaterialCategorizationStepperLayoutRenderer extends RendererComponent<
67
- MaterialCategorizationStepperLayoutRendererProps,
68
- CategorizationStepperState
69
- > {
70
- state = {
71
- activeCategory: 0
72
- };
66
+ export const MaterialCategorizationStepperLayoutRenderer = (props: MaterialCategorizationStepperLayoutRendererProps)=> {
67
+ const [activeCategory, setActiveCategory] = useState<number>(0);
73
68
 
74
- handleStep = (step: number) => {
75
- this.setState({ activeCategory: step });
69
+ const handleStep = (step: number) => {
70
+ setActiveCategory( step);
76
71
  };
77
72
 
78
- render() {
79
- const {
80
- data,
81
- path,
82
- renderers,
83
- schema,
84
- uischema,
85
- visible,
86
- cells,
87
- config,
88
- ajv
89
- } = this.props;
90
- const categorization = uischema as Categorization;
91
- const activeCategory = this.state.activeCategory;
92
- const appliedUiSchemaOptions = merge({}, config, uischema.options);
93
- const buttonWrapperStyle = {
94
- textAlign: 'right' as 'right',
95
- width: '100%',
96
- margin: '1em auto'
97
- };
98
- const buttonNextStyle = {
99
- float: 'right' as 'right'
100
- };
101
- const buttonStyle = {
102
- marginRight: '1em'
103
- };
104
- const childProps: MaterialLayoutRendererProps = {
105
- elements: categorization.elements[activeCategory].elements,
106
- schema,
107
- path,
108
- direction: 'column',
109
- visible,
110
- renderers,
111
- cells
112
- };
113
- const categories = categorization.elements.filter((category: Category) =>
114
- isVisible(category, data, undefined, ajv)
115
- );
116
- return (
117
- <Hidden xsUp={!visible}>
118
- <Stepper activeStep={activeCategory} nonLinear>
119
- {categories.map((e: Category, idx: number) => (
120
- <Step key={e.label}>
121
- <StepButton onClick={() => this.handleStep(idx)}>
122
- {e.label}
123
- </StepButton>
124
- </Step>
125
- ))}
126
- </Stepper>
127
- <div>
128
- <MaterialLayoutRenderer {...childProps} />
129
- </div>
130
- { !!appliedUiSchemaOptions.showNavButtons ? (<div style={buttonWrapperStyle}>
131
- <Button
132
- style={buttonNextStyle}
133
- variant="contained"
134
- color="primary"
135
- disabled={activeCategory >= categories.length - 1}
136
- onClick={() => this.handleStep(activeCategory + 1)}
137
- >
138
- Next
139
- </Button>
140
- <Button
141
- style={buttonStyle}
142
- color="secondary"
143
- variant="contained"
144
- disabled={activeCategory <= 0}
145
- onClick={() => this.handleStep(activeCategory - 1)}
146
- >
147
- Previous
148
- </Button>
149
- </div>) : (<></>)}
150
- </Hidden>
151
- );
152
- }
153
- }
73
+ const {
74
+ data,
75
+ path,
76
+ renderers,
77
+ schema,
78
+ uischema,
79
+ visible,
80
+ cells,
81
+ config,
82
+ ajv
83
+ } = props;
84
+ const categorization = uischema as Categorization;
85
+ const appliedUiSchemaOptions = merge({}, config, uischema.options);
86
+ const buttonWrapperStyle = {
87
+ textAlign: 'right' as 'right',
88
+ width: '100%',
89
+ margin: '1em auto'
90
+ };
91
+ const buttonNextStyle = {
92
+ float: 'right' as 'right'
93
+ };
94
+ const buttonStyle = {
95
+ marginRight: '1em'
96
+ };
97
+ const categories = categorization.elements.filter((category: Category) =>
98
+ isVisible(category, data, undefined, ajv)
99
+ );
100
+ const childProps: MaterialLayoutRendererProps = {
101
+ elements: categories[activeCategory].elements,
102
+ schema,
103
+ path,
104
+ direction: 'column',
105
+ visible,
106
+ renderers,
107
+ cells
108
+ };
109
+ return (
110
+ <Hidden xsUp={!visible}>
111
+ <Stepper activeStep={activeCategory} nonLinear>
112
+ {categories.map((e: Category, idx: number) => (
113
+ <Step key={e.label}>
114
+ <StepButton onClick={() => handleStep(idx)}>
115
+ {e.label}
116
+ </StepButton>
117
+ </Step>
118
+ ))}
119
+ </Stepper>
120
+ <div>
121
+ <MaterialLayoutRenderer {...childProps} />
122
+ </div>
123
+ { !!appliedUiSchemaOptions.showNavButtons ? (<div style={buttonWrapperStyle}>
124
+ <Button
125
+ style={buttonNextStyle}
126
+ variant="contained"
127
+ color="primary"
128
+ disabled={activeCategory >= categories.length - 1}
129
+ onClick={() => handleStep(activeCategory + 1)}
130
+ >
131
+ Next
132
+ </Button>
133
+ <Button
134
+ style={buttonStyle}
135
+ color="secondary"
136
+ variant="contained"
137
+ disabled={activeCategory <= 0}
138
+ onClick={() => handleStep(activeCategory - 1)}
139
+ >
140
+ Previous
141
+ </Button>
142
+ </div>) : (<></>)}
143
+ </Hidden>
144
+ );
145
+ };
154
146
 
155
147
  export default withJsonFormsLayoutProps(withAjvProps(
156
148
  MaterialCategorizationStepperLayoutRenderer
@@ -24,7 +24,7 @@
24
24
  */
25
25
  import isEmpty from 'lodash/isEmpty';
26
26
  import React from 'react';
27
- import { Card, CardContent, CardHeader, Hidden } from '@material-ui/core';
27
+ import { Card, CardContent, CardHeader, Hidden } from '@mui/material';
28
28
  import {
29
29
  GroupLayout,
30
30
  LayoutProps,
@@ -25,19 +25,21 @@
25
25
  import React, { ReactNode } from 'react';
26
26
  import { EnumCellProps, EnumOption, WithClassname } from '@jsonforms/core';
27
27
 
28
- import Input from '@material-ui/core/Input';
29
- import Autocomplete, { AutocompleteRenderOptionState } from '@material-ui/lab/Autocomplete';
30
- import { areEqual } from '@jsonforms/react';
28
+ import {
29
+ Autocomplete,
30
+ AutocompleteRenderOptionState,
31
+ Input,
32
+ FilterOptionsState
33
+ } from '@mui/material';
31
34
  import merge from 'lodash/merge';
32
- import { FilterOptionsState } from '@material-ui/lab/useAutocomplete';
33
35
 
34
36
  export interface WithOptionLabel {
35
- getOptionLabel?(option: EnumOption) : string;
36
- renderOption?(option: EnumOption, state: AutocompleteRenderOptionState): ReactNode;
37
- filterOptions?(options: EnumOption[], state: FilterOptionsState<EnumOption>) : EnumOption[];
37
+ getOptionLabel?(option: EnumOption) : string;
38
+ renderOption?(props: React.HTMLAttributes<HTMLLIElement>, option: EnumOption, state: AutocompleteRenderOptionState): ReactNode;
39
+ filterOptions?(options: EnumOption[], state: FilterOptionsState<EnumOption>) : EnumOption[];
38
40
  }
39
41
 
40
- export const MuiAutocomplete = React.memo((props: EnumCellProps & WithClassname & WithOptionLabel) => {
42
+ export const MuiAutocomplete = (props: EnumCellProps & WithClassname & WithOptionLabel) => {
41
43
  const {
42
44
  data,
43
45
  className,
@@ -90,4 +92,4 @@ export const MuiAutocomplete = React.memo((props: EnumCellProps & WithClassname
90
92
  filterOptions={filterOptions}
91
93
  />
92
94
  );
93
- }, areEqual);
95
+ };
@@ -24,8 +24,7 @@
24
24
  */
25
25
  import React from 'react';
26
26
  import { CellProps, WithClassname } from '@jsonforms/core';
27
- import Checkbox from '@material-ui/core/Checkbox';
28
- import { areEqual } from '@jsonforms/react';
27
+ import { Checkbox } from '@mui/material';
29
28
  import merge from 'lodash/merge';
30
29
 
31
30
  export const MuiCheckbox = React.memo((props: CellProps & WithClassname) => {
@@ -54,4 +53,4 @@ export const MuiCheckbox = React.memo((props: CellProps & WithClassname) => {
54
53
  inputProps={inputProps}
55
54
  />
56
55
  );
57
- }, areEqual);
56
+ });
@@ -24,11 +24,15 @@
24
24
  */
25
25
  import React from 'react';
26
26
  import { CellProps, WithClassname } from '@jsonforms/core';
27
- import Input from '@material-ui/core/Input';
28
- import { areEqual } from '@jsonforms/react';
27
+ import { Input } from '@mui/material';
29
28
  import merge from 'lodash/merge';
29
+ import { useDebouncedChange } from '../util';
30
30
 
31
- export const MuiInputInteger = React.memo(
31
+ const toNumber = (value: string) =>
32
+ value === '' ? undefined : parseInt(value, 10);
33
+ const eventToValue = (ev:any) => toNumber(ev.target.value);
34
+
35
+ export const MuiInputInteger = React.memo(
32
36
  (props: CellProps & WithClassname) => {
33
37
  const {
34
38
  data,
@@ -41,15 +45,16 @@ export const MuiInputInteger = React.memo(
41
45
  config
42
46
  } = props;
43
47
  const inputProps = { step: '1' };
44
- const toNumber = (value: string) =>
45
- value === '' ? undefined : parseInt(value, 10);
48
+
46
49
  const appliedUiSchemaOptions = merge({}, config, uischema.options);
47
50
 
51
+ const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);
52
+
48
53
  return (
49
54
  <Input
50
55
  type='number'
51
- value={data !== undefined && data !== null ? data : ''}
52
- onChange={ev => handleChange(path, toNumber(ev.target.value))}
56
+ value={inputValue}
57
+ onChange={onChange}
53
58
  className={className}
54
59
  id={id}
55
60
  disabled={!enabled}
@@ -58,6 +63,4 @@ export const MuiInputInteger = React.memo(
58
63
  fullWidth={true}
59
64
  />
60
65
  );
61
- },
62
- areEqual
63
- );
66
+ });
@@ -24,10 +24,13 @@
24
24
  */
25
25
  import React from 'react';
26
26
  import { CellProps, WithClassname } from '@jsonforms/core';
27
- import Input from '@material-ui/core/Input';
28
- import { areEqual } from '@jsonforms/react';
27
+ import { Input } from '@mui/material';
29
28
  import merge from 'lodash/merge';
29
+ import {useDebouncedChange} from '../util';
30
30
 
31
+ const toNumber = (value: string) =>
32
+ value === '' ? undefined : parseFloat(value);
33
+ const eventToValue = (ev:any) => toNumber(ev.target.value);
31
34
  export const MuiInputNumber = React.memo((props: CellProps & WithClassname) => {
32
35
  const {
33
36
  data,
@@ -40,15 +43,15 @@ export const MuiInputNumber = React.memo((props: CellProps & WithClassname) => {
40
43
  config
41
44
  } = props;
42
45
  const inputProps = { step: '0.1' };
43
- const toNumber = (value: string) =>
44
- value === '' ? undefined : parseFloat(value);
46
+
45
47
  const appliedUiSchemaOptions = merge({}, config, uischema.options);
48
+ const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path, eventToValue);
46
49
 
47
50
  return (
48
51
  <Input
49
52
  type='number'
50
- value={data === undefined || data === null ? '' : data}
51
- onChange={ev => handleChange(path, toNumber(ev.target.value))}
53
+ value={inputValue}
54
+ onChange={onChange}
52
55
  className={className}
53
56
  id={id}
54
57
  disabled={!enabled}
@@ -57,4 +60,4 @@ export const MuiInputNumber = React.memo((props: CellProps & WithClassname) => {
57
60
  fullWidth={true}
58
61
  />
59
62
  );
60
- }, areEqual);
63
+ });
@@ -22,13 +22,13 @@
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, {useCallback} from 'react';
26
26
  import { CellProps, Formatted, WithClassname } from '@jsonforms/core';
27
- import Input from '@material-ui/core/Input';
28
- import { areEqual } from '@jsonforms/react';
27
+ import { Input } from '@mui/material';
29
28
  import merge from 'lodash/merge';
29
+ import { useDebouncedChange } from '../util';
30
30
 
31
- export const MuiInputNumberFormat = React.memo(
31
+ export const MuiInputNumberFormat = React.memo(
32
32
  (props: CellProps & WithClassname & Formatted<number>) => {
33
33
  const {
34
34
  className,
@@ -51,15 +51,14 @@ export const MuiInputNumberFormat = React.memo(
51
51
  }
52
52
  const formattedNumber = props.toFormatted(props.data);
53
53
 
54
- const onChange = (ev: any) => {
55
- const validStringNumber = props.fromFormatted(ev.currentTarget.value);
56
- handleChange(path, validStringNumber);
57
- };
54
+ const validStringNumber = useCallback((ev:any) => props.fromFormatted(ev.currentTarget.value),[props.fromFormatted]);
55
+ const [inputValue, onChange] = useDebouncedChange(handleChange, '', formattedNumber, path, validStringNumber);
56
+
58
57
 
59
58
  return (
60
59
  <Input
61
60
  type='text'
62
- value={formattedNumber}
61
+ value={inputValue}
63
62
  onChange={onChange}
64
63
  className={className}
65
64
  id={id}
@@ -71,6 +70,4 @@ export const MuiInputNumberFormat = React.memo(
71
70
  error={!isValid}
72
71
  />
73
72
  );
74
- },
75
- areEqual
76
- );
73
+ });
@@ -24,22 +24,23 @@
24
24
  */
25
25
  import React, { useState } from 'react';
26
26
  import { CellProps, WithClassname } from '@jsonforms/core';
27
- import { areEqual } from '@jsonforms/react';
28
- import Input, { InputProps } from '@material-ui/core/Input';
27
+ import {
28
+ IconButton,
29
+ Input,
30
+ InputAdornment,
31
+ InputBaseComponentProps,
32
+ InputProps,
33
+ useTheme
34
+ } from '@mui/material';
29
35
  import merge from 'lodash/merge';
30
- import IconButton from '@material-ui/core/IconButton';
31
- import InputAdornment from '@material-ui/core/InputAdornment';
32
- import Close from '@material-ui/icons/Close';
33
- import { useTheme } from '@material-ui/core/styles';
34
- import { JsonFormsTheme } from '../util';
35
- import { InputBaseComponentProps } from '@material-ui/core';
36
+ import Close from '@mui/icons-material/Close';
37
+ import { JsonFormsTheme, useDebouncedChange } from '../util';
36
38
 
37
39
  interface MuiTextInputProps {
38
40
  muiInputProps?: InputProps['inputProps'];
39
41
  inputComponent?: InputProps['inputComponent'];
40
42
  }
41
-
42
- export const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTextInputProps) => {
43
+ export const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTextInputProps) => {
43
44
  const [showAdornment, setShowAdornment] = useState(false);
44
45
  const {
45
46
  data,
@@ -63,23 +64,30 @@ export const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTe
63
64
  } else {
64
65
  inputProps = {};
65
66
  }
66
-
67
+
67
68
  inputProps = merge(inputProps, muiInputProps);
68
-
69
+
69
70
  if (appliedUiSchemaOptions.trim && maxLength !== undefined) {
70
71
  inputProps.size = maxLength;
71
- }
72
- const onChange = (ev: any) => handleChange(path, ev.target.value);
72
+ };
73
+
74
+ const [inputText, onChange, onClear] = useDebouncedChange(handleChange, '', data, path);
75
+ const onPointerEnter = () => setShowAdornment(true);
76
+ const onPointerLeave = () => setShowAdornment(false);
73
77
 
74
78
  const theme: JsonFormsTheme = useTheme();
75
- const inputDeleteBackgroundColor = theme.jsonforms?.input?.delete?.background || theme.palette.background.default;
79
+
80
+ const closeStyle = {
81
+ background: theme.jsonforms?.input?.delete?.background || theme.palette.background.default,
82
+ borderRadius: '50%'
83
+ };
76
84
 
77
85
  return (
78
86
  <Input
79
87
  type={
80
88
  appliedUiSchemaOptions.format === 'password' ? 'password' : 'text'
81
89
  }
82
- value={data || ''}
90
+ value={inputText}
83
91
  onChange={onChange}
84
92
  className={className}
85
93
  id={id}
@@ -89,8 +97,8 @@ export const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTe
89
97
  fullWidth={!appliedUiSchemaOptions.trim || maxLength === undefined}
90
98
  inputProps={inputProps}
91
99
  error={!isValid}
92
- onPointerEnter={() => setShowAdornment(true) }
93
- onPointerLeave={() => setShowAdornment(false) }
100
+ onPointerEnter={onPointerEnter}
101
+ onPointerLeave={onPointerLeave}
94
102
  endAdornment={
95
103
  <InputAdornment
96
104
  position='end'
@@ -103,13 +111,14 @@ export const MuiInputText = React.memo((props: CellProps & WithClassname & MuiTe
103
111
  >
104
112
  <IconButton
105
113
  aria-label='Clear input field'
106
- onClick={() => handleChange(path, undefined)}
114
+ onClick={onClear}
115
+ size='large'
107
116
  >
108
- <Close style={{background: inputDeleteBackgroundColor, borderRadius: '50%'}}/>
117
+ <Close style={closeStyle}/>
109
118
  </IconButton>
110
119
  </InputAdornment>
111
120
  }
112
121
  inputComponent={inputComponent}
113
122
  />
114
123
  );
115
- }, areEqual);
124
+ });
@@ -24,9 +24,9 @@
24
24
  */
25
25
  import React from 'react';
26
26
  import { CellProps, WithClassname } from '@jsonforms/core';
27
- import Input from '@material-ui/core/Input';
28
- import { areEqual } from '@jsonforms/react';
27
+ import { Input } from '@mui/material';
29
28
  import merge from 'lodash/merge';
29
+ import { useDebouncedChange } from '../util';
30
30
 
31
31
  export const MuiInputTime = React.memo((props: CellProps & WithClassname) => {
32
32
  const {
@@ -40,11 +40,13 @@ export const MuiInputTime = React.memo((props: CellProps & WithClassname) => {
40
40
  config
41
41
  } = props;
42
42
  const appliedUiSchemaOptions = merge({}, config, uischema.options);
43
+ const [inputValue, onChange] = useDebouncedChange(handleChange, '', data, path);
44
+
43
45
  return (
44
46
  <Input
45
47
  type='time'
46
- value={data || ''}
47
- onChange={ev => handleChange(path, ev.target.value)}
48
+ value={inputValue}
49
+ onChange={onChange}
48
50
  className={className}
49
51
  id={id}
50
52
  disabled={!enabled}
@@ -52,4 +54,4 @@ export const MuiInputTime = React.memo((props: CellProps & WithClassname) => {
52
54
  fullWidth={true}
53
55
  />
54
56
  );
55
- }, areEqual);
57
+ });