@logicflow/core 2.0.9 → 2.0.10
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$colon$dev.log +2 -2
- package/.turbo/turbo-build.log +6 -6
- package/CHANGELOG.md +16 -0
- package/dist/index.min.js +1 -1
- package/dist/index.min.js.map +1 -1
- package/es/LogicFlow.js +14 -1
- package/es/event/eventEmitter.d.ts +1 -0
- package/es/event/eventEmitter.js +3 -0
- package/es/history/index.d.ts +1 -0
- package/es/history/index.js +6 -0
- package/es/keyboard/index.d.ts +1 -0
- package/es/keyboard/index.js +3 -0
- package/es/model/EditConfigModel.d.ts +3 -1
- package/es/model/EditConfigModel.js +5 -0
- package/es/model/GraphModel.d.ts +13 -1
- package/es/model/GraphModel.js +41 -41
- package/es/model/edge/BaseEdgeModel.js +6 -3
- package/es/model/edge/PolylineEdgeModel.d.ts +1 -0
- package/es/model/edge/PolylineEdgeModel.js +7 -0
- package/es/model/node/BaseNodeModel.js +3 -2
- package/es/tool/index.d.ts +1 -0
- package/es/tool/index.js +4 -0
- package/es/util/geometry.d.ts +1 -1
- package/es/util/geometry.js +4 -1
- package/es/view/Graph.js +19 -2
- package/es/view/behavior/dnd.js +3 -2
- package/es/view/edge/BaseEdge.js +9 -2
- package/es/view/node/BaseNode.js +19 -6
- package/es/view/node/HtmlNode.js +1 -0
- package/es/view/overlay/CanvasOverlay.js +6 -4
- package/es/view/text/BaseText.js +1 -0
- package/lib/LogicFlow.js +13 -0
- package/lib/event/eventEmitter.d.ts +1 -0
- package/lib/event/eventEmitter.js +3 -0
- package/lib/history/index.d.ts +1 -0
- package/lib/history/index.js +6 -0
- package/lib/keyboard/index.d.ts +1 -0
- package/lib/keyboard/index.js +3 -0
- package/lib/model/EditConfigModel.d.ts +3 -1
- package/lib/model/EditConfigModel.js +5 -0
- package/lib/model/GraphModel.d.ts +13 -1
- package/lib/model/GraphModel.js +40 -40
- package/lib/model/edge/BaseEdgeModel.js +6 -3
- package/lib/model/edge/PolylineEdgeModel.d.ts +1 -0
- package/lib/model/edge/PolylineEdgeModel.js +7 -0
- package/lib/model/node/BaseNodeModel.js +3 -2
- package/lib/tool/index.d.ts +1 -0
- package/lib/tool/index.js +4 -0
- package/lib/util/geometry.d.ts +1 -1
- package/lib/util/geometry.js +4 -1
- package/lib/view/Graph.js +19 -2
- package/lib/view/behavior/dnd.js +3 -2
- package/lib/view/edge/BaseEdge.js +9 -2
- package/lib/view/node/BaseNode.js +19 -6
- package/lib/view/node/HtmlNode.js +1 -0
- package/lib/view/overlay/CanvasOverlay.js +6 -4
- package/lib/view/text/BaseText.js +1 -0
- package/package.json +1 -1
- package/src/LogicFlow.tsx +19 -1
- package/src/event/eventEmitter.ts +4 -0
- package/src/history/index.ts +7 -0
- package/src/keyboard/index.ts +4 -0
- package/src/model/EditConfigModel.ts +4 -0
- package/src/model/GraphModel.ts +62 -70
- package/src/model/edge/BaseEdgeModel.ts +7 -2
- package/src/model/edge/PolylineEdgeModel.ts +8 -0
- package/src/model/node/BaseNodeModel.ts +5 -2
- package/src/tool/index.ts +5 -0
- package/src/util/geometry.ts +3 -1
- package/src/view/Graph.tsx +19 -2
- package/src/view/behavior/dnd.ts +5 -2
- package/src/view/edge/BaseEdge.tsx +9 -2
- package/src/view/node/BaseNode.tsx +20 -6
- package/src/view/node/HtmlNode.tsx +1 -0
- package/src/view/overlay/CanvasOverlay.tsx +6 -5
- package/src/view/text/BaseText.tsx +1 -0
- package/stats.html +1 -1
|
@@ -80,6 +80,13 @@ export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
|
80
80
|
if (this.modelDisposer) {
|
|
81
81
|
this.modelDisposer()
|
|
82
82
|
}
|
|
83
|
+
|
|
84
|
+
// 以下是 mobx-preact 中 componentWillUnmount 的回调逻辑,但是不知道出于什么考虑,mobx-preact 没有混入这一段逻辑
|
|
85
|
+
// @ts-ignore
|
|
86
|
+
if (this.render.$mobx) {
|
|
87
|
+
// @ts-ignore
|
|
88
|
+
this.render.$mobx.dispose()
|
|
89
|
+
}
|
|
83
90
|
}
|
|
84
91
|
|
|
85
92
|
componentDidMount() {}
|
|
@@ -234,7 +241,7 @@ export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
|
234
241
|
onDragging = ({ event }: IDragParams) => {
|
|
235
242
|
const { model, graphModel } = this.props
|
|
236
243
|
const {
|
|
237
|
-
editConfigModel: { stopMoveGraph, autoExpand },
|
|
244
|
+
editConfigModel: { stopMoveGraph, autoExpand, snapGrid },
|
|
238
245
|
transformModel,
|
|
239
246
|
selectNodes,
|
|
240
247
|
width,
|
|
@@ -254,9 +261,9 @@ export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
|
254
261
|
// 2. 考虑鼠标位置不再节点中心
|
|
255
262
|
x = x + (this.moveOffset?.dx ?? 0)
|
|
256
263
|
y = y + (this.moveOffset?.dy ?? 0)
|
|
257
|
-
//
|
|
258
|
-
x = snapToGrid(x, gridSize)
|
|
259
|
-
y = snapToGrid(y, gridSize)
|
|
264
|
+
// 校准坐标
|
|
265
|
+
x = snapToGrid(x, gridSize, snapGrid)
|
|
266
|
+
y = snapToGrid(y, gridSize, snapGrid)
|
|
260
267
|
if (!width || !height) {
|
|
261
268
|
graphModel.moveNode2Coordinate(model.id, x, y)
|
|
262
269
|
return
|
|
@@ -371,7 +378,10 @@ export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
|
371
378
|
} else {
|
|
372
379
|
graphModel.selectNodeById(model.id, isMultiple)
|
|
373
380
|
eventOptions.isSelected = true
|
|
374
|
-
|
|
381
|
+
// 静默模式下点击节点不变更节点层级
|
|
382
|
+
if (!editConfigModel.isSilentMode) {
|
|
383
|
+
this.toFront()
|
|
384
|
+
}
|
|
375
385
|
}
|
|
376
386
|
|
|
377
387
|
// 不是双击的,默认都是单击
|
|
@@ -392,6 +402,7 @@ export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
|
392
402
|
handleContextMenu = (ev: MouseEvent) => {
|
|
393
403
|
ev.preventDefault()
|
|
394
404
|
const { model, graphModel } = this.props
|
|
405
|
+
const { editConfigModel } = graphModel
|
|
395
406
|
// 节点数据,多为事件对象数据抛出
|
|
396
407
|
const nodeData = model.getData()
|
|
397
408
|
|
|
@@ -412,7 +423,10 @@ export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
|
412
423
|
e: ev,
|
|
413
424
|
position,
|
|
414
425
|
})
|
|
415
|
-
|
|
426
|
+
// 静默模式下点击节点不变更节点层级
|
|
427
|
+
if (!editConfigModel.isSilentMode) {
|
|
428
|
+
this.toFront()
|
|
429
|
+
}
|
|
416
430
|
}
|
|
417
431
|
|
|
418
432
|
handleMouseDown = (ev: MouseEvent) => {
|
|
@@ -65,8 +65,9 @@ export class CanvasOverlay extends Component<IProps, IState> {
|
|
|
65
65
|
graphModel,
|
|
66
66
|
} = this.props
|
|
67
67
|
const { deltaX: eX, deltaY: eY } = ev
|
|
68
|
+
const { stopScrollGraph, stopZoomGraph } = editConfigModel
|
|
68
69
|
// 如果没有禁止滚动移动画布, 并且当前触发的时候ctrl键、cmd键没有按住, 那么移动画布
|
|
69
|
-
if (!
|
|
70
|
+
if (!stopScrollGraph && !ev.ctrlKey && !ev.metaKey) {
|
|
70
71
|
ev.preventDefault()
|
|
71
72
|
this.stepScrollX += eX
|
|
72
73
|
this.stepScrollY += eY
|
|
@@ -85,7 +86,7 @@ export class CanvasOverlay extends Component<IProps, IState> {
|
|
|
85
86
|
return
|
|
86
87
|
}
|
|
87
88
|
// 如果没有禁止缩放画布,那么进行缩放. 在禁止缩放画布后,按住 ctrl、cmd 键也不能缩放了。
|
|
88
|
-
if (!
|
|
89
|
+
if (!stopZoomGraph) {
|
|
89
90
|
ev.preventDefault()
|
|
90
91
|
const position = graphModel.getPointByClient({
|
|
91
92
|
x: ev.clientX,
|
|
@@ -133,11 +134,11 @@ export class CanvasOverlay extends Component<IProps, IState> {
|
|
|
133
134
|
gridSize,
|
|
134
135
|
},
|
|
135
136
|
} = this.props
|
|
137
|
+
const { adjustEdge, adjustNodePosition, stopMoveGraph } = editConfigModel
|
|
136
138
|
const target = ev.target as HTMLElement
|
|
137
|
-
const isFrozenElement =
|
|
138
|
-
!editConfigModel.adjustEdge && !editConfigModel.adjustNodePosition
|
|
139
|
+
const isFrozenElement = !adjustEdge && !adjustNodePosition
|
|
139
140
|
if (target.getAttribute('name') === 'canvas-overlay' || isFrozenElement) {
|
|
140
|
-
if (
|
|
141
|
+
if (stopMoveGraph !== true) {
|
|
141
142
|
this.stepDrag.setStep(gridSize * SCALE_X)
|
|
142
143
|
this.stepDrag.handleMouseDown(ev)
|
|
143
144
|
} else {
|