yalento
Version:
An awesome integration of Google Firebase for Angular and Node
135 lines (134 loc) • 2.71 kB
TypeScript
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;
}