UNPKG

hongluan-ui

Version:
296 lines (295 loc) 9.82 kB
import { useCache } from '../hooks/use-cache'; import { BACKWARD, FORWARD } from '../defaults'; import type { VNode, Ref, UnwrapRef } from 'vue'; import type { StyleValue } from 'hongluan-ui/es/utils'; import type { Alignment, GridConstructorProps, GridScrollOptions } from '../types'; import type { VirtualizedGridProps } from '../props'; declare const createGrid: ({ name, clearCache, getColumnPosition, getColumnStartIndexForOffset, getColumnStopIndexForStartIndex, getEstimatedTotalHeight, getEstimatedTotalWidth, getColumnOffset, getRowOffset, getRowPosition, getRowStartIndexForOffset, getRowStopIndexForStartIndex, initCache, injectToInstance, validateProps, }: GridConstructorProps<VirtualizedGridProps>) => import("vue").DefineComponent<{ className: { type: (ObjectConstructor | StringConstructor | ArrayConstructor)[]; default: string; }; containerElement: { type: (ObjectConstructor | StringConstructor)[]; default: string; }; containerProps: { type: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>; default: () => {}; }; data: { type: import("vue").PropType<any[]>; default: () => any[]; }; direction: { type: import("vue").PropType<import("../types").Direction>; default: string; validator: (val: import("../types").Direction) => boolean; }; height: { readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>; readonly required: true; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; innerElement: { type: (ObjectConstructor | StringConstructor)[]; default: string; }; innerElementProps: { type: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>; default: () => {}; }; style: { type: import("vue").PropType<StyleValue>; }; useIsScrolling: { type: BooleanConstructor; default: boolean; }; width: { readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>; readonly required: false; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; perfMode: { type: BooleanConstructor; default: boolean; }; scrollbarAlwaysOn: { type: BooleanConstructor; default: boolean; }; columnCache: { type: import("vue").PropType<number>; default: number; }; columnWidth: { type: import("vue").PropType<number | import("../types").ItemSize>; required: boolean; }; estimatedColumnWidth: { type: import("vue").PropType<number>; }; estimatedRowHeight: { type: import("vue").PropType<number>; }; initScrollLeft: { type: NumberConstructor; default: number; }; initScrollTop: { type: NumberConstructor; default: number; }; itemKey: { type: import("vue").PropType<import("../types").GridItemKeyGetter>; default: ({ columnIndex, rowIndex, }: { columnIndex: number; rowIndex: number; }) => string; }; rowCache: { type: import("vue").PropType<number>; default: number; }; rowHeight: { type: import("vue").PropType<number | import("../types").ItemSize>; required: boolean; }; totalColumn: { readonly type: import("vue").PropType<number>; readonly required: true; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; totalRow: { readonly type: import("vue").PropType<number>; readonly required: true; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; hScrollbarSize: { readonly type: NumberConstructor; readonly default: 6; }; vScrollbarSize: { readonly type: NumberConstructor; readonly default: 6; }; scrollbarStartGap: { readonly type: NumberConstructor; readonly default: 0; }; scrollbarEndGap: { readonly type: NumberConstructor; readonly default: 2; }; role: StringConstructor; }, () => VNode<import("vue").RendererNode, import("vue").RendererElement, { [key: string]: any; }>, unknown, {}, {}, import("vue").ComponentOptionsMixin, import("vue").ComponentOptionsMixin, ("scroll" | "itemRendered")[], "scroll" | "itemRendered", import("vue").VNodeProps & import("vue").AllowedComponentProps & import("vue").ComponentCustomProps, Readonly<import("vue").ExtractPropTypes<{ className: { type: (ObjectConstructor | StringConstructor | ArrayConstructor)[]; default: string; }; containerElement: { type: (ObjectConstructor | StringConstructor)[]; default: string; }; containerProps: { type: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>; default: () => {}; }; data: { type: import("vue").PropType<any[]>; default: () => any[]; }; direction: { type: import("vue").PropType<import("../types").Direction>; default: string; validator: (val: import("../types").Direction) => boolean; }; height: { readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>; readonly required: true; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; innerElement: { type: (ObjectConstructor | StringConstructor)[]; default: string; }; innerElementProps: { type: import("vue").PropType<import("hongluan-ui/es/utils").Indexable<any>>; default: () => {}; }; style: { type: import("vue").PropType<StyleValue>; }; useIsScrolling: { type: BooleanConstructor; default: boolean; }; width: { readonly type: import("vue").PropType<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>; readonly required: false; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; perfMode: { type: BooleanConstructor; default: boolean; }; scrollbarAlwaysOn: { type: BooleanConstructor; default: boolean; }; columnCache: { type: import("vue").PropType<number>; default: number; }; columnWidth: { type: import("vue").PropType<number | import("../types").ItemSize>; required: boolean; }; estimatedColumnWidth: { type: import("vue").PropType<number>; }; estimatedRowHeight: { type: import("vue").PropType<number>; }; initScrollLeft: { type: NumberConstructor; default: number; }; initScrollTop: { type: NumberConstructor; default: number; }; itemKey: { type: import("vue").PropType<import("../types").GridItemKeyGetter>; default: ({ columnIndex, rowIndex, }: { columnIndex: number; rowIndex: number; }) => string; }; rowCache: { type: import("vue").PropType<number>; default: number; }; rowHeight: { type: import("vue").PropType<number | import("../types").ItemSize>; required: boolean; }; totalColumn: { readonly type: import("vue").PropType<number>; readonly required: true; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; totalRow: { readonly type: import("vue").PropType<number>; readonly required: true; readonly validator: (val: unknown) => boolean; __epPropKey: true; }; hScrollbarSize: { readonly type: NumberConstructor; readonly default: 6; }; vScrollbarSize: { readonly type: NumberConstructor; readonly default: 6; }; scrollbarStartGap: { readonly type: NumberConstructor; readonly default: 0; }; scrollbarEndGap: { readonly type: NumberConstructor; readonly default: 2; }; role: StringConstructor; }>> & { onScroll?: (...args: any[]) => any; onItemRendered?: (...args: any[]) => any; }, { data: any[]; className: string | Record<string, any> | unknown[]; direction: import("../types").Direction; scrollbarAlwaysOn: boolean; useIsScrolling: boolean; scrollbarStartGap: number; scrollbarEndGap: number; hScrollbarSize: number; vScrollbarSize: number; perfMode: boolean; containerElement: string | Record<string, any>; containerProps: {}; innerElement: string | Record<string, any>; innerElementProps: {}; columnCache: number; initScrollLeft: number; initScrollTop: number; itemKey: import("../types").GridItemKeyGetter; rowCache: number; }>; export default createGrid; declare type Dir = typeof FORWARD | typeof BACKWARD; export declare type GridInstance = InstanceType<ReturnType<typeof createGrid>> & UnwrapRef<{ windowRef: Ref<HTMLElement>; innerRef: Ref<HTMLElement>; getItemStyleCache: ReturnType<typeof useCache>; scrollTo: (scrollOptions: GridScrollOptions) => void; scrollToItem: (rowIndex: number, columnIndex: number, alignment: Alignment) => void; states: Ref<{ isScrolling: boolean; scrollLeft: number; scrollTop: number; updateRequested: boolean; xAxisScrollDir: Dir; yAxisScrollDir: Dir; }>; }>;