UNPKG

tablor-core

Version:

Core features for data tables, grids, and advanced search, pagination, and sorting in Angular.

106 lines (105 loc) 3.81 kB
import { Subject } from 'rxjs'; import { ImmutableAugmentedItem, ItemsAddedPayload, ItemsRemovedPayload, Item } from '../stores/items-store/interfaces'; import { NbOfItemsPerPageChangedPayload, NbOfTotalPagesChangedPayload, PageNbChangedPayload, PaginatedItemsChangedPayload } from './interfaces'; import { SearchedItemsChangedPayload } from '../searcher/searcher/interfaces'; import { SortingOptionsChangedPayload } from '../sorter/interfaces'; import { Searcher } from '../searcher/searcher/searcher'; /** * Handles pagination of items */ export declare class Paginator<T extends Item<T>> { protected readonly getSearchResults: Searcher<T>['getMutableItems']; protected readonly $itemsRemoved: Subject<ItemsRemovedPayload<T>>; protected readonly $itemsAdded: Subject<ItemsAddedPayload<T>>; protected readonly $searchedItemsChanged: Subject<SearchedItemsChangedPayload<T>>; protected readonly $sortingOptionsChanged: Subject<SortingOptionsChangedPayload<T>>; protected _paginatedItems: Readonly<ImmutableAugmentedItem<T>[]>; protected _pageNb: number; protected _nbOfItemsPerPage: number; protected _nbOfTotalPages: number; readonly $pageNbChanged: Subject<PageNbChangedPayload<T>>; readonly $nbOfItemsPerPageChanged: Subject<NbOfItemsPerPageChangedPayload<T>>; readonly $nbOfTotalPagesChanged: Subject<NbOfTotalPagesChangedPayload<T>>; readonly $paginatedItemsChanged: Subject<PaginatedItemsChangedPayload<T>>; constructor(getSearchResults: Searcher<T>['getMutableItems'], $itemsRemoved: Subject<ItemsRemovedPayload<T>>, $itemsAdded: Subject<ItemsAddedPayload<T>>, $searchedItemsChanged: Subject<SearchedItemsChangedPayload<T>>, $sortingOptionsChanged: Subject<SortingOptionsChangedPayload<T>>); /** * Returns the current page number */ getPageNb(): number; /** * Sets the current page number */ setPageNb(nb: number): void; /** * Returns the number of items per page */ getNbOfItemsPerPage(): number; /** * Sets the number of items per page */ setNbOfItemsPerPage(nb: number): void; /** * Returns the total number of pages */ getNbOfPages(): number; /** * Returns the current page index */ getPageIndex(): number; /** * Returns the total number of items */ getPageSize(): number; /** * Returns the current page items */ getItems(): Readonly<ImmutableAugmentedItem<T>[]>; /** * Updates the current page items */ protected updatePageItemsInternal(): void; /** * Updates the number of items per page */ protected updateItemsPerPage(nb: number): void; /** * Updates the current page number */ protected updatePageNb(nb: number): void; /** * Updates the number of total pages */ protected updateNbOfTotalPages(): void; /** * Updates the current page items */ protected handleItemsRemoved(): void; /** * Updates the current page items */ protected handleItemsAdded(): void; /** * Updates the current page items */ protected handleItemsSearched(): void; /** * Updates the current page items */ protected handleItemsSorted(): void; /** * Updates the current page items */ protected raiseNbOfItemsPerPageChanged(prevNbOfItemsPerPage: number): void; /** * Updates the current page items */ protected raiseNbOfTotalPagesChanged(prevNbOfTotalPages: number): void; /** * Updates the current page items */ protected raisePageNbChanged(prevPageNb: number): void; /** * Updates the current page items */ protected raisePaginatedItemsChanged(prevPaginatedItems: Readonly<ImmutableAugmentedItem<T>[]>): void; }