@ag-grid-community/infinite-row-model
Version:
Advanced Data Grid / Data Table supporting Javascript / Typescript / React / Angular / Vue
48 lines (47 loc) • 1.8 kB
TypeScript
import type { BeanCollection, IDatasource, RowNode, RowNodeBlockLoader, RowRenderer, SortModelItem } from '@ag-grid-community/core';
import { BeanStub, NumberSequence } from '@ag-grid-community/core';
import { InfiniteBlock } from './infiniteBlock';
export interface InfiniteCacheParams {
datasource: IDatasource;
initialRowCount: number;
blockSize?: number;
overflowSize: number;
sortModel: SortModelItem[];
filterModel: any;
maxBlocksInCache?: number;
rowHeight: number;
lastAccessedSequence: NumberSequence;
rowNodeBlockLoader?: RowNodeBlockLoader;
dynamicRowHeight: boolean;
}
export declare class InfiniteCache extends BeanStub {
protected rowRenderer: RowRenderer;
private focusService;
wireBeans(beans: BeanCollection): void;
private readonly params;
private rowCount;
private lastRowIndexKnown;
private blocks;
private blockCount;
constructor(params: InfiniteCacheParams);
getRow(rowIndex: number, dontCreatePage?: boolean): RowNode | undefined;
private createBlock;
refreshCache(): void;
destroy(): void;
getRowCount(): number;
isLastRowIndexKnown(): boolean;
pageLoaded(block: InfiniteBlock, lastRow?: number): void;
private purgeBlocksIfNeeded;
private isBlockFocused;
private isBlockCurrentlyDisplayed;
private removeBlockFromCache;
private checkRowCount;
setRowCount(rowCount: number, lastRowIndexKnown?: boolean): void;
forEachNodeDeep(callback: (rowNode: RowNode, index: number) => void): void;
getBlocksInOrder(): InfiniteBlock[];
private destroyBlock;
private onCacheUpdated;
private destroyAllBlocksPastVirtualRowCount;
purgeCache(): void;
getRowNodesInRange(firstInRange: RowNode, lastInRange: RowNode): RowNode[];
}