react-dynamic-virtual-tree
Version:
Library for visualizing nested lists with dynamically changing sizes.
32 lines (31 loc) • 1.23 kB
TypeScript
import { Listener } from "./listener";
import { Layer, ListItem } from "./index";
export type ItemCompareFunction = (item: ListItem) => boolean;
export type SliceItem = {
item: ListItem;
top: number;
compare: ItemCompareFunction;
};
export type MarkupItem = [number, ListItem, ItemCompareFunction];
export type VirtualTreeLayerItem = {
listItem: ListItem;
layer: Layer;
};
export type VirtualTreeLayer = Array<VirtualTreeLayerItem>;
export declare class VirtualTree extends Listener {
private markup;
private totalHeight;
private lastSlice;
private flatListItem;
getSlice(start: number, end: number): SliceItem[];
update(rootListItem: ListItem, id?: string): void;
getTotalHeight(): number;
onVirtualTree(callback: (result: [VirtualTreeLayerItem, () => void]) => void): void;
pushNewVirtualTree(result: [VirtualTreeLayerItem, () => void]): void;
onUpdate(callback: (id?: string) => void): () => void;
onReady(callback: () => void): () => void;
ready(): void;
onOffset(callback: (arr: [number, number]) => void): () => void;
pushOffset(slice: [number, number]): void;
getOffset(scrollTop: number, height: number, overScan?: number): [number, number];
}