@wavemaker-ai/react-runtime 1.0.0-rc.309 → 1.0.0-rc.314

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 (574) 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.js +251 -346
  6. package/actions/notification-action.js +121 -149
  7. package/actions/timer-action.js +95 -151
  8. package/actions/toast-provider.js +62 -76
  9. package/actions/toast.js +95 -91
  10. package/actions/toast.service.js +59 -79
  11. package/actions/types/index.js +6 -9
  12. package/components/advanced/carousel/index.js +358 -366
  13. package/components/advanced/carousel/props.js +0 -5
  14. package/components/advanced/carousel/template.js +102 -80
  15. package/components/advanced/login/index.js +227 -285
  16. package/components/advanced/login/props.js +0 -5
  17. package/components/advanced/marquee/index.js +169 -163
  18. package/components/advanced/marquee/props.js +0 -5
  19. package/components/basic/anchor/index.js +207 -187
  20. package/components/basic/anchor/props.js +0 -5
  21. package/components/basic/audio/index.js +110 -72
  22. package/components/basic/audio/props.js +0 -5
  23. package/components/basic/html/index.js +163 -203
  24. package/components/basic/html/props.js +0 -5
  25. package/components/basic/html/utils.js +30 -28
  26. package/components/basic/icon/index.js +98 -84
  27. package/components/basic/icon/props.js +0 -5
  28. package/components/basic/iframe/iframe.utils.js +7 -16
  29. package/components/basic/iframe/index.js +97 -103
  30. package/components/basic/iframe/props.js +0 -5
  31. package/components/basic/label/index.js +156 -134
  32. package/components/basic/label/props.js +0 -5
  33. package/components/basic/message/index.js +129 -113
  34. package/components/basic/message/props.js +0 -5
  35. package/components/basic/picture/index.js +156 -127
  36. package/components/basic/picture/props.js +0 -5
  37. package/components/basic/progress-bar/index.js +240 -176
  38. package/components/basic/progress-bar/props.js +5 -31
  39. package/components/basic/progress-circle/index.js +166 -183
  40. package/components/basic/progress-circle/props.js +14 -34
  41. package/components/basic/richtexteditor/index.js +430 -396
  42. package/components/basic/richtexteditor/props.js +0 -5
  43. package/components/basic/search/index.js +812 -931
  44. package/components/basic/search/props.js +0 -5
  45. package/components/basic/search/providers.js +233 -380
  46. package/components/basic/spinner/index.js +210 -200
  47. package/components/basic/spinner/props.js +4 -22
  48. package/components/basic/tile/index.js +73 -81
  49. package/components/basic/tile/props.js +0 -5
  50. package/components/basic/tree/Components/TreeNodeComponent.js +238 -170
  51. package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
  52. package/components/basic/tree/index.js +378 -454
  53. package/components/basic/tree/props.js +0 -5
  54. package/components/basic/tree/utils.js +129 -185
  55. package/components/basic/video/index.js +161 -107
  56. package/components/basic/video/props.js +0 -5
  57. package/components/chart/index.js +42 -50
  58. package/components/chart/props.js +31 -37
  59. package/components/chart/src/ChartRenderer.js +172 -154
  60. package/components/chart/src/chart.js +391 -213
  61. package/components/chart/src/chartStyles.generated.js +6 -14
  62. package/components/chart/src/chartUtils.js +228 -272
  63. package/components/chart/src/constants.d.ts +13 -0
  64. package/components/chart/src/constants.js +316 -90
  65. package/components/chart/src/d3Setup.js +11 -30
  66. package/components/chart/src/dataUtils.js +362 -446
  67. package/components/chart/src/formatUtils.js +47 -38
  68. package/components/chart/src/index.js +11 -19
  69. package/components/chart/src/nvd3Source.generated.js +5 -13
  70. package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
  71. package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
  72. package/components/chart/src/types.js +0 -5
  73. package/components/common/AppSpinner.js +17 -33
  74. package/components/common/app-spinner.js +11 -22
  75. package/components/common/customTemplate/index.d.ts +3 -0
  76. package/components/common/customTemplate/index.js +6 -0
  77. package/components/common/customTemplate/props.d.ts +20 -0
  78. package/components/common/customTemplate/props.js +0 -0
  79. package/components/common/customTemplate/template.d.ts +3 -0
  80. package/components/common/customTemplate/template.js +27 -0
  81. package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
  82. package/components/common/customTemplate/useCustomTemplate.js +17 -0
  83. package/components/common/customTemplate/utils.d.ts +6 -0
  84. package/components/common/customTemplate/utils.js +12 -0
  85. package/components/common/index.js +4 -12
  86. package/components/constants.js +81 -77
  87. package/components/container/accordion/accordion-pane/index.js +105 -118
  88. package/components/container/accordion/accordion-pane/props.js +5 -21
  89. package/components/container/accordion/index.js +225 -243
  90. package/components/container/accordion/props.js +5 -16
  91. package/components/container/index.js +214 -150
  92. package/components/container/layout-grid/grid-column/index.js +68 -43
  93. package/components/container/layout-grid/grid-column/props.js +0 -5
  94. package/components/container/layout-grid/grid-row/index.js +12 -29
  95. package/components/container/layout-grid/grid-row/props.js +0 -5
  96. package/components/container/layout-grid/index.js +53 -38
  97. package/components/container/layout-grid/props.js +0 -5
  98. package/components/container/linear-layout/index.js +56 -60
  99. package/components/container/linear-layout/linear-layout-item/index.js +43 -47
  100. package/components/container/linear-layout/linear-layout-item/props.js +0 -5
  101. package/components/container/linear-layout/props.js +0 -5
  102. package/components/container/panel/components/panel-content/index.js +7 -16
  103. package/components/container/panel/components/panel-header/index.js +166 -146
  104. package/components/container/panel/components/panel-header/props.js +0 -5
  105. package/components/container/panel/hooks.js +76 -102
  106. package/components/container/panel/index.js +289 -252
  107. package/components/container/panel/props.js +0 -5
  108. package/components/container/props.js +0 -5
  109. package/components/container/repeat-template/index.js +65 -44
  110. package/components/container/repeat-template/props.js +0 -5
  111. package/components/container/tabs/index.js +517 -526
  112. package/components/container/tabs/props.js +5 -28
  113. package/components/container/tabs/tab-pane/index.js +105 -100
  114. package/components/container/tabs/tab-pane/props.js +0 -5
  115. package/components/container/tabs/utils.js +30 -35
  116. package/components/container/wizard/WizardContext.js +9 -11
  117. package/components/container/wizard/components/StepComponents.js +76 -99
  118. package/components/container/wizard/components/WizardStep.js +107 -85
  119. package/components/container/wizard/index.js +791 -921
  120. package/components/container/wizard/props.js +0 -5
  121. package/components/container/wizard/utils.js +97 -131
  122. package/components/container/wizard/wizard-action/index.js +41 -81
  123. package/components/container/wizard/wizard-step/index.js +140 -120
  124. package/components/data/card/card-actions/index.js +13 -31
  125. package/components/data/card/card-content/index.js +27 -36
  126. package/components/data/card/card-footer/index.js +13 -31
  127. package/components/data/card/index.js +192 -199
  128. package/components/data/card/props.js +0 -5
  129. package/components/data/form/base-form/constant.js +5 -8
  130. package/components/data/form/base-form/hooks/index.js +26 -77
  131. package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
  132. package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
  133. package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
  134. package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
  135. package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
  136. package/components/data/form/base-form/index.js +531 -646
  137. package/components/data/form/base-form/props.js +74 -151
  138. package/components/data/form/base-form/utils.js +210 -323
  139. package/components/data/form/dynamic-fields/constant.js +43 -53
  140. package/components/data/form/dynamic-fields/index.js +135 -144
  141. package/components/data/form/dynamic-fields/props.js +0 -5
  142. package/components/data/form/dynamic-fields/utils.js +99 -158
  143. package/components/data/form/form-action/index.js +107 -85
  144. package/components/data/form/form-body/index.js +52 -26
  145. package/components/data/form/form-context.js +43 -59
  146. package/components/data/form/form-controller/hooks/index.js +43 -57
  147. package/components/data/form/form-controller/props.js +5 -8
  148. package/components/data/form/form-controller/utils.js +54 -49
  149. package/components/data/form/form-controller/validation-contrustor.js +203 -426
  150. package/components/data/form/form-controller/withFormController.js +319 -269
  151. package/components/data/form/form-dynamic-section/index.js +47 -41
  152. package/components/data/form/form-dynamic-section/props.js +0 -5
  153. package/components/data/form/form-field/base-field.js +97 -109
  154. package/components/data/form/form-field/index.js +91 -82
  155. package/components/data/form/form-field/props.js +0 -5
  156. package/components/data/form/form-footer/index.js +52 -25
  157. package/components/data/form/form-header/index.js +61 -58
  158. package/components/data/form/index.js +95 -74
  159. package/components/data/form/props.js +0 -5
  160. package/components/data/list/components/GroupHeader.js +34 -33
  161. package/components/data/list/components/GroupedListItems.js +108 -104
  162. package/components/data/list/components/ListContainer.js +22 -27
  163. package/components/data/list/components/ListDND.js +193 -185
  164. package/components/data/list/components/ListHeader.js +32 -49
  165. package/components/data/list/components/ListItem.js +153 -146
  166. package/components/data/list/components/ListItemWithTemplate.js +87 -105
  167. package/components/data/list/components/ListItems.js +180 -194
  168. package/components/data/list/components/ListPagination.js +127 -153
  169. package/components/data/list/components/LoadMoreButton.js +25 -33
  170. package/components/data/list/components/NoDataMessage.js +9 -22
  171. package/components/data/list/components/StandardListItems.js +79 -85
  172. package/components/data/list/components/index.js +31 -119
  173. package/components/data/list/components/props.js +0 -5
  174. package/components/data/list/hooks/index.js +22 -75
  175. package/components/data/list/hooks/props.js +0 -5
  176. package/components/data/list/hooks/useCurrentPageItems.js +20 -38
  177. package/components/data/list/hooks/useGroupedData.js +19 -33
  178. package/components/data/list/hooks/useListData.js +17 -47
  179. package/components/data/list/hooks/useListEffects.js +168 -237
  180. package/components/data/list/hooks/useListEventHandlers.js +301 -285
  181. package/components/data/list/hooks/useListPagination.js +90 -136
  182. package/components/data/list/hooks/useListState.js +49 -91
  183. package/components/data/list/hooks/useListStateManager.js +104 -159
  184. package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
  185. package/components/data/list/index.d.ts +1 -0
  186. package/components/data/list/index.js +579 -621
  187. package/components/data/list/props.d.ts +4 -0
  188. package/components/data/list/props.js +0 -5
  189. package/components/data/list/templates/media-template.js +29 -50
  190. package/components/data/list/utils/constants.js +20 -32
  191. package/components/data/list/utils/list-helpers.d.ts +2 -1
  192. package/components/data/list/utils/list-helpers.js +71 -115
  193. package/components/data/list/utils/list-widget-methods.js +56 -76
  194. package/components/data/list/utils/widget-instance-utils.js +20 -57
  195. package/components/data/live-filter/index.js +219 -271
  196. package/components/data/live-filter/props.js +5 -12
  197. package/components/data/live-form/index.js +68 -91
  198. package/components/data/live-form/props.js +5 -12
  199. package/components/data/pagination/components/BasicPagination.js +124 -104
  200. package/components/data/pagination/components/ClassicPagination.js +167 -190
  201. package/components/data/pagination/components/InlinePagination.js +97 -98
  202. package/components/data/pagination/components/LoadingComponent.js +17 -30
  203. package/components/data/pagination/components/PageSizeSelector.js +176 -169
  204. package/components/data/pagination/components/PagerNavigation.js +84 -105
  205. package/components/data/pagination/components/TotalRecords.js +48 -47
  206. package/components/data/pagination/components/index.js +14 -47
  207. package/components/data/pagination/components/props.js +0 -5
  208. package/components/data/pagination/hooks/index.js +6 -19
  209. package/components/data/pagination/hooks/props.js +0 -5
  210. package/components/data/pagination/hooks/useNavigationSize.js +12 -21
  211. package/components/data/pagination/hooks/usePagination.js +702 -905
  212. package/components/data/pagination/index.js +336 -389
  213. package/components/data/table/components/AddNewRow.js +122 -154
  214. package/components/data/table/components/EditableCell.js +68 -75
  215. package/components/data/table/components/FieldValidationError.js +19 -20
  216. package/components/data/table/components/RowCells.js +97 -80
  217. package/components/data/table/components/RowExpansionButton.js +43 -39
  218. package/components/data/table/components/SummaryCell.js +54 -88
  219. package/components/data/table/components/SummaryRow.js +45 -52
  220. package/components/data/table/components/SummaryRowFooter.js +35 -42
  221. package/components/data/table/components/TableBody.js +222 -218
  222. package/components/data/table/components/TableDataRow.js +113 -106
  223. package/components/data/table/components/TableFilters.js +391 -390
  224. package/components/data/table/components/TableFooterActions.js +25 -32
  225. package/components/data/table/components/TableHeader.js +460 -435
  226. package/components/data/table/components/TablePanelHeading.js +157 -181
  227. package/components/data/table/components/index.js +27 -95
  228. package/components/data/table/hooks/index.js +21 -230
  229. package/components/data/table/hooks/use-edited-rows.js +59 -94
  230. package/components/data/table/hooks/useCellState.js +58 -83
  231. package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
  232. package/components/data/table/hooks/useDynamicColumns.js +59 -92
  233. package/components/data/table/hooks/useEditingState.js +30 -41
  234. package/components/data/table/hooks/useFormWidget.js +163 -172
  235. package/components/data/table/hooks/usePaginationState.js +67 -77
  236. package/components/data/table/hooks/usePanelStructure.js +47 -41
  237. package/components/data/table/hooks/useResponsiveColumns.js +14 -20
  238. package/components/data/table/hooks/useRowExpansion.js +131 -127
  239. package/components/data/table/hooks/useRowHandlers.js +56 -69
  240. package/components/data/table/hooks/useRowSelection.js +249 -329
  241. package/components/data/table/hooks/useServerSideSorting.js +109 -175
  242. package/components/data/table/hooks/useTableColumns.js +322 -331
  243. package/components/data/table/hooks/useTableData.js +111 -166
  244. package/components/data/table/hooks/useTableEdit.js +526 -564
  245. package/components/data/table/hooks/useTableEffects.js +60 -107
  246. package/components/data/table/hooks/useTableFilter.js +244 -237
  247. package/components/data/table/hooks/useTableInitialization.js +44 -76
  248. package/components/data/table/hooks/useTableState.js +39 -61
  249. package/components/data/table/hooks/useTableStateManager.js +295 -468
  250. package/components/data/table/index.js +1553 -1713
  251. package/components/data/table/live-table/index.js +157 -219
  252. package/components/data/table/props.js +0 -5
  253. package/components/data/table/table-action/index.js +97 -75
  254. package/components/data/table/table-column/index.js +48 -42
  255. package/components/data/table/table-group/index.js +7 -25
  256. package/components/data/table/table-row/index.js +63 -55
  257. package/components/data/table/table-row-action/index.js +102 -77
  258. package/components/data/table/utils/buildSelectionColumns.js +86 -137
  259. package/components/data/table/utils/columnBuilder.js +116 -158
  260. package/components/data/table/utils/columnProxy.js +48 -66
  261. package/components/data/table/utils/columnWidthDistribution.js +40 -64
  262. package/components/data/table/utils/constants.js +92 -40
  263. package/components/data/table/utils/crud-handlers.js +292 -473
  264. package/components/data/table/utils/dynamic-columns.js +99 -144
  265. package/components/data/table/utils/groupHeaderUtils.js +36 -61
  266. package/components/data/table/utils/index.d.ts +8 -5
  267. package/components/data/table/utils/index.js +419 -639
  268. package/components/data/table/utils/renderDisplayCell.js +127 -169
  269. package/components/data/table/utils/script-page-size-broadcast.js +17 -29
  270. package/components/data/table/utils/selectionUtils.js +59 -113
  271. package/components/data/table/utils/table-helpers.js +38 -74
  272. package/components/data/table/utils/validation.js +35 -78
  273. package/components/data/table/utils/widgetMapping.d.ts +5 -0
  274. package/components/data/table/utils/widgetMapping.js +41 -0
  275. package/components/data/types.js +112 -112
  276. package/components/data/utils/field-data-utils.js +38 -42
  277. package/components/data/utils/filter-field-util.js +42 -44
  278. package/components/data/utils/index.js +112 -111
  279. package/components/dialogs/alert-dialog/index.js +83 -78
  280. package/components/dialogs/alert-dialog/props.js +0 -5
  281. package/components/dialogs/confirm-dialog/index.js +102 -92
  282. package/components/dialogs/confirm-dialog/props.js +0 -5
  283. package/components/dialogs/dialog/index.js +93 -69
  284. package/components/dialogs/dialog/props.js +0 -5
  285. package/components/dialogs/dialog-actions/index.js +12 -26
  286. package/components/dialogs/dialog-actions/props.js +0 -5
  287. package/components/dialogs/dialog-body/index.js +13 -30
  288. package/components/dialogs/dialog-body/props.js +0 -5
  289. package/components/dialogs/dialog-content/index.js +48 -41
  290. package/components/dialogs/dialog-content/props.js +0 -5
  291. package/components/dialogs/dialog-header/index.js +88 -101
  292. package/components/dialogs/dialog-header/props.js +0 -5
  293. package/components/dialogs/iframe-dialog/index.js +136 -128
  294. package/components/dialogs/iframe-dialog/props.js +0 -5
  295. package/components/dialogs/index.js +104 -101
  296. package/components/dialogs/login-dialog/index.js +285 -347
  297. package/components/dialogs/login-dialog/props.js +0 -5
  298. package/components/dialogs/page-dialog/index.js +95 -86
  299. package/components/dialogs/page-dialog/props.js +0 -5
  300. package/components/dialogs/props.js +0 -5
  301. package/components/dialogs/withDialogWrapper.js +110 -83
  302. package/components/form/button/index.js +296 -245
  303. package/components/form/button/props.js +0 -5
  304. package/components/form/button-group/index.js +80 -69
  305. package/components/form/button-group/props.js +0 -5
  306. package/components/input/calendar/index.js +409 -362
  307. package/components/input/calendar/props.js +0 -5
  308. package/components/input/calendar/utils.js +164 -172
  309. package/components/input/chips/SortableChip/index.js +109 -100
  310. package/components/input/chips/SortableChip/props.js +0 -5
  311. package/components/input/chips/index.js +663 -570
  312. package/components/input/chips/props.js +0 -5
  313. package/components/input/chips/utils.js +131 -122
  314. package/components/input/color-picker/index.js +536 -594
  315. package/components/input/color-picker/props.js +0 -5
  316. package/components/input/composite/index.js +71 -110
  317. package/components/input/composite/props.js +0 -5
  318. package/components/input/currency/index.js +277 -224
  319. package/components/input/currency/props.js +0 -5
  320. package/components/input/default/checkbox/index.js +329 -250
  321. package/components/input/default/checkbox/props.js +0 -5
  322. package/components/input/default/checkboxset/index.d.ts +2 -0
  323. package/components/input/default/checkboxset/index.js +529 -446
  324. package/components/input/default/checkboxset/props.d.ts +4 -0
  325. package/components/input/default/checkboxset/props.js +0 -5
  326. package/components/input/default/checkboxset/utils.js +15 -25
  327. package/components/input/default/radioset/index.d.ts +2 -0
  328. package/components/input/default/radioset/index.js +409 -350
  329. package/components/input/default/radioset/props.d.ts +6 -0
  330. package/components/input/default/radioset/props.js +0 -5
  331. package/components/input/default/switch/index.js +494 -458
  332. package/components/input/default/switch/prop.js +0 -5
  333. package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
  334. package/components/input/epoch/date/index.js +638 -518
  335. package/components/input/epoch/date/props.js +0 -5
  336. package/components/input/epoch/date/styled.js +61 -70
  337. package/components/input/epoch/date/utils.js +67 -115
  338. package/components/input/epoch/datetime/index.js +758 -695
  339. package/components/input/epoch/datetime/props.js +0 -5
  340. package/components/input/epoch/datetime/utils.js +121 -186
  341. package/components/input/epoch/time/index.js +441 -415
  342. package/components/input/epoch/time/props.js +0 -5
  343. package/components/input/epoch/time/utils.js +101 -112
  344. package/components/input/fileupload/Utils.js +70 -97
  345. package/components/input/fileupload/components/ListItems.js +132 -130
  346. package/components/input/fileupload/components/MultiUpload.js +80 -77
  347. package/components/input/fileupload/components/SingleUpload.js +57 -57
  348. package/components/input/fileupload/index.js +253 -178
  349. package/components/input/fileupload/props.js +0 -5
  350. package/components/input/fileupload/useFileUpload.js +209 -258
  351. package/components/input/number/index.js +434 -393
  352. package/components/input/number/props.js +0 -5
  353. package/components/input/rating/index.js +401 -394
  354. package/components/input/rating/props.js +0 -5
  355. package/components/input/select/index.js +408 -463
  356. package/components/input/select/props.js +0 -5
  357. package/components/input/slider/index.js +339 -332
  358. package/components/input/slider/props.js +0 -5
  359. package/components/input/text/index.d.ts +3 -3
  360. package/components/input/text/index.js +438 -475
  361. package/components/input/text/props.d.ts +1 -1
  362. package/components/input/text/props.js +0 -5
  363. package/components/input/text/util.js +82 -222
  364. package/components/input/textarea/index.js +322 -358
  365. package/components/input/textarea/props.js +0 -5
  366. package/components/input/upload/index.js +135 -131
  367. package/components/input/upload/props.js +0 -5
  368. package/components/input/util/index.js +9 -11
  369. package/components/layout/footer/index.js +12 -35
  370. package/components/layout/footer/props.js +0 -5
  371. package/components/layout/header/index.js +12 -38
  372. package/components/layout/header/props.js +0 -5
  373. package/components/layout/leftnav/index.js +38 -44
  374. package/components/layout/leftnav/props.js +0 -5
  375. package/components/layout/rightnav/index.js +12 -36
  376. package/components/layout/rightnav/props.js +0 -5
  377. package/components/layout/topnav/index.js +24 -38
  378. package/components/layout/topnav/props.js +0 -5
  379. package/components/navbar/index.js +119 -98
  380. package/components/navbar/nav/index.js +236 -232
  381. package/components/navbar/nav/props.js +0 -5
  382. package/components/navbar/nav-item/index.js +74 -65
  383. package/components/navbar/nav-item/props.js +0 -5
  384. package/components/navigation/breadcrumb/index.js +38 -61
  385. package/components/navigation/breadcrumb/props.js +0 -5
  386. package/components/navigation/menu/components/ListItems.js +76 -67
  387. package/components/navigation/menu/constants.js +27 -42
  388. package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
  389. package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
  390. package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
  391. package/components/navigation/menu/index.js +911 -846
  392. package/components/navigation/menu/props.js +0 -5
  393. package/components/navigation/menu/utils/action-task.js +6 -9
  394. package/components/navigation/menu/utils/role-filter.js +41 -56
  395. package/components/navigation/popover/index.js +191 -205
  396. package/components/navigation/popover/props.js +5 -8
  397. package/components/page/content/index.js +9 -31
  398. package/components/page/content/props.js +0 -5
  399. package/components/page/error-boundary/index.js +115 -105
  400. package/components/page/error-boundary/props.js +0 -5
  401. package/components/page/index.js +84 -102
  402. package/components/page/page-content/index.js +21 -30
  403. package/components/page/page-content/props.js +0 -5
  404. package/components/page/partial/index.js +50 -45
  405. package/components/page/partial/props.js +0 -5
  406. package/components/page/partial-container/index.js +81 -107
  407. package/components/page/partial-container/props.d.ts +1 -1
  408. package/components/page/partial-container/props.js +0 -5
  409. package/components/page/props.js +0 -5
  410. package/components/page/toast-container/index.js +20 -41
  411. package/components/page/toast-container/props.js +0 -5
  412. package/components/prefab/container/index.js +60 -53
  413. package/components/prefab/container/props.js +0 -5
  414. package/components/prefab/index.js +76 -61
  415. package/components/prefab/props.js +0 -5
  416. package/context/AppContext.d.ts +1 -1
  417. package/context/AppContext.js +17 -18
  418. package/context/AppSpinnerProvider.js +19 -34
  419. package/context/LayoutProvider.js +54 -57
  420. package/context/LocalizationProvider.js +34 -49
  421. package/context/PrefabContext.js +68 -119
  422. package/context/WidgetProvider.js +160 -166
  423. package/core/app-config.js +0 -1
  424. package/core/app.service.js +200 -327
  425. package/core/appVariablesStore.js +10 -15
  426. package/core/appstore.js +37 -53
  427. package/core/constants/currency-constant.js +81 -83
  428. package/core/constants/events.js +34 -44
  429. package/core/constants/index.js +21 -31
  430. package/core/dialog.service.js +52 -72
  431. package/core/event-notifier.js +94 -131
  432. package/core/formatter/array-formatters.js +18 -32
  433. package/core/formatter/date-formatters.js +140 -204
  434. package/core/formatter/index.js +64 -117
  435. package/core/formatter/number-formatters.js +115 -159
  436. package/core/formatter/security-formatters.js +233 -283
  437. package/core/formatter/string-formatters.js +23 -45
  438. package/core/formatter/types.js +12 -18
  439. package/core/formatters.js +6 -24
  440. package/core/proxy-service.js +242 -306
  441. package/core/script-registry.js +87 -134
  442. package/core/security.service.js +8 -11
  443. package/core/util/compare.js +13 -25
  444. package/core/util/dom.js +32 -63
  445. package/core/util/index.d.ts +5 -0
  446. package/core/util/index.js +95 -95
  447. package/core/util/safe-is-equal.js +42 -94
  448. package/core/util/security.js +114 -153
  449. package/core/util/utils.d.ts +8 -1
  450. package/core/util/utils.js +124 -132
  451. package/core/widget-observer.js +34 -61
  452. package/higherOrder/BaseApp.js +327 -500
  453. package/higherOrder/BaseAppProps.js +0 -5
  454. package/higherOrder/BaseDateTime.js +277 -231
  455. package/higherOrder/BasePage.js +479 -735
  456. package/higherOrder/BasePartial.js +87 -114
  457. package/higherOrder/BasePrefab.js +190 -206
  458. package/higherOrder/DataNav.js +287 -302
  459. package/higherOrder/helper.js +62 -48
  460. package/higherOrder/props.js +0 -5
  461. package/higherOrder/withBaseWrapper.js +123 -168
  462. package/higherOrder/withStandalone.js +28 -26
  463. package/hooks/useAccess.js +113 -289
  464. package/hooks/useAppConfig.js +15 -40
  465. package/hooks/useAuth.js +256 -495
  466. package/hooks/useDataSourceSubscription.d.ts +3 -3
  467. package/hooks/useDataSourceSubscription.js +99 -109
  468. package/hooks/useDebounce.js +28 -56
  469. package/hooks/useDeviceVisibility.js +14 -23
  470. package/hooks/useHttp.d.ts +1 -0
  471. package/hooks/useHttp.js +318 -493
  472. package/libs/index.js +4 -13
  473. package/libs/prefab/index.js +6 -20
  474. package/mui-config/theme-provider.js +9 -17
  475. package/mui-config/theme.js +6 -9
  476. package/package-lock.json +822 -3191
  477. package/package.json +3 -19
  478. package/providers/AppProviders.js +21 -24
  479. package/runtime-dynamic/App.js +65 -93
  480. package/runtime-dynamic/app-initializer.js +207 -400
  481. package/runtime-dynamic/components/ErrorBoundary.js +59 -76
  482. package/runtime-dynamic/components/PageWrapper.js +23 -35
  483. package/runtime-dynamic/components/PrefabPreview.js +40 -69
  484. package/runtime-dynamic/components/partial-content.d.ts +2 -3
  485. package/runtime-dynamic/components/partial-content.js +66 -48
  486. package/runtime-dynamic/components/prefab-content.js +37 -30
  487. package/runtime-dynamic/components/use-dynamic-component.js +62 -150
  488. package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
  489. package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
  490. package/runtime-dynamic/factories/dynamic-component.js +83 -0
  491. package/runtime-dynamic/factories/prefab-factory.js +60 -81
  492. package/runtime-dynamic/factories/startup-info.js +12 -25
  493. package/runtime-dynamic/factories/utils.d.ts +1 -9
  494. package/runtime-dynamic/factories/utils.js +47 -130
  495. package/runtime-dynamic/index.js +56 -191
  496. package/runtime-dynamic/main.js +42 -70
  497. package/runtime-dynamic/preview-mode.js +14 -29
  498. package/runtime-dynamic/preview-navigation.js +21 -30
  499. package/runtime-dynamic/preview-path.d.ts +5 -0
  500. package/runtime-dynamic/preview-path.js +13 -0
  501. package/runtime-dynamic/preview-resource-base.js +15 -31
  502. package/runtime-dynamic/registry/component-registry.js +269 -334
  503. package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
  504. package/runtime-dynamic/registry/index.js +24 -63
  505. package/runtime-dynamic/registry/store.d.ts +1 -0
  506. package/runtime-dynamic/registry/store.js +18 -23
  507. package/runtime-dynamic/routes.js +53 -81
  508. package/runtime-dynamic/services/app-extension-provider.js +17 -44
  509. package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
  510. package/runtime-dynamic/services/autolayout-inject.js +27 -0
  511. package/runtime-dynamic/services/cache.js +27 -33
  512. package/runtime-dynamic/services/compile-render.d.ts +9 -0
  513. package/runtime-dynamic/services/compile-render.js +142 -0
  514. package/runtime-dynamic/services/component-ref-provider.js +70 -124
  515. package/runtime-dynamic/services/css-scoping.js +27 -28
  516. package/runtime-dynamic/services/fragment-url.js +37 -50
  517. package/runtime-dynamic/services/index.js +48 -152
  518. package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
  519. package/runtime-dynamic/services/markup-transpiler.js +39 -231
  520. package/runtime-dynamic/services/prefab-resources.js +42 -130
  521. package/runtime-dynamic/services/resource-manager.d.ts +2 -1
  522. package/runtime-dynamic/services/resource-manager.js +32 -63
  523. package/runtime-dynamic/services/script-executor.js +50 -61
  524. package/runtime-dynamic/services/variable-factory.js +141 -184
  525. package/runtime-dynamic/services/variable-registry.js +69 -115
  526. package/runtime-dynamic/services/variable-transpiler.js +73 -103
  527. package/runtime-dynamic/shims/next-image.js +79 -50
  528. package/runtime-dynamic/shims/next-link.js +58 -32
  529. package/runtime-dynamic/shims/next-navigation.js +17 -34
  530. package/runtime-dynamic/utils/index.d.ts +2 -0
  531. package/runtime-dynamic/utils/index.js +22 -24
  532. package/store/bindActions/i18nActions.js +16 -18
  533. package/store/index.js +29 -35
  534. package/store/middleware/navigationMiddleware.js +25 -45
  535. package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
  536. package/store/slices/appConfigSlice.js +65 -94
  537. package/store/slices/authSlice.js +317 -471
  538. package/store/slices/i18nSlice.js +169 -168
  539. package/store/slices/navigationSlice.js +22 -20
  540. package/store/util/resolve-path.d.ts +1 -0
  541. package/store/util/resolve-path.js +7 -0
  542. package/store/viewport.service.js +150 -194
  543. package/types/index.js +10 -15
  544. package/utils/attr.js +198 -41
  545. package/utils/custom-expression/index.js +55 -151
  546. package/utils/custom-expression/parser.js +106 -182
  547. package/utils/dataset-util.js +113 -154
  548. package/utils/eval-expression.js +10 -19
  549. package/utils/form-state.util.js +60 -118
  550. package/utils/form-utils.js +49 -190
  551. package/utils/format-util.js +113 -184
  552. package/utils/layoutsize-util.js +11 -17
  553. package/utils/lib-error-skipper.js +54 -52
  554. package/utils/page-params-util.js +50 -40
  555. package/utils/pending-tab-navigation-intent.js +7 -17
  556. package/utils/resource-url.js +8 -19
  557. package/utils/state-persistance.js +136 -253
  558. package/utils/style-utils.d.ts +2 -0
  559. package/utils/style-utils.js +25 -74
  560. package/utils/transformedDataset-utils.js +353 -381
  561. package/utils/widget-cleanup-util.js +42 -74
  562. package/utils/widgets.js +19 -31
  563. package/variables/base-variable.js +117 -166
  564. package/variables/constants.js +5 -8
  565. package/variables/crud-variable.js +150 -181
  566. package/variables/live-variable.d.ts +1 -1
  567. package/variables/live-variable.js +140 -174
  568. package/variables/metadata.service.js +74 -116
  569. package/variables/model-variable.js +68 -78
  570. package/variables/service-variable.js +171 -285
  571. package/wm-namespace.js +11 -14
  572. package/components/chart/src/css.d.js +0 -1
  573. package/tsconfig.declaration.tsbuildinfo +0 -1
  574. 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
+ };