@logicflow/core 2.0.0-beta.4 → 2.0.0-beta.6

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 (246) hide show
  1. package/.turbo/turbo-build$colon$dev.log +2 -2
  2. package/.turbo/turbo-build.log +9 -15
  3. package/__tests__/bugs/1545-spec.test.ts +19 -15
  4. package/__tests__/util/edge.test.ts +57 -57
  5. package/dist/index.min.js +4 -4
  6. package/es/LogicFlow.d.ts +32 -6
  7. package/es/LogicFlow.js +15 -12
  8. package/es/LogicFlow.js.map +1 -1
  9. package/es/algorithm/edge.js.map +1 -1
  10. package/es/algorithm/index.d.ts +2 -0
  11. package/es/algorithm/index.js +2 -0
  12. package/es/algorithm/index.js.map +1 -1
  13. package/es/algorithm/outline.d.ts +1 -1
  14. package/es/common/drag.d.ts +2 -2
  15. package/es/common/drag.js.map +1 -1
  16. package/es/constant/index.d.ts +37 -1
  17. package/es/constant/index.js +40 -1
  18. package/es/constant/index.js.map +1 -1
  19. package/es/event/eventArgs.d.ts +88 -25
  20. package/es/index.d.ts +4 -0
  21. package/es/index.js +4 -0
  22. package/es/index.js.map +1 -1
  23. package/es/keyboard/shortcut.d.ts +4 -0
  24. package/es/keyboard/shortcut.js +9 -8
  25. package/es/keyboard/shortcut.js.map +1 -1
  26. package/es/model/BaseModel.d.ts +12 -16
  27. package/es/model/EditConfigModel.d.ts +97 -36
  28. package/es/model/EditConfigModel.js +166 -79
  29. package/es/model/EditConfigModel.js.map +1 -1
  30. package/es/model/GraphModel.d.ts +12 -1
  31. package/es/model/GraphModel.js +40 -9
  32. package/es/model/GraphModel.js.map +1 -1
  33. package/es/model/TransformModel.js +1 -1
  34. package/es/model/TransformModel.js.map +1 -1
  35. package/es/model/edge/BaseEdgeModel.d.ts +7 -1
  36. package/es/model/edge/BaseEdgeModel.js +33 -17
  37. package/es/model/edge/BaseEdgeModel.js.map +1 -1
  38. package/es/model/edge/BezierEdgeModel.d.ts +1 -1
  39. package/es/model/edge/BezierEdgeModel.js +5 -2
  40. package/es/model/edge/BezierEdgeModel.js.map +1 -1
  41. package/es/model/edge/PolylineEdgeModel.d.ts +3 -3
  42. package/es/model/edge/PolylineEdgeModel.js +20 -14
  43. package/es/model/edge/PolylineEdgeModel.js.map +1 -1
  44. package/es/model/node/BaseNodeModel.d.ts +7 -1
  45. package/es/model/node/BaseNodeModel.js +22 -11
  46. package/es/model/node/BaseNodeModel.js.map +1 -1
  47. package/es/model/node/CircleNodeModel.js.map +1 -1
  48. package/es/model/node/DiamondNodeModel.js.map +1 -1
  49. package/es/model/node/EllipseNodeModel.js.map +1 -1
  50. package/es/options.d.ts +4 -1
  51. package/es/options.js.map +1 -1
  52. package/es/tool/MultipleSelectTool.d.ts +1 -1
  53. package/es/tool/MultipleSelectTool.js +5 -5
  54. package/es/tool/MultipleSelectTool.js.map +1 -1
  55. package/es/tool/TextEditTool.d.ts +3 -3
  56. package/es/tool/TextEditTool.js +2 -2
  57. package/es/tool/TextEditTool.js.map +1 -1
  58. package/es/tool/index.d.ts +24 -2
  59. package/es/tool/index.js +82 -2
  60. package/es/tool/index.js.map +1 -1
  61. package/es/util/drag.d.ts +5 -5
  62. package/es/util/drag.js +3 -1
  63. package/es/util/drag.js.map +1 -1
  64. package/es/util/edge.d.ts +2 -1
  65. package/es/util/edge.js +9 -12
  66. package/es/util/edge.js.map +1 -1
  67. package/es/util/node.d.ts +2 -5
  68. package/es/util/node.js +1 -0
  69. package/es/util/node.js.map +1 -1
  70. package/es/view/Anchor.d.ts +1 -3
  71. package/es/view/Anchor.js +3 -0
  72. package/es/view/Anchor.js.map +1 -1
  73. package/es/view/Control.d.ts +1 -1
  74. package/es/view/Control.js +7 -7
  75. package/es/view/Control.js.map +1 -1
  76. package/es/view/Graph.d.ts +1 -1
  77. package/es/view/Rotate.js +2 -1
  78. package/es/view/Rotate.js.map +1 -1
  79. package/es/view/behavior/index.d.ts +2 -0
  80. package/es/view/behavior/index.js +3 -0
  81. package/es/view/behavior/index.js.map +1 -0
  82. package/es/view/behavior/snapline.d.ts +3 -0
  83. package/es/{tool → view/behavior}/snapline.js +0 -1
  84. package/es/view/behavior/snapline.js.map +1 -0
  85. package/es/view/edge/AdjustPoint.js +9 -20
  86. package/es/view/edge/AdjustPoint.js.map +1 -1
  87. package/es/view/edge/BaseEdge.js +25 -17
  88. package/es/view/edge/BaseEdge.js.map +1 -1
  89. package/es/view/node/BaseNode.js +14 -9
  90. package/es/view/node/BaseNode.js.map +1 -1
  91. package/es/view/node/HtmlNode.js +2 -2
  92. package/es/view/node/HtmlNode.js.map +1 -1
  93. package/es/view/overlay/CanvasOverlay.js +1 -0
  94. package/es/view/overlay/CanvasOverlay.js.map +1 -1
  95. package/es/view/overlay/ToolOverlay.d.ts +1 -1
  96. package/es/view/overlay/ToolOverlay.js +1 -1
  97. package/es/view/overlay/ToolOverlay.js.map +1 -1
  98. package/es/view/text/BaseText.js +7 -3
  99. package/es/view/text/BaseText.js.map +1 -1
  100. package/lib/LogicFlow.d.ts +32 -6
  101. package/lib/LogicFlow.js +17 -14
  102. package/lib/LogicFlow.js.map +1 -1
  103. package/lib/algorithm/edge.js.map +1 -1
  104. package/lib/algorithm/index.d.ts +2 -0
  105. package/lib/algorithm/index.js +17 -1
  106. package/lib/algorithm/index.js.map +1 -1
  107. package/lib/algorithm/outline.d.ts +1 -1
  108. package/lib/common/drag.d.ts +2 -2
  109. package/lib/common/drag.js.map +1 -1
  110. package/lib/constant/index.d.ts +37 -1
  111. package/lib/constant/index.js +41 -2
  112. package/lib/constant/index.js.map +1 -1
  113. package/lib/event/eventArgs.d.ts +88 -25
  114. package/lib/index.d.ts +4 -0
  115. package/lib/index.js +4 -0
  116. package/lib/index.js.map +1 -1
  117. package/lib/keyboard/shortcut.d.ts +4 -0
  118. package/lib/keyboard/shortcut.js +12 -9
  119. package/lib/keyboard/shortcut.js.map +1 -1
  120. package/lib/model/BaseModel.d.ts +12 -16
  121. package/lib/model/EditConfigModel.d.ts +97 -36
  122. package/lib/model/EditConfigModel.js +165 -78
  123. package/lib/model/EditConfigModel.js.map +1 -1
  124. package/lib/model/GraphModel.d.ts +12 -1
  125. package/lib/model/GraphModel.js +38 -7
  126. package/lib/model/GraphModel.js.map +1 -1
  127. package/lib/model/TransformModel.js +1 -1
  128. package/lib/model/TransformModel.js.map +1 -1
  129. package/lib/model/edge/BaseEdgeModel.d.ts +7 -1
  130. package/lib/model/edge/BaseEdgeModel.js +31 -15
  131. package/lib/model/edge/BaseEdgeModel.js.map +1 -1
  132. package/lib/model/edge/BezierEdgeModel.d.ts +1 -1
  133. package/lib/model/edge/BezierEdgeModel.js +4 -1
  134. package/lib/model/edge/BezierEdgeModel.js.map +1 -1
  135. package/lib/model/edge/PolylineEdgeModel.d.ts +3 -3
  136. package/lib/model/edge/PolylineEdgeModel.js +19 -13
  137. package/lib/model/edge/PolylineEdgeModel.js.map +1 -1
  138. package/lib/model/node/BaseNodeModel.d.ts +7 -1
  139. package/lib/model/node/BaseNodeModel.js +20 -9
  140. package/lib/model/node/BaseNodeModel.js.map +1 -1
  141. package/lib/model/node/CircleNodeModel.js.map +1 -1
  142. package/lib/model/node/DiamondNodeModel.js.map +1 -1
  143. package/lib/model/node/EllipseNodeModel.js.map +1 -1
  144. package/lib/options.d.ts +4 -1
  145. package/lib/options.js.map +1 -1
  146. package/lib/tool/MultipleSelectTool.d.ts +1 -1
  147. package/lib/tool/MultipleSelectTool.js +5 -5
  148. package/lib/tool/MultipleSelectTool.js.map +1 -1
  149. package/lib/tool/TextEditTool.d.ts +3 -3
  150. package/lib/tool/TextEditTool.js +4 -4
  151. package/lib/tool/TextEditTool.js.map +1 -1
  152. package/lib/tool/index.d.ts +24 -2
  153. package/lib/tool/index.js +85 -15
  154. package/lib/tool/index.js.map +1 -1
  155. package/lib/util/drag.d.ts +5 -5
  156. package/lib/util/drag.js +3 -1
  157. package/lib/util/drag.js.map +1 -1
  158. package/lib/util/edge.d.ts +2 -1
  159. package/lib/util/edge.js +11 -14
  160. package/lib/util/edge.js.map +1 -1
  161. package/lib/util/node.d.ts +2 -5
  162. package/lib/util/node.js +1 -0
  163. package/lib/util/node.js.map +1 -1
  164. package/lib/view/Anchor.d.ts +1 -3
  165. package/lib/view/Anchor.js +3 -0
  166. package/lib/view/Anchor.js.map +1 -1
  167. package/lib/view/Control.d.ts +1 -1
  168. package/lib/view/Control.js +7 -7
  169. package/lib/view/Control.js.map +1 -1
  170. package/lib/view/Graph.d.ts +1 -1
  171. package/lib/view/Rotate.js +2 -1
  172. package/lib/view/Rotate.js.map +1 -1
  173. package/lib/view/behavior/index.d.ts +2 -0
  174. package/lib/view/behavior/index.js +19 -0
  175. package/lib/view/behavior/index.js.map +1 -0
  176. package/lib/view/behavior/snapline.d.ts +3 -0
  177. package/lib/{tool → view/behavior}/snapline.js +0 -1
  178. package/lib/view/behavior/snapline.js.map +1 -0
  179. package/lib/view/edge/AdjustPoint.js +9 -20
  180. package/lib/view/edge/AdjustPoint.js.map +1 -1
  181. package/lib/view/edge/BaseEdge.js +24 -16
  182. package/lib/view/edge/BaseEdge.js.map +1 -1
  183. package/lib/view/node/BaseNode.js +13 -8
  184. package/lib/view/node/BaseNode.js.map +1 -1
  185. package/lib/view/node/HtmlNode.js +2 -2
  186. package/lib/view/node/HtmlNode.js.map +1 -1
  187. package/lib/view/overlay/CanvasOverlay.js +1 -0
  188. package/lib/view/overlay/CanvasOverlay.js.map +1 -1
  189. package/lib/view/overlay/ToolOverlay.d.ts +1 -1
  190. package/lib/view/overlay/ToolOverlay.js +1 -1
  191. package/lib/view/overlay/ToolOverlay.js.map +1 -1
  192. package/lib/view/text/BaseText.js +6 -2
  193. package/lib/view/text/BaseText.js.map +1 -1
  194. package/package.json +1 -1
  195. package/src/LogicFlow.tsx +52 -14
  196. package/src/algorithm/edge.ts +1 -0
  197. package/src/algorithm/index.ts +2 -0
  198. package/src/algorithm/outline.ts +2 -2
  199. package/src/common/drag.ts +16 -2
  200. package/src/constant/index.ts +42 -1
  201. package/src/event/eventArgs.ts +155 -34
  202. package/src/index.ts +4 -0
  203. package/src/keyboard/shortcut.ts +12 -8
  204. package/src/model/BaseModel.ts +15 -17
  205. package/src/model/EditConfigModel.ts +206 -94
  206. package/src/model/GraphModel.ts +43 -8
  207. package/src/model/TransformModel.ts +1 -1
  208. package/src/model/edge/BaseEdgeModel.ts +27 -18
  209. package/src/model/edge/BezierEdgeModel.ts +5 -6
  210. package/src/model/edge/PolylineEdgeModel.ts +22 -18
  211. package/src/model/node/BaseNodeModel.ts +19 -13
  212. package/src/model/node/CircleNodeModel.ts +0 -1
  213. package/src/model/node/DiamondNodeModel.ts +0 -1
  214. package/src/model/node/EllipseNodeModel.ts +0 -1
  215. package/src/options.ts +6 -1
  216. package/src/tool/MultipleSelectTool.tsx +6 -6
  217. package/src/tool/TextEditTool.tsx +3 -3
  218. package/src/tool/index.ts +96 -2
  219. package/src/util/drag.ts +22 -6
  220. package/src/util/edge.ts +14 -13
  221. package/src/util/node.ts +3 -5
  222. package/src/view/Anchor.tsx +3 -1
  223. package/src/view/Control.tsx +16 -7
  224. package/src/view/Graph.tsx +1 -1
  225. package/src/view/Rotate.tsx +2 -1
  226. package/src/view/behavior/index.ts +2 -0
  227. package/src/{tool → view/behavior}/snapline.ts +3 -4
  228. package/src/view/edge/AdjustPoint.tsx +32 -46
  229. package/src/view/edge/BaseEdge.tsx +58 -38
  230. package/src/view/node/BaseNode.tsx +24 -10
  231. package/src/view/node/HtmlNode.tsx +2 -2
  232. package/src/view/overlay/CanvasOverlay.tsx +1 -0
  233. package/src/view/overlay/ToolOverlay.tsx +1 -1
  234. package/src/view/text/BaseText.tsx +11 -3
  235. package/tsconfig.json +1 -1
  236. package/es/tool/snapline.d.ts +0 -3
  237. package/es/tool/snapline.js.map +0 -1
  238. package/es/tool/tool.d.ts +0 -22
  239. package/es/tool/tool.js +0 -43
  240. package/es/tool/tool.js.map +0 -1
  241. package/lib/tool/snapline.d.ts +0 -3
  242. package/lib/tool/snapline.js.map +0 -1
  243. package/lib/tool/tool.d.ts +0 -22
  244. package/lib/tool/tool.js +0 -49
  245. package/lib/tool/tool.js.map +0 -1
  246. package/src/tool/tool.ts +0 -66
