import { CheckboxProps } from '../checkbox'; import { TNode, TreeOptionData, TreeKeysType, TScroll, ComponentScrollToElementParams } from '../common'; export interface TdTreeProps { activable?: boolean; activeMultiple?: boolean; actived?: Array; defaultActived?: Array; allowDrop?: (context: { e: DragEvent; dragNode: TreeNodeModel; dropNode: TreeNodeModel; dropPosition: number; }) => boolean; allowFoldNodeOnFilter?: boolean; checkProps?: CheckboxProps; checkStrictly?: boolean; checkable?: boolean; data?: Array; disableCheck?: boolean | ((node: TreeNodeModel) => boolean); disabled?: boolean; draggable?: boolean; empty?: string | TNode; expandAll?: boolean; expandLevel?: number; expandMutex?: boolean; expandOnClickNode?: boolean; expandParent?: boolean; expanded?: Array; defaultExpanded?: Array; filter?: (node: TreeNodeModel) => boolean; height?: string | number; hover?: boolean; icon?: boolean | TNode>; keys?: TreeKeysType; label?: string | boolean | TNode>; lazy?: boolean; line?: boolean | TNode; load?: (node: TreeNodeModel) => Promise>; maxHeight?: string | number; operations?: TNode>; scroll?: TScroll; transition?: boolean; value?: Array; defaultValue?: Array; modelValue?: Array; valueMode?: 'onlyLeaf' | 'parentFirst' | 'all'; onActive?: (value: Array, context: { node: TreeNodeModel; e?: MouseEvent; trigger: 'node-click' | 'setItem'; }) => void; onChange?: (value: Array, context: { node: TreeNodeModel; e?: any; trigger: 'node-click' | 'setItem'; }) => void; onClick?: (context: { node: TreeNodeModel; e: MouseEvent; }) => void; onDragEnd?: (context: { e: DragEvent; node: TreeNodeModel; }) => void; onDragLeave?: (context: { e: DragEvent; node: TreeNodeModel; }) => void; onDragOver?: (context: { e: DragEvent; node: TreeNodeModel; }) => void; onDragStart?: (context: { e: DragEvent; node: TreeNodeModel; }) => void; onDrop?: (context: { e: DragEvent; dragNode: TreeNodeModel; dropNode: TreeNodeModel; dropPosition: number; }) => void; onExpand?: (value: Array, context: { node: TreeNodeModel; e?: MouseEvent; trigger: 'node-click' | 'icon-click' | 'setItem'; }) => void; onLoad?: (context: { node: TreeNodeModel; }) => void; onScroll?: (params: { e: WheelEvent; }) => void; } export interface TreeInstanceFunctions { appendTo: (value: TreeNodeValue, newData: T | Array) => void; getIndex: (value: TreeNodeValue) => number; getItem: (value: TreeNodeValue) => TreeNodeModel; getItems: (value?: TreeNodeValue) => Array>; getParent: (value: TreeNodeValue) => TreeNodeModel; getParents: (value: TreeNodeValue) => TreeNodeModel[]; getPath: (value: TreeNodeValue) => TreeNodeModel[]; getTreeData: (value?: TreeNodeValue) => Array; insertAfter: (value: TreeNodeValue, newData: T) => void; insertBefore: (value: TreeNodeValue, newData: T) => void; refresh: () => void; remove: (value: TreeNodeValue) => void; scrollTo?: (scrollToParams: ComponentScrollToElementParams) => void; setItem: (value: TreeNodeValue, options: TreeNodeState) => void; } export interface TreeNodeState { activable?: boolean; actived?: boolean; checkable?: boolean; checked?: boolean; disabled?: boolean; draggable?: boolean; expandMutex?: boolean; expanded?: boolean; indeterminate?: boolean; label?: string; loading?: boolean; value?: string | number; visible?: boolean; } export interface TreeNodeModel extends TreeNodeState { actived: boolean; checked: boolean; data: T; disabled: boolean; expanded: boolean; indeterminate: boolean; loading: boolean; appendData: (data: T | Array) => void; getChildren: (deep: boolean) => Array> | boolean; getIndex: () => number; getLevel: () => number; getParent: () => TreeNodeModel; getParents: () => Array>; getPath: () => Array>; getRoot: () => TreeNodeModel; getSiblings: () => Array>; insertAfter: (newData: T) => void; insertBefore: (newData: T) => void; isFirst: () => boolean; isLast: () => boolean; isLeaf: () => boolean; remove: (value?: TreeNodeValue) => void; setData: (data: T) => void; } export type TreeNodeValue = string | number;