ng-table-virtual-scroll
Version:
Virtual scroll for for Angular Material Table
38 lines (37 loc) • 1.62 kB
TypeScript
import { BehaviorSubject, Subject, Subscription } from 'rxjs';
import { MatTableDataSource } from '@angular/material/table';
import { DataSource } from '@angular/cdk/collections';
export interface TVSDataSource<T> {
dataToRender$: Subject<T[]>;
dataOfRange$: Subject<T[]>;
}
export declare function isTVSDataSource<T>(dataSource: unknown): dataSource is TVSDataSource<T>;
export declare class CdkTableVirtualScrollDataSource<T> extends DataSource<T> implements TVSDataSource<T> {
/** Stream that emits when a new data array is set on the data source. */
private readonly _data;
/** Stream emitting render data to the table (depends on ordered data changes). */
private readonly _renderData;
/**
* Subscription to the changes that should trigger an update to the table's rendered rows, such
* as filtering, sorting, pagination, or base data changes.
*/
_renderChangesSubscription: Subscription | null;
/** Array of data that should be rendered by the table, where each object represents one row. */
get data(): T[];
set data(data: T[]);
dataToRender$: Subject<T[]>;
dataOfRange$: Subject<T[]>;
private streamsReady;
constructor(initialData?: T[]);
_updateChangeSubscription(): void;
connect(): BehaviorSubject<T[]>;
disconnect(): void;
private initStreams;
}
export declare class TableVirtualScrollDataSource<T> extends MatTableDataSource<T> implements TVSDataSource<T> {
dataToRender$: Subject<T[]>;
dataOfRange$: Subject<T[]>;
private streamsReady;
_updateChangeSubscription(): void;
private initStreams;
}