@@ -4,12 +4,15 @@ var __decorate = (this && this.__decorate) || function (decorators, target, key,
4
4
  else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r;
5
5
  return c > 3 && r && Object.defineProperty(target, key, r), r;
6
6
  };
7
- import { assign, pick } from 'lodash-es';
8
- import { observable, action } from '../util/mobx';
9
- var SilentConfig = {
7
+ import { assign, isBoolean, pick } from 'lodash-es';
8
+ import { observable, action } from 'mobx';
9
+ import { TextMode } from '../constant';
10
+ var silentModeConfig = {
11
+ // SilentMode 下允许用户操作画布
10
12
  stopZoomGraph: false,
11
13
  stopScrollGraph: false,
12
14
  stopMoveGraph: false,
15
+ // 节点 & 边相关配置
13
16
  adjustEdge: false,
14
17
  adjustEdgeStartAndEnd: false,
15
18
  adjustNodePosition: false,
@@ -17,99 +20,123 @@ var SilentConfig = {
17
20
  allowRotate: false,
18
21
  allowResize: false,
19
22
  nodeSelectedOutline: true,
23
+ // 文本相关配置
24
+ textEdit: false,
20
25
  nodeTextEdit: false,
21
26
  edgeTextEdit: false,
27
+ textDraggable: false,
22
28
  nodeTextDraggable: false,
23
29
  edgeTextDraggable: false,
24
30
  };
25
- var keys = [
26
- 'isSilentMode',
27
- 'stopZoomGraph',
28
- 'stopScrollGraph',
29
- 'stopMoveGraph',
30
- 'adjustEdge',
31
- 'adjustEdgeMiddle',
32
- 'adjustEdgeStartAndEnd',
33
- 'adjustNodePosition',
34
- 'hideAnchors',
35
- 'allowRotate',
36
- 'allowResize',
37
- 'hoverOutline',
38
- 'nodeSelectedOutline',
39
- 'edgeSelectedOutline',
40
- 'nodeTextEdit',
41
- 'edgeTextEdit',
42
- 'nodeTextDraggable',
43
- 'edgeTextDraggable',
44
- 'multipleSelectKey',
45
- 'autoExpand',
31
+ var allKeys = [
32
+ 'isSilentMode', // 是否为静默模式
33
+ 'stopZoomGraph', // 禁止缩放画布
34
+ 'stopScrollGraph', // 禁止鼠标滚动移动画布
35
+ 'stopMoveGraph', // 禁止拖动画布
36
+ 'adjustEdge', // 允许调整边
37
+ 'adjustEdgeMiddle', // 允许调整边中点
38
+ 'adjustEdgeStartAndEnd', // 允许调整边起点和终点
39
+ 'adjustEdgeStart', // 允许调整边起点
40
+ 'adjustEdgeEnd', // 允许调整边终点
41
+ 'adjustNodePosition', // 允许拖动节点
42
+ 'hideAnchors', // 隐藏节点所有锚点
43
+ 'allowRotate', // 是否允许节点旋转
44
+ 'allowResize', // 是否允许节点缩放
45
+ 'autoExpand', // 是否自动展开
46
+ 'hoverOutline', // 显示节点悬浮时的外框
47
+ 'nodeSelectedOutline', // 节点被选中时是否显示 outline
48
+ 'edgeSelectedOutline', // 边被选中时是否显示 outline
49
+ 'textEdit', // 是否允许文本可编辑(全局)
50
+ 'nodeTextEdit', // 允许节点文本可以编辑
51
+ 'edgeTextEdit', // 允许边文本可以编辑
52
+ 'textDraggable', // 是否允许文本可拖拽(全局)
53
+ 'nodeTextDraggable', // 允许节点文本可以拖拽
54
+ 'edgeTextDraggable', // 允许边文本可以拖拽
55
+ 'multipleSelectKey', // 多选按键
56
+ // 2.0.0 新增配置
57
+ 'textMode', // 文本模式(全局)
58
+ 'nodeTextMode', // 节点文本模式
59
+ 'edgeTextMode', // 边文本模式
60
+ 'nodeTextMultiple', // 是否支持多个节点文本
61
+ 'edgeTextMultiple', // 是否支持多个边文本
62
+ 'nodeTextVertical', // 节点文本是否纵向显示
63
+ 'edgeTextVertical', // 边文本是否纵向显示
46
64
  ];
47
65
  /**
48
66
  * 页面编辑配置
49
67
  */
50
68
  var EditConfigModel = /** @class */ (function () {
51
69
  function EditConfigModel(config) {
70
+ /*********************************************************
71
+ * 画布相关配置
72
+ ********************************************************/
52
73
  this.isSilentMode = false;
53
74
  this.stopZoomGraph = false;
54
- this.stopScrollGraph = false;
55
75
  this.stopMoveGraph = false;
56
- this.adjustEdge = true;
57
- this.adjustEdgeMiddle = false;
58
- this.adjustEdgeStartAndEnd = false;
59
- this.adjustNodePosition = true;
76
+ this.stopScrollGraph = false;
77
+ /*********************************************************
78
+ * 文本相关配置(全局)
79
+ ********************************************************/
80
+ this.textMode = TextMode.TEXT; // 全局的 textMode 设置
81
+ this.textEdit = true;
82
+ this.textDraggable = false;
83
+ // 节点
84
+ this.nodeTextEdit = true;
85
+ this.nodeTextDraggable = true;
86
+ this.nodeTextMultiple = false; // 是否支持多个节点文本
87
+ this.nodeTextVertical = false; // 节点文本朝向是否是纵向
88
+ this.nodeTextMode = TextMode.TEXT; // 节点文本模式
89
+ // 边
90
+ this.edgeTextMode = TextMode.TEXT; // 边文本模式
91
+ this.edgeTextEdit = true;
92
+ this.edgeTextDraggable = false;
93
+ this.edgeTextMultiple = false; // 是否支持多个边文本
94
+ this.edgeTextVertical = false; // 边文本朝向是否是纵向
95
+ /*********************************************************
96
+ * 节点相关配置
97
+ ********************************************************/
60
98
  this.hideAnchors = false;
61
99
  this.allowRotate = false;
62
100
  this.allowResize = false;
63
101
  this.hoverOutline = true;
64
102
  this.nodeSelectedOutline = true;
65
- this.edgeSelectedOutline = true;
66
- this.nodeTextEdit = true;
67
- this.edgeTextEdit = true;
68
- this.nodeTextDraggable = false;
69
- this.edgeTextDraggable = false;
103
+ this.adjustNodePosition = true;
70
104
  this.autoExpand = false;
105
+ /*********************************************************
106
+ * 边相关配置
107
+ ********************************************************/
108
+ this.adjustEdge = true;
109
+ this.adjustEdgeMiddle = false;
110
+ this.adjustEdgeStartAndEnd = false;
111
+ this.adjustEdgeStart = false;
112
+ this.adjustEdgeEnd = false;
113
+ this.edgeSelectedOutline = true;
114
+ /*********************************************************
115
+ * 其他
116
+ ********************************************************/
71
117
  this.multipleSelectKey = '';
72
- this.defaultConfig = {}; // 设置为静默模式之前的配置,在取消静默模式后恢复
73
- assign(this, this.getConfigDetail(config));
118
+ assign(this, this.computeConfig(config));
74
119
  }
75
120
  EditConfigModel.prototype.updateEditConfig = function (config) {
76
- var newConfig = this.getConfigDetail(config);
121
+ var newConfig = this.computeConfig(config);
77
122
  assign(this, newConfig);
78
123
  };
79
- EditConfigModel.prototype.getConfigDetail = function (config) {
80
- var isSilentMode = config.isSilentMode, textEdit = config.textEdit;
124
+ // TODO: 确认一下这个函数的逻辑,是否会有误合并的问题
125
+ EditConfigModel.prototype.computeConfig = function (config) {
126
+ var isSilentMode = config.isSilentMode, textDraggable = config.textDraggable, textMode = config.textMode, textEdit = config.textEdit, adjustEdgeStartAndEnd = config.adjustEdgeStartAndEnd;
81
127
  var conf = {};
82
- // false表示从静默模式恢复
128
+ // false 表示从静默模式恢复
83
129
  if (isSilentMode === false) {
84
- assign(conf, this.defaultConfig);
130
+ assign(conf, this.stagedConfig);
85
131
  }
86
- // 如果不传,默认undefined表示非静默模式
132
+ // 如果不传,默认 undefined 表示非静默模式
87
133
  if (isSilentMode === true && isSilentMode !== this.isSilentMode) {
88
134
  // https://github.com/didi/LogicFlow/issues/1180
89
- // 如果重复调用isSilentMode=true多次,会导致this.defaultConfig状态保存错误:保存为修改之后的Config
90
- // 因此需要阻止重复赋值为true,使用config.isSilentMode !== this.isSilentMode
91
- var silentConfig = pick(SilentConfig, keys);
92
- // 在修改之前,
93
- this.defaultConfig = {
94
- stopZoomGraph: this.stopZoomGraph,
95
- stopScrollGraph: this.stopScrollGraph,
96
- stopMoveGraph: this.stopMoveGraph,
97
- adjustEdge: this.adjustEdge,
98
- adjustEdgeMiddle: this.adjustEdgeMiddle,
99
- adjustEdgeStartAndEnd: this.adjustEdgeStartAndEnd,
100
- adjustNodePosition: this.adjustNodePosition,
101
- hideAnchors: this.hideAnchors,
102
- allowRotate: this.allowRotate,
103
- allowResize: this.allowResize,
104
- hoverOutline: this.hoverOutline,
105
- nodeSelectedOutline: this.nodeSelectedOutline,
106
- edgeSelectedOutline: this.edgeSelectedOutline,
107
- nodeTextEdit: this.nodeTextEdit,
108
- edgeTextEdit: this.edgeTextEdit,
109
- nodeTextDraggable: this.nodeTextDraggable,
110
- edgeTextDraggable: this.edgeTextDraggable,
111
- autoExpand: this.autoExpand,
112
- };
135
+ // 如果重复调用 isSilentMode=true 多次,会导致 this.stagedConfig 状态保存错误:保存为修改之后的 Config
136
+ // 因此需要阻止重复赋值为 true,使用 config.isSilentMode !== this.isSilentMode
137
+ var silentConfig = pick(silentModeConfig, allKeys);
138
+ // 暂存修改之前的所有配置项
139
+ this.stagedConfig = pick(this, allKeys);
113
140
  assign(conf, silentConfig);
114
141
  }
115
142
  // 如果不传,默认undefined表示允许文本编辑
@@ -119,11 +146,35 @@ var EditConfigModel = /** @class */ (function () {
119
146
  edgeTextEdit: false,
120
147
  });
121
148
  }
122
- var userConfig = pick(config, keys);
149
+ if (textMode) {
150
+ assign(conf, {
151
+ nodeTextMode: textMode,
152
+ edgeTextMode: textMode,
153
+ });
154
+ }
155
+ if (textDraggable === false) {
156
+ assign(conf, {
157
+ nodeTextDraggable: false,
158
+ edgeTextDraggable: false,
159
+ });
160
+ }
161
+ if (isBoolean(adjustEdgeStartAndEnd)) {
162
+ assign(conf, {
163
+ adjustEdgeStart: adjustEdgeStartAndEnd,
164
+ adjustEdgeEnd: adjustEdgeStartAndEnd,
165
+ });
166
+ }
167
+ var userConfig = pick(config, allKeys);
123
168
  return assign(conf, userConfig);
124
169
  };
170
+ EditConfigModel.prototype.updateTextMode = function (textMode) {
171
+ // 如果更新全局 textMode,同时更新节点和边的 textMode
172
+ this.textMode = textMode;
173
+ this.edgeTextMode = textMode;
174
+ this.nodeTextMode = textMode;
175
+ };
125
176
  EditConfigModel.prototype.getConfig = function () {
126
- return pick(this, keys);
177
+ return pick(this, allKeys);
127
178
  };
128
179
  __decorate([
129
180
  observable
@@ -131,24 +182,51 @@ var EditConfigModel = /** @class */ (function () {
131
182
  __decorate([
132
183
  observable
133
184
  ], EditConfigModel.prototype, "stopZoomGraph", void 0);
185
+ __decorate([
186
+ observable
187
+ ], EditConfigModel.prototype, "stopMoveGraph", void 0);
134
188
  __decorate([
135
189
  observable
136
190
  ], EditConfigModel.prototype, "stopScrollGraph", void 0);
137
191
  __decorate([
138
192
  observable
139
- ], EditConfigModel.prototype, "stopMoveGraph", void 0);
193
+ ], EditConfigModel.prototype, "textMode", void 0);
140
194
  __decorate([
141
195
  observable
142
- ], EditConfigModel.prototype, "adjustEdge", void 0);
196
+ ], EditConfigModel.prototype, "textEdit", void 0);
143
197
  __decorate([
144
198
  observable
145
- ], EditConfigModel.prototype, "adjustEdgeMiddle", void 0);
199
+ ], EditConfigModel.prototype, "textDraggable", void 0);
146
200
  __decorate([
147
201
  observable
148
- ], EditConfigModel.prototype, "adjustEdgeStartAndEnd", void 0);
202
+ ], EditConfigModel.prototype, "nodeTextEdit", void 0);
149
203
  __decorate([
150
204
  observable
151
- ], EditConfigModel.prototype, "adjustNodePosition", void 0);
205
+ ], EditConfigModel.prototype, "nodeTextDraggable", void 0);
206
+ __decorate([
207
+ observable
208
+ ], EditConfigModel.prototype, "nodeTextMultiple", void 0);
209
+ __decorate([
210
+ observable
211
+ ], EditConfigModel.prototype, "nodeTextVertical", void 0);
212
+ __decorate([
213
+ observable
214
+ ], EditConfigModel.prototype, "nodeTextMode", void 0);
215
+ __decorate([
216
+ observable
217
+ ], EditConfigModel.prototype, "edgeTextMode", void 0);
218
+ __decorate([
219
+ observable
220
+ ], EditConfigModel.prototype, "edgeTextEdit", void 0);
221
+ __decorate([
222
+ observable
223
+ ], EditConfigModel.prototype, "edgeTextDraggable", void 0);
224
+ __decorate([
225
+ observable
226
+ ], EditConfigModel.prototype, "edgeTextMultiple", void 0);
227
+ __decorate([
228
+ observable
229
+ ], EditConfigModel.prototype, "edgeTextVertical", void 0);
152
230
  __decorate([
153
231
  observable
154
232
  ], EditConfigModel.prototype, "hideAnchors", void 0);
