@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,633 +1,460 @@
1
- "use strict";
2
-
3
- var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
- Object.defineProperty(exports, "__esModule", {
5
- value: true
6
- });
7
- exports.useTableStateManager = void 0;
8
- var _defineProperty2 = _interopRequireDefault(require("@babel/runtime/helpers/defineProperty"));
9
- var _react = require("react");
10
- var _tableHelpers = require("../utils/table-helpers");
11
- var _lodashEs = require("lodash-es");
12
- var _constants = require("../utils/constants");
13
- 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; }
14
- 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; }
15
- var useTableStateManager = exports.useTableStateManager = function useTableStateManager(props) {
16
- var name = props.name,
17
- storage = props.storage,
18
- currentPage = props.currentPage,
19
- currentPageSize = props.currentPageSize,
20
- selectedRowIds = props.selectedRowIds,
21
- internalDataset = props.internalDataset,
22
- initialActualPageSize = props.initialActualPageSize,
23
- datasource = props.datasource,
24
- multiselect = props.multiselect,
25
- filterData = props.filterData,
26
- sortData = props.sortData,
27
- _props$navigation = props.navigation,
28
- navigation = _props$navigation === void 0 ? "Pager" : _props$navigation,
29
- _props$isStateConfigu = props.isStateConfigured,
30
- isStateConfigured = _props$isStateConfigu === void 0 ? false : _props$isStateConfigu,
31
- defaultPageSize = props.defaultPageSize,
32
- initialSortState = props.initialSortState,
33
- initialFilterState = props.initialFilterState;
34
-
35
- // Track previous state to return when loading
36
- var prevStateRef = (0, _react.useRef)({});
37
-
38
- // Track if we've already calculated state after loading
39
- var hasCalculatedAfterLoadingRef = (0, _react.useRef)(false);
40
-
41
- // Track the previous loading state
42
- var wasLoadingRef = (0, _react.useRef)(false);
43
-
44
- // Track complete selection state with page info for multiselect
45
- var selectionStateRef = (0, _react.useRef)([]);
46
-
47
- // Track previous filter data to detect changes
48
- var prevFilterDataRef = (0, _react.useRef)(undefined);
49
-
50
- // Track if filter state has been persisted after a change
51
- var filterStatePersistenceTriggeredRef = (0, _react.useRef)(false);
52
-
53
- // Track previous sort data to detect changes
54
- var prevSortDataRef = (0, _react.useRef)(undefined);
55
-
56
- // Track if filter state needs to be saved after loading completes
57
- var filterStatePendingRef = (0, _react.useRef)(false);
58
-
59
- // Track if sort state needs to be saved after loading completes
60
- var sortStatePendingRef = (0, _react.useRef)(false);
61
-
62
- // Check if state persistence is disabled for this navigation type
63
- var isStatePersistenceDisabled = _constants.UNSUPPORTED_STATE_PERSISTENCE_TYPES.includes(navigation);
64
-
65
- // Build the current state object
66
- var currentState = (0, _react.useMemo)(function () {
67
- // Completely disable state calculation for unsupported navigation types
1
+ var __defProp = Object.defineProperty;
2
+ var __getOwnPropSymbols = Object.getOwnPropertySymbols;
3
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
4
+ var __propIsEnum = Object.prototype.propertyIsEnumerable;
5
+ var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
6
+ var __spreadValues = (a, b) => {
7
+ for (var prop in b || (b = {}))
8
+ if (__hasOwnProp.call(b, prop))
9
+ __defNormalProp(a, prop, b[prop]);
10
+ if (__getOwnPropSymbols)
11
+ for (var prop of __getOwnPropSymbols(b)) {
12
+ if (__propIsEnum.call(b, prop))
13
+ __defNormalProp(a, prop, b[prop]);
14
+ }
15
+ return a;
16
+ };
17
+ import { useMemo, useCallback, useRef, useEffect } from "react";
18
+ import {
19
+ saveTableState,
20
+ getTableState,
21
+ clearTableState
22
+ } from "../utils/table-helpers";
23
+ import { isArray } from "lodash-es";
24
+ import { UNSUPPORTED_STATE_PERSISTENCE_TYPES } from "../utils/constants";
25
+ const useTableStateManager = (props) => {
26
+ const {
27
+ name,
28
+ storage,
29
+ currentPage,
30
+ currentPageSize,
31
+ selectedRowIds,
32
+ internalDataset,
33
+ initialActualPageSize,
34
+ datasource,
35
+ multiselect,
36
+ filterData,
37
+ sortData,
38
+ navigation = "Pager",
39
+ isStateConfigured = false,
40
+ defaultPageSize,
41
+ initialSortState,
42
+ initialFilterState
43
+ } = props;
44
+ const prevStateRef = useRef({});
45
+ const hasCalculatedAfterLoadingRef = useRef(false);
46
+ const wasLoadingRef = useRef(false);
47
+ const selectionStateRef = useRef([]);
48
+ const prevFilterDataRef = useRef(void 0);
49
+ const filterStatePersistenceTriggeredRef = useRef(false);
50
+ const prevSortDataRef = useRef(void 0);
51
+ const filterStatePendingRef = useRef(false);
52
+ const sortStatePendingRef = useRef(false);
53
+ const isStatePersistenceDisabled = UNSUPPORTED_STATE_PERSISTENCE_TYPES.includes(navigation);
54
+ const currentState = useMemo(() => {
68
55
  if (isStatePersistenceDisabled) {
69
56
  return {};
70
57
  }
71
- var isLoading = !!(datasource !== null && datasource !== void 0 && datasource.loading);
72
-
73
- // Detect first calculation after loading becomes false
74
- var isFirstCalculationAfterLoading = wasLoadingRef.current && !isLoading && !hasCalculatedAfterLoadingRef.current;
75
-
76
- // If loading just started, reset the flag for next time
58
+ const isLoading = !!(datasource == null ? void 0 : datasource.loading);
59
+ const isFirstCalculationAfterLoading = wasLoadingRef.current && !isLoading && !hasCalculatedAfterLoadingRef.current;
77
60
  if (isLoading && !wasLoadingRef.current) {
78
61
  hasCalculatedAfterLoadingRef.current = false;
79
62
  }
80
-
81
- // Update the loading state tracker
82
63
  wasLoadingRef.current = isLoading;
83
-
84
- // If datasource is loading, return the previous state without any calculations
85
64
  if (isLoading) {
86
65
  return prevStateRef.current;
87
66
  }
88
-
89
- // If this is the first calculation after loading, mark as calculated and return minimal state
90
67
  if (isFirstCalculationAfterLoading) {
91
68
  hasCalculatedAfterLoadingRef.current = true;
92
- // Clear selection state ref for fresh start after loading
93
69
  if (multiselect) {
94
70
  selectionStateRef.current = [];
95
71
  }
96
- // Return minimal state for first calculation after loading to avoid stale data
97
- // Only include pagination if not on page 1 (consistent with normal calculation path)
98
- var minimalState = {};
72
+ const minimalState = {};
99
73
  if (currentPage !== 1) {
100
74
  minimalState.pagination = currentPage;
101
75
  }
102
76
  return minimalState;
103
77
  }
104
-
105
- // Otherwise, calculate the new state
106
- var state = {};
107
-
108
- // Check if filtering is active and different from initial
109
- var hasActiveFilter = filterData !== undefined && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
110
-
111
- // Include actualPageSize if it's provided (should be persisted once and never change)
112
- if (initialActualPageSize !== undefined) {
78
+ const state = {};
79
+ const hasActiveFilter = filterData !== void 0 && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
80
+ if (initialActualPageSize !== void 0) {
113
81
  state.actualpagesize = initialActualPageSize;
114
82
  }
115
-
116
- // Include search/filter state if it differs from initial
117
83
  if (hasActiveFilter) {
118
84
  state.search = filterData;
119
-
120
- // Include sort state if it differs from initial (even when filtering)
121
- var _isSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
122
- if (_isSortChanged) {
85
+ const isSortChanged2 = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
86
+ if (isSortChanged2) {
123
87
  state.sort = sortData;
124
88
  }
125
-
126
- // When filtering is active, don't include pagination or selectedItem at all
127
- // They should be completely removed from state
128
- // Save the calculated state for next time
129
89
  prevStateRef.current = state;
130
90
  return state;
131
91
  }
132
-
133
- // Include sort state if it differs from initial
134
- var isSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
92
+ const isSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
135
93
  if (isSortChanged) {
136
94
  state.sort = sortData;
137
95
  }
138
-
139
- // Only include pagination if not on page 1 (default)
140
96
  if (currentPage !== 1) {
141
97
  state.pagination = currentPage;
142
98
  }
143
-
144
- // Get selected items from unified selectedRowIds array
145
- // Works for both radio select (1 item) and multiselect (multiple items)
146
- var selectedIds = selectedRowIds || [];
99
+ const selectedIds = selectedRowIds || [];
147
100
  if (multiselect) {
148
- // For multiselect, we need to maintain selections across pages
149
- // Get all currently selected IDs
150
- var allSelectedIds = new Set(selectedIds);
151
-
152
- // Build a map of items on the current page for quick lookup
153
- var currentPageItemsMap = new Map();
154
- internalDataset.forEach(function (item, index) {
101
+ const allSelectedIds = new Set(selectedIds);
102
+ const currentPageItemsMap = /* @__PURE__ */ new Map();
103
+ internalDataset.forEach((item, index) => {
155
104
  if (item._wmRowId) {
156
105
  currentPageItemsMap.set(item._wmRowId, index);
157
106
  }
158
107
  });
159
-
160
- // Update selection state:
161
- // 1. Keep selections from other pages if their IDs are still selected
162
- // 2. Add/update selections from current page
163
- var updatedSelections = [];
164
-
165
- // Keep selections from other pages that are still selected
166
- selectionStateRef.current.forEach(function (item) {
108
+ const updatedSelections = [];
109
+ selectionStateRef.current.forEach((item) => {
167
110
  if (item.page !== currentPage && allSelectedIds.has(item.id)) {
168
111
  updatedSelections.push(item);
169
112
  }
170
113
  });
171
-
172
- // Add selections from current page
173
- allSelectedIds.forEach(function (id) {
174
- var index = currentPageItemsMap.get(id);
175
- if (index !== undefined) {
176
- updatedSelections.push({
177
- page: currentPage,
178
- index: index,
179
- id: id
180
- });
114
+ allSelectedIds.forEach((id) => {
115
+ const index = currentPageItemsMap.get(id);
116
+ if (index !== void 0) {
117
+ updatedSelections.push({ page: currentPage, index, id });
181
118
  }
182
119
  });
183
-
184
- // Update the ref
185
120
  selectionStateRef.current = updatedSelections;
186
-
187
- // Only include selectedItem if there are selections
188
121
  if (updatedSelections.length > 0) {
189
- state.selectedItem = updatedSelections.map(function (_ref) {
190
- var page = _ref.page,
191
- index = _ref.index;
192
- return {
193
- page: page,
194
- index: index
195
- };
196
- });
122
+ state.selectedItem = updatedSelections.map(({ page, index }) => ({ page, index }));
197
123
  }
198
124
  } else {
199
- // For single select, just find the selected item in current dataset
200
- var selectedIndices = [];
201
- selectedIds.forEach(function (id) {
202
- var index = internalDataset.findIndex(function (item) {
203
- return item._wmRowId === id;
204
- });
125
+ const selectedIndices = [];
126
+ selectedIds.forEach((id) => {
127
+ const index = internalDataset.findIndex((item) => item._wmRowId === id);
205
128
  if (index >= 0) {
206
129
  selectedIndices.push(index);
207
130
  }
208
131
  });
209
-
210
- // Only include selectedItem if there are selections
211
132
  if (selectedIndices.length > 0) {
212
- // Build selected items with page info
213
- var selectedItemsWithPage = selectedIndices.map(function (idx) {
214
- return {
215
- page: currentPage,
216
- index: idx
217
- };
218
- });
133
+ const selectedItemsWithPage = selectedIndices.map((idx) => ({
134
+ page: currentPage,
135
+ index: idx
136
+ }));
219
137
  state.selectedItem = selectedItemsWithPage;
220
138
  }
221
139
  }
222
-
223
- // Save the calculated state for next time
224
140
  prevStateRef.current = state;
225
-
226
- // Only include pagesize if it differs from default
227
141
  if (defaultPageSize && currentPageSize !== defaultPageSize) {
228
142
  state.pagesize = currentPageSize;
229
143
  }
230
144
  return state;
231
- }, [currentPage, currentPageSize, selectedRowIds, internalDataset, initialActualPageSize, multiselect, datasource === null || datasource === void 0 ? void 0 : datasource.loading, filterData, sortData, defaultPageSize, initialSortState, initialFilterState, isStatePersistenceDisabled]);
232
-
233
- // Get state for page size change
234
- var getStateForPageSizeChange = (0, _react.useCallback)(function (newPageSize, existingSelectedItems, oldPageSize) {
235
- // Completely disable for unsupported navigation types
236
- if (isStatePersistenceDisabled) {
237
- return {};
238
- }
239
-
240
- // Check if filtering is currently active and different from initial
241
- var hasActiveFilter = filterData !== undefined && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
242
- var state = {};
243
-
244
- // Always include pagesize in page size change state
245
- // This ensures proper state management when changing page sizes
246
- state.pagesize = newPageSize;
247
-
248
- // Include actualPageSize if it's provided (should be persisted)
249
- if (initialActualPageSize !== undefined) {
250
- state.actualpagesize = initialActualPageSize;
251
- }
252
-
253
- // If filtering is active, maintain the filter but don't include pagination or selectedItem
254
- if (hasActiveFilter) {
255
- state.search = filterData;
256
- }
257
-
258
- // Include sort if it differs from initial
259
- var isSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
260
- if (isSortChanged) {
261
- state.sort = sortData;
262
- }
263
-
264
- // If filtering is active, don't include pagination or selectedItem
265
- if (hasActiveFilter) {
145
+ }, [
146
+ currentPage,
147
+ currentPageSize,
148
+ selectedRowIds,
149
+ internalDataset,
150
+ initialActualPageSize,
151
+ multiselect,
152
+ datasource == null ? void 0 : datasource.loading,
153
+ filterData,
154
+ sortData,
155
+ defaultPageSize,
156
+ initialSortState,
157
+ initialFilterState,
158
+ isStatePersistenceDisabled
159
+ ]);
160
+ const getStateForPageSizeChange = useCallback(
161
+ (newPageSize, existingSelectedItems, oldPageSize) => {
162
+ if (isStatePersistenceDisabled) {
163
+ return {};
164
+ }
165
+ const hasActiveFilter = filterData !== void 0 && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
166
+ const state = {};
167
+ state.pagesize = newPageSize;
168
+ if (initialActualPageSize !== void 0) {
169
+ state.actualpagesize = initialActualPageSize;
170
+ }
171
+ if (hasActiveFilter) {
172
+ state.search = filterData;
173
+ }
174
+ const isSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
175
+ if (isSortChanged) {
176
+ state.sort = sortData;
177
+ }
178
+ if (hasActiveFilter) {
179
+ return state;
180
+ }
181
+ let recalculatedItems = [];
182
+ if (existingSelectedItems && existingSelectedItems.length > 0 && oldPageSize) {
183
+ recalculatedItems = existingSelectedItems.map(({ page, index }) => {
184
+ const absoluteIndex = (page - 1) * oldPageSize + index;
185
+ const newPage = Math.floor(absoluteIndex / newPageSize) + 1;
186
+ const newIndex = absoluteIndex % newPageSize;
187
+ return {
188
+ page: newPage,
189
+ index: newIndex
190
+ };
191
+ });
192
+ }
193
+ if (multiselect) {
194
+ selectionStateRef.current = [];
195
+ }
196
+ if (recalculatedItems.length > 0) {
197
+ state.selectedItem = recalculatedItems;
198
+ }
266
199
  return state;
267
- }
268
-
269
- // Only handle pagination and selectedItem if no filter is active
270
- var recalculatedItems = [];
271
- if (existingSelectedItems && existingSelectedItems.length > 0 && oldPageSize) {
272
- // Recalculate selected items positions based on new page size
273
- recalculatedItems = existingSelectedItems.map(function (_ref2) {
274
- var page = _ref2.page,
275
- index = _ref2.index;
276
- // Calculate absolute position using the OLD page size
277
- var absoluteIndex = (page - 1) * oldPageSize + index;
278
-
279
- // Calculate new page and index with the NEW page size
280
- var newPage = Math.floor(absoluteIndex / newPageSize) + 1;
281
- var newIndex = absoluteIndex % newPageSize;
282
- return {
283
- page: newPage,
284
- index: newIndex
285
- };
286
- });
287
- }
288
-
289
- // Clear selection state ref when page size changes
290
- if (multiselect) {
291
- selectionStateRef.current = [];
292
- }
293
-
294
- // Don't include pagination if it's page 1 (default)
295
- // state.pagination = 1; // Don't include this as it's the default
296
-
297
- // Only include selectedItem if there are selections
298
- if (recalculatedItems.length > 0) {
299
- state.selectedItem = recalculatedItems;
300
- }
301
- return state;
302
- }, [initialActualPageSize, multiselect, filterData, sortData, defaultPageSize, initialSortState, initialFilterState, isStatePersistenceDisabled]);
303
-
304
- // Check if current state is default (no need to persist)
305
- var isDefaultState = (0, _react.useCallback)(function () {
306
- // For unsupported navigation types, always return true (treat as default, no persistence)
200
+ },
201
+ [
202
+ initialActualPageSize,
203
+ multiselect,
204
+ filterData,
205
+ sortData,
206
+ defaultPageSize,
207
+ initialSortState,
208
+ initialFilterState,
209
+ isStatePersistenceDisabled
210
+ ]
211
+ );
212
+ const isDefaultState = useCallback(() => {
307
213
  if (isStatePersistenceDisabled) {
308
214
  return true;
309
215
  }
310
- var hasSelection = selectedRowIds && selectedRowIds.length > 0;
311
-
312
- // Check if filter differs from initial
313
- var hasFilterChange = filterData && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
314
-
315
- // Check if sort differs from initial
316
- var hasSortChange = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
317
-
318
- // Check if page size differs from default
319
- var hasPageSizeChange = defaultPageSize && currentPageSize !== defaultPageSize;
320
-
321
- // If nothing has changed from defaults, it's default state
216
+ const hasSelection = selectedRowIds && selectedRowIds.length > 0;
217
+ const hasFilterChange = filterData && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
218
+ const hasSortChange = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
219
+ const hasPageSizeChange = defaultPageSize && currentPageSize !== defaultPageSize;
322
220
  return currentPage === 1 && !hasSelection && !hasFilterChange && !hasSortChange && !hasPageSizeChange;
323
- }, [currentPage, currentPageSize, selectedRowIds, filterData, sortData, defaultPageSize, isStatePersistenceDisabled, initialSortState, initialFilterState]);
324
-
325
- // Merge with existing state
326
- var mergeWithExisting = (0, _react.useCallback)(function (newState, existingState) {
327
- // Completely disable for unsupported navigation types
328
- if (isStatePersistenceDisabled) {
329
- return {};
330
- }
331
- if (!existingState) {
332
- return newState;
333
- }
334
- var merged = _objectSpread({}, newState);
335
-
336
- // Check if filtering is active in the new state
337
- var hasActiveFilter = newState.search !== undefined && newState.search.length > 0;
338
-
339
- // If filtering is active, return only what's in newState plus preserved size properties
340
- if (hasActiveFilter) {
341
- // Start fresh with only what's in newState
342
- var filteredMerged = _objectSpread({}, newState);
343
-
344
- // Only preserve pagesize from existing if not in new state and it differs from default
345
- if (!filteredMerged.pagesize && existingState.pagesize && (!defaultPageSize || existingState.pagesize !== defaultPageSize)) {
346
- filteredMerged.pagesize = existingState.pagesize;
221
+ }, [
222
+ currentPage,
223
+ currentPageSize,
224
+ selectedRowIds,
225
+ filterData,
226
+ sortData,
227
+ defaultPageSize,
228
+ isStatePersistenceDisabled,
229
+ initialSortState,
230
+ initialFilterState
231
+ ]);
232
+ const mergeWithExisting = useCallback(
233
+ (newState, existingState) => {
234
+ if (isStatePersistenceDisabled) {
235
+ return {};
347
236
  }
348
- // Preserve actualPageSize from existing state if not in new state
349
- if (!filteredMerged.actualpagesize && existingState.actualpagesize !== undefined) {
350
- filteredMerged.actualpagesize = existingState.actualpagesize;
237
+ if (!existingState) {
238
+ return newState;
351
239
  }
352
- if (!filteredMerged.sort && existingState.sort) {
353
- filteredMerged.sort = existingState.sort;
240
+ const merged = __spreadValues({}, newState);
241
+ const hasActiveFilter = newState.search !== void 0 && newState.search.length > 0;
242
+ if (hasActiveFilter) {
243
+ const filteredMerged = __spreadValues({}, newState);
244
+ if (!filteredMerged.pagesize && existingState.pagesize && (!defaultPageSize || existingState.pagesize !== defaultPageSize)) {
245
+ filteredMerged.pagesize = existingState.pagesize;
246
+ }
247
+ if (!filteredMerged.actualpagesize && existingState.actualpagesize !== void 0) {
248
+ filteredMerged.actualpagesize = existingState.actualpagesize;
249
+ }
250
+ if (!filteredMerged.sort && existingState.sort) {
251
+ filteredMerged.sort = existingState.sort;
252
+ }
253
+ delete filteredMerged.pagination;
254
+ delete filteredMerged.selectedItem;
255
+ return filteredMerged;
354
256
  }
355
-
356
- // Explicitly ensure pagination and selectedItem are not in the merged state
357
- delete filteredMerged.pagination;
358
- delete filteredMerged.selectedItem;
359
- return filteredMerged;
360
- }
361
-
362
- // If no active filter, proceed with normal merging
363
- // Handle selected items based on multiselect mode
364
- if (newState.selectedItem !== undefined) {
365
- // For multiselect, the newState already contains all selections across pages
366
- // For single select, use the new selection if available, otherwise keep existing
367
- if (multiselect || newState.selectedItem.length > 0) {
368
- merged.selectedItem = newState.selectedItem;
369
- } else if (existingState.selectedItem) {
370
- // For single select with no current selection, keep existing
257
+ if (newState.selectedItem !== void 0) {
258
+ if (multiselect || newState.selectedItem.length > 0) {
259
+ merged.selectedItem = newState.selectedItem;
260
+ } else if (existingState.selectedItem) {
261
+ merged.selectedItem = existingState.selectedItem;
262
+ }
263
+ } else if (existingState.selectedItem && !hasActiveFilter) {
371
264
  merged.selectedItem = existingState.selectedItem;
372
265
  }
373
- } else if (existingState.selectedItem && !hasActiveFilter) {
374
- // Preserve existing selectedItem if not in new state and no filter
375
- merged.selectedItem = existingState.selectedItem;
376
- }
377
-
378
- // Preserve pagesize if not in new state and it differs from default
379
- if (!merged.pagesize && existingState.pagesize && (!defaultPageSize || existingState.pagesize !== defaultPageSize)) {
380
- merged.pagesize = existingState.pagesize;
381
- }
382
-
383
- // Preserve actualPageSize from existing state if not in new state
384
- if (!merged.actualpagesize && existingState.actualpagesize !== undefined) {
385
- merged.actualpagesize = existingState.actualpagesize;
386
- }
387
-
388
- // Note: We intentionally do NOT preserve pagination from existingState when newState doesn't have it.
389
- // When newState omits pagination, it means the current page is 1 (the default).
390
- // The old logic checked `existingState.pagination !== 1` which validates the stored value,
391
- // not the current page. This caused stale pagination values (e.g., 2) to persist when on page 1.
392
-
393
- // Preserve sort if not in new state
394
- if (!merged.sort && existingState.sort) {
395
- merged.sort = existingState.sort;
396
- }
397
- return merged;
398
- }, [multiselect, defaultPageSize, isStatePersistenceDisabled]);
399
-
400
- // Handle filter state changes
401
- var handleFilterStateChange = (0, _react.useCallback)(function () {
402
- // Completely disable for unsupported navigation types
266
+ if (!merged.pagesize && existingState.pagesize && (!defaultPageSize || existingState.pagesize !== defaultPageSize)) {
267
+ merged.pagesize = existingState.pagesize;
268
+ }
269
+ if (!merged.actualpagesize && existingState.actualpagesize !== void 0) {
270
+ merged.actualpagesize = existingState.actualpagesize;
271
+ }
272
+ if (!merged.sort && existingState.sort) {
273
+ merged.sort = existingState.sort;
274
+ }
275
+ return merged;
276
+ },
277
+ [multiselect, defaultPageSize, isStatePersistenceDisabled]
278
+ );
279
+ const handleFilterStateChange = useCallback(() => {
403
280
  if (isStatePersistenceDisabled || !isStateConfigured || storage === "none") {
404
281
  return;
405
282
  }
406
-
407
- // Check if filter data is different from initial
408
- var hasFilterData = (0, _lodashEs.isArray)(filterData) && filterData.length > 0;
409
- var isFilterChanged = hasFilterData && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
283
+ const hasFilterData = isArray(filterData) && filterData.length > 0;
284
+ const isFilterChanged = hasFilterData && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
410
285
  if (isFilterChanged) {
411
- // When filter is applied, we need to save a state that explicitly excludes pagination and selectedItem
412
- // Get the current full state
413
- var currentFullState = (0, _tableHelpers.getTableState)(name, storage);
414
-
415
- // Build new state with only the properties we want to keep
416
- var newState = {
286
+ const currentFullState = getTableState(name, storage);
287
+ const newState = {
417
288
  search: filterData
418
289
  };
419
-
420
- // Include actualPageSize if available
421
- if ((currentFullState === null || currentFullState === void 0 ? void 0 : currentFullState.actualpagesize) !== undefined) {
290
+ if ((currentFullState == null ? void 0 : currentFullState.actualpagesize) !== void 0) {
422
291
  newState.actualpagesize = currentFullState.actualpagesize;
423
- } else if (initialActualPageSize !== undefined) {
292
+ } else if (initialActualPageSize !== void 0) {
424
293
  newState.actualpagesize = initialActualPageSize;
425
294
  }
426
-
427
- // Only include pagesize if it differs from default
428
- if ((currentFullState === null || currentFullState === void 0 ? void 0 : currentFullState.pagesize) !== undefined && defaultPageSize && currentFullState.pagesize !== defaultPageSize) {
295
+ if ((currentFullState == null ? void 0 : currentFullState.pagesize) !== void 0 && defaultPageSize && currentFullState.pagesize !== defaultPageSize) {
429
296
  newState.pagesize = currentFullState.pagesize;
430
297
  }
431
-
432
- // Only include sort if it differs from initial
433
- if ((currentFullState === null || currentFullState === void 0 ? void 0 : currentFullState.sort) !== undefined) {
434
- var isSortChanged = JSON.stringify(currentFullState.sort) !== JSON.stringify(initialSortState);
298
+ if ((currentFullState == null ? void 0 : currentFullState.sort) !== void 0) {
299
+ const isSortChanged = JSON.stringify(currentFullState.sort) !== JSON.stringify(initialSortState);
435
300
  if (isSortChanged) {
436
301
  newState.sort = currentFullState.sort;
437
302
  }
438
303
  }
439
-
440
- // Clear and save to ensure no merge happens
441
- (0, _tableHelpers.clearTableState)(name, storage);
442
- (0, _tableHelpers.saveTableState)(name, storage, newState);
443
-
444
- // Clear the selection state ref for multiselect
304
+ clearTableState(name, storage);
305
+ saveTableState(name, storage, newState);
445
306
  if (multiselect) {
446
307
  selectionStateRef.current = [];
447
308
  }
448
309
  } else if (!hasFilterData) {
449
- // When filter is cleared, we need to update/clear the state
450
- var _currentFullState = (0, _tableHelpers.getTableState)(name, storage);
451
-
452
- // Check if there was a stored filter that needs to be cleared
453
- var hadStoredFilter = (_currentFullState === null || _currentFullState === void 0 ? void 0 : _currentFullState.search) && _currentFullState.search.length > 0;
454
- var hadInitialFilter = initialFilterState && initialFilterState.length > 0;
455
-
456
- // Only proceed if there was a stored filter or initial filter to clear
310
+ const currentFullState = getTableState(name, storage);
311
+ const hadStoredFilter = (currentFullState == null ? void 0 : currentFullState.search) && currentFullState.search.length > 0;
312
+ const hadInitialFilter = initialFilterState && initialFilterState.length > 0;
457
313
  if (hadStoredFilter || hadInitialFilter) {
458
- var _newState = {};
459
-
460
- // Include actualPageSize if available
461
- if ((_currentFullState === null || _currentFullState === void 0 ? void 0 : _currentFullState.actualpagesize) !== undefined) {
462
- _newState.actualpagesize = _currentFullState.actualpagesize;
463
- } else if (initialActualPageSize !== undefined) {
464
- _newState.actualpagesize = initialActualPageSize;
314
+ const newState = {};
315
+ if ((currentFullState == null ? void 0 : currentFullState.actualpagesize) !== void 0) {
316
+ newState.actualpagesize = currentFullState.actualpagesize;
317
+ } else if (initialActualPageSize !== void 0) {
318
+ newState.actualpagesize = initialActualPageSize;
465
319
  }
466
-
467
- // Only include pagesize if it differs from default
468
- if ((_currentFullState === null || _currentFullState === void 0 ? void 0 : _currentFullState.pagesize) !== undefined && defaultPageSize && _currentFullState.pagesize !== defaultPageSize) {
469
- _newState.pagesize = _currentFullState.pagesize;
320
+ if ((currentFullState == null ? void 0 : currentFullState.pagesize) !== void 0 && defaultPageSize && currentFullState.pagesize !== defaultPageSize) {
321
+ newState.pagesize = currentFullState.pagesize;
470
322
  }
471
-
472
- // Only include sort if it differs from initial
473
- if ((_currentFullState === null || _currentFullState === void 0 ? void 0 : _currentFullState.sort) !== undefined) {
474
- var _isSortChanged2 = JSON.stringify(_currentFullState.sort) !== JSON.stringify(initialSortState);
475
- if (_isSortChanged2) {
476
- _newState.sort = _currentFullState.sort;
323
+ if ((currentFullState == null ? void 0 : currentFullState.sort) !== void 0) {
324
+ const isSortChanged = JSON.stringify(currentFullState.sort) !== JSON.stringify(initialSortState);
325
+ if (isSortChanged) {
326
+ newState.sort = currentFullState.sort;
477
327
  }
478
328
  }
479
-
480
- // Clear and save if there's anything to save (excluding the search which we want to remove)
481
- (0, _tableHelpers.clearTableState)(name, storage);
482
- if (Object.keys(_newState).length > 0) {
483
- (0, _tableHelpers.saveTableState)(name, storage, _newState);
329
+ clearTableState(name, storage);
330
+ if (Object.keys(newState).length > 0) {
331
+ saveTableState(name, storage, newState);
484
332
  }
485
-
486
- // Clear the selection state ref for multiselect
487
333
  if (multiselect) {
488
334
  selectionStateRef.current = [];
489
335
  }
490
336
  }
491
337
  }
492
- }, [filterData, isStateConfigured, storage, isStatePersistenceDisabled, name, multiselect, defaultPageSize, initialSortState, initialFilterState]);
493
-
494
- // Handle sort state changes
495
- var handleSortStateChange = (0, _react.useCallback)(function () {
496
- // Completely disable for unsupported navigation types
338
+ }, [
339
+ filterData,
340
+ isStateConfigured,
341
+ storage,
342
+ isStatePersistenceDisabled,
343
+ name,
344
+ multiselect,
345
+ defaultPageSize,
346
+ initialSortState,
347
+ initialFilterState
348
+ ]);
349
+ const handleSortStateChange = useCallback(() => {
497
350
  if (isStatePersistenceDisabled || !isStateConfigured || storage === "none") {
498
351
  return;
499
352
  }
500
-
501
- // Check if sort actually changed from initial
502
- var hasSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
503
- var isSortReset = !sortData && initialSortState;
353
+ const hasSortChanged = sortData && JSON.stringify(sortData) !== JSON.stringify(initialSortState);
354
+ const isSortReset = !sortData && initialSortState;
504
355
  if (hasSortChanged || isSortReset) {
505
- // If we're in default state after this change, clear everything
506
356
  if (isDefaultState()) {
507
- (0, _tableHelpers.clearTableState)(name, storage);
357
+ clearTableState(name, storage);
508
358
  } else {
509
- // Build a clean state with only non-default values
510
- var newState = {};
511
-
512
- // Include actualPageSize if available
513
- if (initialActualPageSize !== undefined) {
359
+ const newState = {};
360
+ if (initialActualPageSize !== void 0) {
514
361
  newState.actualpagesize = initialActualPageSize;
515
362
  }
516
-
517
- // Only include sort if it changed from initial
518
363
  if (hasSortChanged) {
519
364
  newState.sort = sortData;
520
365
  }
521
-
522
- // Only include pagination if not on page 1
523
366
  if (currentPage !== 1) {
524
367
  newState.pagination = currentPage;
525
368
  }
526
-
527
- // Only include pagesize if it differs from default
528
369
  if (defaultPageSize && currentPageSize !== defaultPageSize) {
529
370
  newState.pagesize = currentPageSize;
530
371
  }
531
-
532
- // Only include search if it differs from initial
533
- var hasActiveFilter = filterData && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
372
+ const hasActiveFilter = filterData && filterData.length > 0 && JSON.stringify(filterData) !== JSON.stringify(initialFilterState || []);
534
373
  if (hasActiveFilter) {
535
374
  newState.search = filterData;
536
375
  }
537
-
538
- // Only include selectedItem if there are selections
539
- var hasSelection = selectedRowIds && selectedRowIds.length > 0;
376
+ const hasSelection = selectedRowIds && selectedRowIds.length > 0;
540
377
  if (hasSelection && currentState.selectedItem && currentState.selectedItem.length > 0) {
541
378
  newState.selectedItem = currentState.selectedItem;
542
379
  }
543
-
544
- // Clear and save to ensure clean state
545
- (0, _tableHelpers.clearTableState)(name, storage);
380
+ clearTableState(name, storage);
546
381
  if (Object.keys(newState).length > 0) {
547
- (0, _tableHelpers.saveTableState)(name, storage, newState);
382
+ saveTableState(name, storage, newState);
548
383
  }
549
384
  }
550
385
  }
551
- }, [sortData, isStateConfigured, storage, isStatePersistenceDisabled, name, currentState, initialSortState, isDefaultState, currentPage, currentPageSize, defaultPageSize, filterData, initialFilterState, selectedRowIds]);
552
-
553
- // Detect filter data changes and mark for pending state persistence
554
- (0, _react.useEffect)(function () {
555
- // Skip for unsupported navigation types
386
+ }, [
387
+ sortData,
388
+ isStateConfigured,
389
+ storage,
390
+ isStatePersistenceDisabled,
391
+ name,
392
+ currentState,
393
+ initialSortState,
394
+ isDefaultState,
395
+ currentPage,
396
+ currentPageSize,
397
+ defaultPageSize,
398
+ filterData,
399
+ initialFilterState,
400
+ selectedRowIds
401
+ ]);
402
+ useEffect(() => {
556
403
  if (isStatePersistenceDisabled) {
557
404
  return;
558
405
  }
559
-
560
- // Check if filter data has changed
561
- var filterDataChanged = JSON.stringify(filterData) !== JSON.stringify(prevFilterDataRef.current);
406
+ const filterDataChanged = JSON.stringify(filterData) !== JSON.stringify(prevFilterDataRef.current);
562
407
  if (filterDataChanged) {
563
- // Reset the flag when filter data changes
564
408
  filterStatePersistenceTriggeredRef.current = false;
565
-
566
- // Update the previous filter data reference
567
409
  prevFilterDataRef.current = filterData;
568
-
569
- // If datasource is loading, mark as pending to save after loading completes
570
- if (datasource !== null && datasource !== void 0 && datasource.loading) {
410
+ if (datasource == null ? void 0 : datasource.loading) {
571
411
  filterStatePendingRef.current = true;
572
412
  } else {
573
- // Handle the filter state change immediately if not loading
574
413
  handleFilterStateChange();
575
414
  }
576
415
  }
577
- }, [filterData, handleFilterStateChange, datasource === null || datasource === void 0 ? void 0 : datasource.loading, isStatePersistenceDisabled]);
578
-
579
- // Save pending filter state when loading completes
580
- (0, _react.useEffect)(function () {
581
- // Skip for unsupported navigation types
416
+ }, [filterData, handleFilterStateChange, datasource == null ? void 0 : datasource.loading, isStatePersistenceDisabled]);
417
+ useEffect(() => {
582
418
  if (isStatePersistenceDisabled) {
583
419
  return;
584
420
  }
585
- if (!(datasource !== null && datasource !== void 0 && datasource.loading) && filterStatePendingRef.current) {
421
+ if (!(datasource == null ? void 0 : datasource.loading) && filterStatePendingRef.current) {
586
422
  filterStatePendingRef.current = false;
587
423
  handleFilterStateChange();
588
424
  }
589
- }, [datasource === null || datasource === void 0 ? void 0 : datasource.loading, handleFilterStateChange, isStatePersistenceDisabled]);
590
-
591
- // Detect sort data changes and mark for pending state persistence
592
- (0, _react.useEffect)(function () {
593
- // Skip for unsupported navigation types
425
+ }, [datasource == null ? void 0 : datasource.loading, handleFilterStateChange, isStatePersistenceDisabled]);
426
+ useEffect(() => {
594
427
  if (isStatePersistenceDisabled) {
595
428
  return;
596
429
  }
597
-
598
- // Check if sort data has changed
599
- var sortDataChanged = JSON.stringify(sortData) !== JSON.stringify(prevSortDataRef.current);
430
+ const sortDataChanged = JSON.stringify(sortData) !== JSON.stringify(prevSortDataRef.current);
600
431
  if (sortDataChanged) {
601
- // Update the previous sort data reference
602
432
  prevSortDataRef.current = sortData;
603
-
604
- // If datasource is loading, mark as pending to save after loading completes
605
- if (datasource !== null && datasource !== void 0 && datasource.loading) {
433
+ if (datasource == null ? void 0 : datasource.loading) {
606
434
  sortStatePendingRef.current = true;
607
435
  } else {
608
- // Handle the sort state change immediately if not loading
609
436
  handleSortStateChange();
610
437
  }
611
438
  }
612
- }, [sortData, handleSortStateChange, datasource === null || datasource === void 0 ? void 0 : datasource.loading, isStatePersistenceDisabled]);
613
-
614
- // Save pending sort state when loading completes
615
- (0, _react.useEffect)(function () {
616
- // Skip for unsupported navigation types
439
+ }, [sortData, handleSortStateChange, datasource == null ? void 0 : datasource.loading, isStatePersistenceDisabled]);
440
+ useEffect(() => {
617
441
  if (isStatePersistenceDisabled) {
618
442
  return;
619
443
  }
620
- if (!(datasource !== null && datasource !== void 0 && datasource.loading) && sortStatePendingRef.current) {
444
+ if (!(datasource == null ? void 0 : datasource.loading) && sortStatePendingRef.current) {
621
445
  sortStatePendingRef.current = false;
622
446
  handleSortStateChange();
623
447
  }
624
- }, [datasource === null || datasource === void 0 ? void 0 : datasource.loading, handleSortStateChange, isStatePersistenceDisabled]);
448
+ }, [datasource == null ? void 0 : datasource.loading, handleSortStateChange, isStatePersistenceDisabled]);
625
449
  return {
626
- currentState: currentState,
627
- getStateForPageSizeChange: getStateForPageSizeChange,
628
- isDefaultState: isDefaultState,
629
- mergeWithExisting: mergeWithExisting,
630
- handleFilterStateChange: handleFilterStateChange,
631
- handleSortStateChange: handleSortStateChange
450
+ currentState,
451
+ getStateForPageSizeChange,
452
+ isDefaultState,
453
+ mergeWithExisting,
454
+ handleFilterStateChange,
455
+ handleSortStateChange
632
456
  };
633
- };
457
+ };
458
+ export {
459
+ useTableStateManager
460
+ };