@wavemaker-ai/react-runtime 1.0.0-rc.312 → 1.0.0-rc.317

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 (593) hide show
  1. package/.npmignore +4 -0
  2. package/actions/base-action.js +12 -29
  3. package/actions/login-action.js +35 -52
  4. package/actions/logout-action.js +21 -38
  5. package/actions/navigation-action.d.ts +1 -0
  6. package/actions/navigation-action.js +275 -345
  7. package/actions/notification-action.js +121 -149
  8. package/actions/timer-action.js +95 -151
  9. package/actions/toast-provider.js +62 -76
  10. package/actions/toast.js +95 -91
  11. package/actions/toast.service.js +59 -79
  12. package/actions/types/index.js +6 -9
  13. package/components/advanced/carousel/index.js +358 -366
  14. package/components/advanced/carousel/props.js +0 -5
  15. package/components/advanced/carousel/template.js +102 -80
  16. package/components/advanced/login/index.js +227 -285
  17. package/components/advanced/login/props.js +0 -5
  18. package/components/advanced/marquee/index.js +169 -163
  19. package/components/advanced/marquee/props.js +0 -5
  20. package/components/auth/RoleAuthGuard.d.ts +6 -0
  21. package/components/auth/RoleAuthGuard.js +65 -0
  22. package/components/basic/anchor/index.js +207 -187
  23. package/components/basic/anchor/props.js +0 -5
  24. package/components/basic/audio/index.js +110 -72
  25. package/components/basic/audio/props.js +0 -5
  26. package/components/basic/html/index.js +163 -203
  27. package/components/basic/html/props.js +0 -5
  28. package/components/basic/html/utils.js +30 -28
  29. package/components/basic/icon/index.js +98 -84
  30. package/components/basic/icon/props.js +0 -5
  31. package/components/basic/iframe/iframe.utils.js +7 -16
  32. package/components/basic/iframe/index.js +97 -103
  33. package/components/basic/iframe/props.js +0 -5
  34. package/components/basic/label/index.js +156 -134
  35. package/components/basic/label/props.js +0 -5
  36. package/components/basic/message/index.js +129 -113
  37. package/components/basic/message/props.js +0 -5
  38. package/components/basic/picture/index.js +156 -127
  39. package/components/basic/picture/props.js +0 -5
  40. package/components/basic/progress-bar/index.js +240 -176
  41. package/components/basic/progress-bar/props.js +5 -31
  42. package/components/basic/progress-circle/index.js +166 -183
  43. package/components/basic/progress-circle/props.js +14 -34
  44. package/components/basic/richtexteditor/index.js +430 -396
  45. package/components/basic/richtexteditor/props.js +0 -5
  46. package/components/basic/search/index.js +813 -931
  47. package/components/basic/search/props.js +0 -5
  48. package/components/basic/search/providers.js +233 -380
  49. package/components/basic/spinner/index.js +210 -200
  50. package/components/basic/spinner/props.js +4 -22
  51. package/components/basic/tile/index.js +73 -81
  52. package/components/basic/tile/props.js +0 -5
  53. package/components/basic/tree/Components/TreeNodeComponent.d.ts +1 -1
  54. package/components/basic/tree/Components/TreeNodeComponent.js +244 -170
  55. package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
  56. package/components/basic/tree/hooks/useTreePersistedState.d.ts +3 -0
  57. package/components/basic/tree/hooks/useTreePersistedState.js +38 -0
  58. package/components/basic/tree/index.d.ts +1 -0
  59. package/components/basic/tree/index.js +453 -454
  60. package/components/basic/tree/props.d.ts +18 -1
  61. package/components/basic/tree/props.js +0 -5
  62. package/components/basic/tree/utils.d.ts +16 -1
  63. package/components/basic/tree/utils.js +240 -185
  64. package/components/basic/video/index.js +161 -107
  65. package/components/basic/video/props.js +0 -5
  66. package/components/chart/index.js +42 -50
  67. package/components/chart/props.js +31 -37
  68. package/components/chart/src/ChartRenderer.js +172 -154
  69. package/components/chart/src/chart.js +391 -213
  70. package/components/chart/src/chartStyles.generated.js +6 -14
  71. package/components/chart/src/chartUtils.js +228 -272
  72. package/components/chart/src/constants.d.ts +13 -0
  73. package/components/chart/src/constants.js +316 -90
  74. package/components/chart/src/d3Setup.js +11 -30
  75. package/components/chart/src/dataUtils.js +363 -447
  76. package/components/chart/src/formatUtils.js +47 -38
  77. package/components/chart/src/index.js +11 -19
  78. package/components/chart/src/nvd3Source.generated.js +5 -13
  79. package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
  80. package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
  81. package/components/chart/src/types.js +0 -5
  82. package/components/common/AppSpinner.js +17 -33
  83. package/components/common/app-spinner.js +11 -22
  84. package/components/common/customTemplate/index.d.ts +3 -0
  85. package/components/common/customTemplate/index.js +6 -0
  86. package/components/common/customTemplate/props.d.ts +20 -0
  87. package/components/common/customTemplate/props.js +0 -0
  88. package/components/common/customTemplate/template.d.ts +3 -0
  89. package/components/common/customTemplate/template.js +27 -0
  90. package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
  91. package/components/common/customTemplate/useCustomTemplate.js +17 -0
  92. package/components/common/customTemplate/utils.d.ts +6 -0
  93. package/components/common/customTemplate/utils.js +12 -0
  94. package/components/common/index.js +4 -12
  95. package/components/constants.js +81 -77
  96. package/components/container/accordion/accordion-pane/index.js +105 -118
  97. package/components/container/accordion/accordion-pane/props.js +5 -21
  98. package/components/container/accordion/index.js +225 -243
  99. package/components/container/accordion/props.js +5 -16
  100. package/components/container/index.js +210 -155
  101. package/components/container/layout-grid/grid-column/index.js +69 -43
  102. package/components/container/layout-grid/grid-column/props.js +0 -5
  103. package/components/container/layout-grid/grid-row/index.js +12 -29
  104. package/components/container/layout-grid/grid-row/props.js +0 -5
  105. package/components/container/layout-grid/index.js +53 -38
  106. package/components/container/layout-grid/props.js +0 -5
  107. package/components/container/linear-layout/index.js +56 -60
  108. package/components/container/linear-layout/linear-layout-item/index.js +43 -47
  109. package/components/container/linear-layout/linear-layout-item/props.js +0 -5
  110. package/components/container/linear-layout/props.js +0 -5
  111. package/components/container/panel/components/panel-content/index.js +7 -16
  112. package/components/container/panel/components/panel-header/index.js +166 -146
  113. package/components/container/panel/components/panel-header/props.js +0 -5
  114. package/components/container/panel/hooks.js +76 -102
  115. package/components/container/panel/index.js +289 -252
  116. package/components/container/panel/props.js +0 -5
  117. package/components/container/props.js +0 -5
  118. package/components/container/repeat-template/index.js +65 -44
  119. package/components/container/repeat-template/props.js +0 -5
  120. package/components/container/tabs/index.js +517 -526
  121. package/components/container/tabs/props.js +5 -28
  122. package/components/container/tabs/tab-pane/index.js +105 -100
  123. package/components/container/tabs/tab-pane/props.js +0 -5
  124. package/components/container/tabs/utils.js +30 -35
  125. package/components/container/wizard/WizardContext.js +9 -11
  126. package/components/container/wizard/components/StepComponents.js +76 -99
  127. package/components/container/wizard/components/WizardStep.js +107 -85
  128. package/components/container/wizard/index.js +791 -921
  129. package/components/container/wizard/props.js +0 -5
  130. package/components/container/wizard/utils.js +97 -131
  131. package/components/container/wizard/wizard-action/index.js +41 -81
  132. package/components/container/wizard/wizard-step/index.js +140 -120
  133. package/components/data/card/card-actions/index.js +13 -31
  134. package/components/data/card/card-content/index.js +27 -36
  135. package/components/data/card/card-footer/index.js +13 -31
  136. package/components/data/card/index.js +192 -199
  137. package/components/data/card/props.js +0 -5
  138. package/components/data/form/base-form/constant.js +5 -8
  139. package/components/data/form/base-form/hooks/index.js +26 -77
  140. package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
  141. package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
  142. package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
  143. package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
  144. package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
  145. package/components/data/form/base-form/index.js +534 -647
  146. package/components/data/form/base-form/props.js +74 -151
  147. package/components/data/form/base-form/utils.js +210 -323
  148. package/components/data/form/dynamic-fields/constant.js +43 -53
  149. package/components/data/form/dynamic-fields/index.js +135 -144
  150. package/components/data/form/dynamic-fields/props.js +0 -5
  151. package/components/data/form/dynamic-fields/utils.js +99 -158
  152. package/components/data/form/form-action/index.js +107 -85
  153. package/components/data/form/form-body/index.js +52 -26
  154. package/components/data/form/form-context.js +43 -59
  155. package/components/data/form/form-controller/hooks/index.js +43 -57
  156. package/components/data/form/form-controller/props.js +5 -8
  157. package/components/data/form/form-controller/utils.js +54 -49
  158. package/components/data/form/form-controller/validation-contrustor.js +203 -426
  159. package/components/data/form/form-controller/withFormController.js +320 -274
  160. package/components/data/form/form-dynamic-section/index.js +47 -41
  161. package/components/data/form/form-dynamic-section/props.js +0 -5
  162. package/components/data/form/form-field/base-field.js +97 -109
  163. package/components/data/form/form-field/index.js +91 -82
  164. package/components/data/form/form-field/props.js +0 -5
  165. package/components/data/form/form-footer/index.js +52 -25
  166. package/components/data/form/form-header/index.js +61 -58
  167. package/components/data/form/index.js +95 -74
  168. package/components/data/form/props.js +0 -5
  169. package/components/data/list/components/GroupHeader.js +34 -33
  170. package/components/data/list/components/GroupedListItems.js +108 -104
  171. package/components/data/list/components/ListContainer.js +22 -27
  172. package/components/data/list/components/ListDND.js +193 -185
  173. package/components/data/list/components/ListHeader.js +32 -49
  174. package/components/data/list/components/ListItem.js +153 -146
  175. package/components/data/list/components/ListItemWithTemplate.js +87 -105
  176. package/components/data/list/components/ListItems.js +180 -194
  177. package/components/data/list/components/ListPagination.js +127 -153
  178. package/components/data/list/components/LoadMoreButton.js +25 -33
  179. package/components/data/list/components/NoDataMessage.js +9 -22
  180. package/components/data/list/components/StandardListItems.js +79 -85
  181. package/components/data/list/components/index.js +31 -119
  182. package/components/data/list/components/props.js +0 -5
  183. package/components/data/list/hooks/index.js +22 -75
  184. package/components/data/list/hooks/props.js +0 -5
  185. package/components/data/list/hooks/useCurrentPageItems.js +20 -38
  186. package/components/data/list/hooks/useGroupedData.js +19 -33
  187. package/components/data/list/hooks/useListData.js +17 -47
  188. package/components/data/list/hooks/useListEffects.js +168 -237
  189. package/components/data/list/hooks/useListEventHandlers.js +301 -285
  190. package/components/data/list/hooks/useListPagination.js +90 -136
  191. package/components/data/list/hooks/useListState.js +49 -91
  192. package/components/data/list/hooks/useListStateManager.js +104 -159
  193. package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
  194. package/components/data/list/index.d.ts +1 -0
  195. package/components/data/list/index.js +579 -621
  196. package/components/data/list/props.d.ts +4 -0
  197. package/components/data/list/props.js +0 -5
  198. package/components/data/list/templates/media-template.js +29 -50
  199. package/components/data/list/utils/constants.js +20 -32
  200. package/components/data/list/utils/list-helpers.d.ts +2 -1
  201. package/components/data/list/utils/list-helpers.js +71 -115
  202. package/components/data/list/utils/list-widget-methods.js +56 -76
  203. package/components/data/list/utils/widget-instance-utils.js +20 -57
  204. package/components/data/live-filter/index.js +219 -271
  205. package/components/data/live-filter/props.js +5 -12
  206. package/components/data/live-form/index.js +68 -91
  207. package/components/data/live-form/props.js +5 -12
  208. package/components/data/pagination/components/BasicPagination.js +124 -104
  209. package/components/data/pagination/components/ClassicPagination.js +167 -190
  210. package/components/data/pagination/components/InlinePagination.js +97 -98
  211. package/components/data/pagination/components/LoadingComponent.js +17 -30
  212. package/components/data/pagination/components/PageSizeSelector.js +176 -169
  213. package/components/data/pagination/components/PagerNavigation.js +84 -105
  214. package/components/data/pagination/components/TotalRecords.js +48 -47
  215. package/components/data/pagination/components/index.js +14 -47
  216. package/components/data/pagination/components/props.js +0 -5
  217. package/components/data/pagination/hooks/index.js +6 -19
  218. package/components/data/pagination/hooks/props.js +0 -5
  219. package/components/data/pagination/hooks/useNavigationSize.js +12 -21
  220. package/components/data/pagination/hooks/usePagination.js +701 -905
  221. package/components/data/pagination/index.js +336 -389
  222. package/components/data/table/components/AddNewRow.js +122 -154
  223. package/components/data/table/components/EditableCell.js +68 -75
  224. package/components/data/table/components/FieldValidationError.js +19 -20
  225. package/components/data/table/components/RowCells.js +97 -80
  226. package/components/data/table/components/RowExpansionButton.js +43 -39
  227. package/components/data/table/components/SummaryCell.js +54 -88
  228. package/components/data/table/components/SummaryRow.js +45 -52
  229. package/components/data/table/components/SummaryRowFooter.js +35 -42
  230. package/components/data/table/components/TableBody.js +222 -218
  231. package/components/data/table/components/TableDataRow.js +113 -106
  232. package/components/data/table/components/TableFilters.js +391 -390
  233. package/components/data/table/components/TableFooterActions.js +25 -32
  234. package/components/data/table/components/TableHeader.js +460 -435
  235. package/components/data/table/components/TablePanelHeading.js +157 -181
  236. package/components/data/table/components/index.js +27 -95
  237. package/components/data/table/hooks/index.js +21 -230
  238. package/components/data/table/hooks/use-edited-rows.js +59 -94
  239. package/components/data/table/hooks/useCellState.js +58 -83
  240. package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
  241. package/components/data/table/hooks/useDynamicColumns.js +59 -92
  242. package/components/data/table/hooks/useEditingState.js +30 -41
  243. package/components/data/table/hooks/useFormWidget.js +163 -172
  244. package/components/data/table/hooks/usePaginationState.js +67 -77
  245. package/components/data/table/hooks/usePanelStructure.js +47 -41
  246. package/components/data/table/hooks/useResponsiveColumns.js +14 -20
  247. package/components/data/table/hooks/useRowExpansion.js +131 -127
  248. package/components/data/table/hooks/useRowHandlers.js +56 -69
  249. package/components/data/table/hooks/useRowSelection.js +249 -329
  250. package/components/data/table/hooks/useServerSideSorting.js +109 -175
  251. package/components/data/table/hooks/useTableColumns.js +322 -331
  252. package/components/data/table/hooks/useTableData.js +111 -166
  253. package/components/data/table/hooks/useTableEdit.js +526 -564
  254. package/components/data/table/hooks/useTableEffects.js +60 -107
  255. package/components/data/table/hooks/useTableFilter.js +244 -237
  256. package/components/data/table/hooks/useTableInitialization.js +44 -76
  257. package/components/data/table/hooks/useTableState.js +39 -61
  258. package/components/data/table/hooks/useTableStateManager.js +295 -468
  259. package/components/data/table/index.js +1556 -1713
  260. package/components/data/table/live-table/index.js +157 -219
  261. package/components/data/table/props.js +0 -5
  262. package/components/data/table/table-action/index.js +97 -75
  263. package/components/data/table/table-column/index.js +48 -42
  264. package/components/data/table/table-group/index.js +7 -25
  265. package/components/data/table/table-row/index.js +63 -55
  266. package/components/data/table/table-row-action/index.js +102 -77
  267. package/components/data/table/utils/buildSelectionColumns.js +86 -137
  268. package/components/data/table/utils/columnBuilder.d.ts +1 -1
  269. package/components/data/table/utils/columnBuilder.js +121 -160
  270. package/components/data/table/utils/columnProxy.js +48 -66
  271. package/components/data/table/utils/columnWidthDistribution.js +40 -64
  272. package/components/data/table/utils/constants.js +92 -40
  273. package/components/data/table/utils/crud-handlers.js +292 -473
  274. package/components/data/table/utils/dynamic-columns.js +99 -144
  275. package/components/data/table/utils/groupHeaderUtils.js +36 -61
  276. package/components/data/table/utils/index.d.ts +17 -13
  277. package/components/data/table/utils/index.js +483 -639
  278. package/components/data/table/utils/renderDisplayCell.js +127 -169
  279. package/components/data/table/utils/script-page-size-broadcast.js +17 -29
  280. package/components/data/table/utils/selectionUtils.js +59 -113
  281. package/components/data/table/utils/table-helpers.js +38 -74
  282. package/components/data/table/utils/validation.js +35 -78
  283. package/components/data/table/utils/widgetMapping.d.ts +5 -0
  284. package/components/data/table/utils/widgetMapping.js +41 -0
  285. package/components/data/types.js +112 -112
  286. package/components/data/utils/field-data-utils.js +38 -42
  287. package/components/data/utils/filter-field-util.js +42 -44
  288. package/components/data/utils/index.js +112 -111
  289. package/components/dialogs/alert-dialog/index.js +83 -78
  290. package/components/dialogs/alert-dialog/props.js +0 -5
  291. package/components/dialogs/confirm-dialog/index.js +102 -92
  292. package/components/dialogs/confirm-dialog/props.js +0 -5
  293. package/components/dialogs/dialog/index.js +93 -69
  294. package/components/dialogs/dialog/props.js +0 -5
  295. package/components/dialogs/dialog-actions/index.js +12 -26
  296. package/components/dialogs/dialog-actions/props.js +0 -5
  297. package/components/dialogs/dialog-body/index.js +13 -30
  298. package/components/dialogs/dialog-body/props.js +0 -5
  299. package/components/dialogs/dialog-content/index.js +48 -41
  300. package/components/dialogs/dialog-content/props.js +0 -5
  301. package/components/dialogs/dialog-header/index.js +88 -101
  302. package/components/dialogs/dialog-header/props.js +0 -5
  303. package/components/dialogs/iframe-dialog/index.js +136 -128
  304. package/components/dialogs/iframe-dialog/props.js +0 -5
  305. package/components/dialogs/index.js +104 -101
  306. package/components/dialogs/login-dialog/index.js +285 -347
  307. package/components/dialogs/login-dialog/props.js +0 -5
  308. package/components/dialogs/page-dialog/index.js +95 -86
  309. package/components/dialogs/page-dialog/props.js +0 -5
  310. package/components/dialogs/props.js +0 -5
  311. package/components/dialogs/withDialogWrapper.js +110 -83
  312. package/components/form/button/index.js +296 -245
  313. package/components/form/button/props.js +0 -5
  314. package/components/form/button-group/index.js +80 -69
  315. package/components/form/button-group/props.js +0 -5
  316. package/components/input/calendar/index.js +409 -362
  317. package/components/input/calendar/props.js +0 -5
  318. package/components/input/calendar/utils.js +164 -172
  319. package/components/input/chips/SortableChip/index.js +109 -100
  320. package/components/input/chips/SortableChip/props.js +0 -5
  321. package/components/input/chips/index.js +663 -570
  322. package/components/input/chips/props.js +0 -5
  323. package/components/input/chips/utils.js +131 -122
  324. package/components/input/color-picker/index.js +536 -594
  325. package/components/input/color-picker/props.js +0 -5
  326. package/components/input/composite/index.js +71 -110
  327. package/components/input/composite/props.js +0 -5
  328. package/components/input/currency/index.js +277 -224
  329. package/components/input/currency/props.js +0 -5
  330. package/components/input/default/checkbox/index.js +329 -250
  331. package/components/input/default/checkbox/props.js +0 -5
  332. package/components/input/default/checkboxset/index.d.ts +2 -0
  333. package/components/input/default/checkboxset/index.js +529 -446
  334. package/components/input/default/checkboxset/props.d.ts +4 -0
  335. package/components/input/default/checkboxset/props.js +0 -5
  336. package/components/input/default/checkboxset/utils.js +15 -25
  337. package/components/input/default/radioset/index.d.ts +2 -0
  338. package/components/input/default/radioset/index.js +409 -350
  339. package/components/input/default/radioset/props.d.ts +6 -0
  340. package/components/input/default/radioset/props.js +0 -5
  341. package/components/input/default/switch/index.js +494 -458
  342. package/components/input/default/switch/prop.js +0 -5
  343. package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
  344. package/components/input/epoch/date/index.js +638 -518
  345. package/components/input/epoch/date/props.js +0 -5
  346. package/components/input/epoch/date/styled.js +61 -70
  347. package/components/input/epoch/date/utils.js +67 -115
  348. package/components/input/epoch/datetime/index.js +758 -695
  349. package/components/input/epoch/datetime/props.js +0 -5
  350. package/components/input/epoch/datetime/utils.js +121 -186
  351. package/components/input/epoch/time/index.js +441 -415
  352. package/components/input/epoch/time/props.js +0 -5
  353. package/components/input/epoch/time/utils.js +101 -112
  354. package/components/input/fileupload/Utils.js +70 -97
  355. package/components/input/fileupload/components/ListItems.js +132 -130
  356. package/components/input/fileupload/components/MultiUpload.js +80 -77
  357. package/components/input/fileupload/components/SingleUpload.js +57 -57
  358. package/components/input/fileupload/index.js +253 -178
  359. package/components/input/fileupload/props.js +0 -5
  360. package/components/input/fileupload/useFileUpload.js +209 -258
  361. package/components/input/number/index.js +434 -393
  362. package/components/input/number/props.js +0 -5
  363. package/components/input/rating/index.js +401 -394
  364. package/components/input/rating/props.js +0 -5
  365. package/components/input/select/index.js +408 -463
  366. package/components/input/select/props.js +0 -5
  367. package/components/input/slider/index.js +339 -332
  368. package/components/input/slider/props.js +0 -5
  369. package/components/input/text/index.d.ts +3 -3
  370. package/components/input/text/index.js +438 -475
  371. package/components/input/text/props.d.ts +1 -1
  372. package/components/input/text/props.js +0 -5
  373. package/components/input/text/util.js +82 -222
  374. package/components/input/textarea/index.js +322 -358
  375. package/components/input/textarea/props.js +0 -5
  376. package/components/input/upload/index.js +135 -131
  377. package/components/input/upload/props.js +0 -5
  378. package/components/input/util/index.js +9 -11
  379. package/components/layout/footer/index.js +12 -35
  380. package/components/layout/footer/props.js +0 -5
  381. package/components/layout/header/index.js +12 -38
  382. package/components/layout/header/props.js +0 -5
  383. package/components/layout/leftnav/index.js +57 -44
  384. package/components/layout/leftnav/props.d.ts +9 -0
  385. package/components/layout/leftnav/props.js +0 -5
  386. package/components/layout/leftnav/utils/page-class-util.d.ts +9 -0
  387. package/components/layout/leftnav/utils/page-class-util.js +28 -0
  388. package/components/layout/rightnav/index.js +12 -36
  389. package/components/layout/rightnav/props.js +0 -5
  390. package/components/layout/topnav/index.js +24 -38
  391. package/components/layout/topnav/props.js +0 -5
  392. package/components/navbar/index.js +119 -98
  393. package/components/navbar/nav/index.js +236 -232
  394. package/components/navbar/nav/props.js +0 -5
  395. package/components/navbar/nav-item/index.js +74 -65
  396. package/components/navbar/nav-item/props.js +0 -5
  397. package/components/navigation/breadcrumb/index.js +38 -61
  398. package/components/navigation/breadcrumb/props.js +0 -5
  399. package/components/navigation/menu/components/ListItems.js +76 -67
  400. package/components/navigation/menu/constants.js +27 -42
  401. package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
  402. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
  403. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
  404. package/components/navigation/menu/index.js +911 -846
  405. package/components/navigation/menu/props.js +0 -5
  406. package/components/navigation/menu/utils/action-task.js +6 -9
  407. package/components/navigation/menu/utils/role-filter.js +41 -56
  408. package/components/navigation/popover/index.js +192 -205
  409. package/components/navigation/popover/props.js +5 -8
  410. package/components/page/content/index.js +9 -31
  411. package/components/page/content/props.js +0 -5
  412. package/components/page/error-boundary/index.js +115 -105
  413. package/components/page/error-boundary/props.js +0 -5
  414. package/components/page/index.js +100 -102
  415. package/components/page/page-content/index.js +21 -30
  416. package/components/page/page-content/props.js +0 -5
  417. package/components/page/page-context.d.ts +4 -0
  418. package/components/page/page-context.js +5 -0
  419. package/components/page/partial/index.js +50 -45
  420. package/components/page/partial/props.js +0 -5
  421. package/components/page/partial-container/index.js +78 -107
  422. package/components/page/partial-container/props.d.ts +1 -1
  423. package/components/page/partial-container/props.js +0 -5
  424. package/components/page/props.js +0 -5
  425. package/components/page/toast-container/index.js +20 -41
  426. package/components/page/toast-container/props.js +0 -5
  427. package/components/prefab/container/index.js +60 -53
  428. package/components/prefab/container/props.js +0 -5
  429. package/components/prefab/index.js +76 -61
  430. package/components/prefab/props.js +0 -5
  431. package/context/AppContext.d.ts +1 -1
  432. package/context/AppContext.js +17 -18
  433. package/context/AppSpinnerProvider.js +19 -34
  434. package/context/LayoutProvider.js +54 -57
  435. package/context/LocalizationProvider.js +34 -49
  436. package/context/PrefabContext.js +68 -119
  437. package/context/WidgetProvider.js +160 -166
  438. package/core/app-config.js +0 -1
  439. package/core/app.service.js +200 -327
  440. package/core/appVariablesStore.js +10 -15
  441. package/core/appstore.js +37 -53
  442. package/core/constants/currency-constant.js +81 -83
  443. package/core/constants/events.js +34 -44
  444. package/core/constants/index.js +21 -31
  445. package/core/dialog.service.js +52 -72
  446. package/core/event-notifier.js +94 -131
  447. package/core/formatter/array-formatters.js +18 -32
  448. package/core/formatter/date-formatters.js +140 -204
  449. package/core/formatter/index.js +64 -117
  450. package/core/formatter/number-formatters.js +115 -159
  451. package/core/formatter/security-formatters.js +233 -283
  452. package/core/formatter/string-formatters.js +23 -45
  453. package/core/formatter/types.js +12 -18
  454. package/core/formatters.js +6 -24
  455. package/core/proxy-service.js +242 -306
  456. package/core/script-registry.js +87 -134
  457. package/core/security.service.js +8 -11
  458. package/core/util/compare.js +13 -25
  459. package/core/util/dom.js +32 -63
  460. package/core/util/index.js +92 -98
  461. package/core/util/safe-is-equal.js +42 -94
  462. package/core/util/security.js +114 -153
  463. package/core/util/utils.d.ts +4 -1
  464. package/core/util/utils.js +88 -159
  465. package/core/widget-observer.js +34 -61
  466. package/higherOrder/BaseApp.js +328 -502
  467. package/higherOrder/BaseAppProps.d.ts +1 -0
  468. package/higherOrder/BaseAppProps.js +0 -5
  469. package/higherOrder/BaseDateTime.js +277 -231
  470. package/higherOrder/BasePage.js +474 -740
  471. package/higherOrder/BasePartial.js +87 -114
  472. package/higherOrder/BasePrefab.js +190 -206
  473. package/higherOrder/DataNav.js +287 -302
  474. package/higherOrder/helper.js +62 -48
  475. package/higherOrder/props.js +0 -5
  476. package/higherOrder/withBaseWrapper.js +123 -168
  477. package/higherOrder/withStandalone.js +28 -26
  478. package/hooks/useAccess.js +113 -289
  479. package/hooks/useAppConfig.js +15 -40
  480. package/hooks/useAuth.js +256 -495
  481. package/hooks/useDataSourceSubscription.d.ts +3 -3
  482. package/hooks/useDataSourceSubscription.js +99 -109
  483. package/hooks/useDebounce.js +28 -56
  484. package/hooks/useDeviceVisibility.js +14 -23
  485. package/hooks/useHttp.d.ts +1 -0
  486. package/hooks/useHttp.js +314 -493
  487. package/libs/index.js +4 -13
  488. package/libs/prefab/index.js +6 -20
  489. package/mui-config/theme-provider.js +9 -17
  490. package/mui-config/theme.js +6 -9
  491. package/package-lock.json +816 -3207
  492. package/package.json +3 -19
  493. package/providers/AppProviders.js +21 -24
  494. package/runtime-dynamic/App.js +65 -93
  495. package/runtime-dynamic/app-initializer.js +193 -411
  496. package/runtime-dynamic/components/ErrorBoundary.js +59 -76
  497. package/runtime-dynamic/components/PageWrapper.js +23 -35
  498. package/runtime-dynamic/components/PrefabPreview.js +40 -69
  499. package/runtime-dynamic/components/partial-content.d.ts +2 -3
  500. package/runtime-dynamic/components/partial-content.js +66 -45
  501. package/runtime-dynamic/components/prefab-content.js +37 -30
  502. package/runtime-dynamic/components/use-dynamic-component.js +55 -157
  503. package/runtime-dynamic/factories/build-base-page-like-component.d.ts +1 -1
  504. package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
  505. package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
  506. package/runtime-dynamic/factories/dynamic-component.js +91 -0
  507. package/runtime-dynamic/factories/prefab-factory.d.ts +1 -1
  508. package/runtime-dynamic/factories/prefab-factory.js +60 -81
  509. package/runtime-dynamic/factories/startup-info.js +12 -25
  510. package/runtime-dynamic/factories/utils.d.ts +2 -10
  511. package/runtime-dynamic/factories/utils.js +47 -129
  512. package/runtime-dynamic/index.js +56 -191
  513. package/runtime-dynamic/main.js +42 -70
  514. package/runtime-dynamic/preview-mode.js +14 -29
  515. package/runtime-dynamic/preview-navigation.js +21 -30
  516. package/runtime-dynamic/preview-path.d.ts +5 -0
  517. package/runtime-dynamic/preview-path.js +13 -0
  518. package/runtime-dynamic/preview-resource-base.js +15 -31
  519. package/runtime-dynamic/registry/component-registry.js +269 -334
  520. package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
  521. package/runtime-dynamic/registry/index.js +24 -63
  522. package/runtime-dynamic/registry/store.d.ts +1 -0
  523. package/runtime-dynamic/registry/store.js +18 -23
  524. package/runtime-dynamic/routes.js +53 -81
  525. package/runtime-dynamic/services/app-extension-provider.js +17 -44
  526. package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
  527. package/runtime-dynamic/services/autolayout-inject.js +27 -0
  528. package/runtime-dynamic/services/compile-render.d.ts +9 -0
  529. package/runtime-dynamic/services/compile-render.js +142 -0
  530. package/runtime-dynamic/services/component-ref-provider.d.ts +18 -3
  531. package/runtime-dynamic/services/component-ref-provider.js +52 -129
  532. package/runtime-dynamic/services/css-scoping.js +23 -28
  533. package/runtime-dynamic/services/fragment-url.js +37 -50
  534. package/runtime-dynamic/services/index.d.ts +2 -3
  535. package/runtime-dynamic/services/index.js +31 -152
  536. package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
  537. package/runtime-dynamic/services/markup-transpiler.js +39 -231
  538. package/runtime-dynamic/services/prefab-resources.js +40 -118
  539. package/runtime-dynamic/services/resource-manager.d.ts +2 -2
  540. package/runtime-dynamic/services/resource-manager.js +24 -65
  541. package/runtime-dynamic/services/script-executor.js +46 -63
  542. package/runtime-dynamic/services/variable-factory.js +141 -184
  543. package/runtime-dynamic/services/variable-registry.js +65 -115
  544. package/runtime-dynamic/services/variable-transpiler.js +73 -103
  545. package/runtime-dynamic/shims/next-image.js +79 -50
  546. package/runtime-dynamic/shims/next-link.js +58 -32
  547. package/runtime-dynamic/shims/next-navigation.js +17 -34
  548. package/runtime-dynamic/utils/index.js +15 -30
  549. package/store/bindActions/i18nActions.js +16 -18
  550. package/store/index.js +29 -35
  551. package/store/middleware/navigationMiddleware.js +25 -45
  552. package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
  553. package/store/slices/appConfigSlice.js +65 -94
  554. package/store/slices/authSlice.js +317 -471
  555. package/store/slices/i18nSlice.js +169 -168
  556. package/store/slices/navigationSlice.js +22 -20
  557. package/store/util/resolve-path.d.ts +1 -0
  558. package/store/util/resolve-path.js +7 -0
  559. package/store/viewport.service.js +150 -194
  560. package/types/index.js +10 -15
  561. package/utils/attr.js +191 -41
  562. package/utils/custom-expression/index.js +58 -151
  563. package/utils/custom-expression/parser.js +108 -182
  564. package/utils/dataset-util.js +113 -154
  565. package/utils/eval-expression.js +10 -19
  566. package/utils/form-state.util.js +60 -118
  567. package/utils/form-utils.js +49 -190
  568. package/utils/format-util.js +113 -184
  569. package/utils/layoutsize-util.js +11 -17
  570. package/utils/lib-error-skipper.js +54 -52
  571. package/utils/page-params-util.js +50 -40
  572. package/utils/pending-tab-navigation-intent.js +7 -17
  573. package/utils/resource-url.js +8 -19
  574. package/utils/state-persistance.d.ts +1 -1
  575. package/utils/state-persistance.js +136 -253
  576. package/utils/style-utils.js +24 -78
  577. package/utils/transformedDataset-utils.js +353 -381
  578. package/utils/widget-cleanup-util.js +42 -74
  579. package/utils/widgets.js +19 -31
  580. package/variables/base-variable.js +117 -166
  581. package/variables/constants.js +5 -8
  582. package/variables/crud-variable.js +150 -181
  583. package/variables/live-variable.d.ts +1 -1
  584. package/variables/live-variable.js +140 -174
  585. package/variables/metadata.service.js +74 -116
  586. package/variables/model-variable.js +68 -78
  587. package/variables/service-variable.js +171 -285
  588. package/wm-namespace.js +11 -14
  589. package/components/chart/src/css.d.js +0 -1
  590. package/runtime-dynamic/services/cache.d.ts +0 -29
  591. package/runtime-dynamic/services/cache.js +0 -57
  592. package/tsconfig.declaration.tsbuildinfo +0 -1
  593. package/types/global.d.js +0 -3
