dynamic-mat-table
Version:
dynamic-mat-table is an Angular component for presenting large and complex data with a lightning fast performance (at least 10x faster) and excellent level of control over the presentation.
40 lines (39 loc) • 1.52 kB
TypeScript
import { OnDestroy } from '@angular/core';
import { BehaviorSubject, Subject } from 'rxjs';
import { CdkVirtualScrollViewport, VirtualScrollStrategy } from '@angular/cdk/scrolling';
import { ListRange } from '@angular/cdk/collections';
export interface TSVStrategyConfigs {
rowHeight: number;
headerHeight: number;
footerHeight: number;
bufferMultiplier: number;
}
export declare type TableScrollStrategy = 'fixed-size' | 'none' | null;
export declare class FixedSizeTableVirtualScrollStrategy implements VirtualScrollStrategy, OnDestroy {
private eventsSubscription;
private length;
private rowHeight;
private headerHeight;
private footerHeight;
private bufferMultiplier;
private indexChange;
stickyChange: Subject<number>;
scrollStrategyMode: TableScrollStrategy;
viewport: CdkVirtualScrollViewport;
renderedRangeStream: BehaviorSubject<ListRange>;
offsetChange: BehaviorSubject<number>;
scrolledIndexChange: import("rxjs").Observable<number>;
get dataLength(): number;
set dataLength(value: number);
ngOnDestroy(): void;
attach(viewport: CdkVirtualScrollViewport): void;
detach(): void;
onContentScrolled(): void;
onDataLengthChanged(): void;
onContentRendered(): void;
onRenderedOffsetChanged(): void;
scrollToIndex(index: number, behavior: ScrollBehavior): void;
setConfig(configs: TSVStrategyConfigs): void;
getViewportSize(): number;
private updateContent;
}