import { SourceItemType, VirtualScrollPositionConfig } from './types'; import { GlobalSlimmers } from '../../vega-slimmer/vega-slimmer-core'; import { VegaVirtualScrollPositionController } from './slimmers/controllers/vega-virtual-scroll-position-controller'; import { VegaVirtualScrollScrollableController } from './slimmers/controllers/vega-virtual-scroll-scrollable-controller'; import { VegaVirtualScrollRenderer } from './slimmers/renderers/vega-virtual-scroll-renderer'; import { VegaVirtualScrollModeController } from './slimmers/controllers/vega-virtual-scroll-mode-controller'; import { VegaVirtualScrollLoadingIndicatorRenderer } from './slimmers/renderers/vega-virtual-scroll-loading-indicator-renderer'; import { VegaComponentUsageRuntimeMetricsSlimmer } from '../../helpers/slimmers/component-usage-runtime-metrics'; /** * @vegaVersion 1.13.0 */ export declare class VegaVirtualScroll { protected readonly globalSlimmers: GlobalSlimmers; protected readonly modeController: VegaVirtualScrollModeController; protected readonly positionController: VegaVirtualScrollPositionController; protected readonly scrollableController: VegaVirtualScrollScrollableController; protected readonly renderer: VegaVirtualScrollRenderer; protected readonly loadingRenderer: VegaVirtualScrollLoadingIndicatorRenderer; protected vegaComponentUsageRuntimeMetricsSlimmer: VegaComponentUsageRuntimeMetricsSlimmer; /** current active element */ host: HTMLVegaVirtualScrollElement; positionConfig: VirtualScrollPositionConfig; scrollTop: number; watchScrollTop(): void; /** The all items of source * * @vegaVersion 1.13.0 */ source: SourceItemType[]; watchSourceChange(newValue: SourceItemType[], oldValue: SourceItemType[]): void; /** The approximate height of each item * * @vegaVersion 1.13.0 */ approxItemHeight: number; watchApproxItemHeight(): void; /** The max height of viewport * * @vegaVersion 1.13.0 */ viewportMaxHeight: number; watchViewportMaxHeight(): void; /** * Determines whether the dropdown displays a loading status. * * @vegaVersion 2.3.0 */ isLoading: boolean; /** * The count of the source that will be used as the threshold for determining whether to use virtual scrolling. * If the count of source exceeds this threshold, we employ virtual scrolling. Otherwise, normal item rendering is used * If the value is 0, it means we will disable the virtualization all the time. * * @vegaVersion 2.3.0 */ virtualizationThreshold: number; watchVirtualizationThreshold(): void; /** We set this key to check the source is really change and should refresh virtual scroll * * @vegaVersion 1.26.0 */ sourceItemIdentifier: string; /** * The method of render item. * You should bind to the host component then you can set the css and event of item on the host component. * example: . * You should watch the fixHeight, if it have value, you should set {height: `${fixHeight}px`, boxSizing: 'border-box', overflow: 'hidden'} to you item, * otherwise, you can do nothing. * * @vegaVersion 1.13.0 */ renderItem: (item: SourceItemType, index?: number, fixHeight?: number) => HTMLElement; /** * Scroll to the index of the item in the list by setting the scrollTop property of the virtual scroll * container to the index of the item multiplied by the approximate height of each item in the list. * * @vegaVersion 1.13.0 */ scrollToIndex(index: number): Promise; render(): VegaVirtualScroll; }