UNPKG

vxe-pc-ui

Version:
204 lines (174 loc) 5.56 kB
import { RenderFunction, SetupContext, Ref } from 'vue' import { DefineVxeComponentApp, DefineVxeComponentOptions, DefineVxeComponentInstance, VxeComponentBaseOptions, VxeComponentEventParams, VxeComponentSizeType, ValueOf } from '@vxe-ui/core' /* eslint-disable no-use-before-define,@typescript-eslint/ban-types */ export declare const VxeList: DefineVxeComponentApp<VxeListProps, VxeListEventProps, VxeListSlots> export type VxeListComponent = DefineVxeComponentOptions<VxeListProps, VxeListEventProps> export type VxeListInstance = DefineVxeComponentInstance<VxeListProps, VxeListConstructor> export interface VxeListConstructor extends VxeComponentBaseOptions, VxeListMethods { props: VxeListProps context: SetupContext<VxeListEmits> reactData: ListReactData internalData: ListInternalData getRefMaps(): ListPrivateRef getComputeMaps(): ListPrivateComputed renderVN: RenderFunction } export interface ListPrivateRef { refElem: Ref<HTMLDivElement | undefined> } export interface VxeListPrivateRef extends ListPrivateRef { } export namespace VxeListPropTypes { export type Size = VxeComponentSizeType export type Data = any[] export type Height = number | string export type MaxHeight = number | string export type Loading = boolean export type AutoResize = boolean export type ClassName = string | ((params: { $list: VxeListConstructor }) => string) export type SyncResize = boolean | string | number export interface VirtualYConfig { /** * 指定大于指定行时自动启动纵向虚拟滚动,如果为 0 则总是启用,如果为 -1 则关闭 */ gt?: number /** * 指定每次渲染的数据偏移量,偏移量越大渲染次数就越少,但每次渲染耗时就越久 */ oSize?: number /** * 指定列表项的 className */ sItem?: string /** * 是否启用 */ enabled?: boolean } /** * 已被 VirtualYConfig 替换 * @deprecated */ export interface ScrollY { /** * 指定大于指定行时自动启动纵向虚拟滚动,如果为 0 则总是启用,如果为 -1 则关闭 */ gt?: number /** * 指定每次渲染的数据偏移量,偏移量越大渲染次数就越少,但每次渲染耗时就越久 */ oSize?: number /** * 指定列表项的 className */ sItem?: string /** * 是否启用 */ enabled?: boolean } } export interface VxeListProps<D = any> { size?: VxeListPropTypes.Size data?: D[] height?: VxeListPropTypes.Height maxHeight?: VxeListPropTypes.MaxHeight loading?: VxeListPropTypes.Loading autoResize?: VxeListPropTypes.AutoResize syncResize?: VxeListPropTypes.SyncResize className?: VxeListPropTypes.ClassName virtualYConfig?: VxeListPropTypes.VirtualYConfig /** * 已废弃,被 virtual-y-config 替换 * @deprecated */ scrollY?: VxeListPropTypes.ScrollY } export interface ListPrivateComputed { } export interface VxeListPrivateComputed extends ListPrivateComputed { } export interface ListReactData { scrollYLoad: boolean bodyHeight: number customHeight: number customMaxHeight: number parentHeight: number topSpaceHeight: number items: any[] } export interface ListInternalData { resizeObserver: ResizeObserver | undefined fullData: any[] lastScrollLeft: number lastScrollTop: number scrollYStore: { startIndex: number endIndex: number visibleSize: number offsetSize: number rowHeight: number } } export interface ListMethods { dispatchEvent(type: ValueOf<VxeListEmits>, params: Record<string, any>, evnt: Event | null): void /** * 加载数据 * @param data 列表数据 */ loadData(data: any[]): Promise<any> /** * 加载数据 * @param data 列表数据 */ reloadData(data: any[]): Promise<any> /** * 重新计算列表 */ recalculate(): Promise<void> /** * 如果有滚动条,则滚动到对应的位置 * @param scrollLeft 左边距离 * @param scrollTop 顶部距离 */ scrollTo(scrollLeft: number | null, scrollTop?: number | null): Promise<void> /** * 刷新滚动操作,手动同步滚动相关位置 */ refreshScroll(): Promise<void> /** * 手动清除滚动相关信息,还原到初始状态 */ clearScroll(): Promise<void> } export interface VxeListMethods extends ListMethods { } export interface ListPrivateMethods { } export interface VxeListPrivateMethods extends ListPrivateMethods { } export type VxeListEmits = [ 'scroll' ] export namespace VxeListDefines { export interface ListEventParams extends VxeComponentEventParams { $list: VxeListConstructor } export interface ScrollParams { } export interface ScrollEventParams extends ListEventParams, ScrollParams { } } export type VxeListEventProps = { onScroll?: VxeListEvents.Scroll } export interface VxeListListeners { scroll?: VxeListEvents.Scroll } export namespace VxeListEvents { export type Scroll = (params: VxeListDefines.ScrollEventParams) => void } export namespace VxeListSlotTypes { export interface DefaultSlotParams { $list: VxeListConstructor items: any[] } } export interface VxeListSlots { default?: (params: VxeListSlotTypes.DefaultSlotParams) => any } export const List: typeof VxeList export default VxeList