@logicflow/core 2.0.0-beta.0 → 2.0.0-beta.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 +16 -22
- package/__tests__/bugs/1545-spec.test.ts +19 -15
- package/__tests__/util/edge.test.ts +57 -57
- package/dist/index.min.js +32 -0
- package/dist/index.min.js.map +1 -0
- package/es/LogicFlow.d.ts +88 -40
- package/es/LogicFlow.js +38 -33
- package/es/LogicFlow.js.map +1 -1
- package/es/algorithm/edge.js.map +1 -1
- package/es/algorithm/index.d.ts +2 -0
- package/es/algorithm/index.js +2 -0
- package/es/algorithm/index.js.map +1 -1
- package/es/algorithm/outline.d.ts +1 -1
- package/es/common/drag.d.ts +51 -0
- package/es/common/drag.js +145 -0
- package/es/common/drag.js.map +1 -0
- package/es/common/history.d.ts +28 -0
- package/es/common/history.js +92 -0
- package/es/common/history.js.map +1 -0
- package/es/common/index.d.ts +5 -0
- package/es/common/index.js +6 -0
- package/es/common/index.js.map +1 -0
- package/es/common/keyboard.d.ts +34 -0
- package/es/common/keyboard.js +80 -0
- package/es/common/keyboard.js.map +1 -0
- package/es/common/matrix.d.ts +30 -0
- package/es/common/matrix.js +155 -0
- package/es/common/matrix.js.map +1 -0
- package/es/common/vector.d.ts +23 -0
- package/es/common/vector.js +97 -0
- package/es/common/vector.js.map +1 -0
- package/es/constant/index.d.ts +39 -2
- package/es/constant/index.js +41 -1
- package/es/constant/index.js.map +1 -1
- package/es/event/eventArgs.d.ts +103 -25
- package/es/event/eventEmitter.d.ts +2 -2
- package/es/event/eventEmitter.js +0 -1
- package/es/event/eventEmitter.js.map +1 -1
- package/es/index.d.ts +6 -1
- package/es/index.js +6 -1
- package/es/index.js.map +1 -1
- package/es/keyboard/index.d.ts +1 -0
- package/es/keyboard/index.js +1 -0
- package/es/keyboard/index.js.map +1 -1
- package/es/keyboard/shortcut.d.ts +8 -0
- package/es/keyboard/shortcut.js +70 -8
- package/es/keyboard/shortcut.js.map +1 -1
- package/es/model/BaseModel.d.ts +16 -7
- package/es/model/EditConfigModel.d.ts +97 -36
- package/es/model/EditConfigModel.js +169 -82
- package/es/model/EditConfigModel.js.map +1 -1
- package/es/model/GraphModel.d.ts +36 -14
- package/es/model/GraphModel.js +60 -10
- package/es/model/GraphModel.js.map +1 -1
- package/es/model/SnaplineModel.d.ts +2 -0
- package/es/model/TransformModel.js +1 -1
- package/es/model/TransformModel.js.map +1 -1
- package/es/model/edge/BaseEdgeModel.d.ts +21 -17
- package/es/model/edge/BaseEdgeModel.js +64 -42
- package/es/model/edge/BaseEdgeModel.js.map +1 -1
- package/es/model/edge/BezierEdgeModel.d.ts +5 -3
- package/es/model/edge/BezierEdgeModel.js +7 -3
- package/es/model/edge/BezierEdgeModel.js.map +1 -1
- package/es/model/edge/LineEdgeModel.d.ts +2 -0
- package/es/model/edge/LineEdgeModel.js +2 -1
- package/es/model/edge/LineEdgeModel.js.map +1 -1
- package/es/model/edge/PolylineEdgeModel.d.ts +5 -3
- package/es/model/edge/PolylineEdgeModel.js +22 -15
- package/es/model/edge/PolylineEdgeModel.js.map +1 -1
- package/es/model/node/BaseNodeModel.d.ts +42 -14
- package/es/model/node/BaseNodeModel.js +62 -48
- package/es/model/node/BaseNodeModel.js.map +1 -1
- package/es/model/node/CircleNodeModel.d.ts +4 -3
- package/es/model/node/CircleNodeModel.js +4 -7
- package/es/model/node/CircleNodeModel.js.map +1 -1
- package/es/model/node/DiamondNodeModel.d.ts +5 -4
- package/es/model/node/DiamondNodeModel.js +4 -6
- package/es/model/node/DiamondNodeModel.js.map +1 -1
- package/es/model/node/EllipseNodeModel.d.ts +5 -4
- package/es/model/node/EllipseNodeModel.js +4 -6
- package/es/model/node/EllipseNodeModel.js.map +1 -1
- package/es/model/node/HtmlNodeModel.d.ts +4 -5
- package/es/model/node/HtmlNodeModel.js +2 -12
- package/es/model/node/HtmlNodeModel.js.map +1 -1
- package/es/model/node/PolygonNodeModel.d.ts +5 -4
- package/es/model/node/PolygonNodeModel.js +4 -7
- package/es/model/node/PolygonNodeModel.js.map +1 -1
- package/es/model/node/RectNodeModel.d.ts +7 -5
- package/es/model/node/RectNodeModel.js +10 -7
- package/es/model/node/RectNodeModel.js.map +1 -1
- package/es/model/node/TextNodeModel.d.ts +17 -9
- package/es/model/node/TextNodeModel.js +2 -1
- package/es/model/node/TextNodeModel.js.map +1 -1
- package/es/options.d.ts +11 -14
- package/es/options.js +3 -42
- package/es/options.js.map +1 -1
- package/es/tool/MultipleSelectTool.d.ts +1 -1
- package/es/tool/MultipleSelectTool.js +5 -5
- package/es/tool/MultipleSelectTool.js.map +1 -1
- package/es/tool/TextEditTool.d.ts +3 -3
- package/es/tool/TextEditTool.js +2 -2
- package/es/tool/TextEditTool.js.map +1 -1
- package/es/tool/index.d.ts +24 -2
- package/es/tool/index.js +82 -2
- package/es/tool/index.js.map +1 -1
- package/es/util/drag.d.ts +5 -5
- package/es/util/drag.js +3 -1
- package/es/util/drag.js.map +1 -1
- package/es/util/edge.d.ts +9 -2
- package/es/util/edge.js +23 -12
- package/es/util/edge.js.map +1 -1
- package/es/util/index.d.ts +1 -0
- package/es/util/index.js +1 -0
- package/es/util/index.js.map +1 -1
- package/es/util/node.d.ts +8 -7
- package/es/util/node.js +26 -7
- package/es/util/node.js.map +1 -1
- package/es/util/resize.d.ts +32 -0
- package/es/util/resize.js +197 -0
- package/es/util/resize.js.map +1 -0
- package/es/view/Anchor.d.ts +6 -7
- package/es/view/Anchor.js +6 -3
- package/es/view/Anchor.js.map +1 -1
- package/es/view/Control.d.ts +1 -1
- package/es/view/Control.js +88 -39
- package/es/view/Control.js.map +1 -1
- package/es/view/Graph.d.ts +5 -1
- package/es/view/Graph.js +45 -5
- package/es/view/Graph.js.map +1 -1
- package/es/view/Rotate.js +2 -1
- package/es/view/Rotate.js.map +1 -1
- package/es/view/behavior/index.d.ts +2 -0
- package/es/view/behavior/index.js +3 -0
- package/es/view/behavior/index.js.map +1 -0
- package/es/view/behavior/snapline.d.ts +3 -0
- package/es/{tool → view/behavior}/snapline.js +0 -1
- package/es/view/behavior/snapline.js.map +1 -0
- package/es/view/edge/AdjustPoint.js +12 -23
- package/es/view/edge/AdjustPoint.js.map +1 -1
- package/es/view/edge/BaseEdge.d.ts +2 -2
- package/es/view/edge/BaseEdge.js +30 -22
- package/es/view/edge/BaseEdge.js.map +1 -1
- package/es/view/node/BaseNode.d.ts +4 -4
- package/es/view/node/BaseNode.js +33 -24
- package/es/view/node/BaseNode.js.map +1 -1
- package/es/view/node/CircleNode.d.ts +1 -1
- package/es/view/node/CircleNode.js.map +1 -1
- package/es/view/node/DiamondNode.d.ts +1 -1
- package/es/view/node/DiamondNode.js.map +1 -1
- package/es/view/node/EllipseNode.d.ts +1 -1
- package/es/view/node/EllipseNode.js.map +1 -1
- package/es/view/node/HtmlNode.d.ts +1 -1
- package/es/view/node/HtmlNode.js +2 -2
- package/es/view/node/HtmlNode.js.map +1 -1
- package/es/view/node/PolygonNode.d.ts +1 -1
- package/es/view/node/PolygonNode.js.map +1 -1
- package/es/view/node/RectNode.d.ts +1 -1
- package/es/view/node/RectNode.js.map +1 -1
- package/es/view/node/TextNode.d.ts +1 -1
- package/es/view/node/TextNode.js +1 -1
- package/es/view/node/TextNode.js.map +1 -1
- package/es/view/overlay/CanvasOverlay.js +5 -4
- package/es/view/overlay/CanvasOverlay.js.map +1 -1
- package/es/view/overlay/Grid.d.ts +35 -20
- package/es/view/overlay/Grid.js +35 -26
- package/es/view/overlay/Grid.js.map +1 -1
- package/es/view/overlay/ToolOverlay.d.ts +1 -1
- package/es/view/overlay/ToolOverlay.js +1 -1
- package/es/view/overlay/ToolOverlay.js.map +1 -1
- package/es/view/shape/Circle.d.ts +9 -1
- package/es/view/shape/Circle.js +5 -5
- package/es/view/shape/Circle.js.map +1 -1
- package/es/view/shape/Ellipse.d.ts +10 -1
- package/es/view/shape/Ellipse.js +5 -5
- package/es/view/shape/Ellipse.js.map +1 -1
- package/es/view/shape/Line.d.ts +14 -1
- package/es/view/shape/Line.js +5 -7
- package/es/view/shape/Line.js.map +1 -1
- package/es/view/shape/Path.d.ts +3 -2
- package/es/view/shape/Path.js +3 -3
- package/es/view/shape/Path.js.map +1 -1
- package/es/view/shape/Polygon.d.ts +5 -3
- package/es/view/shape/Polygon.js +6 -6
- package/es/view/shape/Polygon.js.map +1 -1
- package/es/view/shape/Polyline.d.ts +7 -1
- package/es/view/shape/Polyline.js +8 -6
- package/es/view/shape/Polyline.js.map +1 -1
- package/es/view/shape/Rect.d.ts +11 -13
- package/es/view/shape/Rect.js +6 -9
- package/es/view/shape/Rect.js.map +1 -1
- package/es/view/shape/Text.d.ts +19 -1
- package/es/view/shape/Text.js +28 -21
- package/es/view/shape/Text.js.map +1 -1
- package/es/view/text/BaseText.d.ts +12 -15
- package/es/view/text/BaseText.js +43 -29
- package/es/view/text/BaseText.js.map +1 -1
- package/es/view/text/LineText.d.ts +19 -7
- package/es/view/text/LineText.js +62 -54
- package/es/view/text/LineText.js.map +1 -1
- package/lib/LogicFlow.d.ts +88 -40
- package/lib/LogicFlow.js +40 -35
- package/lib/LogicFlow.js.map +1 -1
- package/lib/algorithm/edge.js.map +1 -1
- package/lib/algorithm/index.d.ts +2 -0
- package/lib/algorithm/index.js +17 -1
- package/lib/algorithm/index.js.map +1 -1
- package/lib/algorithm/outline.d.ts +1 -1
- package/lib/common/drag.d.ts +51 -0
- package/lib/common/drag.js +148 -0
- package/lib/common/drag.js.map +1 -0
- package/lib/common/history.d.ts +28 -0
- package/lib/common/history.js +95 -0
- package/lib/common/history.js.map +1 -0
- package/lib/common/index.d.ts +5 -0
- package/lib/common/index.js +22 -0
- package/lib/common/index.js.map +1 -0
- package/lib/common/keyboard.d.ts +34 -0
- package/lib/common/keyboard.js +86 -0
- package/lib/common/keyboard.js.map +1 -0
- package/lib/common/matrix.d.ts +30 -0
- package/lib/common/matrix.js +158 -0
- package/lib/common/matrix.js.map +1 -0
- package/lib/common/vector.d.ts +23 -0
- package/lib/common/vector.js +101 -0
- package/lib/common/vector.js.map +1 -0
- package/lib/constant/index.d.ts +39 -2
- package/lib/constant/index.js +42 -2
- package/lib/constant/index.js.map +1 -1
- package/lib/event/eventArgs.d.ts +103 -25
- package/lib/event/eventEmitter.d.ts +2 -2
- package/lib/event/eventEmitter.js +0 -1
- package/lib/event/eventEmitter.js.map +1 -1
- package/lib/index.d.ts +6 -1
- package/lib/index.js +7 -2
- package/lib/index.js.map +1 -1
- package/lib/keyboard/index.d.ts +1 -0
- package/lib/keyboard/index.js +15 -0
- package/lib/keyboard/index.js.map +1 -1
- package/lib/keyboard/shortcut.d.ts +8 -0
- package/lib/keyboard/shortcut.js +75 -9
- package/lib/keyboard/shortcut.js.map +1 -1
- package/lib/model/BaseModel.d.ts +16 -7
- package/lib/model/EditConfigModel.d.ts +97 -36
- package/lib/model/EditConfigModel.js +168 -81
- package/lib/model/EditConfigModel.js.map +1 -1
- package/lib/model/GraphModel.d.ts +36 -14
- package/lib/model/GraphModel.js +59 -9
- package/lib/model/GraphModel.js.map +1 -1
- package/lib/model/SnaplineModel.d.ts +2 -0
- package/lib/model/TransformModel.js +1 -1
- package/lib/model/TransformModel.js.map +1 -1
- package/lib/model/edge/BaseEdgeModel.d.ts +21 -17
- package/lib/model/edge/BaseEdgeModel.js +61 -39
- package/lib/model/edge/BaseEdgeModel.js.map +1 -1
- package/lib/model/edge/BezierEdgeModel.d.ts +5 -3
- package/lib/model/edge/BezierEdgeModel.js +6 -2
- package/lib/model/edge/BezierEdgeModel.js.map +1 -1
- package/lib/model/edge/LineEdgeModel.d.ts +2 -0
- package/lib/model/edge/LineEdgeModel.js +2 -1
- package/lib/model/edge/LineEdgeModel.js.map +1 -1
- package/lib/model/edge/PolylineEdgeModel.d.ts +5 -3
- package/lib/model/edge/PolylineEdgeModel.js +21 -14
- package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
- package/lib/model/node/BaseNodeModel.d.ts +42 -14
- package/lib/model/node/BaseNodeModel.js +60 -46
- package/lib/model/node/BaseNodeModel.js.map +1 -1
- package/lib/model/node/CircleNodeModel.d.ts +4 -3
- package/lib/model/node/CircleNodeModel.js +4 -7
- package/lib/model/node/CircleNodeModel.js.map +1 -1
- package/lib/model/node/DiamondNodeModel.d.ts +5 -4
- package/lib/model/node/DiamondNodeModel.js +4 -6
- package/lib/model/node/DiamondNodeModel.js.map +1 -1
- package/lib/model/node/EllipseNodeModel.d.ts +5 -4
- package/lib/model/node/EllipseNodeModel.js +4 -6
- package/lib/model/node/EllipseNodeModel.js.map +1 -1
- package/lib/model/node/HtmlNodeModel.d.ts +4 -5
- package/lib/model/node/HtmlNodeModel.js +2 -12
- package/lib/model/node/HtmlNodeModel.js.map +1 -1
- package/lib/model/node/PolygonNodeModel.d.ts +5 -4
- package/lib/model/node/PolygonNodeModel.js +4 -7
- package/lib/model/node/PolygonNodeModel.js.map +1 -1
- package/lib/model/node/RectNodeModel.d.ts +7 -5
- package/lib/model/node/RectNodeModel.js +10 -7
- package/lib/model/node/RectNodeModel.js.map +1 -1
- package/lib/model/node/TextNodeModel.d.ts +17 -9
- package/lib/model/node/TextNodeModel.js +2 -1
- package/lib/model/node/TextNodeModel.js.map +1 -1
- package/lib/options.d.ts +11 -14
- package/lib/options.js +3 -42
- package/lib/options.js.map +1 -1
- package/lib/tool/MultipleSelectTool.d.ts +1 -1
- package/lib/tool/MultipleSelectTool.js +5 -5
- package/lib/tool/MultipleSelectTool.js.map +1 -1
- package/lib/tool/TextEditTool.d.ts +3 -3
- package/lib/tool/TextEditTool.js +4 -4
- package/lib/tool/TextEditTool.js.map +1 -1
- package/lib/tool/index.d.ts +24 -2
- package/lib/tool/index.js +85 -15
- package/lib/tool/index.js.map +1 -1
- package/lib/util/drag.d.ts +5 -5
- package/lib/util/drag.js +3 -1
- package/lib/util/drag.js.map +1 -1
- package/lib/util/edge.d.ts +9 -2
- package/lib/util/edge.js +27 -15
- package/lib/util/edge.js.map +1 -1
- package/lib/util/index.d.ts +1 -0
- package/lib/util/index.js +1 -0
- package/lib/util/index.js.map +1 -1
- package/lib/util/node.d.ts +8 -7
- package/lib/util/node.js +28 -9
- package/lib/util/node.js.map +1 -1
- package/lib/util/resize.d.ts +32 -0
- package/lib/util/resize.js +204 -0
- package/lib/util/resize.js.map +1 -0
- package/lib/view/Anchor.d.ts +6 -7
- package/lib/view/Anchor.js +5 -2
- package/lib/view/Anchor.js.map +1 -1
- package/lib/view/Control.d.ts +1 -1
- package/lib/view/Control.js +87 -38
- package/lib/view/Control.js.map +1 -1
- package/lib/view/Graph.d.ts +5 -1
- package/lib/view/Graph.js +44 -4
- package/lib/view/Graph.js.map +1 -1
- package/lib/view/Rotate.js +2 -1
- package/lib/view/Rotate.js.map +1 -1
- package/lib/view/behavior/index.d.ts +2 -0
- package/lib/view/behavior/index.js +19 -0
- package/lib/view/behavior/index.js.map +1 -0
- package/lib/view/behavior/snapline.d.ts +3 -0
- package/lib/{tool → view/behavior}/snapline.js +0 -1
- package/lib/view/behavior/snapline.js.map +1 -0
- package/lib/view/edge/AdjustPoint.js +11 -22
- package/lib/view/edge/AdjustPoint.js.map +1 -1
- package/lib/view/edge/BaseEdge.d.ts +2 -2
- package/lib/view/edge/BaseEdge.js +29 -21
- package/lib/view/edge/BaseEdge.js.map +1 -1
- package/lib/view/node/BaseNode.d.ts +4 -4
- package/lib/view/node/BaseNode.js +32 -23
- package/lib/view/node/BaseNode.js.map +1 -1
- package/lib/view/node/CircleNode.d.ts +1 -1
- package/lib/view/node/CircleNode.js.map +1 -1
- package/lib/view/node/DiamondNode.d.ts +1 -1
- package/lib/view/node/DiamondNode.js.map +1 -1
- package/lib/view/node/EllipseNode.d.ts +1 -1
- package/lib/view/node/EllipseNode.js.map +1 -1
- package/lib/view/node/HtmlNode.d.ts +1 -1
- package/lib/view/node/HtmlNode.js +2 -2
- package/lib/view/node/HtmlNode.js.map +1 -1
- package/lib/view/node/PolygonNode.d.ts +1 -1
- package/lib/view/node/PolygonNode.js.map +1 -1
- package/lib/view/node/RectNode.d.ts +1 -1
- package/lib/view/node/RectNode.js.map +1 -1
- package/lib/view/node/TextNode.d.ts +1 -1
- package/lib/view/node/TextNode.js +1 -1
- package/lib/view/node/TextNode.js.map +1 -1
- package/lib/view/overlay/CanvasOverlay.js +5 -4
- package/lib/view/overlay/CanvasOverlay.js.map +1 -1
- package/lib/view/overlay/Grid.d.ts +35 -20
- package/lib/view/overlay/Grid.js +35 -26
- package/lib/view/overlay/Grid.js.map +1 -1
- package/lib/view/overlay/ToolOverlay.d.ts +1 -1
- package/lib/view/overlay/ToolOverlay.js +1 -1
- package/lib/view/overlay/ToolOverlay.js.map +1 -1
- package/lib/view/shape/Circle.d.ts +9 -1
- package/lib/view/shape/Circle.js +5 -5
- package/lib/view/shape/Circle.js.map +1 -1
- package/lib/view/shape/Ellipse.d.ts +10 -1
- package/lib/view/shape/Ellipse.js +5 -5
- package/lib/view/shape/Ellipse.js.map +1 -1
- package/lib/view/shape/Line.d.ts +14 -1
- package/lib/view/shape/Line.js +5 -7
- package/lib/view/shape/Line.js.map +1 -1
- package/lib/view/shape/Path.d.ts +3 -2
- package/lib/view/shape/Path.js +3 -3
- package/lib/view/shape/Path.js.map +1 -1
- package/lib/view/shape/Polygon.d.ts +5 -3
- package/lib/view/shape/Polygon.js +6 -6
- package/lib/view/shape/Polygon.js.map +1 -1
- package/lib/view/shape/Polyline.d.ts +7 -1
- package/lib/view/shape/Polyline.js +8 -6
- package/lib/view/shape/Polyline.js.map +1 -1
- package/lib/view/shape/Rect.d.ts +11 -13
- package/lib/view/shape/Rect.js +6 -9
- package/lib/view/shape/Rect.js.map +1 -1
- package/lib/view/shape/Text.d.ts +19 -1
- package/lib/view/shape/Text.js +29 -21
- package/lib/view/shape/Text.js.map +1 -1
- package/lib/view/text/BaseText.d.ts +12 -15
- package/lib/view/text/BaseText.js +46 -29
- package/lib/view/text/BaseText.js.map +1 -1
- package/lib/view/text/LineText.d.ts +19 -7
- package/lib/view/text/LineText.js +62 -57
- package/lib/view/text/LineText.js.map +1 -1
- package/package.json +5 -4
- package/src/LogicFlow.tsx +163 -79
- package/src/algorithm/edge.ts +1 -0
- package/src/algorithm/index.ts +2 -0
- package/src/algorithm/outline.ts +2 -2
- package/src/common/drag.ts +219 -0
- package/src/common/history.ts +108 -0
- package/src/common/index.ts +6 -0
- package/src/common/keyboard.ts +108 -0
- package/src/common/matrix.ts +122 -0
- package/src/common/vector.ts +93 -0
- package/src/constant/index.ts +43 -1
- package/src/event/eventArgs.ts +173 -34
- package/src/event/eventEmitter.ts +2 -3
- package/src/index.ts +6 -1
- package/src/keyboard/index.ts +2 -0
- package/src/keyboard/shortcut.ts +79 -8
- package/src/model/BaseModel.ts +18 -7
- package/src/model/EditConfigModel.ts +209 -97
- package/src/model/GraphModel.ts +64 -9
- package/src/model/TransformModel.ts +1 -1
- package/src/model/edge/BaseEdgeModel.ts +105 -42
- package/src/model/edge/BezierEdgeModel.ts +7 -6
- package/src/model/edge/LineEdgeModel.ts +2 -0
- package/src/model/edge/PolylineEdgeModel.ts +24 -18
- package/src/model/node/BaseNodeModel.ts +72 -47
- package/src/model/node/CircleNodeModel.ts +8 -7
- package/src/model/node/DiamondNodeModel.ts +9 -6
- package/src/model/node/EllipseNodeModel.ts +9 -6
- package/src/model/node/HtmlNodeModel.ts +8 -7
- package/src/model/node/PolygonNodeModel.ts +9 -7
- package/src/model/node/RectNodeModel.ts +16 -8
- package/src/model/node/TextNodeModel.ts +14 -1
- package/src/options.ts +18 -53
- package/src/tool/MultipleSelectTool.tsx +6 -6
- package/src/tool/TextEditTool.tsx +3 -3
- package/src/tool/index.ts +96 -2
- package/src/util/drag.ts +22 -6
- package/src/util/edge.ts +39 -13
- package/src/util/index.ts +1 -0
- package/src/util/node.ts +36 -13
- package/src/util/resize.ts +286 -0
- package/src/view/Anchor.tsx +7 -5
- package/src/view/Control.tsx +93 -62
- package/src/view/Graph.tsx +23 -6
- package/src/view/Rotate.tsx +2 -1
- package/src/view/behavior/index.ts +2 -0
- package/src/{tool → view/behavior}/snapline.ts +3 -4
- package/src/view/edge/AdjustPoint.tsx +35 -49
- package/src/view/edge/BaseEdge.tsx +65 -45
- package/src/view/node/BaseNode.tsx +55 -28
- package/src/view/node/CircleNode.tsx +3 -1
- package/src/view/node/DiamondNode.tsx +3 -1
- package/src/view/node/EllipseNode.tsx +3 -1
- package/src/view/node/HtmlNode.tsx +5 -3
- package/src/view/node/PolygonNode.tsx +3 -1
- package/src/view/node/RectNode.tsx +3 -1
- package/src/view/node/TextNode.tsx +4 -2
- package/src/view/overlay/CanvasOverlay.tsx +5 -4
- package/src/view/overlay/Grid.tsx +75 -53
- package/src/view/overlay/ToolOverlay.tsx +1 -1
- package/src/view/shape/Circle.tsx +21 -7
- package/src/view/shape/Ellipse.tsx +20 -6
- package/src/view/shape/Line.tsx +24 -9
- package/src/view/shape/Path.tsx +9 -6
- package/src/view/shape/Polygon.tsx +13 -10
- package/src/view/shape/Polyline.tsx +20 -8
- package/src/view/shape/Rect.tsx +19 -19
- package/src/view/shape/Text.tsx +64 -33
- package/src/view/text/BaseText.tsx +76 -42
- package/src/view/text/LineText.tsx +94 -80
- package/tsconfig.json +1 -1
- package/dist/index.js +0 -26
- package/dist/index.js.map +0 -1
- package/es/tool/snapline.d.ts +0 -3
- package/es/tool/snapline.js.map +0 -1
- package/es/tool/tool.d.ts +0 -22
- package/es/tool/tool.js +0 -43
- package/es/tool/tool.js.map +0 -1
- package/lib/tool/snapline.d.ts +0 -3
- package/lib/tool/snapline.js.map +0 -1
- package/lib/tool/tool.d.ts +0 -22
- package/lib/tool/tool.js +0 -49
- package/lib/tool/tool.js.map +0 -1
- package/src/tool/tool.ts +0 -66
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import { assign, cloneDeep, find } from 'lodash-es'
|
|
2
|
-
import { action, computed, observable, toJS } from 'mobx'
|
|
1
|
+
import { assign, cloneDeep, find, isUndefined } from 'lodash-es'
|
|
2
|
+
import { action, computed, isObservable, observable, toJS } from 'mobx'
|
|
3
3
|
import { BaseNodeModel, GraphModel, Model } from '..'
|
|
4
4
|
import LogicFlow from '../../LogicFlow'
|
|
5
5
|
import {
|
|
@@ -15,17 +15,22 @@ import {
|
|
|
15
15
|
ElementType,
|
|
16
16
|
ModelType,
|
|
17
17
|
OverlapMode,
|
|
18
|
+
TextMode,
|
|
18
19
|
} from '../../constant'
|
|
19
20
|
|
|
20
21
|
import Point = LogicFlow.Point
|
|
21
22
|
import EdgeData = LogicFlow.EdgeData
|
|
22
23
|
import EdgeConfig = LogicFlow.EdgeConfig
|
|
24
|
+
import TextConfig = LogicFlow.TextConfig
|
|
25
|
+
import PropertiesType = LogicFlow.PropertiesType
|
|
23
26
|
|
|
24
|
-
export interface IBaseEdgeModel extends
|
|
27
|
+
export interface IBaseEdgeModel<P extends PropertiesType>
|
|
28
|
+
extends Model.BaseModel<P> {
|
|
25
29
|
/**
|
|
26
30
|
* model 基础类型,固定为 edge
|
|
27
31
|
*/
|
|
28
32
|
readonly BaseType: ElementType.EDGE
|
|
33
|
+
properties: P
|
|
29
34
|
|
|
30
35
|
sourceNodeId: string
|
|
31
36
|
targetNodeId: string
|
|
@@ -44,7 +49,9 @@ export interface IBaseEdgeModel extends Model.BaseModel {
|
|
|
44
49
|
arrowConfig?: LogicFlow.ArrowConfig
|
|
45
50
|
}
|
|
46
51
|
|
|
47
|
-
export class BaseEdgeModel
|
|
52
|
+
export class BaseEdgeModel<P extends PropertiesType = PropertiesType>
|
|
53
|
+
implements IBaseEdgeModel<P>
|
|
54
|
+
{
|
|
48
55
|
readonly BaseType = ElementType.EDGE
|
|
49
56
|
static BaseType: ElementType = ElementType.EDGE
|
|
50
57
|
|
|
@@ -56,14 +63,15 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
56
63
|
@observable startPoint!: Point
|
|
57
64
|
@observable endPoint!: Point
|
|
58
65
|
|
|
59
|
-
@observable
|
|
66
|
+
@observable textMode = TextMode.TEXT
|
|
67
|
+
@observable text: Required<TextConfig> = {
|
|
60
68
|
value: '',
|
|
61
69
|
x: 0,
|
|
62
70
|
y: 0,
|
|
63
71
|
draggable: false,
|
|
64
72
|
editable: true,
|
|
65
73
|
}
|
|
66
|
-
@observable properties:
|
|
74
|
+
@observable properties: P
|
|
67
75
|
@observable points = ''
|
|
68
76
|
@observable pointsList: Point[] = []
|
|
69
77
|
|
|
@@ -83,7 +91,6 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
83
91
|
graphModel: GraphModel
|
|
84
92
|
@observable zIndex: number = 0
|
|
85
93
|
@observable state = ElementState.DEFAULT
|
|
86
|
-
|
|
87
94
|
modelType = ModelType.EDGE
|
|
88
95
|
additionStateData?: Model.AdditionStateDataType
|
|
89
96
|
|
|
@@ -102,11 +109,14 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
102
109
|
};
|
|
103
110
|
[propName: string]: unknown // 支持自定义
|
|
104
111
|
|
|
105
|
-
constructor(data: EdgeConfig
|
|
112
|
+
constructor(data: EdgeConfig<P>, graphModel: GraphModel) {
|
|
106
113
|
this.graphModel = graphModel
|
|
114
|
+
this.properties = data.properties ?? ({} as P)
|
|
115
|
+
|
|
107
116
|
this.initEdgeData(data)
|
|
108
117
|
this.setAttributes()
|
|
109
118
|
}
|
|
119
|
+
|
|
110
120
|
/**
|
|
111
121
|
* 初始化边数据
|
|
112
122
|
* @overridable 支持重写
|
|
@@ -145,15 +155,18 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
145
155
|
// 文本位置依赖于边上的所有拐点
|
|
146
156
|
this.formatText(data)
|
|
147
157
|
}
|
|
158
|
+
|
|
148
159
|
/**
|
|
149
160
|
* 设置model属性
|
|
150
161
|
* @overridable 支持重写
|
|
151
162
|
* 每次properties发生变化会触发
|
|
152
163
|
*/
|
|
153
164
|
setAttributes() {}
|
|
165
|
+
|
|
154
166
|
createId(): string | null {
|
|
155
167
|
return null
|
|
156
168
|
}
|
|
169
|
+
|
|
157
170
|
/**
|
|
158
171
|
* 自定义边样式
|
|
159
172
|
*
|
|
@@ -166,6 +179,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
166
179
|
...this.style,
|
|
167
180
|
}
|
|
168
181
|
}
|
|
182
|
+
|
|
169
183
|
/**
|
|
170
184
|
* 自定义边调整点样式
|
|
171
185
|
*
|
|
@@ -187,6 +201,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
187
201
|
const { edgeText } = this.graphModel.theme
|
|
188
202
|
return cloneDeep(edgeText)
|
|
189
203
|
}
|
|
204
|
+
|
|
190
205
|
/**
|
|
191
206
|
* 自定义边动画样式
|
|
192
207
|
*
|
|
@@ -204,6 +219,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
204
219
|
const { edgeAnimation } = this.graphModel.theme
|
|
205
220
|
return cloneDeep(edgeAnimation)
|
|
206
221
|
}
|
|
222
|
+
|
|
207
223
|
/**
|
|
208
224
|
* 自定义边箭头样式
|
|
209
225
|
*
|
|
@@ -229,6 +245,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
229
245
|
...arrow,
|
|
230
246
|
}
|
|
231
247
|
}
|
|
248
|
+
|
|
232
249
|
/**
|
|
233
250
|
* 自定义边被选中时展示其范围的矩形框样式
|
|
234
251
|
*
|
|
@@ -247,6 +264,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
247
264
|
const { outline } = graphModel.theme
|
|
248
265
|
return cloneDeep(outline)
|
|
249
266
|
}
|
|
267
|
+
|
|
250
268
|
/**
|
|
251
269
|
* 重新自定义文本位置
|
|
252
270
|
*
|
|
@@ -258,18 +276,21 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
258
276
|
y: 0,
|
|
259
277
|
}
|
|
260
278
|
}
|
|
279
|
+
|
|
261
280
|
/**
|
|
262
281
|
* 边的前一个节点
|
|
263
282
|
*/
|
|
264
283
|
@computed get sourceNode() {
|
|
265
284
|
return this.graphModel?.nodesMap[this.sourceNodeId]?.model
|
|
266
285
|
}
|
|
286
|
+
|
|
267
287
|
/**
|
|
268
288
|
* 边的后一个节点
|
|
269
289
|
*/
|
|
270
290
|
@computed get targetNode() {
|
|
271
291
|
return this.graphModel?.nodesMap[this.targetNodeId]?.model
|
|
272
292
|
}
|
|
293
|
+
|
|
273
294
|
@computed get textPosition(): Point {
|
|
274
295
|
return this.getTextPosition()
|
|
275
296
|
}
|
|
@@ -346,28 +367,37 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
346
367
|
})
|
|
347
368
|
return position
|
|
348
369
|
}
|
|
370
|
+
|
|
349
371
|
/**
|
|
350
372
|
* 获取当前边的properties
|
|
351
373
|
*/
|
|
352
374
|
getProperties() {
|
|
353
375
|
return toJS(this.properties)
|
|
354
376
|
}
|
|
377
|
+
|
|
355
378
|
/**
|
|
356
379
|
* 获取被保存时返回的数据
|
|
357
380
|
*
|
|
358
381
|
* @overridable 支持重写
|
|
359
382
|
*/
|
|
360
383
|
getData(): EdgeData {
|
|
361
|
-
|
|
384
|
+
let { properties } = this
|
|
385
|
+
if (isObservable(properties)) {
|
|
386
|
+
properties = toJS(properties)
|
|
387
|
+
}
|
|
362
388
|
const data: EdgeData = {
|
|
363
389
|
id: this.id,
|
|
364
390
|
type: this.type,
|
|
391
|
+
properties,
|
|
365
392
|
sourceNodeId: this.sourceNode.id,
|
|
366
393
|
targetNodeId: this.targetNode.id,
|
|
367
394
|
startPoint: assign({}, this.startPoint),
|
|
368
395
|
endPoint: assign({}, this.endPoint),
|
|
369
|
-
properties: toJS(this.properties),
|
|
370
396
|
}
|
|
397
|
+
if (this.graphModel.overlapMode === OverlapMode.INCREASE) {
|
|
398
|
+
data.zIndex = this.zIndex
|
|
399
|
+
}
|
|
400
|
+
const { x, y, value } = this.text
|
|
371
401
|
if (value) {
|
|
372
402
|
data.text = {
|
|
373
403
|
x,
|
|
@@ -375,11 +405,9 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
375
405
|
value,
|
|
376
406
|
}
|
|
377
407
|
}
|
|
378
|
-
if (this.graphModel.overlapMode === OverlapMode.INCREASE) {
|
|
379
|
-
data.zIndex = this.zIndex
|
|
380
|
-
}
|
|
381
408
|
return data
|
|
382
409
|
}
|
|
410
|
+
|
|
383
411
|
/**
|
|
384
412
|
* 获取边的数据
|
|
385
413
|
*
|
|
@@ -391,6 +419,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
391
419
|
getHistoryData(): EdgeData {
|
|
392
420
|
return this.getData()
|
|
393
421
|
}
|
|
422
|
+
|
|
394
423
|
/**
|
|
395
424
|
* 设置边的属性,会触发重新渲染
|
|
396
425
|
* @param key 属性名
|
|
@@ -398,9 +427,15 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
398
427
|
*/
|
|
399
428
|
@action
|
|
400
429
|
setProperty(key: string, val: any): void {
|
|
401
|
-
|
|
430
|
+
const preProperties = toJS(this.properties)
|
|
431
|
+
this.properties = {
|
|
432
|
+
...preProperties,
|
|
433
|
+
[key]: formatData(val),
|
|
434
|
+
}
|
|
435
|
+
|
|
402
436
|
this.setAttributes()
|
|
403
437
|
}
|
|
438
|
+
|
|
404
439
|
/**
|
|
405
440
|
* 删除边的属性,会触发重新渲染
|
|
406
441
|
* @param key 属性名
|
|
@@ -410,10 +445,10 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
410
445
|
delete this.properties[key]
|
|
411
446
|
this.setAttributes()
|
|
412
447
|
}
|
|
448
|
+
|
|
413
449
|
/**
|
|
414
450
|
* 设置边的属性,会触发重新渲染
|
|
415
|
-
* @param
|
|
416
|
-
* @param val 属性值
|
|
451
|
+
* @param properties 要更新的 properties,会做合并
|
|
417
452
|
*/
|
|
418
453
|
@action
|
|
419
454
|
setProperties(properties: Record<string, any>): void {
|
|
@@ -423,6 +458,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
423
458
|
}
|
|
424
459
|
this.setAttributes()
|
|
425
460
|
}
|
|
461
|
+
|
|
426
462
|
/**
|
|
427
463
|
* 修改边的id
|
|
428
464
|
*/
|
|
@@ -437,6 +473,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
437
473
|
}
|
|
438
474
|
this.id = id
|
|
439
475
|
}
|
|
476
|
+
|
|
440
477
|
/**
|
|
441
478
|
* 设置边样式,用于插件开发时跳过自定义边的渲染。大多数情况下,不需要使用此方法。
|
|
442
479
|
* 如果需要设置边的样式,请使用 getEdgeStyle 方法自定义边样式。
|
|
@@ -448,6 +485,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
448
485
|
[key]: formatData(val),
|
|
449
486
|
}
|
|
450
487
|
}
|
|
488
|
+
|
|
451
489
|
/**
|
|
452
490
|
* 设置边样式,用于插件开发时跳过自定义边的渲染。大多数情况下,不需要使用此方法。
|
|
453
491
|
* 如果需要设置边的样式,请使用 getEdgeStyle 方法自定义边样式。
|
|
@@ -459,6 +497,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
459
497
|
...formatData(styles),
|
|
460
498
|
}
|
|
461
499
|
}
|
|
500
|
+
|
|
462
501
|
/**
|
|
463
502
|
* 设置边样式,用于插件开发时跳过自定义边的渲染。大多数情况下,不需要使用此方法。
|
|
464
503
|
* 如果需要设置边的样式,请使用 getEdgeStyle 方法自定义边样式。
|
|
@@ -470,32 +509,50 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
470
509
|
}
|
|
471
510
|
}
|
|
472
511
|
|
|
512
|
+
/**
|
|
513
|
+
* 设置当前元素的文本模式
|
|
514
|
+
* @param mode
|
|
515
|
+
*/
|
|
516
|
+
@action setTextMode(mode: TextMode) {
|
|
517
|
+
this.textMode = mode
|
|
518
|
+
}
|
|
519
|
+
|
|
473
520
|
/**
|
|
474
521
|
* 内部方法,处理初始化文本格式
|
|
475
522
|
*/
|
|
476
523
|
@action formatText(data: EdgeConfig) {
|
|
477
|
-
// 暂时处理,只传入text的情况
|
|
478
524
|
const { x, y } = this.textPosition
|
|
479
|
-
|
|
480
|
-
|
|
481
|
-
|
|
482
|
-
|
|
483
|
-
|
|
484
|
-
|
|
485
|
-
|
|
486
|
-
}
|
|
487
|
-
return
|
|
525
|
+
const { text } = data
|
|
526
|
+
let textConfig: Required<TextConfig> = {
|
|
527
|
+
value: '',
|
|
528
|
+
x,
|
|
529
|
+
y,
|
|
530
|
+
draggable: false,
|
|
531
|
+
editable: true,
|
|
488
532
|
}
|
|
489
533
|
|
|
490
|
-
if (
|
|
491
|
-
|
|
492
|
-
|
|
493
|
-
|
|
494
|
-
|
|
495
|
-
|
|
496
|
-
|
|
534
|
+
if (text) {
|
|
535
|
+
if (typeof text === 'string') {
|
|
536
|
+
textConfig = {
|
|
537
|
+
...textConfig,
|
|
538
|
+
value: text,
|
|
539
|
+
}
|
|
540
|
+
} else {
|
|
541
|
+
textConfig = {
|
|
542
|
+
...textConfig,
|
|
543
|
+
x: text.x ?? x,
|
|
544
|
+
y: text.y ?? y,
|
|
545
|
+
value: text.value ?? '',
|
|
546
|
+
}
|
|
547
|
+
if (!isUndefined(text.draggable)) {
|
|
548
|
+
textConfig.draggable = text.draggable
|
|
549
|
+
}
|
|
550
|
+
if (!isUndefined(text.editable)) {
|
|
551
|
+
textConfig.editable = text.editable
|
|
552
|
+
}
|
|
497
553
|
}
|
|
498
554
|
}
|
|
555
|
+
this.text = textConfig
|
|
499
556
|
}
|
|
500
557
|
/**
|
|
501
558
|
* 重置文本位置
|
|
@@ -505,21 +562,21 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
505
562
|
this.text.x = x
|
|
506
563
|
this.text.y = y
|
|
507
564
|
}
|
|
565
|
+
|
|
508
566
|
/**
|
|
509
567
|
* 移动边上的文本
|
|
510
568
|
*/
|
|
511
569
|
@action moveText(deltaX: number, deltaY: number): void {
|
|
512
|
-
|
|
513
|
-
|
|
514
|
-
|
|
515
|
-
|
|
516
|
-
|
|
517
|
-
|
|
518
|
-
|
|
519
|
-
editable,
|
|
520
|
-
}
|
|
570
|
+
const { x, y, value, draggable, editable } = this.text
|
|
571
|
+
this.text = {
|
|
572
|
+
value,
|
|
573
|
+
editable,
|
|
574
|
+
draggable,
|
|
575
|
+
x: x + deltaX,
|
|
576
|
+
y: y + deltaY,
|
|
521
577
|
}
|
|
522
578
|
}
|
|
579
|
+
|
|
523
580
|
/**
|
|
524
581
|
* 设置文本位置和值
|
|
525
582
|
*/
|
|
@@ -528,6 +585,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
528
585
|
assign(this.text, textConfig)
|
|
529
586
|
}
|
|
530
587
|
}
|
|
588
|
+
|
|
531
589
|
/**
|
|
532
590
|
* 更新文本的值
|
|
533
591
|
*/
|
|
@@ -537,6 +595,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
537
595
|
value,
|
|
538
596
|
}
|
|
539
597
|
}
|
|
598
|
+
|
|
540
599
|
/**
|
|
541
600
|
* 内部方法,计算边的起点和终点和其对于的锚点Id
|
|
542
601
|
*/
|
|
@@ -602,6 +661,7 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
602
661
|
setHitable(flag = true): void {
|
|
603
662
|
this.isHitable = flag
|
|
604
663
|
}
|
|
664
|
+
|
|
605
665
|
@action
|
|
606
666
|
setHittable(flag = true): void {
|
|
607
667
|
this.isHittable = flag
|
|
@@ -664,16 +724,19 @@ export class BaseEdgeModel implements IBaseEdgeModel {
|
|
|
664
724
|
updateAttributes(attributes) {
|
|
665
725
|
assign(this, attributes)
|
|
666
726
|
}
|
|
727
|
+
|
|
667
728
|
// 获取边调整的起点
|
|
668
729
|
@action
|
|
669
730
|
getAdjustStart() {
|
|
670
731
|
return this.startPoint
|
|
671
732
|
}
|
|
733
|
+
|
|
672
734
|
// 获取边调整的终点
|
|
673
735
|
@action
|
|
674
736
|
getAdjustEnd() {
|
|
675
737
|
return this.endPoint
|
|
676
738
|
}
|
|
739
|
+
|
|
677
740
|
// 起终点拖拽调整过程中,进行直线路径更新
|
|
678
741
|
@action
|
|
679
742
|
updateAfterAdjustStartAndEnd({
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import { cloneDeep } from 'lodash-es'
|
|
1
|
+
import { assign, cloneDeep } from 'lodash-es'
|
|
2
2
|
import { action, observable } from 'mobx'
|
|
3
3
|
import BaseEdgeModel from './BaseEdgeModel'
|
|
4
4
|
import { BaseNodeModel } from '../node'
|
|
5
5
|
import LogicFlow from '../../LogicFlow'
|
|
6
|
+
import GraphModel from '../GraphModel'
|
|
6
7
|
import { ModelType } from '../../constant'
|
|
7
8
|
import { getBezierControlPoints, IBezierControls } from '../../util'
|
|
8
|
-
import GraphModel from '../GraphModel'
|
|
9
9
|
|
|
10
10
|
import Point = LogicFlow.Point
|
|
11
11
|
import EdgeConfig = LogicFlow.EdgeConfig
|
|
@@ -15,14 +15,11 @@ export class BezierEdgeModel extends BaseEdgeModel {
|
|
|
15
15
|
|
|
16
16
|
offset!: number
|
|
17
17
|
@observable path = ''
|
|
18
|
-
|
|
19
18
|
constructor(data: EdgeConfig, graphModel: GraphModel) {
|
|
20
19
|
super(data, graphModel)
|
|
21
|
-
|
|
22
20
|
this.initEdgeData(data)
|
|
23
21
|
this.setAttributes()
|
|
24
22
|
}
|
|
25
|
-
|
|
26
23
|
initEdgeData(data: EdgeConfig): void {
|
|
27
24
|
this.offset = 100
|
|
28
25
|
super.initEdgeData(data)
|
|
@@ -30,9 +27,11 @@ export class BezierEdgeModel extends BaseEdgeModel {
|
|
|
30
27
|
getEdgeStyle() {
|
|
31
28
|
const { bezier } = this.graphModel.theme
|
|
32
29
|
const style = super.getEdgeStyle()
|
|
30
|
+
const { style: customStyle = {} } = this.properties
|
|
33
31
|
return {
|
|
34
32
|
...style,
|
|
35
33
|
...cloneDeep(bezier),
|
|
34
|
+
...cloneDeep(customStyle),
|
|
36
35
|
}
|
|
37
36
|
}
|
|
38
37
|
getTextPosition(): Point {
|
|
@@ -155,7 +154,9 @@ export class BezierEdgeModel extends BaseEdgeModel {
|
|
|
155
154
|
this.pointsList[2] = anchor
|
|
156
155
|
}
|
|
157
156
|
this.path = this.getPath(this.pointsList)
|
|
158
|
-
|
|
157
|
+
if (this.text?.value) {
|
|
158
|
+
this.setText(assign({}, this.text, this.textPosition))
|
|
159
|
+
}
|
|
159
160
|
}
|
|
160
161
|
// 获取边调整的起点
|
|
161
162
|
@action
|
|
@@ -10,9 +10,11 @@ export class LineEdgeModel extends BaseEdgeModel {
|
|
|
10
10
|
getEdgeStyle() {
|
|
11
11
|
const { line } = this.graphModel.theme
|
|
12
12
|
const style = super.getEdgeStyle()
|
|
13
|
+
const { style: customStyle = {} } = this.properties
|
|
13
14
|
return {
|
|
14
15
|
...style,
|
|
15
16
|
...cloneDeep(line),
|
|
17
|
+
...cloneDeep(customStyle),
|
|
16
18
|
}
|
|
17
19
|
}
|
|
18
20
|
getTextPosition(): Point {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { cloneDeep } from 'lodash-es'
|
|
1
|
+
import { assign, cloneDeep } from 'lodash-es'
|
|
2
2
|
import { observable, action } from 'mobx'
|
|
3
3
|
import { BaseEdgeModel } from '.'
|
|
4
4
|
import { BaseNodeModel, RectNodeModel, CircleNodeModel, Model } from '..'
|
|
@@ -25,7 +25,7 @@ import {
|
|
|
25
25
|
import Point = LogicFlow.Point
|
|
26
26
|
import Position = LogicFlow.Position
|
|
27
27
|
import AppendConfig = LogicFlow.AppendConfig
|
|
28
|
-
import
|
|
28
|
+
import AnchorConfig = Model.AnchorConfig
|
|
29
29
|
|
|
30
30
|
export class PolylineEdgeModel extends BaseEdgeModel {
|
|
31
31
|
modelType = ModelType.POLYLINE_EDGE
|
|
@@ -41,22 +41,22 @@ export class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
41
41
|
getEdgeStyle() {
|
|
42
42
|
const { polyline } = this.graphModel.theme
|
|
43
43
|
const style = super.getEdgeStyle()
|
|
44
|
+
const { style: customStyle = {} } = this.properties
|
|
44
45
|
return {
|
|
45
46
|
...style,
|
|
46
47
|
...cloneDeep(polyline),
|
|
48
|
+
...cloneDeep(customStyle),
|
|
47
49
|
}
|
|
48
50
|
}
|
|
49
51
|
|
|
50
52
|
getTextPosition() {
|
|
51
|
-
//
|
|
53
|
+
// 在文本为空的情况下,文本位置为双击位置
|
|
52
54
|
const textValue = this.text?.value
|
|
53
55
|
if (this.dbClickPosition && !textValue) {
|
|
54
56
|
const { x, y } = this.dbClickPosition
|
|
55
|
-
return {
|
|
56
|
-
x,
|
|
57
|
-
y,
|
|
58
|
-
}
|
|
57
|
+
return { x, y }
|
|
59
58
|
}
|
|
59
|
+
// 文本不为空或者没有双击位置时,取最长边的中点作为文本位置
|
|
60
60
|
const currentPositionList = points2PointsList(this.points)
|
|
61
61
|
const [p1, p2] = getLongestEdge(currentPositionList)
|
|
62
62
|
return {
|
|
@@ -69,9 +69,9 @@ export class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
69
69
|
getAfterAnchor(
|
|
70
70
|
direction: SegmentDirection,
|
|
71
71
|
position: Position,
|
|
72
|
-
anchorList:
|
|
72
|
+
anchorList: AnchorConfig[],
|
|
73
73
|
) {
|
|
74
|
-
let anchor:
|
|
74
|
+
let anchor: AnchorConfig
|
|
75
75
|
let minDistance: number
|
|
76
76
|
anchorList.forEach((item) => {
|
|
77
77
|
let distanceX: number
|
|
@@ -186,7 +186,7 @@ export class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
186
186
|
direction: SegmentDirection,
|
|
187
187
|
positionType: string,
|
|
188
188
|
position: Position,
|
|
189
|
-
anchorList:
|
|
189
|
+
anchorList: AnchorConfig[],
|
|
190
190
|
draggingPointList: Point[],
|
|
191
191
|
) {
|
|
192
192
|
const pointList = draggingPointList.map((i) => i)
|
|
@@ -438,10 +438,13 @@ export class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
438
438
|
}
|
|
439
439
|
this.updatePointsAfterDrag(draggingPointList)
|
|
440
440
|
this.draggingPointList = draggingPointList
|
|
441
|
-
|
|
441
|
+
// TODO: 判断该逻辑是否需要
|
|
442
|
+
if (this.text?.value) {
|
|
443
|
+
this.setText(assign({}, this.text, this.textPosition))
|
|
444
|
+
}
|
|
442
445
|
return {
|
|
443
|
-
start:
|
|
444
|
-
end:
|
|
446
|
+
start: assign({}, pointsList[startIndex]),
|
|
447
|
+
end: assign({}, pointsList[endIndex]),
|
|
445
448
|
startIndex,
|
|
446
449
|
endIndex,
|
|
447
450
|
direction,
|
|
@@ -571,10 +574,13 @@ export class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
571
574
|
this.updatePointsAfterDrag(draggingPointList)
|
|
572
575
|
this.draggingPointList = draggingPointList
|
|
573
576
|
}
|
|
574
|
-
|
|
577
|
+
// TODO: 确认该判断逻辑是否需要
|
|
578
|
+
if (this.text?.value) {
|
|
579
|
+
this.setText(assign({}, this.text, this.textPosition))
|
|
580
|
+
}
|
|
575
581
|
return {
|
|
576
|
-
start:
|
|
577
|
-
end:
|
|
582
|
+
start: assign({}, pointsList[startIndex]),
|
|
583
|
+
end: assign({}, pointsList[endIndex]),
|
|
578
584
|
startIndex,
|
|
579
585
|
endIndex,
|
|
580
586
|
direction,
|
|
@@ -591,9 +597,9 @@ export class PolylineEdgeModel extends BaseEdgeModel {
|
|
|
591
597
|
this.draggingPointList = []
|
|
592
598
|
// 更新起终点
|
|
593
599
|
const startPoint = pointsList[0]
|
|
594
|
-
this.startPoint =
|
|
600
|
+
this.startPoint = assign({}, startPoint)
|
|
595
601
|
const endPoint = pointsList[pointsList.length - 1]
|
|
596
|
-
this.endPoint =
|
|
602
|
+
this.endPoint = assign({}, endPoint)
|
|
597
603
|
}
|
|
598
604
|
this.isDragging = false
|
|
599
605
|
}
|