@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
package/src/event/eventArgs.ts
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
2
|
-
LogicFlow,
|
|
1
|
+
import LogicFlow, {
|
|
3
2
|
BaseNodeModel,
|
|
4
3
|
BaseEdgeModel,
|
|
5
4
|
Model,
|
|
5
|
+
GraphModel,
|
|
6
6
|
TransformData,
|
|
7
7
|
TransformType,
|
|
8
8
|
} from '..'
|
|
@@ -24,12 +24,30 @@ type ClickEventArgs = {
|
|
|
24
24
|
isMultiple: boolean
|
|
25
25
|
}
|
|
26
26
|
|
|
27
|
-
type NodeEventArgsPick<
|
|
27
|
+
type NodeEventArgsPick<
|
|
28
|
+
T extends
|
|
29
|
+
| 'preData'
|
|
30
|
+
| 'data'
|
|
31
|
+
| 'model'
|
|
32
|
+
| 'e'
|
|
33
|
+
| 'position'
|
|
34
|
+
| 'deltaX'
|
|
35
|
+
| 'deltaY'
|
|
36
|
+
| 'index',
|
|
37
|
+
> = Pick<
|
|
28
38
|
{
|
|
39
|
+
/**
|
|
40
|
+
* 上一个状态的节点数据
|
|
41
|
+
*/
|
|
42
|
+
preData: NodeData
|
|
29
43
|
/**
|
|
30
44
|
* 节点数据
|
|
31
45
|
*/
|
|
32
46
|
data: NodeData
|
|
47
|
+
/**
|
|
48
|
+
* 节点 model
|
|
49
|
+
*/
|
|
50
|
+
model: BaseNodeModel
|
|
33
51
|
/**
|
|
34
52
|
* 原生鼠标事件对象
|
|
35
53
|
*/
|
|
@@ -38,6 +56,39 @@ type NodeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
|
|
|
38
56
|
* 鼠标触发点相对于画布左上角的坐标
|
|
39
57
|
*/
|
|
40
58
|
position: ClientPosition
|
|
59
|
+
/**
|
|
60
|
+
* 鼠标 X轴移动的距离
|
|
61
|
+
*/
|
|
62
|
+
deltaX: number
|
|
63
|
+
/**
|
|
64
|
+
* 鼠标Y轴移动的距离
|
|
65
|
+
*/
|
|
66
|
+
deltaY: number
|
|
67
|
+
/**
|
|
68
|
+
* Resize 时调整的是哪个控制点
|
|
69
|
+
*/
|
|
70
|
+
index: number
|
|
71
|
+
},
|
|
72
|
+
T
|
|
73
|
+
>
|
|
74
|
+
|
|
75
|
+
type TextEventArgsPick<
|
|
76
|
+
T extends 'data' | 'e' | 'model' | 'element' | 'position',
|
|
77
|
+
> = Pick<
|
|
78
|
+
{
|
|
79
|
+
// 节点数据
|
|
80
|
+
data?: any
|
|
81
|
+
// 原生鼠标事件对象
|
|
82
|
+
e?: MouseEvent | FocusEvent
|
|
83
|
+
// 文本所在元素model
|
|
84
|
+
model?: BaseNodeModel | BaseEdgeModel | unknown
|
|
85
|
+
// 文本dom
|
|
86
|
+
element?: HTMLElement | null
|
|
87
|
+
// 文本位置
|
|
88
|
+
position?: {
|
|
89
|
+
x: number
|
|
90
|
+
y: number
|
|
91
|
+
}
|
|
41
92
|
},
|
|
42
93
|
T
|
|
43
94
|
>
|
|
@@ -65,7 +116,7 @@ interface NodeEventArgs {
|
|
|
65
116
|
/**
|
|
66
117
|
* 鼠标移动节点
|
|
67
118
|
*/
|
|
68
|
-
'node:mousemove': NodeEventArgsPick<'data' | 'e'>
|
|
119
|
+
'node:mousemove': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
|
|
69
120
|
/**
|
|
70
121
|
* 鼠标进入节点
|
|
71
122
|
*/
|
|
@@ -97,7 +148,7 @@ interface NodeEventArgs {
|
|
|
97
148
|
/**
|
|
98
149
|
* 拖拽节点
|
|
99
150
|
*/
|
|
100
|
-
'node:drag': NodeEventArgsPick<'data' | 'e'>
|
|
151
|
+
'node:drag': NodeEventArgsPick<'data' | 'e' | 'deltaX' | 'deltaY'>
|
|
101
152
|
/**
|
|
102
153
|
* 拖拽节点结束
|
|
103
154
|
*/
|
|
@@ -106,6 +157,16 @@ interface NodeEventArgs {
|
|
|
106
157
|
* 右键点击节点
|
|
107
158
|
*/
|
|
108
159
|
'node:contextmenu': NodeEventArgsPick<'data' | 'e' | 'position'>
|
|
160
|
+
/**
|
|
161
|
+
* 节点旋转
|
|
162
|
+
*/
|
|
163
|
+
'node:rotate': NodeEventArgsPick<'data' | 'e' | 'model'>
|
|
164
|
+
/**
|
|
165
|
+
* 节点缩放
|
|
166
|
+
*/
|
|
167
|
+
'node:resize': NodeEventArgsPick<
|
|
168
|
+
'preData' | 'data' | 'model' | 'deltaX' | 'deltaY' | 'index'
|
|
169
|
+
>
|
|
109
170
|
}
|
|
110
171
|
|
|
111
172
|
type EdgeEventArgsPick<T extends 'data' | 'e' | 'position'> = Pick<
|
|
@@ -179,6 +240,88 @@ interface EdgeEventArgs {
|
|
|
179
240
|
}
|
|
180
241
|
}
|
|
181
242
|
|
|
243
|
+
/**
|
|
244
|
+
* 文本事件
|
|
245
|
+
*/
|
|
246
|
+
interface TextEventArgs {
|
|
247
|
+
// 鼠标按下文本
|
|
248
|
+
'text:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
249
|
+
// 开始拖拽文本
|
|
250
|
+
'text:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
251
|
+
// 文本拖拽
|
|
252
|
+
'text:drag': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
253
|
+
// 文本拖拽结束
|
|
254
|
+
'text:drop': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
255
|
+
// 文本单击
|
|
256
|
+
'text:click': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
257
|
+
// 文本双击
|
|
258
|
+
'text:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
259
|
+
// 文本失焦
|
|
260
|
+
'text:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
261
|
+
// 鼠标移动文本
|
|
262
|
+
'text:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
263
|
+
// 鼠标抬起
|
|
264
|
+
'text:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
265
|
+
// 文本获焦
|
|
266
|
+
'text:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
267
|
+
// 文本新增
|
|
268
|
+
'text:add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
269
|
+
// 文本更新
|
|
270
|
+
'text:update': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
271
|
+
// 文本清空
|
|
272
|
+
'text:clear': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
273
|
+
// 文本删除
|
|
274
|
+
'text:delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
275
|
+
// 不允许增加文本
|
|
276
|
+
'text:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
/**
|
|
280
|
+
* label插件文本事件
|
|
281
|
+
*/
|
|
282
|
+
interface TextEventArgs {
|
|
283
|
+
// 鼠标按下文本
|
|
284
|
+
'label:mousedown': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
285
|
+
// 开始拖拽文本
|
|
286
|
+
'label:dragstart': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
287
|
+
// 文本拖拽
|
|
288
|
+
'label:drag': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
289
|
+
// 文本拖拽结束
|
|
290
|
+
'label:drop': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
291
|
+
// 文本单击
|
|
292
|
+
'label:click': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
293
|
+
// 文本双击
|
|
294
|
+
'label:dbclick': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
295
|
+
// 文本失焦
|
|
296
|
+
'label:blur': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
297
|
+
// 鼠标移动文本
|
|
298
|
+
'label:mousemove': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
299
|
+
// 鼠标抬起
|
|
300
|
+
'label:mouseup': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
301
|
+
// 文本获焦
|
|
302
|
+
'label:focus': TextEventArgsPick<'data' | 'e' | 'model' | 'element'>
|
|
303
|
+
// 文本新增
|
|
304
|
+
'label:add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
305
|
+
// 文本更新
|
|
306
|
+
'label:update': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
307
|
+
// 文本清空
|
|
308
|
+
'label:clear': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
309
|
+
// 文本删除
|
|
310
|
+
'label:delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
311
|
+
// 文本新增
|
|
312
|
+
'label:should-add': TextEventArgsPick<'data' | 'e' | 'model' | 'position'>
|
|
313
|
+
// 文本批量新增
|
|
314
|
+
'label:batch-add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
315
|
+
// 文本更新
|
|
316
|
+
'label:should-update': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
317
|
+
// 文本删除
|
|
318
|
+
'label:should-delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
319
|
+
// 文本批量删除
|
|
320
|
+
'label:batch-delete': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
321
|
+
// 不允许增加文本
|
|
322
|
+
'label:not-allowed-add': TextEventArgsPick<'data' | 'e' | 'model'>
|
|
323
|
+
}
|
|
324
|
+
|
|
182
325
|
/**
|
|
183
326
|
* 连线事件
|
|
184
327
|
*/
|
|
@@ -240,26 +383,6 @@ interface CommonEventArgs {
|
|
|
240
383
|
properties: Record<string, any>
|
|
241
384
|
}
|
|
242
385
|
}
|
|
243
|
-
/**
|
|
244
|
-
* 节点/边的文本更新
|
|
245
|
-
*/
|
|
246
|
-
// TODO: 更新文本事件抛出的对象是否需要更详细?
|
|
247
|
-
'text:update': {
|
|
248
|
-
data: {
|
|
249
|
-
/**
|
|
250
|
-
* 更新的文本
|
|
251
|
-
*/
|
|
252
|
-
text: string
|
|
253
|
-
/**
|
|
254
|
-
* 节点/边的 id
|
|
255
|
-
*/
|
|
256
|
-
id: string
|
|
257
|
-
/**
|
|
258
|
-
* 节点/边的类型
|
|
259
|
-
*/
|
|
260
|
-
type: string
|
|
261
|
-
}
|
|
262
|
-
}
|
|
263
386
|
/**
|
|
264
387
|
* 进行画布平移或缩放等变化操作时触发
|
|
265
388
|
*/
|
|
@@ -281,6 +404,21 @@ interface CommonEventArgs {
|
|
|
281
404
|
* 渲染后的画布数据
|
|
282
405
|
*/
|
|
283
406
|
data: GraphData
|
|
407
|
+
/**
|
|
408
|
+
* 渲染后的画布 model
|
|
409
|
+
*/
|
|
410
|
+
graphModel: GraphModel
|
|
411
|
+
}
|
|
412
|
+
/**
|
|
413
|
+
* 画布重新更新后触发. 即 lf.render(graphData)方法被调用后或者改变画布(graphModel)上的属性后触发。
|
|
414
|
+
* 如果是主动修改某个特定属性导致画布更新,想要在画布更新后做一些操作,建议注册事件后在回调函数中及时注销该事件,或者使用once事件代替on事件。
|
|
415
|
+
* 因为其他属性也可能导致画布更新,触发该事件。
|
|
416
|
+
*/
|
|
417
|
+
'graph:updated': {
|
|
418
|
+
/**
|
|
419
|
+
* 更新后的画布数据
|
|
420
|
+
*/
|
|
421
|
+
data: GraphData
|
|
284
422
|
}
|
|
285
423
|
}
|
|
286
424
|
|
|
@@ -465,12 +603,13 @@ interface SelectionEventArgs {
|
|
|
465
603
|
'selection:contextmenu': SelectionEventArgsPick<'data' | 'e' | 'position'>
|
|
466
604
|
}
|
|
467
605
|
|
|
468
|
-
|
|
469
|
-
|
|
470
|
-
|
|
471
|
-
|
|
472
|
-
|
|
473
|
-
|
|
474
|
-
|
|
475
|
-
|
|
476
|
-
|
|
606
|
+
// 此处主要是对事件参数进行聚合
|
|
607
|
+
export type EventArgs = NodeEventArgs &
|
|
608
|
+
EdgeEventArgs &
|
|
609
|
+
ConnectionEventArgs &
|
|
610
|
+
CommonEventArgs &
|
|
611
|
+
AnchorEventArgs &
|
|
612
|
+
BlankEventArgs &
|
|
613
|
+
HistoryEventArgs &
|
|
614
|
+
SelectionEventArgs &
|
|
615
|
+
TextEventArgs
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { EventArgs } from './eventArgs'
|
|
2
2
|
|
|
3
|
-
export
|
|
3
|
+
export type EventType<T extends string = string> = {
|
|
4
4
|
readonly callback: EventCallback<T>
|
|
5
5
|
readonly once: boolean
|
|
6
6
|
}
|
|
@@ -74,10 +74,9 @@ export default class EventEmitter {
|
|
|
74
74
|
*/
|
|
75
75
|
emit<T extends keyof EventArgs>(evts: T, eventArgs: CallbackArgs<T>): void
|
|
76
76
|
emit<T extends string>(evts: T, eventArgs: CallbackArgs<T>): void
|
|
77
|
-
emit(evts: string, eventArgs
|
|
77
|
+
emit(evts: string, eventArgs?: EventCallback) {
|
|
78
78
|
evts?.split(',').forEach((evt) => {
|
|
79
79
|
const events = this._events[evt] || []
|
|
80
|
-
// TODO: 这是什么???
|
|
81
80
|
const wildcardEvents = this._events[WILDCARD] || []
|
|
82
81
|
// 实际的处理 emit 方法
|
|
83
82
|
const doEmit = (es: EventType[]) => {
|
package/src/index.ts
CHANGED
|
@@ -10,12 +10,17 @@ export function observer<P>(props: P) {
|
|
|
10
10
|
|
|
11
11
|
export { LogicFlow, h, createRef, Component, LogicFlowUtil }
|
|
12
12
|
|
|
13
|
+
export * from './util'
|
|
14
|
+
export * from './tool'
|
|
13
15
|
export * from './view'
|
|
14
16
|
export * from './model'
|
|
15
17
|
export * from './options'
|
|
16
18
|
export * from './keyboard'
|
|
19
|
+
export * from './constant'
|
|
20
|
+
export * from './algorithm'
|
|
21
|
+
export * from './event/eventEmitter'
|
|
17
22
|
export { ElementState, ModelType, ElementType, EventType } from './constant'
|
|
18
23
|
|
|
19
|
-
export {
|
|
24
|
+
export { formatAnchorConnectValidateData } from './util/node'
|
|
20
25
|
|
|
21
26
|
export default LogicFlow
|
package/src/keyboard/index.ts
CHANGED
|
@@ -2,6 +2,8 @@ import { isArray } from 'lodash-es'
|
|
|
2
2
|
import Mousetrap, { MousetrapInstance } from 'mousetrap'
|
|
3
3
|
import LogicFlow from '../LogicFlow'
|
|
4
4
|
|
|
5
|
+
export * from './shortcut'
|
|
6
|
+
|
|
5
7
|
export type Action = 'keypress' | 'keydown' | 'keyup'
|
|
6
8
|
export type Handler = (e: KeyboardEvent) => void
|
|
7
9
|
|
package/src/keyboard/shortcut.ts
CHANGED
|
@@ -1,22 +1,28 @@
|
|
|
1
|
+
import { isEmpty } from 'lodash-es'
|
|
1
2
|
import LogicFlow from '../LogicFlow'
|
|
3
|
+
import { map } from 'lodash-es'
|
|
2
4
|
import GraphModel from '../model/GraphModel'
|
|
3
5
|
|
|
4
6
|
import NodeData = LogicFlow.NodeData
|
|
5
7
|
import EdgeData = LogicFlow.EdgeData
|
|
8
|
+
import NodeConfig = LogicFlow.NodeConfig
|
|
9
|
+
import EdgeConfig = LogicFlow.EdgeConfig
|
|
6
10
|
|
|
7
11
|
let selected: LogicFlow.GraphData | null = null
|
|
8
12
|
|
|
9
|
-
function
|
|
13
|
+
export function translateNodeData(nodeData: NodeData, distance: number) {
|
|
10
14
|
nodeData.x += distance
|
|
11
15
|
nodeData.y += distance
|
|
12
|
-
|
|
16
|
+
|
|
17
|
+
if (!isEmpty(nodeData.text)) {
|
|
13
18
|
nodeData.text.x += distance
|
|
14
19
|
nodeData.text.y += distance
|
|
15
20
|
}
|
|
21
|
+
|
|
16
22
|
return nodeData
|
|
17
23
|
}
|
|
18
24
|
|
|
19
|
-
function
|
|
25
|
+
export function translateEdgeData(edgeData: EdgeData, distance: number) {
|
|
20
26
|
if (edgeData.startPoint) {
|
|
21
27
|
edgeData.startPoint.x += distance
|
|
22
28
|
edgeData.startPoint.y += distance
|
|
@@ -31,13 +37,78 @@ function translationEdgeData(edgeData: EdgeData, distance: number) {
|
|
|
31
37
|
point.y += distance
|
|
32
38
|
})
|
|
33
39
|
}
|
|
34
|
-
|
|
40
|
+
|
|
41
|
+
if (!isEmpty(edgeData.text)) {
|
|
35
42
|
edgeData.text.x += distance
|
|
36
43
|
edgeData.text.y += distance
|
|
37
44
|
}
|
|
38
45
|
return edgeData
|
|
39
46
|
}
|
|
40
47
|
|
|
48
|
+
export function transformNodeData(
|
|
49
|
+
nodeData: NodeData,
|
|
50
|
+
distance: number,
|
|
51
|
+
): NodeConfig {
|
|
52
|
+
const { x, y, text } = nodeData
|
|
53
|
+
// 重新计算 text 的位置,保证粘贴后 text 位置和复制的原节点相对位置一致
|
|
54
|
+
const nextText = text
|
|
55
|
+
? {
|
|
56
|
+
x: text.x + distance,
|
|
57
|
+
y: text.y + distance,
|
|
58
|
+
value: text.value,
|
|
59
|
+
}
|
|
60
|
+
: undefined
|
|
61
|
+
|
|
62
|
+
return {
|
|
63
|
+
...nodeData,
|
|
64
|
+
id: '',
|
|
65
|
+
x: x + distance,
|
|
66
|
+
y: y + distance,
|
|
67
|
+
text: nextText,
|
|
68
|
+
}
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
export function transformEdgeData(
|
|
72
|
+
edgeData: EdgeData,
|
|
73
|
+
distance: number,
|
|
74
|
+
): EdgeConfig {
|
|
75
|
+
const { startPoint, endPoint, pointsList, text, ...edgeConfig } = edgeData
|
|
76
|
+
// 清除原始边的 id
|
|
77
|
+
edgeConfig.id = ''
|
|
78
|
+
|
|
79
|
+
// 重新计算边的位置,包括 startPoint、endPoint、pointsList 以及 text
|
|
80
|
+
// TODO: 看这个是否可以提出一个通用方法,用于重新计算边的位置
|
|
81
|
+
const nextStartPoint = {
|
|
82
|
+
x: startPoint.x + distance,
|
|
83
|
+
y: startPoint.y + distance,
|
|
84
|
+
}
|
|
85
|
+
const nextEndPoint = {
|
|
86
|
+
x: endPoint.x + distance,
|
|
87
|
+
y: endPoint.y + distance,
|
|
88
|
+
}
|
|
89
|
+
const newPointsList: LogicFlow.Point[] = map(pointsList, (point) => {
|
|
90
|
+
return {
|
|
91
|
+
x: point.x + distance,
|
|
92
|
+
y: point.y + distance,
|
|
93
|
+
}
|
|
94
|
+
})
|
|
95
|
+
const nextText = text
|
|
96
|
+
? {
|
|
97
|
+
...text,
|
|
98
|
+
x: text.x + distance,
|
|
99
|
+
y: text.y + distance,
|
|
100
|
+
}
|
|
101
|
+
: undefined
|
|
102
|
+
|
|
103
|
+
return {
|
|
104
|
+
...edgeConfig,
|
|
105
|
+
startPoint: nextStartPoint,
|
|
106
|
+
endPoint: nextEndPoint,
|
|
107
|
+
pointsList: newPointsList,
|
|
108
|
+
text: nextText,
|
|
109
|
+
}
|
|
110
|
+
}
|
|
111
|
+
|
|
41
112
|
const TRANSLATION_DISTANCE = 40
|
|
42
113
|
let CHILDREN_TRANSLATION_DISTANCE = 40
|
|
43
114
|
|
|
@@ -65,10 +136,10 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
|
|
|
65
136
|
}
|
|
66
137
|
selected = elements
|
|
67
138
|
selected.nodes.forEach((node) =>
|
|
68
|
-
|
|
139
|
+
translateNodeData(node, TRANSLATION_DISTANCE),
|
|
69
140
|
)
|
|
70
141
|
selected.edges.forEach((edge) =>
|
|
71
|
-
|
|
142
|
+
translateEdgeData(edge, TRANSLATION_DISTANCE),
|
|
72
143
|
)
|
|
73
144
|
return false
|
|
74
145
|
})
|
|
@@ -86,10 +157,10 @@ export function initDefaultShortcut(lf: LogicFlow, graph: GraphModel) {
|
|
|
86
157
|
addElements.nodes.forEach((node) => lf.selectElementById(node.id, true))
|
|
87
158
|
addElements.edges.forEach((edge) => lf.selectElementById(edge.id, true))
|
|
88
159
|
selected.nodes.forEach((node) =>
|
|
89
|
-
|
|
160
|
+
translateNodeData(node, TRANSLATION_DISTANCE),
|
|
90
161
|
)
|
|
91
162
|
selected.edges.forEach((edge) =>
|
|
92
|
-
|
|
163
|
+
translateEdgeData(edge, TRANSLATION_DISTANCE),
|
|
93
164
|
)
|
|
94
165
|
CHILDREN_TRANSLATION_DISTANCE =
|
|
95
166
|
CHILDREN_TRANSLATION_DISTANCE + TRANSLATION_DISTANCE
|
package/src/model/BaseModel.ts
CHANGED
|
@@ -4,6 +4,7 @@ import LogicFlow from '../LogicFlow'
|
|
|
4
4
|
import { ElementState } from '../constant'
|
|
5
5
|
|
|
6
6
|
export namespace Model {
|
|
7
|
+
import PropertiesType = LogicFlow.PropertiesType
|
|
7
8
|
export type AdditionStateDataType = Record<string, unknown>
|
|
8
9
|
export type PropertyType = Record<string, unknown>
|
|
9
10
|
export type VectorType = [number, number]
|
|
@@ -63,11 +64,21 @@ export namespace Model {
|
|
|
63
64
|
}
|
|
64
65
|
|
|
65
66
|
// 定义边界数据结构,左上坐标 + 右下坐标定位一个矩形
|
|
67
|
+
// TODO: 在使用该类型的 API 中,都要做声明,返回值格式已更新
|
|
66
68
|
export type BoxBoundsPoint = {
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
70
|
-
|
|
69
|
+
minX: number // Left Top X
|
|
70
|
+
minY: number // Left Top Y
|
|
71
|
+
maxX: number // Right Bottom X
|
|
72
|
+
maxY: number // Right Bottom Y
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
export interface BoxBounds extends BoxBoundsPoint {
|
|
76
|
+
x: number
|
|
77
|
+
y: number
|
|
78
|
+
width: number
|
|
79
|
+
height: number
|
|
80
|
+
centerX: number
|
|
81
|
+
centerY: number
|
|
71
82
|
}
|
|
72
83
|
|
|
73
84
|
export type OutlineInfo = {
|
|
@@ -90,7 +101,7 @@ export namespace Model {
|
|
|
90
101
|
centerY: number
|
|
91
102
|
}
|
|
92
103
|
|
|
93
|
-
export interface BaseModel {
|
|
104
|
+
export interface BaseModel<P extends PropertiesType = PropertiesType> {
|
|
94
105
|
/**
|
|
95
106
|
* 节点或边对应的 ID.
|
|
96
107
|
*
|
|
@@ -139,11 +150,11 @@ export namespace Model {
|
|
|
139
150
|
/**
|
|
140
151
|
* 元素上的文本
|
|
141
152
|
*
|
|
142
|
-
* LogicFlow
|
|
153
|
+
* LogicFlow 中存在两种文本:1. 脱离边和节点单独存在的问题;2. 必须和边、节点关联的文本
|
|
143
154
|
* 此属性控制的是第二种。节点和边在删除、调整的同时,其关联的文本也会对应删除、调整。
|
|
144
155
|
*/
|
|
145
156
|
text: LogicFlow.TextConfig
|
|
146
|
-
properties:
|
|
157
|
+
properties: P
|
|
147
158
|
|
|
148
159
|
isSelected: boolean // 元素是否被选中
|
|
149
160
|
isHovered: boolean // 鼠标是否悬停在元素上
|