@@ -166,25 +244,34 @@ var EditConfigModel = /** @class */ (function () {
166
244
  ], EditConfigModel.prototype, "nodeSelectedOutline", void 0);
167
245
  __decorate([
168
246
  observable
169
- ], EditConfigModel.prototype, "edgeSelectedOutline", void 0);
247
+ ], EditConfigModel.prototype, "adjustNodePosition", void 0);
170
248
  __decorate([
171
249
  observable
172
- ], EditConfigModel.prototype, "nodeTextEdit", void 0);
250
+ ], EditConfigModel.prototype, "autoExpand", void 0);
173
251
  __decorate([
174
252
  observable
175
- ], EditConfigModel.prototype, "edgeTextEdit", void 0);
253
+ ], EditConfigModel.prototype, "adjustEdge", void 0);
176
254
  __decorate([
177
255
  observable
178
- ], EditConfigModel.prototype, "nodeTextDraggable", void 0);
256
+ ], EditConfigModel.prototype, "adjustEdgeMiddle", void 0);
179
257
  __decorate([
180
258
  observable
181
- ], EditConfigModel.prototype, "edgeTextDraggable", void 0);
259
+ ], EditConfigModel.prototype, "adjustEdgeStartAndEnd", void 0);
182
260
  __decorate([
183
261
  observable
184
- ], EditConfigModel.prototype, "autoExpand", void 0);
262
+ ], EditConfigModel.prototype, "adjustEdgeStart", void 0);
263
+ __decorate([
264
+ observable
265
+ ], EditConfigModel.prototype, "adjustEdgeEnd", void 0);
266
+ __decorate([
267
+ observable
268
+ ], EditConfigModel.prototype, "edgeSelectedOutline", void 0);
185
269
  __decorate([
186
270
  action
187
271
  ], EditConfigModel.prototype, "updateEditConfig", null);
