UNPKG

sard-uniapp

Version:

sard-uniapp 是一套基于 Uniapp + Vue3 框架开发的兼容多端的 UI 组件库

502 lines (501 loc) 18.3 kB
import { type StyleValue } from 'vue'; import { type NodeRect } from '../../utils'; export interface TreeNode { title?: string | number; key?: any; children?: TreeNode[]; disabled?: boolean; isLeaf?: boolean; [prop: string]: any; } export interface TreeCleanNode { title: string | number; key: string | number; children?: TreeCleanNode[]; } export interface TreeStateNode { title: string | number; key: string | number; expanded: boolean; checked: boolean; children?: TreeStateNode[]; parent: TreeStateNode | null; indeterminate: boolean; level: number; offsetLevel: number; visible: boolean; disabled: boolean; isLeaf: boolean; loadStatus: 'idle' | 'loading' | 'loaded'; depth: number; } export interface TreeNodeKeys { title?: string; key?: string; children?: string; isLeaf?: string; } export declare const defaultNodeKeys: { title: string; key: string; children: string; isLeaf: string; }; export interface TreeProps { rootStyle?: StyleValue; rootClass?: string; data?: TreeNode[]; nodeKeys?: TreeNodeKeys; defaultExpandAll?: boolean; defaultExpandedKeys?: (string | number)[]; accordion?: boolean; selectable?: boolean; checkStrictly?: boolean; singleSelectable?: boolean; leafOnly?: boolean; current?: string | number; defaultCheckedKeys?: (string | number)[]; draggable?: boolean; editable?: boolean; filterMode?: 'lenient' | 'strict'; filterMethod?: (value: string, node: TreeStateNode) => boolean; lazy?: boolean; load?: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; } export declare const defaultTreeProps: () => { data: () => never[]; rootStyle?: (string | false | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => string | false | import("vue").CSSProperties | StyleValue[]) | null) | undefined; rootClass?: (string | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => string)) | undefined; nodeKeys?: ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => TreeNodeKeys) | undefined; defaultExpandAll?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; defaultExpandedKeys?: ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => (string | number)[]) | undefined; accordion?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; selectable?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; checkStrictly?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; singleSelectable?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; leafOnly?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; current?: (string | number | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => string | number)) | undefined; defaultCheckedKeys?: ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => (string | number)[]) | undefined; draggable?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; editable?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; filterMode?: ("lenient" | "strict" | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => "lenient" | "strict")) | undefined; filterMethod?: (((value: string, node: TreeStateNode) => boolean) | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => (value: string, node: TreeStateNode) => boolean)) | undefined; lazy?: (boolean | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => boolean)) | undefined; load?: (((node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]) | ((props: { rootStyle: StyleValue; rootClass: string; data: TreeNode[]; nodeKeys: TreeNodeKeys; defaultExpandAll: boolean; defaultExpandedKeys: (string | number)[]; accordion: boolean; selectable: boolean; checkStrictly: boolean; singleSelectable: boolean; leafOnly: boolean; current: string | number; defaultCheckedKeys: (string | number)[]; draggable: boolean; editable: boolean; filterMode: "lenient" | "strict"; filterMethod: (value: string, node: TreeStateNode) => boolean; lazy: boolean; load: (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[]; }) => (node?: TreeStateNode) => Promise<TreeNode[]> | TreeNode[])) | undefined; }; export interface TreeEmits { (e: 'update:current', key: string | number, node: TreeStateNode): void; (e: 'select', key: string | number, node: TreeStateNode): void; (e: 'check', event: { checked: boolean; node: TreeStateNode; }): void; (e: 'node-click', event: { event: any; node: TreeStateNode; }): void; } export interface TreeExpose { setExpanded: (key: string | number, expanded: boolean) => void; toggleExpanded: (key: string | number) => void; setExpandedKeys: (keys: (string | number)[]) => void; getExpandedKeys: () => (string | number)[]; getCheckedKeys: () => (string | number)[]; getHalfCheckedKeys: () => (string | number)[]; setCheckedKeys: (keys: (string | number)[]) => void; setChecked: (key: string | number, checked: boolean) => void; addRootNode: () => void; getCleanTreeData: () => TreeCleanNode[]; filter: (searchString: string) => void; } export interface TreeNodeProps { node: TreeStateNode; index: number; } export interface TreeBranchProps { nodes: TreeStateNode[]; } export interface TreeContext { selectable: TreeProps['selectable']; draggable: TreeProps['draggable']; editable: TreeProps['editable']; singleSelectable: TreeProps['singleSelectable']; leafOnly: TreeProps['leafOnly']; treeData: TreeStateNode[]; setExpandedByNode: (node: TreeStateNode, expanded: boolean) => void; toggleExpandedByNode: (node: TreeStateNode) => void; setCheckedByNode: (node: TreeStateNode, checked: boolean) => void; toggleCheck: (node: TreeStateNode, checked: boolean) => void; levelup: (node: TreeStateNode) => void; leveldown: (node: TreeStateNode) => void; edit: (node: TreeStateNode, getEditRect: () => Promise<NodeRect>) => void; drop: (dropOriginNode: TreeStateNode, dropTargetNode: TreeStateNode, position: number) => void; currentKey: string | number | undefined; singleSelect: (node: TreeStateNode) => void; nodeClick: (node: TreeStateNode, event: any) => void; load: TreeProps['load']; lazy: boolean; toTreeStateNodes: (nodes: TreeNode[], parent: TreeStateNode | null) => TreeStateNode[]; setRenderPosition: () => void; } export declare const treeContextSymbol: unique symbol;