@logicflow/extension 1.2.25 → 1.2.26
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/NodeResize/Control/Control.js +3 -3
- package/cjs/materials/group/index.js +57 -0
- package/es/NodeResize/Control/Control.js +3 -3
- package/es/materials/group/index.d.ts +3 -1
- package/es/materials/group/index.js +57 -0
- package/lib/Group.js +1 -1
- package/lib/NodeResize.js +1 -1
- package/package.json +2 -2
- package/types/NodeResize/BasicShape/Polygon.d.ts +0 -10
- package/types/NodeResize/BasicShape/Rect.d.ts +0 -17
- package/types/NodeResize/Control/Control.d.ts +0 -66
- package/types/NodeResize/Control/ControlGroup.d.ts +0 -13
- package/types/NodeResize/Control/Util.d.ts +0 -33
- package/types/NodeResize/Node/DiamondResize.d.ts +0 -30
- package/types/NodeResize/Node/EllipseResize.d.ts +0 -30
- package/types/NodeResize/Node/HtmlResize.d.ts +0 -30
- package/types/NodeResize/Node/RectResize.d.ts +0 -32
- package/types/NodeResize/index.d.ts +0 -11
- package/types/bpmn/constant.d.ts +0 -46
- package/types/bpmn/events/EndEvent.d.ts +0 -21
- package/types/bpmn/events/StartEvent.d.ts +0 -17
- package/types/bpmn/flow/SequenceFlow.d.ts +0 -15
- package/types/bpmn/gateways/ExclusiveGateway.d.ts +0 -16
- package/types/bpmn/getBpmnId.d.ts +0 -1
- package/types/bpmn/index.d.ts +0 -13
- package/types/bpmn/tasks/ServiceTask.d.ts +0 -17
- package/types/bpmn/tasks/UserTask.d.ts +0 -17
- package/types/bpmn-adapter/bpmnIds.d.ts +0 -1
- package/types/bpmn-adapter/index.d.ts +0 -63
- package/types/bpmn-adapter/json2xml.d.ts +0 -3
- package/types/bpmn-adapter/xml2json.d.ts +0 -2
- package/types/bpmn-elements/index.d.ts +0 -17
- package/types/bpmn-elements/presets/Event/EndEventFactory.d.ts +0 -5
- package/types/bpmn-elements/presets/Event/IntermediateCatchEvent.d.ts +0 -5
- package/types/bpmn-elements/presets/Event/IntermediateThrowEvent.d.ts +0 -5
- package/types/bpmn-elements/presets/Event/StartEventFactory.d.ts +0 -5
- package/types/bpmn-elements/presets/Event/boundaryEventFactory.d.ts +0 -5
- package/types/bpmn-elements/presets/Event/index.d.ts +0 -2
- package/types/bpmn-elements/presets/Flow/index.d.ts +0 -7
- package/types/bpmn-elements/presets/Flow/sequenceFlow.d.ts +0 -5
- package/types/bpmn-elements/presets/Gateway/gateway.d.ts +0 -17
- package/types/bpmn-elements/presets/Gateway/index.d.ts +0 -2
- package/types/bpmn-elements/presets/Task/index.d.ts +0 -2
- package/types/bpmn-elements/presets/Task/subProcess.d.ts +0 -5
- package/types/bpmn-elements/presets/Task/task.d.ts +0 -12
- package/types/bpmn-elements/presets/icons.d.ts +0 -25
- package/types/bpmn-elements/utils.d.ts +0 -2
- package/types/bpmn-elements-adapter/constant.d.ts +0 -66
- package/types/bpmn-elements-adapter/index.d.ts +0 -103
- package/types/bpmn-elements-adapter/json2xml.d.ts +0 -3
- package/types/bpmn-elements-adapter/xml2json.d.ts +0 -2
- package/types/components/context-menu/index.d.ts +0 -34
- package/types/components/control/index.d.ts +0 -26
- package/types/components/dnd-panel/index.d.ts +0 -26
- package/types/components/highlight/index.d.ts +0 -21
- package/types/components/menu/index.d.ts +0 -50
- package/types/components/mini-map/index.d.ts +0 -88
- package/types/components/selection-select/index.d.ts +0 -43
- package/types/index.d.ts +0 -21
- package/types/insert-node-in-polyline/edge.d.ts +0 -31
- package/types/insert-node-in-polyline/index.d.ts +0 -28
- package/types/materials/curved-edge/index.d.ts +0 -14
- package/types/materials/group/GroupNode.d.ts +0 -125
- package/types/materials/group/index.d.ts +0 -65
- package/types/tools/auto-layout/index.d.ts +0 -40
- package/types/tools/flow-path/index.d.ts +0 -47
- package/types/tools/snapshot/index.d.ts +0 -26
- package/types/turbo-adapter/index.d.ts +0 -21
- package/types/type/index.d.ts +0 -6
|
@@ -350,13 +350,13 @@ var Control = /** @class */ (function (_super) {
|
|
|
350
350
|
* 由于将拖拽放大缩小改成丝滑模式,这个时候需要在拖拽结束的时候,将节点的位置更新到grid上.
|
|
351
351
|
*/
|
|
352
352
|
_this.onDragEnd = function () {
|
|
353
|
-
// 先触发onDragging()->更新边->再触发用户自定义的getDefaultAnchor(),所以onDragging()拿到的anchors是滞后的
|
|
354
|
-
// 为了正确设置最终的位置,应该在拖拽结束的时候,再设置一次边的Point位置,此时拿到的anchors是最新的
|
|
355
|
-
_this.updateEdgePointByAnchors();
|
|
356
353
|
var _a = _this.graphModel.gridSize, gridSize = _a === void 0 ? 1 : _a;
|
|
357
354
|
var x = gridSize * Math.round(_this.nodeModel.x / gridSize);
|
|
358
355
|
var y = gridSize * Math.round(_this.nodeModel.y / gridSize);
|
|
359
356
|
_this.nodeModel.moveTo(x, y);
|
|
357
|
+
// 先触发onDragging()->更新边->再触发用户自定义的getDefaultAnchor(),所以onDragging()拿到的anchors是滞后的
|
|
358
|
+
// 为了正确设置最终的位置,应该在拖拽结束的时候,再设置一次边的Point位置,此时拿到的anchors是最新的
|
|
359
|
+
_this.updateEdgePointByAnchors();
|
|
360
360
|
};
|
|
361
361
|
_this.index = props.index;
|
|
362
362
|
_this.nodeModel = props.model;
|
|
@@ -65,6 +65,8 @@ var Group = /** @class */ (function () {
|
|
|
65
65
|
});
|
|
66
66
|
}
|
|
67
67
|
});
|
|
68
|
+
// 初始化nodes时进行this.topGroupZIndex的校准更新
|
|
69
|
+
_this.checkAndCorrectTopGroupZIndex(data.nodes);
|
|
68
70
|
}
|
|
69
71
|
};
|
|
70
72
|
this.appendNodeToGroup = function (_a) {
|
|
@@ -95,6 +97,8 @@ var Group = /** @class */ (function () {
|
|
|
95
97
|
data.children.forEach(function (nodeId) {
|
|
96
98
|
_this.nodeGroupMap.set(nodeId, data.id);
|
|
97
99
|
});
|
|
100
|
+
// 新增node时进行this.topGroupZIndex的校准更新
|
|
101
|
+
_this.checkAndCorrectTopGroupZIndex([data]);
|
|
98
102
|
_this.nodeSelected({ data: data, isSelected: false, isMultiple: false });
|
|
99
103
|
}
|
|
100
104
|
if (!group)
|
|
@@ -144,6 +148,59 @@ var Group = /** @class */ (function () {
|
|
|
144
148
|
_this.activeGroup = newGroup;
|
|
145
149
|
_this.activeGroup.setAllowAppendChild(true);
|
|
146
150
|
};
|
|
151
|
+
this.findNodeAndChildMaxZIndex = function (nodeModel) {
|
|
152
|
+
var maxZIndex = DEFAULT_BOTTOM_Z_INDEX;
|
|
153
|
+
if (nodeModel.isGroup) {
|
|
154
|
+
maxZIndex = nodeModel.zIndex > maxZIndex ? nodeModel.zIndex : maxZIndex;
|
|
155
|
+
}
|
|
156
|
+
if (nodeModel.children) {
|
|
157
|
+
nodeModel.children.forEach(function (nodeId) {
|
|
158
|
+
if (typeof nodeId === 'object') {
|
|
159
|
+
// 正常情况下, GroupNodeModel.children是一个id数组,这里只是做个兼容
|
|
160
|
+
// @ts-ignore
|
|
161
|
+
nodeId = nodeId.id;
|
|
162
|
+
}
|
|
163
|
+
var child = _this.lf.getNodeModelById(nodeId);
|
|
164
|
+
if (child.isGroup) {
|
|
165
|
+
var childMaxZIndex = _this.findNodeAndChildMaxZIndex(child);
|
|
166
|
+
maxZIndex = childMaxZIndex > maxZIndex ? childMaxZIndex : maxZIndex;
|
|
167
|
+
}
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
return maxZIndex;
|
|
171
|
+
};
|
|
172
|
+
this.checkAndCorrectTopGroupZIndex = function (nodes) {
|
|
173
|
+
// 初始化时/增加新节点时,找出新增nodes的最大zIndex
|
|
174
|
+
var maxZIndex = DEFAULT_BOTTOM_Z_INDEX;
|
|
175
|
+
nodes.forEach(function (node) {
|
|
176
|
+
var nodeModel = _this.lf.getNodeModelById(node.id);
|
|
177
|
+
var currentNodeMaxZIndex = _this.findNodeAndChildMaxZIndex(nodeModel);
|
|
178
|
+
if (currentNodeMaxZIndex > maxZIndex) {
|
|
179
|
+
maxZIndex = currentNodeMaxZIndex;
|
|
180
|
+
}
|
|
181
|
+
});
|
|
182
|
+
if (_this.topGroupZIndex >= maxZIndex) {
|
|
183
|
+
// 一般是初始化时/增加新节点时发生,因为外部强行设置了一个很大的zIndex
|
|
184
|
+
// 删除节点不会影响目前最高zIndex的赋值
|
|
185
|
+
return;
|
|
186
|
+
}
|
|
187
|
+
// 新增nodes中如果存在zIndex比this.topGroupZIndex大
|
|
188
|
+
// 说明this.topGroupZIndex已经失去意义,代表不了目前最高zIndex的group,需要重新校准
|
|
189
|
+
// https://github.com/didi/LogicFlow/issues/1535
|
|
190
|
+
// 当外部直接设置多个BaseNode.zIndex=1时
|
|
191
|
+
// 当点击某一个node时,由于这个this.topGroupZIndex是从-10000开始计算的,this.topGroupZIndex+1也就是-9999
|
|
192
|
+
// 这就造成当前点击的node的zIndex远远比其它node的zIndex小,因此造成zIndex错乱问题
|
|
193
|
+
var allGroupNodes = _this.lf.graphModel.nodes
|
|
194
|
+
.filter(function (node) { return node.isGroup; });
|
|
195
|
+
var max = _this.topGroupZIndex;
|
|
196
|
+
for (var i = 0; i < allGroupNodes.length; i++) {
|
|
197
|
+
var groupNode = allGroupNodes[i];
|
|
198
|
+
if (groupNode.zIndex > max) {
|
|
199
|
+
max = groupNode.zIndex;
|
|
200
|
+
}
|
|
201
|
+
}
|
|
202
|
+
_this.topGroupZIndex = max;
|
|
203
|
+
};
|
|
147
204
|
/**
|
|
148
205
|
* 1. 分组节点默认在普通节点下面。
|
|
149
206
|
* 2. 分组节点被选中后,会将分组节点以及其内部的其他分组节点放到其余分组节点的上面。
|
|
@@ -348,13 +348,13 @@ var Control = /** @class */ (function (_super) {
|
|
|
348
348
|
* 由于将拖拽放大缩小改成丝滑模式,这个时候需要在拖拽结束的时候,将节点的位置更新到grid上.
|
|
349
349
|
*/
|
|
350
350
|
_this.onDragEnd = function () {
|
|
351
|
-
// 先触发onDragging()->更新边->再触发用户自定义的getDefaultAnchor(),所以onDragging()拿到的anchors是滞后的
|
|
352
|
-
// 为了正确设置最终的位置,应该在拖拽结束的时候,再设置一次边的Point位置,此时拿到的anchors是最新的
|
|
353
|
-
_this.updateEdgePointByAnchors();
|
|
354
351
|
var _a = _this.graphModel.gridSize, gridSize = _a === void 0 ? 1 : _a;
|
|
355
352
|
var x = gridSize * Math.round(_this.nodeModel.x / gridSize);
|
|
356
353
|
var y = gridSize * Math.round(_this.nodeModel.y / gridSize);
|
|
357
354
|
_this.nodeModel.moveTo(x, y);
|
|
355
|
+
// 先触发onDragging()->更新边->再触发用户自定义的getDefaultAnchor(),所以onDragging()拿到的anchors是滞后的
|
|
356
|
+
// 为了正确设置最终的位置,应该在拖拽结束的时候,再设置一次边的Point位置,此时拿到的anchors是最新的
|
|
357
|
+
_this.updateEdgePointByAnchors();
|
|
358
358
|
};
|
|
359
359
|
_this.index = props.index;
|
|
360
360
|
_this.nodeModel = props.model;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import LogicFlow, { BaseEdgeModel, BaseNodeModel, EdgeConfig } from '@logicflow/core';
|
|
1
|
+
import LogicFlow, { BaseEdgeModel, BaseNodeModel, EdgeConfig, NodeData } from '@logicflow/core';
|
|
2
2
|
import GroupNode from './GroupNode';
|
|
3
3
|
declare type BaseNodeId = string;
|
|
4
4
|
declare type GroupId = string;
|
|
@@ -40,6 +40,8 @@ declare class Group {
|
|
|
40
40
|
setActiveGroup: ({ data }: {
|
|
41
41
|
data: any;
|
|
42
42
|
}) => void;
|
|
43
|
+
findNodeAndChildMaxZIndex: (nodeModel: BaseNodeModel) => number;
|
|
44
|
+
checkAndCorrectTopGroupZIndex: (nodes: NodeData[]) => void;
|
|
43
45
|
/**
|
|
44
46
|
* 1. 分组节点默认在普通节点下面。
|
|
45
47
|
* 2. 分组节点被选中后,会将分组节点以及其内部的其他分组节点放到其余分组节点的上面。
|
|
@@ -61,6 +61,8 @@ var Group = /** @class */ (function () {
|
|
|
61
61
|
});
|
|
62
62
|
}
|
|
63
63
|
});
|
|
64
|
+
// 初始化nodes时进行this.topGroupZIndex的校准更新
|
|
65
|
+
_this.checkAndCorrectTopGroupZIndex(data.nodes);
|
|
64
66
|
}
|
|
65
67
|
};
|
|
66
68
|
this.appendNodeToGroup = function (_a) {
|
|
@@ -91,6 +93,8 @@ var Group = /** @class */ (function () {
|
|
|
91
93
|
data.children.forEach(function (nodeId) {
|
|
92
94
|
_this.nodeGroupMap.set(nodeId, data.id);
|
|
93
95
|
});
|
|
96
|
+
// 新增node时进行this.topGroupZIndex的校准更新
|
|
97
|
+
_this.checkAndCorrectTopGroupZIndex([data]);
|
|
94
98
|
_this.nodeSelected({ data: data, isSelected: false, isMultiple: false });
|
|
95
99
|
}
|
|
96
100
|
if (!group)
|
|
@@ -140,6 +144,59 @@ var Group = /** @class */ (function () {
|
|
|
140
144
|
_this.activeGroup = newGroup;
|
|
141
145
|
_this.activeGroup.setAllowAppendChild(true);
|
|
142
146
|
};
|
|
147
|
+
this.findNodeAndChildMaxZIndex = function (nodeModel) {
|
|
148
|
+
var maxZIndex = DEFAULT_BOTTOM_Z_INDEX;
|
|
149
|
+
if (nodeModel.isGroup) {
|
|
150
|
+
maxZIndex = nodeModel.zIndex > maxZIndex ? nodeModel.zIndex : maxZIndex;
|
|
151
|
+
}
|
|
152
|
+
if (nodeModel.children) {
|
|
153
|
+
nodeModel.children.forEach(function (nodeId) {
|
|
154
|
+
if (typeof nodeId === 'object') {
|
|
155
|
+
// 正常情况下, GroupNodeModel.children是一个id数组,这里只是做个兼容
|
|
156
|
+
// @ts-ignore
|
|
157
|
+
nodeId = nodeId.id;
|
|
158
|
+
}
|
|
159
|
+
var child = _this.lf.getNodeModelById(nodeId);
|
|
160
|
+
if (child.isGroup) {
|
|
161
|
+
var childMaxZIndex = _this.findNodeAndChildMaxZIndex(child);
|
|
162
|
+
maxZIndex = childMaxZIndex > maxZIndex ? childMaxZIndex : maxZIndex;
|
|
163
|
+
}
|
|
164
|
+
});
|
|
165
|
+
}
|
|
166
|
+
return maxZIndex;
|
|
167
|
+
};
|
|
168
|
+
this.checkAndCorrectTopGroupZIndex = function (nodes) {
|
|
169
|
+
// 初始化时/增加新节点时,找出新增nodes的最大zIndex
|
|
170
|
+
var maxZIndex = DEFAULT_BOTTOM_Z_INDEX;
|
|
171
|
+
nodes.forEach(function (node) {
|
|
172
|
+
var nodeModel = _this.lf.getNodeModelById(node.id);
|
|
173
|
+
var currentNodeMaxZIndex = _this.findNodeAndChildMaxZIndex(nodeModel);
|
|
174
|
+
if (currentNodeMaxZIndex > maxZIndex) {
|
|
175
|
+
maxZIndex = currentNodeMaxZIndex;
|
|
176
|
+
}
|
|
177
|
+
});
|
|
178
|
+
if (_this.topGroupZIndex >= maxZIndex) {
|
|
179
|
+
// 一般是初始化时/增加新节点时发生,因为外部强行设置了一个很大的zIndex
|
|
180
|
+
// 删除节点不会影响目前最高zIndex的赋值
|
|
181
|
+
return;
|
|
182
|
+
}
|
|
183
|
+
// 新增nodes中如果存在zIndex比this.topGroupZIndex大
|
|
184
|
+
// 说明this.topGroupZIndex已经失去意义,代表不了目前最高zIndex的group,需要重新校准
|
|
185
|
+
// https://github.com/didi/LogicFlow/issues/1535
|
|
186
|
+
// 当外部直接设置多个BaseNode.zIndex=1时
|
|
187
|
+
// 当点击某一个node时,由于这个this.topGroupZIndex是从-10000开始计算的,this.topGroupZIndex+1也就是-9999
|
|
188
|
+
// 这就造成当前点击的node的zIndex远远比其它node的zIndex小,因此造成zIndex错乱问题
|
|
189
|
+
var allGroupNodes = _this.lf.graphModel.nodes
|
|
190
|
+
.filter(function (node) { return node.isGroup; });
|
|
191
|
+
var max = _this.topGroupZIndex;
|
|
192
|
+
for (var i = 0; i < allGroupNodes.length; i++) {
|
|
193
|
+
var groupNode = allGroupNodes[i];
|
|
194
|
+
if (groupNode.zIndex > max) {
|
|
195
|
+
max = groupNode.zIndex;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
_this.topGroupZIndex = max;
|
|
199
|
+
};
|
|
143
200
|
/**
|
|
144
201
|
* 1. 分组节点默认在普通节点下面。
|
|
145
202
|
* 2. 分组节点被选中后,会将分组节点以及其内部的其他分组节点放到其余分组节点的上面。
|