@wavemaker-ai/react-runtime 1.0.0-rc.647499 → 1.0.0-rc.647565
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.
- package/.npmignore +4 -0
- package/actions/base-action.js +12 -29
- package/actions/login-action.js +35 -52
- package/actions/logout-action.js +21 -38
- package/actions/navigation-action.js +251 -346
- package/actions/notification-action.js +121 -149
- package/actions/timer-action.js +95 -151
- package/actions/toast-provider.js +62 -76
- package/actions/toast.js +95 -91
- package/actions/toast.service.js +59 -79
- package/actions/types/index.js +6 -9
- package/components/advanced/carousel/index.js +358 -366
- package/components/advanced/carousel/props.js +0 -5
- package/components/advanced/carousel/template.js +102 -80
- package/components/advanced/login/index.js +227 -285
- package/components/advanced/login/props.js +0 -5
- package/components/advanced/marquee/index.js +169 -163
- package/components/advanced/marquee/props.js +0 -5
- package/components/basic/anchor/index.js +207 -187
- package/components/basic/anchor/props.js +0 -5
- package/components/basic/audio/index.js +110 -72
- package/components/basic/audio/props.js +0 -5
- package/components/basic/html/index.js +163 -203
- package/components/basic/html/props.js +0 -5
- package/components/basic/html/utils.js +30 -28
- package/components/basic/icon/index.js +98 -84
- package/components/basic/icon/props.js +0 -5
- package/components/basic/iframe/iframe.utils.js +7 -16
- package/components/basic/iframe/index.js +97 -103
- package/components/basic/iframe/props.js +0 -5
- package/components/basic/label/index.js +156 -134
- package/components/basic/label/props.js +0 -5
- package/components/basic/message/index.js +129 -113
- package/components/basic/message/props.js +0 -5
- package/components/basic/picture/index.js +156 -127
- package/components/basic/picture/props.js +0 -5
- package/components/basic/progress-bar/index.js +240 -176
- package/components/basic/progress-bar/props.js +5 -31
- package/components/basic/progress-circle/index.js +166 -183
- package/components/basic/progress-circle/props.js +14 -34
- package/components/basic/richtexteditor/index.js +430 -396
- package/components/basic/richtexteditor/props.js +0 -5
- package/components/basic/search/index.js +812 -931
- package/components/basic/search/props.js +0 -5
- package/components/basic/search/providers.js +233 -380
- package/components/basic/spinner/index.js +210 -200
- package/components/basic/spinner/props.js +4 -22
- package/components/basic/tile/index.js +73 -81
- package/components/basic/tile/props.js +0 -5
- package/components/basic/tree/Components/TreeNodeComponent.js +238 -170
- package/components/basic/tree/hooks/useTreePartialNodeApi.js +143 -135
- package/components/basic/tree/index.js +378 -454
- package/components/basic/tree/props.js +0 -5
- package/components/basic/tree/utils.js +129 -185
- package/components/basic/video/index.js +161 -107
- package/components/basic/video/props.js +0 -5
- package/components/chart/index.js +42 -50
- package/components/chart/props.js +31 -37
- package/components/chart/src/ChartRenderer.js +172 -154
- package/components/chart/src/chart.js +391 -213
- package/components/chart/src/chartStyles.generated.js +6 -14
- package/components/chart/src/chartUtils.js +228 -272
- package/components/chart/src/constants.d.ts +13 -0
- package/components/chart/src/constants.js +316 -90
- package/components/chart/src/d3Setup.js +11 -30
- package/components/chart/src/dataUtils.js +362 -446
- package/components/chart/src/formatUtils.js +47 -38
- package/components/chart/src/index.js +11 -19
- package/components/chart/src/nvd3Source.generated.js +5 -13
- package/components/chart/src/pieDonutResponsiveLayout.d.ts +5 -0
- package/components/chart/src/pieDonutResponsiveLayout.js +76 -96
- package/components/chart/src/types.js +0 -5
- package/components/common/AppSpinner.js +17 -33
- package/components/common/app-spinner.js +11 -22
- package/components/common/customTemplate/index.d.ts +3 -0
- package/components/common/customTemplate/index.js +6 -0
- package/components/common/customTemplate/props.d.ts +20 -0
- package/components/common/customTemplate/props.js +0 -0
- package/components/common/customTemplate/template.d.ts +3 -0
- package/components/common/customTemplate/template.js +27 -0
- package/components/common/customTemplate/useCustomTemplate.d.ts +8 -0
- package/components/common/customTemplate/useCustomTemplate.js +17 -0
- package/components/common/customTemplate/utils.d.ts +6 -0
- package/components/common/customTemplate/utils.js +12 -0
- package/components/common/index.js +4 -12
- package/components/constants.js +81 -77
- package/components/container/accordion/accordion-pane/index.js +105 -118
- package/components/container/accordion/accordion-pane/props.js +5 -21
- package/components/container/accordion/index.js +225 -243
- package/components/container/accordion/props.js +5 -16
- package/components/container/index.js +214 -150
- package/components/container/layout-grid/grid-column/index.js +68 -43
- package/components/container/layout-grid/grid-column/props.js +0 -5
- package/components/container/layout-grid/grid-row/index.js +12 -29
- package/components/container/layout-grid/grid-row/props.js +0 -5
- package/components/container/layout-grid/index.js +53 -38
- package/components/container/layout-grid/props.js +0 -5
- package/components/container/linear-layout/index.js +56 -60
- package/components/container/linear-layout/linear-layout-item/index.js +43 -47
- package/components/container/linear-layout/linear-layout-item/props.js +0 -5
- package/components/container/linear-layout/props.js +0 -5
- package/components/container/panel/components/panel-content/index.js +7 -16
- package/components/container/panel/components/panel-header/index.js +166 -146
- package/components/container/panel/components/panel-header/props.js +0 -5
- package/components/container/panel/hooks.js +76 -102
- package/components/container/panel/index.js +289 -252
- package/components/container/panel/props.js +0 -5
- package/components/container/props.js +0 -5
- package/components/container/repeat-template/index.js +65 -44
- package/components/container/repeat-template/props.js +0 -5
- package/components/container/tabs/index.js +517 -526
- package/components/container/tabs/props.js +5 -28
- package/components/container/tabs/tab-pane/index.js +105 -100
- package/components/container/tabs/tab-pane/props.js +0 -5
- package/components/container/tabs/utils.js +30 -35
- package/components/container/wizard/WizardContext.js +9 -11
- package/components/container/wizard/components/StepComponents.js +76 -99
- package/components/container/wizard/components/WizardStep.js +107 -85
- package/components/container/wizard/index.js +791 -921
- package/components/container/wizard/props.js +0 -5
- package/components/container/wizard/utils.js +97 -131
- package/components/container/wizard/wizard-action/index.js +41 -81
- package/components/container/wizard/wizard-step/index.js +140 -120
- package/components/data/card/card-actions/index.js +13 -31
- package/components/data/card/card-content/index.js +27 -36
- package/components/data/card/card-footer/index.js +13 -31
- package/components/data/card/index.js +192 -199
- package/components/data/card/props.js +0 -5
- package/components/data/form/base-form/constant.js +5 -8
- package/components/data/form/base-form/hooks/index.js +26 -77
- package/components/data/form/base-form/hooks/useFormDataSync.js +106 -212
- package/components/data/form/base-form/hooks/useFormOperations.js +109 -161
- package/components/data/form/base-form/hooks/useFormSubmission.js +220 -280
- package/components/data/form/base-form/hooks/useFormValidation.js +119 -168
- package/components/data/form/base-form/hooks/useParentFormRelationship.js +67 -103
- package/components/data/form/base-form/index.js +531 -646
- package/components/data/form/base-form/props.js +74 -151
- package/components/data/form/base-form/utils.js +210 -323
- package/components/data/form/dynamic-fields/constant.js +43 -53
- package/components/data/form/dynamic-fields/index.js +135 -144
- package/components/data/form/dynamic-fields/props.js +0 -5
- package/components/data/form/dynamic-fields/utils.js +99 -158
- package/components/data/form/form-action/index.js +107 -85
- package/components/data/form/form-body/index.js +52 -26
- package/components/data/form/form-context.js +43 -59
- package/components/data/form/form-controller/hooks/index.js +43 -57
- package/components/data/form/form-controller/props.js +5 -8
- package/components/data/form/form-controller/utils.js +54 -49
- package/components/data/form/form-controller/validation-contrustor.js +203 -426
- package/components/data/form/form-controller/withFormController.js +319 -269
- package/components/data/form/form-dynamic-section/index.js +47 -41
- package/components/data/form/form-dynamic-section/props.js +0 -5
- package/components/data/form/form-field/base-field.js +97 -109
- package/components/data/form/form-field/index.js +91 -82
- package/components/data/form/form-field/props.js +0 -5
- package/components/data/form/form-footer/index.js +52 -25
- package/components/data/form/form-header/index.js +61 -58
- package/components/data/form/index.js +95 -74
- package/components/data/form/props.js +0 -5
- package/components/data/list/components/GroupHeader.js +34 -33
- package/components/data/list/components/GroupedListItems.js +108 -104
- package/components/data/list/components/ListContainer.js +22 -27
- package/components/data/list/components/ListDND.js +193 -185
- package/components/data/list/components/ListHeader.js +32 -49
- package/components/data/list/components/ListItem.js +153 -146
- package/components/data/list/components/ListItemWithTemplate.js +87 -105
- package/components/data/list/components/ListItems.js +180 -194
- package/components/data/list/components/ListPagination.js +127 -153
- package/components/data/list/components/LoadMoreButton.js +25 -33
- package/components/data/list/components/NoDataMessage.js +9 -22
- package/components/data/list/components/StandardListItems.js +79 -85
- package/components/data/list/components/index.js +31 -119
- package/components/data/list/components/props.js +0 -5
- package/components/data/list/hooks/index.js +22 -75
- package/components/data/list/hooks/props.js +0 -5
- package/components/data/list/hooks/useCurrentPageItems.js +20 -38
- package/components/data/list/hooks/useGroupedData.js +19 -33
- package/components/data/list/hooks/useListData.js +17 -47
- package/components/data/list/hooks/useListEffects.js +168 -237
- package/components/data/list/hooks/useListEventHandlers.js +301 -285
- package/components/data/list/hooks/useListPagination.js +90 -136
- package/components/data/list/hooks/useListState.js +49 -91
- package/components/data/list/hooks/useListStateManager.js +104 -159
- package/components/data/list/hooks/usePaginatedGroupedData.js +74 -110
- package/components/data/list/index.d.ts +1 -0
- package/components/data/list/index.js +579 -621
- package/components/data/list/props.d.ts +4 -0
- package/components/data/list/props.js +0 -5
- package/components/data/list/templates/media-template.js +29 -50
- package/components/data/list/utils/constants.js +20 -32
- package/components/data/list/utils/list-helpers.d.ts +2 -1
- package/components/data/list/utils/list-helpers.js +71 -115
- package/components/data/list/utils/list-widget-methods.js +56 -76
- package/components/data/list/utils/widget-instance-utils.js +20 -57
- package/components/data/live-filter/index.js +219 -271
- package/components/data/live-filter/props.js +5 -12
- package/components/data/live-form/index.js +68 -91
- package/components/data/live-form/props.js +5 -12
- package/components/data/pagination/components/BasicPagination.js +124 -104
- package/components/data/pagination/components/ClassicPagination.js +167 -190
- package/components/data/pagination/components/InlinePagination.js +97 -98
- package/components/data/pagination/components/LoadingComponent.js +17 -30
- package/components/data/pagination/components/PageSizeSelector.js +176 -169
- package/components/data/pagination/components/PagerNavigation.js +84 -105
- package/components/data/pagination/components/TotalRecords.js +48 -47
- package/components/data/pagination/components/index.js +14 -47
- package/components/data/pagination/components/props.js +0 -5
- package/components/data/pagination/hooks/index.js +6 -19
- package/components/data/pagination/hooks/props.js +0 -5
- package/components/data/pagination/hooks/useNavigationSize.js +12 -21
- package/components/data/pagination/hooks/usePagination.js +702 -905
- package/components/data/pagination/index.js +336 -389
- package/components/data/table/components/AddNewRow.js +122 -154
- package/components/data/table/components/EditableCell.js +68 -75
- package/components/data/table/components/FieldValidationError.js +19 -20
- package/components/data/table/components/RowCells.js +97 -80
- package/components/data/table/components/RowExpansionButton.js +43 -39
- package/components/data/table/components/SummaryCell.js +54 -88
- package/components/data/table/components/SummaryRow.js +45 -52
- package/components/data/table/components/SummaryRowFooter.js +35 -42
- package/components/data/table/components/TableBody.js +222 -218
- package/components/data/table/components/TableDataRow.js +113 -106
- package/components/data/table/components/TableFilters.js +391 -390
- package/components/data/table/components/TableFooterActions.js +25 -32
- package/components/data/table/components/TableHeader.js +460 -435
- package/components/data/table/components/TablePanelHeading.js +157 -181
- package/components/data/table/components/index.js +27 -95
- package/components/data/table/hooks/index.js +21 -230
- package/components/data/table/hooks/use-edited-rows.js +59 -94
- package/components/data/table/hooks/useCellState.js +58 -83
- package/components/data/table/hooks/useCustomExpressionColumns.js +65 -86
- package/components/data/table/hooks/useDynamicColumns.js +59 -92
- package/components/data/table/hooks/useEditingState.js +30 -41
- package/components/data/table/hooks/useFormWidget.js +163 -172
- package/components/data/table/hooks/usePaginationState.js +67 -77
- package/components/data/table/hooks/usePanelStructure.js +47 -41
- package/components/data/table/hooks/useResponsiveColumns.js +14 -20
- package/components/data/table/hooks/useRowExpansion.js +131 -127
- package/components/data/table/hooks/useRowHandlers.js +56 -69
- package/components/data/table/hooks/useRowSelection.js +249 -329
- package/components/data/table/hooks/useServerSideSorting.js +109 -175
- package/components/data/table/hooks/useTableColumns.js +322 -331
- package/components/data/table/hooks/useTableData.js +111 -166
- package/components/data/table/hooks/useTableEdit.js +526 -564
- package/components/data/table/hooks/useTableEffects.js +60 -107
- package/components/data/table/hooks/useTableFilter.js +244 -237
- package/components/data/table/hooks/useTableInitialization.js +44 -76
- package/components/data/table/hooks/useTableState.js +39 -61
- package/components/data/table/hooks/useTableStateManager.js +295 -468
- package/components/data/table/index.js +1553 -1713
- package/components/data/table/live-table/index.js +157 -219
- package/components/data/table/props.js +0 -5
- package/components/data/table/table-action/index.js +97 -75
- package/components/data/table/table-column/index.js +48 -42
- package/components/data/table/table-group/index.js +7 -25
- package/components/data/table/table-row/index.js +63 -55
- package/components/data/table/table-row-action/index.js +102 -77
- package/components/data/table/utils/buildSelectionColumns.js +86 -137
- package/components/data/table/utils/columnBuilder.js +116 -158
- package/components/data/table/utils/columnProxy.js +48 -66
- package/components/data/table/utils/columnWidthDistribution.js +40 -64
- package/components/data/table/utils/constants.js +92 -40
- package/components/data/table/utils/crud-handlers.js +292 -473
- package/components/data/table/utils/dynamic-columns.js +99 -144
- package/components/data/table/utils/groupHeaderUtils.js +36 -61
- package/components/data/table/utils/index.d.ts +8 -5
- package/components/data/table/utils/index.js +419 -639
- package/components/data/table/utils/renderDisplayCell.js +127 -169
- package/components/data/table/utils/script-page-size-broadcast.js +17 -29
- package/components/data/table/utils/selectionUtils.js +59 -113
- package/components/data/table/utils/table-helpers.js +38 -74
- package/components/data/table/utils/validation.js +35 -78
- package/components/data/table/utils/widgetMapping.d.ts +5 -0
- package/components/data/table/utils/widgetMapping.js +41 -0
- package/components/data/types.js +112 -112
- package/components/data/utils/field-data-utils.js +38 -42
- package/components/data/utils/filter-field-util.js +42 -44
- package/components/data/utils/index.js +112 -111
- package/components/dialogs/alert-dialog/index.js +83 -78
- package/components/dialogs/alert-dialog/props.js +0 -5
- package/components/dialogs/confirm-dialog/index.js +102 -92
- package/components/dialogs/confirm-dialog/props.js +0 -5
- package/components/dialogs/dialog/index.js +93 -69
- package/components/dialogs/dialog/props.js +0 -5
- package/components/dialogs/dialog-actions/index.js +12 -26
- package/components/dialogs/dialog-actions/props.js +0 -5
- package/components/dialogs/dialog-body/index.js +13 -30
- package/components/dialogs/dialog-body/props.js +0 -5
- package/components/dialogs/dialog-content/index.js +48 -41
- package/components/dialogs/dialog-content/props.js +0 -5
- package/components/dialogs/dialog-header/index.js +88 -101
- package/components/dialogs/dialog-header/props.js +0 -5
- package/components/dialogs/iframe-dialog/index.js +136 -128
- package/components/dialogs/iframe-dialog/props.js +0 -5
- package/components/dialogs/index.js +104 -101
- package/components/dialogs/login-dialog/index.js +285 -347
- package/components/dialogs/login-dialog/props.js +0 -5
- package/components/dialogs/page-dialog/index.js +95 -86
- package/components/dialogs/page-dialog/props.js +0 -5
- package/components/dialogs/props.js +0 -5
- package/components/dialogs/withDialogWrapper.js +110 -83
- package/components/form/button/index.js +296 -245
- package/components/form/button/props.js +0 -5
- package/components/form/button-group/index.js +80 -69
- package/components/form/button-group/props.js +0 -5
- package/components/input/calendar/index.js +409 -362
- package/components/input/calendar/props.js +0 -5
- package/components/input/calendar/utils.js +164 -172
- package/components/input/chips/SortableChip/index.js +109 -100
- package/components/input/chips/SortableChip/props.js +0 -5
- package/components/input/chips/index.js +663 -570
- package/components/input/chips/props.js +0 -5
- package/components/input/chips/utils.js +131 -122
- package/components/input/color-picker/index.js +536 -594
- package/components/input/color-picker/props.js +0 -5
- package/components/input/composite/index.js +71 -110
- package/components/input/composite/props.js +0 -5
- package/components/input/currency/index.js +277 -224
- package/components/input/currency/props.js +0 -5
- package/components/input/default/checkbox/index.js +329 -250
- package/components/input/default/checkbox/props.js +0 -5
- package/components/input/default/checkboxset/index.d.ts +2 -0
- package/components/input/default/checkboxset/index.js +529 -446
- package/components/input/default/checkboxset/props.d.ts +4 -0
- package/components/input/default/checkboxset/props.js +0 -5
- package/components/input/default/checkboxset/utils.js +15 -25
- package/components/input/default/radioset/index.d.ts +2 -0
- package/components/input/default/radioset/index.js +409 -350
- package/components/input/default/radioset/props.d.ts +6 -0
- package/components/input/default/radioset/props.js +0 -5
- package/components/input/default/switch/index.js +494 -458
- package/components/input/default/switch/prop.js +0 -5
- package/components/input/epoch/date/components/DatePickerPopover.js +242 -193
- package/components/input/epoch/date/index.js +638 -518
- package/components/input/epoch/date/props.js +0 -5
- package/components/input/epoch/date/styled.js +61 -70
- package/components/input/epoch/date/utils.js +67 -115
- package/components/input/epoch/datetime/index.js +758 -695
- package/components/input/epoch/datetime/props.js +0 -5
- package/components/input/epoch/datetime/utils.js +121 -186
- package/components/input/epoch/time/index.js +441 -415
- package/components/input/epoch/time/props.js +0 -5
- package/components/input/epoch/time/utils.js +101 -112
- package/components/input/fileupload/Utils.js +70 -97
- package/components/input/fileupload/components/ListItems.js +132 -130
- package/components/input/fileupload/components/MultiUpload.js +80 -77
- package/components/input/fileupload/components/SingleUpload.js +57 -57
- package/components/input/fileupload/index.js +253 -178
- package/components/input/fileupload/props.js +0 -5
- package/components/input/fileupload/useFileUpload.js +209 -258
- package/components/input/number/index.js +434 -393
- package/components/input/number/props.js +0 -5
- package/components/input/rating/index.js +401 -394
- package/components/input/rating/props.js +0 -5
- package/components/input/select/index.js +408 -463
- package/components/input/select/props.js +0 -5
- package/components/input/slider/index.js +339 -332
- package/components/input/slider/props.js +0 -5
- package/components/input/text/index.d.ts +3 -3
- package/components/input/text/index.js +438 -475
- package/components/input/text/props.d.ts +1 -1
- package/components/input/text/props.js +0 -5
- package/components/input/text/util.js +82 -222
- package/components/input/textarea/index.js +322 -358
- package/components/input/textarea/props.js +0 -5
- package/components/input/upload/index.js +135 -131
- package/components/input/upload/props.js +0 -5
- package/components/input/util/index.js +9 -11
- package/components/layout/footer/index.js +12 -35
- package/components/layout/footer/props.js +0 -5
- package/components/layout/header/index.js +12 -38
- package/components/layout/header/props.js +0 -5
- package/components/layout/leftnav/index.js +38 -44
- package/components/layout/leftnav/props.js +0 -5
- package/components/layout/rightnav/index.js +12 -36
- package/components/layout/rightnav/props.js +0 -5
- package/components/layout/topnav/index.js +24 -38
- package/components/layout/topnav/props.js +0 -5
- package/components/navbar/index.js +119 -98
- package/components/navbar/nav/index.js +236 -232
- package/components/navbar/nav/props.js +0 -5
- package/components/navbar/nav-item/index.js +74 -65
- package/components/navbar/nav-item/props.js +0 -5
- package/components/navigation/breadcrumb/index.js +38 -61
- package/components/navigation/breadcrumb/props.js +0 -5
- package/components/navigation/menu/components/ListItems.js +76 -67
- package/components/navigation/menu/constants.js +27 -42
- package/components/navigation/menu/hooks/useHoverState.hook.js +20 -47
- package/components/navigation/menu/hooks/useKeyboardMovements.hook.js +34 -28
- package/components/navigation/menu/hooks/useTransformedDataset.hook.js +21 -14
- package/components/navigation/menu/index.js +911 -846
- package/components/navigation/menu/props.js +0 -5
- package/components/navigation/menu/utils/action-task.js +6 -9
- package/components/navigation/menu/utils/role-filter.js +41 -56
- package/components/navigation/popover/index.js +191 -205
- package/components/navigation/popover/props.js +5 -8
- package/components/page/content/index.js +9 -31
- package/components/page/content/props.js +0 -5
- package/components/page/error-boundary/index.js +115 -105
- package/components/page/error-boundary/props.js +0 -5
- package/components/page/index.js +84 -102
- package/components/page/page-content/index.js +21 -30
- package/components/page/page-content/props.js +0 -5
- package/components/page/partial/index.js +50 -45
- package/components/page/partial/props.js +0 -5
- package/components/page/partial-container/index.js +81 -107
- package/components/page/partial-container/props.d.ts +1 -1
- package/components/page/partial-container/props.js +0 -5
- package/components/page/props.js +0 -5
- package/components/page/toast-container/index.js +20 -41
- package/components/page/toast-container/props.js +0 -5
- package/components/prefab/container/index.js +60 -53
- package/components/prefab/container/props.js +0 -5
- package/components/prefab/index.js +76 -61
- package/components/prefab/props.js +0 -5
- package/context/AppContext.d.ts +1 -1
- package/context/AppContext.js +17 -18
- package/context/AppSpinnerProvider.js +19 -34
- package/context/LayoutProvider.js +54 -57
- package/context/LocalizationProvider.js +34 -49
- package/context/PrefabContext.js +68 -119
- package/context/WidgetProvider.js +160 -166
- package/core/app-config.js +0 -1
- package/core/app.service.js +200 -327
- package/core/appVariablesStore.js +10 -15
- package/core/appstore.js +37 -53
- package/core/constants/currency-constant.js +81 -83
- package/core/constants/events.js +34 -44
- package/core/constants/index.js +21 -31
- package/core/dialog.service.js +52 -72
- package/core/event-notifier.js +94 -131
- package/core/formatter/array-formatters.js +18 -32
- package/core/formatter/date-formatters.js +140 -204
- package/core/formatter/index.js +64 -117
- package/core/formatter/number-formatters.js +115 -159
- package/core/formatter/security-formatters.js +233 -283
- package/core/formatter/string-formatters.js +23 -45
- package/core/formatter/types.js +12 -18
- package/core/formatters.js +6 -24
- package/core/proxy-service.js +242 -306
- package/core/script-registry.js +87 -134
- package/core/security.service.js +8 -11
- package/core/util/compare.js +13 -25
- package/core/util/dom.js +32 -63
- package/core/util/index.d.ts +5 -0
- package/core/util/index.js +95 -95
- package/core/util/safe-is-equal.js +42 -94
- package/core/util/security.js +114 -153
- package/core/util/utils.d.ts +8 -1
- package/core/util/utils.js +124 -132
- package/core/widget-observer.js +34 -61
- package/higherOrder/BaseApp.js +327 -500
- package/higherOrder/BaseAppProps.js +0 -5
- package/higherOrder/BaseDateTime.js +277 -231
- package/higherOrder/BasePage.js +479 -735
- package/higherOrder/BasePartial.js +87 -114
- package/higherOrder/BasePrefab.js +190 -206
- package/higherOrder/DataNav.js +287 -302
- package/higherOrder/helper.js +62 -48
- package/higherOrder/props.js +0 -5
- package/higherOrder/withBaseWrapper.js +123 -168
- package/higherOrder/withStandalone.js +28 -26
- package/hooks/useAccess.js +113 -289
- package/hooks/useAppConfig.js +15 -40
- package/hooks/useAuth.js +256 -495
- package/hooks/useDataSourceSubscription.d.ts +3 -3
- package/hooks/useDataSourceSubscription.js +99 -109
- package/hooks/useDebounce.js +28 -56
- package/hooks/useDeviceVisibility.js +14 -23
- package/hooks/useHttp.d.ts +1 -0
- package/hooks/useHttp.js +318 -493
- package/libs/index.js +4 -13
- package/libs/prefab/index.js +6 -20
- package/mui-config/theme-provider.js +9 -17
- package/mui-config/theme.js +6 -9
- package/package-lock.json +808 -3177
- package/package.json +3 -19
- package/providers/AppProviders.js +21 -24
- package/runtime-dynamic/App.js +65 -93
- package/runtime-dynamic/app-initializer.js +207 -400
- package/runtime-dynamic/components/ErrorBoundary.js +59 -76
- package/runtime-dynamic/components/PageWrapper.js +23 -35
- package/runtime-dynamic/components/PrefabPreview.js +40 -69
- package/runtime-dynamic/components/partial-content.d.ts +2 -3
- package/runtime-dynamic/components/partial-content.js +66 -48
- package/runtime-dynamic/components/prefab-content.js +37 -30
- package/runtime-dynamic/components/use-dynamic-component.js +62 -150
- package/runtime-dynamic/factories/build-base-page-like-component.js +44 -58
- package/runtime-dynamic/factories/dynamic-component.d.ts +9 -0
- package/runtime-dynamic/factories/dynamic-component.js +83 -0
- package/runtime-dynamic/factories/prefab-factory.js +60 -81
- package/runtime-dynamic/factories/startup-info.js +12 -25
- package/runtime-dynamic/factories/utils.d.ts +1 -9
- package/runtime-dynamic/factories/utils.js +47 -130
- package/runtime-dynamic/index.js +56 -191
- package/runtime-dynamic/main.js +42 -70
- package/runtime-dynamic/preview-mode.js +14 -29
- package/runtime-dynamic/preview-navigation.js +21 -30
- package/runtime-dynamic/preview-path.d.ts +5 -0
- package/runtime-dynamic/preview-path.js +13 -0
- package/runtime-dynamic/preview-resource-base.js +15 -31
- package/runtime-dynamic/registry/component-registry.js +269 -334
- package/runtime-dynamic/registry/custom-widget-registry.js +11 -15
- package/runtime-dynamic/registry/index.js +24 -63
- package/runtime-dynamic/registry/store.d.ts +1 -0
- package/runtime-dynamic/registry/store.js +18 -23
- package/runtime-dynamic/routes.js +53 -81
- package/runtime-dynamic/services/app-extension-provider.js +17 -44
- package/runtime-dynamic/services/autolayout-inject.d.ts +4 -0
- package/runtime-dynamic/services/autolayout-inject.js +27 -0
- package/runtime-dynamic/services/cache.js +27 -33
- package/runtime-dynamic/services/compile-render.d.ts +9 -0
- package/runtime-dynamic/services/compile-render.js +142 -0
- package/runtime-dynamic/services/component-ref-provider.js +70 -124
- package/runtime-dynamic/services/css-scoping.js +27 -28
- package/runtime-dynamic/services/fragment-url.js +37 -50
- package/runtime-dynamic/services/index.js +48 -152
- package/runtime-dynamic/services/markup-transpiler.d.ts +2 -2
- package/runtime-dynamic/services/markup-transpiler.js +39 -231
- package/runtime-dynamic/services/prefab-resources.js +42 -130
- package/runtime-dynamic/services/resource-manager.d.ts +2 -1
- package/runtime-dynamic/services/resource-manager.js +32 -63
- package/runtime-dynamic/services/script-executor.js +50 -61
- package/runtime-dynamic/services/variable-factory.js +141 -184
- package/runtime-dynamic/services/variable-registry.js +69 -115
- package/runtime-dynamic/services/variable-transpiler.js +73 -103
- package/runtime-dynamic/shims/next-image.js +79 -50
- package/runtime-dynamic/shims/next-link.js +58 -32
- package/runtime-dynamic/shims/next-navigation.js +17 -34
- package/runtime-dynamic/utils/index.d.ts +2 -0
- package/runtime-dynamic/utils/index.js +22 -24
- package/store/bindActions/i18nActions.js +16 -18
- package/store/index.js +29 -35
- package/store/middleware/navigationMiddleware.js +25 -45
- package/store/middleware/pendingTabNavigationIntentMiddleware.js +20 -25
- package/store/slices/appConfigSlice.js +65 -94
- package/store/slices/authSlice.js +317 -471
- package/store/slices/i18nSlice.js +169 -168
- package/store/slices/navigationSlice.js +22 -20
- package/store/util/resolve-path.d.ts +1 -0
- package/store/util/resolve-path.js +7 -0
- package/store/viewport.service.js +150 -194
- package/types/index.js +10 -15
- package/utils/attr.js +198 -41
- package/utils/custom-expression/index.js +55 -151
- package/utils/custom-expression/parser.js +106 -182
- package/utils/dataset-util.js +113 -154
- package/utils/eval-expression.js +10 -19
- package/utils/form-state.util.js +60 -118
- package/utils/form-utils.js +49 -190
- package/utils/format-util.js +113 -184
- package/utils/layoutsize-util.js +11 -17
- package/utils/lib-error-skipper.js +54 -52
- package/utils/page-params-util.js +50 -40
- package/utils/pending-tab-navigation-intent.js +7 -17
- package/utils/resource-url.js +8 -19
- package/utils/state-persistance.js +136 -253
- package/utils/style-utils.d.ts +2 -0
- package/utils/style-utils.js +25 -74
- package/utils/transformedDataset-utils.js +353 -381
- package/utils/widget-cleanup-util.js +42 -74
- package/utils/widgets.js +19 -31
- package/variables/base-variable.js +117 -166
- package/variables/constants.js +5 -8
- package/variables/crud-variable.js +150 -181
- package/variables/live-variable.d.ts +1 -1
- package/variables/live-variable.js +140 -174
- package/variables/metadata.service.js +74 -116
- package/variables/model-variable.js +68 -78
- package/variables/service-variable.js +171 -285
- package/wm-namespace.js +11 -14
- package/components/chart/src/css.d.js +0 -1
- package/tsconfig.declaration.tsbuildinfo +0 -1
- package/types/global.d.js +0 -3
|
@@ -1,633 +1,460 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
3
|
-
var
|
|
4
|
-
Object.
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
var
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
45
|
-
|
|
46
|
-
|
|
47
|
-
|
|
48
|
-
|
|
49
|
-
|
|
50
|
-
|
|
51
|
-
|
|
52
|
-
|
|
53
|
-
|
|
54
|
-
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
106
|
-
|
|
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
|
-
|
|
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
|
-
|
|
149
|
-
|
|
150
|
-
|
|
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
|
-
|
|
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
|
-
|
|
173
|
-
|
|
174
|
-
|
|
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(
|
|
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
|
-
|
|
200
|
-
|
|
201
|
-
|
|
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
|
-
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
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
|
-
}, [
|
|
232
|
-
|
|
233
|
-
|
|
234
|
-
|
|
235
|
-
|
|
236
|
-
|
|
237
|
-
|
|
238
|
-
|
|
239
|
-
|
|
240
|
-
|
|
241
|
-
|
|
242
|
-
|
|
243
|
-
|
|
244
|
-
|
|
245
|
-
|
|
246
|
-
|
|
247
|
-
|
|
248
|
-
|
|
249
|
-
|
|
250
|
-
|
|
251
|
-
|
|
252
|
-
|
|
253
|
-
|
|
254
|
-
|
|
255
|
-
|
|
256
|
-
|
|
257
|
-
|
|
258
|
-
|
|
259
|
-
|
|
260
|
-
|
|
261
|
-
|
|
262
|
-
|
|
263
|
-
|
|
264
|
-
|
|
265
|
-
|
|
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
|
-
|
|
270
|
-
|
|
271
|
-
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
|
|
275
|
-
|
|
276
|
-
|
|
277
|
-
|
|
278
|
-
|
|
279
|
-
|
|
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
|
-
|
|
311
|
-
|
|
312
|
-
|
|
313
|
-
|
|
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
|
-
}, [
|
|
324
|
-
|
|
325
|
-
|
|
326
|
-
|
|
327
|
-
|
|
328
|
-
|
|
329
|
-
|
|
330
|
-
|
|
331
|
-
|
|
332
|
-
|
|
333
|
-
|
|
334
|
-
|
|
335
|
-
|
|
336
|
-
|
|
337
|
-
|
|
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
|
-
|
|
349
|
-
|
|
350
|
-
filteredMerged.actualpagesize = existingState.actualpagesize;
|
|
237
|
+
if (!existingState) {
|
|
238
|
+
return newState;
|
|
351
239
|
}
|
|
352
|
-
|
|
353
|
-
|
|
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
|
-
|
|
357
|
-
|
|
358
|
-
|
|
359
|
-
|
|
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
|
-
|
|
374
|
-
|
|
375
|
-
|
|
376
|
-
|
|
377
|
-
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
|
|
381
|
-
|
|
382
|
-
|
|
383
|
-
|
|
384
|
-
|
|
385
|
-
|
|
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
|
-
|
|
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
|
-
|
|
412
|
-
|
|
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 !==
|
|
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
|
-
|
|
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
|
-
|
|
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
|
-
|
|
450
|
-
|
|
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
|
-
|
|
459
|
-
|
|
460
|
-
|
|
461
|
-
if (
|
|
462
|
-
|
|
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
|
-
|
|
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
|
-
|
|
473
|
-
|
|
474
|
-
|
|
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
|
-
|
|
481
|
-
|
|
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
|
-
}, [
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
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
|
-
|
|
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
|
-
|
|
357
|
+
clearTableState(name, storage);
|
|
508
358
|
} else {
|
|
509
|
-
|
|
510
|
-
|
|
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
|
-
|
|
382
|
+
saveTableState(name, storage, newState);
|
|
548
383
|
}
|
|
549
384
|
}
|
|
550
385
|
}
|
|
551
|
-
}, [
|
|
552
|
-
|
|
553
|
-
|
|
554
|
-
|
|
555
|
-
|
|
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
|
|
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
|
|
421
|
+
if (!(datasource == null ? void 0 : datasource.loading) && filterStatePendingRef.current) {
|
|
586
422
|
filterStatePendingRef.current = false;
|
|
587
423
|
handleFilterStateChange();
|
|
588
424
|
}
|
|
589
|
-
}, [datasource
|
|
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
|
|
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
|
|
444
|
+
if (!(datasource == null ? void 0 : datasource.loading) && sortStatePendingRef.current) {
|
|
621
445
|
sortStatePendingRef.current = false;
|
|
622
446
|
handleSortStateChange();
|
|
623
447
|
}
|
|
624
|
-
}, [datasource
|
|
448
|
+
}, [datasource == null ? void 0 : datasource.loading, handleSortStateChange, isStatePersistenceDisabled]);
|
|
625
449
|
return {
|
|
626
|
-
currentState
|
|
627
|
-
getStateForPageSizeChange
|
|
628
|
-
isDefaultState
|
|
629
|
-
mergeWithExisting
|
|
630
|
-
handleFilterStateChange
|
|
631
|
-
handleSortStateChange
|
|
450
|
+
currentState,
|
|
451
|
+
getStateForPageSizeChange,
|
|
452
|
+
isDefaultState,
|
|
453
|
+
mergeWithExisting,
|
|
454
|
+
handleFilterStateChange,
|
|
455
|
+
handleSortStateChange
|
|
632
456
|
};
|
|
633
|
-
};
|
|
457
|
+
};
|
|
458
|
+
export {
|
|
459
|
+
useTableStateManager
|
|
460
|
+
};
|