fox-block-builder
Version:
Maintainable code for loop slack-block-kit-like modal builder
27 lines (26 loc) • 803 B
TypeScript
export interface PaginatorStateManagerParams {
page: number;
perPage: number;
totalItems: number;
}
export interface PaginatorState extends PaginatorStateManagerParams {
totalPages: number;
offset: number;
}
export declare class PaginatorStateManager {
private readonly page;
private readonly perPage;
private readonly totalItems;
private readonly totalPages;
private readonly offset;
constructor(params: PaginatorStateManagerParams);
private static calculateState;
private static calculatePage;
getPage(): number;
getTotalPages(): number;
getTotalItems(): number;
getStateByPage(page: number): PaginatorState;
getNextPageState(): PaginatorState;
getPreviousPageState(): PaginatorState;
extractItems<T>(items: T[]): T[];
}