@logicflow/extension 2.0.14 → 2.0.16
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/.turbo/turbo-build.log +10 -7
- package/CHANGELOG.md +20 -0
- package/dist/index.css +1 -1
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/es/components/menu/index.js +12 -0
- package/es/components/selection-select/index.d.ts +4 -2
- package/es/components/selection-select/index.js +91 -55
- package/es/dynamic-group/index.d.ts +7 -2
- package/es/dynamic-group/index.js +37 -13
- package/es/dynamic-group/model.js +4 -1
- package/es/index.css +1 -1
- package/es/style/index.css +1 -1
- package/lib/components/menu/index.js +12 -0
- package/lib/components/selection-select/index.d.ts +4 -2
- package/lib/components/selection-select/index.js +91 -55
- package/lib/dynamic-group/index.d.ts +7 -2
- package/lib/dynamic-group/index.js +37 -13
- package/lib/dynamic-group/model.js +4 -1
- package/lib/index.css +1 -1
- package/lib/style/index.css +1 -1
- package/package.json +3 -3
- package/src/components/menu/index.ts +4 -1
- package/src/components/selection-select/index.ts +100 -56
- package/src/dynamic-group/index.ts +43 -10
- package/src/dynamic-group/model.ts +4 -1
- package/src/style/index.less +5 -0
- package/stats.html +1 -1
|
@@ -178,8 +178,18 @@ export class DynamicGroup {
|
|
|
178
178
|
this.topGroupZIndex = max
|
|
179
179
|
}
|
|
180
180
|
|
|
181
|
-
|
|
182
|
-
|
|
181
|
+
onSelectionDrop = () => {
|
|
182
|
+
const { nodes: selectedNodes } = this.lf.graphModel.getSelectElements()
|
|
183
|
+
selectedNodes.forEach((node) => {
|
|
184
|
+
this.addNodeToGroup(node)
|
|
185
|
+
})
|
|
186
|
+
}
|
|
187
|
+
|
|
188
|
+
onNodeAddOrDrop = ({ data: node }: CallbackArgs<'node:add'>) => {
|
|
189
|
+
this.addNodeToGroup(node)
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
addNodeToGroup = (node: LogicFlow.NodeData) => {
|
|
183
193
|
// 1. 如果该节点之前已经在 group 中了,则将其从之前的 group 移除
|
|
184
194
|
const preGroupId = this.nodeGroupMap.get(node.id)
|
|
185
195
|
|
|
@@ -229,8 +239,8 @@ export class DynamicGroup {
|
|
|
229
239
|
console.log('isAllowAppendIn', isAllowAppendIn)
|
|
230
240
|
if (isAllowAppendIn) {
|
|
231
241
|
group.addChild(node.id)
|
|
232
|
-
|
|
233
|
-
group.setAllowAppendChild(
|
|
242
|
+
// 建立节点与 group 的映射关系放在了 group.addChild 触发的事件中,与直接调用 addChild 的行为保持一致
|
|
243
|
+
group.setAllowAppendChild(false)
|
|
234
244
|
} else {
|
|
235
245
|
// 抛出不允许插入的事件
|
|
236
246
|
this.lf.emit('group:not-allowed', {
|
|
@@ -242,6 +252,14 @@ export class DynamicGroup {
|
|
|
242
252
|
}
|
|
243
253
|
}
|
|
244
254
|
|
|
255
|
+
onGroupAddNode = ({
|
|
256
|
+
data: groupData,
|
|
257
|
+
childId,
|
|
258
|
+
}: CallbackArgs<'group:add-node'>) => {
|
|
259
|
+
console.log('group:add-node', groupData)
|
|
260
|
+
this.nodeGroupMap.set(childId, groupData.id)
|
|
261
|
+
}
|
|
262
|
+
|
|
245
263
|
removeNodeFromGroup = ({
|
|
246
264
|
data: node,
|
|
247
265
|
model,
|
|
@@ -264,7 +282,17 @@ export class DynamicGroup {
|
|
|
264
282
|
}
|
|
265
283
|
}
|
|
266
284
|
|
|
267
|
-
|
|
285
|
+
onSelectionDrag = () => {
|
|
286
|
+
const { nodes: selectedNodes } = this.lf.graphModel.getSelectElements()
|
|
287
|
+
selectedNodes.forEach((node) => {
|
|
288
|
+
this.setActiveGroup(node)
|
|
289
|
+
})
|
|
290
|
+
}
|
|
291
|
+
onNodeDrag = ({ data: node }: CallbackArgs<'node:drag'>) => {
|
|
292
|
+
this.setActiveGroup(node)
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
setActiveGroup = (node: LogicFlow.NodeData) => {
|
|
268
296
|
const nodeModel = this.lf.getNodeModelById(node.id)
|
|
269
297
|
const bounds = nodeModel?.getBounds()
|
|
270
298
|
|
|
@@ -657,16 +685,18 @@ export class DynamicGroup {
|
|
|
657
685
|
|
|
658
686
|
graphModel.dynamicGroup = this
|
|
659
687
|
|
|
660
|
-
lf.on('node:add,node:drop,node:dnd-add', this.
|
|
688
|
+
lf.on('node:add,node:drop,node:dnd-add', this.onNodeAddOrDrop)
|
|
689
|
+
lf.on('selection:drop', this.onSelectionDrop)
|
|
661
690
|
lf.on('node:delete', this.removeNodeFromGroup)
|
|
662
|
-
lf.on('node:drag,node:dnd-drag', this.
|
|
691
|
+
lf.on('node:drag,node:dnd-drag', this.onNodeDrag)
|
|
692
|
+
lf.on('selection:drag', this.onSelectionDrag)
|
|
663
693
|
lf.on('node:click', this.onNodeSelect)
|
|
664
694
|
lf.on('node:mousemove', this.onNodeMove)
|
|
665
695
|
lf.on('graph:rendered', this.onGraphRendered)
|
|
666
696
|
|
|
667
697
|
lf.on('graph:updated', ({ data }) => console.log('data', data))
|
|
668
698
|
|
|
669
|
-
lf.on('group:add-node',
|
|
699
|
+
lf.on('group:add-node', this.onGroupAddNode)
|
|
670
700
|
|
|
671
701
|
// https://github.com/didi/LogicFlow/issues/1346
|
|
672
702
|
// 重写 addElements() 方法,在 addElements() 原有基础上增加对 group 内部所有 nodes 和 edges 的复制功能
|
|
@@ -727,12 +757,15 @@ export class DynamicGroup {
|
|
|
727
757
|
|
|
728
758
|
destroy() {
|
|
729
759
|
// 销毁监听的事件,并移除渲染的 dom 内容
|
|
730
|
-
this.lf.off('node:add,node:drop,node:dnd-add', this.
|
|
760
|
+
this.lf.off('node:add,node:drop,node:dnd-add', this.onNodeAddOrDrop)
|
|
761
|
+
this.lf.off('selection:drop', this.onSelectionDrop)
|
|
731
762
|
this.lf.off('node:delete', this.removeNodeFromGroup)
|
|
732
|
-
this.lf.off('node:drag,node:dnd-drag', this.
|
|
763
|
+
this.lf.off('node:drag,node:dnd-drag', this.onNodeDrag)
|
|
764
|
+
this.lf.off('selection:drag', this.onSelectionDrag)
|
|
733
765
|
this.lf.off('node:click', this.onNodeSelect)
|
|
734
766
|
this.lf.off('node:mousemove', this.onNodeMove)
|
|
735
767
|
this.lf.off('graph:rendered', this.onGraphRendered)
|
|
768
|
+
this.lf.off('group:add-node', this.onGroupAddNode)
|
|
736
769
|
|
|
737
770
|
// 还原 lf.addElements 方法?
|
|
738
771
|
// 移除 graphModel 上重写的 addNodeMoveRules 方法?
|
|
@@ -492,7 +492,10 @@ export class DynamicGroupNodeModel extends RectNodeModel<IGroupNodeProperties> {
|
|
|
492
492
|
addChild(id: string) {
|
|
493
493
|
this.children.add(id)
|
|
494
494
|
const groupData = this.getData()
|
|
495
|
-
this.graphModel.eventCenter.emit('group:add-node', {
|
|
495
|
+
this.graphModel.eventCenter.emit('group:add-node', {
|
|
496
|
+
data: groupData,
|
|
497
|
+
childId: id,
|
|
498
|
+
})
|
|
496
499
|
}
|
|
497
500
|
|
|
498
501
|
/**
|