hongluan-ui
Version:
Hongluan Component Library for Vue 3
296 lines (295 loc) • 9.82 kB
TypeScript
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;
}>;
}>;