abt-universal-search
Version:
Enterprise-grade Universal Search System with cross-platform compatibility, performance optimization, and security hardening
60 lines • 2.33 kB
TypeScript
import { IVirtualScrollManager, VirtualScrollConfig, ViewportInfo, VisibleRange, VirtualScrollEvents, DynamicHeightConfig, SmoothScrollConfig, VirtualScrollPerformance, ItemAlignment } from '../types/Virtualization';
export declare class VirtualScrollManager<T = any> implements IVirtualScrollManager<T> {
private items;
private config;
private dynamicHeightConfig;
private smoothScrollConfig;
private events;
private scrollElement;
private containerElement;
private scrollState;
private visibleRange;
private heightCache;
private offsetCache;
private isScrolling;
private scrollTimeout;
private animationFrameId;
private resizeObserver;
private intersectionObserver;
private performance;
private lastFrameTime;
private frameCount;
private renderStartTime;
constructor(config?: Partial<VirtualScrollConfig>, events?: VirtualScrollEvents<T>, dynamicHeightConfig?: Partial<DynamicHeightConfig>, smoothScrollConfig?: Partial<SmoothScrollConfig>);
private initializeObservers;
setItems(items: T[]): void;
scrollTo(index: number, align?: ItemAlignment): void;
scrollToOffset(offset: number): void;
private smoothScrollTo;
private applyEasing;
private calculateScrollTop;
getVisibleRange(): VisibleRange;
updateViewport(viewport: ViewportInfo): void;
private determineScrollDirection;
private calculateScrollVelocity;
private updateVisibleRange;
private findItemIndex;
getItemOffset(index: number): number;
getItemHeight(index: number): number;
private getEstimatedItemHeight;
getTotalHeight(): number;
resetCache(): void;
getScrollElement(): HTMLElement | null;
isItemVisible(index: number): boolean;
setScrollElement(element: HTMLElement): void;
setContainerElement(element: HTMLElement): void;
private addScrollListeners;
private removeScrollListeners;
private handleScroll;
private handleScrollStart;
private handleScrollEnd;
private startScrolling;
private stopScrolling;
private handleResize;
private handleItemVisible;
private measureItemHeight;
private updatePerformanceMetrics;
getPerformanceMetrics(): VirtualScrollPerformance;
dispose(): void;
}
//# sourceMappingURL=VirtualScrollManager.d.ts.map