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
TypeScript
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 {};