@wavemaker/react-runtime 11.14.1-rc.236
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/actions/base-action.js +32 -0
- package/actions/login-action.js +53 -0
- package/actions/logout-action.js +41 -0
- package/actions/navigation-action.js +145 -0
- package/actions/notification-action.js +147 -0
- package/actions/timer-action.js +164 -0
- package/actions/toast-provider.js +111 -0
- package/actions/toast.js +115 -0
- package/actions/toast.service.js +94 -0
- package/actions/types/index.js +11 -0
- package/components/advanced/carousel/index.js +456 -0
- package/components/advanced/carousel/props.js +5 -0
- package/components/advanced/carousel/template.js +72 -0
- package/components/advanced/login/index.js +307 -0
- package/components/advanced/login/props.js +5 -0
- package/components/advanced/marquee/index.js +158 -0
- package/components/advanced/marquee/props.js +5 -0
- package/components/basic/anchor/index.js +239 -0
- package/components/basic/anchor/props.js +5 -0
- package/components/basic/audio/index.js +61 -0
- package/components/basic/html/index.js +158 -0
- package/components/basic/icon/index.js +85 -0
- package/components/basic/iframe/iframe.utils.js +10 -0
- package/components/basic/iframe/index.js +95 -0
- package/components/basic/label/index.js +139 -0
- package/components/basic/message/index.js +120 -0
- package/components/basic/message/props.js +5 -0
- package/components/basic/picture/index.js +117 -0
- package/components/basic/picture/props.js +5 -0
- package/components/basic/progress-bar/index.js +168 -0
- package/components/basic/progress-bar/props.js +18 -0
- package/components/basic/progress-circle/index.js +196 -0
- package/components/basic/progress-circle/props.js +16 -0
- package/components/basic/richtexteditor/index.js +533 -0
- package/components/basic/richtexteditor/props.js +5 -0
- package/components/basic/search/index.js +1023 -0
- package/components/basic/search/props.js +5 -0
- package/components/basic/search/providers.js +350 -0
- package/components/basic/spinner/index.js +202 -0
- package/components/basic/spinner/props.js +12 -0
- package/components/basic/tile/index.js +91 -0
- package/components/basic/tree/Components/TreeNodeComponent.js +142 -0
- package/components/basic/tree/index.js +503 -0
- package/components/basic/tree/props.js +5 -0
- package/components/basic/tree/utils.js +154 -0
- package/components/basic/video/index.js +85 -0
- package/components/basic/video/props.js +5 -0
- package/components/chart/components/barColumnChart/index.js +132 -0
- package/components/chart/components/barColumnChart/props.js +5 -0
- package/components/chart/components/bubbleChart/index.js +176 -0
- package/components/chart/components/bubbleChart/props.js +5 -0
- package/components/chart/components/chartLegend/components/ClassicLegendItem.js +39 -0
- package/components/chart/components/chartLegend/components/FuriousLegendItem.js +81 -0
- package/components/chart/components/chartLegend/index.js +69 -0
- package/components/chart/components/chartLegend/props.js +5 -0
- package/components/chart/components/chartLegend/utils.js +31 -0
- package/components/chart/components/chartTooltip/index.js +53 -0
- package/components/chart/components/chartTooltip/styles.js +37 -0
- package/components/chart/components/chartTooltip/utils.js +23 -0
- package/components/chart/components/cumulativeLineChart/index.js +113 -0
- package/components/chart/components/cumulativeLineChart/props.js +5 -0
- package/components/chart/components/cumulativeLineChart/utils.js +34 -0
- package/components/chart/components/index.js +40 -0
- package/components/chart/components/lineAreaChart/index.js +140 -0
- package/components/chart/components/lineAreaChart/props.js +5 -0
- package/components/chart/components/noDataMessage/index.js +27 -0
- package/components/chart/components/pieDonutChart/index.js +171 -0
- package/components/chart/components/pieDonutChart/props.js +5 -0
- package/components/chart/constant.js +72 -0
- package/components/chart/index.js +930 -0
- package/components/chart/props.js +5 -0
- package/components/chart/utils.js +691 -0
- package/components/common/AppSpinner.js +36 -0
- package/components/common/app-spinner.js +26 -0
- package/components/common/index.js +12 -0
- package/components/constants.js +1208 -0
- package/components/container/accordion/accordion-pane/index.js +108 -0
- package/components/container/accordion/accordion-pane/props.js +11 -0
- package/components/container/accordion/index.js +232 -0
- package/components/container/accordion/props.js +13 -0
- package/components/container/alignment-utils.js +183 -0
- package/components/container/index.js +188 -0
- package/components/container/layout-grid/grid-column/index.js +34 -0
- package/components/container/layout-grid/grid-row/index.js +24 -0
- package/components/container/layout-grid/index.js +33 -0
- package/components/container/linear-layout/index.js +72 -0
- package/components/container/linear-layout/linear-layout-item/index.js +43 -0
- package/components/container/panel/components/panel-header/index.js +144 -0
- package/components/container/panel/components/panel-header/props.js +5 -0
- package/components/container/panel/hooks.js +144 -0
- package/components/container/panel/index.js +286 -0
- package/components/container/panel/props.js +5 -0
- package/components/container/props.js +5 -0
- package/components/container/tabs/index.js +379 -0
- package/components/container/tabs/props.js +20 -0
- package/components/container/tabs/tab-pane/index.js +42 -0
- package/components/container/tabs/tab-pane/props.js +5 -0
- package/components/container/wizard/WizardContext.js +16 -0
- package/components/container/wizard/components/StepComponents.js +100 -0
- package/components/container/wizard/components/WizardStep.js +89 -0
- package/components/container/wizard/index.js +710 -0
- package/components/container/wizard/props.js +5 -0
- package/components/container/wizard/utils.js +133 -0
- package/components/container/wizard/wizard-action/index.js +22 -0
- package/components/container/wizard/wizard-step/index.js +94 -0
- package/components/data/card/card-actions/index.js +24 -0
- package/components/data/card/card-content/index.js +38 -0
- package/components/data/card/card-footer/index.js +24 -0
- package/components/data/card/index.js +246 -0
- package/components/data/card/props.js +5 -0
- package/components/data/form/base-form/constant.js +39 -0
- package/components/data/form/base-form/index.js +460 -0
- package/components/data/form/base-form/props.js +29 -0
- package/components/data/form/base-form/utils.js +42 -0
- package/components/data/form/dynamic-fields/index.js +196 -0
- package/components/data/form/dynamic-fields/props.js +5 -0
- package/components/data/form/dynamic-fields/utils.js +237 -0
- package/components/data/form/form-action/index.js +71 -0
- package/components/data/form/form-body/index.js +26 -0
- package/components/data/form/form-context.js +34 -0
- package/components/data/form/form-controller/props.js +19 -0
- package/components/data/form/form-controller/validation-contrustor.js +313 -0
- package/components/data/form/form-controller/withFormController.js +320 -0
- package/components/data/form/form-field/base-field.js +138 -0
- package/components/data/form/form-field/index.js +36 -0
- package/components/data/form/form-field/props.js +5 -0
- package/components/data/form/form-footer/index.js +26 -0
- package/components/data/form/form-header/index.js +56 -0
- package/components/data/form/index.js +39 -0
- package/components/data/form/props.js +5 -0
- package/components/data/list/components/GroupHeader.js +35 -0
- package/components/data/list/components/GroupedListItems.js +98 -0
- package/components/data/list/components/ListContainer.js +27 -0
- package/components/data/list/components/ListDND.js +241 -0
- package/components/data/list/components/ListHeader.js +59 -0
- package/components/data/list/components/ListItem.js +148 -0
- package/components/data/list/components/ListItemWithTemplate.js +59 -0
- package/components/data/list/components/ListItems.js +231 -0
- package/components/data/list/components/ListPagination.js +165 -0
- package/components/data/list/components/LoadMoreButton.js +39 -0
- package/components/data/list/components/NoDataMessage.js +22 -0
- package/components/data/list/components/StandardListItems.js +84 -0
- package/components/data/list/components/index.js +119 -0
- package/components/data/list/components/props.js +5 -0
- package/components/data/list/hooks/index.js +75 -0
- package/components/data/list/hooks/props.js +5 -0
- package/components/data/list/hooks/useCurrentPageItems.js +48 -0
- package/components/data/list/hooks/useGroupedData.js +37 -0
- package/components/data/list/hooks/useListData.js +60 -0
- package/components/data/list/hooks/useListEffects.js +285 -0
- package/components/data/list/hooks/useListEventHandlers.js +291 -0
- package/components/data/list/hooks/useListPagination.js +168 -0
- package/components/data/list/hooks/useListState.js +98 -0
- package/components/data/list/hooks/useListStateManager.js +195 -0
- package/components/data/list/hooks/usePaginatedGroupedData.js +121 -0
- package/components/data/list/index.js +611 -0
- package/components/data/list/props.js +5 -0
- package/components/data/list/templates/media-template.js +53 -0
- package/components/data/list/utils/constants.js +81 -0
- package/components/data/list/utils/list-helpers.js +173 -0
- package/components/data/list/utils/list-widget-methods.js +114 -0
- package/components/data/live-filter/index.js +279 -0
- package/components/data/live-filter/props.js +12 -0
- package/components/data/live-form/index.js +93 -0
- package/components/data/live-form/props.js +16 -0
- package/components/data/pagination/components/BasicPagination.js +77 -0
- package/components/data/pagination/components/ClassicPagination.js +191 -0
- package/components/data/pagination/components/InlinePagination.js +99 -0
- package/components/data/pagination/components/LoadingComponent.js +31 -0
- package/components/data/pagination/components/PageSizeSelector.js +175 -0
- package/components/data/pagination/components/PagerNavigation.js +105 -0
- package/components/data/pagination/components/TotalRecords.js +52 -0
- package/components/data/pagination/components/index.js +47 -0
- package/components/data/pagination/components/props.js +5 -0
- package/components/data/pagination/hooks/index.js +19 -0
- package/components/data/pagination/hooks/props.js +5 -0
- package/components/data/pagination/hooks/useNavigationSize.js +44 -0
- package/components/data/pagination/hooks/usePagination.js +796 -0
- package/components/data/pagination/index.js +322 -0
- package/components/data/table/components/AddNewRow.js +190 -0
- package/components/data/table/components/EditableCell.js +91 -0
- package/components/data/table/components/FieldValidationError.js +24 -0
- package/components/data/table/components/RowExpansionButton.js +74 -0
- package/components/data/table/components/TableBody.js +279 -0
- package/components/data/table/components/TableFilters.js +325 -0
- package/components/data/table/components/TableFooterActions.js +48 -0
- package/components/data/table/components/TableHeader.js +174 -0
- package/components/data/table/components/TablePanelHeading.js +68 -0
- package/components/data/table/components/index.js +74 -0
- package/components/data/table/hooks/index.js +219 -0
- package/components/data/table/hooks/useCellState.js +117 -0
- package/components/data/table/hooks/useDynamicColumns.js +85 -0
- package/components/data/table/hooks/useEditingState.js +47 -0
- package/components/data/table/hooks/useFormWidget.js +184 -0
- package/components/data/table/hooks/usePaginationState.js +60 -0
- package/components/data/table/hooks/usePanelStructure.js +40 -0
- package/components/data/table/hooks/useResponsiveColumns.js +34 -0
- package/components/data/table/hooks/useRowExpansion.js +110 -0
- package/components/data/table/hooks/useRowHandlers.js +38 -0
- package/components/data/table/hooks/useRowSelection.js +213 -0
- package/components/data/table/hooks/useServerSideSorting.js +165 -0
- package/components/data/table/hooks/useTableColumns.js +263 -0
- package/components/data/table/hooks/useTableData.js +154 -0
- package/components/data/table/hooks/useTableEdit.js +467 -0
- package/components/data/table/hooks/useTableEffects.js +139 -0
- package/components/data/table/hooks/useTableFilter.js +389 -0
- package/components/data/table/hooks/useTableInitialization.js +103 -0
- package/components/data/table/hooks/useTableState.js +69 -0
- package/components/data/table/hooks/useTableStateManager.js +558 -0
- package/components/data/table/index.js +1295 -0
- package/components/data/table/live-table/index.js +232 -0
- package/components/data/table/props.js +5 -0
- package/components/data/table/table-action/index.js +78 -0
- package/components/data/table/table-column/index.js +35 -0
- package/components/data/table/table-row/index.js +49 -0
- package/components/data/table/table-row-action/index.js +74 -0
- package/components/data/table/utils/buildSelectionColumns.js +173 -0
- package/components/data/table/utils/columnBuilder.js +209 -0
- package/components/data/table/utils/columnProxy.js +48 -0
- package/components/data/table/utils/columnWidthDistribution.js +98 -0
- package/components/data/table/utils/constants.js +80 -0
- package/components/data/table/utils/crud-handlers.js +518 -0
- package/components/data/table/utils/dynamic-columns.js +118 -0
- package/components/data/table/utils/index.js +607 -0
- package/components/data/table/utils/renderDisplayCell.js +183 -0
- package/components/data/table/utils/selectionUtils.js +166 -0
- package/components/data/table/utils/table-helpers.js +100 -0
- package/components/data/table/utils/validation.js +124 -0
- package/components/data/types.js +113 -0
- package/components/data/utils/field-data-utils.js +66 -0
- package/components/data/utils/filter-field-util.js +81 -0
- package/components/data/utils/index.js +216 -0
- package/components/dialogs/alert-dialog/index.js +80 -0
- package/components/dialogs/confirm-dialog/index.js +105 -0
- package/components/dialogs/dialog/index.js +56 -0
- package/components/dialogs/dialog-actions/index.js +18 -0
- package/components/dialogs/dialog-body/index.js +21 -0
- package/components/dialogs/dialog-content/index.js +30 -0
- package/components/dialogs/dialog-header/index.js +93 -0
- package/components/dialogs/iframe-dialog/index.js +114 -0
- package/components/dialogs/index.js +129 -0
- package/components/dialogs/login-dialog/index.js +369 -0
- package/components/dialogs/login-dialog/props.js +5 -0
- package/components/dialogs/page-dialog/index.js +96 -0
- package/components/dialogs/withDialogWrapper.js +108 -0
- package/components/form/button/index.js +216 -0
- package/components/form/button-group/index.js +60 -0
- package/components/input/calendar/index.js +546 -0
- package/components/input/calendar/props.js +5 -0
- package/components/input/calendar/utils.js +340 -0
- package/components/input/chips/SortableChip/index.js +115 -0
- package/components/input/chips/SortableChip/props.js +5 -0
- package/components/input/chips/index.js +488 -0
- package/components/input/chips/props.js +5 -0
- package/components/input/chips/utils.js +259 -0
- package/components/input/color-picker/index.js +678 -0
- package/components/input/color-picker/props.js +5 -0
- package/components/input/composite/index.js +137 -0
- package/components/input/currency/index.js +263 -0
- package/components/input/currency/props.js +5 -0
- package/components/input/default/checkbox/index.js +230 -0
- package/components/input/default/checkbox/props.js +5 -0
- package/components/input/default/checkboxset/index.js +476 -0
- package/components/input/default/checkboxset/props.js +5 -0
- package/components/input/default/radioset/index.js +379 -0
- package/components/input/default/radioset/props.js +5 -0
- package/components/input/default/switch/index.js +490 -0
- package/components/input/default/switch/prop.js +5 -0
- package/components/input/epoch/date/components/DatePickerPopover.js +220 -0
- package/components/input/epoch/date/index.js +520 -0
- package/components/input/epoch/date/props.js +5 -0
- package/components/input/epoch/date/styled.js +70 -0
- package/components/input/epoch/date/utils.js +108 -0
- package/components/input/epoch/datetime/index.js +656 -0
- package/components/input/epoch/datetime/props.js +5 -0
- package/components/input/epoch/datetime/styled.js +90 -0
- package/components/input/epoch/datetime/utils.js +244 -0
- package/components/input/epoch/time/index.js +412 -0
- package/components/input/epoch/time/props.js +5 -0
- package/components/input/epoch/time/utils.js +209 -0
- package/components/input/fileupload/Utils.js +134 -0
- package/components/input/fileupload/components/ListItems.js +140 -0
- package/components/input/fileupload/components/MultiUpload.js +85 -0
- package/components/input/fileupload/components/SingleUpload.js +65 -0
- package/components/input/fileupload/index.js +170 -0
- package/components/input/fileupload/props.js +5 -0
- package/components/input/fileupload/useFileUpload.js +400 -0
- package/components/input/number/index.js +295 -0
- package/components/input/number/props.js +5 -0
- package/components/input/rating/index.js +368 -0
- package/components/input/rating/props.js +5 -0
- package/components/input/select/index.js +344 -0
- package/components/input/select/props.js +5 -0
- package/components/input/slider/index.js +167 -0
- package/components/input/slider/props.js +5 -0
- package/components/input/text/index.js +434 -0
- package/components/input/text/props.js +5 -0
- package/components/input/text/util.js +179 -0
- package/components/input/textarea/index.js +347 -0
- package/components/input/textarea/props.js +5 -0
- package/components/layout/footer/index.js +30 -0
- package/components/layout/header/index.js +30 -0
- package/components/layout/leftnav/index.js +44 -0
- package/components/layout/rightnav/index.js +32 -0
- package/components/layout/topnav/index.js +34 -0
- package/components/navbar/index.js +41 -0
- package/components/navbar/nav/index.js +102 -0
- package/components/navbar/nav/props.js +5 -0
- package/components/navbar/nav-item/index.js +44 -0
- package/components/navigation/breadcrumb/index.js +56 -0
- package/components/navigation/breadcrumb/props.js +5 -0
- package/components/navigation/menu/components/ListItems.js +66 -0
- package/components/navigation/menu/constants.js +101 -0
- package/components/navigation/menu/index.js +807 -0
- package/components/navigation/menu/props.js +5 -0
- package/components/navigation/popover/index.js +209 -0
- package/components/navigation/popover/props.js +15 -0
- package/components/page/content/index.js +28 -0
- package/components/page/error-boundary/index.js +108 -0
- package/components/page/index.js +137 -0
- package/components/page/page-content/index.js +23 -0
- package/components/page/partial/index.js +36 -0
- package/components/page/partial-container/index.js +48 -0
- package/components/page/props.js +5 -0
- package/components/page/toast-container/index.js +33 -0
- package/components/prefab/container/index.js +46 -0
- package/components/prefab/index.js +67 -0
- package/context/AppContext.js +25 -0
- package/context/AppSpinnerProvider.js +43 -0
- package/context/LocalizationProvider.js +79 -0
- package/context/PrefabContext.js +66 -0
- package/context/WidgetProvider.js +187 -0
- package/core/app-config.js +1 -0
- package/core/app.service.js +357 -0
- package/core/appVariablesStore.js +20 -0
- package/core/appstore.js +88 -0
- package/core/constants/currency-constant.js +1071 -0
- package/core/constants/events.js +34 -0
- package/core/constants/index.js +27 -0
- package/core/dialog.service.js +76 -0
- package/core/event-notifier.js +151 -0
- package/core/formatter/date-formatters.js +222 -0
- package/core/formatter/index.js +131 -0
- package/core/formatter/number-formatters.js +142 -0
- package/core/formatter/security-formatters.js +323 -0
- package/core/formatter/string-formatters.js +52 -0
- package/core/formatter/types.js +18 -0
- package/core/formatters.js +24 -0
- package/core/proxy-service.js +412 -0
- package/core/script-registry.js +63 -0
- package/core/security.service.js +11 -0
- package/core/util/common.js +33 -0
- package/core/util/dom.js +107 -0
- package/core/util/index.js +136 -0
- package/core/util/security.js +184 -0
- package/core/util/utils.js +189 -0
- package/core/widget-observer.js +98 -0
- package/higherOrder/BaseApp.js +430 -0
- package/higherOrder/BaseAppProps.js +5 -0
- package/higherOrder/BaseDateTime.js +251 -0
- package/higherOrder/BasePage.js +715 -0
- package/higherOrder/BasePartial.js +124 -0
- package/higherOrder/BasePrefab.js +145 -0
- package/higherOrder/DataNav.js +377 -0
- package/higherOrder/helper.js +43 -0
- package/higherOrder/props.js +5 -0
- package/higherOrder/withBaseWrapper.js +183 -0
- package/hooks/useAccess.js +308 -0
- package/hooks/useAppConfig.js +42 -0
- package/hooks/useAuth.js +562 -0
- package/hooks/useDataSourceSubscription.js +125 -0
- package/hooks/useDebounce.js +76 -0
- package/hooks/useDeviceVisibility.js +49 -0
- package/hooks/useHttp.js +338 -0
- package/libs/index.js +20 -0
- package/mui-config/theme-provider.js +17 -0
- package/mui-config/theme.js +371 -0
- package/package-lock.json +10183 -0
- package/package.json +95 -0
- package/store/index.js +33 -0
- package/store/middleware/navigationMiddleware.js +48 -0
- package/store/slices/appConfigSlice.js +103 -0
- package/store/slices/authSlice.js +508 -0
- package/store/slices/i18nSlice.js +206 -0
- package/types/index.js +15 -0
- package/utils/dataset-util.js +174 -0
- package/utils/eval-expression.js +32 -0
- package/utils/form-state.util.js +140 -0
- package/utils/form-utils.js +187 -0
- package/utils/format-util.js +260 -0
- package/utils/page-params-util.js +24 -0
- package/utils/resource-url.js +27 -0
- package/utils/state-persistance.js +343 -0
- package/utils/style-utils.js +73 -0
- package/utils/transformedDataset-utils.js +633 -0
- package/utils/widget-cleanup-util.js +84 -0
- package/utils/widgets.js +99 -0
- package/variables/base-variable.js +173 -0
- package/variables/constants.js +27 -0
- package/variables/live-variable.js +166 -0
- package/variables/model-variable.js +77 -0
- package/variables/service-variable.js +307 -0
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
Object.defineProperty(exports, "useCurrentPageItems", {
|
|
7
|
+
enumerable: true,
|
|
8
|
+
get: function get() {
|
|
9
|
+
return _useCurrentPageItems.useCurrentPageItems;
|
|
10
|
+
}
|
|
11
|
+
});
|
|
12
|
+
Object.defineProperty(exports, "useDataSourceSubscription", {
|
|
13
|
+
enumerable: true,
|
|
14
|
+
get: function get() {
|
|
15
|
+
return _useDataSourceSubscription.useDataSourceSubscription;
|
|
16
|
+
}
|
|
17
|
+
});
|
|
18
|
+
Object.defineProperty(exports, "useGroupedData", {
|
|
19
|
+
enumerable: true,
|
|
20
|
+
get: function get() {
|
|
21
|
+
return _useGroupedData.useGroupedData;
|
|
22
|
+
}
|
|
23
|
+
});
|
|
24
|
+
Object.defineProperty(exports, "useListData", {
|
|
25
|
+
enumerable: true,
|
|
26
|
+
get: function get() {
|
|
27
|
+
return _useListData.useListData;
|
|
28
|
+
}
|
|
29
|
+
});
|
|
30
|
+
Object.defineProperty(exports, "useListEffects", {
|
|
31
|
+
enumerable: true,
|
|
32
|
+
get: function get() {
|
|
33
|
+
return _useListEffects.useListEffects;
|
|
34
|
+
}
|
|
35
|
+
});
|
|
36
|
+
Object.defineProperty(exports, "useListEventHandlers", {
|
|
37
|
+
enumerable: true,
|
|
38
|
+
get: function get() {
|
|
39
|
+
return _useListEventHandlers.useListEventHandlers;
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
Object.defineProperty(exports, "useListPagination", {
|
|
43
|
+
enumerable: true,
|
|
44
|
+
get: function get() {
|
|
45
|
+
return _useListPagination.useListPagination;
|
|
46
|
+
}
|
|
47
|
+
});
|
|
48
|
+
Object.defineProperty(exports, "useListState", {
|
|
49
|
+
enumerable: true,
|
|
50
|
+
get: function get() {
|
|
51
|
+
return _useListState.useListState;
|
|
52
|
+
}
|
|
53
|
+
});
|
|
54
|
+
Object.defineProperty(exports, "useListStateManager", {
|
|
55
|
+
enumerable: true,
|
|
56
|
+
get: function get() {
|
|
57
|
+
return _useListStateManager.useListStateManager;
|
|
58
|
+
}
|
|
59
|
+
});
|
|
60
|
+
Object.defineProperty(exports, "usePaginatedGroupedData", {
|
|
61
|
+
enumerable: true,
|
|
62
|
+
get: function get() {
|
|
63
|
+
return _usePaginatedGroupedData.usePaginatedGroupedData;
|
|
64
|
+
}
|
|
65
|
+
});
|
|
66
|
+
var _useListData = require("./useListData");
|
|
67
|
+
var _useListState = require("./useListState");
|
|
68
|
+
var _useGroupedData = require("./useGroupedData");
|
|
69
|
+
var _useListEventHandlers = require("./useListEventHandlers");
|
|
70
|
+
var _useListPagination = require("./useListPagination");
|
|
71
|
+
var _useCurrentPageItems = require("./useCurrentPageItems");
|
|
72
|
+
var _usePaginatedGroupedData = require("./usePaginatedGroupedData");
|
|
73
|
+
var _useListEffects = require("./useListEffects");
|
|
74
|
+
var _useDataSourceSubscription = require("../../../../hooks/useDataSourceSubscription");
|
|
75
|
+
var _useListStateManager = require("./useListStateManager");
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useCurrentPageItems = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _constants = require("../utils/constants");
|
|
9
|
+
/**
|
|
10
|
+
* Hook for calculating current page items based on navigation type and pagination
|
|
11
|
+
*/
|
|
12
|
+
var useCurrentPageItems = exports.useCurrentPageItems = function useCurrentPageItems(_ref) {
|
|
13
|
+
var items = _ref.items,
|
|
14
|
+
navigation = _ref.navigation,
|
|
15
|
+
currentPage = _ref.currentPage,
|
|
16
|
+
pagesize = _ref.pagesize,
|
|
17
|
+
visibleItems = _ref.visibleItems,
|
|
18
|
+
_ref$isServerPaginate = _ref.isServerPaginated,
|
|
19
|
+
isServerPaginated = _ref$isServerPaginate === void 0 ? false : _ref$isServerPaginate;
|
|
20
|
+
return (0, _react.useMemo)(function () {
|
|
21
|
+
if (!items || !Array.isArray(items) || items.length === 0) {
|
|
22
|
+
return {
|
|
23
|
+
currentItems: [],
|
|
24
|
+
startIndex: 0,
|
|
25
|
+
endIndex: 0
|
|
26
|
+
};
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
// For server-paginated data, use all items as-is since the server has already paginated the data
|
|
30
|
+
if (isServerPaginated) {
|
|
31
|
+
return {
|
|
32
|
+
currentItems: items,
|
|
33
|
+
startIndex: 0,
|
|
34
|
+
endIndex: items.length
|
|
35
|
+
};
|
|
36
|
+
}
|
|
37
|
+
|
|
38
|
+
// For client-side pagination, calculate the slice indexes
|
|
39
|
+
var startIndex = navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND ? 0 : (currentPage - 1) * pagesize;
|
|
40
|
+
var endIndex = navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND ? visibleItems : currentPage * pagesize;
|
|
41
|
+
var currentItems = items.slice(startIndex, endIndex);
|
|
42
|
+
return {
|
|
43
|
+
currentItems: currentItems,
|
|
44
|
+
startIndex: startIndex,
|
|
45
|
+
endIndex: endIndex
|
|
46
|
+
};
|
|
47
|
+
}, [items, navigation, currentPage, pagesize, visibleItems, isServerPaginated]);
|
|
48
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.useGroupedData = void 0;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _lodashEs = require("lodash-es");
|
|
9
|
+
/**
|
|
10
|
+
* Custom hook for grouping data
|
|
11
|
+
* @param orderedDataset - The dataset to group
|
|
12
|
+
* @param groupby - The field to group by (supports dot notation for nested properties)
|
|
13
|
+
* @returns Grouped data array
|
|
14
|
+
*/
|
|
15
|
+
var useGroupedData = exports.useGroupedData = function useGroupedData(orderedDataset, groupby) {
|
|
16
|
+
return (0, _react.useMemo)(function () {
|
|
17
|
+
// Ensure orderedDataset is a valid array
|
|
18
|
+
var validDataset = Array.isArray(orderedDataset) ? orderedDataset : [];
|
|
19
|
+
if (!groupby || !validDataset.length) return [];
|
|
20
|
+
|
|
21
|
+
// Group data using lodash groupBy with safe property access
|
|
22
|
+
var grouped = (0, _lodashEs.groupBy)(validDataset, function (item) {
|
|
23
|
+
var value = (0, _lodashEs.get)(item, groupby);
|
|
24
|
+
// If the nested value doesn't exist, group under "Others"
|
|
25
|
+
return value !== undefined ? String(value || "None") : "Others";
|
|
26
|
+
});
|
|
27
|
+
|
|
28
|
+
// Convert to sorted array format expected by the component
|
|
29
|
+
return (0, _lodashEs.sortBy)((0, _lodashEs.map)(grouped, function (data, key) {
|
|
30
|
+
return {
|
|
31
|
+
key: key,
|
|
32
|
+
data: data,
|
|
33
|
+
originalDataLength: data.length
|
|
34
|
+
};
|
|
35
|
+
}), "key");
|
|
36
|
+
}, [orderedDataset, groupby]);
|
|
37
|
+
};
|
|
@@ -0,0 +1,60 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useListData = void 0;
|
|
8
|
+
var _slicedToArray2 = _interopRequireDefault(require("@babel/runtime/helpers/slicedToArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _lodashEs = require("lodash-es");
|
|
11
|
+
/**
|
|
12
|
+
* Custom hook for processing and ordering list data
|
|
13
|
+
* @param dataset - The dataset to process
|
|
14
|
+
* @param config - Configuration options for data processing
|
|
15
|
+
* @returns Processed and ordered dataset
|
|
16
|
+
*/
|
|
17
|
+
var useListData = exports.useListData = function useListData(dataset, config) {
|
|
18
|
+
var orderby = config.orderby,
|
|
19
|
+
groupby = config.groupby;
|
|
20
|
+
return (0, _react.useMemo)(function () {
|
|
21
|
+
// Ensure dataset is a valid array
|
|
22
|
+
var validDataset = Array.isArray(dataset) ? dataset : [];
|
|
23
|
+
if (!validDataset.length) return [];
|
|
24
|
+
|
|
25
|
+
// If no ordering or grouping is required, return as-is
|
|
26
|
+
if (!orderby && !groupby) {
|
|
27
|
+
return validDataset;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
// Apply ordering if specified
|
|
31
|
+
if (orderby) {
|
|
32
|
+
// Parse orderby string to extract fields and directions
|
|
33
|
+
var orderFields = orderby.split(",").map(function (field) {
|
|
34
|
+
var _field$trim$split = field.trim().split(":"),
|
|
35
|
+
_field$trim$split2 = (0, _slicedToArray2["default"])(_field$trim$split, 2),
|
|
36
|
+
fieldName = _field$trim$split2[0],
|
|
37
|
+
_field$trim$split2$ = _field$trim$split2[1],
|
|
38
|
+
direction = _field$trim$split2$ === void 0 ? "asc" : _field$trim$split2$;
|
|
39
|
+
return {
|
|
40
|
+
field: fieldName.trim(),
|
|
41
|
+
direction: direction.trim().toLowerCase()
|
|
42
|
+
};
|
|
43
|
+
});
|
|
44
|
+
|
|
45
|
+
// Extract field names and directions for lodash orderBy
|
|
46
|
+
var fields = orderFields.map(function (_ref) {
|
|
47
|
+
var field = _ref.field;
|
|
48
|
+
return function (item) {
|
|
49
|
+
return (0, _lodashEs.get)(item, field);
|
|
50
|
+
};
|
|
51
|
+
});
|
|
52
|
+
var directions = orderFields.map(function (_ref2) {
|
|
53
|
+
var direction = _ref2.direction;
|
|
54
|
+
return direction;
|
|
55
|
+
});
|
|
56
|
+
return (0, _lodashEs.orderBy)(validDataset, fields, directions);
|
|
57
|
+
}
|
|
58
|
+
return validDataset;
|
|
59
|
+
}, [dataset, orderby, groupby]);
|
|
60
|
+
};
|
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
|
|
4
|
+
Object.defineProperty(exports, "__esModule", {
|
|
5
|
+
value: true
|
|
6
|
+
});
|
|
7
|
+
exports.useListEffects = void 0;
|
|
8
|
+
var _toConsumableArray2 = _interopRequireDefault(require("@babel/runtime/helpers/toConsumableArray"));
|
|
9
|
+
var _react = require("react");
|
|
10
|
+
var _constants = require("../utils/constants");
|
|
11
|
+
var _listHelpers = require("../utils/list-helpers");
|
|
12
|
+
var useListEffects = exports.useListEffects = function useListEffects(props) {
|
|
13
|
+
var name = props.name,
|
|
14
|
+
navigation = props.navigation,
|
|
15
|
+
datasource = props.datasource,
|
|
16
|
+
safeDataset = props.safeDataset,
|
|
17
|
+
items = props.items,
|
|
18
|
+
orderedDataset = props.orderedDataset,
|
|
19
|
+
groupedData = props.groupedData,
|
|
20
|
+
groupby = props.groupby,
|
|
21
|
+
orderby = props.orderby,
|
|
22
|
+
selectfirstitem = props.selectfirstitem,
|
|
23
|
+
statehandler = props.statehandler,
|
|
24
|
+
accumulatedData = props.accumulatedData,
|
|
25
|
+
lastLoadedPage = props.lastLoadedPage,
|
|
26
|
+
isFirstLoad = props.isFirstLoad,
|
|
27
|
+
onDemandCurrentPage = props.onDemandCurrentPage,
|
|
28
|
+
hasBeenReordered = props.hasBeenReordered,
|
|
29
|
+
initialRender = props.initialRender,
|
|
30
|
+
initialPage = props.initialPage,
|
|
31
|
+
initialPageSize = props.initialPageSize,
|
|
32
|
+
initialSelectedItems = props.initialSelectedItems,
|
|
33
|
+
initialActualPageSize = props.initialActualPageSize,
|
|
34
|
+
setAccumulatedData = props.setAccumulatedData,
|
|
35
|
+
setLastLoadedPage = props.setLastLoadedPage,
|
|
36
|
+
setIsFirstLoad = props.setIsFirstLoad,
|
|
37
|
+
setOnDemandCurrentPage = props.setOnDemandCurrentPage,
|
|
38
|
+
setinitialRender = props.setinitialRender,
|
|
39
|
+
listState = props.listState,
|
|
40
|
+
paginationState = props.paginationState,
|
|
41
|
+
widgetMethods = props.widgetMethods,
|
|
42
|
+
onSelect = props.onSelect,
|
|
43
|
+
widgetInstance = props.widgetInstance,
|
|
44
|
+
listener = props.listener,
|
|
45
|
+
userInitiatedSelectionRef = props.userInitiatedSelectionRef,
|
|
46
|
+
restoredPageNumber = props.restoredPageNumber,
|
|
47
|
+
setRestoredPageNumber = props.setRestoredPageNumber,
|
|
48
|
+
showNavigation = props.showNavigation,
|
|
49
|
+
stateManager = props.stateManager;
|
|
50
|
+
|
|
51
|
+
// Track page size changes
|
|
52
|
+
var _useState = (0, _react.useState)(paginationState.currentPageSize),
|
|
53
|
+
lastPageSize = _useState[0],
|
|
54
|
+
setLastPageSize = _useState[1];
|
|
55
|
+
|
|
56
|
+
// Effect 1: Accumulate data for On-Demand navigation
|
|
57
|
+
(0, _react.useEffect)(function () {
|
|
58
|
+
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND && datasource && safeDataset.length > 0) {
|
|
59
|
+
var _datasource$paginatio, _datasource$paginatio2;
|
|
60
|
+
// Get the current page from pagination metadata (0-indexed: 0 = page 1)
|
|
61
|
+
var currentPageFromMeta = (_datasource$paginatio = (_datasource$paginatio2 = datasource.pagination) === null || _datasource$paginatio2 === void 0 ? void 0 : _datasource$paginatio2.number) !== null && _datasource$paginatio !== void 0 ? _datasource$paginatio : 0;
|
|
62
|
+
if (isFirstLoad) {
|
|
63
|
+
// Initial load - just set the data
|
|
64
|
+
setAccumulatedData(safeDataset);
|
|
65
|
+
setLastLoadedPage(currentPageFromMeta);
|
|
66
|
+
setIsFirstLoad(false);
|
|
67
|
+
// Sync the onDemandCurrentPage with the actual loaded page
|
|
68
|
+
if (currentPageFromMeta !== onDemandCurrentPage) {
|
|
69
|
+
setOnDemandCurrentPage(currentPageFromMeta);
|
|
70
|
+
}
|
|
71
|
+
} else if (currentPageFromMeta > lastLoadedPage) {
|
|
72
|
+
// This is a new page - append the data
|
|
73
|
+
setAccumulatedData(function (prev) {
|
|
74
|
+
return [].concat((0, _toConsumableArray2["default"])(prev), (0, _toConsumableArray2["default"])(safeDataset));
|
|
75
|
+
});
|
|
76
|
+
setLastLoadedPage(currentPageFromMeta);
|
|
77
|
+
} else if (currentPageFromMeta === 0 && lastLoadedPage > 0) {
|
|
78
|
+
// Data was reset (e.g., filter changed), start fresh
|
|
79
|
+
setAccumulatedData(safeDataset);
|
|
80
|
+
setLastLoadedPage(0);
|
|
81
|
+
setIsFirstLoad(false);
|
|
82
|
+
setOnDemandCurrentPage(0);
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
}, [navigation, datasource, safeDataset, isFirstLoad, lastLoadedPage, onDemandCurrentPage, accumulatedData.length]);
|
|
86
|
+
|
|
87
|
+
// Effect 2: Reset accumulated data when orderby changes
|
|
88
|
+
(0, _react.useEffect)(function () {
|
|
89
|
+
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND && datasource) {
|
|
90
|
+
// Reset accumulated data when query parameters change
|
|
91
|
+
setAccumulatedData([]);
|
|
92
|
+
setLastLoadedPage(-1);
|
|
93
|
+
setIsFirstLoad(true);
|
|
94
|
+
setOnDemandCurrentPage(0); // Reset to page 0 (0-indexed)
|
|
95
|
+
}
|
|
96
|
+
}, [orderby]); // Reset when sorting changes
|
|
97
|
+
|
|
98
|
+
// Effect 3: Expose methods through widget instance
|
|
99
|
+
(0, _react.useEffect)(function () {
|
|
100
|
+
if (listener !== null && listener !== void 0 && listener.onChange) {
|
|
101
|
+
listener.onChange(name, {
|
|
102
|
+
selectItem: widgetMethods.selectItem,
|
|
103
|
+
deselectItem: widgetMethods.deselectItem,
|
|
104
|
+
getItem: widgetMethods.getItem,
|
|
105
|
+
getIndex: widgetMethods.getIndex,
|
|
106
|
+
clear: widgetMethods.clear,
|
|
107
|
+
getWidgets: widgetMethods.getWidgets,
|
|
108
|
+
showNavigation: showNavigation,
|
|
109
|
+
selecteditem: listState.selectedItems[0]
|
|
110
|
+
});
|
|
111
|
+
}
|
|
112
|
+
}, [widgetMethods.selectItem, widgetMethods.deselectItem, widgetMethods.getItem, widgetMethods.getIndex, widgetMethods.clear, widgetMethods.getWidgets, listState.selectedItems, listState.activeItems]);
|
|
113
|
+
|
|
114
|
+
// Effect 3b: Update selected item widgets for state restoration (not selectfirstitem)
|
|
115
|
+
var hasInitialWidgetUpdateRun = (0, _react.useRef)(false);
|
|
116
|
+
(0, _react.useEffect)(function () {
|
|
117
|
+
// Only run once on initial load when there are selected items from state restoration
|
|
118
|
+
// Skip if selectfirstitem is true (handled in useListState)
|
|
119
|
+
if (hasInitialWidgetUpdateRun.current || !(listener !== null && listener !== void 0 && listener.onChange) || listState.selectedItems.length === 0 || initialRender || selectfirstitem) {
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
|
|
123
|
+
// Mark as run
|
|
124
|
+
hasInitialWidgetUpdateRun.current = true;
|
|
125
|
+
|
|
126
|
+
// Use double RAF to ensure DOM is fully updated
|
|
127
|
+
requestAnimationFrame(function () {
|
|
128
|
+
(0, _listHelpers.getSelectedItemWidgets)(null, listener, name);
|
|
129
|
+
});
|
|
130
|
+
}, [name, listState.selectedItems.length, initialRender, selectfirstitem]);
|
|
131
|
+
|
|
132
|
+
// Effect 4: Handle widgetInstance.selecteditem
|
|
133
|
+
(0, _react.useEffect)(function () {
|
|
134
|
+
if ((widgetInstance === null || widgetInstance === void 0 ? void 0 : widgetInstance.selecteditem) != undefined) {
|
|
135
|
+
widgetMethods.selectItem(widgetInstance.selecteditem);
|
|
136
|
+
}
|
|
137
|
+
}, [widgetInstance === null || widgetInstance === void 0 ? void 0 : widgetInstance.selecteditem]);
|
|
138
|
+
|
|
139
|
+
// Effect 5: Handle selectfirstitem with onSelect
|
|
140
|
+
(0, _react.useEffect)(function () {
|
|
141
|
+
if (selectfirstitem && widgetInstance && onSelect && listState.selectedItems.length > 0) {
|
|
142
|
+
// Only trigger onSelect for selectfirstitem if it's the initial selection and not user-initiated
|
|
143
|
+
if (listState.selectedItems.length === 1 && items.length > 0 && listState.selectedItems[0] === items[0]) {
|
|
144
|
+
if (!userInitiatedSelectionRef.current) {
|
|
145
|
+
onSelect(widgetInstance, listState.selectedItems[0]); // Pass the first selected item
|
|
146
|
+
}
|
|
147
|
+
}
|
|
148
|
+
}
|
|
149
|
+
}, [selectfirstitem, listState.selectedItems]);
|
|
150
|
+
|
|
151
|
+
// Effect 6: Handle selectfirstitem for grouped data
|
|
152
|
+
(0, _react.useEffect)(function () {
|
|
153
|
+
if (selectfirstitem && groupby && groupedData && groupedData.length > 0) {
|
|
154
|
+
var firstGroup = groupedData[0];
|
|
155
|
+
if (firstGroup && firstGroup.data && firstGroup.data.length > 0) {
|
|
156
|
+
var firstItemInGroup = firstGroup.data[0];
|
|
157
|
+
var setFirstItem = function setFirstItem() {
|
|
158
|
+
listState.setSelectedItems([firstItemInGroup]);
|
|
159
|
+
listState.setActiveItems(new Set([firstItemInGroup]));
|
|
160
|
+
listState.setFirstSelectedItem(firstItemInGroup);
|
|
161
|
+
// Trigger onSelect for the initial selection of first item in grouped data only if not user-initiated
|
|
162
|
+
if (onSelect && widgetInstance && !userInitiatedSelectionRef.current) {
|
|
163
|
+
onSelect(widgetInstance, firstItemInGroup); // Pass the first item in group
|
|
164
|
+
}
|
|
165
|
+
};
|
|
166
|
+
|
|
167
|
+
// Check if the currently selected first item is different from the grouped first item
|
|
168
|
+
if (listState.selectedItems.length && listState.selectedItems[0] !== firstItemInGroup) {
|
|
169
|
+
setFirstItem();
|
|
170
|
+
} else if (listState.selectedItems.length === 0) {
|
|
171
|
+
setFirstItem();
|
|
172
|
+
}
|
|
173
|
+
}
|
|
174
|
+
}
|
|
175
|
+
}, [groupby, groupedData, selectfirstitem, listState]);
|
|
176
|
+
|
|
177
|
+
// Effect 7: Reset user-initiated flag after selectedItems change
|
|
178
|
+
(0, _react.useEffect)(function () {
|
|
179
|
+
var timer = setTimeout(function () {
|
|
180
|
+
userInitiatedSelectionRef.current = false;
|
|
181
|
+
}, 0);
|
|
182
|
+
return function () {
|
|
183
|
+
return clearTimeout(timer);
|
|
184
|
+
};
|
|
185
|
+
}, [listState.selectedItems]);
|
|
186
|
+
|
|
187
|
+
// Effect 8: Load persisted state when items are available
|
|
188
|
+
(0, _react.useEffect)(function () {
|
|
189
|
+
// Only run this effect once when items become available
|
|
190
|
+
if (items.length > 0 && initialRender) {
|
|
191
|
+
// Restore selected items from our parsed initial state
|
|
192
|
+
if (initialSelectedItems.length > 0) {
|
|
193
|
+
// Map indexes to actual items
|
|
194
|
+
var selectedItems = initialSelectedItems.map(function (idx) {
|
|
195
|
+
return idx >= 0 && idx < items.length ? items[idx] : null;
|
|
196
|
+
}).filter(Boolean);
|
|
197
|
+
if (selectedItems.length > 0) {
|
|
198
|
+
listState.setSelectedItems(selectedItems);
|
|
199
|
+
listState.setActiveItems(new Set(selectedItems));
|
|
200
|
+
listState.setFirstSelectedItem(selectedItems[0]);
|
|
201
|
+
}
|
|
202
|
+
}
|
|
203
|
+
|
|
204
|
+
// For on-demand navigation, update visible items to show items up to the restored page
|
|
205
|
+
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND && initialPage > 1) {
|
|
206
|
+
paginationState.setVisibleItems(initialPage * paginationState.currentPageSize);
|
|
207
|
+
}
|
|
208
|
+
|
|
209
|
+
// Mark initialization as complete
|
|
210
|
+
setinitialRender(false);
|
|
211
|
+
}
|
|
212
|
+
}, [items, initialRender, initialPage, initialSelectedItems, paginationState.currentPageSize, paginationState.setVisibleItems, paginationState.setCurrentPage, navigation, datasource, listState.setSelectedItems, listState.setActiveItems, listState.setFirstSelectedItem]);
|
|
213
|
+
|
|
214
|
+
// Effect 9: Clear persisted state when items are reordered
|
|
215
|
+
(0, _react.useEffect)(function () {
|
|
216
|
+
// Skip state clearing for On-Demand navigation
|
|
217
|
+
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND) {
|
|
218
|
+
return;
|
|
219
|
+
}
|
|
220
|
+
if (hasBeenReordered) {
|
|
221
|
+
// Clear the persisted state
|
|
222
|
+
(0, _listHelpers.clearListState)(name, statehandler);
|
|
223
|
+
}
|
|
224
|
+
}, [hasBeenReordered, navigation]);
|
|
225
|
+
|
|
226
|
+
// Effect 10: Restore selections when page size changes
|
|
227
|
+
(0, _react.useEffect)(function () {
|
|
228
|
+
// Skip for On-Demand navigation
|
|
229
|
+
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND) {
|
|
230
|
+
return;
|
|
231
|
+
}
|
|
232
|
+
|
|
233
|
+
// Check if page size has changed and we have items
|
|
234
|
+
var pageSizeChanged = lastPageSize !== paginationState.currentPageSize;
|
|
235
|
+
if (pageSizeChanged && items.length > 0 && statehandler) {
|
|
236
|
+
var savedState = (0, _listHelpers.getListState)(name, statehandler);
|
|
237
|
+
if (savedState !== null && savedState !== void 0 && savedState.selectedItem && savedState.selectedItem.length > 0) {
|
|
238
|
+
// Filter selections for the current page (should be page 1 after size change)
|
|
239
|
+
var currentPageSelections = savedState.selectedItem.filter(function (item) {
|
|
240
|
+
return item.page === paginationState.currentPage;
|
|
241
|
+
}).map(function (item) {
|
|
242
|
+
return item.index;
|
|
243
|
+
});
|
|
244
|
+
|
|
245
|
+
// Map indexes to actual items
|
|
246
|
+
var selectedItems = currentPageSelections.map(function (idx) {
|
|
247
|
+
return idx >= 0 && idx < items.length ? items[idx] : null;
|
|
248
|
+
}).filter(Boolean);
|
|
249
|
+
if (selectedItems.length > 0) {
|
|
250
|
+
listState.setSelectedItems(selectedItems);
|
|
251
|
+
listState.setActiveItems(new Set(selectedItems));
|
|
252
|
+
listState.setFirstSelectedItem(selectedItems[0]);
|
|
253
|
+
}
|
|
254
|
+
}
|
|
255
|
+
setLastPageSize(paginationState.currentPageSize);
|
|
256
|
+
}
|
|
257
|
+
}, [items, paginationState.currentPageSize, paginationState.currentPage, lastPageSize, navigation, statehandler, name, listState]);
|
|
258
|
+
|
|
259
|
+
// Effect 11: Persist state on changes
|
|
260
|
+
(0, _react.useEffect)(function () {
|
|
261
|
+
// Skip state persistence for On-Demand navigation
|
|
262
|
+
if (navigation === _constants.LIST_NAVIGATION_TYPES.ON_DEMAND) {
|
|
263
|
+
return;
|
|
264
|
+
}
|
|
265
|
+
|
|
266
|
+
// Check if we're in default state
|
|
267
|
+
if (items.length > 0 && !hasBeenReordered && !stateManager.isDefaultState()) {
|
|
268
|
+
// Get existing persisted state
|
|
269
|
+
var existingState = (0, _listHelpers.getListState)(name, statehandler);
|
|
270
|
+
|
|
271
|
+
// Merge current state with existing state
|
|
272
|
+
var stateToSave = stateManager.mergeWithExisting(stateManager.currentState, existingState);
|
|
273
|
+
|
|
274
|
+
// Save the state
|
|
275
|
+
(0, _listHelpers.saveListState)(name, statehandler, stateToSave);
|
|
276
|
+
}
|
|
277
|
+
}, [listState.selectedItems, paginationState.currentPage, items, name, navigation, hasBeenReordered, statehandler]);
|
|
278
|
+
(0, _react.useEffect)(function () {
|
|
279
|
+
if (restoredPageNumber !== null && paginationState) {
|
|
280
|
+
paginationState.setCurrentPage(restoredPageNumber);
|
|
281
|
+
// Clear the restored page number after applying
|
|
282
|
+
setRestoredPageNumber(null);
|
|
283
|
+
}
|
|
284
|
+
}, [restoredPageNumber, paginationState]);
|
|
285
|
+
};
|