@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,174 +1,136 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useListEffects = void 0;
8
- var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
9
- var _react = require("react");
10
- var _constants = require("../utils/constants");
11
- var _listHelpers = require("../utils/list-helpers");
12
- var _WidgetProvider = require("@wavemaker-ai/react-runtime/context/WidgetProvider");
13
- var _widgetInstanceUtils = require("../utils/widget-instance-utils");
14
- var useListEffects = exports.useListEffects = function useListEffects(props) {
15
- var name = props.name,
16
- navigation = props.navigation,
17
- datasource = props.datasource,
18
- safeDataset = props.safeDataset,
19
- items = props.items,
20
- orderedDataset = props.orderedDataset,
21
- groupedData = props.groupedData,
22
- groupby = props.groupby,
23
- orderby = props.orderby,
24
- selectfirstitem = props.selectfirstitem,
25
- statehandler = props.statehandler,
26
- accumulatedData = props.accumulatedData,
27
- lastLoadedPage = props.lastLoadedPage,
28
- isFirstLoad = props.isFirstLoad,
29
- onDemandCurrentPage = props.onDemandCurrentPage,
30
- hasBeenReordered = props.hasBeenReordered,
31
- initialRender = props.initialRender,
32
- initialPage = props.initialPage,
33
- initialPageSize = props.initialPageSize,
34
- initialSelectedItems = props.initialSelectedItems,
35
- initialActualPageSize = props.initialActualPageSize,
36
- setAccumulatedData = props.setAccumulatedData,
37
- setLastLoadedPage = props.setLastLoadedPage,
38
- setIsFirstLoad = props.setIsFirstLoad,
39
- setOnDemandCurrentPage = props.setOnDemandCurrentPage,
40
- setinitialRender = props.setinitialRender,
41
- listState = props.listState,
42
- paginationState = props.paginationState,
43
- widgetMethods = props.widgetMethods,
44
- onSelect = props.onSelect,
45
- widgetInstance = props.widgetInstance,
46
- listener = props.listener,
47
- userInitiatedSelectionRef = props.userInitiatedSelectionRef,
48
- restoredPageNumber = props.restoredPageNumber,
49
- setRestoredPageNumber = props.setRestoredPageNumber,
50
- showNavigation = props.showNavigation,
51
- stateManager = props.stateManager,
52
- _props$standalone = props.standalone,
53
- standalone = _props$standalone === void 0 ? false : _props$standalone;
54
- var Widgets = (0, _WidgetProvider.useWidgetProxy)(undefined, standalone);
55
- // Track page size changes
56
- var _useState = (0, _react.useState)(paginationState.currentPageSize),
57
- lastPageSize = _useState[0],
58
- setLastPageSize = _useState[1];
59
- var rafRef1 = (0, _react.useRef)(null);
60
- var rafRef2 = (0, _react.useRef)(null);
61
- var hasInitialWidgetUpdateRun = (0, _react.useRef)(false);
62
- var widgetMethodsRef = (0, _react.useRef)(widgetMethods);
1
+ import { useEffect, useState, useRef } from "react";
2
+ import { LIST_NAVIGATION_TYPES } from "../utils/constants";
3
+ import {
4
+ saveListState,
5
+ clearListState,
6
+ getListState,
7
+ getSelectedItemWidgets
8
+ } from "../utils/list-helpers";
9
+ import { useWidgetProxy } from "../../../../context/WidgetProvider";
10
+ import { setWidgetIndexWithContext } from "../utils/widget-instance-utils";
11
+ const useListEffects = (props) => {
12
+ const {
13
+ name,
14
+ navigation,
15
+ datasource,
16
+ safeDataset,
17
+ items,
18
+ orderedDataset,
19
+ groupedData,
20
+ groupby,
21
+ orderby,
22
+ selectfirstitem,
23
+ statehandler,
24
+ accumulatedData,
25
+ lastLoadedPage,
26
+ isFirstLoad,
27
+ onDemandCurrentPage,
28
+ hasBeenReordered,
29
+ initialRender,
30
+ initialPage,
31
+ initialPageSize,
32
+ initialSelectedItems,
33
+ initialActualPageSize,
34
+ setAccumulatedData,
35
+ setLastLoadedPage,
36
+ setIsFirstLoad,
37
+ setOnDemandCurrentPage,
38
+ setinitialRender,
39
+ listState,
40
+ paginationState,
41
+ widgetMethods,
42
+ onSelect,
43
+ widgetInstance,
44
+ listener,
45
+ userInitiatedSelectionRef,
46
+ restoredPageNumber,
47
+ setRestoredPageNumber,
48
+ showNavigation,
49
+ stateManager,
50
+ standalone = false
51
+ } = props;
52
+ const Widgets = useWidgetProxy(void 0, standalone);
53
+ const [lastPageSize, setLastPageSize] = useState(paginationState.currentPageSize);
54
+ const rafRef1 = useRef(null);
55
+ const rafRef2 = useRef(null);
56
+ const hasInitialWidgetUpdateRun = useRef(false);
57
+ const widgetMethodsRef = useRef(widgetMethods);
63
58
  widgetMethodsRef.current = widgetMethods;
64
-
65
- // Effect 1: Accumulate data for On-Demand navigation
66
- (0, _react.useEffect)(function () {
67
- if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND && datasource && safeDataset.length > 0) {
68
- var _datasource$paginatio, _datasource$paginatio2;
69
- // Get the current page from pagination metadata (0-indexed: 0 = page 1)
70
- var currentPageFromMeta = (_datasource$paginatio = (_datasource$paginatio2 = datasource.pagination) === null || _datasource$paginatio2 === void 0 ? void 0 : _datasource$paginatio2.number) !== null && _datasource$paginatio !== void 0 ? _datasource$paginatio : 0;
59
+ useEffect(() => {
60
+ var _a, _b;
61
+ if (navigation === LIST_NAVIGATION_TYPES.ON_DEMAND && datasource && safeDataset.length > 0) {
62
+ const currentPageFromMeta = (_b = (_a = datasource.pagination) == null ? void 0 : _a.number) != null ? _b : 0;
71
63
  if (isFirstLoad) {
72
- // Initial load - just set the data
73
64
  setAccumulatedData(safeDataset);
74
65
  setLastLoadedPage(currentPageFromMeta);
75
66
  setIsFirstLoad(false);
76
- // Sync the onDemandCurrentPage with the actual loaded page
77
67
  if (currentPageFromMeta !== onDemandCurrentPage) {
78
68
  setOnDemandCurrentPage(currentPageFromMeta);
79
69
  }
80
70
  } else if (currentPageFromMeta > lastLoadedPage) {
81
- // This is a new page - append the data
82
- setAccumulatedData(function (prev) {
83
- return [].concat((0, _toConsumableArray2["default"])(prev), (0, _toConsumableArray2["default"])(safeDataset));
84
- });
71
+ setAccumulatedData((prev) => [...prev, ...safeDataset]);
85
72
  setLastLoadedPage(currentPageFromMeta);
86
73
  } else if (currentPageFromMeta === 0 && lastLoadedPage > 0) {
87
- // Data was reset (e.g., filter changed), start fresh
88
74
  setAccumulatedData(safeDataset);
89
75
  setLastLoadedPage(0);
90
76
  setIsFirstLoad(false);
91
77
  setOnDemandCurrentPage(0);
92
78
  }
93
79
  }
94
- }, [navigation, datasource, safeDataset, isFirstLoad, lastLoadedPage, onDemandCurrentPage, accumulatedData.length]);
95
-
96
- // Effect 2: Reset accumulated data when orderby changes (On-Demand and Scroll)
97
- (0, _react.useEffect)(function () {
98
- if ((navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND || navigation === _constants.LIST_NAVIGATION_TYPES.SCROLL) && datasource) {
99
- // Reset accumulated data when query parameters change
80
+ }, [
81
+ navigation,
82
+ datasource,
83
+ safeDataset,
84
+ isFirstLoad,
85
+ lastLoadedPage,
86
+ onDemandCurrentPage,
87
+ accumulatedData.length
88
+ ]);
89
+ useEffect(() => {
90
+ if ((navigation === LIST_NAVIGATION_TYPES.ON_DEMAND || navigation === LIST_NAVIGATION_TYPES.SCROLL) && datasource) {
100
91
  setAccumulatedData([]);
101
92
  setLastLoadedPage(-1);
102
93
  setIsFirstLoad(true);
103
- setOnDemandCurrentPage(0); // Reset to page 0 (0-indexed)
94
+ setOnDemandCurrentPage(0);
104
95
  }
105
- }, [orderby]); // Reset when sorting changes
106
-
107
- // Effect 3: Expose methods through widget instance
108
- // Uses wrapper functions that delegate to ref to avoid stale closures and infinite re-renders
109
- (0, _react.useEffect)(function () {
110
- if (listener !== null && listener !== void 0 && listener.onChange) {
96
+ }, [orderby]);
97
+ useEffect(() => {
98
+ if (listener == null ? void 0 : listener.onChange) {
111
99
  listener.onChange(name, {
112
- selectItem: function selectItem(val) {
113
- return widgetMethodsRef.current.selectItem(val);
114
- },
115
- deselectItem: function deselectItem(val) {
116
- return widgetMethodsRef.current.deselectItem(val);
117
- },
118
- getItem: function getItem(index) {
119
- return widgetMethodsRef.current.getItem(index);
120
- },
121
- getIndex: function getIndex(item) {
122
- return widgetMethodsRef.current.getIndex(item);
123
- },
124
- clear: function clear() {
125
- return widgetMethodsRef.current.clear();
126
- },
127
- getWidgets: function getWidgets(widgetName, index) {
128
- return widgetMethodsRef.current.getWidgets(widgetName, index);
129
- },
100
+ selectItem: (val) => widgetMethodsRef.current.selectItem(val),
101
+ deselectItem: (val) => widgetMethodsRef.current.deselectItem(val),
102
+ getItem: (index) => widgetMethodsRef.current.getItem(index),
103
+ getIndex: (item) => widgetMethodsRef.current.getIndex(item),
104
+ clear: () => widgetMethodsRef.current.clear(),
105
+ getWidgets: (widgetName, index) => widgetMethodsRef.current.getWidgets(widgetName, index),
130
106
  listItems: {
131
107
  first: items[0],
132
108
  last: items[items.length - 1],
133
109
  length: items.length
134
110
  },
135
- showNavigation: showNavigation,
136
- selectPageSize: function selectPageSize(size) {
137
- return widgetMethodsRef.current.selectPageSize(size);
138
- }
111
+ showNavigation,
112
+ selectPageSize: (size) => widgetMethodsRef.current.selectPageSize(size)
139
113
  });
140
114
  }
141
115
  }, [name, showNavigation, items]);
142
-
143
- // Effect 3: Expose methods through widget instance
144
- (0, _react.useEffect)(function () {
145
- if (listener !== null && listener !== void 0 && listener.onChange && props.navigation !== _constants.LIST_NAVIGATION_TYPES.NONE) {
116
+ useEffect(() => {
117
+ if ((listener == null ? void 0 : listener.onChange) && props.navigation !== LIST_NAVIGATION_TYPES.NONE) {
146
118
  listener.onChange(name, {
147
119
  selecteditem: listState.selectedItems[0]
148
120
  });
149
121
  }
150
122
  }, [listState.selectedItems]);
151
-
152
- // Effect 3b: Update selected item widgets for state restoration (not selectfirstitem)
153
-
154
- (0, _react.useEffect)(function () {
155
- // Only run once on initial load when there are selected items from state restoration
156
- // Skip if selectfirstitem is true (handled in useListState)
157
- if (hasInitialWidgetUpdateRun.current || !(listener !== null && listener !== void 0 && listener.onChange) || listState.selectedItems.length === 0 || initialRender || selectfirstitem) {
123
+ useEffect(() => {
124
+ if (hasInitialWidgetUpdateRun.current || !(listener == null ? void 0 : listener.onChange) || listState.selectedItems.length === 0 || initialRender || selectfirstitem) {
158
125
  return;
159
126
  }
160
-
161
- // Mark as run
162
127
  hasInitialWidgetUpdateRun.current = true;
163
-
164
- // Use double RAF to ensure DOM is fully updated
165
- rafRef1.current = requestAnimationFrame(function () {
166
- // getSelectedItemWidgets(null, listener, name);
167
- rafRef2.current = requestAnimationFrame(function () {
168
- (0, _listHelpers.getSelectedItemWidgets)(null, listener, name, listState.selectedItems[0] || null, Widgets);
128
+ rafRef1.current = requestAnimationFrame(() => {
129
+ rafRef2.current = requestAnimationFrame(() => {
130
+ getSelectedItemWidgets(null, listener, name, listState.selectedItems[0] || null, Widgets);
169
131
  });
170
132
  });
171
- return function () {
133
+ return () => {
172
134
  if (rafRef1.current) {
173
135
  cancelAnimationFrame(rafRef1.current);
174
136
  }
@@ -177,57 +139,39 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
177
139
  }
178
140
  };
179
141
  }, [name, listState.selectedItems.length, initialRender, selectfirstitem]);
180
-
181
- // Effect 5: Handle selectfirstitem with onSelect
182
- // Use setTimeout to ensure onSelect fires after onRender (which is called synchronously in ListItems)
183
- (0, _react.useEffect)(function () {
142
+ useEffect(() => {
184
143
  if (selectfirstitem && widgetInstance && onSelect && listState.selectedItems.length > 0) {
185
- // Only trigger onSelect for selectfirstitem if it's the initial selection and not user-initiated
186
144
  if (listState.selectedItems.length === 1 && items.length > 0 && listState.selectedItems[0] === items[0]) {
187
145
  if (!userInitiatedSelectionRef.current) {
188
- // Delay onSelect to ensure it fires after onRender
189
- // onRender is called synchronously in the ListItems component
190
- var timer = setTimeout(function () {
191
- var selectedItem = listState.selectedItems[0];
192
-
193
- // Attach context information to widget instance
146
+ const timer = setTimeout(() => {
147
+ const selectedItem = listState.selectedItems[0];
194
148
  if (selectedItem) {
195
- (0, _widgetInstanceUtils.setWidgetIndexWithContext)(widgetInstance, items, selectedItem);
149
+ setWidgetIndexWithContext(widgetInstance, items, selectedItem);
196
150
  }
197
151
  onSelect(widgetInstance, selectedItem);
198
152
  }, 0);
199
- return function () {
200
- return clearTimeout(timer);
201
- };
153
+ return () => clearTimeout(timer);
202
154
  }
203
155
  }
204
156
  }
205
157
  }, [selectfirstitem, listState.selectedItems, items]);
206
- // Effect 6: Handle selectfirstitem for grouped data
207
- (0, _react.useEffect)(function () {
158
+ useEffect(() => {
208
159
  if (selectfirstitem && groupby && groupedData && groupedData.length > 0) {
209
- var firstGroup = groupedData[0];
160
+ const firstGroup = groupedData[0];
210
161
  if (firstGroup && firstGroup.data && firstGroup.data.length > 0) {
211
- var firstItemInGroup = firstGroup.data[0];
212
- var setFirstItem = function setFirstItem() {
162
+ const firstItemInGroup = firstGroup.data[0];
163
+ const setFirstItem = () => {
213
164
  listState.setSelectedItems([firstItemInGroup]);
214
- listState.setActiveItems(new Set([firstItemInGroup]));
165
+ listState.setActiveItems(/* @__PURE__ */ new Set([firstItemInGroup]));
215
166
  listState.setFirstSelectedItem(firstItemInGroup);
216
- // Trigger onSelect for the initial selection of first item in grouped data only if not user-initiated
217
167
  if (onSelect && widgetInstance && !userInitiatedSelectionRef.current) {
218
- // Delay onSelect to ensure it fires after onRender
219
- // onRender is called synchronously in the ListItems component
220
- var timer = setTimeout(function () {
221
- (0, _widgetInstanceUtils.setWidgetIndexWithContext)(widgetInstance, items, firstItemInGroup);
168
+ const timer = setTimeout(() => {
169
+ setWidgetIndexWithContext(widgetInstance, items, firstItemInGroup);
222
170
  onSelect(widgetInstance, firstItemInGroup);
223
171
  }, 0);
224
- return function () {
225
- return clearTimeout(timer);
226
- };
172
+ return () => clearTimeout(timer);
227
173
  }
228
174
  };
229
-
230
- // Check if the currently selected first item is different from the grouped first item
231
175
  if (listState.selectedItems.length && listState.selectedItems[0] !== firstItemInGroup) {
232
176
  setFirstItem();
233
177
  } else if (listState.selectedItems.length === 0) {
@@ -236,79 +180,59 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
236
180
  }
237
181
  }
238
182
  }, [groupby, groupedData, selectfirstitem, listState]);
239
-
240
- // Effect 7: Reset user-initiated flag after selectedItems change
241
- (0, _react.useEffect)(function () {
242
- var timer = setTimeout(function () {
183
+ useEffect(() => {
184
+ const timer = setTimeout(() => {
243
185
  userInitiatedSelectionRef.current = false;
244
186
  }, 0);
245
- return function () {
246
- return clearTimeout(timer);
247
- };
187
+ return () => clearTimeout(timer);
248
188
  }, [listState.selectedItems]);
249
-
250
- // Effect 8: Load persisted state when items are available
251
- (0, _react.useEffect)(function () {
252
- // Only run this effect once when items become available
189
+ useEffect(() => {
253
190
  if (items.length > 0 && initialRender) {
254
- // Restore selected items from our parsed initial state
255
191
  if (initialSelectedItems.length > 0) {
256
- // Map indexes to actual items
257
- var selectedItems = initialSelectedItems.map(function (idx) {
258
- return idx >= 0 && idx < items.length ? items[idx] : null;
259
- }).filter(Boolean);
192
+ const selectedItems = initialSelectedItems.map((idx) => idx >= 0 && idx < items.length ? items[idx] : null).filter(Boolean);
260
193
  if (selectedItems.length > 0) {
261
194
  listState.setSelectedItems(selectedItems);
262
195
  listState.setActiveItems(new Set(selectedItems));
263
196
  listState.setFirstSelectedItem(selectedItems[0]);
264
197
  }
265
198
  }
266
-
267
- // For on-demand navigation, update visible items to show items up to the restored page
268
- if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND && initialPage > 1) {
199
+ if (navigation === LIST_NAVIGATION_TYPES.ON_DEMAND && initialPage > 1) {
269
200
  paginationState.setVisibleItems(initialPage * paginationState.currentPageSize);
270
201
  }
271
-
272
- // Mark initialization as complete
273
202
  setinitialRender(false);
274
203
  }
275
- }, [items, initialRender, initialPage, initialSelectedItems, paginationState.currentPageSize, paginationState.setVisibleItems, paginationState.setCurrentPage, navigation, datasource, listState.setSelectedItems, listState.setActiveItems, listState.setFirstSelectedItem]);
276
-
277
- // Effect 9: Clear persisted state when items are reordered
278
- (0, _react.useEffect)(function () {
279
- // Skip state clearing for On-Demand navigation
280
- if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND) {
204
+ }, [
205
+ items,
206
+ initialRender,
207
+ initialPage,
208
+ initialSelectedItems,
209
+ paginationState.currentPageSize,
210
+ paginationState.setVisibleItems,
211
+ paginationState.setCurrentPage,
212
+ navigation,
213
+ datasource,
214
+ listState.setSelectedItems,
215
+ listState.setActiveItems,
216
+ listState.setFirstSelectedItem
217
+ ]);
218
+ useEffect(() => {
219
+ if (navigation === LIST_NAVIGATION_TYPES.ON_DEMAND) {
281
220
  return;
282
221
  }
283
222
  if (hasBeenReordered) {
284
- // Clear the persisted state
285
- (0, _listHelpers.clearListState)(name, statehandler);
223
+ clearListState(name, statehandler);
286
224
  }
287
225
  }, [hasBeenReordered, navigation]);
288
-
289
- // Effect 10: Restore selections when page size changes
290
- (0, _react.useEffect)(function () {
291
- // Skip for On-Demand navigation
292
- if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND) {
226
+ useEffect(() => {
227
+ if (navigation === LIST_NAVIGATION_TYPES.ON_DEMAND) {
293
228
  return;
294
229
  }
295
-
296
- // Check if page size has changed and we have items
297
- var pageSizeChanged = lastPageSize !== paginationState.currentPageSize;
230
+ const pageSizeChanged = lastPageSize !== paginationState.currentPageSize;
298
231
  if (pageSizeChanged && items.length > 0 && statehandler) {
299
- var savedState = (0, _listHelpers.getListState)(name, statehandler);
300
- if (savedState !== null && savedState !== void 0 && savedState.selectedItem && savedState.selectedItem.length > 0) {
301
- // Filter selections for the current page (should be page 1 after size change)
302
- var currentPageSelections = savedState.selectedItem.filter(function (item) {
303
- return item.page === paginationState.currentPage;
304
- }).map(function (item) {
305
- return item.index;
306
- });
307
-
308
- // Map indexes to actual items
309
- var selectedItems = currentPageSelections.map(function (idx) {
310
- return idx >= 0 && idx < items.length ? items[idx] : null;
311
- }).filter(Boolean);
232
+ const savedState = getListState(name, statehandler);
233
+ if ((savedState == null ? void 0 : savedState.selectedItem) && savedState.selectedItem.length > 0) {
234
+ const currentPageSelections = savedState.selectedItem.filter((item) => item.page === paginationState.currentPage).map((item) => item.index);
235
+ const selectedItems = currentPageSelections.map((idx) => idx >= 0 && idx < items.length ? items[idx] : null).filter(Boolean);
312
236
  if (selectedItems.length > 0) {
313
237
  listState.setSelectedItems(selectedItems);
314
238
  listState.setActiveItems(new Set(selectedItems));
@@ -317,39 +241,46 @@ var useListEffects = exports.useListEffects = function useListEffects(props) {
317
241
  }
318
242
  setLastPageSize(paginationState.currentPageSize);
319
243
  }
320
- }, [items, paginationState.currentPageSize, paginationState.currentPage, lastPageSize, navigation, statehandler, name, listState]);
321
-
322
- // Effect 11: Persist state on changes
323
- (0, _react.useEffect)(function () {
324
- // Skip state persistence for On-Demand navigation
325
- if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND) {
244
+ }, [
245
+ items,
246
+ paginationState.currentPageSize,
247
+ paginationState.currentPage,
248
+ lastPageSize,
249
+ navigation,
250
+ statehandler,
251
+ name,
252
+ listState
253
+ ]);
254
+ useEffect(() => {
255
+ if (navigation === LIST_NAVIGATION_TYPES.ON_DEMAND) {
326
256
  return;
327
257
  }
328
-
329
- // Check if we're in default state
330
258
  if (items.length > 0 && !hasBeenReordered && !stateManager.isDefaultState()) {
331
- // Get existing persisted state
332
- var existingState = (0, _listHelpers.getListState)(name, statehandler);
333
-
334
- // Merge current state with existing state
335
- var stateToSave = stateManager.mergeWithExisting(stateManager.currentState, existingState);
336
-
337
- // Compare state content, not object references
338
- var existingStateStr = JSON.stringify(existingState);
339
- var stateToSaveStr = JSON.stringify(stateToSave);
340
- var statesAreEqual = existingStateStr === stateToSaveStr;
341
-
342
- // Save the state only if content has actually changed
259
+ const existingState = getListState(name, statehandler);
260
+ const stateToSave = stateManager.mergeWithExisting(stateManager.currentState, existingState);
261
+ const existingStateStr = JSON.stringify(existingState);
262
+ const stateToSaveStr = JSON.stringify(stateToSave);
263
+ const statesAreEqual = existingStateStr === stateToSaveStr;
343
264
  if (!statesAreEqual) {
344
- (0, _listHelpers.saveListState)(name, statehandler, stateToSave);
265
+ saveListState(name, statehandler, stateToSave);
345
266
  }
346
267
  }
347
- }, [listState.selectedItems, paginationState.currentPage, items, name, navigation, hasBeenReordered, statehandler]);
348
- (0, _react.useEffect)(function () {
268
+ }, [
269
+ listState.selectedItems,
270
+ paginationState.currentPage,
271
+ items,
272
+ name,
273
+ navigation,
274
+ hasBeenReordered,
275
+ statehandler
276
+ ]);
277
+ useEffect(() => {
349
278
  if (restoredPageNumber !== null && paginationState) {
350
279
  paginationState.setCurrentPage(restoredPageNumber);
351
- // Clear the restored page number after applying
352
280
  setRestoredPageNumber(null);
353
281
  }
354
282
  }, [restoredPageNumber, paginationState]);
355
- };
283
+ };
284
+ export {
285
+ useListEffects
286
+ };