UNPKG

rcx-virtual-list

Version:

Maximum performance for extremely large lists.<br/> Flexible, and actively maintained React library that excels with high-performance, feature-rich virtualized lists—including grouping, sticky headers, snapping, animations, and both scroll directions. Wh

61 lines (60 loc) • 2.24 kB
import { ScrollDirection } from "../models"; import { EventEmitter, TEventHandler } from "./eventEmitter"; export declare class CMap<K = string, V = any> { private _dict; constructor(dict?: CMap<K, V>); get(key: K): V; set(key: K, value: V): this; has(key: K): boolean; delete(key: K): void; clear(): void; } export interface ICacheMap<I = any, B = any> { set: (id: I, bounds: B) => CMap<I, B>; has: (id: I) => boolean; get: (id: I) => B | undefined; } export declare const CACHE_BOX_CHANGE_EVENT_NAME = "change"; type CacheMapEvents = typeof CACHE_BOX_CHANGE_EVENT_NAME; type OnChangeEventListener = (version: number) => void; type CacheMapListeners = OnChangeEventListener; /** * Cache map. * Emits a change event on each mutation. * @link https://github.com/DjonnyX/rcx-virtual-list/tree/main/src/lib/src/utils/cacheMap.ts * @author Evgenii Grebennikov * @email djonnyx@gmail.com */ export declare class CacheMap<I = string | number, B = any, E extends string = CacheMapEvents, L extends TEventHandler = CacheMapListeners> extends EventEmitter<E, L> implements ICacheMap { protected _map: CMap<I, B>; protected _snapshot: CMap<I, B>; protected _version: number; protected _previousVersion: number; protected _lifeCircleTimeout: any; protected _delta: number; get delta(): number; protected _deltaDirection: ScrollDirection; set deltaDirection(v: ScrollDirection); get deltaDirection(): ScrollDirection; private _scrollDirectionCache; private _scrollDirection; get scrollDirection(): ScrollDirection; get version(): number; private _clearScrollDirectionDebounce; constructor(); protected changesDetected(): boolean; protected stopLifeCircle(): void; protected nextTick(cb: () => void): any; protected lifeCircle(): void; protected lifeCircleDo(): void; clearScrollDirectionCache(): void; private calcScrollDirection; protected bumpVersion(): void; protected fireChangeIfNeed(): void; set(id: I, bounds: B): CMap<I, B>; has(id: I): boolean; get(id: I): B | undefined; snapshot(): void; dispose(): void; } export {};