@@ -1,616 +1,503 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- var _typeof3 = require("@babel/runtime/helpers/typeof");
5
- Object.defineProperty(exports, "__esModule", {
6
- value: true
7
- });
8
- exports["default"] = void 0;
9
- var _react = _interopRequireWildcard(require("react"));
10
- var _regenerator = _interopRequireDefault(require("@babel/runtime/regenerator"));
11
- var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
12
- var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
13
- var _asyncToGenerator2 = _interopRequireDefault(require("@babel/runtime/helpers/asyncToGenerator"));
14
- var _typeof2 = _interopRequireDefault(require("@babel/runtime/helpers/typeof"));
15
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
16
- var _clsx = _interopRequireDefault(require("clsx"));
17
- var _reactHookForm = require("react-hook-form");
18
- var _get = _interopRequireDefault(require("lodash-es/get"));
19
- var _lodashEs = require("lodash-es");
20
- var _props = require("./props");
21
- var _formContext = require("../form-context");
22
- var _utils = require("../../table/utils");
23
- var _listHelpers = require("../../list/utils/list-helpers");
24
- var _utils2 = require("./utils");
25
- var _hooks = require("./hooks");
26
- function _interopRequireWildcard(e, t) { if ("function" == typeof WeakMap) var r = new WeakMap(), n = new WeakMap(); return (_interopRequireWildcard = function _interopRequireWildcard(e, t) { if (!t && e && e.__esModule) return e; var o, i, f = { __proto__: null, "default": e }; if (null === e || "object" != _typeof3(e) && "function" != typeof e) return f; if (o = t ? n : r) { if (o.has(e)) return o.get(e); o.set(e, f); } for (var _t2 in e) "default" !== _t2 && {}.hasOwnProperty.call(e, _t2) && ((i = (o = Object.defineProperty) && Object.getOwnPropertyDescriptor(e, _t2)) && (i.get || i.set) ? o(f, _t2, i) : f[_t2] = e[_t2]); return f; })(e, t); }
27
- var __jsx = _react["default"].createElement;
28
- function _createForOfIteratorHelper(r, e) { var t = "undefined" != typeof Symbol && r[Symbol.iterator] || r["@@iterator"]; if (!t) { if (Array.isArray(r) || (t = _unsupportedIterableToArray(r)) || e && r && "number" == typeof r.length) { t && (r = t); var _n = 0, F = function F() {}; return { s: F, n: function n() { return _n >= r.length ? { done: !0 } : { done: !1, value: r[_n++] }; }, e: function e(r) { throw r; }, f: F }; } throw new TypeError("Invalid attempt to iterate non-iterable instance.\nIn order to be iterable, non-array objects must have a [Symbol.iterator]() method."); } var o, a = !0, u = !1; return { s: function s() { t = t.call(r); }, n: function n() { var r = t.next(); return a = r.done, r; }, e: function e(r) { u = !0, o = r; }, f: function f() { try { a || null == t["return"] || t["return"](); } finally { if (u) throw o; } } }; }
29
- function _unsupportedIterableToArray(r, a) { if (r) { if ("string" == typeof r) return _arrayLikeToArray(r, a); var t = {}.toString.call(r).slice(8, -1); return "Object" === t && r.constructor && (t = r.constructor.name), "Map" === t || "Set" === t ? Array.from(r) : "Arguments" === t || /^(?:Ui|I)nt(?:8|16|32)(?:Clamped)?Array$/.test(t) ? _arrayLikeToArray(r, a) : void 0; } }
30
- function _arrayLikeToArray(r, a) { (null == a || a > r.length) && (a = r.length); for (var e = 0, n = Array(a); e < a; e++) n[e] = r[e]; return n; }
31
- function ownKeys(e, r) { var t = Object.keys(e); if (Object.getOwnPropertySymbols) { var o = Object.getOwnPropertySymbols(e); r && (o = o.filter(function (r) { return Object.getOwnPropertyDescriptor(e, r).enumerable; })), t.push.apply(t, o); } return t; }
32
- function _objectSpread(e) { for (var r = 1; r < arguments.length; r++) { var t = null != arguments[r] ? arguments[r] : {}; r % 2 ? ownKeys(Object(t), !0).forEach(function (r) { (0, _defineProperty2["default"])(e, r, t[r]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(e, Object.getOwnPropertyDescriptors(t)) : ownKeys(Object(t)).forEach(function (r) { Object.defineProperty(e, r, Object.getOwnPropertyDescriptor(t, r)); }); } return e; }
33
- var DEFAULT_CLASS = "panel app-panel app-form";
34
- var BaseForm = function BaseForm(WrappedComponent) {
35
- var ControlledForm = function ControlledForm(FormProps) {
36
- var _listener$Widgets;
37
- var props = _objectSpread(_objectSpread({}, _props.defaultProps), FormProps);
38
- var formName = props.name,
39
- initialExpanded = props.expanded,
40
- isInsideWizard = props.isInsideWizard,
41
- formdata = props.formdata,
42
- listener = props.listener,
43
- className = props.className,
44
- collapsible = props.collapsible,
45
- captionwidth = props.captionwidth,
46
- captionposition = props.captionposition,
47
- itemsperrow = props.itemsperrow,
48
- messagelayout = props.messagelayout,
49
- errormessage = props.errormessage,
50
- _props$standalone = props.standalone,
51
- standalone = _props$standalone === void 0 ? false : _props$standalone;
52
-
53
- // ========== REFS ==========
54
- var parentFormRef = (0, _formContext.useFormRef)();
55
- var formReff = (0, _react.useRef)(null);
56
- var formRef = (0, _react.useRef)(null);
57
- var messageRef = (0, _react.useRef)(null);
58
- var formIdRef = (0, _react.useRef)(Math.random().toString(36).substring(2, 15));
59
- var formfieldsRef = (0, _react.useRef)({});
60
- var formDataref = (0, _react.useRef)(null);
61
- var lastEmittedValuesSerialized = (0, _react.useRef)("");
62
- var lastUpdateOriginRef = (0, _react.useRef)("external");
63
-
64
- // ========== STATE ==========
65
- var _useState = (0, _react.useState)(initialExpanded),
66
- expanded = _useState[0],
67
- setExpanded = _useState[1];
68
- var _useState2 = (0, _react.useState)(),
69
- childFormData = _useState2[0],
70
- setChildFormData = _useState2[1];
71
- var _useState3 = (0, _react.useState)({}),
72
- formfields = _useState3[0],
73
- setFormfields = _useState3[1];
74
- var _useState4 = (0, _react.useState)({}),
75
- headerActions = _useState4[0],
76
- setHeaderActions = _useState4[1];
77
- var _useState5 = (0, _react.useState)(false),
78
- showmessage = _useState5[0],
79
- setShowMessage = _useState5[1];
80
- var _useState6 = (0, _react.useState)({
81
- caption: "",
82
- type: ""
83
- }),
84
- statusMessage = _useState6[0],
85
- setStatusMessage = _useState6[1];
86
-
87
- // ========== REACT HOOK FORM ==========
88
- var _useForm = (0, _reactHookForm.useForm)({
89
- defaultValues: formdata,
90
- mode: "onTouched",
91
- reValidateMode: "onBlur"
92
- }),
93
- control = _useForm.control,
94
- handleSubmit = _useForm.handleSubmit,
95
- _useForm$formState = _useForm.formState,
96
- errors = _useForm$formState.errors,
97
- isValid = _useForm$formState.isValid,
98
- submitCount = _useForm$formState.submitCount,
99
- reset = _useForm.reset,
100
- watch = _useForm.watch,
101
- trigger = _useForm.trigger,
102
- getValues = _useForm.getValues,
103
- clearErrors = _useForm.clearErrors,
104
- setValue = _useForm.setValue;
105
-
106
- // ========== COMPLEX HOOKS ==========
107
-
108
- // Parent-child form relationship detection
109
- var _useParentFormRelatio = (0, _hooks.useParentFormRelationship)({
110
- name: formName || "",
111
- parentForm: props.parentForm,
112
- isParentList: props.isParentList,
113
- parentListName: props.parentListName,
114
- childdatasetnode: props.childdatasetnode,
115
- formArrayIndex: props.formArrayIndex
116
- }),
117
- formType = _useParentFormRelatio.formType,
118
- formArrayIndex = _useParentFormRelatio.formArrayIndex,
119
- effectiveChildDatasetNode = _useParentFormRelatio.effectiveChildDatasetNode,
120
- fullDataPath = _useParentFormRelatio.fullDataPath,
121
- rootParentForm = _useParentFormRelatio.rootParentForm,
122
- parentFormData = _useParentFormRelatio.parentFormData,
123
- parentFormDataContext = _useParentFormRelatio.parentFormDataContext;
124
-
125
- // Derived flags from formType for clearer code
126
- var isChildForm = (0, _hooks.isChildFormType)(formType);
127
- var hasPrefixedFields = (0, _hooks.usesPrefixedFields)(formType);
128
-
129
- // Form data sync manager
130
- var _useFormDataSync = (0, _hooks.useFormDataSync)({
131
- reset: reset,
132
- formType: formType,
133
- formName: formName
134
- }),
135
- currentFormData = _useFormDataSync.currentFormData,
136
- syncFormData = _useFormDataSync.syncFormData,
137
- resetFormData = _useFormDataSync.resetFormData,
138
- clearFormData = _useFormDataSync.clearFormData,
139
- markCurrentData = _useFormDataSync.markCurrentData,
140
- isUpdating = _useFormDataSync.isUpdating;
141
-
142
- // ========== MEMOIZED VALUES ==========
143
-
144
- // Layout classes (inlined from useFormLayout)
145
- var _useMemo = (0, _react.useMemo)(function () {
146
- return (0, _utils2.getFieldLayoutConfig)(captionwidth, captionposition, "os");
147
- }, [captionwidth, captionposition]),
148
- captionCls = _useMemo.captionCls,
149
- widgetCls = _useMemo.widgetCls;
150
- var itemsPerRow = (0, _react.useMemo)(function () {
1
+ var __defProp = Object.defineProperty;
2
+ var __defProps = Object.defineProperties;
3
+ var __getOwnPropDescs = Object.getOwnPropertyDescriptors;
4
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
7
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
8
+ var __spreadValues = (a, b) => {
9
+ for (var prop in b || (b = {}))
10
+ if (__hasOwnProp.call(b, prop))
11
+ __defNormalProp(a, prop, b[prop]);
12
+ if (__getOwnPropSymbols)
13
+ for (var prop of __getOwnPropSymbols(b)) {
14
+ if (__propIsEnum.call(b, prop))
15
+ __defNormalProp(a, prop, b[prop]);
16
+ }
17
+ return a;
18
+ };
19
+ var __spreadProps = (a, b) => __defProps(a, __getOwnPropDescs(b));
20
+ import { jsx } from "react/jsx-runtime";
21
+ import { useMemo, useState, useRef, useEffect, useCallback } from "react";
22
+ import clsx from "clsx";
23
+ import { useForm } from "react-hook-form";
24
+ import get from "lodash-es/get";
25
+ import { debounce } from "lodash-es";
26
+ import { defaultProps } from "./props";
27
+ import {
28
+ FormProvider,
29
+ useFormRef as useFormContextRef,
30
+ ParentFormDataContext
31
+ } from "../form-context";
32
+ import { cleanRowData } from "../../table/utils";
33
+ import { getItemsPerRowClass } from "../../list/utils/list-helpers";
34
+ import {
35
+ getFieldLayoutConfig,
36
+ isElementInViewport,
37
+ scrollToElement,
38
+ transformRangeFilterData,
39
+ getWidgetFormData,
40
+ setWidgetFormData,
41
+ getWidgetFormFields,
42
+ registerChildFieldInWidget
43
+ } from "./utils";
44
+ import {
45
+ useFormDataSync,
46
+ useParentFormRelationship,
47
+ useFormValidation,
48
+ useFormOperations,
49
+ useFormSubmission,
50
+ FormType,
51
+ isChildFormType,
52
+ usesPrefixedFields
53
+ } from "./hooks";
54
+ const DEFAULT_CLASS = "panel app-panel app-form";
55
+ const BaseForm = (WrappedComponent) => {
56
+ const ControlledForm = (FormProps) => {
57
+ var _a, _b;
58
+ const props = __spreadValues(__spreadValues({}, defaultProps), FormProps);
59
+ const {
60
+ name: formName,
61
+ expanded: initialExpanded,
62
+ isInsideWizard,
63
+ formdata,
64
+ listener,
65
+ className,
66
+ collapsible,
67
+ captionwidth,
68
+ captionposition,
69
+ itemsperrow,
70
+ messagelayout,
71
+ errormessage,
72
+ standalone = false
73
+ } = props;
74
+ const parentFormRef = useFormContextRef();
75
+ const formReff = useRef(null);
76
+ const formRef = useRef(null);
77
+ const messageRef = useRef(null);
78
+ const formIdRef = useRef(Math.random().toString(36).substring(2, 15));
79
+ const formfieldsRef = useRef({});
80
+ const formDataref = useRef(null);
81
+ const lastEmittedValuesSerialized = useRef("");
82
+ const lastUpdateOriginRef = useRef("external");
83
+ const [expanded, setExpanded] = useState(initialExpanded);
84
+ const [childFormData, setChildFormData] = useState();
85
+ const [formfields, setFormfields] = useState({});
86
+ const [headerActions, setHeaderActions] = useState({});
87
+ const [showmessage, setShowMessage] = useState(false);
88
+ const [statusMessage, setStatusMessage] = useState({
89
+ caption: "",
90
+ type: ""
91
+ });
92
+ const {
93
+ control,
94
+ handleSubmit,
95
+ formState: { errors, isValid, submitCount },
96
+ reset,
97
+ watch,
98
+ trigger,
99
+ getValues,
100
+ clearErrors,
101
+ setValue
102
+ } = useForm({
103
+ defaultValues: formdata,
104
+ mode: "onTouched",
105
+ reValidateMode: "onBlur"
106
+ });
107
+ const {
108
+ formType,
109
+ formArrayIndex,
110
+ effectiveChildDatasetNode,
111
+ fullDataPath,
112
+ rootParentForm,
113
+ parentFormData,
114
+ parentFormDataContext
115
+ } = useParentFormRelationship({
116
+ name: formName || "",
117
+ parentForm: props.parentForm,
118
+ isParentList: props.isParentList,
119
+ parentListName: props.parentListName,
120
+ childdatasetnode: props.childdatasetnode,
121
+ formArrayIndex: props.formArrayIndex
122
+ });
123
+ const isChildForm = isChildFormType(formType);
124
+ const hasPrefixedFields = usesPrefixedFields(formType);
125
+ const {
126
+ currentFormData,
127
+ syncFormData,
128
+ resetFormData,
129
+ clearFormData,
130
+ markCurrentData,
131
+ isUpdating
132
+ } = useFormDataSync({
133
+ reset,
134
+ formType,
135
+ formName
136
+ });
137
+ const { captionCls, widgetCls } = useMemo(
138
+ () => getFieldLayoutConfig(captionwidth, captionposition, "os"),
139
+ [captionwidth, captionposition]
140
+ );
141
+ const itemsPerRow = useMemo(() => {
151
142
  if (itemsperrow == null || String(itemsperrow).trim() === "") {
152
- // Match Angular when the prop was never set: no setListClass → often no derived class.
153
- return undefined;
143
+ return void 0;
154
144
  }
155
- return (0, _listHelpers.getItemsPerRowClass)(String(itemsperrow));
145
+ return getItemsPerRowClass(String(itemsperrow));
156
146
  }, [itemsperrow]);
157
- var listenerWidgetFormdata = formName ? listener === null || listener === void 0 || (_listener$Widgets = listener.Widgets) === null || _listener$Widgets === void 0 || (_listener$Widgets = _listener$Widgets[formName]) === null || _listener$Widgets === void 0 ? void 0 : _listener$Widgets.formdata : undefined;
158
-
159
- // Widget form data
160
- var widgetFormData = (0, _react.useMemo)(function () {
147
+ const listenerWidgetFormdata = formName ? (_b = (_a = listener == null ? void 0 : listener.Widgets) == null ? void 0 : _a[formName]) == null ? void 0 : _b.formdata : void 0;
148
+ const widgetFormData = useMemo(() => {
161
149
  if (!formName) return formdata;
162
- var widgetData = (0, _utils2.getWidgetFormData)(listener, formName);
163
- var proxyFormdata = widgetData === null || widgetData === void 0 ? void 0 : widgetData.formdata;
150
+ const widgetData = getWidgetFormData(listener, formName);
151
+ const proxyFormdata = widgetData == null ? void 0 : widgetData.formdata;
164
152
  return proxyFormdata && Object.keys(proxyFormdata).length > 0 ? proxyFormdata : formdata;
165
153
  }, [formName, formdata, listenerWidgetFormdata]);
166
-
167
- // Form class name
168
- var formClassName = (0, _react.useMemo)(function () {
169
- return isInsideWizard ? (0, _clsx["default"])(className) : (0, _clsx["default"])(DEFAULT_CLASS, className);
154
+ const formClassName = useMemo(() => {
155
+ return isInsideWizard ? clsx(className) : clsx(DEFAULT_CLASS, className);
170
156
  }, [isInsideWizard, className]);
171
-
172
- // Compute fields for onDataSourceChange
173
- var fields = (0, _react.useMemo)(function () {
174
- var newFields = [];
157
+ const fields = useMemo(() => {
158
+ const newFields = [];
175
159
  if (!formName) return newFields;
176
- var Widgets = (0, _utils2.getWidgetFormFields)(listener, formName) || {};
177
- Object.keys(Widgets).forEach(function (key) {
160
+ const Widgets = getWidgetFormFields(listener, formName) || {};
161
+ Object.keys(Widgets).forEach((key) => {
178
162
  if (!key.includes("formWidget") && Widgets[key]) {
179
163
  newFields.push(Widgets[key]);
180
164
  }
181
165
  });
182
166
  return newFields;
183
167
  }, [formName]);
184
-
185
- // ========== CALLBACKS ==========
186
-
187
- // Field registry callbacks (inlined from useFormFieldRegistry)
188
- var registerHeaderAction = (0, _react.useCallback)(function (actionName, action) {
168
+ const registerHeaderAction = useCallback((actionName, action) => {
189
169
  if (!action || !actionName) return;
190
- setHeaderActions(function (prev) {
170
+ setHeaderActions((prev) => {
191
171
  if (!prev[actionName]) {
192
- return _objectSpread(_objectSpread({}, prev), {}, (0, _defineProperty2["default"])({}, actionName, action));
172
+ return __spreadProps(__spreadValues({}, prev), { [actionName]: action });
193
173
  }
194
174
  return prev;
195
175
  });
196
176
  }, []);
197
- var onChangeHandler = (0, _react.useCallback)(function (fieldName, value) {
198
- if (!fieldName || value === undefined) return;
199
- setFormfields(function (prev) {
200
- return _objectSpread(_objectSpread({}, prev), {}, (0, _defineProperty2["default"])({}, fieldName, _objectSpread(_objectSpread({}, prev[fieldName]), {}, {
201
- value: value,
202
- datavalue: value
203
- })));
204
- });
177
+ const onChangeHandler = useCallback((fieldName, value) => {
178
+ if (!fieldName || value === void 0) return;
179
+ setFormfields((prev) => __spreadProps(__spreadValues({}, prev), {
180
+ [fieldName]: __spreadProps(__spreadValues({}, prev[fieldName]), { value, datavalue: value })
181
+ }));
205
182
  }, []);
206
-
207
- // Message callbacks (inlined from useFormMessage)
208
- var checkAppServiceErrorMsg = (0, _react.useCallback)(function (type) {
209
- var notificationAction = (0, _get["default"])(listener, "Actions.appNotification");
183
+ const checkAppServiceErrorMsg = useCallback((type) => {
184
+ var _a2;
185
+ const notificationAction = get(listener, "Actions.appNotification");
210
186
  if (notificationAction && type === "error") {
211
- var _notificationAction$g;
212
- return notificationAction === null || notificationAction === void 0 || (_notificationAction$g = notificationAction.getMessage) === null || _notificationAction$g === void 0 ? void 0 : _notificationAction$g.call(notificationAction);
187
+ return (_a2 = notificationAction == null ? void 0 : notificationAction.getMessage) == null ? void 0 : _a2.call(notificationAction);
213
188
  }
214
- return undefined;
189
+ return void 0;
215
190
  }, []);
216
- var clearMessage = (0, _react.useCallback)(function () {
217
- setStatusMessage({
218
- caption: "",
219
- type: ""
220
- });
191
+ const clearMessage = useCallback(() => {
192
+ setStatusMessage({ caption: "", type: "" });
221
193
  setShowMessage(false);
222
194
  }, []);
223
- var toggleMessage = (0, _react.useCallback)(function (state, msg, type) {
224
- var template = msg;
225
- if (state && msg) {
226
- if (type === "error" && errormessage && errormessage.length > 0) {
227
- template = errormessage;
228
- }
229
- if (messagelayout === "Inline") {
230
- var _messageRef$current;
231
- template = checkAppServiceErrorMsg(type) || template;
232
- setStatusMessage({
233
- caption: template || "",
234
- type: type
235
- });
236
- setShowMessage(true);
237
- if ((_messageRef$current = messageRef.current) !== null && _messageRef$current !== void 0 && _messageRef$current.showMessage) {
238
- messageRef.current.showMessage(template, type);
195
+ const toggleMessage = useCallback(
196
+ (state, msg, type) => {
197
+ var _a2, _b2, _c;
198
+ let template = msg;
199
+ if (state && msg) {
200
+ if (type === "error" && errormessage && errormessage.length > 0) {
201
+ template = errormessage;
239
202
  }
240
- var formEl = formRef.current;
241
- if (formEl && !(0, _utils2.isElementInViewport)(formEl)) {
242
- (0, _utils2.scrollToElement)(formEl);
203
+ if (messagelayout === "Inline") {
204
+ template = checkAppServiceErrorMsg(type) || template;
205
+ setStatusMessage({ caption: template || "", type });
206
+ setShowMessage(true);
207
+ if ((_a2 = messageRef.current) == null ? void 0 : _a2.showMessage) {
208
+ messageRef.current.showMessage(template, type);
209
+ }
210
+ const formEl = formRef.current;
211
+ if (formEl && !isElementInViewport(formEl)) {
212
+ scrollToElement(formEl);
213
+ }
214
+ } else {
215
+ (_c = (_b2 = listener == null ? void 0 : listener.App) == null ? void 0 : _b2.notifyApp) == null ? void 0 : _c.call(_b2, template || "", type || "", true);
243
216
  }
244
217
  } else {
245
- var _listener$App, _listener$App$notifyA;
246
- listener === null || listener === void 0 || (_listener$App = listener.App) === null || _listener$App === void 0 || (_listener$App$notifyA = _listener$App.notifyApp) === null || _listener$App$notifyA === void 0 || _listener$App$notifyA.call(_listener$App, template || "", type || "", true);
218
+ setStatusMessage({ caption: "", type: "" });
219
+ setShowMessage(false);
247
220
  }
248
- } else {
249
- setStatusMessage({
250
- caption: "",
251
- type: ""
252
- });
253
- setShowMessage(false);
254
- }
255
- if (formRef.current) {
256
- (0, _utils2.scrollToElement)(formRef.current);
257
- }
258
- }, [messagelayout, errormessage, checkAppServiceErrorMsg]);
259
-
260
- // Child form callbacks (inlined from useChildFormCallbacks)
261
- var handleChildDataChange = (0, _react.useCallback)(function (fullDataPath, formData) {
262
- if (!fullDataPath || !formData) return;
263
- var currentValues = getValues();
264
- var pathParts = fullDataPath.replace(/\[(\d+)\]/g, ".$1").split(".");
265
- var existingData = currentValues;
266
- var _iterator = _createForOfIteratorHelper(pathParts),
267
- _step;
268
- try {
269
- for (_iterator.s(); !(_step = _iterator.n()).done;) {
270
- var part = _step.value;
271
- if (existingData && (0, _typeof2["default"])(existingData) === "object") {
221
+ if (formRef.current) {
222
+ scrollToElement(formRef.current);
223
+ }
224
+ },
225
+ [messagelayout, errormessage, checkAppServiceErrorMsg]
226
+ );
227
+ const handleChildDataChange = useCallback(
228
+ (fullDataPath2, formData) => {
229
+ if (!fullDataPath2 || !formData) return;
230
+ const currentValues = getValues();
231
+ const pathParts = fullDataPath2.replace(/\[(\d+)\]/g, ".$1").split(".");
232
+ let existingData = currentValues;
233
+ for (const part of pathParts) {
234
+ if (existingData && typeof existingData === "object") {
272
235
  existingData = existingData[part];
273
236
  } else {
274
- existingData = undefined;
237
+ existingData = void 0;
275
238
  break;
276
239
  }
277
240
  }
278
-
279
- // When merging, filter out arrays from existingData that aren't in formData
280
- // This prevents nested arrays (managed by sibling forms) from being merged back in
281
- } catch (err) {
282
- _iterator.e(err);
283
- } finally {
284
- _iterator.f();
285
- }
286
- var mergedData;
287
- if (existingData && (0, _typeof2["default"])(existingData) === "object" && !Array.isArray(existingData)) {
288
- // Filter existingData to exclude arrays not present in formData
289
- var filteredExisting = {};
290
- Object.keys(existingData).forEach(function (key) {
291
- var value = existingData[key];
292
- // Keep non-array values, or arrays that are also in formData
293
- if (!Array.isArray(value) || key in formData) {
294
- filteredExisting[key] = value;
295
- }
296
- });
297
- mergedData = _objectSpread(_objectSpread({}, filteredExisting), formData);
298
- } else {
299
- mergedData = formData;
300
- }
301
- setValue(fullDataPath, mergedData, {
302
- shouldValidate: false,
303
- shouldDirty: true
304
- });
305
- var currentData = getValues();
306
- markCurrentData(currentData);
307
- lastUpdateOriginRef.current = "child";
308
-
309
- // Sync to widget proxy (synchronous, same as stage branch)
310
- (0, _utils2.setWidgetFormData)(listener, formName, currentData);
311
- }, [setValue, getValues, markCurrentData, formName]);
312
- var handleRegisterChildField = (0, _react.useCallback)(function (data) {
313
- var childFormName = data.childFormName,
314
- widget = data.widget,
315
- formKey = data.formKey,
316
- fieldName = data.fieldName;
317
- if (childFormName && widget && formKey && fieldName) {
318
- (0, _utils2.registerChildFieldInWidget)(listener, formName, {
319
- widget: widget,
320
- formKey: formKey,
321
- fieldName: fieldName
322
- });
323
- }
324
- }, [formName]);
325
-
326
- // Notify data output helper
327
- var notifyDataOutput = (0, _react.useCallback)(function (data) {
328
- var cleanedData = (0, _utils.cleanRowData)(data);
329
- if (formName) {
330
- var _listener$onChange;
331
- listener === null || listener === void 0 || (_listener$onChange = listener.onChange) === null || _listener$onChange === void 0 || _listener$onChange.call(listener, formName, {
332
- dataoutput: cleanedData
333
- });
334
- }
335
- }, [formName]);
336
-
337
- // updateFormData - defined here (not in hook) to ensure stable ref access
338
- // This is called by table's inline edit to sync data to parent form
339
- var updateFormData = (0, _react.useCallback)(function (data) {
241
+ let mergedData;
242
+ if (existingData && typeof existingData === "object" && !Array.isArray(existingData)) {
243
+ const filteredExisting = {};
244
+ Object.keys(existingData).forEach((key) => {
245
+ const value = existingData[key];
246
+ if (!Array.isArray(value) || key in formData) {
247
+ filteredExisting[key] = value;
248
+ }
249
+ });
250
+ mergedData = __spreadValues(__spreadValues({}, filteredExisting), formData);
251
+ } else {
252
+ mergedData = formData;
253
+ }
254
+ setValue(fullDataPath2, mergedData, { shouldValidate: false, shouldDirty: true });
255
+ const currentData = getValues();
256
+ markCurrentData(currentData);
257
+ lastUpdateOriginRef.current = "child";
258
+ setWidgetFormData(listener, formName, currentData);
259
+ },
260
+ [setValue, getValues, markCurrentData, formName]
261
+ );
262
+ const handleRegisterChildField = useCallback(
263
+ (data) => {
264
+ const { childFormName, widget, formKey, fieldName } = data;
265
+ if (childFormName && widget && formKey && fieldName) {
266
+ registerChildFieldInWidget(listener, formName, { widget, formKey, fieldName });
267
+ }
268
+ },
269
+ [formName]
270
+ );
271
+ const notifyDataOutput = useCallback(
272
+ (data) => {
273
+ var _a2;
274
+ const cleanedData = cleanRowData(data);
275
+ if (formName) {
276
+ (_a2 = listener == null ? void 0 : listener.onChange) == null ? void 0 : _a2.call(listener, formName, { dataoutput: cleanedData });
277
+ }
278
+ },
279
+ [formName]
280
+ );
281
+ const updateFormData = useCallback((data) => {
340
282
  if (typeof data === "function") {
341
283
  formDataref.current = data(formDataref.current || {});
342
284
  } else {
343
- formDataref.current = _objectSpread(_objectSpread({}, formDataref.current || {}), data);
285
+ formDataref.current = __spreadValues(__spreadValues({}, formDataref.current || {}), data);
344
286
  }
345
287
  }, []);
346
-
347
- // ========== COMPLEX HOOKS (continued) ==========
348
-
349
- // Validation
350
- var _useFormValidation = (0, _hooks.useFormValidation)({
351
- formRef: formRef,
352
- formfields: formfields,
353
- formReff: formReff,
354
- control: control,
355
- trigger: trigger,
356
- errors: errors,
357
- formName: formName || "",
358
- listener: listener
359
- }),
360
- validationMessagesRef = _useFormValidation.validationMessagesRef,
361
- validateFieldsOnSubmit = _useFormValidation.validateFieldsOnSubmit;
362
-
363
- // Submission
364
- var _useFormSubmission = (0, _hooks.useFormSubmission)({
365
- formName: formName || "",
366
- formfields: formfields,
367
- formDataref: formDataref,
368
- getValues: getValues,
369
- formType: formType,
370
- validateFieldsOnSubmit: validateFieldsOnSubmit,
371
- resetFormData: resetFormData,
372
- toggleMessage: toggleMessage,
373
- setShowViewMode: function setShowViewMode(val) {
374
- return _setShowViewMode(val);
375
- },
376
- listener: listener,
377
- datasource: props.datasource,
378
- formSubmit: props.formSubmit,
379
- widgettype: props.widgettype,
380
- onBeforeSubmit: props.onBeforeSubmit,
381
- onSubmit: props.onSubmit,
382
- onResult: props.onResult,
383
- onSuccess: props.onSuccess,
384
- onError: props.onError,
385
- insertmessage: props.insertmessage,
386
- updatemessage: props.updatemessage,
387
- deletemessage: props.deletemessage,
388
- postmessage: props.postmessage,
389
- errormessage: errormessage,
390
- messagelayout: messagelayout,
391
- standalone: standalone || false
392
- }),
393
- submit = _useFormSubmission.submit,
394
- deleteEntry = _useFormSubmission.deleteEntry;
395
-
396
- // Live filter (inlined from useLiveFilter)
397
- var livefilterFn = props.Livefilter || function () {};
398
- var filter = (0, _react.useMemo)(function () {
399
- return handleSubmit(function (data, e) {
400
- e === null || e === void 0 || e.preventDefault();
401
- e === null || e === void 0 || e.stopPropagation();
402
- var transformedData = (0, _utils2.transformRangeFilterData)(data);
288
+ const { validationMessagesRef, validateFieldsOnSubmit } = useFormValidation({
289
+ formRef,
290
+ formfields,
291
+ formReff,
292
+ control,
293
+ trigger,
294
+ errors,
295
+ formName: formName || "",
296
+ listener
297
+ });
298
+ const { submit, deleteEntry } = useFormSubmission({
299
+ formName: formName || "",
300
+ formfields,
301
+ formDataref,
302
+ getValues,
303
+ formType,
304
+ validateFieldsOnSubmit,
305
+ resetFormData,
306
+ toggleMessage,
307
+ setShowViewMode: (val) => setShowViewMode(val),
308
+ listener,
309
+ datasource: props.datasource,
310
+ formSubmit: props.formSubmit,
311
+ widgettype: props.widgettype,
312
+ onBeforeSubmit: props.onBeforeSubmit,
313
+ onSubmit: props.onSubmit,
314
+ onResult: props.onResult,
315
+ onSuccess: props.onSuccess,
316
+ onError: props.onError,
317
+ insertmessage: props.insertmessage,
318
+ updatemessage: props.updatemessage,
319
+ deletemessage: props.deletemessage,
320
+ postmessage: props.postmessage,
321
+ errormessage,
322
+ messagelayout,
323
+ standalone: standalone || false
324
+ });
325
+ const livefilterFn = props.Livefilter || (() => {
326
+ });
327
+ const filter = useMemo(
328
+ () => handleSubmit((data, e) => {
329
+ e == null ? void 0 : e.preventDefault();
330
+ e == null ? void 0 : e.stopPropagation();
331
+ const transformedData = transformRangeFilterData(data);
403
332
  return livefilterFn(transformedData, false, formfieldsRef.current);
404
- });
405
- }, [handleSubmit, livefilterFn]);
406
- var clearFilter = (0, _react.useMemo)(function () {
407
- return handleSubmit(function (data, e) {
408
- e === null || e === void 0 || e.preventDefault();
409
- e === null || e === void 0 || e.stopPropagation();
333
+ }),
334
+ [handleSubmit, livefilterFn]
335
+ );
336
+ const clearFilter = useMemo(
337
+ () => handleSubmit((data, e) => {
338
+ e == null ? void 0 : e.preventDefault();
339
+ e == null ? void 0 : e.stopPropagation();
410
340
  formresetFn();
411
- var transformedData = (0, _utils2.transformRangeFilterData)(data);
341
+ const transformedData = transformRangeFilterData(data);
412
342
  livefilterFn(transformedData, true, formfieldsRef.current);
413
- });
414
- }, [handleSubmit, livefilterFn]);
415
- var debouncedFilter = (0, _react.useCallback)(function () {
416
- var debouncedFn = (0, _lodashEs.debounce)(filter, 250);
343
+ }),
344
+ [handleSubmit, livefilterFn]
345
+ );
346
+ const debouncedFilter = useCallback(() => {
347
+ const debouncedFn = debounce(filter, 250);
417
348
  debouncedFn();
418
349
  }, [filter]);
419
-
420
- // Form operations
421
- var _useFormOperations = (0, _hooks.useFormOperations)({
422
- formName: formName || "",
423
- formfields: formfields,
424
- formRef: formRef,
425
- formReff: formReff,
426
- formType: formType,
427
- fullDataPath: fullDataPath,
428
- parentFormDataContext: parentFormDataContext,
429
- clearFormData: clearFormData,
430
- resetFormData: resetFormData,
431
- trigger: trigger,
432
- submit: submit,
433
- listener: listener,
434
- widgetFormType: props["form-type"],
435
- debouncedFilter: debouncedFilter
436
- }),
437
- formresetFn = _useFormOperations.formreset,
438
- create = _useFormOperations.create,
439
- edit = _useFormOperations.edit,
440
- setFormData = _useFormOperations.setFormData,
441
- saveAndNew = _useFormOperations.saveAndNew,
442
- saveAndView = _useFormOperations.saveAndView,
443
- showViewMode = _useFormOperations.showViewMode,
444
- _setShowViewMode = _useFormOperations.setShowViewMode;
445
-
446
- // ========== MORE CALLBACKS ==========
447
-
448
- var expandCollapsePanel = (0, _react.useCallback)(function () {
350
+ const {
351
+ formreset: formresetFn,
352
+ create,
353
+ edit,
354
+ setFormData,
355
+ saveAndNew,
356
+ saveAndView,
357
+ showViewMode,
358
+ setShowViewMode
359
+ } = useFormOperations({
360
+ formName: formName || "",
361
+ formfields,
362
+ formRef,
363
+ formReff,
364
+ formType,
365
+ fullDataPath,
366
+ parentFormDataContext,
367
+ clearFormData,
368
+ resetFormData,
369
+ trigger,
370
+ submit,
371
+ listener,
372
+ widgetFormType: props["form-type"],
373
+ debouncedFilter
374
+ });
375
+ const expandCollapsePanel = useCallback(() => {
449
376
  if (collapsible) {
450
377
  setExpanded(!expanded);
451
378
  }
452
379
  }, [collapsible, expanded]);
453
- var handleCancel = (0, _react.useCallback)(function () {
380
+ const handleCancel = useCallback(() => {
454
381
  if (typeof props.cancel === "function") {
455
382
  props.cancel();
456
383
  return;
457
384
  }
458
- _setShowViewMode(true);
459
- }, [_setShowViewMode, props]);
460
- var getFieldValue = (0, _react.useCallback)(function (fieldName) {
461
- return watch(fieldName);
462
- }, [watch]);
463
- var highlightInvalidFields = (0, _react.useCallback)(/*#__PURE__*/(0, _asyncToGenerator2["default"])(/*#__PURE__*/_regenerator["default"].mark(function _callee() {
464
- return _regenerator["default"].wrap(function _callee$(_context) {
465
- while (1) switch (_context.prev = _context.next) {
466
- case 0:
467
- _context.next = 2;
468
- return validateFieldsOnSubmit();
469
- case 2:
470
- case "end":
471
- return _context.stop();
472
- }
473
- }, _callee);
474
- })), [validateFieldsOnSubmit]);
475
-
476
- // ========== EFFECTS ==========
477
-
478
- // Keep formfieldsRef in sync
479
- (0, _react.useEffect)(function () {
385
+ setShowViewMode(true);
386
+ }, [setShowViewMode, props]);
387
+ const getFieldValue = useCallback((fieldName) => watch(fieldName), [watch]);
388
+ const highlightInvalidFields = useCallback(async () => {
389
+ await validateFieldsOnSubmit();
390
+ }, [validateFieldsOnSubmit]);
391
+ useEffect(() => {
480
392
  formfieldsRef.current = formfields;
481
393
  }, [formfields]);
482
-
483
- // Update valid state
484
- (0, _react.useEffect)(function () {
485
- if (listener !== null && listener !== void 0 && listener.onChange && formName) {
486
- listener.onChange(formName, {
487
- valid: isValid
488
- });
394
+ useEffect(() => {
395
+ if ((listener == null ? void 0 : listener.onChange) && formName) {
396
+ listener.onChange(formName, { valid: isValid });
489
397
  }
490
398
  }, [isValid, formName]);
491
-
492
- // Extract child form data from parent
493
- (0, _react.useEffect)(function () {
399
+ useEffect(() => {
494
400
  if (parentFormData && effectiveChildDatasetNode) {
495
- var dataAtNode = (0, _get["default"])(parentFormData, effectiveChildDatasetNode);
496
- var isArrayData = Array.isArray(dataAtNode);
497
- var childData;
401
+ const dataAtNode = get(parentFormData, effectiveChildDatasetNode);
402
+ const isArrayData = Array.isArray(dataAtNode);
403
+ let childData;
498
404
  if (isArrayData && formArrayIndex >= 0) {
499
405
  childData = formArrayIndex < dataAtNode.length ? dataAtNode[formArrayIndex] : {};
500
406
  } else {
501
- childData = dataAtNode !== null && dataAtNode !== void 0 ? dataAtNode : {};
407
+ childData = dataAtNode != null ? dataAtNode : {};
502
408
  }
503
409
  setChildFormData(childData);
504
410
  }
505
411
  }, [parentFormData, effectiveChildDatasetNode, formArrayIndex]);
506
-
507
- // Sync form when external data source changes
508
- // Data source selection based on formType config
509
- (0, _react.useEffect)(function () {
510
- // Skip sync if the data change originated from a child (would be circular)
511
- if (isChildForm && (parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.lastUpdateOrigin) === "child") {
412
+ useEffect(() => {
413
+ var _a2;
414
+ if (isChildForm && (parentFormDataContext == null ? void 0 : parentFormDataContext.lastUpdateOrigin) === "child") {
512
415
  return;
513
416
  }
514
- var dataSource;
515
-
516
- // Use formTypeConfig.dataSourcePriority to determine data source
517
- if (formType === _hooks.FormType.DIRECT_CHILD || formType === _hooks.FormType.LIST_CHILD) {
518
- // Props-based child forms: use extracted child data
417
+ let dataSource;
418
+ if (formType === FormType.DIRECT_CHILD || formType === FormType.LIST_CHILD) {
519
419
  dataSource = childFormData;
520
- } else if (formType === _hooks.FormType.PREFAB_CHILD || formType === _hooks.FormType.LIST_PREFAB_CHILD) {
521
- // Prefab forms: use context-provided form data
522
- var contextFormData = parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.formdata;
523
- // For LIST_PREFAB_CHILD, the context formdata might be an array - extract the item at formArrayIndex
524
- if (formType === _hooks.FormType.LIST_PREFAB_CHILD && Array.isArray(contextFormData) && formArrayIndex >= 0 && formArrayIndex < contextFormData.length) {
525
- var _contextFormData$form;
526
- // Safely extract the item at formArrayIndex, with fallback to undefined
527
- dataSource = (_contextFormData$form = contextFormData[formArrayIndex]) !== null && _contextFormData$form !== void 0 ? _contextFormData$form : undefined;
420
+ } else if (formType === FormType.PREFAB_CHILD || formType === FormType.LIST_PREFAB_CHILD) {
421
+ const contextFormData = parentFormDataContext == null ? void 0 : parentFormDataContext.formdata;
422
+ if (formType === FormType.LIST_PREFAB_CHILD && Array.isArray(contextFormData) && formArrayIndex >= 0 && formArrayIndex < contextFormData.length) {
423
+ dataSource = (_a2 = contextFormData[formArrayIndex]) != null ? _a2 : void 0;
528
424
  } else {
529
425
  dataSource = contextFormData;
530
426
  }
531
427
  } else {
532
- // Standalone forms: use widget data or props
533
- // Also check parentFormDataContext.formdata for forms inside parent forms
534
- // (e.g., wizard step forms inside a parent form)
535
- dataSource = widgetFormData || formdata || (parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.formdata);
428
+ dataSource = widgetFormData || formdata || (parentFormDataContext == null ? void 0 : parentFormDataContext.formdata);
536
429
  }
537
- if (dataSource && (0, _typeof2["default"])(dataSource) === "object" && !Array.isArray(dataSource)) {
430
+ if (dataSource && typeof dataSource === "object" && !Array.isArray(dataSource)) {
538
431
  syncFormData(dataSource);
539
432
  lastUpdateOriginRef.current = "external";
540
433
  if (props["form-type"] === "live-filter" && Object.keys(dataSource).length > 0) {
541
434
  debouncedFilter();
542
435
  }
543
436
  }
544
- }, [formType, isChildForm, childFormData, widgetFormData, formdata, formArrayIndex, parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.formdata, parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.lastUpdateOrigin, syncFormData, debouncedFilter]);
545
-
546
- // Cleanup on unmount
547
- (0, _react.useEffect)(function () {
548
- return function () {
549
- var _props$destroy;
550
- if (!formName) return;
551
- props === null || props === void 0 || (_props$destroy = props.destroy) === null || _props$destroy === void 0 || _props$destroy.call(props, formName);
437
+ }, [
438
+ formType,
439
+ isChildForm,
440
+ childFormData,
441
+ widgetFormData,
442
+ formdata,
443
+ formArrayIndex,
444
+ parentFormDataContext == null ? void 0 : parentFormDataContext.formdata,
445
+ parentFormDataContext == null ? void 0 : parentFormDataContext.lastUpdateOrigin,
446
+ syncFormData,
447
+ debouncedFilter
448
+ ]);
449
+ useEffect(() => {
450
+ return () => {
451
+ var _a2;
452
+ if (!formName || !formRef.current) return;
453
+ (_a2 = props == null ? void 0 : props.destroy) == null ? void 0 : _a2.call(props, formName);
552
454
  formresetFn();
553
455
  };
554
456
  }, []);
555
-
556
- // Prefab field registration
557
- (0, _react.useEffect)(function () {
558
- var registerFn = parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.registerChildField;
457
+ useEffect(() => {
458
+ const registerFn = parentFormDataContext == null ? void 0 : parentFormDataContext.registerChildField;
559
459
  if (!registerFn || !formName) return;
560
- var widgetFormFields = (0, _utils2.getWidgetFormFields)(listener, formName);
561
- var formFieldsToRegister = widgetFormFields || formfields;
562
- Object.entries(formFieldsToRegister).forEach(function (_ref2) {
563
- var _ref3 = (0, _slicedToArray2["default"])(_ref2, 2),
564
- key = _ref3[0],
565
- widget = _ref3[1];
460
+ const widgetFormFields = getWidgetFormFields(listener, formName);
461
+ const formFieldsToRegister = widgetFormFields || formfields;
462
+ Object.entries(formFieldsToRegister).forEach(([key, widget]) => {
566
463
  if (key.includes("formWidget")) return;
567
- var typedWidget = widget;
568
- var formKey = (typedWidget === null || typedWidget === void 0 ? void 0 : typedWidget.formKey) || (typedWidget === null || typedWidget === void 0 ? void 0 : typedWidget.fieldName) || key;
569
- var fieldName = (typedWidget === null || typedWidget === void 0 ? void 0 : typedWidget.fieldName) || key;
464
+ const typedWidget = widget;
465
+ const formKey = (typedWidget == null ? void 0 : typedWidget.formKey) || (typedWidget == null ? void 0 : typedWidget.fieldName) || key;
466
+ const fieldName = (typedWidget == null ? void 0 : typedWidget.fieldName) || key;
570
467
  registerFn({
571
468
  childFormName: formName,
572
- widget: widget,
573
- formKey: formKey,
574
- fieldName: fieldName
469
+ widget,
470
+ formKey,
471
+ fieldName
575
472
  });
576
473
  });
577
- }, [formfields, formName, parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.registerChildField]);
578
-
579
- // Watch for form changes and emit to parent
580
- (0, _react.useEffect)(function () {
581
- var el = formRef.current;
474
+ }, [formfields, formName, parentFormDataContext == null ? void 0 : parentFormDataContext.registerChildField]);
475
+ useEffect(() => {
476
+ const el = formRef.current;
582
477
  if (!el) return;
583
- var emit = function emit() {
584
- el.dispatchEvent(new CustomEvent("wm:form-validity", {
585
- bubbles: true,
586
- detail: {
587
- isValid: isValid
588
- }
589
- }));
478
+ const emit = () => {
479
+ el.dispatchEvent(
480
+ new CustomEvent("wm:form-validity", {
481
+ bubbles: true,
482
+ detail: { isValid }
483
+ })
484
+ );
590
485
  };
591
486
  emit();
592
- var unsubscribe = watch(function (values) {
487
+ const unsubscribe = watch((values) => {
593
488
  emit();
594
489
  if (isUpdating()) return;
595
- var serialized = JSON.stringify(values);
490
+ const serialized = JSON.stringify(values);
596
491
  if (serialized !== lastEmittedValuesSerialized.current) {
597
492
  lastEmittedValuesSerialized.current = serialized;
598
-
599
- // Forms with prefixed fields have data wrapped under form name; others don't
600
- var normalizedValues = hasPrefixedFields && formName ? values[formName] : values;
601
-
602
- // For any nested child form, filter out nested objects AND arrays
603
- // that are managed by their own child forms. This prevents a middle-level
604
- // form from overwriting grandchild form data that has already propagated to root.
605
- if (isChildForm && normalizedValues && (0, _typeof2["default"])(normalizedValues) === "object" && !Array.isArray(normalizedValues)) {
606
- var childFormNames = formReff.current ? Object.keys(formReff.current) : [];
493
+ let normalizedValues = hasPrefixedFields && formName ? values[formName] : values;
494
+ if (isChildForm && normalizedValues && typeof normalizedValues === "object" && !Array.isArray(normalizedValues)) {
495
+ const childFormNames = formReff.current ? Object.keys(formReff.current) : [];
607
496
  if (childFormNames.length > 0) {
608
- var filteredValues = {};
609
- Object.keys(normalizedValues).forEach(function (key) {
610
- var value = normalizedValues[key];
611
- // Keep only primitive values and null
612
- // Filter out objects AND arrays (arrays contain nested form data)
613
- if (value === null || (0, _typeof2["default"])(value) !== "object") {
497
+ const filteredValues = {};
498
+ Object.keys(normalizedValues).forEach((key) => {
499
+ const value = normalizedValues[key];
500
+ if (value === null || typeof value !== "object") {
614
501
  filteredValues[key] = value;
615
502
  }
616
503
  });
@@ -618,185 +505,185 @@ var BaseForm = function BaseForm(WrappedComponent) {
618
505
  }
619
506
  }
620
507
  markCurrentData(normalizedValues);
621
- if (fullDataPath && parentFormDataContext !== null && parentFormDataContext !== void 0 && parentFormDataContext.onChildDataChange) {
508
+ if (fullDataPath && (parentFormDataContext == null ? void 0 : parentFormDataContext.onChildDataChange)) {
622
509
  parentFormDataContext.onChildDataChange(fullDataPath, normalizedValues);
623
510
  }
624
- var autoupdate = props.autoupdate;
625
- var isAutoupdateEnabled = autoupdate !== false && String(autoupdate).toLowerCase() !== "false" && String(autoupdate).toLowerCase() !== "0";
626
- var isAutoUpdateLiveFilter = props["form-type"] === "live-filter" && isAutoupdateEnabled;
511
+ const autoupdate = props.autoupdate;
512
+ const isAutoupdateEnabled = autoupdate !== false && String(autoupdate).toLowerCase() !== "false" && String(autoupdate).toLowerCase() !== "0";
513
+ const isAutoUpdateLiveFilter = props["form-type"] === "live-filter" && isAutoupdateEnabled;
627
514
  if (isAutoUpdateLiveFilter) {
628
- debouncedFilter === null || debouncedFilter === void 0 || debouncedFilter();
515
+ debouncedFilter == null ? void 0 : debouncedFilter();
629
516
  }
630
517
  notifyDataOutput(getValues());
631
518
  }
632
519
  });
633
- return function () {
520
+ return () => {
634
521
  if (typeof unsubscribe === "function") {
635
522
  unsubscribe();
636
523
  }
637
524
  };
638
- }, [watch, isValid, rootParentForm, fullDataPath, formName, formType, hasPrefixedFields, isChildForm, debouncedFilter]);
639
- (0, _react.useEffect)(function () {
525
+ }, [
526
+ watch,
527
+ isValid,
528
+ rootParentForm,
529
+ fullDataPath,
530
+ formName,
531
+ formType,
532
+ hasPrefixedFields,
533
+ isChildForm,
534
+ debouncedFilter
535
+ ]);
536
+ useEffect(() => {
640
537
  if (props.onDataSourceChange && fields.length > 0) {
641
538
  props.onDataSourceChange(fields);
642
539
  }
643
540
  }, [fields, props.onDataSourceChange]);
644
-
645
- // Form ref exposure (inlined from useFormRef)
646
- (0, _react.useEffect)(function () {
541
+ useEffect(() => {
647
542
  if (formRef.current) {
648
- var formEl = formRef.current;
649
- formEl.getFormData = function () {
650
- return {
651
- values: watch(),
652
- isValid: isValid
653
- };
654
- };
655
- formEl.validateForm = function () {
656
- return submitCount === 0 ? isValid : trigger();
657
- };
658
- formEl.clearErrors = function () {
659
- return clearErrors();
660
- };
661
- formEl.getProps = function () {
662
- return props;
663
- };
543
+ const formEl = formRef.current;
544
+ formEl.getFormData = () => ({ values: watch(), isValid });
545
+ formEl.validateForm = () => submitCount === 0 ? isValid : trigger();
546
+ formEl.clearErrors = () => clearErrors();
547
+ formEl.getProps = () => props;
664
548
  formEl.formWidgets = formfields;
665
- formEl.getValidationMessages = function () {
666
- return validationMessagesRef.current;
667
- };
549
+ formEl.getValidationMessages = () => validationMessagesRef.current;
668
550
  formEl.validationMessages = validationMessagesRef.current;
669
551
  }
670
552
  }, [watch, trigger, isValid, errors, formfields, clearErrors, props, submitCount]);
671
-
672
- // ========== CHILD FORM REGISTRATION ==========
673
- // Register this form with parent using a direct mutation approach instead of useImperativeHandle
674
- // This prevents the race condition where multiple forms registering via useImperativeHandle
675
- // overwrite each other's registrations
676
- (0, _react.useEffect)(function () {
553
+ useEffect(() => {
677
554
  if (!parentFormRef) return;
678
-
679
- // Ensure the ref has an object
680
555
  if (!parentFormRef.current) {
681
556
  parentFormRef.current = {};
682
557
  }
683
- var formId = formIdRef.current;
684
-
685
- // Register this form
558
+ const formId = formIdRef.current;
686
559
  parentFormRef.current[formId] = {
687
560
  formreset: formresetFn,
688
- validateFieldsOnSubmit: validateFieldsOnSubmit
561
+ validateFieldsOnSubmit
689
562
  };
690
-
691
- // Cleanup: unregister when unmounting
692
- return function () {
563
+ return () => {
693
564
  if (parentFormRef.current && parentFormRef.current[formId]) {
694
565
  delete parentFormRef.current[formId];
695
566
  }
696
567
  };
697
568
  }, [parentFormRef, formresetFn, validateFieldsOnSubmit]);
698
-
699
- // ========== RENDER PROPS ==========
700
-
701
- // Compute formdata outside memo to use in dependency array
702
- var computedFormdata = widgetFormData || childFormData || formdata;
703
-
704
- // Memoize the ref object to prevent unnecessary re-renders of FormProvider consumers.
705
- // Only recalculates when legitimately changing values change (errors, showViewMode, submitCount, etc.)
706
- var ref = (0, _react.useMemo)(function () {
707
- return {
569
+ const computedFormdata = widgetFormData || childFormData || formdata;
570
+ const ref = useMemo(
571
+ () => ({
708
572
  ref: formReff,
709
- updateFormData: updateFormData,
710
- control: control,
711
- watch: watch,
712
- registerHeaderAction: registerHeaderAction,
713
- onChangeHandler: onChangeHandler,
714
- trigger: trigger,
715
- errors: errors,
573
+ updateFormData,
574
+ control,
575
+ watch,
576
+ registerHeaderAction,
577
+ onChangeHandler,
578
+ trigger,
579
+ errors,
716
580
  name: formName,
717
581
  captionposition: props.captionposition,
718
- captionCls: captionCls,
719
- widgetCls: widgetCls,
720
- itemsPerRow: itemsPerRow,
582
+ captionCls,
583
+ widgetCls,
584
+ itemsPerRow,
721
585
  validationtype: props.validationtype,
722
- showViewMode: showViewMode,
586
+ submitCount,
587
+ showViewMode,
723
588
  formdata: computedFormdata,
724
- submit: submit,
589
+ submit,
725
590
  formreset: formresetFn
726
- };
727
- }, [updateFormData, control, watch, registerHeaderAction, onChangeHandler, trigger, errors, formName, props.captionposition, captionCls, widgetCls, itemsPerRow, props.validationtype, showViewMode, computedFormdata, submit, formresetFn]);
728
- var conditionalProps = _objectSpread(_objectSpread(_objectSpread(_objectSpread({}, props.target && {
729
- target: props.target
730
- }), props.method && {
731
- method: props.method
732
- }), props.encType && {
733
- encType: props.encType
734
- }), props.action && {
735
- action: props.action
736
- });
737
- var formProps = _objectSpread(_objectSpread(_objectSpread({}, props), conditionalProps), {}, {
738
- submit: submit,
591
+ }),
592
+ [
593
+ updateFormData,
594
+ control,
595
+ watch,
596
+ registerHeaderAction,
597
+ onChangeHandler,
598
+ trigger,
599
+ errors,
600
+ formName,
601
+ props.captionposition,
602
+ captionCls,
603
+ widgetCls,
604
+ itemsPerRow,
605
+ props.validationtype,
606
+ submitCount,
607
+ showViewMode,
608
+ computedFormdata,
609
+ submit,
610
+ formresetFn
611
+ ]
612
+ );
613
+ const conditionalProps = __spreadValues(__spreadValues(__spreadValues(__spreadValues({}, props.target && { target: props.target }), props.method && { method: props.method }), props.encType && { encType: props.encType }), props.action && { action: props.action });
614
+ const formProps = __spreadProps(__spreadValues(__spreadValues({}, props), conditionalProps), {
615
+ submit,
739
616
  formreset: formresetFn,
740
- formfields: formfields,
617
+ formfields,
741
618
  formWidgets: formfields,
742
- headerActions: headerActions,
743
- ref: ref,
619
+ headerActions,
620
+ ref,
744
621
  formElementRef: formRef,
745
- toggleMessage: toggleMessage,
746
- clearMessage: clearMessage,
747
- expandCollapsePanel: expandCollapsePanel,
748
- expanded: expanded,
749
- showmessage: showmessage,
750
- statusMessage: statusMessage,
751
- showViewMode: showViewMode,
752
- filter: filter,
753
- clearFilter: clearFilter,
754
- validateFieldsOnSubmit: validateFieldsOnSubmit,
755
- errors: errors,
622
+ toggleMessage,
623
+ clearMessage,
624
+ expandCollapsePanel,
625
+ expanded,
626
+ showmessage,
627
+ statusMessage,
628
+ showViewMode,
629
+ filter,
630
+ clearFilter,
631
+ validateFieldsOnSubmit,
632
+ errors,
756
633
  validationMessages: validationMessagesRef.current,
757
- "delete": deleteEntry,
634
+ delete: deleteEntry,
758
635
  cancel: handleCancel,
759
- "new": create,
760
- edit: edit,
761
- setShowViewMode: _setShowViewMode,
636
+ new: create,
637
+ edit,
638
+ setShowViewMode,
762
639
  dataoutput: getValues(),
763
640
  save: submit,
764
- setFormData: setFormData,
765
- reset: reset,
641
+ setFormData,
642
+ reset,
766
643
  numberoffields: Object.keys(formfields).length,
767
644
  className: formClassName,
768
- saveAndNew: saveAndNew,
769
- saveAndView: saveAndView,
770
- highlightInvalidFields: highlightInvalidFields,
645
+ saveAndNew,
646
+ saveAndView,
647
+ highlightInvalidFields,
771
648
  formdata: widgetFormData || childFormData || formdata,
772
- captionCls: captionCls,
773
- widgetCls: widgetCls,
774
- itemsPerRow: itemsPerRow
649
+ captionCls,
650
+ widgetCls,
651
+ itemsPerRow
775
652
  });
776
-
777
- // All nested child forms (direct, list, or prefab) should pass through to parent
778
- var parentFormDataContextValue = (0, _react.useMemo)(function () {
779
- var _ref4;
780
- return {
781
- formdata: (_ref4 = currentFormData !== null && currentFormData !== void 0 ? currentFormData : widgetFormData) !== null && _ref4 !== void 0 ? _ref4 : formdata,
782
- formName: formName || "",
783
- rootParentForm: isChildForm ? rootParentForm || "" : formName || "",
784
- parentDataPath: isChildForm ? fullDataPath : undefined,
785
- lastUpdateOrigin: isChildForm ? parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.lastUpdateOrigin : lastUpdateOriginRef.current,
786
- onChildDataChange: isChildForm ? parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.onChildDataChange : handleChildDataChange,
787
- registerChildField: isChildForm ? parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.registerChildField : handleRegisterChildField
788
- };
789
- }, [currentFormData, widgetFormData, formdata, formName, isValid, isChildForm, rootParentForm, fullDataPath, parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.lastUpdateOrigin, parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.onChildDataChange, parentFormDataContext === null || parentFormDataContext === void 0 ? void 0 : parentFormDataContext.registerChildField, handleChildDataChange, handleRegisterChildField]);
790
- return __jsx(_formContext.ParentFormDataContext.Provider, {
791
- value: parentFormDataContextValue
792
- }, __jsx(_formContext.FormProvider, {
793
- value: ref,
794
- isViewMode: showViewMode
795
- }, __jsx(WrappedComponent, (0, _extends2["default"])({}, formProps, {
796
- formWidgets: formfields,
797
- formfields: formfields
798
- }))));
653
+ const parentFormDataContextValue = useMemo(
654
+ () => {
655
+ var _a2;
656
+ return {
657
+ formdata: (_a2 = currentFormData != null ? currentFormData : widgetFormData) != null ? _a2 : formdata,
658
+ formName: formName || "",
659
+ rootParentForm: isChildForm ? rootParentForm || "" : formName || "",
660
+ parentDataPath: isChildForm ? fullDataPath : void 0,
661
+ lastUpdateOrigin: isChildForm ? parentFormDataContext == null ? void 0 : parentFormDataContext.lastUpdateOrigin : lastUpdateOriginRef.current,
662
+ onChildDataChange: isChildForm ? parentFormDataContext == null ? void 0 : parentFormDataContext.onChildDataChange : handleChildDataChange,
663
+ registerChildField: isChildForm ? parentFormDataContext == null ? void 0 : parentFormDataContext.registerChildField : handleRegisterChildField
664
+ };
665
+ },
666
+ [
667
+ currentFormData,
668
+ widgetFormData,
669
+ formdata,
670
+ formName,
671
+ isValid,
672
+ isChildForm,
673
+ rootParentForm,
674
+ fullDataPath,
675
+ parentFormDataContext == null ? void 0 : parentFormDataContext.lastUpdateOrigin,
676
+ parentFormDataContext == null ? void 0 : parentFormDataContext.onChildDataChange,
677
+ parentFormDataContext == null ? void 0 : parentFormDataContext.registerChildField,
678
+ handleChildDataChange,
679
+ handleRegisterChildField
680
+ ]
681
+ );
682
+ return /* @__PURE__ */ jsx(ParentFormDataContext.Provider, { value: parentFormDataContextValue, children: /* @__PURE__ */ jsx(FormProvider, { value: ref, isViewMode: showViewMode, children: /* @__PURE__ */ jsx(WrappedComponent, __spreadProps(__spreadValues({}, formProps), { formWidgets: formfields, formfields })) }) });
799
683
  };
800
684
  return ControlledForm;
801
685
  };
802
- var _default = exports["default"] = BaseForm;
686
+ var base_form_default = BaseForm;
687
+ export {
688
+ base_form_default as default
689
+ };