272
+ __decorate([
273
+ action
274
+ ], EditConfigModel.prototype, "updateTextMode", null);
188
275
  return EditConfigModel;
189
276
  }());
190
277
  export { EditConfigModel };
@@ -1 +1 @@
1
- {"version":3,"file":"EditConfigModel.js","sourceRoot":"","sources":["../../src/model/EditConfigModel.ts"],"names":[],"mappings":";;;;;;AAAA,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,WAAW,CAAA;AACxC,OAAO,EAAE,UAAU,EAAE,MAAM,EAAE,MAAM,cAAc,CAAA;AA0FjD,IAAM,YAAY,GAAG;IACnB,aAAa,EAAE,KAAK;IACpB,eAAe,EAAE,KAAK;IACtB,aAAa,EAAE,KAAK;IACpB,UAAU,EAAE,KAAK;IACjB,qBAAqB,EAAE,KAAK;IAC5B,kBAAkB,EAAE,KAAK;IACzB,WAAW,EAAE,IAAI;IACjB,WAAW,EAAE,KAAK;IAClB,WAAW,EAAE,KAAK;IAClB,mBAAmB,EAAE,IAAI;IACzB,YAAY,EAAE,KAAK;IACnB,YAAY,EAAE,KAAK;IACnB,iBAAiB,EAAE,KAAK;IACxB,iBAAiB,EAAE,KAAK;CACzB,CAAA;AAED,IAAM,IAAI,GAAG;IACX,cAAc;IACd,eAAe;IACf,iBAAiB;IACjB,eAAe;IACf,YAAY;IACZ,kBAAkB;IAClB,uBAAuB;IACvB,oBAAoB;IACpB,aAAa;IACb,aAAa;IACb,aAAa;IACb,cAAc;IACd,qBAAqB;IACrB,qBAAqB;IACrB,cAAc;IACd,cAAc;IACd,mBAAmB;IACnB,mBAAmB;IACnB,mBAAmB;IACnB,YAAY;CACb,CAAA;AACD;;GAEG;AACH;IAsBE,yBAAY,MAA2B;QArB3B,iBAAY,GAAG,KAAK,CAAA;QACpB,kBAAa,GAAG,KAAK,CAAA;QACrB,oBAAe,GAAG,KAAK,CAAA;QACvB,kBAAa,GAAG,KAAK,CAAA;QACrB,eAAU,GAAG,IAAI,CAAA;QACjB,qBAAgB,GAAG,KAAK,CAAA;QACxB,0BAAqB,GAAG,KAAK,CAAA;QAC7B,uBAAkB,GAAG,IAAI,CAAA;QACzB,gBAAW,GAAG,KAAK,CAAA;QACnB,gBAAW,GAAG,KAAK,CAAA;QACnB,gBAAW,GAAG,KAAK,CAAA;QACnB,iBAAY,GAAG,IAAI,CAAA;QACnB,wBAAmB,GAAG,IAAI,CAAA;QAC1B,wBAAmB,GAAG,IAAI,CAAA;QAC1B,iBAAY,GAAG,IAAI,CAAA;QACnB,iBAAY,GAAG,IAAI,CAAA;QACnB,sBAAiB,GAAG,KAAK,CAAA;QACzB,sBAAiB,GAAG,KAAK,CAAA;QACzB,eAAU,GAAG,KAAK,CAAA;QAC9B,sBAAiB,GAAG,EAAE,CAAA;QACtB,kBAAa,GAAG,EAAE,CAAA,CAAC,0BAA0B;QAE3C,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC,CAAA;IAC5C,CAAC;IAED,0CAAgB,GAAhB,UAAiB,MAAM;QACrB,IAAM,SAAS,GAAG,IAAI,CAAC,eAAe,CAAC,MAAM,CAAC,CAAA;QAC9C,MAAM,CAAC,IAAI,EAAE,SAAS,CAAC,CAAA;IACzB,CAAC;IACD,yCAAe,GAAf,UAAgB,MAAM;QACZ,IAAA,YAAY,GAAe,MAAM,aAArB,EAAE,QAAQ,GAAK,MAAM,SAAX,CAAW;QACzC,IAAM,IAAI,GAAG,EAAE,CAAA;QACf,iBAAiB;QACjB,IAAI,YAAY,KAAK,KAAK,EAAE,CAAC;YAC3B,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,aAAa,CAAC,CAAA;QAClC,CAAC;QACD,0BAA0B;QAC1B,IAAI,YAAY,KAAK,IAAI,IAAI,YAAY,KAAK,IAAI,CAAC,YAAY,EAAE,CAAC;YAChE,gDAAgD;YAChD,uEAAuE;YACvE,8DAA8D;YAC9D,IAAM,YAAY,GAAG,IAAI,CAAC,YAAY,EAAE,IAAI,CAAC,CAAA;YAC7C,SAAS;YACT,IAAI,CAAC,aAAa,GAAG;gBACnB,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,eAAe,EAAE,IAAI,CAAC,eAAe;gBACrC,aAAa,EAAE,IAAI,CAAC,aAAa;gBACjC,UAAU,EAAE,IAAI,CAAC,UAAU;gBAC3B,gBAAgB,EAAE,IAAI,CAAC,gBAAgB;gBACvC,qBAAqB,EAAE,IAAI,CAAC,qBAAqB;gBACjD,kBAAkB,EAAE,IAAI,CAAC,kBAAkB;gBAC3C,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,WAAW,EAAE,IAAI,CAAC,WAAW;gBAC7B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,mBAAmB,EAAE,IAAI,CAAC,mBAAmB;gBAC7C,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,YAAY,EAAE,IAAI,CAAC,YAAY;gBAC/B,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,iBAAiB,EAAE,IAAI,CAAC,iBAAiB;gBACzC,UAAU,EAAE,IAAI,CAAC,UAAU;aAC5B,CAAA;YACD,MAAM,CAAC,IAAI,EAAE,YAAY,CAAC,CAAA;QAC5B,CAAC;QACD,2BAA2B;QAC3B,IAAI,QAAQ,KAAK,KAAK,EAAE,CAAC;YACvB,MAAM,CAAC,IAAI,EAAE;gBACX,YAAY,EAAE,KAAK;gBACnB,YAAY,EAAE,KAAK;aACpB,CAAC,CAAA;QACJ,CAAC;QACD,IAAM,UAAU,GAAG,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAA;QACrC,OAAO,MAAM,CAAC,IAAI,EAAE,UAAU,CAAC,CAAA;IACjC,CAAC;IACD,mCAAS,GAAT;QACE,OAAO,IAAI,CAAC,IAAI,EAAE,IAAI,CAAC,CAAA;IACzB,CAAC;IA7EW;QAAX,UAAU;yDAAqB;IACpB;QAAX,UAAU;0DAAsB;IACrB;QAAX,UAAU;4DAAwB;IACvB;QAAX,UAAU;0DAAsB;IACrB;QAAX,UAAU;uDAAkB;IACjB;QAAX,UAAU;6DAAyB;IACxB;QAAX,UAAU;kEAA8B;IAC7B;QAAX,UAAU;+DAA0B;IACzB;QAAX,UAAU;wDAAoB;IACnB;QAAX,UAAU;wDAAoB;IACnB;QAAX,UAAU;wDAAoB;IACnB;QAAX,UAAU;yDAAoB;IACnB;QAAX,UAAU;gEAA2B;IAC1B;QAAX,UAAU;gEAA2B;IAC1B;QAAX,UAAU;yDAAoB;IACnB;QAAX,UAAU;yDAAoB;IACnB;QAAX,UAAU;8DAA0B;IACzB;QAAX,UAAU;8DAA0B;IACzB;QAAX,UAAU;uDAAmB;IAO9B;QADC,MAAM;2DAIN;IAkDH,sBAAC;CAAA,AA/ED,IA+EC;SA/EY,eAAe;AAiF5B,eAAe,eAAe,CAAA"}
1
+ {"version":3,"file":"EditConfigModel.js","sourceRoot":"","sources":["../../src/model/EditConfigModel.ts"],"names":[],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { BaseEdgeModel, BaseNodeModel, EditConfigModel, Model, TransformModel } from '.';
2
- import { ElementState, EventType, OverlapMode } from '../constant';
2
+ import { ElementState, EventType, OverlapMode, TextMode } from '../constant';
3
3
  import LogicFlow from '../LogicFlow';
4
4
  import { Options as LFOptions } from '../options';
5
5
  import EventEmitter from '../event/eventEmitter';
@@ -162,6 +162,17 @@ export declare class GraphModel {
162
162
  * @returns 修改后的节点id, 如果传入的oldId不存在,返回空字符串
163
163
  */
164
164
  changeEdgeId<T extends string>(oldId: string, newId?: string): T | string;
165
+ /**
166
+ * 获取元素的文本模式
167
+ * @param model
168
+ */
169
+ getTextModel(model: BaseNodeModel): TextMode | undefined;
170
+ /**
171
+ * 更新元素的文本模式
172
+ * @param mode
173
+ * @param model
174
+ */
175
+ setTextMode(mode: TextMode, model?: BaseNodeModel | BaseEdgeModel): void;
165
176
  /**
166
177
  * 内部保留方法,请勿直接使用
167
178
  */
@@ -40,10 +40,10 @@ var __spreadArray = (this && this.__spreadArray) || function (to, from, pack) {
40
40
  }
41
41
  return to.concat(ar || Array.prototype.slice.call(from));
42
42
  };
43
- import { find, forEach, map } from 'lodash-es';
43
+ import { find, forEach, isObject, map } from 'lodash-es';
44
44
  import { action, computed, observable } from 'mobx';
45
45
  import { EditConfigModel, TransformModel, } from '.';
46
- import { DEFAULT_VISIBLE_SPACE, ELEMENT_MAX_Z_INDEX, ElementState, ElementType, EventType, ModelType, OverlapMode, } from '../constant';
46
+ import { DEFAULT_VISIBLE_SPACE, ELEMENT_MAX_Z_INDEX, ElementState, ElementType, EventType, ModelType, OverlapMode, TextMode, } from '../constant';
47
47
  import { createEdgeGenerator, createUuid, formatData, getClosestPointOfPolyline, getMinIndex, getNodeAnchorPosition, getNodeBBox, getZIndex, isPointInArea, setupAnimation, setupTheme, snapToGrid, updateTheme, } from '../util';
48
48
  import EventEmitter from '../event/eventEmitter';
49
49
  var GraphModel = /** @class */ (function () {
@@ -551,6 +551,35 @@ var GraphModel = /** @class */ (function () {
551
551
  });
552
552
  return newId;
553
553
  };
554
+ /**
555
+ * 获取元素的文本模式
556
+ * @param model
557
+ */
558
+ GraphModel.prototype.getTextModel = function (model) {
559
+ var _a = this.editConfigModel, textMode = _a.textMode, nodeTextMode = _a.nodeTextMode, edgeTextMode = _a.edgeTextMode;
560
+ // textMode 的优先级:
561
+ // 元素自身 model.textMode > editConfigModel.node(edge)TextMode > editConfigModel.textMode
562
+ if (model.BaseType === ElementType.NODE) {
563
+ return model.textMode || nodeTextMode || textMode || TextMode.TEXT;
564
+ }
565
+ // 同上
566
+ if (model.BaseType === ElementType.EDGE) {
567
+ return model.textMode || edgeTextMode || textMode || TextMode.TEXT;
568
+ }
569
+ };
570
+ /**
571
+ * 更新元素的文本模式
572
+ * @param mode
573
+ * @param model
574
+ */
575
+ GraphModel.prototype.setTextMode = function (mode, model) {
576
+ // 如果有传入 model,则直接更新 model 的 textMode
577
+ if (model) {
578
+ // model.updateTextMode(mode)
579
+ }
580
+ // 调用 editConfigModel 的方法更新 textMode
581
+ this.editConfigModel.updateEditConfig({ textMode: mode });
582
+ };
554
583
  /**
555
584
  * 内部保留方法,请勿直接使用
556
585
  */
@@ -667,7 +696,7 @@ var GraphModel = /** @class */ (function () {
667
696
  if (nodeX && nodeY) {
668
697
  node.x = snapToGrid(nodeX, this.gridSize);
669
698
  node.y = snapToGrid(nodeY, this.gridSize);
670
- if (typeof node.text === 'object') {
699
+ if (isObject(node.text)) {
671
700
  // 原来的处理是:node.text.x -= getGridOffset(nodeX, this.gridSize)
672
701
  // 由于snapToGrid()使用了Math.round()四舍五入的做法,因此无法判断需要执行
673
702
  // node.text.x = node.text.x + getGridOffset()
@@ -691,7 +720,7 @@ var GraphModel = /** @class */ (function () {
691
720
  data.x += 30;
692
721
  data.y += 30;
693
722
  data.id = '';
694
- if (data.text) {
723
+ if (isObject(data.text)) {
695
724
  data.text.x += 30;
696
725
  data.text.y += 30;
697
726
  }
@@ -810,17 +839,16 @@ var GraphModel = /** @class */ (function () {
810
839
  // 如果是自定义边文本位置,则移动节点的时候重新计算其位置
811
840
  if (edgeModel.customTextPosition) {
812
841
  edgeModel.resetTextPosition();
842
+ return;
813
843
  }
814
- else if (edgeModel.modelType === ModelType.POLYLINE_EDGE &&
844
+ if (edgeModel.modelType === ModelType.POLYLINE_EDGE &&
815
845
  ((_a = edgeModel.text) === null || _a === void 0 ? void 0 : _a.value)) {
816
846
  var textPosition = edgeModel.text;
817
847
  var newPoint = getClosestPointOfPolyline(textPosition, edgeModel.points);
818
848
  edgeModel.moveText(newPoint.x - textPosition.x, newPoint.y - textPosition.y);
819
849
  }
820
- else {
821
- var _b = edgeModel.textPosition, x1 = _b.x, y1 = _b.y;
822
- edgeModel.moveText(x1 - x, y1 - y);
823
- }
850
+ var _b = edgeModel.textPosition, x1 = _b.x, y1 = _b.y;
851
+ edgeModel.moveText(x1 - x, y1 - y);
824
852
  };
825
853
  /**
826
854
  * 删除两节点之间的边
@@ -1362,6 +1390,9 @@ var GraphModel = /** @class */ (function () {
1362
1390
  __decorate([
1363
1391
  computed
1364
1392
  ], GraphModel.prototype, "selectNodes", null);
1393
+ __decorate([
1394
+ action
1395
+ ], GraphModel.prototype, "setTextMode", null);
1365
1396
  __decorate([
1366
1397
  action
1367
1398
  ], GraphModel.prototype, "setFakeNode", null);