UNPKG

vanilla-recycler-view

Version:

high performance UI rendering library for web browser

99 lines 2.68 kB
import '../modules/zoom-listener'; import { VirtualElement } from './'; export declare const DEFAULT_ITEM_SIZE = 50; /** * @deprecated */ export declare enum DIRECTION { VERTICAL = "vertical", HORIZONTAL = "horizontal" } export interface Reusable<T> { wrapperElement: HTMLElement; renderer: VanillaRecyclerViewRenderer<T>; } export interface SizeParams<T> { api: VanillaRecyclerView<T>; data: T; index: number; } export interface InitializeParams<T> { api: VanillaRecyclerView<T>; data: T; index: number; } export interface MountParams<T> { api: VanillaRecyclerView<T>; data: T; index: number; } export interface UnmountParams<T> { api: VanillaRecyclerView<T>; data: T; index: number; } export interface VanillaRecyclerViewRenderer<T> { initialize: (params: InitializeParams<T>) => void; getLayout: () => HTMLElement; getId?: () => string; getPosition?: () => string; onMount?: (params: MountParams<T>) => boolean; onUnmount?: (params: UnmountParams<T>) => void; } export interface RendererConstructor<T> { new (): VanillaRecyclerViewRenderer<T>; } export interface VanillaRecyclerViewOptions<T> { data: T[]; direction?: DIRECTION; preload?: number; /** * @deprecated */ size?: ((params: SizeParams<T>) => number) | number; renderer: RendererConstructor<T>; } export interface VanillaRecyclerViewAPI<T> { calculateSize: () => void; getMaxScrollSize: () => number; splice: (start: number, end?: number) => void; insert: (index: number, ...data: T[]) => void; push: (...items: T[]) => void; } export declare class VanillaRecyclerView<T> implements VanillaRecyclerViewAPI<T> { private root; _direction: DIRECTION; _preload: number; _size: ((params: SizeParams<T>) => number) | number; _renderer: RendererConstructor<T>; container: HTMLDivElement; virtualElements: VirtualElement<T>[]; mountedVirtualElements: VirtualElement<T>[]; pendingUnmount: VirtualElement<T>[]; reusables: Reusable<T>[]; constructor(root: HTMLDivElement, options: VanillaRecyclerViewOptions<T>); private onScroll; /** * parse size option * @param data */ private getSize; private createReusable; private getNextReusable; setData(data: T[]): void; calculateSize(): void; getMaxScrollSize(): number; /** * @deprecated */ splice(start: number, end?: number): void; /** * @deprecated */ insert(index: number, ...data: T[]): void; /** * @deprecated */ push(...items: T[]): void; } //# sourceMappingURL=recycler-view.d.ts.map