@logicflow/extension
Version:
LogicFlow Extensions
95 lines (94 loc) • 3.62 kB
JavaScript
;
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;