@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
@@ -0,0 +1,1489 @@
1
+ 'use strict';
2
+
3
+ Object.defineProperty(exports, '__esModule', { value: true });
4
+
5
+ var core = require('@jsonforms/core');
6
+ var React = require('react');
7
+ var react = require('@jsonforms/react');
8
+ var isEmpty = require('lodash/isEmpty');
9
+ var union = require('lodash/union');
10
+ var startCase = require('lodash/startCase');
11
+ var range = require('lodash/range');
12
+ var material = require('@mui/material');
13
+ var DeleteIcon = require('@mui/icons-material/Delete');
14
+ var ArrowDownward = require('@mui/icons-material/ArrowDownward');
15
+ var ArrowUpward = require('@mui/icons-material/ArrowUpward');
16
+ var styles$1 = require('@mui/material/styles');
17
+ var AddIcon = require('@mui/icons-material/Add');
18
+ var ErrorOutlineIcon = require('@mui/icons-material/ErrorOutline');
19
+ var merge = require('lodash/merge');
20
+ var omit = require('lodash/omit');
21
+ var dayjs = require('dayjs');
22
+ var customParsing = require('dayjs/plugin/customParseFormat');
23
+ var debounce = require('lodash/debounce');
24
+ var Close = require('@mui/icons-material/Close');
25
+ var map = require('lodash/map');
26
+ var lab = require('@mui/lab');
27
+ var AdapterDayjs = require('@mui/lab/AdapterDayjs');
28
+ var get = require('lodash/get');
29
+ var ExpandMoreIcon = require('@mui/icons-material/ExpandMore');
30
+ var Input = require('@mui/material/Input');
31
+
32
+ function _interopDefaultLegacy (e) { return e && typeof e === 'object' && 'default' in e ? e : { 'default': e }; }
33
+
34
+ var React__default = /*#__PURE__*/_interopDefaultLegacy(React);
35
+ var isEmpty__default = /*#__PURE__*/_interopDefaultLegacy(isEmpty);
36
+ var union__default = /*#__PURE__*/_interopDefaultLegacy(union);
37
+ var startCase__default = /*#__PURE__*/_interopDefaultLegacy(startCase);
38
+ var range__default = /*#__PURE__*/_interopDefaultLegacy(range);
39
+ var DeleteIcon__default = /*#__PURE__*/_interopDefaultLegacy(DeleteIcon);
40
+ var ArrowDownward__default = /*#__PURE__*/_interopDefaultLegacy(ArrowDownward);
41
+ var ArrowUpward__default = /*#__PURE__*/_interopDefaultLegacy(ArrowUpward);
42
+ var AddIcon__default = /*#__PURE__*/_interopDefaultLegacy(AddIcon);
43
+ var ErrorOutlineIcon__default = /*#__PURE__*/_interopDefaultLegacy(ErrorOutlineIcon);
44
+ var merge__default = /*#__PURE__*/_interopDefaultLegacy(merge);
45
+ var omit__default = /*#__PURE__*/_interopDefaultLegacy(omit);
46
+ var dayjs__default = /*#__PURE__*/_interopDefaultLegacy(dayjs);
47
+ var customParsing__default = /*#__PURE__*/_interopDefaultLegacy(customParsing);
48
+ var debounce__default = /*#__PURE__*/_interopDefaultLegacy(debounce);
49
+ var Close__default = /*#__PURE__*/_interopDefaultLegacy(Close);
50
+ var map__default = /*#__PURE__*/_interopDefaultLegacy(map);
51
+ var AdapterDayjs__default = /*#__PURE__*/_interopDefaultLegacy(AdapterDayjs);
52
+ var get__default = /*#__PURE__*/_interopDefaultLegacy(get);
53
+ var ExpandMoreIcon__default = /*#__PURE__*/_interopDefaultLegacy(ExpandMoreIcon);
54
+ var Input__default = /*#__PURE__*/_interopDefaultLegacy(Input);
55
+
56
+ /*! *****************************************************************************
57
+ Copyright (c) Microsoft Corporation.
58
+
59
+ Permission to use, copy, modify, and/or distribute this software for any
60
+ purpose with or without fee is hereby granted.
61
+
62
+ THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
63
+ REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
64
+ AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
65
+ INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
66
+ LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
67
+ OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
68
+ PERFORMANCE OF THIS SOFTWARE.
69
+ ***************************************************************************** */
70
+ /* global Reflect, Promise */
71
+
72
+ var extendStatics = function(d, b) {
73
+ extendStatics = Object.setPrototypeOf ||
74
+ ({ __proto__: [] } instanceof Array && function (d, b) { d.__proto__ = b; }) ||
75
+ function (d, b) { for (var p in b) if (Object.prototype.hasOwnProperty.call(b, p)) d[p] = b[p]; };
76
+ return extendStatics(d, b);
77
+ };
78
+
79
+ function __extends(d, b) {
80
+ if (typeof b !== "function" && b !== null)
81
+ throw new TypeError("Class extends value " + String(b) + " is not a constructor or null");
82
+ extendStatics(d, b);
83
+ function __() { this.constructor = d; }
84
+ d.prototype = b === null ? Object.create(b) : (__.prototype = b.prototype, new __());
85
+ }
86
+
87
+ var __assign = function() {
88
+ __assign = Object.assign || function __assign(t) {
89
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
90
+ s = arguments[i];
91
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p)) t[p] = s[p];
92
+ }
93
+ return t;
94
+ };
95
+ return __assign.apply(this, arguments);
96
+ };
97
+
98
+ function __rest(s, e) {
99
+ var t = {};
100
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)
101
+ t[p] = s[p];
102
+ if (s != null && typeof Object.getOwnPropertySymbols === "function")
103
+ for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {
104
+ if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))
105
+ t[p[i]] = s[p[i]];
106
+ }
107
+ return t;
108
+ }
109
+
110
+ var StyledTableCell = styles$1.styled(material.TableCell)({
111
+ borderBottom: 'none'
112
+ });
113
+ var NoBorderTableCell = function (_a) {
114
+ var children = _a.children, otherProps = __rest(_a, ["children"]);
115
+ return (React__default["default"].createElement(StyledTableCell, __assign({}, otherProps), children));
116
+ };
117
+
118
+ var StyledBadge = material.styled(material.Badge)(function (_a) {
119
+ var theme = _a.theme;
120
+ return ({
121
+ color: theme.palette.error.main
122
+ });
123
+ });
124
+ var ValidationIcon = function (_a) {
125
+ var errorMessages = _a.errorMessages, id = _a.id;
126
+ return (React__default["default"].createElement(material.Tooltip, { id: id, title: errorMessages },
127
+ React__default["default"].createElement(StyledBadge, { badgeContent: errorMessages.split('\n').length },
128
+ React__default["default"].createElement(ErrorOutlineIcon__default["default"], { color: 'inherit' }))));
129
+ };
130
+
131
+ var fixedCellSmall = {
132
+ paddingLeft: 0,
133
+ paddingRight: 0,
134
+ };
135
+ var TableToolbar = React__default["default"].memo(function (_a) {
136
+ var numColumns = _a.numColumns, errors = _a.errors, label = _a.label, path = _a.path, addItem = _a.addItem, schema = _a.schema, enabled = _a.enabled;
137
+ return (React__default["default"].createElement(material.TableRow, null,
138
+ React__default["default"].createElement(NoBorderTableCell, { colSpan: numColumns },
139
+ React__default["default"].createElement(material.Grid, { container: true, justifyContent: 'flex-start', alignItems: 'center', spacing: 2 },
140
+ React__default["default"].createElement(material.Grid, { item: true },
141
+ React__default["default"].createElement(material.Typography, { variant: 'h6' }, label)),
142
+ React__default["default"].createElement(material.Grid, { item: true },
143
+ React__default["default"].createElement(material.Hidden, { smUp: errors.length === 0 },
144
+ React__default["default"].createElement(material.Grid, { item: true },
145
+ React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors })))))),
146
+ enabled ? (React__default["default"].createElement(NoBorderTableCell, { align: 'right', style: fixedCellSmall },
147
+ React__default["default"].createElement(material.Tooltip, { id: 'tooltip-add', title: "Add to " + label, placement: 'bottom' },
148
+ React__default["default"].createElement(material.IconButton, { "aria-label": "Add to " + label, onClick: addItem(path, core.createDefaultValue(schema)), size: 'large' },
149
+ React__default["default"].createElement(AddIcon__default["default"], null))))) : null));
150
+ });
151
+
152
+ var styles = {
153
+ fixedCell: {
154
+ width: '150px',
155
+ height: '50px',
156
+ paddingLeft: 0,
157
+ paddingRight: 0,
158
+ textAlign: 'center'
159
+ },
160
+ fixedCellSmall: {
161
+ width: '50px',
162
+ height: '50px',
163
+ paddingLeft: 0,
164
+ paddingRight: 0,
165
+ textAlign: 'center'
166
+ }
167
+ };
168
+ var generateCells = function (Cell, schema, rowPath, enabled, cells) {
169
+ if (schema.type === 'object') {
170
+ return getValidColumnProps(schema).map(function (prop) {
171
+ var _a, _b, _c;
172
+ var cellPath = core.Paths.compose(rowPath, prop);
173
+ var props = {
174
+ propName: prop,
175
+ schema: schema,
176
+ title: (_c = (_b = (_a = schema.properties) === null || _a === void 0 ? void 0 : _a[prop]) === null || _b === void 0 ? void 0 : _b.title) !== null && _c !== void 0 ? _c : startCase__default["default"](prop),
177
+ rowPath: rowPath,
178
+ cellPath: cellPath,
179
+ enabled: enabled,
180
+ cells: cells
181
+ };
182
+ return React__default["default"].createElement(Cell, __assign({ key: cellPath }, props));
183
+ });
184
+ }
185
+ else {
186
+ var props = {
187
+ schema: schema,
188
+ rowPath: rowPath,
189
+ cellPath: rowPath,
190
+ enabled: enabled
191
+ };
192
+ return React__default["default"].createElement(Cell, __assign({ key: rowPath }, props));
193
+ }
194
+ };
195
+ var getValidColumnProps = function (scopedSchema) {
196
+ if (scopedSchema.type === 'object' && typeof scopedSchema.properties === 'object') {
197
+ return Object.keys(scopedSchema.properties).filter(function (prop) { return scopedSchema.properties[prop].type !== 'array'; });
198
+ }
199
+ return [''];
200
+ };
201
+ var EmptyTable = function (_a) {
202
+ var numColumns = _a.numColumns;
203
+ return (React__default["default"].createElement(material.TableRow, null,
204
+ React__default["default"].createElement(NoBorderTableCell, { colSpan: numColumns },
205
+ React__default["default"].createElement(material.Typography, { align: 'center' }, "No data"))));
206
+ };
207
+ var TableHeaderCell = React__default["default"].memo(function (_a) {
208
+ var title = _a.title;
209
+ return (React__default["default"].createElement(material.TableCell, null, title));
210
+ });
211
+ var ctxToNonEmptyCellProps = function (ctx, ownProps) {
212
+ var path = ownProps.rowPath +
213
+ (ownProps.schema.type === 'object' ? '.' + ownProps.propName : '');
214
+ var errors = core.formatErrorMessage(union__default["default"](core.errorsAt(path, ownProps.schema, function (p) { return p === path; })(ctx.core.errors).map(function (error) { return error.message; })));
215
+ return {
216
+ rowPath: ownProps.rowPath,
217
+ propName: ownProps.propName,
218
+ schema: ownProps.schema,
219
+ rootSchema: ctx.core.schema,
220
+ errors: errors,
221
+ path: path,
222
+ enabled: ownProps.enabled,
223
+ cells: ownProps.cells || ctx.cells,
224
+ renderers: ownProps.renderers || ctx.renderers
225
+ };
226
+ };
227
+ var controlWithoutLabel = function (scope) { return ({
228
+ type: 'Control',
229
+ scope: scope,
230
+ label: false
231
+ }); };
232
+ var NonEmptyCellComponent = React__default["default"].memo(function (_a) {
233
+ var path = _a.path, propName = _a.propName, schema = _a.schema, rootSchema = _a.rootSchema, errors = _a.errors, enabled = _a.enabled, renderers = _a.renderers, cells = _a.cells, isValid = _a.isValid;
234
+ return (React__default["default"].createElement(NoBorderTableCell, null,
235
+ schema.properties ? (React__default["default"].createElement(react.DispatchCell, { schema: core.Resolve.schema(schema, "#/properties/" + propName, rootSchema), uischema: controlWithoutLabel("#/properties/" + propName), path: path, enabled: enabled, renderers: renderers, cells: cells })) : (React__default["default"].createElement(react.DispatchCell, { schema: schema, uischema: controlWithoutLabel('#'), path: path, enabled: enabled, renderers: renderers, cells: cells })),
236
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, !isValid && errors)));
237
+ });
238
+ var NonEmptyCell = function (ownProps) {
239
+ var ctx = react.useJsonForms();
240
+ var emptyCellProps = ctxToNonEmptyCellProps(ctx, ownProps);
241
+ var isValid = isEmpty__default["default"](emptyCellProps.errors);
242
+ return React__default["default"].createElement(NonEmptyCellComponent, __assign({}, emptyCellProps, { isValid: isValid }));
243
+ };
244
+ var NonEmptyRowComponent = function (_a) {
245
+ var childPath = _a.childPath, schema = _a.schema, rowIndex = _a.rowIndex, openDeleteDialog = _a.openDeleteDialog, moveUpCreator = _a.moveUpCreator, moveDownCreator = _a.moveDownCreator, enableUp = _a.enableUp, enableDown = _a.enableDown, showSortButtons = _a.showSortButtons, enabled = _a.enabled, cells = _a.cells, path = _a.path;
246
+ var moveUp = React.useMemo(function () { return moveUpCreator(path, rowIndex); }, [moveUpCreator, path, rowIndex]);
247
+ var moveDown = React.useMemo(function () { return moveDownCreator(path, rowIndex); }, [moveDownCreator, path, rowIndex]);
248
+ return (React__default["default"].createElement(material.TableRow, { key: childPath, hover: true },
249
+ generateCells(NonEmptyCell, schema, childPath, enabled, cells),
250
+ enabled ? (React__default["default"].createElement(NoBorderTableCell, { style: showSortButtons ? styles.fixedCell : styles.fixedCellSmall },
251
+ React__default["default"].createElement(material.Grid, { container: true, direction: 'row', justifyContent: 'flex-end', alignItems: 'center' },
252
+ showSortButtons ? (React__default["default"].createElement(React.Fragment, null,
253
+ React__default["default"].createElement(material.Grid, { item: true },
254
+ React__default["default"].createElement(material.IconButton, { "aria-label": "Move up", onClick: moveUp, disabled: !enableUp, size: 'large' },
255
+ React__default["default"].createElement(ArrowUpward__default["default"], null))),
256
+ React__default["default"].createElement(material.Grid, { item: true },
257
+ React__default["default"].createElement(material.IconButton, { "aria-label": "Move down", onClick: moveDown, disabled: !enableDown, size: 'large' },
258
+ React__default["default"].createElement(ArrowDownward__default["default"], null))))) : null,
259
+ React__default["default"].createElement(material.Grid, { item: true },
260
+ React__default["default"].createElement(material.IconButton, { "aria-label": "Delete", onClick: function () { return openDeleteDialog(childPath, rowIndex); }, size: 'large' },
261
+ React__default["default"].createElement(DeleteIcon__default["default"], null)))))) : null));
262
+ };
263
+ var NonEmptyRow = React__default["default"].memo(NonEmptyRowComponent);
264
+ var TableRows = function (_a) {
265
+ var data = _a.data, path = _a.path, schema = _a.schema, openDeleteDialog = _a.openDeleteDialog, moveUp = _a.moveUp, moveDown = _a.moveDown, uischema = _a.uischema, config = _a.config, enabled = _a.enabled, cells = _a.cells;
266
+ var isEmptyTable = data === 0;
267
+ if (isEmptyTable) {
268
+ return React__default["default"].createElement(EmptyTable, { numColumns: getValidColumnProps(schema).length + 1 });
269
+ }
270
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
271
+ return (React__default["default"].createElement(React__default["default"].Fragment, null, range__default["default"](data).map(function (index) {
272
+ var childPath = core.Paths.compose(path, "" + index);
273
+ return (React__default["default"].createElement(NonEmptyRow, { key: childPath, childPath: childPath, rowIndex: index, schema: schema, openDeleteDialog: openDeleteDialog, moveUpCreator: moveUp, moveDownCreator: moveDown, enableUp: index !== 0, enableDown: index !== data - 1, showSortButtons: appliedUiSchemaOptions.showSortButtons, enabled: enabled, cells: cells, path: path }));
274
+ })));
275
+ };
276
+ var MaterialTableControl = (function (_super) {
277
+ __extends(MaterialTableControl, _super);
278
+ function MaterialTableControl() {
279
+ var _this = _super !== null && _super.apply(this, arguments) || this;
280
+ _this.addItem = function (path, value) { return _this.props.addItem(path, value); };
281
+ return _this;
282
+ }
283
+ MaterialTableControl.prototype.render = function () {
284
+ var _a = this.props, label = _a.label, path = _a.path, schema = _a.schema, rootSchema = _a.rootSchema, uischema = _a.uischema, errors = _a.errors, openDeleteDialog = _a.openDeleteDialog, visible = _a.visible, enabled = _a.enabled, cells = _a.cells;
285
+ var controlElement = uischema;
286
+ var isObjectSchema = schema.type === 'object';
287
+ var headerCells = isObjectSchema
288
+ ? generateCells(TableHeaderCell, schema, path, enabled, cells)
289
+ : undefined;
290
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
291
+ React__default["default"].createElement(material.Table, null,
292
+ React__default["default"].createElement(material.TableHead, null,
293
+ React__default["default"].createElement(TableToolbar, { errors: errors, label: label, addItem: this.addItem, numColumns: isObjectSchema ? headerCells.length : 1, path: path, uischema: controlElement, schema: schema, rootSchema: rootSchema, enabled: enabled }),
294
+ isObjectSchema && (React__default["default"].createElement(material.TableRow, null,
295
+ headerCells,
296
+ enabled ? React__default["default"].createElement(material.TableCell, null) : null))),
297
+ React__default["default"].createElement(material.TableBody, null,
298
+ React__default["default"].createElement(TableRows, __assign({ openDeleteDialog: openDeleteDialog }, this.props))))));
299
+ };
300
+ return MaterialTableControl;
301
+ }(React__default["default"].Component));
302
+
303
+ var DeleteDialog = React__default["default"].memo(function (_a) {
304
+ var open = _a.open, onClose = _a.onClose, onConfirm = _a.onConfirm, onCancel = _a.onCancel;
305
+ return (React__default["default"].createElement(material.Dialog, { open: open, keepMounted: true, onClose: onClose, "aria-labelledby": 'alert-dialog-confirmdelete-title', "aria-describedby": 'alert-dialog-confirmdelete-description' },
306
+ React__default["default"].createElement(material.DialogTitle, { id: 'alert-dialog-confirmdelete-title' }, 'Confirm Deletion'),
307
+ React__default["default"].createElement(material.DialogContent, null,
308
+ React__default["default"].createElement(material.DialogContentText, { id: 'alert-dialog-confirmdelete-description' }, "Are you sure you want to delete the selected entry?")),
309
+ React__default["default"].createElement(material.DialogActions, null,
310
+ React__default["default"].createElement(material.Button, { onClick: onCancel, color: 'primary' }, "No"),
311
+ React__default["default"].createElement(material.Button, { onClick: onConfirm, color: 'primary' }, "Yes"))));
312
+ });
313
+
314
+ var MaterialArrayControlRenderer = function (props) {
315
+ var _a = React.useState(false), open = _a[0], setOpen = _a[1];
316
+ var _b = React.useState(undefined), path = _b[0], setPath = _b[1];
317
+ var _c = React.useState(undefined), rowData = _c[0], setRowData = _c[1];
318
+ var removeItems = props.removeItems, visible = props.visible;
319
+ var openDeleteDialog = React.useCallback(function (p, rowIndex) {
320
+ setOpen(true);
321
+ setPath(p);
322
+ setRowData(rowIndex);
323
+ }, [setOpen, setPath, setRowData]);
324
+ var deleteCancel = React.useCallback(function () { return setOpen(false); }, [setOpen]);
325
+ var deleteConfirm = React.useCallback(function () {
326
+ var p = path.substring(0, path.lastIndexOf(('.')));
327
+ removeItems(p, [rowData])();
328
+ setOpen(false);
329
+ }, [setOpen, path, rowData]);
330
+ var deleteClose = React.useCallback(function () { return setOpen(false); }, [setOpen]);
331
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
332
+ React__default["default"].createElement(MaterialTableControl, __assign({}, props, { openDeleteDialog: openDeleteDialog })),
333
+ React__default["default"].createElement(DeleteDialog, { open: open, onCancel: deleteCancel, onConfirm: deleteConfirm, onClose: deleteClose })));
334
+ };
335
+ var MaterialArrayControlRenderer$1 = react.withJsonFormsArrayLayoutProps(MaterialArrayControlRenderer);
336
+
337
+ var MaterialObjectRenderer = function (_a) {
338
+ var renderers = _a.renderers, cells = _a.cells, uischemas = _a.uischemas, schema = _a.schema, label = _a.label, path = _a.path, visible = _a.visible, enabled = _a.enabled, uischema = _a.uischema, rootSchema = _a.rootSchema;
339
+ var detailUiSchema = React.useMemo(function () {
340
+ return core.findUISchema(uischemas, schema, uischema.scope, path, 'Group', uischema, rootSchema);
341
+ }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
342
+ if (isEmpty__default["default"](path)) {
343
+ detailUiSchema.type = 'VerticalLayout';
344
+ }
345
+ else {
346
+ detailUiSchema.label = label;
347
+ }
348
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
349
+ React__default["default"].createElement(react.JsonFormsDispatch, { visible: visible, enabled: enabled, schema: schema, uischema: detailUiSchema, path: path, renderers: renderers, cells: cells })));
350
+ };
351
+ var materialObjectControlTester = core.rankWith(2, core.isObjectControl);
352
+ var MaterialObjectRenderer$1 = react.withJsonFormsDetailProps(MaterialObjectRenderer);
353
+
354
+ var MaterialAllOfRenderer = function (_a) {
355
+ var schema = _a.schema, rootSchema = _a.rootSchema, visible = _a.visible, renderers = _a.renderers, cells = _a.cells, path = _a.path, uischemas = _a.uischemas, uischema = _a.uischema;
356
+ var _schema = core.resolveSubSchemas(schema, rootSchema, 'allOf');
357
+ var delegateUISchema = core.findMatchingUISchema(uischemas)(_schema, uischema.scope, path);
358
+ if (delegateUISchema) {
359
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
360
+ React__default["default"].createElement(react.JsonFormsDispatch, { schema: _schema, uischema: delegateUISchema, path: path, renderers: renderers, cells: cells })));
361
+ }
362
+ var allOfRenderInfos = core.createCombinatorRenderInfos(_schema.allOf, rootSchema, 'allOf', uischema, path, uischemas);
363
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible }, allOfRenderInfos.map(function (allOfRenderInfo, allOfIndex) { return (React__default["default"].createElement(react.JsonFormsDispatch, { key: allOfIndex, schema: allOfRenderInfo.schema, uischema: allOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells })); })));
364
+ };
365
+ var materialAllOfControlTester = core.rankWith(3, core.isAllOfControl);
366
+ var MaterialAllOfRenderer$1 = react.withJsonFormsAllOfProps(MaterialAllOfRenderer);
367
+
368
+ var isLayout = function (uischema) {
369
+ return uischema.hasOwnProperty('elements');
370
+ };
371
+ var CombinatorProperties = (function (_super) {
372
+ __extends(CombinatorProperties, _super);
373
+ function CombinatorProperties() {
374
+ return _super !== null && _super.apply(this, arguments) || this;
375
+ }
376
+ CombinatorProperties.prototype.render = function () {
377
+ var _a = this.props, schema = _a.schema, combinatorKeyword = _a.combinatorKeyword, path = _a.path;
378
+ var otherProps = omit__default["default"](schema, combinatorKeyword);
379
+ var foundUISchema = core.Generate.uiSchema(otherProps, 'VerticalLayout');
380
+ var isLayoutWithElements = false;
381
+ if (foundUISchema !== null && isLayout(foundUISchema)) {
382
+ isLayoutWithElements = foundUISchema.elements.length > 0;
383
+ }
384
+ if (isLayoutWithElements) {
385
+ return (React__default["default"].createElement(react.JsonFormsDispatch, { schema: otherProps, path: path, uischema: foundUISchema }));
386
+ }
387
+ return null;
388
+ };
389
+ return CombinatorProperties;
390
+ }(React__default["default"].Component));
391
+
392
+ var MaterialAnyOfRenderer = function (_a) {
393
+ var schema = _a.schema, rootSchema = _a.rootSchema, indexOfFittingSchema = _a.indexOfFittingSchema, visible = _a.visible, path = _a.path, renderers = _a.renderers, cells = _a.cells, uischema = _a.uischema, uischemas = _a.uischemas;
394
+ var _b = React.useState(indexOfFittingSchema || 0), selectedAnyOf = _b[0], setSelectedAnyOf = _b[1];
395
+ var handleChange = React.useCallback(function (_ev, value) { return setSelectedAnyOf(value); }, [setSelectedAnyOf]);
396
+ var anyOf = 'anyOf';
397
+ var _schema = core.resolveSubSchemas(schema, rootSchema, anyOf);
398
+ var anyOfRenderInfos = core.createCombinatorRenderInfos(_schema.anyOf, rootSchema, anyOf, uischema, path, uischemas);
399
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
400
+ React__default["default"].createElement(CombinatorProperties, { schema: _schema, combinatorKeyword: 'anyOf', path: path }),
401
+ React__default["default"].createElement(material.Tabs, { value: selectedAnyOf, onChange: handleChange }, anyOfRenderInfos.map(function (anyOfRenderInfo) { return (React__default["default"].createElement(material.Tab, { key: anyOfRenderInfo.label, label: anyOfRenderInfo.label })); })),
402
+ anyOfRenderInfos.map(function (anyOfRenderInfo, anyOfIndex) {
403
+ return selectedAnyOf === anyOfIndex && (React__default["default"].createElement(react.JsonFormsDispatch, { key: anyOfIndex, schema: anyOfRenderInfo.schema, uischema: anyOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells }));
404
+ })));
405
+ };
406
+ var materialAnyOfControlTester = core.rankWith(3, core.isAnyOfControl);
407
+ var MaterialAnyOfRenderer$1 = react.withJsonFormsAnyOfProps(MaterialAnyOfRenderer);
408
+
409
+ var MaterialOneOfRenderer = function (_a) {
410
+ var handleChange = _a.handleChange, schema = _a.schema, path = _a.path, renderers = _a.renderers, cells = _a.cells, rootSchema = _a.rootSchema, id = _a.id, visible = _a.visible, indexOfFittingSchema = _a.indexOfFittingSchema, uischema = _a.uischema, uischemas = _a.uischemas, data = _a.data;
411
+ var _b = React.useState(false), open = _b[0], setOpen = _b[1];
412
+ var _c = React.useState(indexOfFittingSchema || 0), selectedIndex = _c[0], setSelectedIndex = _c[1];
413
+ var _d = React.useState(0), newSelectedIndex = _d[0], setNewSelectedIndex = _d[1];
414
+ var handleClose = React.useCallback(function () { return setOpen(false); }, [setOpen]);
415
+ var cancel = React.useCallback(function () {
416
+ setOpen(false);
417
+ }, [setOpen]);
418
+ var _schema = core.resolveSubSchemas(schema, rootSchema, 'oneOf');
419
+ var oneOfRenderInfos = core.createCombinatorRenderInfos(_schema.oneOf, rootSchema, 'oneOf', uischema, path, uischemas);
420
+ var openNewTab = function (newIndex) {
421
+ handleChange(path, core.createDefaultValue(schema.oneOf[newIndex]));
422
+ setSelectedIndex(newIndex);
423
+ };
424
+ var confirm = React.useCallback(function () {
425
+ openNewTab(newSelectedIndex);
426
+ setOpen(false);
427
+ }, [handleChange, core.createDefaultValue, newSelectedIndex]);
428
+ var handleTabChange = React.useCallback(function (_event, newOneOfIndex) {
429
+ setNewSelectedIndex(newOneOfIndex);
430
+ if (isEmpty__default["default"](data)) {
431
+ openNewTab(newOneOfIndex);
432
+ }
433
+ else {
434
+ setOpen(true);
435
+ }
436
+ }, [setOpen, setSelectedIndex, data]);
437
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
438
+ React__default["default"].createElement(CombinatorProperties, { schema: _schema, combinatorKeyword: 'oneOf', path: path }),
439
+ React__default["default"].createElement(material.Tabs, { value: selectedIndex, onChange: handleTabChange }, oneOfRenderInfos.map(function (oneOfRenderInfo) { return React__default["default"].createElement(material.Tab, { key: oneOfRenderInfo.label, label: oneOfRenderInfo.label }); })),
440
+ oneOfRenderInfos.map(function (oneOfRenderInfo, oneOfIndex) { return (selectedIndex === oneOfIndex && (React__default["default"].createElement(react.JsonFormsDispatch, { key: oneOfIndex, schema: oneOfRenderInfo.schema, uischema: oneOfRenderInfo.uischema, path: path, renderers: renderers, cells: cells }))); }),
441
+ React__default["default"].createElement(material.Dialog, { open: open, onClose: handleClose, "aria-labelledby": 'alert-dialog-title', "aria-describedby": 'alert-dialog-description' },
442
+ React__default["default"].createElement(material.DialogTitle, { id: 'alert-dialog-title' }, 'Clear form?'),
443
+ React__default["default"].createElement(material.DialogContent, null,
444
+ React__default["default"].createElement(material.DialogContentText, { id: 'alert-dialog-description' }, "Your data will be cleared if you navigate away from this tab. Do you want to proceed?")),
445
+ React__default["default"].createElement(material.DialogActions, null,
446
+ React__default["default"].createElement(material.Button, { onClick: cancel, color: 'primary' }, "No"),
447
+ React__default["default"].createElement(material.Button, { onClick: confirm, color: 'primary', autoFocus: true, id: "oneOf-" + id + "-confirm-yes" }, "Yes")))));
448
+ };
449
+ var materialOneOfControlTester = core.rankWith(3, core.isOneOfControl);
450
+ var MaterialOneOfRenderer$1 = react.withJsonFormsOneOfProps(MaterialOneOfRenderer);
451
+
452
+ var MuiCheckbox = React__default["default"].memo(function (props) {
453
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
454
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
455
+ var inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };
456
+ var checked = !!data;
457
+ return (React__default["default"].createElement(material.Checkbox, { checked: checked, onChange: function (_ev, isChecked) { return handleChange(path, isChecked); }, className: className, id: id, disabled: !enabled, inputProps: inputProps }));
458
+ });
459
+
460
+ var MuiSelect = React__default["default"].memo(function (props) {
461
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, options = props.options, config = props.config;
462
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
463
+ return (React__default["default"].createElement(material.Select, { className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, value: data !== undefined ? data : '', onChange: function (ev) { return handleChange(path, ev.target.value); }, fullWidth: true, variant: 'standard' }, [React__default["default"].createElement(material.MenuItem, { value: '', key: 'empty' })].concat(options.map(function (optionValue) { return (React__default["default"].createElement(material.MenuItem, { value: optionValue.value, key: optionValue.value }, optionValue.label)); }))));
464
+ });
465
+
466
+ dayjs__default["default"].extend(customParsing__default["default"]);
467
+ var createOnChangeHandler = function (path, handleChange, saveFormat) { return function (time) {
468
+ if (!time) {
469
+ handleChange(path, undefined);
470
+ return;
471
+ }
472
+ var result = dayjs__default["default"](time).format(saveFormat);
473
+ handleChange(path, result === 'Invalid Date' ? undefined : result);
474
+ }; };
475
+ var getData = function (data, saveFormat) {
476
+ if (!data) {
477
+ return null;
478
+ }
479
+ var dayjsData = dayjs__default["default"](data, saveFormat);
480
+ if (dayjsData.toString() === 'Invalid Date') {
481
+ return null;
482
+ }
483
+ return dayjsData;
484
+ };
485
+
486
+ var renderLayoutElements = function (elements, schema, path, enabled, renderers, cells) {
487
+ return elements.map(function (child, index) { return (React__default["default"].createElement(material.Grid, { item: true, key: path + "-" + index, xs: true },
488
+ React__default["default"].createElement(react.JsonFormsDispatch, { uischema: child, schema: schema, path: path, enabled: enabled, renderers: renderers, cells: cells }))); });
489
+ };
490
+ var MaterialLayoutRendererComponent = function (_a) {
491
+ var visible = _a.visible, elements = _a.elements, schema = _a.schema, path = _a.path, enabled = _a.enabled, direction = _a.direction, renderers = _a.renderers, cells = _a.cells;
492
+ if (isEmpty__default["default"](elements)) {
493
+ return null;
494
+ }
495
+ else {
496
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
497
+ React__default["default"].createElement(material.Grid, { container: true, direction: direction, spacing: direction === 'row' ? 2 : 0 }, renderLayoutElements(elements, schema, path, enabled, renderers, cells))));
498
+ }
499
+ };
500
+ var MaterialLayoutRenderer = React__default["default"].memo(MaterialLayoutRendererComponent);
501
+ var withAjvProps = function (Component) {
502
+ return function (props) {
503
+ var ctx = react.useJsonForms();
504
+ var ajv = core.getAjv({ jsonforms: __assign({}, ctx) });
505
+ return (React__default["default"].createElement(Component, __assign({}, props, { ajv: ajv })));
506
+ };
507
+ };
508
+
509
+ var eventToValue$2 = function (ev) { return ev.target.value; };
510
+ var useDebouncedChange = function (handleChange, defaultValue, data, path, eventToValueFunction, timeout) {
511
+ if (eventToValueFunction === void 0) { eventToValueFunction = eventToValue$2; }
512
+ if (timeout === void 0) { timeout = 300; }
513
+ var _a = React.useState(data !== null && data !== void 0 ? data : defaultValue), input = _a[0], setInput = _a[1];
514
+ React.useEffect(function () {
515
+ setInput(data !== null && data !== void 0 ? data : defaultValue);
516
+ }, [data]);
517
+ var debouncedUpdate = React.useCallback(debounce__default["default"](function (newValue) { return handleChange(path, newValue); }, timeout), [handleChange, path, timeout]);
518
+ var onChange = React.useCallback(function (ev) {
519
+ var newValue = eventToValueFunction(ev);
520
+ setInput(newValue !== null && newValue !== void 0 ? newValue : defaultValue);
521
+ debouncedUpdate(newValue);
522
+ }, [debouncedUpdate, eventToValueFunction]);
523
+ var onClear = React.useCallback(function () { setInput(defaultValue); handleChange(path, undefined); }, [defaultValue, handleChange, path]);
524
+ return [input, onChange, onClear];
525
+ };
526
+
527
+ var useFocus = function () {
528
+ var _a = React.useState(false), focused = _a[0], setFocused = _a[1];
529
+ var onFocus = React.useCallback(function () { return setFocused(true); }, []);
530
+ var onBlur = React.useCallback(function () { return setFocused(false); }, []);
531
+ return [focused, onFocus, onBlur];
532
+ };
533
+
534
+ var toNumber$1 = function (value) {
535
+ return value === '' ? undefined : parseInt(value, 10);
536
+ };
537
+ var eventToValue$1 = function (ev) { return toNumber$1(ev.target.value); };
538
+ var MuiInputInteger = React__default["default"].memo(function (props) {
539
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
540
+ var inputProps = { step: '1' };
541
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
542
+ var _a = useDebouncedChange(handleChange, '', data, path, eventToValue$1), inputValue = _a[0], onChange = _a[1];
543
+ return (React__default["default"].createElement(material.Input, { type: 'number', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, inputProps: inputProps, fullWidth: true }));
544
+ });
545
+
546
+ var toNumber = function (value) {
547
+ return value === '' ? undefined : parseFloat(value);
548
+ };
549
+ var eventToValue = function (ev) { return toNumber(ev.target.value); };
550
+ var MuiInputNumber = React__default["default"].memo(function (props) {
551
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
552
+ var inputProps = { step: '0.1' };
553
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
554
+ var _a = useDebouncedChange(handleChange, '', data, path, eventToValue), inputValue = _a[0], onChange = _a[1];
555
+ return (React__default["default"].createElement(material.Input, { type: 'number', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, inputProps: inputProps, fullWidth: true }));
556
+ });
557
+
558
+ var MuiInputNumberFormat = React__default["default"].memo(function (props) {
559
+ var className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, isValid = props.isValid, path = props.path, handleChange = props.handleChange, schema = props.schema, config = props.config;
560
+ var maxLength = schema.maxLength;
561
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
562
+ var inputProps;
563
+ if (appliedUiSchemaOptions.restrict) {
564
+ inputProps = { maxLength: maxLength };
565
+ }
566
+ else {
567
+ inputProps = {};
568
+ }
569
+ var formattedNumber = props.toFormatted(props.data);
570
+ var validStringNumber = React.useCallback(function (ev) { return props.fromFormatted(ev.currentTarget.value); }, [props.fromFormatted]);
571
+ var _a = useDebouncedChange(handleChange, '', formattedNumber, path, validStringNumber), inputValue = _a[0], onChange = _a[1];
572
+ return (React__default["default"].createElement(material.Input, { type: 'text', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, multiline: appliedUiSchemaOptions.multi, fullWidth: !appliedUiSchemaOptions.trim || maxLength === undefined, inputProps: inputProps, error: !isValid }));
573
+ });
574
+
575
+ var MuiInputText = React__default["default"].memo(function (props) {
576
+ var _a, _b, _c;
577
+ var _d = React.useState(false), showAdornment = _d[0], setShowAdornment = _d[1];
578
+ var data = props.data, config = props.config, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, isValid = props.isValid, path = props.path, handleChange = props.handleChange, schema = props.schema, muiInputProps = props.muiInputProps, inputComponent = props.inputComponent;
579
+ var maxLength = schema.maxLength;
580
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
581
+ var inputProps;
582
+ if (appliedUiSchemaOptions.restrict) {
583
+ inputProps = { maxLength: maxLength };
584
+ }
585
+ else {
586
+ inputProps = {};
587
+ }
588
+ inputProps = merge__default["default"](inputProps, muiInputProps);
589
+ if (appliedUiSchemaOptions.trim && maxLength !== undefined) {
590
+ inputProps.size = maxLength;
591
+ }
592
+ var _e = useDebouncedChange(handleChange, '', data, path), inputText = _e[0], onChange = _e[1], onClear = _e[2];
593
+ var onPointerEnter = function () { return setShowAdornment(true); };
594
+ var onPointerLeave = function () { return setShowAdornment(false); };
595
+ var theme = material.useTheme();
596
+ var closeStyle = {
597
+ background: ((_c = (_b = (_a = theme.jsonforms) === null || _a === void 0 ? void 0 : _a.input) === null || _b === void 0 ? void 0 : _b.delete) === null || _c === void 0 ? void 0 : _c.background) || theme.palette.background.default,
598
+ borderRadius: '50%'
599
+ };
600
+ return (React__default["default"].createElement(material.Input, { type: appliedUiSchemaOptions.format === 'password' ? 'password' : 'text', value: inputText, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, multiline: appliedUiSchemaOptions.multi, fullWidth: !appliedUiSchemaOptions.trim || maxLength === undefined, inputProps: inputProps, error: !isValid, onPointerEnter: onPointerEnter, onPointerLeave: onPointerLeave, endAdornment: React__default["default"].createElement(material.InputAdornment, { position: 'end', style: {
601
+ display: !showAdornment || !enabled || data === undefined ? 'none' : 'flex',
602
+ position: 'absolute',
603
+ right: 0
604
+ } },
605
+ React__default["default"].createElement(material.IconButton, { "aria-label": 'Clear input field', onClick: onClear, size: 'large' },
606
+ React__default["default"].createElement(Close__default["default"], { style: closeStyle }))), inputComponent: inputComponent }));
607
+ });
608
+
609
+ var MuiInputTime = React__default["default"].memo(function (props) {
610
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
611
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
612
+ var _a = useDebouncedChange(handleChange, '', data, path), inputValue = _a[0], onChange = _a[1];
613
+ return (React__default["default"].createElement(material.Input, { type: 'time', value: inputValue, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, fullWidth: true }));
614
+ });
615
+
616
+ var MaterialEnumArrayRenderer = function (_a) {
617
+ var schema = _a.schema, visible = _a.visible, errors = _a.errors, path = _a.path, options = _a.options, data = _a.data, addItem = _a.addItem, removeItem = _a.removeItem; _a.handleChange; var otherProps = __rest(_a, ["schema", "visible", "errors", "path", "options", "data", "addItem", "removeItem", "handleChange"]);
618
+ return (React__default["default"].createElement(material.Hidden, { xlUp: !visible },
619
+ React__default["default"].createElement(material.FormControl, { component: 'fieldset' },
620
+ React__default["default"].createElement(material.FormGroup, { row: true }, options.map(function (option, index) {
621
+ var optionPath = core.Paths.compose(path, "" + index);
622
+ var checkboxValue = (data === null || data === void 0 ? void 0 : data.includes(option.value))
623
+ ? option.value
624
+ : undefined;
625
+ return (React__default["default"].createElement(material.FormControlLabel, { id: option.value, key: option.value, control: React__default["default"].createElement(MuiCheckbox, __assign({ key: 'checkbox-' + option.value, isValid: isEmpty__default["default"](errors), path: optionPath, handleChange: function (_childPath, newValue) {
626
+ return newValue
627
+ ? addItem(path, option.value)
628
+ : removeItem(path, option.value);
629
+ }, data: checkboxValue, errors: errors, schema: schema, visible: visible }, otherProps)), label: startCase__default["default"](option.label) }));
630
+ })),
631
+ React__default["default"].createElement(material.FormHelperText, { error: true }, errors))));
632
+ };
633
+ var hasOneOfItems = function (schema) {
634
+ return schema.oneOf !== undefined &&
635
+ schema.oneOf.length > 0 &&
636
+ schema.oneOf.every(function (entry) {
637
+ return entry.const !== undefined;
638
+ });
639
+ };
640
+ var hasEnumItems = function (schema) {
641
+ return schema.type === 'string' && schema.enum !== undefined;
642
+ };
643
+ var materialEnumArrayRendererTester = core.rankWith(5, core.and(core.uiTypeIs('Control'), core.and(core.schemaMatches(function (schema) {
644
+ return core.hasType(schema, 'array') &&
645
+ !Array.isArray(schema.items) &&
646
+ schema.uniqueItems === true;
647
+ }), core.schemaSubPathMatches('items', function (schema) {
648
+ return hasOneOfItems(schema) || hasEnumItems(schema);
649
+ }))));
650
+ var MaterialEnumArrayRenderer$1 = react.withJsonFormsMultiEnumProps(MaterialEnumArrayRenderer);
651
+
652
+ var materialArrayControlTester = core.rankWith(3, core.or(core.isObjectArrayControl, core.isPrimitiveArrayControl));
653
+
654
+ var materialLabelRendererTester = core.rankWith(1, core.uiTypeIs('Label'));
655
+ var MaterialLabelRenderer = function (_a) {
656
+ var uischema = _a.uischema, visible = _a.visible;
657
+ var labelElement = uischema;
658
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
659
+ React__default["default"].createElement(material.Typography, { variant: 'h6' }, labelElement.text !== undefined && labelElement.text !== null && labelElement.text)));
660
+ };
661
+ var MaterialLabelRenderer$1 = react.withJsonFormsLayoutProps(MaterialLabelRenderer);
662
+
663
+ var ArrayLayoutToolbar = React__default["default"].memo(function (_a) {
664
+ var label = _a.label, errors = _a.errors, addItem = _a.addItem, path = _a.path, createDefault = _a.createDefault;
665
+ return (React__default["default"].createElement(material.Toolbar, { disableGutters: true },
666
+ React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center', justifyContent: 'space-between' },
667
+ React__default["default"].createElement(material.Grid, { item: true },
668
+ React__default["default"].createElement(material.Typography, { variant: 'h6' }, label)),
669
+ React__default["default"].createElement(material.Hidden, { smUp: errors.length === 0 },
670
+ React__default["default"].createElement(material.Grid, { item: true },
671
+ React__default["default"].createElement(ValidationIcon, { id: 'tooltip-validation', errorMessages: errors }))),
672
+ React__default["default"].createElement(material.Grid, { item: true },
673
+ React__default["default"].createElement(material.Grid, { container: true },
674
+ React__default["default"].createElement(material.Grid, { item: true },
675
+ React__default["default"].createElement(material.Tooltip, { id: 'tooltip-add', title: "Add to " + label, placement: 'bottom' },
676
+ React__default["default"].createElement(material.IconButton, { "aria-label": "Add to " + label, onClick: addItem(path, createDefault()), size: 'large' },
677
+ React__default["default"].createElement(AddIcon__default["default"], null)))))))));
678
+ });
679
+
680
+ var ListWithDetailMasterItem = function (_a) {
681
+ var index = _a.index, childLabel = _a.childLabel, selected = _a.selected, handleSelect = _a.handleSelect, removeItem = _a.removeItem, path = _a.path;
682
+ return (React__default["default"].createElement(material.ListItem, { button: true, selected: selected, onClick: handleSelect(index) },
683
+ React__default["default"].createElement(material.ListItemAvatar, null,
684
+ React__default["default"].createElement(material.Avatar, { "aria-label": 'Index' }, index + 1)),
685
+ React__default["default"].createElement(material.ListItemText, { primary: childLabel }),
686
+ React__default["default"].createElement(material.ListItemSecondaryAction, null,
687
+ React__default["default"].createElement(material.IconButton, { "aria-label": 'Delete', onClick: removeItem(path, index), size: 'large' },
688
+ React__default["default"].createElement(DeleteIcon__default["default"], null)))));
689
+ };
690
+ var ListWithDetailMasterItem$1 = react.withJsonFormsMasterListItemProps(ListWithDetailMasterItem);
691
+
692
+ var MaterialListWithDetailRenderer = function (_a) {
693
+ var uischemas = _a.uischemas, schema = _a.schema, uischema = _a.uischema, path = _a.path, errors = _a.errors, visible = _a.visible, label = _a.label, required = _a.required, removeItems = _a.removeItems, addItem = _a.addItem, data = _a.data, renderers = _a.renderers, cells = _a.cells, config = _a.config;
694
+ var _b = React.useState(undefined), selectedIndex = _b[0], setSelectedIndex = _b[1];
695
+ var handleRemoveItem = React.useCallback(function (p, value) { return function () {
696
+ removeItems(p, [value])();
697
+ if (selectedIndex === value) {
698
+ setSelectedIndex(undefined);
699
+ }
700
+ else if (selectedIndex > value) {
701
+ setSelectedIndex(selectedIndex - 1);
702
+ }
703
+ }; }, [removeItems, setSelectedIndex]);
704
+ var handleListItemClick = React.useCallback(function (index) { return function () { return setSelectedIndex(index); }; }, [setSelectedIndex]);
705
+ var handleCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(schema); }, [core.createDefaultValue]);
706
+ var foundUISchema = React.useMemo(function () {
707
+ return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema);
708
+ }, [uischemas, schema, uischema.scope, path, uischema]);
709
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
710
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
711
+ React__default["default"].createElement(ArrayLayoutToolbar, { label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: handleCreateDefaultValue }),
712
+ React__default["default"].createElement(material.Grid, { container: true, direction: 'row', spacing: 2 },
713
+ React__default["default"].createElement(material.Grid, { item: true, xs: 3 },
714
+ React__default["default"].createElement(material.List, null, data > 0 ? (map__default["default"](range__default["default"](data), function (index) { return (React__default["default"].createElement(ListWithDetailMasterItem$1, { index: index, path: path, schema: schema, handleSelect: handleListItemClick, removeItem: handleRemoveItem, selected: selectedIndex === index, key: index })); })) : (React__default["default"].createElement("p", null, "No data")))),
715
+ React__default["default"].createElement(material.Grid, { item: true, xs: true }, selectedIndex !== undefined ? (React__default["default"].createElement(react.JsonFormsDispatch, { renderers: renderers, cells: cells, visible: visible, schema: schema, uischema: foundUISchema, path: core.composePaths(path, "" + selectedIndex) })) : (React__default["default"].createElement(material.Typography, { variant: 'h6' }, "No Selection"))))));
716
+ };
717
+ var materialListWithDetailTester = core.rankWith(4, core.and(core.uiTypeIs('ListWithDetail'), core.isObjectArray));
718
+ var MaterialListWithDetailRenderer$1 = react.withJsonFormsArrayLayoutProps(MaterialListWithDetailRenderer);
719
+
720
+ var MaterialBooleanControl = function (_a) {
721
+ var data = _a.data, visible = _a.visible, label = _a.label, id = _a.id, enabled = _a.enabled, uischema = _a.uischema, schema = _a.schema, rootSchema = _a.rootSchema, handleChange = _a.handleChange, errors = _a.errors, path = _a.path, config = _a.config;
722
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
723
+ React__default["default"].createElement(material.FormControlLabel, { label: label, id: id, control: React__default["default"].createElement(MuiCheckbox, { id: id + "-input", isValid: isEmpty__default["default"](errors), data: data, enabled: enabled, visible: visible, path: path, uischema: uischema, schema: schema, rootSchema: rootSchema, handleChange: handleChange, errors: errors, config: config }) })));
724
+ };
725
+ var materialBooleanControlTester = core.rankWith(2, core.isBooleanControl);
726
+ var MaterialBooleanControl$1 = react.withJsonFormsControlProps(MaterialBooleanControl);
727
+
728
+ var MuiToggle = React__default["default"].memo(function (props) {
729
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
730
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
731
+ var inputProps = { autoFocus: !!appliedUiSchemaOptions.focus };
732
+ var checked = !!data;
733
+ return (React__default["default"].createElement(material.Switch, { checked: checked, onChange: function (_ev, isChecked) { return handleChange(path, isChecked); }, className: className, id: id, disabled: !enabled, inputProps: inputProps }));
734
+ });
735
+
736
+ var MaterialBooleanToggleControl = function (_a) {
737
+ var data = _a.data, visible = _a.visible, label = _a.label, id = _a.id, enabled = _a.enabled, uischema = _a.uischema, schema = _a.schema, rootSchema = _a.rootSchema, handleChange = _a.handleChange, errors = _a.errors, path = _a.path, config = _a.config;
738
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
739
+ React__default["default"].createElement(material.FormControlLabel, { label: label, id: id, control: React__default["default"].createElement(MuiToggle, { id: id + "-input", isValid: isEmpty__default["default"](errors), data: data, enabled: enabled, visible: visible, path: path, uischema: uischema, schema: schema, rootSchema: rootSchema, handleChange: handleChange, errors: errors, config: config }) })));
740
+ };
741
+ var materialBooleanToggleControlTester = core.rankWith(3, core.and(core.isBooleanControl, core.optionIs('toggle', true)));
742
+ var MaterialBooleanToggleControl$1 = react.withJsonFormsControlProps(MaterialBooleanToggleControl);
743
+
744
+ var MaterialInputControl = function (props) {
745
+ var _a = useFocus(), focused = _a[0], onFocus = _a[1], onBlur = _a[2];
746
+ var id = props.id, description = props.description, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, required = props.required, config = props.config, input = props.input;
747
+ var isValid = errors.length === 0;
748
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
749
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
750
+ var firstFormHelperText = showDescription
751
+ ? description
752
+ : !isValid
753
+ ? errors
754
+ : null;
755
+ var secondFormHelperText = showDescription && !isValid ? errors : null;
756
+ var InnerComponent = input;
757
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
758
+ React__default["default"].createElement(material.FormControl, { fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur, id: id, variant: 'standard' },
759
+ React__default["default"].createElement(material.InputLabel, { htmlFor: id + '-input', error: !isValid, required: core.showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk) }, label),
760
+ React__default["default"].createElement(InnerComponent, __assign({}, props, { id: id + '-input', isValid: isValid, visible: visible })),
761
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
762
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
763
+ };
764
+
765
+ var MuiAutocomplete = function (props) {
766
+ var _a;
767
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, options = props.options, config = props.config, getOptionLabel = props.getOptionLabel, renderOption = props.renderOption, filterOptions = props.filterOptions;
768
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
769
+ var _b = React__default["default"].useState(data !== null && data !== void 0 ? data : ''), inputValue = _b[0], setInputValue = _b[1];
770
+ var findOption = (_a = options.find(function (o) { return o.value === data; })) !== null && _a !== void 0 ? _a : null;
771
+ return (React__default["default"].createElement(material.Autocomplete, { className: className, id: id, disabled: !enabled, value: findOption, onChange: function (_event, newValue) {
772
+ handleChange(path, newValue === null || newValue === void 0 ? void 0 : newValue.value);
773
+ }, inputValue: inputValue, onInputChange: function (_event, newInputValue) {
774
+ setInputValue(newInputValue);
775
+ }, autoHighlight: true, autoSelect: true, autoComplete: true, fullWidth: true, options: options, getOptionLabel: getOptionLabel || (function (option) { return option === null || option === void 0 ? void 0 : option.label; }), style: { marginTop: 16 }, renderInput: function (params) { return (React__default["default"].createElement(material.Input, { style: { width: '100%' }, type: 'text', inputProps: params.inputProps, inputRef: params.InputProps.ref, autoFocus: appliedUiSchemaOptions.focus, disabled: !enabled })); }, renderOption: renderOption, filterOptions: filterOptions }));
776
+ };
777
+
778
+ var MaterialEnumControl = function (props) {
779
+ var config = props.config, uischema = props.uischema;
780
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
781
+ return (React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: appliedUiSchemaOptions.autocomplete === false ? MuiSelect : MuiAutocomplete })));
782
+ };
783
+ var materialEnumControlTester = core.rankWith(2, core.isEnumControl);
784
+ var MaterialEnumControl$1 = react.withJsonFormsEnumProps(MaterialEnumControl);
785
+
786
+ var MaterialNativeControl = function (props) {
787
+ var _a;
788
+ var _b = useFocus(), focused = _b[0], onFocus = _b[1], onBlur = _b[2];
789
+ var id = props.id, errors = props.errors, label = props.label, schema = props.schema, description = props.description, enabled = props.enabled, visible = props.visible, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
790
+ var isValid = errors.length === 0;
791
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
792
+ var _c = useDebouncedChange(handleChange, '', data, path), inputValue = _c[0], onChange = _c[1];
793
+ var fieldType = (_a = appliedUiSchemaOptions.format) !== null && _a !== void 0 ? _a : schema.format;
794
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
795
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
796
+ React__default["default"].createElement(material.TextField, { required: core.showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk), id: id + '-input', label: label, type: fieldType, error: !isValid, disabled: !enabled, fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur, helperText: !isValid ? errors : showDescription ? description : null, InputLabelProps: { shrink: true }, value: inputValue, onChange: onChange })));
797
+ };
798
+ var materialNativeControlTester = core.rankWith(2, core.or(core.isDateControl, core.isTimeControl));
799
+ var MaterialNativeControl$1 = react.withJsonFormsControlProps(MaterialNativeControl);
800
+
801
+ var MaterialDateControl = function (props) {
802
+ var _a, _b;
803
+ var _c = useFocus(), focused = _c[0], onFocus = _c[1], onBlur = _c[2];
804
+ var description = props.description, id = props.id, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, enabled = props.enabled, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
805
+ var isValid = errors.length === 0;
806
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
807
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
808
+ var format = (_a = appliedUiSchemaOptions.dateFormat) !== null && _a !== void 0 ? _a : 'YYYY-MM-DD';
809
+ var saveFormat = (_b = appliedUiSchemaOptions.dateSaveFormat) !== null && _b !== void 0 ? _b : 'YYYY-MM-DD';
810
+ var firstFormHelperText = showDescription
811
+ ? description
812
+ : !isValid
813
+ ? errors
814
+ : null;
815
+ var secondFormHelperText = showDescription && !isValid ? errors : null;
816
+ var onChange = React.useMemo(function () { return createOnChangeHandler(path, handleChange, saveFormat); }, [path, handleChange, saveFormat]);
817
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
818
+ React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
819
+ React__default["default"].createElement(lab.DatePicker, { label: label, value: getData(data, saveFormat), clearable: true, onChange: onChange, inputFormat: format, disableMaskedInput: true, views: appliedUiSchemaOptions.views, disabled: !enabled, cancelText: appliedUiSchemaOptions.cancelLabel, clearText: appliedUiSchemaOptions.clearLabel, okText: appliedUiSchemaOptions.okLabel, renderInput: function (params) { return (React__default["default"].createElement(material.TextField, __assign({}, params, { id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
820
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
821
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
822
+ };
823
+ var materialDateControlTester = core.rankWith(4, core.isDateControl);
824
+ var MaterialDateControl$1 = react.withJsonFormsControlProps(MaterialDateControl);
825
+
826
+ var MaterialDateTimeControl = function (props) {
827
+ var _a, _b;
828
+ var _c = useFocus(), focused = _c[0], onFocus = _c[1], onBlur = _c[2];
829
+ var id = props.id, description = props.description, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, enabled = props.enabled, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
830
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
831
+ var isValid = errors.length === 0;
832
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
833
+ var format = (_a = appliedUiSchemaOptions.dateTimeFormat) !== null && _a !== void 0 ? _a : 'YYYY-MM-DD HH:mm';
834
+ var saveFormat = (_b = appliedUiSchemaOptions.dateTimeSaveFormat) !== null && _b !== void 0 ? _b : undefined;
835
+ var firstFormHelperText = showDescription
836
+ ? description
837
+ : !isValid
838
+ ? errors
839
+ : null;
840
+ var secondFormHelperText = showDescription && !isValid ? errors : null;
841
+ var onChange = React.useMemo(function () { return createOnChangeHandler(path, handleChange, saveFormat); }, [path, handleChange, saveFormat]);
842
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
843
+ React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
844
+ React__default["default"].createElement(lab.DateTimePicker, { label: label, value: getData(data, saveFormat), clearable: true, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: appliedUiSchemaOptions.views, disabled: !enabled, cancelText: appliedUiSchemaOptions.cancelLabel, clearText: appliedUiSchemaOptions.clearLabel, okText: appliedUiSchemaOptions.okLabel, renderInput: function (params) { return (React__default["default"].createElement(material.TextField, __assign({}, params, { id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
845
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
846
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
847
+ };
848
+ var materialDateTimeControlTester = core.rankWith(2, core.isDateTimeControl);
849
+ var MaterialDateTimeControl$1 = react.withJsonFormsControlProps(MaterialDateTimeControl);
850
+
851
+ var MaterialTimeControl = function (props) {
852
+ var _a, _b;
853
+ var _c = useFocus(), focused = _c[0], onFocus = _c[1], onBlur = _c[2];
854
+ var id = props.id, description = props.description, errors = props.errors, label = props.label, uischema = props.uischema, visible = props.visible, enabled = props.enabled, required = props.required, path = props.path, handleChange = props.handleChange, data = props.data, config = props.config;
855
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
856
+ var isValid = errors.length === 0;
857
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
858
+ var format = (_a = appliedUiSchemaOptions.timeFormat) !== null && _a !== void 0 ? _a : 'HH:mm';
859
+ var saveFormat = (_b = appliedUiSchemaOptions.timeSaveFormat) !== null && _b !== void 0 ? _b : 'HH:mm:ss';
860
+ var firstFormHelperText = showDescription
861
+ ? description
862
+ : !isValid
863
+ ? errors
864
+ : null;
865
+ var secondFormHelperText = showDescription && !isValid ? errors : null;
866
+ var onChange = React.useMemo(function () { return createOnChangeHandler(path, handleChange, saveFormat); }, [path, handleChange, saveFormat]);
867
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
868
+ React__default["default"].createElement(lab.LocalizationProvider, { dateAdapter: AdapterDayjs__default["default"] },
869
+ React__default["default"].createElement(lab.TimePicker, { label: label, value: getData(data, saveFormat), clearable: true, onChange: onChange, inputFormat: format, disableMaskedInput: true, ampm: !!appliedUiSchemaOptions.ampm, views: appliedUiSchemaOptions.views, disabled: !enabled, cancelText: appliedUiSchemaOptions.cancelLabel, clearText: appliedUiSchemaOptions.clearLabel, okText: appliedUiSchemaOptions.okLabel, renderInput: function (params) { return (React__default["default"].createElement(material.TextField, __assign({}, params, { id: id + '-input', required: required && !appliedUiSchemaOptions.hideRequiredAsterisk, autoFocus: appliedUiSchemaOptions.focus, error: !isValid, fullWidth: !appliedUiSchemaOptions.trim, inputProps: __assign(__assign({}, params.inputProps), { type: 'text' }), InputLabelProps: data ? { shrink: true } : undefined, onFocus: onFocus, onBlur: onBlur, variant: 'standard' }))); } }),
870
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid && !showDescription }, firstFormHelperText),
871
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, secondFormHelperText))));
872
+ };
873
+ var materialTimeControlTester = core.rankWith(4, core.isTimeControl);
874
+ var MaterialTimeControl$1 = react.withJsonFormsControlProps(MaterialTimeControl);
875
+
876
+ var MaterialSliderControl = function (props) {
877
+ var _a = useFocus(), focused = _a[0], onFocus = _a[1], onBlur = _a[2];
878
+ var id = props.id, data = props.data, description = props.description, enabled = props.enabled, errors = props.errors, label = props.label, schema = props.schema, handleChange = props.handleChange, visible = props.visible, path = props.path, required = props.required, config = props.config;
879
+ var isValid = errors.length === 0;
880
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
881
+ var labelStyle = {
882
+ whiteSpace: 'nowrap',
883
+ overflow: 'hidden',
884
+ textOverflow: 'ellipsis',
885
+ width: '100%'
886
+ };
887
+ var rangeContainerStyle = {
888
+ display: 'flex'
889
+ };
890
+ var rangeItemStyle = {
891
+ flexGrow: '1'
892
+ };
893
+ var sliderStyle = {
894
+ marginTop: '7px'
895
+ };
896
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
897
+ var onChange = React.useCallback(function (_ev, value) { return handleChange(path, Number(value)); }, [path, handleChange]);
898
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
899
+ React__default["default"].createElement(material.FormControl, { fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur, id: id },
900
+ React__default["default"].createElement(material.FormLabel, { htmlFor: id, error: !isValid, component: 'legend', required: core.showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk) },
901
+ React__default["default"].createElement(material.Typography, { id: id + '-typo', style: labelStyle, variant: 'caption' }, label)),
902
+ React__default["default"].createElement("div", { style: rangeContainerStyle },
903
+ React__default["default"].createElement(material.Typography, { style: rangeItemStyle, variant: 'caption', align: 'left' }, schema.minimum),
904
+ React__default["default"].createElement(material.Typography, { style: rangeItemStyle, variant: 'caption', align: 'right' }, schema.maximum)),
905
+ React__default["default"].createElement(material.Slider, { style: sliderStyle, min: schema.minimum, max: schema.maximum, value: Number(data || schema.default), onChange: onChange, id: id + '-input', disabled: !enabled, step: schema.multipleOf || 1 }),
906
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, !isValid ? errors : showDescription ? description : null))));
907
+ };
908
+ var materialSliderControlTester = core.rankWith(4, core.isRangeControl);
909
+ var MaterialSliderControl$1 = react.withJsonFormsControlProps(MaterialSliderControl);
910
+
911
+ var MaterialRadioGroup = function (props) {
912
+ var _a = useFocus(), focused = _a[0], onFocus = _a[1], onBlur = _a[2];
913
+ var config = props.config, id = props.id, label = props.label, required = props.required, description = props.description, errors = props.errors, data = props.data, visible = props.visible, options = props.options, handleChange = props.handleChange, path = props.path, enabled = props.enabled;
914
+ var isValid = errors.length === 0;
915
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
916
+ var showDescription = !core.isDescriptionHidden(visible, description, focused, appliedUiSchemaOptions.showUnfocusedDescription);
917
+ var onChange = function (_ev, value) { return handleChange(path, value); };
918
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
919
+ React__default["default"].createElement(material.FormControl, { component: 'fieldset', fullWidth: !appliedUiSchemaOptions.trim, onFocus: onFocus, onBlur: onBlur },
920
+ React__default["default"].createElement(material.FormLabel, { htmlFor: id, error: !isValid, component: 'legend', required: core.showAsRequired(required, appliedUiSchemaOptions.hideRequiredAsterisk) }, label),
921
+ React__default["default"].createElement(material.RadioGroup, { value: props.data, onChange: onChange, row: true }, options.map(function (option) { return (React__default["default"].createElement(material.FormControlLabel, { value: option.value, key: option.label, control: React__default["default"].createElement(material.Radio, { checked: data === option.value }), label: option.label, disabled: !enabled })); })),
922
+ React__default["default"].createElement(material.FormHelperText, { error: !isValid }, !isValid ? errors : showDescription ? description : null))));
923
+ };
924
+
925
+ var MaterialRadioGroupControl = function (props) {
926
+ return React__default["default"].createElement(MaterialRadioGroup, __assign({}, props));
927
+ };
928
+ var materialRadioGroupControlTester = core.rankWith(20, core.and(core.isEnumControl, core.optionIs('format', 'radio')));
929
+ var MaterialRadioGroupControl$1 = react.withJsonFormsEnumProps(MaterialRadioGroupControl);
930
+
931
+ var MaterialIntegerControl = function (props) { return (React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: MuiInputInteger }))); };
932
+ var materialIntegerControlTester = core.rankWith(2, core.isIntegerControl);
933
+ var MaterialIntegerControl$1 = react.withJsonFormsControlProps(MaterialIntegerControl);
934
+
935
+ var MaterialNumberControl = function (props) { return (React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: MuiInputNumber }))); };
936
+ var materialNumberControlTester = core.rankWith(2, core.isNumberControl);
937
+ var MaterialNumberControl$1 = react.withJsonFormsControlProps(MaterialNumberControl);
938
+
939
+ var MaterialTextControl = function (props) { return (React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: MuiInputText }))); };
940
+ var materialTextControlTester = core.rankWith(1, core.isStringControl);
941
+ var MaterialTextControl$1 = react.withJsonFormsControlProps(MaterialTextControl);
942
+
943
+ var findEnumSchema = function (schemas) {
944
+ return schemas.find(function (s) { return s.enum !== undefined && (s.type === 'string' || s.type === undefined); });
945
+ };
946
+ var findTextSchema = function (schemas) {
947
+ return schemas.find(function (s) { return s.type === 'string' && s.enum === undefined; });
948
+ };
949
+ var MuiAutocompleteInputText = function (props) {
950
+ var data = props.data, config = props.config, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, isValid = props.isValid, path = props.path, handleChange = props.handleChange, schema = props.schema;
951
+ var enumSchema = findEnumSchema(schema.anyOf);
952
+ var stringSchema = findTextSchema(schema.anyOf);
953
+ var maxLength = stringSchema.maxLength;
954
+ var appliedUiSchemaOptions = React.useMemo(function () { return merge__default["default"]({}, config, uischema.options); }, [config, uischema.options]);
955
+ var inputProps = React.useMemo(function () {
956
+ var propMemo = {};
957
+ if (appliedUiSchemaOptions.restrict) {
958
+ propMemo = { maxLength: maxLength };
959
+ }
960
+ if (appliedUiSchemaOptions.trim && maxLength !== undefined) {
961
+ propMemo.size = maxLength;
962
+ }
963
+ propMemo.list = props.id + 'datalist';
964
+ return propMemo;
965
+ }, [appliedUiSchemaOptions, props.id]);
966
+ var _a = useDebouncedChange(handleChange, '', data, path), inputText = _a[0], onChange = _a[1];
967
+ var dataList = (React__default["default"].createElement("datalist", { id: props.id + 'datalist' }, enumSchema.enum.map(function (optionValue) { return (React__default["default"].createElement("option", { value: optionValue, key: optionValue })); })));
968
+ return (React__default["default"].createElement(material.Input, { type: 'text', value: inputText, onChange: onChange, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, fullWidth: !appliedUiSchemaOptions.trim || maxLength === undefined, inputProps: inputProps, error: !isValid, endAdornment: dataList }));
969
+ };
970
+ var MaterialAnyOfStringOrEnumControl = (function (_super) {
971
+ __extends(MaterialAnyOfStringOrEnumControl, _super);
972
+ function MaterialAnyOfStringOrEnumControl() {
973
+ return _super !== null && _super.apply(this, arguments) || this;
974
+ }
975
+ MaterialAnyOfStringOrEnumControl.prototype.render = function () {
976
+ return (React__default["default"].createElement(MaterialInputControl, __assign({}, this.props, { input: MuiAutocompleteInputText })));
977
+ };
978
+ return MaterialAnyOfStringOrEnumControl;
979
+ }(react.Control));
980
+ var hasEnumAndText = function (schemas) {
981
+ var enumSchema = findEnumSchema(schemas);
982
+ var stringSchema = findTextSchema(schemas);
983
+ var remainingSchemas = schemas.filter(function (s) { return s !== enumSchema || s !== stringSchema; });
984
+ var wrongType = remainingSchemas.find(function (s) { return s.type && s.type !== 'string'; });
985
+ return enumSchema && stringSchema && !wrongType;
986
+ };
987
+ var simpleAnyOf = core.and(core.uiTypeIs('Control'), core.schemaMatches(function (schema) { return schema.hasOwnProperty('anyOf') && hasEnumAndText(schema.anyOf); }));
988
+ var materialAnyOfStringOrEnumControlTester = core.rankWith(5, simpleAnyOf);
989
+ var MaterialAnyOfStringOrEnumControl$1 = react.withJsonFormsControlProps(MaterialAnyOfStringOrEnumControl);
990
+
991
+ var MaterialOneOfEnumControl = function (props) {
992
+ var config = props.config, uischema = props.uischema;
993
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
994
+ return (React__default["default"].createElement(MaterialInputControl, __assign({}, props, { input: appliedUiSchemaOptions.autocomplete === false ? MuiSelect : MuiAutocomplete })));
995
+ };
996
+ var materialOneOfEnumControlTester = core.rankWith(5, core.isOneOfEnumControl);
997
+ var MaterialOneOfEnumControl$1 = react.withJsonFormsOneOfEnumProps(MaterialOneOfEnumControl);
998
+
999
+ var MaterialOneOfRadioGroupControl = function (props) {
1000
+ return React__default["default"].createElement(MaterialRadioGroup, __assign({}, props));
1001
+ };
1002
+ var materialOneOfRadioGroupControlTester = core.rankWith(20, core.and(core.isOneOfEnumControl, core.optionIs('format', 'radio')));
1003
+ var MaterialOneOfRadioGroupControl$1 = react.withJsonFormsOneOfEnumProps(MaterialOneOfRadioGroupControl);
1004
+
1005
+ var Unwrapped = {
1006
+ MaterialBooleanControl: MaterialBooleanControl,
1007
+ MaterialBooleanToggleControl: MaterialBooleanToggleControl,
1008
+ MaterialEnumControl: MaterialEnumControl,
1009
+ MaterialNativeControl: MaterialNativeControl,
1010
+ MaterialDateControl: MaterialDateControl,
1011
+ MaterialDateTimeControl: MaterialDateTimeControl,
1012
+ MaterialTimeControl: MaterialTimeControl,
1013
+ MaterialSliderControl: MaterialSliderControl,
1014
+ MaterialRadioGroupControl: MaterialRadioGroupControl,
1015
+ MaterialIntegerControl: MaterialIntegerControl,
1016
+ MaterialNumberControl: MaterialNumberControl,
1017
+ MaterialTextControl: MaterialTextControl,
1018
+ MaterialAnyOfStringOrEnumControl: MaterialAnyOfStringOrEnumControl,
1019
+ MaterialOneOfEnumControl: MaterialOneOfEnumControl,
1020
+ MaterialOneOfRadioGroupControl: MaterialOneOfRadioGroupControl
1021
+ };
1022
+
1023
+ var groupTester = core.rankWith(1, core.uiTypeIs('Group'));
1024
+ var style = { marginBottom: '10px' };
1025
+ var GroupComponent = React__default["default"].memo(function (_a) {
1026
+ var visible = _a.visible, enabled = _a.enabled, uischema = _a.uischema, props = __rest(_a, ["visible", "enabled", "uischema"]);
1027
+ var groupLayout = uischema;
1028
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
1029
+ React__default["default"].createElement(material.Card, { style: style },
1030
+ !isEmpty__default["default"](groupLayout.label) && (React__default["default"].createElement(material.CardHeader, { title: groupLayout.label })),
1031
+ React__default["default"].createElement(material.CardContent, null,
1032
+ React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, props, { visible: visible, enabled: enabled, elements: groupLayout.elements }))))));
1033
+ });
1034
+ var MaterializedGroupLayoutRenderer = function (_a) {
1035
+ var uischema = _a.uischema, schema = _a.schema, path = _a.path, visible = _a.visible, enabled = _a.enabled, renderers = _a.renderers, cells = _a.cells, direction = _a.direction;
1036
+ var groupLayout = uischema;
1037
+ return (React__default["default"].createElement(GroupComponent, { elements: groupLayout.elements, schema: schema, path: path, direction: direction, visible: visible, enabled: enabled, uischema: uischema, renderers: renderers, cells: cells }));
1038
+ };
1039
+ var MaterialGroupLayout = react.withJsonFormsLayoutProps(MaterializedGroupLayoutRenderer);
1040
+ var materialGroupTester = core.withIncreasedRank(1, groupTester);
1041
+
1042
+ var materialHorizontalLayoutTester = core.rankWith(2, core.uiTypeIs('HorizontalLayout'));
1043
+ var MaterialHorizontalLayoutRenderer = function (_a) {
1044
+ var uischema = _a.uischema, renderers = _a.renderers, cells = _a.cells, schema = _a.schema, path = _a.path, enabled = _a.enabled, visible = _a.visible;
1045
+ var layout = uischema;
1046
+ var childProps = {
1047
+ elements: layout.elements,
1048
+ schema: schema,
1049
+ path: path,
1050
+ enabled: enabled,
1051
+ direction: 'row',
1052
+ visible: visible
1053
+ };
1054
+ return React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps, { renderers: renderers, cells: cells }));
1055
+ };
1056
+ var MaterialHorizontalLayout = react.withJsonFormsLayoutProps(MaterialHorizontalLayoutRenderer);
1057
+
1058
+ var materialVerticalLayoutTester = core.rankWith(1, core.uiTypeIs('VerticalLayout'));
1059
+ var MaterialVerticalLayoutRenderer = function (_a) {
1060
+ var uischema = _a.uischema, schema = _a.schema, path = _a.path, enabled = _a.enabled, visible = _a.visible, renderers = _a.renderers, cells = _a.cells;
1061
+ var verticalLayout = uischema;
1062
+ var childProps = {
1063
+ elements: verticalLayout.elements,
1064
+ schema: schema,
1065
+ path: path,
1066
+ enabled: enabled,
1067
+ direction: 'column',
1068
+ visible: visible
1069
+ };
1070
+ return React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps, { renderers: renderers, cells: cells }));
1071
+ };
1072
+ var MaterialVerticalLayout = react.withJsonFormsLayoutProps(MaterialVerticalLayoutRenderer);
1073
+
1074
+ var isSingleLevelCategorization = core.and(core.uiTypeIs('Categorization'), function (uischema) {
1075
+ var categorization = uischema;
1076
+ return (categorization.elements &&
1077
+ categorization.elements.reduce(function (acc, e) { return acc && e.type === 'Category'; }, true));
1078
+ });
1079
+ var materialCategorizationTester = core.rankWith(1, isSingleLevelCategorization);
1080
+ var MaterialCategorizationLayoutRenderer = function (props) {
1081
+ var data = props.data, path = props.path, renderers = props.renderers, cells = props.cells, schema = props.schema, uischema = props.uischema, visible = props.visible, enabled = props.enabled, selected = props.selected, onChange = props.onChange, ajv = props.ajv;
1082
+ var categorization = uischema;
1083
+ var _a = React.useState(selected !== null && selected !== void 0 ? selected : 0), activeCategory = _a[0], setActiveCategory = _a[1];
1084
+ var categories = categorization.elements.filter(function (category) {
1085
+ return core.isVisible(category, data, undefined, ajv);
1086
+ });
1087
+ var childProps = {
1088
+ elements: categories[activeCategory].elements,
1089
+ schema: schema,
1090
+ path: path,
1091
+ direction: 'column',
1092
+ enabled: enabled,
1093
+ visible: visible,
1094
+ renderers: renderers,
1095
+ cells: cells
1096
+ };
1097
+ var onTabChange = function (_event, value) {
1098
+ if (onChange) {
1099
+ onChange(value, activeCategory);
1100
+ }
1101
+ setActiveCategory(value);
1102
+ };
1103
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
1104
+ React__default["default"].createElement(material.AppBar, { position: 'static' },
1105
+ React__default["default"].createElement(material.Tabs, { value: activeCategory, onChange: onTabChange, textColor: 'inherit', indicatorColor: 'secondary', variant: 'scrollable' }, categories.map(function (e, idx) { return (React__default["default"].createElement(material.Tab, { key: idx, label: e.label })); }))),
1106
+ React__default["default"].createElement("div", { style: { marginTop: '0.5em' } },
1107
+ React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps)))));
1108
+ };
1109
+ var MaterialCategorizationLayout = react.withJsonFormsLayoutProps(withAjvProps(MaterialCategorizationLayoutRenderer));
1110
+
1111
+ var iconStyle = { float: 'right' };
1112
+ var ExpandPanelRendererComponent = function (props) {
1113
+ var labelHtmlId = React.useState(core.createId('expand-panel'))[0];
1114
+ React.useEffect(function () {
1115
+ return function () {
1116
+ core.removeId(labelHtmlId);
1117
+ };
1118
+ }, [labelHtmlId]);
1119
+ var childLabel = props.childLabel, childPath = props.childPath, index = props.index, expanded = props.expanded, moveDown = props.moveDown, moveUp = props.moveUp, enableMoveDown = props.enableMoveDown, enableMoveUp = props.enableMoveUp, handleExpansion = props.handleExpansion, removeItems = props.removeItems, path = props.path, rootSchema = props.rootSchema, schema = props.schema, uischema = props.uischema, uischemas = props.uischemas, renderers = props.renderers, cells = props.cells, config = props.config;
1120
+ var foundUISchema = React.useMemo(function () {
1121
+ return core.findUISchema(uischemas, schema, uischema.scope, path, undefined, uischema, rootSchema);
1122
+ }, [uischemas, schema, uischema.scope, path, uischema, rootSchema]);
1123
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
1124
+ return (React__default["default"].createElement(material.Accordion, { "aria-labelledby": labelHtmlId, expanded: expanded, onChange: handleExpansion(childPath) },
1125
+ React__default["default"].createElement(material.AccordionSummary, { expandIcon: React__default["default"].createElement(ExpandMoreIcon__default["default"], null) },
1126
+ React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center' },
1127
+ React__default["default"].createElement(material.Grid, { item: true, xs: 7, md: 9 },
1128
+ React__default["default"].createElement(material.Grid, { container: true, alignItems: 'center' },
1129
+ React__default["default"].createElement(material.Grid, { item: true, xs: 2, md: 1 },
1130
+ React__default["default"].createElement(material.Avatar, { "aria-label": 'Index' }, index + 1)),
1131
+ React__default["default"].createElement(material.Grid, { item: true, xs: 10, md: 11 },
1132
+ React__default["default"].createElement("span", { id: labelHtmlId }, childLabel)))),
1133
+ React__default["default"].createElement(material.Grid, { item: true, xs: 5, md: 3 },
1134
+ React__default["default"].createElement(material.Grid, { container: true, justifyContent: 'flex-end' },
1135
+ React__default["default"].createElement(material.Grid, { item: true },
1136
+ React__default["default"].createElement(material.Grid, { container: true, direction: 'row', justifyContent: 'center', alignItems: 'center' },
1137
+ appliedUiSchemaOptions.showSortButtons ? (React__default["default"].createElement(React.Fragment, null,
1138
+ React__default["default"].createElement(material.Grid, { item: true },
1139
+ React__default["default"].createElement(material.IconButton, { onClick: moveUp(path, index), style: iconStyle, disabled: !enableMoveUp, "aria-label": "Move up", size: 'large' },
1140
+ React__default["default"].createElement(ArrowUpward__default["default"], null))),
1141
+ React__default["default"].createElement(material.Grid, { item: true },
1142
+ React__default["default"].createElement(material.IconButton, { onClick: moveDown(path, index), style: iconStyle, disabled: !enableMoveDown, "aria-label": "Move down", size: 'large' },
1143
+ React__default["default"].createElement(ArrowDownward__default["default"], null))))) : (''),
1144
+ React__default["default"].createElement(material.Grid, { item: true },
1145
+ React__default["default"].createElement(material.IconButton, { onClick: removeItems(path, [index]), style: iconStyle, "aria-label": "Delete", size: 'large' },
1146
+ React__default["default"].createElement(DeleteIcon__default["default"], null))))))))),
1147
+ React__default["default"].createElement(material.AccordionDetails, null,
1148
+ React__default["default"].createElement(react.JsonFormsDispatch, { schema: schema, uischema: foundUISchema, path: childPath, key: childPath, renderers: renderers, cells: cells }))));
1149
+ };
1150
+ var ExpandPanelRenderer = React__default["default"].memo(ExpandPanelRendererComponent);
1151
+ var ctxDispatchToExpandPanelProps = function (dispatch) { return ({
1152
+ removeItems: React.useCallback(function (path, toDelete) { return function (event) {
1153
+ event.stopPropagation();
1154
+ dispatch(core.update(path, function (array) {
1155
+ toDelete
1156
+ .sort()
1157
+ .reverse()
1158
+ .forEach(function (s) { return array.splice(s, 1); });
1159
+ return array;
1160
+ }));
1161
+ }; }, [dispatch]),
1162
+ moveUp: React.useCallback(function (path, toMove) { return function (event) {
1163
+ event.stopPropagation();
1164
+ dispatch(core.update(path, function (array) {
1165
+ core.moveUp(array, toMove);
1166
+ return array;
1167
+ }));
1168
+ }; }, [dispatch]),
1169
+ moveDown: React.useCallback(function (path, toMove) { return function (event) {
1170
+ event.stopPropagation();
1171
+ dispatch(core.update(path, function (array) {
1172
+ core.moveDown(array, toMove);
1173
+ return array;
1174
+ }));
1175
+ }; }, [dispatch])
1176
+ }); };
1177
+ var withContextToExpandPanelProps = function (Component) { return function (_a) {
1178
+ var ctx = _a.ctx, props = _a.props;
1179
+ var dispatchProps = ctxDispatchToExpandPanelProps(ctx.dispatch);
1180
+ var childLabelProp = props.childLabelProp, schema = props.schema, path = props.path, index = props.index, uischemas = props.uischemas;
1181
+ var childPath = core.composePaths(path, "" + index);
1182
+ var childData = core.Resolve.data(ctx.core.data, childPath);
1183
+ var childLabel = childLabelProp
1184
+ ? get__default["default"](childData, childLabelProp, '')
1185
+ : get__default["default"](childData, core.getFirstPrimitiveProp(schema), '');
1186
+ return (React__default["default"].createElement(Component, __assign({}, props, dispatchProps, { childLabel: childLabel, childPath: childPath, uischemas: uischemas })));
1187
+ }; };
1188
+ var withJsonFormsExpandPanelProps = function (Component) {
1189
+ return react.withJsonFormsContext(withContextToExpandPanelProps(Component));
1190
+ };
1191
+ var ExpandPanelRenderer$1 = withJsonFormsExpandPanelProps(ExpandPanelRenderer);
1192
+
1193
+ var MaterialArrayLayoutComponent = function (props) {
1194
+ var _a = React.useState(false), expanded = _a[0], setExpanded = _a[1];
1195
+ var innerCreateDefaultValue = React.useCallback(function () { return core.createDefaultValue(props.schema); }, [props.schema]);
1196
+ var handleChange = React.useCallback(function (panel) { return function (_event, expandedPanel) {
1197
+ setExpanded(expandedPanel ? panel : false);
1198
+ }; }, []);
1199
+ var isExpanded = function (index) {
1200
+ return expanded === core.composePaths(props.path, "" + index);
1201
+ };
1202
+ var data = props.data, path = props.path, schema = props.schema, uischema = props.uischema, errors = props.errors, addItem = props.addItem, renderers = props.renderers, cells = props.cells, label = props.label, required = props.required, rootSchema = props.rootSchema, config = props.config, uischemas = props.uischemas;
1203
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, props.uischema.options);
1204
+ return (React__default["default"].createElement("div", null,
1205
+ React__default["default"].createElement(ArrayLayoutToolbar, { label: core.computeLabel(label, required, appliedUiSchemaOptions.hideRequiredAsterisk), errors: errors, path: path, addItem: addItem, createDefault: innerCreateDefaultValue }),
1206
+ React__default["default"].createElement("div", null, data > 0 ? (map__default["default"](range__default["default"](data), function (index) {
1207
+ return (React__default["default"].createElement(ExpandPanelRenderer$1, { index: index, expanded: isExpanded(index), schema: schema, path: path, handleExpansion: handleChange, uischema: uischema, renderers: renderers, cells: cells, key: index, rootSchema: rootSchema, enableMoveUp: index != 0, enableMoveDown: index < data - 1, config: config, childLabelProp: appliedUiSchemaOptions.elementLabelProp, uischemas: uischemas }));
1208
+ })) : (React__default["default"].createElement("p", null, "No data")))));
1209
+ };
1210
+ var MaterialArrayLayout$1 = React__default["default"].memo(MaterialArrayLayoutComponent);
1211
+
1212
+ var MaterialArrayLayoutRenderer = function (_a) {
1213
+ var visible = _a.visible, enabled = _a.enabled, id = _a.id, uischema = _a.uischema, schema = _a.schema, label = _a.label, rootSchema = _a.rootSchema, renderers = _a.renderers, cells = _a.cells, data = _a.data, path = _a.path, errors = _a.errors, uischemas = _a.uischemas, addItem = _a.addItem;
1214
+ var addItemCb = React.useCallback(function (p, value) { return addItem(p, value); }, [
1215
+ addItem
1216
+ ]);
1217
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
1218
+ React__default["default"].createElement(MaterialArrayLayout$1, { label: label, uischema: uischema, schema: schema, id: id, rootSchema: rootSchema, errors: errors, enabled: enabled, visible: visible, data: data, path: path, addItem: addItemCb, renderers: renderers, cells: cells, uischemas: uischemas })));
1219
+ };
1220
+ var materialArrayLayoutTester = core.rankWith(4, core.isObjectArrayWithNesting);
1221
+ var MaterialArrayLayout = react.withJsonFormsArrayLayoutProps(MaterialArrayLayoutRenderer);
1222
+
1223
+ var MaterialBooleanCell = function (props) {
1224
+ return React__default["default"].createElement(MuiCheckbox, __assign({}, props));
1225
+ };
1226
+ var materialBooleanCellTester = core.rankWith(2, core.isBooleanControl);
1227
+ var MaterialBooleanCell$1 = react.withJsonFormsCellProps(MaterialBooleanCell);
1228
+
1229
+ var MaterialBooleanToggleCell = function (props) {
1230
+ return React__default["default"].createElement(MuiToggle, __assign({}, props));
1231
+ };
1232
+ var materialBooleanToggleCellTester = core.rankWith(3, core.and(core.isBooleanControl, core.optionIs('toggle', true)));
1233
+ var MaterialBooleanToggleCell$1 = react.withJsonFormsCellProps(MaterialBooleanToggleCell);
1234
+
1235
+ var MaterialDateCell = function (props) {
1236
+ var data = props.data, className = props.className, id = props.id, enabled = props.enabled, uischema = props.uischema, path = props.path, handleChange = props.handleChange, config = props.config;
1237
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
1238
+ return (React__default["default"].createElement(Input__default["default"], { type: 'date', value: data || '', onChange: function (ev) { return handleChange(path, ev.target.value); }, className: className, id: id, disabled: !enabled, autoFocus: appliedUiSchemaOptions.focus, fullWidth: true }));
1239
+ };
1240
+ var materialDateCellTester = core.rankWith(2, core.isDateControl);
1241
+ var MaterialDateCell$1 = react.withJsonFormsCellProps(MaterialDateCell);
1242
+
1243
+ var MaterialEnumCell = function (props) { return (React__default["default"].createElement(MuiSelect, __assign({}, props))); };
1244
+ var materialEnumCellTester = core.rankWith(2, core.isEnumControl);
1245
+ var MaterialEnumCell$1 = react.withJsonFormsEnumCellProps(MaterialEnumCell);
1246
+
1247
+ var MaterialIntegerCell = function (props) { return (React__default["default"].createElement(MuiInputInteger, __assign({}, props))); };
1248
+ var materialIntegerCellTester = core.rankWith(2, core.isIntegerControl);
1249
+ var MaterialIntegerCell$1 = react.withJsonFormsCellProps(MaterialIntegerCell);
1250
+
1251
+ var MaterialNumberCell = function (props) { return (React__default["default"].createElement(MuiInputNumber, __assign({}, props))); };
1252
+ var materialNumberCellTester = core.rankWith(2, core.isNumberControl);
1253
+ var MaterialNumberCell$1 = react.withJsonFormsCellProps(MaterialNumberCell);
1254
+
1255
+ var MaterialNumberFormatCell = function (props) { return React__default["default"].createElement(MuiInputNumberFormat, __assign({}, props)); };
1256
+ var materialNumberFormatCellTester = core.rankWith(4, core.isNumberFormatControl);
1257
+ var MaterialNumberFormatCell$1 = react.withJsonFormsCellProps(MaterialNumberFormatCell);
1258
+
1259
+ var MaterialOneOfEnumCell = function (props) { return (React__default["default"].createElement(MuiSelect, __assign({}, props))); };
1260
+ var materialOneOfEnumCellTester = core.rankWith(2, core.isOneOfEnumControl);
1261
+ var MaterialOneOfEnumCell$1 = react.withJsonFormsOneOfEnumCellProps(MaterialOneOfEnumCell);
1262
+
1263
+ var MaterialTextCell = function (props) { return (React__default["default"].createElement(MuiInputText, __assign({}, props))); };
1264
+ var materialTextCellTester = core.rankWith(1, core.isStringControl);
1265
+ var MaterialTextCell$1 = react.withJsonFormsCellProps(MaterialTextCell);
1266
+
1267
+ var MaterialTimeCell = function (props) { return (React__default["default"].createElement(MuiInputTime, __assign({}, props))); };
1268
+ var materialTimeCellTester = core.rankWith(2, core.isTimeControl);
1269
+ var MaterialTimeCell$1 = react.withJsonFormsCellProps(MaterialTimeCell);
1270
+
1271
+ var CustomizableCells = /*#__PURE__*/Object.freeze({
1272
+ __proto__: null,
1273
+ MaterialBooleanCell: MaterialBooleanCell,
1274
+ MaterialDateCell: MaterialDateCell,
1275
+ MaterialEnumCell: MaterialEnumCell,
1276
+ MaterialIntegerCell: MaterialIntegerCell,
1277
+ MaterialNumberCell: MaterialNumberCell,
1278
+ MaterialNumberFormatCell: MaterialNumberFormatCell,
1279
+ MaterialOneOfEnumCell: MaterialOneOfEnumCell,
1280
+ MaterialTextCell: MaterialTextCell,
1281
+ MaterialTimeCell: MaterialTimeCell
1282
+ });
1283
+
1284
+ var materialCategorizationStepperTester = core.rankWith(2, core.and(core.uiTypeIs('Categorization'), core.categorizationHasCategory, core.optionIs('variant', 'stepper')));
1285
+ var MaterialCategorizationStepperLayoutRenderer = function (props) {
1286
+ var _a = React.useState(0), activeCategory = _a[0], setActiveCategory = _a[1];
1287
+ var handleStep = function (step) {
1288
+ setActiveCategory(step);
1289
+ };
1290
+ var data = props.data, path = props.path, renderers = props.renderers, schema = props.schema, uischema = props.uischema, visible = props.visible, cells = props.cells, config = props.config, ajv = props.ajv;
1291
+ var categorization = uischema;
1292
+ var appliedUiSchemaOptions = merge__default["default"]({}, config, uischema.options);
1293
+ var buttonWrapperStyle = {
1294
+ textAlign: 'right',
1295
+ width: '100%',
1296
+ margin: '1em auto'
1297
+ };
1298
+ var buttonNextStyle = {
1299
+ float: 'right'
1300
+ };
1301
+ var buttonStyle = {
1302
+ marginRight: '1em'
1303
+ };
1304
+ var categories = categorization.elements.filter(function (category) {
1305
+ return core.isVisible(category, data, undefined, ajv);
1306
+ });
1307
+ var childProps = {
1308
+ elements: categories[activeCategory].elements,
1309
+ schema: schema,
1310
+ path: path,
1311
+ direction: 'column',
1312
+ visible: visible,
1313
+ renderers: renderers,
1314
+ cells: cells
1315
+ };
1316
+ return (React__default["default"].createElement(material.Hidden, { xsUp: !visible },
1317
+ React__default["default"].createElement(material.Stepper, { activeStep: activeCategory, nonLinear: true }, categories.map(function (e, idx) { return (React__default["default"].createElement(material.Step, { key: e.label },
1318
+ React__default["default"].createElement(material.StepButton, { onClick: function () { return handleStep(idx); } }, e.label))); })),
1319
+ React__default["default"].createElement("div", null,
1320
+ React__default["default"].createElement(MaterialLayoutRenderer, __assign({}, childProps))),
1321
+ !!appliedUiSchemaOptions.showNavButtons ? (React__default["default"].createElement("div", { style: buttonWrapperStyle },
1322
+ React__default["default"].createElement(material.Button, { style: buttonNextStyle, variant: "contained", color: "primary", disabled: activeCategory >= categories.length - 1, onClick: function () { return handleStep(activeCategory + 1); } }, "Next"),
1323
+ React__default["default"].createElement(material.Button, { style: buttonStyle, color: "secondary", variant: "contained", disabled: activeCategory <= 0, onClick: function () { return handleStep(activeCategory - 1); } }, "Previous"))) : (React__default["default"].createElement(React__default["default"].Fragment, null))));
1324
+ };
1325
+ var MaterialCategorizationStepperLayout = react.withJsonFormsLayoutProps(withAjvProps(MaterialCategorizationStepperLayoutRenderer));
1326
+
1327
+ var materialRenderers = [
1328
+ {
1329
+ tester: materialArrayControlTester,
1330
+ renderer: MaterialArrayControlRenderer$1
1331
+ },
1332
+ { tester: materialBooleanControlTester, renderer: MaterialBooleanControl$1 },
1333
+ { tester: materialBooleanToggleControlTester, renderer: MaterialBooleanToggleControl$1 },
1334
+ { tester: materialNativeControlTester, renderer: MaterialNativeControl$1 },
1335
+ { tester: materialEnumControlTester, renderer: MaterialEnumControl$1 },
1336
+ { tester: materialIntegerControlTester, renderer: MaterialIntegerControl$1 },
1337
+ { tester: materialNumberControlTester, renderer: MaterialNumberControl$1 },
1338
+ { tester: materialTextControlTester, renderer: MaterialTextControl$1 },
1339
+ { tester: materialDateTimeControlTester, renderer: MaterialDateTimeControl$1 },
1340
+ { tester: materialDateControlTester, renderer: MaterialDateControl$1 },
1341
+ { tester: materialTimeControlTester, renderer: MaterialTimeControl$1 },
1342
+ { tester: materialSliderControlTester, renderer: MaterialSliderControl$1 },
1343
+ { tester: materialObjectControlTester, renderer: MaterialObjectRenderer$1 },
1344
+ { tester: materialAllOfControlTester, renderer: MaterialAllOfRenderer$1 },
1345
+ { tester: materialAnyOfControlTester, renderer: MaterialAnyOfRenderer$1 },
1346
+ { tester: materialOneOfControlTester, renderer: MaterialOneOfRenderer$1 },
1347
+ {
1348
+ tester: materialRadioGroupControlTester,
1349
+ renderer: MaterialRadioGroupControl$1
1350
+ },
1351
+ {
1352
+ tester: materialOneOfRadioGroupControlTester,
1353
+ renderer: MaterialOneOfRadioGroupControl$1
1354
+ },
1355
+ { tester: materialOneOfEnumControlTester, renderer: MaterialOneOfEnumControl$1 },
1356
+ { tester: materialGroupTester, renderer: MaterialGroupLayout },
1357
+ {
1358
+ tester: materialHorizontalLayoutTester,
1359
+ renderer: MaterialHorizontalLayout
1360
+ },
1361
+ { tester: materialVerticalLayoutTester, renderer: MaterialVerticalLayout },
1362
+ {
1363
+ tester: materialCategorizationTester,
1364
+ renderer: MaterialCategorizationLayout
1365
+ },
1366
+ {
1367
+ tester: materialCategorizationStepperTester,
1368
+ renderer: MaterialCategorizationStepperLayout
1369
+ },
1370
+ { tester: materialArrayLayoutTester, renderer: MaterialArrayLayout },
1371
+ { tester: materialLabelRendererTester, renderer: MaterialLabelRenderer$1 },
1372
+ {
1373
+ tester: materialListWithDetailTester,
1374
+ renderer: MaterialListWithDetailRenderer$1
1375
+ },
1376
+ {
1377
+ tester: materialAnyOfStringOrEnumControlTester,
1378
+ renderer: MaterialAnyOfStringOrEnumControl$1
1379
+ },
1380
+ {
1381
+ tester: materialEnumArrayRendererTester,
1382
+ renderer: MaterialEnumArrayRenderer$1
1383
+ }
1384
+ ];
1385
+ var materialCells = [
1386
+ { tester: materialBooleanCellTester, cell: MaterialBooleanCell$1 },
1387
+ { tester: materialBooleanToggleCellTester, cell: MaterialBooleanToggleCell$1 },
1388
+ { tester: materialDateCellTester, cell: MaterialDateCell$1 },
1389
+ { tester: materialEnumCellTester, cell: MaterialEnumCell$1 },
1390
+ { tester: materialIntegerCellTester, cell: MaterialIntegerCell$1 },
1391
+ { tester: materialNumberCellTester, cell: MaterialNumberCell$1 },
1392
+ { tester: materialNumberFormatCellTester, cell: MaterialNumberFormatCell$1 },
1393
+ { tester: materialOneOfEnumCellTester, cell: MaterialOneOfEnumCell$1 },
1394
+ { tester: materialTextCellTester, cell: MaterialTextCell$1 },
1395
+ { tester: materialTimeCellTester, cell: MaterialTimeCell$1 }
1396
+ ];
1397
+
1398
+ exports.Customizable = CustomizableCells;
1399
+ exports.MaterialAllOfRenderer = MaterialAllOfRenderer$1;
1400
+ exports.MaterialAnyOfRenderer = MaterialAnyOfRenderer$1;
1401
+ exports.MaterialAnyOfStringOrEnumControl = MaterialAnyOfStringOrEnumControl$1;
1402
+ exports.MaterialArrayControlRenderer = MaterialArrayControlRenderer$1;
1403
+ exports.MaterialArrayLayout = MaterialArrayLayout;
1404
+ exports.MaterialBooleanCell = MaterialBooleanCell$1;
1405
+ exports.MaterialBooleanControl = MaterialBooleanControl$1;
1406
+ exports.MaterialBooleanToggleCell = MaterialBooleanToggleCell$1;
1407
+ exports.MaterialBooleanToggleControl = MaterialBooleanToggleControl$1;
1408
+ exports.MaterialCategorizationLayout = MaterialCategorizationLayout;
1409
+ exports.MaterialDateCell = MaterialDateCell$1;
1410
+ exports.MaterialDateControl = MaterialDateControl$1;
1411
+ exports.MaterialDateTimeControl = MaterialDateTimeControl$1;
1412
+ exports.MaterialEnumArrayRenderer = MaterialEnumArrayRenderer$1;
1413
+ exports.MaterialEnumCell = MaterialEnumCell$1;
1414
+ exports.MaterialEnumControl = MaterialEnumControl$1;
1415
+ exports.MaterialGroupLayout = MaterialGroupLayout;
1416
+ exports.MaterialHorizontalLayout = MaterialHorizontalLayout;
1417
+ exports.MaterialInputControl = MaterialInputControl;
1418
+ exports.MaterialIntegerCell = MaterialIntegerCell$1;
1419
+ exports.MaterialIntegerControl = MaterialIntegerControl$1;
1420
+ exports.MaterialLayoutRenderer = MaterialLayoutRenderer;
1421
+ exports.MaterialNativeControl = MaterialNativeControl$1;
1422
+ exports.MaterialNumberCell = MaterialNumberCell$1;
1423
+ exports.MaterialNumberControl = MaterialNumberControl$1;
1424
+ exports.MaterialNumberFormatCell = MaterialNumberFormatCell$1;
1425
+ exports.MaterialObjectRenderer = MaterialObjectRenderer$1;
1426
+ exports.MaterialOneOfEnumCell = MaterialOneOfEnumCell$1;
1427
+ exports.MaterialOneOfEnumControl = MaterialOneOfEnumControl$1;
1428
+ exports.MaterialOneOfRadioGroupControl = MaterialOneOfRadioGroupControl$1;
1429
+ exports.MaterialOneOfRenderer = MaterialOneOfRenderer$1;
1430
+ exports.MaterialRadioGroupControl = MaterialRadioGroupControl$1;
1431
+ exports.MaterialSliderControl = MaterialSliderControl$1;
1432
+ exports.MaterialTextCell = MaterialTextCell$1;
1433
+ exports.MaterialTextControl = MaterialTextControl$1;
1434
+ exports.MaterialTimeCell = MaterialTimeCell$1;
1435
+ exports.MaterialTimeControl = MaterialTimeControl$1;
1436
+ exports.MaterialVerticalLayout = MaterialVerticalLayout;
1437
+ exports.MuiCheckbox = MuiCheckbox;
1438
+ exports.MuiInputInteger = MuiInputInteger;
1439
+ exports.MuiInputNumber = MuiInputNumber;
1440
+ exports.MuiInputNumberFormat = MuiInputNumberFormat;
1441
+ exports.MuiInputText = MuiInputText;
1442
+ exports.MuiInputTime = MuiInputTime;
1443
+ exports.MuiSelect = MuiSelect;
1444
+ exports.Unwrapped = Unwrapped;
1445
+ exports.createOnChangeHandler = createOnChangeHandler;
1446
+ exports.getData = getData;
1447
+ exports.materialAllOfControlTester = materialAllOfControlTester;
1448
+ exports.materialAnyOfControlTester = materialAnyOfControlTester;
1449
+ exports.materialAnyOfStringOrEnumControlTester = materialAnyOfStringOrEnumControlTester;
1450
+ exports.materialArrayControlTester = materialArrayControlTester;
1451
+ exports.materialArrayLayoutTester = materialArrayLayoutTester;
1452
+ exports.materialBooleanCellTester = materialBooleanCellTester;
1453
+ exports.materialBooleanControlTester = materialBooleanControlTester;
1454
+ exports.materialBooleanToggleCellTester = materialBooleanToggleCellTester;
1455
+ exports.materialBooleanToggleControlTester = materialBooleanToggleControlTester;
1456
+ exports.materialCategorizationTester = materialCategorizationTester;
1457
+ exports.materialCells = materialCells;
1458
+ exports.materialDateCellTester = materialDateCellTester;
1459
+ exports.materialDateControlTester = materialDateControlTester;
1460
+ exports.materialDateTimeControlTester = materialDateTimeControlTester;
1461
+ exports.materialEnumArrayRendererTester = materialEnumArrayRendererTester;
1462
+ exports.materialEnumCellTester = materialEnumCellTester;
1463
+ exports.materialEnumControlTester = materialEnumControlTester;
1464
+ exports.materialGroupTester = materialGroupTester;
1465
+ exports.materialHorizontalLayoutTester = materialHorizontalLayoutTester;
1466
+ exports.materialIntegerCellTester = materialIntegerCellTester;
1467
+ exports.materialIntegerControlTester = materialIntegerControlTester;
1468
+ exports.materialNativeControlTester = materialNativeControlTester;
1469
+ exports.materialNumberCellTester = materialNumberCellTester;
1470
+ exports.materialNumberControlTester = materialNumberControlTester;
1471
+ exports.materialNumberFormatCellTester = materialNumberFormatCellTester;
1472
+ exports.materialObjectControlTester = materialObjectControlTester;
1473
+ exports.materialOneOfControlTester = materialOneOfControlTester;
1474
+ exports.materialOneOfEnumCellTester = materialOneOfEnumCellTester;
1475
+ exports.materialOneOfEnumControlTester = materialOneOfEnumControlTester;
1476
+ exports.materialOneOfRadioGroupControlTester = materialOneOfRadioGroupControlTester;
1477
+ exports.materialRadioGroupControlTester = materialRadioGroupControlTester;
1478
+ exports.materialRenderers = materialRenderers;
1479
+ exports.materialSliderControlTester = materialSliderControlTester;
1480
+ exports.materialTextCellTester = materialTextCellTester;
1481
+ exports.materialTextControlTester = materialTextControlTester;
1482
+ exports.materialTimeCellTester = materialTimeCellTester;
1483
+ exports.materialTimeControlTester = materialTimeControlTester;
1484
+ exports.materialVerticalLayoutTester = materialVerticalLayoutTester;
1485
+ exports.renderLayoutElements = renderLayoutElements;
1486
+ exports.useDebouncedChange = useDebouncedChange;
1487
+ exports.useFocus = useFocus;
1488
+ exports.withAjvProps = withAjvProps;
1489
+ //# sourceMappingURL=jsonforms-react-material.cjs.js.map