UNPKG

@logicflow/extension

Version:
95 lines (94 loc) 3.62 kB
"use strict"; var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); exports.registerPoolNodes = exports.poolToJSON = exports.laneToJSON = void 0; var Pool_1 = __importDefault(require("./Pool")); var Lane_1 = __importDefault(require("./Lane")); function laneToJSON(data) { return "<bpmn:participant id=\"".concat(data.id, "\" name=\"").concat(data.name, "\" processRef=\"").concat(data.properties.processRef, "\"/>"); } exports.laneToJSON = laneToJSON; function poolToJSON(data) { return "<bpmn:collaboration id=\"".concat(data.id, "\">\n ").concat(data.children.map(function (child) { return child.toJSON(child); }).join('\t\n'), "\n</bpmn:collaboration>"); } exports.poolToJSON = poolToJSON; function poolEvent(lf) { var selectAll = function () { var _a = lf.getGraphData(), _b = _a.nodes, nodes = _b === void 0 ? [] : _b, _c = _a.edges, edges = _c === void 0 ? [] : _c; nodes.forEach(function (node) { var id = node.id; if (id) { lf.selectElementById(id); } }); edges.forEach(function (edge) { var id = edge.id; if (id) { lf.selectElementById(id); } }); return false; }; lf.keyboard.on('cmd + a', selectAll); lf.keyboard.on('ctrl + a', selectAll); lf.on('node:dnd-add, edge:add', function (_a) { var data = _a.data; var x = data.x, y = data.y, type = data.type, id = data.id; if (type === 'pool') { lf.setProperties(data.id, {}); var poolModel = lf.getNodeModelById(id); var width = poolModel.width, height = poolModel.height; var laneId = lf.addNode({ type: 'lane', properties: { nodeSize: { width: width - 30, height: height, }, }, x: x + 15, y: y, }).id; poolModel.addChild(laneId); } }); lf.on('node:resize', function (_a) { var preData = _a.preData, data = _a.data; var id = preData.id, type = preData.type; var deltaHeight = data.height - preData.height; // const resizeDir = data.y - preData.y > 0 ? 'below': 'above' // 节点高度变高,y下移, 方向为below // 节点高度变高, y上移, 方向为above // 节点高度变小, y下移, 方向为above // 节点高度变小, y上移,方向为below var resizeDir = 'below'; if (deltaHeight > 0 && data.y - preData.y < 0) { resizeDir = 'above'; } else if (deltaHeight < 0 && data.y - preData.y > 0) { resizeDir = 'above'; } if (type === 'pool') { // 泳池缩放,泳道一起调整 lf.getNodeModelById(id).resizeChildren({ resizeDir: resizeDir, deltaHeight: deltaHeight, }); } else if (type === 'lane') { // 泳道缩放, 调整泳池 var groupId = lf.extension.group.nodeGroupMap.get(id); if (groupId) { lf.getNodeModelById(groupId).resize(id, data); } } }); } var registerPoolNodes = function (lf) { lf.register(Pool_1.default); lf.register(Lane_1.default); poolEvent(lf); }; exports.registerPoolNodes = registerPoolNodes;