import { EventEmitter } from '@angular/core'; import { PaginateObject } from '../../models'; import { FilterableComponent } from '../filterable/filterable.component'; /** * This component can handle the paginator logic. * * @export * @abstract * @class PaginatableComponent * @extends {FilterableComponent} */ export declare abstract class PaginatableComponent extends FilterableComponent { /** * Default page index. * * @memberof ListComponent */ readonly defaultPageIndex = 1; /** * Default page size. * * @memberof ListComponent */ readonly defaultPageSize = 10; /** * Default total number of items. * * @memberof ListComponent */ readonly defaultTotal = 0; /** * This object stores the pagination datas: itemsPerPage, currentPage, totalItems. * * @type {PaginateObject} * @memberof ListComponent * @default new PaginateObject(10, 1, 0) */ paginateObject: PaginateObject; /** * Default datas. */ readonly smallPage = 5; readonly mediumPage = 10; readonly largePage = 25; readonly maximumPage = 50; /** * Page limits for the paginator. * * @memberof ListComponent * @default [5, 10, 25, 50] */ paginateLimits: number[]; /** * Event fires, when pagination changed. * * @protected * @type {EventEmitter} * @memberof PaginatableComponent */ protected paginationChanged: EventEmitter; /** * This function handles the chaning of the paginator. * * @protected * @param {number} page * @memberof ListComponent */ pageChange(page: number): void; /** * This function handles the chaning of the Material paginator. * * @protected * @param {{ pageIndex: number; pageSize: number; length: number }} event * @memberof ListComponent */ protected matPageChange(event: { pageIndex: number; pageSize: number; length: number; }): void; }