import { Vue } from 'vue-property-decorator'; import { Item } from './types'; interface ContainerData { windowSize: ElementSize; windowScroll: ElementScroll; elementWindowOffset: number; elementSize: ElementSize; } interface ElementSize { width: number; height: number; } interface ElementScroll { x: number; y: number; } interface ConfigData
{ windowMargin: number; gridGap: number; columnCount: number; entries: Item
[]; } interface Cell
extends Item
{ columnNumber: number; rowNumber: number; offset: number; } interface LayoutData
{ totalHeight: number; cells: Cell
[]; } interface RenderData
{ cellsToRender: Cell
[]; firstRenderedRowNumber: number | null; firstRenderedRowOffset: number | null; } export default class VirtualGrid
extends Vue { items: Item
[];
updateFunction: () => Promise ;
get layoutData(): LayoutData ;
get renderData(): RenderData ;
mounted(): void;
beforeDestroy(): void;
onScrollElementChanged(scrollElement: HTMLElement | null, oldScrollElement: HTMLElement | null): void;
resize(): void;
scroll(): void;
initiliazeGrid(): void;
loadMoreData(): void;
loadMoreDataAsync(): Promise []): ConfigData ;
computeLayoutData(configData: ConfigData ): LayoutData ;
computeRenderData(configData: ConfigData , containerData: ContainerData, layoutData: LayoutData ): RenderData ;
getColumnWidth(columnCount: number | null, gridGap: number | null, elementWidth: number | null): number;
getGridRowStart(cell: Cell , renderData: RenderData | null): string;
resetGrid(): void;
isSameElementSize(a: ElementSize, b: ElementSize): boolean;
getWindowSize(): ElementSize;
getElementSize(element: Element): ElementSize;
isSameElementScroll(a: ElementScroll, b: ElementScroll): boolean;
getWindowScroll(): ElementScroll;
getElementOffset(element: Element): number;
}
export {};