@logicflow/core 2.0.0-beta.7 → 2.0.0-beta.9

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.
Files changed (215) hide show
  1. package/.turbo/turbo-build$colon$dev.log +2 -2
  2. package/.turbo/turbo-build.log +8 -8
  3. package/dist/index.min.js +4 -4
  4. package/es/LogicFlow.d.ts +19 -14
  5. package/es/LogicFlow.js +1 -2
  6. package/es/LogicFlow.js.map +1 -1
  7. package/es/event/eventArgs.d.ts +13 -4
  8. package/es/event/eventEmitter.d.ts +2 -2
  9. package/es/index.d.ts +1 -0
  10. package/es/index.js +1 -0
  11. package/es/index.js.map +1 -1
  12. package/es/keyboard/index.d.ts +1 -0
  13. package/es/keyboard/index.js +1 -0
  14. package/es/keyboard/index.js.map +1 -1
  15. package/es/keyboard/shortcut.d.ts +4 -0
  16. package/es/keyboard/shortcut.js +61 -0
  17. package/es/keyboard/shortcut.js.map +1 -1
  18. package/es/model/BaseModel.d.ts +15 -2
  19. package/es/model/EditConfigModel.d.ts +1 -1
  20. package/es/model/EditConfigModel.js +11 -11
  21. package/es/model/EditConfigModel.js.map +1 -1
  22. package/es/model/GraphModel.d.ts +12 -12
  23. package/es/model/GraphModel.js +3 -3
  24. package/es/model/GraphModel.js.map +1 -1
  25. package/es/model/edge/BaseEdgeModel.d.ts +9 -7
  26. package/es/model/edge/BaseEdgeModel.js +5 -2
  27. package/es/model/edge/BaseEdgeModel.js.map +1 -1
  28. package/es/model/edge/BezierEdgeModel.d.ts +2 -2
  29. package/es/model/edge/BezierEdgeModel.js +2 -1
  30. package/es/model/edge/BezierEdgeModel.js.map +1 -1
  31. package/es/model/edge/LineEdgeModel.js +2 -1
  32. package/es/model/edge/LineEdgeModel.js.map +1 -1
  33. package/es/model/edge/PolylineEdgeModel.js +2 -1
  34. package/es/model/edge/PolylineEdgeModel.js.map +1 -1
  35. package/es/model/node/BaseNodeModel.d.ts +23 -21
  36. package/es/model/node/BaseNodeModel.js +17 -16
  37. package/es/model/node/BaseNodeModel.js.map +1 -1
  38. package/es/model/node/CircleNodeModel.d.ts +2 -3
  39. package/es/model/node/CircleNodeModel.js +2 -5
  40. package/es/model/node/CircleNodeModel.js.map +1 -1
  41. package/es/model/node/DiamondNodeModel.d.ts +3 -4
  42. package/es/model/node/DiamondNodeModel.js +2 -5
  43. package/es/model/node/DiamondNodeModel.js.map +1 -1
  44. package/es/model/node/EllipseNodeModel.d.ts +3 -4
  45. package/es/model/node/EllipseNodeModel.js +2 -5
  46. package/es/model/node/EllipseNodeModel.js.map +1 -1
  47. package/es/model/node/HtmlNodeModel.d.ts +3 -4
  48. package/es/model/node/HtmlNodeModel.js +2 -12
  49. package/es/model/node/HtmlNodeModel.js.map +1 -1
  50. package/es/model/node/PolygonNodeModel.d.ts +3 -4
  51. package/es/model/node/PolygonNodeModel.js +2 -5
  52. package/es/model/node/PolygonNodeModel.js.map +1 -1
  53. package/es/model/node/RectNodeModel.d.ts +4 -5
  54. package/es/model/node/RectNodeModel.js +2 -5
  55. package/es/model/node/RectNodeModel.js.map +1 -1
  56. package/es/model/node/TextNodeModel.d.ts +14 -8
  57. package/es/model/node/TextNodeModel.js.map +1 -1
  58. package/es/util/edge.d.ts +1 -1
  59. package/es/util/index.d.ts +1 -0
  60. package/es/util/index.js +1 -0
  61. package/es/util/index.js.map +1 -1
  62. package/es/util/node.js +3 -0
  63. package/es/util/node.js.map +1 -1
  64. package/es/util/resize.d.ts +32 -0
  65. package/es/util/resize.js +197 -0
  66. package/es/util/resize.js.map +1 -0
  67. package/es/view/Anchor.d.ts +4 -3
  68. package/es/view/Control.d.ts +1 -1
  69. package/es/view/Control.js +72 -35
  70. package/es/view/Control.js.map +1 -1
  71. package/es/view/Graph.js +2 -1
  72. package/es/view/Graph.js.map +1 -1
  73. package/es/view/node/BaseNode.d.ts +2 -2
  74. package/es/view/node/BaseNode.js +15 -11
  75. package/es/view/node/BaseNode.js.map +1 -1
  76. package/es/view/node/CircleNode.d.ts +1 -1
  77. package/es/view/node/CircleNode.js.map +1 -1
  78. package/es/view/node/DiamondNode.d.ts +1 -1
  79. package/es/view/node/DiamondNode.js.map +1 -1
  80. package/es/view/node/EllipseNode.d.ts +1 -1
  81. package/es/view/node/EllipseNode.js.map +1 -1
  82. package/es/view/node/HtmlNode.d.ts +1 -1
  83. package/es/view/node/HtmlNode.js.map +1 -1
  84. package/es/view/node/PolygonNode.d.ts +1 -1
  85. package/es/view/node/PolygonNode.js.map +1 -1
  86. package/es/view/node/RectNode.d.ts +1 -1
  87. package/es/view/node/RectNode.js.map +1 -1
  88. package/es/view/node/TextNode.d.ts +1 -1
  89. package/es/view/node/TextNode.js.map +1 -1
  90. package/es/view/text/BaseText.js +1 -1
  91. package/es/view/text/BaseText.js.map +1 -1
  92. package/lib/LogicFlow.d.ts +19 -14
  93. package/lib/LogicFlow.js +2 -3
  94. package/lib/LogicFlow.js.map +1 -1
  95. package/lib/event/eventArgs.d.ts +13 -4
  96. package/lib/event/eventEmitter.d.ts +2 -2
  97. package/lib/index.d.ts +1 -0
  98. package/lib/index.js +1 -0
  99. package/lib/index.js.map +1 -1
  100. package/lib/keyboard/index.d.ts +1 -0
  101. package/lib/keyboard/index.js +15 -0
  102. package/lib/keyboard/index.js.map +1 -1
  103. package/lib/keyboard/shortcut.d.ts +4 -0
  104. package/lib/keyboard/shortcut.js +64 -1
  105. package/lib/keyboard/shortcut.js.map +1 -1
  106. package/lib/model/BaseModel.d.ts +15 -2
  107. package/lib/model/EditConfigModel.d.ts +1 -1
  108. package/lib/model/EditConfigModel.js +10 -10
  109. package/lib/model/EditConfigModel.js.map +1 -1
  110. package/lib/model/GraphModel.d.ts +12 -12
  111. package/lib/model/GraphModel.js +2 -2
  112. package/lib/model/GraphModel.js.map +1 -1
  113. package/lib/model/edge/BaseEdgeModel.d.ts +9 -7
  114. package/lib/model/edge/BaseEdgeModel.js +5 -2
  115. package/lib/model/edge/BaseEdgeModel.js.map +1 -1
  116. package/lib/model/edge/BezierEdgeModel.d.ts +2 -2
  117. package/lib/model/edge/BezierEdgeModel.js +2 -1
  118. package/lib/model/edge/BezierEdgeModel.js.map +1 -1
  119. package/lib/model/edge/LineEdgeModel.js +2 -1
  120. package/lib/model/edge/LineEdgeModel.js.map +1 -1
  121. package/lib/model/edge/PolylineEdgeModel.js +2 -1
  122. package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
  123. package/lib/model/node/BaseNodeModel.d.ts +23 -21
  124. package/lib/model/node/BaseNodeModel.js +17 -16
  125. package/lib/model/node/BaseNodeModel.js.map +1 -1
  126. package/lib/model/node/CircleNodeModel.d.ts +2 -3
  127. package/lib/model/node/CircleNodeModel.js +2 -5
  128. package/lib/model/node/CircleNodeModel.js.map +1 -1
  129. package/lib/model/node/DiamondNodeModel.d.ts +3 -4
  130. package/lib/model/node/DiamondNodeModel.js +2 -5
  131. package/lib/model/node/DiamondNodeModel.js.map +1 -1
  132. package/lib/model/node/EllipseNodeModel.d.ts +3 -4
  133. package/lib/model/node/EllipseNodeModel.js +2 -5
  134. package/lib/model/node/EllipseNodeModel.js.map +1 -1
  135. package/lib/model/node/HtmlNodeModel.d.ts +3 -4
  136. package/lib/model/node/HtmlNodeModel.js +2 -12
  137. package/lib/model/node/HtmlNodeModel.js.map +1 -1
  138. package/lib/model/node/PolygonNodeModel.d.ts +3 -4
  139. package/lib/model/node/PolygonNodeModel.js +2 -5
  140. package/lib/model/node/PolygonNodeModel.js.map +1 -1
  141. package/lib/model/node/RectNodeModel.d.ts +4 -5
  142. package/lib/model/node/RectNodeModel.js +2 -5
  143. package/lib/model/node/RectNodeModel.js.map +1 -1
  144. package/lib/model/node/TextNodeModel.d.ts +14 -8
  145. package/lib/model/node/TextNodeModel.js.map +1 -1
  146. package/lib/util/edge.d.ts +1 -1
  147. package/lib/util/index.d.ts +1 -0
  148. package/lib/util/index.js +1 -0
  149. package/lib/util/index.js.map +1 -1
  150. package/lib/util/node.js +3 -0
  151. package/lib/util/node.js.map +1 -1
  152. package/lib/util/resize.d.ts +32 -0
  153. package/lib/util/resize.js +204 -0
  154. package/lib/util/resize.js.map +1 -0
  155. package/lib/view/Anchor.d.ts +4 -3
  156. package/lib/view/Control.d.ts +1 -1
  157. package/lib/view/Control.js +71 -34
  158. package/lib/view/Control.js.map +1 -1
  159. package/lib/view/Graph.js +2 -1
  160. package/lib/view/Graph.js.map +1 -1
  161. package/lib/view/node/BaseNode.d.ts +2 -2
  162. package/lib/view/node/BaseNode.js +15 -11
  163. package/lib/view/node/BaseNode.js.map +1 -1
  164. package/lib/view/node/CircleNode.d.ts +1 -1
  165. package/lib/view/node/CircleNode.js.map +1 -1
  166. package/lib/view/node/DiamondNode.d.ts +1 -1
  167. package/lib/view/node/DiamondNode.js.map +1 -1
  168. package/lib/view/node/EllipseNode.d.ts +1 -1
  169. package/lib/view/node/EllipseNode.js.map +1 -1
  170. package/lib/view/node/HtmlNode.d.ts +1 -1
  171. package/lib/view/node/HtmlNode.js.map +1 -1
  172. package/lib/view/node/PolygonNode.d.ts +1 -1
  173. package/lib/view/node/PolygonNode.js.map +1 -1
  174. package/lib/view/node/RectNode.d.ts +1 -1
  175. package/lib/view/node/RectNode.js.map +1 -1
  176. package/lib/view/node/TextNode.d.ts +1 -1
  177. package/lib/view/node/TextNode.js.map +1 -1
  178. package/lib/view/text/BaseText.js +1 -1
  179. package/lib/view/text/BaseText.js.map +1 -1
  180. package/package.json +1 -1
  181. package/src/LogicFlow.tsx +18 -14
  182. package/src/event/eventArgs.ts +16 -4
  183. package/src/event/eventEmitter.ts +1 -1
  184. package/src/index.ts +1 -0
  185. package/src/keyboard/index.ts +2 -0
  186. package/src/keyboard/shortcut.ts +67 -0
  187. package/src/model/BaseModel.ts +16 -3
  188. package/src/model/EditConfigModel.ts +11 -11
  189. package/src/model/GraphModel.ts +3 -3
  190. package/src/model/edge/BaseEdgeModel.ts +17 -5
  191. package/src/model/edge/BezierEdgeModel.ts +2 -0
  192. package/src/model/edge/LineEdgeModel.ts +2 -0
  193. package/src/model/edge/PolylineEdgeModel.ts +2 -0
  194. package/src/model/node/BaseNodeModel.ts +23 -16
  195. package/src/model/node/CircleNodeModel.ts +6 -4
  196. package/src/model/node/DiamondNodeModel.ts +7 -5
  197. package/src/model/node/EllipseNodeModel.ts +7 -5
  198. package/src/model/node/HtmlNodeModel.ts +7 -6
  199. package/src/model/node/PolygonNodeModel.ts +7 -5
  200. package/src/model/node/RectNodeModel.ts +8 -6
  201. package/src/model/node/TextNodeModel.ts +13 -2
  202. package/src/util/index.ts +1 -0
  203. package/src/util/node.ts +4 -0
  204. package/src/util/resize.ts +286 -0
  205. package/src/view/Control.tsx +76 -57
  206. package/src/view/Graph.tsx +2 -1
  207. package/src/view/node/BaseNode.tsx +26 -13
  208. package/src/view/node/CircleNode.tsx +3 -1
  209. package/src/view/node/DiamondNode.tsx +3 -1
  210. package/src/view/node/EllipseNode.tsx +3 -1
  211. package/src/view/node/HtmlNode.tsx +3 -1
  212. package/src/view/node/PolygonNode.tsx +3 -1
  213. package/src/view/node/RectNode.tsx +3 -1
  214. package/src/view/node/TextNode.tsx +3 -1
  215. 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<P, IState> {
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 { isSelected, isHitable, enableRotate, isHovered } = model
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) && enableRotate) {
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 { isSelected, isHitable, enableResize, isHovered } = model
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) && enableResize) {
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 extends BaseNode<ICircleNodeProps> {
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 extends BaseNode<IDiamondNodeProps> {
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 extends BaseNode<IEllipseNodeProps> {
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 extends BaseNode<IHtmlNodeProps> {
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 extends BaseNode<IPolygonNodeProps> {
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 extends BaseNode<IRectNodeProps> {
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 extends BaseNode<ITextNodeProps> {
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()
@@ -79,7 +79,7 @@ export class BaseText<
79
79
  editConfigModel: { nodeTextDraggable },
80
80
  } = graphModel
81
81
 
82
- if (draggable || nodeTextDraggable) {
82
+ if (draggable ?? nodeTextDraggable) {
83
83
  this.stepperDrag.model = model
84
84
  this.stepperDrag.handleMouseDown(e)
85
85
  }