@bouzu/vue-virtualizer
Version:
[![npm version][npm-version-src]][npm-version-href] [![npm downloads][npm-downloads-src]][npm-downloads-href] [![bundle][bundle-src]][bundle-href] [![JSDocs][jsdocs-src]][jsdocs-href]
43 lines (38 loc) • 2.12 kB
TypeScript
import { Ref, MaybeRef as MaybeRef$1 } from 'vue-demi';
import { Virtualizer as Virtualizer$1, View, Layouts, CreateListLayoutsOptions } from '@bouzu/virtualizer';
import { CreateVirtualizerProps } from '@bouzu/virtualizer-dom';
import { Rect, Size } from '@bouzu/shared';
import { MaybeRef } from '@vueuse/core';
interface VirtualizerContext<T extends object> {
state: Virtualizer$1<T>;
}
interface Virtualizer<T extends object> {
context: VirtualizerContext<T>;
visibleViews: Readonly<Ref<View<T>[]>>;
visibleRect: Ref<Rect>;
contentSize: Readonly<Ref<Size>>;
isScrolling: Readonly<Ref<boolean>>;
collect: Virtualizer$1<T>['collect'];
}
interface UseVirtualizerProps<T extends object> {
el: MaybeRef<HTMLElement | null | undefined>;
data: MaybeRef<T[]>;
layouts: MaybeRef<Layouts<T>>;
overscanThrottle?: MaybeRef<CreateVirtualizerProps['overscanThrottle']>;
anchorScrollPosition?: MaybeRef<CreateVirtualizerProps['anchorScrollPosition']>;
}
declare function useVirtualizerContext<T extends object>(): VirtualizerContext<T>;
declare function useVirtualizer<T extends object>(props: UseVirtualizerProps<T>): Virtualizer<T>;
interface UseVirtualizerItemProps<T extends object> {
el: MaybeRef$1<HTMLElement | null | undefined>;
view: MaybeRef$1<View<T>>;
}
declare function useVirtualizerItem<T extends object>(props: UseVirtualizerItemProps<T>, context?: VirtualizerContext<T>): void;
type VirtualList<T extends object> = Virtualizer<T>;
type UseVirtualListProps<T extends object> = Omit<UseVirtualizerProps<T>, 'layouts'> & {
axis?: MaybeRef$1<CreateListLayoutsOptions['axis']>;
itemSize?: MaybeRef$1<CreateListLayoutsOptions['itemSize']>;
estimatedItemSize?: MaybeRef$1<CreateListLayoutsOptions['estimatedItemSize']>;
};
declare function useVirtualList<T extends object>(props: UseVirtualListProps<T>): VirtualList<T>;
export { type UseVirtualListProps, type UseVirtualizerItemProps, type UseVirtualizerProps, type VirtualList, type Virtualizer, type VirtualizerContext, useVirtualList, useVirtualizer, useVirtualizerContext, useVirtualizerItem };