@logicflow/core 2.0.0-beta.6 → 2.0.0-beta.8
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 +8 -8
- package/dist/index.min.js +4 -4
- package/es/LogicFlow.d.ts +19 -14
- package/es/LogicFlow.js +1 -2
- package/es/LogicFlow.js.map +1 -1
- package/es/event/eventArgs.d.ts +13 -4
- package/es/event/eventEmitter.d.ts +2 -2
- package/es/index.d.ts +1 -0
- package/es/index.js +1 -0
- 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 +4 -0
- package/es/keyboard/shortcut.js +61 -0
- package/es/keyboard/shortcut.js.map +1 -1
- package/es/model/BaseModel.d.ts +15 -2
- package/es/model/EditConfigModel.d.ts +1 -1
- package/es/model/EditConfigModel.js +11 -11
- package/es/model/EditConfigModel.js.map +1 -1
- package/es/model/GraphModel.d.ts +12 -12
- package/es/model/GraphModel.js +3 -3
- package/es/model/GraphModel.js.map +1 -1
- package/es/model/edge/BaseEdgeModel.d.ts +9 -7
- package/es/model/edge/BaseEdgeModel.js +5 -2
- package/es/model/edge/BaseEdgeModel.js.map +1 -1
- package/es/model/edge/BezierEdgeModel.d.ts +2 -2
- package/es/model/edge/BezierEdgeModel.js +2 -1
- package/es/model/edge/BezierEdgeModel.js.map +1 -1
- package/es/model/edge/LineEdgeModel.js +2 -1
- package/es/model/edge/LineEdgeModel.js.map +1 -1
- package/es/model/edge/PolylineEdgeModel.js +2 -1
- package/es/model/edge/PolylineEdgeModel.js.map +1 -1
- package/es/model/node/BaseNodeModel.d.ts +35 -13
- package/es/model/node/BaseNodeModel.js +19 -17
- package/es/model/node/BaseNodeModel.js.map +1 -1
- package/es/model/node/CircleNodeModel.d.ts +2 -3
- package/es/model/node/CircleNodeModel.js +2 -5
- package/es/model/node/CircleNodeModel.js.map +1 -1
- package/es/model/node/DiamondNodeModel.d.ts +3 -4
- package/es/model/node/DiamondNodeModel.js +2 -5
- package/es/model/node/DiamondNodeModel.js.map +1 -1
- package/es/model/node/EllipseNodeModel.d.ts +3 -4
- package/es/model/node/EllipseNodeModel.js +2 -5
- package/es/model/node/EllipseNodeModel.js.map +1 -1
- package/es/model/node/HtmlNodeModel.d.ts +3 -4
- package/es/model/node/HtmlNodeModel.js +2 -12
- package/es/model/node/HtmlNodeModel.js.map +1 -1
- package/es/model/node/PolygonNodeModel.d.ts +3 -4
- package/es/model/node/PolygonNodeModel.js +2 -5
- package/es/model/node/PolygonNodeModel.js.map +1 -1
- package/es/model/node/RectNodeModel.d.ts +4 -5
- package/es/model/node/RectNodeModel.js +2 -5
- package/es/model/node/RectNodeModel.js.map +1 -1
- package/es/model/node/TextNodeModel.d.ts +14 -8
- package/es/model/node/TextNodeModel.js +2 -1
- package/es/model/node/TextNodeModel.js.map +1 -1
- package/es/util/edge.d.ts +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.js +3 -0
- 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 +4 -3
- package/es/view/Control.d.ts +1 -1
- package/es/view/Control.js +72 -35
- package/es/view/Control.js.map +1 -1
- package/es/view/Graph.js +2 -1
- package/es/view/Graph.js.map +1 -1
- package/es/view/node/BaseNode.d.ts +2 -2
- package/es/view/node/BaseNode.js +15 -11
- 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.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.map +1 -1
- package/es/view/overlay/CanvasOverlay.js +4 -4
- package/es/view/overlay/CanvasOverlay.js.map +1 -1
- package/es/view/text/BaseText.js +1 -1
- package/es/view/text/BaseText.js.map +1 -1
- package/lib/LogicFlow.d.ts +19 -14
- package/lib/LogicFlow.js +2 -3
- package/lib/LogicFlow.js.map +1 -1
- package/lib/event/eventArgs.d.ts +13 -4
- package/lib/event/eventEmitter.d.ts +2 -2
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- 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 +4 -0
- package/lib/keyboard/shortcut.js +64 -1
- package/lib/keyboard/shortcut.js.map +1 -1
- package/lib/model/BaseModel.d.ts +15 -2
- package/lib/model/EditConfigModel.d.ts +1 -1
- package/lib/model/EditConfigModel.js +10 -10
- package/lib/model/EditConfigModel.js.map +1 -1
- package/lib/model/GraphModel.d.ts +12 -12
- package/lib/model/GraphModel.js +2 -2
- package/lib/model/GraphModel.js.map +1 -1
- package/lib/model/edge/BaseEdgeModel.d.ts +9 -7
- package/lib/model/edge/BaseEdgeModel.js +5 -2
- package/lib/model/edge/BaseEdgeModel.js.map +1 -1
- package/lib/model/edge/BezierEdgeModel.d.ts +2 -2
- package/lib/model/edge/BezierEdgeModel.js +2 -1
- package/lib/model/edge/BezierEdgeModel.js.map +1 -1
- package/lib/model/edge/LineEdgeModel.js +2 -1
- package/lib/model/edge/LineEdgeModel.js.map +1 -1
- package/lib/model/edge/PolylineEdgeModel.js +2 -1
- package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
- package/lib/model/node/BaseNodeModel.d.ts +35 -13
- package/lib/model/node/BaseNodeModel.js +19 -17
- package/lib/model/node/BaseNodeModel.js.map +1 -1
- package/lib/model/node/CircleNodeModel.d.ts +2 -3
- package/lib/model/node/CircleNodeModel.js +2 -5
- package/lib/model/node/CircleNodeModel.js.map +1 -1
- package/lib/model/node/DiamondNodeModel.d.ts +3 -4
- package/lib/model/node/DiamondNodeModel.js +2 -5
- package/lib/model/node/DiamondNodeModel.js.map +1 -1
- package/lib/model/node/EllipseNodeModel.d.ts +3 -4
- package/lib/model/node/EllipseNodeModel.js +2 -5
- package/lib/model/node/EllipseNodeModel.js.map +1 -1
- package/lib/model/node/HtmlNodeModel.d.ts +3 -4
- package/lib/model/node/HtmlNodeModel.js +2 -12
- package/lib/model/node/HtmlNodeModel.js.map +1 -1
- package/lib/model/node/PolygonNodeModel.d.ts +3 -4
- package/lib/model/node/PolygonNodeModel.js +2 -5
- package/lib/model/node/PolygonNodeModel.js.map +1 -1
- package/lib/model/node/RectNodeModel.d.ts +4 -5
- package/lib/model/node/RectNodeModel.js +2 -5
- package/lib/model/node/RectNodeModel.js.map +1 -1
- package/lib/model/node/TextNodeModel.d.ts +14 -8
- package/lib/model/node/TextNodeModel.js +2 -1
- package/lib/model/node/TextNodeModel.js.map +1 -1
- package/lib/util/edge.d.ts +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.js +3 -0
- 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 +4 -3
- package/lib/view/Control.d.ts +1 -1
- package/lib/view/Control.js +71 -34
- package/lib/view/Control.js.map +1 -1
- package/lib/view/Graph.js +2 -1
- package/lib/view/Graph.js.map +1 -1
- package/lib/view/node/BaseNode.d.ts +2 -2
- package/lib/view/node/BaseNode.js +15 -11
- 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.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.map +1 -1
- package/lib/view/overlay/CanvasOverlay.js +4 -4
- package/lib/view/overlay/CanvasOverlay.js.map +1 -1
- package/lib/view/text/BaseText.js +1 -1
- package/lib/view/text/BaseText.js.map +1 -1
- package/package.json +1 -1
- package/src/LogicFlow.tsx +18 -14
- package/src/event/eventArgs.ts +16 -4
- package/src/event/eventEmitter.ts +1 -1
- package/src/index.ts +1 -0
- package/src/keyboard/index.ts +2 -0
- package/src/keyboard/shortcut.ts +67 -0
- package/src/model/BaseModel.ts +16 -3
- package/src/model/EditConfigModel.ts +11 -11
- package/src/model/GraphModel.ts +3 -3
- package/src/model/edge/BaseEdgeModel.ts +17 -5
- package/src/model/edge/BezierEdgeModel.ts +2 -0
- package/src/model/edge/LineEdgeModel.ts +2 -0
- package/src/model/edge/PolylineEdgeModel.ts +2 -0
- package/src/model/node/BaseNodeModel.ts +27 -16
- package/src/model/node/CircleNodeModel.ts +6 -4
- package/src/model/node/DiamondNodeModel.ts +7 -5
- package/src/model/node/EllipseNodeModel.ts +7 -5
- package/src/model/node/HtmlNodeModel.ts +7 -6
- package/src/model/node/PolygonNodeModel.ts +7 -5
- package/src/model/node/RectNodeModel.ts +8 -7
- package/src/model/node/TextNodeModel.ts +14 -1
- package/src/util/index.ts +1 -0
- package/src/util/node.ts +4 -0
- package/src/util/resize.ts +286 -0
- package/src/view/Control.tsx +76 -57
- package/src/view/Graph.tsx +2 -1
- package/src/view/node/BaseNode.tsx +26 -13
- 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 +3 -1
- package/src/view/node/PolygonNode.tsx +3 -1
- package/src/view/node/RectNode.tsx +3 -1
- package/src/view/node/TextNode.tsx +3 -1
- package/src/view/overlay/CanvasOverlay.tsx +4 -4
- package/src/view/text/BaseText.tsx +1 -1
|
@@ -29,7 +29,10 @@ type IState = {
|
|
|
29
29
|
isDragging?: boolean
|
|
30
30
|
}
|
|
31
31
|
|
|
32
|
-
export abstract class BaseNode<P extends IProps> extends Component<
|
|
32
|
+
export abstract class BaseNode<P extends IProps = IProps> extends Component<
|
|
33
|
+
P,
|
|
34
|
+
IState
|
|
35
|
+
> {
|
|
33
36
|
static isObserved: boolean = false
|
|
34
37
|
static extendsKey?: string
|
|
35
38
|
|
|
@@ -116,9 +119,16 @@ export abstract class BaseNode<P extends IProps> extends Component<P, IState> {
|
|
|
116
119
|
|
|
117
120
|
getRotateControl() {
|
|
118
121
|
const { model, graphModel } = this.props
|
|
119
|
-
const {
|
|
122
|
+
const {
|
|
123
|
+
editConfigModel: { isSilentMode, allowRotate },
|
|
124
|
+
} = graphModel
|
|
125
|
+
const { isSelected, isHitable, rotatable, isHovered } = model
|
|
126
|
+
|
|
127
|
+
// 合并全局 allResize 和节点自身的 resizable 配置,以节点配置高于全局配置
|
|
128
|
+
const canRotate = allowRotate && rotatable // 全局开关 > 节点配置
|
|
129
|
+
|
|
120
130
|
const style = model.getRotateControlStyle()
|
|
121
|
-
if (isHitable && (isSelected || isHovered) &&
|
|
131
|
+
if (!isSilentMode && isHitable && (isSelected || isHovered) && canRotate) {
|
|
122
132
|
return (
|
|
123
133
|
<RotateControlPoint
|
|
124
134
|
graphModel={graphModel}
|
|
@@ -132,9 +142,15 @@ export abstract class BaseNode<P extends IProps> extends Component<P, IState> {
|
|
|
132
142
|
|
|
133
143
|
getResizeControl(): h.JSX.Element | null {
|
|
134
144
|
const { model, graphModel } = this.props
|
|
135
|
-
const {
|
|
145
|
+
const {
|
|
146
|
+
editConfigModel: { isSilentMode, allowResize },
|
|
147
|
+
} = graphModel
|
|
148
|
+
const { isSelected, isHitable, resizable, isHovered } = model
|
|
149
|
+
|
|
150
|
+
// 合并全局 allResize 和节点自身的 resizable 配置,以节点配置高于全局配置
|
|
151
|
+
const canResize = allowResize && resizable // 全局开关 > 节点配置
|
|
136
152
|
const style = model.getResizeControlStyle()
|
|
137
|
-
if (isHitable && (isSelected || isHovered) &&
|
|
153
|
+
if (!isSilentMode && isHitable && (isSelected || isHovered) && canResize) {
|
|
138
154
|
return (
|
|
139
155
|
<ResizeControlGroup
|
|
140
156
|
style={style}
|
|
@@ -217,7 +233,6 @@ export abstract class BaseNode<P extends IProps> extends Component<P, IState> {
|
|
|
217
233
|
|
|
218
234
|
onDragging = ({ event }: IDragParams) => {
|
|
219
235
|
const { model, graphModel } = this.props
|
|
220
|
-
// const { isDragging } = model;
|
|
221
236
|
const {
|
|
222
237
|
editConfigModel: { stopMoveGraph, autoExpand },
|
|
223
238
|
transformModel,
|
|
@@ -305,6 +320,11 @@ export abstract class BaseNode<P extends IProps> extends Component<P, IState> {
|
|
|
305
320
|
const { model } = this.props
|
|
306
321
|
model.isDragging = false
|
|
307
322
|
}
|
|
323
|
+
onMouseOut = (ev: MouseEvent) => {
|
|
324
|
+
if (isIe) {
|
|
325
|
+
this.setHoverOff(ev)
|
|
326
|
+
}
|
|
327
|
+
}
|
|
308
328
|
|
|
309
329
|
handleMouseUp = () => {
|
|
310
330
|
const { model } = this.props
|
|
@@ -404,7 +424,6 @@ export abstract class BaseNode<P extends IProps> extends Component<P, IState> {
|
|
|
404
424
|
}
|
|
405
425
|
}
|
|
406
426
|
|
|
407
|
-
// 为什么将hover状态放到model中?
|
|
408
427
|
// 因为自定义节点的时候,可能会基于hover状态自定义不同的样式。
|
|
409
428
|
setHoverOn = (ev: MouseEvent) => {
|
|
410
429
|
const { model, graphModel } = this.props
|
|
@@ -429,12 +448,6 @@ export abstract class BaseNode<P extends IProps> extends Component<P, IState> {
|
|
|
429
448
|
})
|
|
430
449
|
}
|
|
431
450
|
|
|
432
|
-
onMouseOut = (ev: MouseEvent) => {
|
|
433
|
-
if (isIe) {
|
|
434
|
-
this.setHoverOff(ev)
|
|
435
|
-
}
|
|
436
|
-
}
|
|
437
|
-
|
|
438
451
|
/**
|
|
439
452
|
* @overridable 支持重写, 节点置顶,可以被某些不需要置顶的节点重写,如group节点。
|
|
440
453
|
*/
|
|
@@ -7,7 +7,9 @@ export type ICircleNodeProps = {
|
|
|
7
7
|
graphModel: GraphModel
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export class CircleNode
|
|
10
|
+
export class CircleNode<
|
|
11
|
+
P extends ICircleNodeProps = ICircleNodeProps,
|
|
12
|
+
> extends BaseNode<P> {
|
|
11
13
|
getShape() {
|
|
12
14
|
const { model } = this.props
|
|
13
15
|
const { x, y, r } = model
|
|
@@ -7,7 +7,9 @@ export type IDiamondNodeProps = {
|
|
|
7
7
|
graphModel: GraphModel
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export class DiamondNode
|
|
10
|
+
export class DiamondNode<
|
|
11
|
+
P extends IDiamondNodeProps = IDiamondNodeProps,
|
|
12
|
+
> extends BaseNode<P> {
|
|
11
13
|
getShape() {
|
|
12
14
|
const { model } = this.props
|
|
13
15
|
const style = model.getNodeStyle()
|
|
@@ -7,7 +7,9 @@ export type IEllipseNodeProps = {
|
|
|
7
7
|
graphModel: GraphModel
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export class EllipseNode
|
|
10
|
+
export class EllipseNode<
|
|
11
|
+
P extends IEllipseNodeProps = IEllipseNodeProps,
|
|
12
|
+
> extends BaseNode<P> {
|
|
11
13
|
getShape() {
|
|
12
14
|
const { model } = this.props
|
|
13
15
|
const style = model.getNodeStyle()
|
|
@@ -7,7 +7,9 @@ export type IHtmlNodeProps = {
|
|
|
7
7
|
graphModel: GraphModel
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export class HtmlNode
|
|
10
|
+
export class HtmlNode<
|
|
11
|
+
P extends IHtmlNodeProps = IHtmlNodeProps,
|
|
12
|
+
> extends BaseNode<P> {
|
|
11
13
|
ref = createRef()
|
|
12
14
|
currentProperties?: string
|
|
13
15
|
preProperties?: string
|
|
@@ -7,7 +7,9 @@ export type IPolygonNodeProps = {
|
|
|
7
7
|
graphModel: GraphModel
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export class PolygonNode
|
|
10
|
+
export class PolygonNode<
|
|
11
|
+
P extends IPolygonNodeProps = IPolygonNodeProps,
|
|
12
|
+
> extends BaseNode<P> {
|
|
11
13
|
getShape() {
|
|
12
14
|
const { model } = this.props
|
|
13
15
|
const { x, y, width, height, points } = model as PolygonNodeModel
|
|
@@ -8,7 +8,9 @@ export type IRectNodeProps = {
|
|
|
8
8
|
graphModel: GraphModel
|
|
9
9
|
}
|
|
10
10
|
|
|
11
|
-
export class RectNode
|
|
11
|
+
export class RectNode<
|
|
12
|
+
P extends IRectNodeProps = IRectNodeProps,
|
|
13
|
+
> extends BaseNode<P> {
|
|
12
14
|
getShape(): h.JSX.Element | null {
|
|
13
15
|
const { model } = this.props
|
|
14
16
|
const style = model.getNodeStyle()
|
|
@@ -7,7 +7,9 @@ export type ITextNodeProps = {
|
|
|
7
7
|
graphModel: GraphModel
|
|
8
8
|
}
|
|
9
9
|
|
|
10
|
-
export class TextNode
|
|
10
|
+
export class TextNode<
|
|
11
|
+
P extends ITextNodeProps = ITextNodeProps,
|
|
12
|
+
> extends BaseNode<P> {
|
|
11
13
|
getBackground() {
|
|
12
14
|
const { model } = this.props
|
|
13
15
|
const style = model.getTextStyle()
|
|
@@ -33,7 +33,7 @@ export class CanvasOverlay extends Component<IProps, IState> {
|
|
|
33
33
|
eventCenter,
|
|
34
34
|
model: undefined,
|
|
35
35
|
})
|
|
36
|
-
// 当ctrl键被按住的时候,可以放大缩小。
|
|
36
|
+
// 当 ctrl、cmd 键被按住的时候,可以放大缩小。
|
|
37
37
|
this.state = {
|
|
38
38
|
isDragging: false,
|
|
39
39
|
}
|
|
@@ -65,8 +65,8 @@ export class CanvasOverlay extends Component<IProps, IState> {
|
|
|
65
65
|
graphModel,
|
|
66
66
|
} = this.props
|
|
67
67
|
const { deltaX: eX, deltaY: eY } = ev
|
|
68
|
-
// 如果没有禁止滚动移动画布, 并且当前触发的时候ctrl键没有按住, 那么移动画布
|
|
69
|
-
if (!editConfigModel.stopScrollGraph && ev.ctrlKey
|
|
68
|
+
// 如果没有禁止滚动移动画布, 并且当前触发的时候ctrl键、cmd键没有按住, 那么移动画布
|
|
69
|
+
if (!editConfigModel.stopScrollGraph && !ev.ctrlKey && !ev.metaKey) {
|
|
70
70
|
ev.preventDefault()
|
|
71
71
|
this.stepScrollX += eX
|
|
72
72
|
this.stepScrollY += eY
|
|
@@ -84,7 +84,7 @@ export class CanvasOverlay extends Component<IProps, IState> {
|
|
|
84
84
|
}
|
|
85
85
|
return
|
|
86
86
|
}
|
|
87
|
-
// 如果没有禁止缩放画布,那么进行缩放. 在禁止缩放画布后,按住ctrl键也不能缩放了。
|
|
87
|
+
// 如果没有禁止缩放画布,那么进行缩放. 在禁止缩放画布后,按住 ctrl、cmd 键也不能缩放了。
|
|
88
88
|
if (!editConfigModel.stopZoomGraph) {
|
|
89
89
|
ev.preventDefault()
|
|
90
90
|
const position = graphModel.getPointByClient({
|