UNPKG

yalento

Version:

An awesome integration of Google Firebase for Angular and Node

135 lines (134 loc) 2.71 kB
import { BehaviorSubject } from 'rxjs'; import { QuerySubject } from '../QuerySubject'; import { IEntity } from '../Repository'; export interface IQueryPaginatorDefaults { pageSizeOptions?: number[]; pageSize?: number; pageSort?: IPageEventSort; } export interface IPageEvent { /** The current page index. */ pageIndex?: number; /** The previous page size */ previousPageIndex?: number; /** The current page size */ pageSize?: number; /** The current total number of items being paged */ length?: number; } export interface IPageEventSort { active: string; direction: 'ASC' | 'DESC'; } export declare class QueryPaginator<T> { results: IEntity<T>[]; private results$; private length; private resultsAll; private pageSize; private pageIndex; private pageSizeOptions; private pageSort; private _querySubject; private _hasPageSizeChanges; private _selected; private _isSelectedAll$; private _isSelectedCount$; /** * * @param querySubject */ constructor(querySubject: QuerySubject<T>); /** * */ getSelected(): IEntity<T>[]; /** * get selected count */ getSelectedCount(): BehaviorSubject<number>; /** * * @param item */ toggleSelection(item?: IEntity<T>): void; /** * */ isSelected(item: IEntity<T> | any): boolean; /** * */ isSelectedAll(): BehaviorSubject<boolean>; /** * * @param pageEvent */ setPage(pageEvent: IPageEvent): Promise<boolean>; /** * * @param pageIndex */ setPageIndex(pageIndex: number): void; /** * * @param pageSort */ setPageSort(pageSort: IPageEventSort): void; /** * */ getPageSortProperty(): string; /** * */ getPageSortDirection(): string; /** * * @param pageSizeOptions */ setPageSizeOptions(pageSizeOptions: number[]): void; /** * * @param size * @param skipChangeDetection */ setPageSize(size: number, skipChangeDetection?: boolean): Promise<boolean>; getResults(): IEntity<T>[]; /** * */ getPageSize(): number; /** * */ getPageSizeOptions(): number[]; /** * */ getPageIndex(): number; /** * */ getLength(): number; /** * */ hasPageSizeChanges(): boolean; /** * * @param pageSize */ addPageSizeOption(pageSize: number): void; /** * * @param length */ private setLength; /** * * @param results */ private setResults; private countSelected; }