hongluan-ui
Version:
Hongluan Component Library for Vue 3
250 lines (249 loc) • 10.4 kB
TypeScript
import type { Alignment as ScrollStrategy } from 'hongluan-ui/es/components/virtual-list';
import type { SetupContext } from 'vue';
import type { treeEmits } from '../virtual-tree';
import type { CheckboxValueType } from 'hongluan-ui/es/components/checkbox';
import type { TreeProps, TreeNodeData, TreeKey, TreeNode, TreeData, Tree } from '../types';
export declare function useTree(props: TreeProps, emit: SetupContext<typeof treeEmits>['emit']): {
tree: import("vue").ShallowRef<Tree>;
flattenTree: import("vue").ComputedRef<TreeNode[]>;
isNotEmpty: import("vue").ComputedRef<boolean>;
listRef: import("vue").Ref<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("hongluan-ui/es/components/virtual-list").Direction>;
default: string;
validator: (val: import("hongluan-ui/es/components/virtual-list").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<import("hongluan-ui/es/utils").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;
};
cache: {
type: import("vue").PropType<number>;
default: number;
};
estimatedItemSize: {
type: import("vue").PropType<number>;
};
layout: {
type: import("vue").PropType<import("hongluan-ui/es/components/virtual-list").LayoutDirection>;
default: string;
};
initScrollOffset: {
type: NumberConstructor;
default: number;
};
total: {
readonly type: import("vue").PropType<number>;
readonly required: true;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
itemSize: {
type: import("vue").PropType<number | import("hongluan-ui/es/components/virtual-list").ItemSize>;
required: boolean;
};
}, {
clientSize: import("vue").ComputedRef<import("hongluan-ui/es/utils").EpPropMergeType<(StringConstructor | NumberConstructor)[], never, never>>;
estimatedTotalSize: import("vue").ComputedRef<number>;
windowStyle: import("vue").ComputedRef<unknown[]>;
windowRef: import("vue").Ref<HTMLElement>;
innerRef: import("vue").Ref<HTMLElement>;
innerStyle: import("vue").ComputedRef<{
height: string;
pointerEvents: string;
width: string;
}>;
itemsToRender: import("vue").ComputedRef<number[]>;
scrollbarRef: import("vue").Ref<any>;
states: import("vue").Ref<{
isScrolling: boolean;
scrollDir: string;
scrollOffset: number;
updateRequested: boolean;
isScrollbarDragging: boolean;
scrollbarAlwaysOn: boolean;
}>;
getItemStyle: (idx: number) => import("vue").CSSProperties;
onScroll: (e: Event) => void;
onScrollbarScroll: (distanceToGo: number, totalSteps: number) => void;
onWheel: (e: WheelEvent) => void;
scrollTo: (offset: number) => void;
scrollToItem: (idx: number, alignment?: ScrollStrategy) => void;
resetScrollTop: () => void;
}, 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("hongluan-ui/es/components/virtual-list").Direction>;
default: string;
validator: (val: import("hongluan-ui/es/components/virtual-list").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<import("hongluan-ui/es/utils").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;
};
cache: {
type: import("vue").PropType<number>;
default: number;
};
estimatedItemSize: {
type: import("vue").PropType<number>;
};
layout: {
type: import("vue").PropType<import("hongluan-ui/es/components/virtual-list").LayoutDirection>;
default: string;
};
initScrollOffset: {
type: NumberConstructor;
default: number;
};
total: {
readonly type: import("vue").PropType<number>;
readonly required: true;
readonly validator: (val: unknown) => boolean;
__epPropKey: true;
};
itemSize: {
type: import("vue").PropType<number | import("hongluan-ui/es/components/virtual-list").ItemSize>;
required: boolean;
};
}>> & {
onScroll?: (...args: any[]) => any;
onItemRendered?: (...args: any[]) => any;
}, {
data: any[];
className: string | Record<string, any> | unknown[];
layout: import("hongluan-ui/es/components/virtual-list").LayoutDirection;
direction: import("hongluan-ui/es/components/virtual-list").Direction;
scrollbarAlwaysOn: boolean;
cache: number;
useIsScrolling: boolean;
perfMode: boolean;
containerElement: string | Record<string, any>;
containerProps: {};
innerElement: string | Record<string, any>;
innerElementProps: {};
initScrollOffset: number;
}>>;
getKey: (node: TreeNodeData) => TreeKey;
getChildren: (node: TreeNodeData) => TreeNodeData[];
toggleExpand: (node: TreeNode) => void;
toggleCheckbox: (node: TreeNode, isChecked: CheckboxValueType, nodeClick?: boolean) => void;
isExpanded: (node: TreeNode) => boolean;
isChecked: (node: TreeNode) => boolean;
isIndeterminate: (node: TreeNode) => boolean;
isDisabled: (node: TreeNode) => boolean;
isCurrent: (node: TreeNode) => boolean;
isForceHiddenExpandIcon: (node: TreeNode) => boolean;
handleNodeClick: (node: TreeNode, e: MouseEvent) => void;
handleNodeCheck: (node: TreeNode, checked: CheckboxValueType) => void;
getCurrentNode: () => TreeNodeData | undefined;
getCurrentKey: () => TreeKey | undefined;
setCurrentKey: (key: TreeKey) => void;
getCheckedKeys: (leafOnly?: boolean) => TreeKey[];
getCheckedNodes: (leafOnly?: boolean) => TreeNodeData[];
getHalfCheckedKeys: () => TreeKey[];
getHalfCheckedNodes: () => TreeNodeData[];
setChecked: (key: TreeKey, isChecked: boolean) => void;
setCheckedKeys: (keys: TreeKey[]) => void;
filter: (query: string) => void;
setData: (data: TreeData) => void;
getNode: (data: TreeKey | TreeNodeData) => TreeNode;
expandNode: (node: TreeNode) => void;
collapseNode: (node: TreeNode) => void;
setExpandedKeys: (keys: TreeKey[]) => void;
scrollToNode: (key: TreeKey, strategy?: ScrollStrategy) => void;
scrollTo: (offset: number) => void;
};