@@ -35,6 +43,7 @@ export const WidgetFooter = observer(function WidgetFooter(): ReactElement {
+
{customPagination.get()}
diff --git a/packages/pluggableWidgets/datagrid-web/src/features/pagination/pagination.config.ts b/packages/pluggableWidgets/datagrid-web/src/features/pagination/pagination.config.ts
index 0bafe6aac6..3c3aaaa3f7 100644
--- a/packages/pluggableWidgets/datagrid-web/src/features/pagination/pagination.config.ts
+++ b/packages/pluggableWidgets/datagrid-web/src/features/pagination/pagination.config.ts
@@ -10,6 +10,7 @@ export interface PaginationConfig {
isLimitBased: boolean;
dynamicPageSizeEnabled: boolean;
dynamicPageEnabled: boolean;
+ customPaginationEnabled: boolean;
}
export type PaginationKind = `${PaginationEnum}.${ShowPagingButtonsEnum}` | "custom";
@@ -23,7 +24,8 @@ export function paginationConfig(props: MainGateProps): PaginationConfig {
isLimitBased: isLimitBased(props),
paginationKind: paginationKind(props),
dynamicPageSizeEnabled: dynamicPageSizeEnabled(props),
- dynamicPageEnabled: dynamicPageEnabled(props)
+ dynamicPageEnabled: dynamicPageEnabled(props),
+ customPaginationEnabled: props.useCustomPagination
};
return Object.freeze(config);
diff --git a/packages/pluggableWidgets/datagrid-web/src/model/containers/Datagrid.container.ts b/packages/pluggableWidgets/datagrid-web/src/model/containers/Datagrid.container.ts
index dd9db07605..963b61824b 100644
--- a/packages/pluggableWidgets/datagrid-web/src/model/containers/Datagrid.container.ts
+++ b/packages/pluggableWidgets/datagrid-web/src/model/containers/Datagrid.container.ts
@@ -25,7 +25,7 @@ import { EmptyPlaceholderViewModel } from "../../features/empty-message/EmptyPla
import { DynamicPaginationFeature } from "../../features/pagination/DynamicPagination.feature";
import { PageControlService } from "../../features/pagination/PageControl.service";
import { paginationConfig } from "../../features/pagination/pagination.config";
-import { dynamicPageAtom, dynamicPageSizeAtom } from "../../features/pagination/pagination.model";
+import { customPaginationAtom, dynamicPageAtom, dynamicPageSizeAtom } from "../../features/pagination/pagination.model";
import { PaginationViewModel } from "../../features/pagination/Pagination.viewModel";
import { createCellEventsController } from "../../features/row-interaction/CellEventsController";
import { creteCheckboxEventsController } from "../../features/row-interaction/CheckboxEventsController";
@@ -66,6 +66,7 @@ injected(
CORE.atoms.totalCount,
DG.pageControl
);
+injected(customPaginationAtom, CORE.mainGate);
// loader
injected(DerivedLoaderController, DG.query, DG.exportProgressService, CORE.columnsStore, DG.loaderConfig);
@@ -137,6 +138,7 @@ export class DatagridContainer extends Container {
/** Pagination **/
this.bind(DG.currentPage).toInstance(currentPageAtom).inTransientScope();
+ this.bind(DG.customPagination).toInstance(customPaginationAtom).inTransientScope();
this.bind(DG.dynamicPage).toInstance(dynamicPageAtom).inTransientScope();
this.bind(DG.dynamicPageSize).toInstance(dynamicPageSizeAtom).inTransientScope();
this.bind(DG.dynamicPagination).toInstance(DynamicPaginationFeature).inSingletonScope();
diff --git a/packages/pluggableWidgets/datagrid-web/src/model/hooks/injection-hooks.ts b/packages/pluggableWidgets/datagrid-web/src/model/hooks/injection-hooks.ts
index 78688c4c48..0886f8c1f6 100644
--- a/packages/pluggableWidgets/datagrid-web/src/model/hooks/injection-hooks.ts
+++ b/packages/pluggableWidgets/datagrid-web/src/model/hooks/injection-hooks.ts
@@ -24,3 +24,5 @@ export const [useClickActionHelper] = createInjectionHooks(DG.clickActionHelper)
export const [useFocusService] = createInjectionHooks(DG.focusService);
export const [useCheckboxEventsHandler] = createInjectionHooks(DG.checkboxEventsHandler);
export const [useCellEventsHandler] = createInjectionHooks(DG.cellEventsHandler);
+export const [useCustomPagination] = createInjectionHooks(DG.customPagination);
+export const [usePaginationConfig] = createInjectionHooks(DG.paginationConfig);
diff --git a/packages/pluggableWidgets/datagrid-web/src/model/tokens.ts b/packages/pluggableWidgets/datagrid-web/src/model/tokens.ts
index 0c71d1ada7..9b1f61e366 100644
--- a/packages/pluggableWidgets/datagrid-web/src/model/tokens.ts
+++ b/packages/pluggableWidgets/datagrid-web/src/model/tokens.ts
@@ -105,6 +105,7 @@ export const DG_TOKENS = {
loaderVM: token