@tapsellorg/angular-material-library
Version:
Angular library for Tapsell
42 lines (41 loc) • 2.04 kB
TypeScript
import { DataSource } from '@angular/cdk/table';
import { BehaviorSubject, Observable, Subject } from 'rxjs';
import { CollectionViewer } from '@angular/cdk/collections';
import { PghLoader } from '@tapsellorg/angular-material-library/src/lib/loader';
import { MatPaginator } from '@angular/material/paginator';
import { MatSort } from '@angular/material/sort';
import { PghTableDataSourceLoadResponse, PghTableDataSourceParams } from './models';
import { PghFilterChipsComponent } from '@tapsellorg/angular-material-library/src/lib/filter-chips';
import { PghRefreshButtonComponent } from '@tapsellorg/angular-material-library/src/lib/refresh-button';
import { PghDateRangePickerComponent } from '@tapsellorg/angular-material-library/src/lib/date-range-picker';
export declare abstract class PghTableDatasource<T> extends DataSource<T> {
protected config: {
idField: keyof T;
};
readonly DEFAULT_PAGE_SIZE = 20;
protected _destroyed$: Subject<unknown>;
protected dataSubject: BehaviorSubject<T[]>;
private triggerLoadDataSubject;
private paginator?;
private sorter?;
private filterChipsComponent?;
private dateRangePickerComponent?;
private filterChipsFilterData?;
private dateRangePickerSelectedRange?;
private refreshButtonComponent?;
dataLength: number;
loader: PghLoader;
protected constructor(config: {
idField: keyof T;
});
connect(_collectionViewer: CollectionViewer): Observable<T[]>;
disconnect(_collectionViewer: CollectionViewer): void;
abstract loadData(data: PghTableDataSourceParams): Observable<PghTableDataSourceLoadResponse<T>>;
setPaginator(paginator: MatPaginator): void;
setSorter(sorter: MatSort): void;
setFilter(filterChipsComponent: PghFilterChipsComponent): void;
setDateFilter(dateRangePickerComponent: PghDateRangePickerComponent): void;
setRefresher(refreshButtonComponent: PghRefreshButtonComponent): void;
trackBy: (index: number, item: T) => T[keyof T];
triggerLoadData(): void;
}