import { mxGraph, MxGraphNS } from "@edp-pmf/mxgraph-ts"; import { BpmnModel, FlowElement, DiagramElement, BPMNShape, BPMNEdge, SequenceFlow, FlowNode } from "@edp-pmf/bpmn-model"; import { Cell } from "./entity/Cell"; import { ActivityInstanceSlim } from "./entity/ActivityInstanceSlim"; import { TransitionInstanceSlim } from "./entity/TransitionInstanceSlim"; import { CellStyleConfig } from "../entity/cell-style/CellStyleConfig"; export declare class FlowGraph extends mxGraph { bpmnModel: BpmnModel; autoTranslate: boolean; scrollTileSize: MxGraphNS.mxRectangle; getPagePadding: () => MxGraphNS.mxPoint; getPageSize: () => MxGraphNS.mxRectangle; getScrollTileSize: () => MxGraphNS.mxRectangle; getPageLayout: () => MxGraphNS.mxRectangle; cellStyleConfig: CellStyleConfig; actList: ActivityInstanceSlim[]; transInsList: TransitionInstanceSlim[]; mode: string; rootPath: string; /** * 当前语言 */ langCode: any; constructor(container: HTMLDivElement, cellStyleConfig?: CellStyleConfig); /** * 重写创建节点对象方法 * @param parent * @param id * @param value * @param x * @param y * @param width * @param height * @param style * @param relative * @returns */ createVertex(parent: any, id: any, value: any, x: any, y: any, width: any, height: any, style: any, relative: any): Cell; /** * 重写创建边对象方法 * @param parent * @param id * @param value * @param source * @param target * @param style * @returns */ createEdge(parent: any, id: any, value: any, source: any, target: any, style: any): Cell; /** * 设置默认样式 */ setDefaultStyles(): void; /** * 创建无限大画布 */ createInfiniteCanvas(): void; /** * 创建BpmnModel */ createBpmnModel(): BpmnModel; /** * 加载BpmnModel并画图 */ loadBpmnModel(json: string): void; /** * 重新加载BpmnModel并画图 * @param json */ reloadBpmnModel(json?: string): void; /** * 根据BpmnModel画图 */ drawBpmnGraph(bpmnModel: BpmnModel): void; private drawInterceptGraph; addJumpEdges(flowDict: { [key: string]: FlowElement; }): void; /** * 画节点 */ drawNodeCells(flowDict: { [key: string]: FlowElement; }, nodeDict: { [BpmnElementId: string]: DiagramElement; }, additional?: boolean): void; /** * 画单个节点 * @param flowElt * @param diagElt * @param additional */ drawNodeCell(flowElt: FlowElement, diagElt: BPMNShape, additional: boolean): void; /** * 画连线 */ drawEdgeCells(flowDict: { [key: string]: FlowElement; }, edgeDict: { [BpmnElementId: string]: DiagramElement; }, additional?: boolean, cut?: boolean): void; private judgeConnectBetweenTwoNodes; /** * 画单条连线 * @param flowElt * @param diagElt * @param additional * @param cut * @returns */ drawEdgeCell(flowElt: SequenceFlow, diagElt: BPMNEdge, additional: boolean, cut: boolean): void; /** * 构建FlowElement字典,{ [flowEltId: string]: FlowElement } */ buildFlowDict(bpmnModel: BpmnModel): { [key: string]: FlowElement; }; /** * 构建DiagramElement字典,{ [flowEltId: string]: DiagramElement } */ buildFlowDiagDict(bpmnModel: BpmnModel): { nodeDict: { [BpmnElementId: string]: DiagramElement; }; edgeDict: { [BpmnElementId: string]: DiagramElement; }; }; /** * 判断是否为旧版本BPMNEdge * * 旧版本连线Points数组中[0]和[1]分别表示起点和终点,因取值错误,[0]和[1]坐标均为(0,0),以此为依据判断是否为旧版本的连线 * 新版本从起点到终点按顺序记录每一个点坐标 * @param bpmnEdge * @returns */ isOldBpmnEdge(bpmnEdge: BPMNEdge): boolean; /** * 获取节点样式 * @param flowElt * @param diagElt * @param additional * @returns */ getVertexStyle(flowElt: FlowElement, diagElt: BPMNShape, additional: boolean): string; /** * 旧版diagramElement未存储样式信息 * @param flowElt * @param additional * @returns */ getVertexStyleOld(flowElt: FlowElement, additional: boolean): string; getChartState(flowElt: FlowElement, additional: boolean): "_light.gif" | "_gray.png" | ".png"; /** * 获取连线样式 * @param flowElt * @param additional * @param cut * @returns */ getEdgeStyle(flowElt: SequenceFlow, diagElt: BPMNEdge, parameters: Map): string; /** * 获取连线颜色 * @param flowElt * @param diagElt * @param additional * @param cut * @returns */ getStrokeColor(flowElt: SequenceFlow, diagElt: BPMNEdge, additional: boolean, cut: boolean): string; /** * 旧版diagramElement未存储样式信息 * @param flowElt * @param additional * @returns */ getEdgeStyleOld(seq: SequenceFlow, additional: boolean, cut: boolean): "strokeColor=#FF4040" | "strokeColor=#59A1FF" | "strokeColor=#595959;strokeWidth=2;" | "strokeColor=#f59c24;dashed=1;" | "strokeColor=#59A1FF;"; drawNextFlowChart(actiDefId: string, nodeDict: { [key: string]: DiagramElement; }, edgeDict: { [BpmnElementId: string]: DiagramElement; }): void; /** * 根据flowElementId获取cell */ getCellByFlowElementId(flowEltId: string, parent?: MxGraphNS.mxCell): Cell; findFirstStartActivityInstance(activities: ActivityInstanceSlim[]): ActivityInstanceSlim; findNoIncomingNodes(nodeCells: Cell[]): any[]; findEndActiInstList(firstAct: ActivityInstanceSlim, activities: ActivityInstanceSlim[], transInsList: TransitionInstanceSlim[]): ActivityInstanceSlim[]; getNextTransitions(endActiInstList: ActivityInstanceSlim[], sourceActInstId: string, activities: ActivityInstanceSlim[], transInsList: TransitionInstanceSlim[]): void; findTranInstsBySourceActInstId(sourceActInstId: string, transInsList: TransitionInstanceSlim[]): TransitionInstanceSlim[]; findActInstByActInstId(actInstId: string, activities: ActivityInstanceSlim[]): ActivityInstanceSlim; findDrawFlowElementsByActDefId(actiDefId: string, bpmnModel: BpmnModel): { nextFlowNodeDict: { [id: string]: FlowNode; }; nextSeqFlowDict: { [id: string]: SequenceFlow; }; }; findNextFlowElementsByFlowElementId(nextFlowNodeDict: { [id: string]: FlowNode; }, nextSeqFlowDict: { [id: string]: SequenceFlow; }, flowElementId: string, bpmnModel: BpmnModel): void; }