import 'd3-transition'; import { Graph } from '../../entities'; import type { AbstractGraph } from '../../types'; import { EdgeConfig, NodeConfig, TreeGraphData, TreeGraphOptions, TreeNodeData } from '../../types'; import { TreeEdge } from './tree-edge'; import { TreeNode } from './tree-node'; export declare class TreeGraph extends Graph implements AbstractGraph { getNodeConfig?: (node: TreeNode) => NodeConfig; getEdgeConfig?: (edge: TreeEdge) => EdgeConfig; constructor(options: TreeGraphOptions); static traverse(treeData: TreeNodeData | TreeNodeData[], callback: CallableFunction): TreeNodeData | TreeNodeData[]; /** * 设置数据 */ changeData: (data: TreeGraphData, stack?: boolean) => void; /** * 遍历树图数据 * * @param callback 遍历节点执行的回调函数 * @param target 指定的节点开始查找 */ traverse(callback: CallableFunction, target?: TreeNodeData): void; /** * 查找节点数据 * * @param id 指定的元素 ID * @param target 从指定的节点开始查找,为空时从根节点开始查找 * * @return node 查找到的节点数据 */ findDataById(id: TreeNodeData['id'], target?: TreeNodeData): TreeNodeData | null; /** * 添加子节点 * * @param data * @param parent */ addChild: (data: TreeNodeData, parent: TreeNodeData) => void; /** * 收起节点 * * @param node */ toggleNodeCollapse(node: TreeNode): void; /** * 折叠或展开根节点左侧 * * @param collapsed */ toggleRootNodeLeftSideCollapse(collapsed?: boolean): void; /** * 折叠或展开根节点右侧 * * @param collapsed */ toggleRootNodeRightSideCollapse(collapsed?: boolean): void; /** * 更新某个节点下的所有子节点 * @param data 子树数据模型集合 * @param parentId */ updateChildren(data: TreeNodeData[], parentId: TreeNodeData['id']): void; /** * 更新源数据,差量更新子树 * @param nodeData 子树数据模型 * @param parentId 子树的父节点id */ updateChild(nodeData: TreeNodeData, parentId: TreeNodeData['id']): void; /** * 删除子树 * @param id 子树根节点id */ removeChild(id: TreeNodeData['id']): void; /** * 执行树图布局 * * @param data * @returns */ private execute; /** * 过滤被折叠的节点 * * @param rootNode * @private */ private filterRootNodeChildren; /** * 创建模型 * * @param layoutData */ private modelFactory; /** * 创建节点 * * @param layoutData */ private createNodesAndPosition; /** * 创建边 * * @param layoutData */ private createEdges; } //# sourceMappingURL=tree-graph.d.ts.map