import { ICombo, INode } from '../interface/item'; import Node from './node'; import { IBBox, ModelConfig, UpdateType } from '../types'; export default class Combo extends Node implements ICombo { getDefaultCfg(): { type: string; nodes: any[]; edges: any[]; combos: any[]; }; getShapeCfg(model: ModelConfig): ModelConfig; /** * 根据 keyshape 计算包围盒 */ calculateCanvasBBox(): IBBox; /** * 获取 Combo 中所有的子元素,包括 Combo、Node 及 Edge */ getChildren(): { nodes: INode[]; combos: ICombo[]; }; /** * 获取 Combo 中所有子节点 */ getNodes(): INode[]; /** * 获取 Combo 中所有子 combo */ getCombos(): ICombo[]; /** * 向 Combo 中增加子 combo 或 node * @param item Combo 或节点实例 * @return boolean 添加成功返回 true,否则返回 false */ addChild(item: ICombo | INode): boolean; /** * 向 Combo 中增加 combo * @param combo Combo 实例 * @return boolean 添加成功返回 true,否则返回 false */ addCombo(combo: ICombo): boolean; /** * 向 Combo 中添加节点 * @param node 节点实例 * @return boolean 添加成功返回 true,否则返回 false */ addNode(node: string | INode): boolean; /** * 向 Combo 中增加子 combo 或 node * @param item Combo 或节点实例 * @return boolean 添加成功返回 true,否则返回 false */ removeChild(item: ICombo | INode): boolean; /** * 从 Combo 中移除指定的 combo * @param combo Combo 实例 * @return boolean 移除成功返回 true,否则返回 false */ removeCombo(combo: ICombo): boolean; /** * 向 Combo 中移除指定的节点 * @param node 节点实例 * @return boolean 移除成功返回 true,否则返回 false */ removeNode(node: INode): boolean; getUpdateType(cfg?: ModelConfig): UpdateType; /** * 获取 item 的包围盒,这个包围盒是相对于 item 自己,不会将 matrix 计算在内 * @return {Object} 包含 x,y,width,height, centerX, centerY */ getBBox(): IBBox; clearCache(): void; destroy(): void; }