@logicflow/extension 1.2.27 → 2.0.0-beta.1

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 (615) hide show
  1. package/.turbo/turbo-build.log +34 -0
  2. package/CHANGELOG.md +1916 -0
  3. package/LICENSE +206 -0
  4. package/README.md +1 -2
  5. package/__test__/bpmn-adapter.test.js +227 -0
  6. package/dist/index.css +215 -0
  7. package/dist/index.min.js +12 -0
  8. package/dist/index.min.js.map +1 -0
  9. package/es/NodeResize/BasicShape/Ellipse.d.ts +3 -0
  10. package/es/NodeResize/BasicShape/Ellipse.js +19 -0
  11. package/es/NodeResize/BasicShape/Ellipse.js.map +1 -0
  12. package/es/NodeResize/BasicShape/Polygon.d.ts +1 -9
  13. package/es/NodeResize/BasicShape/Polygon.js +3 -2
  14. package/es/NodeResize/BasicShape/Polygon.js.map +1 -0
  15. package/es/NodeResize/BasicShape/Rect.d.ts +6 -4
  16. package/es/NodeResize/BasicShape/Rect.js +5 -5
  17. package/es/NodeResize/BasicShape/Rect.js.map +1 -0
  18. package/es/NodeResize/control/Control.d.ts +47 -0
  19. package/es/NodeResize/{Control → control}/Control.js +108 -61
  20. package/es/NodeResize/control/Control.js.map +1 -0
  21. package/es/NodeResize/{Control → control}/ControlGroup.d.ts +3 -4
  22. package/es/NodeResize/{Control → control}/ControlGroup.js +9 -8
  23. package/es/NodeResize/control/ControlGroup.js.map +1 -0
  24. package/es/NodeResize/{Control → control}/Util.js +18 -9
  25. package/es/NodeResize/control/Util.js.map +1 -0
  26. package/es/NodeResize/index.d.ts +4 -7
  27. package/es/NodeResize/index.js +11 -26
  28. package/es/NodeResize/index.js.map +1 -0
  29. package/es/NodeResize/node/DiamondResize.d.ts +44 -0
  30. package/es/NodeResize/{Node → node}/DiamondResize.js +28 -16
  31. package/es/NodeResize/node/DiamondResize.js.map +1 -0
  32. package/es/NodeResize/node/EllipseResize.d.ts +44 -0
  33. package/es/NodeResize/{Node → node}/EllipseResize.js +26 -12
  34. package/es/NodeResize/node/EllipseResize.js.map +1 -0
  35. package/es/NodeResize/node/HtmlResize.d.ts +36 -0
  36. package/es/NodeResize/{Node → node}/HtmlResize.js +28 -13
  37. package/es/NodeResize/node/HtmlResize.js.map +1 -0
  38. package/es/NodeResize/node/RectResize.d.ts +58 -0
  39. package/es/NodeResize/{Node → node}/RectResize.js +28 -17
  40. package/es/NodeResize/node/RectResize.js.map +1 -0
  41. package/es/NodeResize/node/index.d.ts +4 -0
  42. package/es/NodeResize/node/index.js +5 -0
  43. package/es/NodeResize/node/index.js.map +1 -0
  44. package/es/bpmn/constant.d.ts +2 -26
  45. package/es/bpmn/constant.js +1 -0
  46. package/es/bpmn/constant.js.map +1 -0
  47. package/es/bpmn/events/EndEvent.d.ts +6 -7
  48. package/es/bpmn/events/EndEvent.js +10 -8
  49. package/es/bpmn/events/EndEvent.js.map +1 -0
  50. package/es/bpmn/events/StartEvent.d.ts +2 -2
  51. package/es/bpmn/events/StartEvent.js +7 -6
  52. package/es/bpmn/events/StartEvent.js.map +1 -0
  53. package/es/bpmn/events/index.d.ts +2 -0
  54. package/es/bpmn/events/index.js +3 -0
  55. package/es/bpmn/events/index.js.map +1 -0
  56. package/es/bpmn/flow/SequenceFlow.d.ts +3 -4
  57. package/es/bpmn/flow/SequenceFlow.js +9 -7
  58. package/es/bpmn/flow/SequenceFlow.js.map +1 -0
  59. package/es/bpmn/flow/index.d.ts +1 -0
  60. package/es/bpmn/flow/index.js +2 -0
  61. package/es/bpmn/flow/index.js.map +1 -0
  62. package/es/bpmn/gateways/ExclusiveGateway.d.ts +7 -7
  63. package/es/bpmn/gateways/ExclusiveGateway.js +14 -10
  64. package/es/bpmn/gateways/ExclusiveGateway.js.map +1 -0
  65. package/es/bpmn/gateways/index.d.ts +1 -0
  66. package/es/bpmn/gateways/index.js +2 -0
  67. package/es/bpmn/gateways/index.js.map +1 -0
  68. package/es/bpmn/getBpmnId.js +2 -3
  69. package/es/bpmn/getBpmnId.js.map +1 -0
  70. package/es/bpmn/index.d.ts +4 -6
  71. package/es/bpmn/index.js +5 -8
  72. package/es/bpmn/index.js.map +1 -0
  73. package/es/bpmn/tasks/ServiceTask.d.ts +6 -7
  74. package/es/bpmn/tasks/ServiceTask.js +10 -9
  75. package/es/bpmn/tasks/ServiceTask.js.map +1 -0
  76. package/es/bpmn/tasks/UserTask.d.ts +6 -7
  77. package/es/bpmn/tasks/UserTask.js +10 -9
  78. package/es/bpmn/tasks/UserTask.js.map +1 -0
  79. package/es/bpmn/tasks/index.d.ts +2 -0
  80. package/es/bpmn/tasks/index.js +3 -0
  81. package/es/bpmn/tasks/index.js.map +1 -0
  82. package/es/bpmn-adapter/bpmnIds.d.ts +6 -0
  83. package/es/bpmn-adapter/bpmnIds.js +9 -9
  84. package/es/bpmn-adapter/bpmnIds.js.map +1 -0
  85. package/es/bpmn-adapter/index.d.ts +44 -7
  86. package/es/bpmn-adapter/index.js +27 -16
  87. package/es/bpmn-adapter/index.js.map +1 -0
  88. package/es/bpmn-adapter/json2xml.js +22 -22
  89. package/es/bpmn-adapter/json2xml.js.map +1 -0
  90. package/es/bpmn-adapter/xml2json.js +1 -0
  91. package/es/bpmn-adapter/xml2json.js.map +1 -0
  92. package/es/bpmn-elements/index.js +2 -3
  93. package/es/bpmn-elements/index.js.map +1 -0
  94. package/es/bpmn-elements/presets/Event/EndEventFactory.js +25 -17
  95. package/es/bpmn-elements/presets/Event/EndEventFactory.js.map +1 -0
  96. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.js +23 -13
  97. package/es/bpmn-elements/presets/Event/IntermediateCatchEvent.js.map +1 -0
  98. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.js +23 -14
  99. package/es/bpmn-elements/presets/Event/IntermediateThrowEvent.js.map +1 -0
  100. package/es/bpmn-elements/presets/Event/StartEventFactory.js +23 -15
  101. package/es/bpmn-elements/presets/Event/StartEventFactory.js.map +1 -0
  102. package/es/bpmn-elements/presets/Event/boundaryEventFactory.js +22 -12
  103. package/es/bpmn-elements/presets/Event/boundaryEventFactory.js.map +1 -0
  104. package/es/bpmn-elements/presets/Event/index.js +1 -0
  105. package/es/bpmn-elements/presets/Event/index.js.map +1 -0
  106. package/es/bpmn-elements/presets/Flow/index.js +1 -0
  107. package/es/bpmn-elements/presets/Flow/index.js.map +1 -0
  108. package/es/bpmn-elements/presets/Flow/manhattan.d.ts +39 -0
  109. package/es/bpmn-elements/presets/Flow/manhattan.js +636 -0
  110. package/es/bpmn-elements/presets/Flow/manhattan.js.map +1 -0
  111. package/es/bpmn-elements/presets/Flow/sequenceFlow.js +7 -7
  112. package/es/bpmn-elements/presets/Flow/sequenceFlow.js.map +1 -0
  113. package/es/bpmn-elements/presets/Gateway/gateway.d.ts +5 -0
  114. package/es/bpmn-elements/presets/Gateway/gateway.js +10 -11
  115. package/es/bpmn-elements/presets/Gateway/gateway.js.map +1 -0
  116. package/es/bpmn-elements/presets/Gateway/index.js +1 -0
  117. package/es/bpmn-elements/presets/Gateway/index.js.map +1 -0
  118. package/es/bpmn-elements/presets/Pool/Lane.d.ts +31 -0
  119. package/es/bpmn-elements/presets/Pool/Lane.js +217 -0
  120. package/es/bpmn-elements/presets/Pool/Lane.js.map +1 -0
  121. package/es/bpmn-elements/presets/Pool/Pool.d.ts +32 -0
  122. package/es/bpmn-elements/presets/Pool/Pool.js +298 -0
  123. package/es/bpmn-elements/presets/Pool/Pool.js.map +1 -0
  124. package/es/bpmn-elements/presets/Pool/index.d.ts +4 -0
  125. package/es/bpmn-elements/presets/Pool/index.js +86 -0
  126. package/es/bpmn-elements/presets/Pool/index.js.map +1 -0
  127. package/es/bpmn-elements/presets/Task/index.js +12 -3
  128. package/es/bpmn-elements/presets/Task/index.js.map +1 -0
  129. package/es/bpmn-elements/presets/Task/subProcess.js +22 -16
  130. package/es/bpmn-elements/presets/Task/subProcess.js.map +1 -0
  131. package/es/bpmn-elements/presets/Task/task.js +28 -21
  132. package/es/bpmn-elements/presets/Task/task.js.map +1 -0
  133. package/es/bpmn-elements/presets/icons.d.ts +4 -3
  134. package/es/bpmn-elements/presets/icons.js +1 -0
  135. package/es/bpmn-elements/presets/icons.js.map +1 -0
  136. package/es/bpmn-elements/utils.d.ts +1 -1
  137. package/es/bpmn-elements/utils.js +8 -7
  138. package/es/bpmn-elements/utils.js.map +1 -0
  139. package/es/bpmn-elements-adapter/constant.js +1 -0
  140. package/es/bpmn-elements-adapter/constant.js.map +1 -0
  141. package/es/bpmn-elements-adapter/index.d.ts +6 -6
  142. package/es/bpmn-elements-adapter/index.js +52 -39
  143. package/es/bpmn-elements-adapter/index.js.map +1 -0
  144. package/es/bpmn-elements-adapter/json2xml.js +8 -7
  145. package/es/bpmn-elements-adapter/json2xml.js.map +1 -0
  146. package/es/bpmn-elements-adapter/xml2json.js +13 -11
  147. package/es/bpmn-elements-adapter/xml2json.js.map +1 -0
  148. package/es/components/context-menu/index.d.ts +9 -3
  149. package/es/components/context-menu/index.js +85 -70
  150. package/es/components/context-menu/index.js.map +1 -0
  151. package/es/components/control/index.d.ts +13 -15
  152. package/es/components/control/index.js +20 -10
  153. package/es/components/control/index.js.map +1 -0
  154. package/es/components/dnd-panel/index.d.ts +10 -9
  155. package/es/components/dnd-panel/index.js +15 -7
  156. package/es/components/dnd-panel/index.js.map +1 -0
  157. package/es/components/highlight/index.d.ts +4 -4
  158. package/es/components/highlight/index.js +23 -17
  159. package/es/components/highlight/index.js.map +1 -0
  160. package/es/components/menu/index.d.ts +7 -7
  161. package/es/components/menu/index.js +195 -155
  162. package/es/components/menu/index.js.map +1 -0
  163. package/es/components/mini-map/index.d.ts +196 -48
  164. package/es/components/mini-map/index.js +372 -290
  165. package/es/components/mini-map/index.js.map +1 -0
  166. package/es/components/selection-select/index.d.ts +17 -26
  167. package/es/components/selection-select/index.js +76 -64
  168. package/es/components/selection-select/index.js.map +1 -0
  169. package/es/index.css +215 -0
  170. package/es/index.js +1 -1
  171. package/es/index.js.map +1 -0
  172. package/es/index.less +1 -0
  173. package/es/insert-node-in-polyline/edge.d.ts +3 -2
  174. package/es/insert-node-in-polyline/edge.js +20 -8
  175. package/es/insert-node-in-polyline/edge.js.map +1 -0
  176. package/es/insert-node-in-polyline/index.d.ts +7 -7
  177. package/es/insert-node-in-polyline/index.js +18 -10
  178. package/es/insert-node-in-polyline/index.js.map +1 -0
  179. package/es/materials/curved-edge/__test__/curved-edge.test.d.ts +1 -0
  180. package/es/materials/curved-edge/__test__/curved-edge.test.js +19 -0
  181. package/es/materials/curved-edge/__test__/curved-edge.test.js.map +1 -0
  182. package/es/materials/curved-edge/index.d.ts +2 -2
  183. package/es/materials/curved-edge/index.js +12 -9
  184. package/es/materials/curved-edge/index.js.map +1 -0
  185. package/es/materials/group/GroupNode.d.ts +22 -20
  186. package/es/materials/group/GroupNode.js +90 -58
  187. package/es/materials/group/GroupNode.js.map +1 -0
  188. package/es/materials/group/index.d.ts +28 -30
  189. package/es/materials/group/index.js +153 -112
  190. package/es/materials/group/index.js.map +1 -0
  191. package/es/materials/node-selection/index.d.ts +28 -0
  192. package/es/materials/node-selection/index.js +297 -0
  193. package/es/materials/node-selection/index.js.map +1 -0
  194. package/es/mindmap/fakerRoot.d.ts +13 -0
  195. package/es/mindmap/fakerRoot.js +41 -0
  196. package/es/mindmap/fakerRoot.js.map +1 -0
  197. package/es/mindmap/index.d.ts +41 -0
  198. package/es/mindmap/index.js +314 -0
  199. package/es/mindmap/index.js.map +1 -0
  200. package/es/mindmap/markContent.d.ts +17 -0
  201. package/es/mindmap/markContent.js +91 -0
  202. package/es/mindmap/markContent.js.map +1 -0
  203. package/es/mindmap/markContentOption.d.ts +17 -0
  204. package/es/mindmap/markContentOption.js +92 -0
  205. package/es/mindmap/markContentOption.js.map +1 -0
  206. package/es/mindmap/markEntity.d.ts +17 -0
  207. package/es/mindmap/markEntity.js +92 -0
  208. package/es/mindmap/markEntity.js.map +1 -0
  209. package/es/mindmap/markRoot.d.ts +17 -0
  210. package/es/mindmap/markRoot.js +93 -0
  211. package/es/mindmap/markRoot.js.map +1 -0
  212. package/es/mindmap/theme.d.ts +10 -0
  213. package/es/mindmap/theme.js +12 -0
  214. package/es/mindmap/theme.js.map +1 -0
  215. package/es/rect-label-node/RectLabelNodeView.d.ts +5 -0
  216. package/es/rect-label-node/RectLabelNodeView.js +54 -0
  217. package/es/rect-label-node/RectLabelNodeView.js.map +1 -0
  218. package/es/rect-label-node/index.d.ts +5 -0
  219. package/es/rect-label-node/index.js +14 -0
  220. package/es/rect-label-node/index.js.map +1 -0
  221. package/es/style/index.css +53 -60
  222. package/es/style/index.less +255 -0
  223. package/es/style/raw.d.ts +4 -0
  224. package/es/style/raw.js +6 -0
  225. package/es/style/raw.js.map +1 -0
  226. package/es/tools/auto-layout/index.js +8 -4
  227. package/es/tools/auto-layout/index.js.map +1 -0
  228. package/es/tools/flow-path/index.d.ts +8 -8
  229. package/es/tools/flow-path/index.js +51 -36
  230. package/es/tools/flow-path/index.js.map +1 -0
  231. package/es/tools/snapshot/index.d.ts +4 -5
  232. package/es/tools/snapshot/index.js +41 -29
  233. package/es/tools/snapshot/index.js.map +1 -0
  234. package/es/turbo-adapter/index.d.ts +4 -14
  235. package/es/turbo-adapter/index.js +17 -14
  236. package/es/turbo-adapter/index.js.map +1 -0
  237. package/jest.config.js +198 -0
  238. package/lib/NodeResize/BasicShape/Ellipse.d.ts +3 -0
  239. package/lib/NodeResize/BasicShape/Ellipse.js +21 -0
  240. package/lib/NodeResize/BasicShape/Ellipse.js.map +1 -0
  241. package/lib/NodeResize/BasicShape/Polygon.d.ts +2 -0
  242. package/{cjs → lib}/NodeResize/BasicShape/Polygon.js +3 -2
  243. package/lib/NodeResize/BasicShape/Polygon.js.map +1 -0
  244. package/lib/NodeResize/BasicShape/Rect.d.ts +19 -0
  245. package/{cjs → lib}/NodeResize/BasicShape/Rect.js +5 -5
  246. package/lib/NodeResize/BasicShape/Rect.js.map +1 -0
  247. package/lib/NodeResize/control/Control.d.ts +47 -0
  248. package/{cjs/NodeResize/Control → lib/NodeResize/control}/Control.js +110 -63
  249. package/lib/NodeResize/control/Control.js.map +1 -0
  250. package/lib/NodeResize/control/ControlGroup.d.ts +12 -0
  251. package/{cjs/NodeResize/Control → lib/NodeResize/control}/ControlGroup.js +14 -10
  252. package/lib/NodeResize/control/ControlGroup.js.map +1 -0
  253. package/lib/NodeResize/control/Util.d.ts +33 -0
  254. package/{cjs/NodeResize/Control → lib/NodeResize/control}/Util.js +19 -10
  255. package/lib/NodeResize/control/Util.js.map +1 -0
  256. package/lib/NodeResize/index.d.ts +8 -0
  257. package/lib/NodeResize/index.js +38 -0
  258. package/lib/NodeResize/index.js.map +1 -0
  259. package/lib/NodeResize/node/DiamondResize.d.ts +44 -0
  260. package/{cjs/NodeResize/Node → lib/NodeResize/node}/DiamondResize.js +31 -15
  261. package/lib/NodeResize/node/DiamondResize.js.map +1 -0
  262. package/lib/NodeResize/node/EllipseResize.d.ts +44 -0
  263. package/{cjs/NodeResize/Node → lib/NodeResize/node}/EllipseResize.js +30 -12
  264. package/lib/NodeResize/node/EllipseResize.js.map +1 -0
  265. package/lib/NodeResize/node/HtmlResize.d.ts +36 -0
  266. package/{cjs/NodeResize/Node → lib/NodeResize/node}/HtmlResize.js +32 -13
  267. package/lib/NodeResize/node/HtmlResize.js.map +1 -0
  268. package/lib/NodeResize/node/RectResize.d.ts +58 -0
  269. package/{cjs/NodeResize/Node → lib/NodeResize/node}/RectResize.js +32 -17
  270. package/lib/NodeResize/node/RectResize.js.map +1 -0
  271. package/lib/NodeResize/node/index.d.ts +4 -0
  272. package/lib/NodeResize/node/index.js +21 -0
  273. package/lib/NodeResize/node/index.js.map +1 -0
  274. package/lib/bpmn/constant.d.ts +22 -0
  275. package/{cjs → lib}/bpmn/constant.js +1 -0
  276. package/lib/bpmn/constant.js.map +1 -0
  277. package/lib/bpmn/events/EndEvent.d.ts +20 -0
  278. package/{cjs → lib}/bpmn/events/EndEvent.js +11 -10
  279. package/lib/bpmn/events/EndEvent.js.map +1 -0
  280. package/lib/bpmn/events/StartEvent.d.ts +17 -0
  281. package/{cjs → lib}/bpmn/events/StartEvent.js +9 -8
  282. package/lib/bpmn/events/StartEvent.js.map +1 -0
  283. package/lib/bpmn/events/index.d.ts +2 -0
  284. package/lib/bpmn/events/index.js +19 -0
  285. package/lib/bpmn/events/index.js.map +1 -0
  286. package/lib/bpmn/flow/SequenceFlow.d.ts +14 -0
  287. package/{cjs → lib}/bpmn/flow/SequenceFlow.js +9 -8
  288. package/lib/bpmn/flow/SequenceFlow.js.map +1 -0
  289. package/lib/bpmn/flow/index.d.ts +1 -0
  290. package/lib/bpmn/flow/index.js +18 -0
  291. package/lib/bpmn/flow/index.js.map +1 -0
  292. package/lib/bpmn/gateways/ExclusiveGateway.d.ts +16 -0
  293. package/{cjs → lib}/bpmn/gateways/ExclusiveGateway.js +14 -11
  294. package/lib/bpmn/gateways/ExclusiveGateway.js.map +1 -0
  295. package/lib/bpmn/gateways/index.d.ts +1 -0
  296. package/lib/bpmn/gateways/index.js +18 -0
  297. package/lib/bpmn/gateways/index.js.map +1 -0
  298. package/lib/bpmn/getBpmnId.d.ts +1 -0
  299. package/{cjs → lib}/bpmn/getBpmnId.js +2 -3
  300. package/lib/bpmn/getBpmnId.js.map +1 -0
  301. package/lib/bpmn/index.d.ts +11 -0
  302. package/{cjs → lib}/bpmn/index.js +23 -26
  303. package/lib/bpmn/index.js.map +1 -0
  304. package/lib/bpmn/tasks/ServiceTask.d.ts +16 -0
  305. package/{cjs → lib}/bpmn/tasks/ServiceTask.js +13 -13
  306. package/lib/bpmn/tasks/ServiceTask.js.map +1 -0
  307. package/lib/bpmn/tasks/UserTask.d.ts +16 -0
  308. package/{cjs → lib}/bpmn/tasks/UserTask.js +13 -13
  309. package/lib/bpmn/tasks/UserTask.js.map +1 -0
  310. package/lib/bpmn/tasks/index.d.ts +2 -0
  311. package/lib/bpmn/tasks/index.js +19 -0
  312. package/lib/bpmn/tasks/index.js.map +1 -0
  313. package/lib/bpmn-adapter/bpmnIds.d.ts +7 -0
  314. package/{cjs → lib}/bpmn-adapter/bpmnIds.js +10 -10
  315. package/lib/bpmn-adapter/bpmnIds.js.map +1 -0
  316. package/lib/bpmn-adapter/index.d.ts +100 -0
  317. package/{cjs → lib}/bpmn-adapter/index.js +30 -19
  318. package/lib/bpmn-adapter/index.js.map +1 -0
  319. package/lib/bpmn-adapter/json2xml.d.ts +3 -0
  320. package/{cjs → lib}/bpmn-adapter/json2xml.js +22 -22
  321. package/lib/bpmn-adapter/json2xml.js.map +1 -0
  322. package/lib/bpmn-adapter/xml2json.d.ts +2 -0
  323. package/{cjs → lib}/bpmn-adapter/xml2json.js +1 -0
  324. package/lib/bpmn-adapter/xml2json.js.map +1 -0
  325. package/lib/bpmn-elements/index.d.ts +17 -0
  326. package/{cjs → lib}/bpmn-elements/index.js +26 -11
  327. package/lib/bpmn-elements/index.js.map +1 -0
  328. package/lib/bpmn-elements/presets/Event/EndEventFactory.d.ts +5 -0
  329. package/{cjs → lib}/bpmn-elements/presets/Event/EndEventFactory.js +25 -17
  330. package/lib/bpmn-elements/presets/Event/EndEventFactory.js.map +1 -0
  331. package/lib/bpmn-elements/presets/Event/IntermediateCatchEvent.d.ts +5 -0
  332. package/{cjs → lib}/bpmn-elements/presets/Event/IntermediateCatchEvent.js +23 -13
  333. package/lib/bpmn-elements/presets/Event/IntermediateCatchEvent.js.map +1 -0
  334. package/lib/bpmn-elements/presets/Event/IntermediateThrowEvent.d.ts +5 -0
  335. package/{cjs → lib}/bpmn-elements/presets/Event/IntermediateThrowEvent.js +23 -14
  336. package/lib/bpmn-elements/presets/Event/IntermediateThrowEvent.js.map +1 -0
  337. package/lib/bpmn-elements/presets/Event/StartEventFactory.d.ts +5 -0
  338. package/{cjs → lib}/bpmn-elements/presets/Event/StartEventFactory.js +23 -15
  339. package/lib/bpmn-elements/presets/Event/StartEventFactory.js.map +1 -0
  340. package/lib/bpmn-elements/presets/Event/boundaryEventFactory.d.ts +5 -0
  341. package/{cjs → lib}/bpmn-elements/presets/Event/boundaryEventFactory.js +23 -13
  342. package/lib/bpmn-elements/presets/Event/boundaryEventFactory.js.map +1 -0
  343. package/lib/bpmn-elements/presets/Event/index.d.ts +2 -0
  344. package/{cjs → lib}/bpmn-elements/presets/Event/index.js +6 -5
  345. package/lib/bpmn-elements/presets/Event/index.js.map +1 -0
  346. package/lib/bpmn-elements/presets/Flow/index.d.ts +7 -0
  347. package/{cjs → lib}/bpmn-elements/presets/Flow/index.js +2 -1
  348. package/lib/bpmn-elements/presets/Flow/index.js.map +1 -0
  349. package/lib/bpmn-elements/presets/Flow/manhattan.d.ts +39 -0
  350. package/lib/bpmn-elements/presets/Flow/manhattan.js +641 -0
  351. package/lib/bpmn-elements/presets/Flow/manhattan.js.map +1 -0
  352. package/lib/bpmn-elements/presets/Flow/sequenceFlow.d.ts +5 -0
  353. package/{cjs → lib}/bpmn-elements/presets/Flow/sequenceFlow.js +8 -8
  354. package/lib/bpmn-elements/presets/Flow/sequenceFlow.js.map +1 -0
  355. package/lib/bpmn-elements/presets/Gateway/gateway.d.ts +22 -0
  356. package/{cjs → lib}/bpmn-elements/presets/Gateway/gateway.js +12 -13
  357. package/lib/bpmn-elements/presets/Gateway/gateway.js.map +1 -0
  358. package/lib/bpmn-elements/presets/Gateway/index.d.ts +2 -0
  359. package/{cjs → lib}/bpmn-elements/presets/Gateway/index.js +4 -3
  360. package/lib/bpmn-elements/presets/Gateway/index.js.map +1 -0
  361. package/lib/bpmn-elements/presets/Pool/Lane.d.ts +31 -0
  362. package/lib/bpmn-elements/presets/Pool/Lane.js +219 -0
  363. package/lib/bpmn-elements/presets/Pool/Lane.js.map +1 -0
  364. package/lib/bpmn-elements/presets/Pool/Pool.d.ts +32 -0
  365. package/lib/bpmn-elements/presets/Pool/Pool.js +301 -0
  366. package/lib/bpmn-elements/presets/Pool/Pool.js.map +1 -0
  367. package/lib/bpmn-elements/presets/Pool/index.d.ts +4 -0
  368. package/lib/bpmn-elements/presets/Pool/index.js +95 -0
  369. package/lib/bpmn-elements/presets/Pool/index.js.map +1 -0
  370. package/lib/bpmn-elements/presets/Task/index.d.ts +2 -0
  371. package/{cjs → lib}/bpmn-elements/presets/Task/index.js +15 -6
  372. package/lib/bpmn-elements/presets/Task/index.js.map +1 -0
  373. package/lib/bpmn-elements/presets/Task/subProcess.d.ts +5 -0
  374. package/{cjs → lib}/bpmn-elements/presets/Task/subProcess.js +27 -21
  375. package/lib/bpmn-elements/presets/Task/subProcess.js.map +1 -0
  376. package/lib/bpmn-elements/presets/Task/task.d.ts +12 -0
  377. package/{cjs → lib}/bpmn-elements/presets/Task/task.js +31 -24
  378. package/lib/bpmn-elements/presets/Task/task.js.map +1 -0
  379. package/lib/bpmn-elements/presets/icons.d.ts +26 -0
  380. package/{cjs → lib}/bpmn-elements/presets/icons.js +17 -16
  381. package/lib/bpmn-elements/presets/icons.js.map +1 -0
  382. package/lib/bpmn-elements/utils.d.ts +2 -0
  383. package/{cjs → lib}/bpmn-elements/utils.js +8 -7
  384. package/lib/bpmn-elements/utils.js.map +1 -0
  385. package/lib/bpmn-elements-adapter/constant.d.ts +66 -0
  386. package/{cjs → lib}/bpmn-elements-adapter/constant.js +1 -0
  387. package/lib/bpmn-elements-adapter/constant.js.map +1 -0
  388. package/lib/bpmn-elements-adapter/index.d.ts +103 -0
  389. package/{cjs → lib}/bpmn-elements-adapter/index.js +59 -43
  390. package/lib/bpmn-elements-adapter/index.js.map +1 -0
  391. package/lib/bpmn-elements-adapter/json2xml.d.ts +3 -0
  392. package/{cjs → lib}/bpmn-elements-adapter/json2xml.js +8 -7
  393. package/lib/bpmn-elements-adapter/json2xml.js.map +1 -0
  394. package/lib/bpmn-elements-adapter/xml2json.d.ts +2 -0
  395. package/{cjs → lib}/bpmn-elements-adapter/xml2json.js +13 -11
  396. package/lib/bpmn-elements-adapter/xml2json.js.map +1 -0
  397. package/lib/components/context-menu/index.d.ts +40 -0
  398. package/{cjs → lib}/components/context-menu/index.js +84 -69
  399. package/lib/components/context-menu/index.js.map +1 -0
  400. package/lib/components/control/index.d.ts +24 -0
  401. package/{cjs → lib}/components/control/index.js +19 -9
  402. package/lib/components/control/index.js.map +1 -0
  403. package/lib/components/dnd-panel/index.d.ts +27 -0
  404. package/{cjs → lib}/components/dnd-panel/index.js +14 -6
  405. package/lib/components/dnd-panel/index.js.map +1 -0
  406. package/lib/components/highlight/index.d.ts +21 -0
  407. package/{cjs → lib}/components/highlight/index.js +23 -17
  408. package/lib/components/highlight/index.js.map +1 -0
  409. package/lib/components/menu/index.d.ts +50 -0
  410. package/lib/components/menu/index.js +417 -0
  411. package/lib/components/menu/index.js.map +1 -0
  412. package/lib/components/mini-map/index.d.ts +236 -0
  413. package/lib/components/mini-map/index.js +519 -0
  414. package/lib/components/mini-map/index.js.map +1 -0
  415. package/lib/components/selection-select/index.d.ts +34 -0
  416. package/{cjs → lib}/components/selection-select/index.js +76 -64
  417. package/lib/components/selection-select/index.js.map +1 -0
  418. package/lib/index.css +215 -0
  419. package/lib/index.d.ts +21 -0
  420. package/{cjs → lib}/index.js +7 -3
  421. package/lib/index.js.map +1 -0
  422. package/lib/index.less +1 -0
  423. package/lib/insert-node-in-polyline/edge.d.ts +32 -0
  424. package/{cjs → lib}/insert-node-in-polyline/edge.js +31 -14
  425. package/lib/insert-node-in-polyline/edge.js.map +1 -0
  426. package/lib/insert-node-in-polyline/index.d.ts +28 -0
  427. package/{cjs → lib}/insert-node-in-polyline/index.js +24 -16
  428. package/lib/insert-node-in-polyline/index.js.map +1 -0
  429. package/lib/materials/curved-edge/__test__/curved-edge.test.d.ts +1 -0
  430. package/lib/materials/curved-edge/__test__/curved-edge.test.js +21 -0
  431. package/lib/materials/curved-edge/__test__/curved-edge.test.js.map +1 -0
  432. package/lib/materials/curved-edge/index.d.ts +14 -0
  433. package/{cjs → lib}/materials/curved-edge/index.js +12 -9
  434. package/lib/materials/curved-edge/index.js.map +1 -0
  435. package/lib/materials/group/GroupNode.d.ts +127 -0
  436. package/{cjs → lib}/materials/group/GroupNode.js +95 -62
  437. package/lib/materials/group/GroupNode.js.map +1 -0
  438. package/lib/materials/group/index.d.ts +65 -0
  439. package/{cjs → lib}/materials/group/index.js +171 -114
  440. package/lib/materials/group/index.js.map +1 -0
  441. package/lib/materials/node-selection/index.d.ts +28 -0
  442. package/lib/materials/node-selection/index.js +300 -0
  443. package/lib/materials/node-selection/index.js.map +1 -0
  444. package/lib/mindmap/fakerRoot.d.ts +13 -0
  445. package/lib/mindmap/fakerRoot.js +43 -0
  446. package/lib/mindmap/fakerRoot.js.map +1 -0
  447. package/lib/mindmap/index.d.ts +41 -0
  448. package/lib/mindmap/index.js +320 -0
  449. package/lib/mindmap/index.js.map +1 -0
  450. package/lib/mindmap/markContent.d.ts +17 -0
  451. package/lib/mindmap/markContent.js +93 -0
  452. package/lib/mindmap/markContent.js.map +1 -0
  453. package/lib/mindmap/markContentOption.d.ts +17 -0
  454. package/lib/mindmap/markContentOption.js +95 -0
  455. package/lib/mindmap/markContentOption.js.map +1 -0
  456. package/lib/mindmap/markEntity.d.ts +17 -0
  457. package/lib/mindmap/markEntity.js +94 -0
  458. package/lib/mindmap/markEntity.js.map +1 -0
  459. package/lib/mindmap/markRoot.d.ts +17 -0
  460. package/lib/mindmap/markRoot.js +95 -0
  461. package/lib/mindmap/markRoot.js.map +1 -0
  462. package/lib/mindmap/theme.d.ts +10 -0
  463. package/lib/mindmap/theme.js +15 -0
  464. package/lib/mindmap/theme.js.map +1 -0
  465. package/lib/rect-label-node/RectLabelNodeView.d.ts +5 -0
  466. package/lib/rect-label-node/RectLabelNodeView.js +57 -0
  467. package/lib/rect-label-node/RectLabelNodeView.js.map +1 -0
  468. package/lib/rect-label-node/index.d.ts +5 -0
  469. package/lib/rect-label-node/index.js +17 -0
  470. package/lib/rect-label-node/index.js.map +1 -0
  471. package/lib/style/index.css +53 -60
  472. package/lib/style/index.less +255 -0
  473. package/lib/style/raw.d.ts +4 -0
  474. package/lib/style/raw.js +9 -0
  475. package/lib/style/raw.js.map +1 -0
  476. package/lib/tools/auto-layout/index.d.ts +40 -0
  477. package/{cjs → lib}/tools/auto-layout/index.js +8 -4
  478. package/lib/tools/auto-layout/index.js.map +1 -0
  479. package/lib/tools/flow-path/index.d.ts +47 -0
  480. package/{cjs → lib}/tools/flow-path/index.js +50 -35
  481. package/lib/tools/flow-path/index.js.map +1 -0
  482. package/lib/tools/snapshot/index.d.ts +25 -0
  483. package/{cjs → lib}/tools/snapshot/index.js +42 -30
  484. package/lib/tools/snapshot/index.js.map +1 -0
  485. package/lib/turbo-adapter/index.d.ts +11 -0
  486. package/{cjs → lib}/turbo-adapter/index.js +17 -14
  487. package/lib/turbo-adapter/index.js.map +1 -0
  488. package/package.json +33 -76
  489. package/rollup.config.js +3 -0
  490. package/src/NodeResize/BasicShape/Ellipse.tsx +22 -0
  491. package/src/NodeResize/BasicShape/Polygon.tsx +24 -0
  492. package/src/NodeResize/BasicShape/Rect.tsx +44 -0
  493. package/src/NodeResize/control/Control.tsx +527 -0
  494. package/src/NodeResize/control/ControlGroup.tsx +76 -0
  495. package/src/NodeResize/control/Util.ts +206 -0
  496. package/src/NodeResize/index.ts +22 -0
  497. package/src/NodeResize/node/DiamondResize.tsx +148 -0
  498. package/src/NodeResize/node/EllipseResize.tsx +139 -0
  499. package/src/NodeResize/node/HtmlResize.tsx +125 -0
  500. package/src/NodeResize/node/RectResize.tsx +146 -0
  501. package/src/NodeResize/node/index.ts +4 -0
  502. package/src/bpmn/constant.ts +53 -0
  503. package/src/bpmn/events/EndEvent.ts +73 -0
  504. package/src/bpmn/events/StartEvent.ts +52 -0
  505. package/src/bpmn/events/index.ts +2 -0
  506. package/src/bpmn/flow/SequenceFlow.ts +25 -0
  507. package/src/bpmn/flow/index.ts +1 -0
  508. package/src/bpmn/gateways/ExclusiveGateway.ts +71 -0
  509. package/src/bpmn/gateways/index.ts +1 -0
  510. package/src/bpmn/getBpmnId.ts +31 -0
  511. package/src/bpmn/index.ts +57 -0
  512. package/src/bpmn/tasks/ServiceTask.ts +63 -0
  513. package/src/bpmn/tasks/UserTask.ts +64 -0
  514. package/src/bpmn/tasks/index.ts +2 -0
  515. package/src/bpmn-adapter/bpmnIds.ts +31 -0
  516. package/src/bpmn-adapter/index.ts +596 -0
  517. package/src/bpmn-adapter/json2xml.ts +90 -0
  518. package/src/bpmn-adapter/xml2json.ts +544 -0
  519. package/src/bpmn-elements/README.md +223 -0
  520. package/src/bpmn-elements/__tests__/definition.test.js +72 -0
  521. package/src/bpmn-elements/index.d.ts +26 -0
  522. package/src/bpmn-elements/index.ts +107 -0
  523. package/src/bpmn-elements/presets/Event/EndEventFactory.ts +114 -0
  524. package/src/bpmn-elements/presets/Event/IntermediateCatchEvent.ts +108 -0
  525. package/src/bpmn-elements/presets/Event/IntermediateThrowEvent.ts +109 -0
  526. package/src/bpmn-elements/presets/Event/StartEventFactory.ts +114 -0
  527. package/src/bpmn-elements/presets/Event/boundaryEventFactory.ts +117 -0
  528. package/src/bpmn-elements/presets/Event/index.ts +14 -0
  529. package/src/bpmn-elements/presets/Flow/flow.d.ts +6 -0
  530. package/src/bpmn-elements/presets/Flow/index.ts +8 -0
  531. package/src/bpmn-elements/presets/Flow/manhattan.ts +691 -0
  532. package/src/bpmn-elements/presets/Flow/sequenceFlow.ts +65 -0
  533. package/src/bpmn-elements/presets/Gateway/gateway.ts +107 -0
  534. package/src/bpmn-elements/presets/Gateway/index.ts +23 -0
  535. package/src/bpmn-elements/presets/Pool/Lane.ts +211 -0
  536. package/src/bpmn-elements/presets/Pool/Pool.ts +284 -0
  537. package/src/bpmn-elements/presets/Pool/index.ts +89 -0
  538. package/src/bpmn-elements/presets/Task/index.ts +122 -0
  539. package/src/bpmn-elements/presets/Task/subProcess.ts +190 -0
  540. package/src/bpmn-elements/presets/Task/task.ts +193 -0
  541. package/src/bpmn-elements/presets/icons.ts +155 -0
  542. package/src/bpmn-elements/utils.ts +52 -0
  543. package/src/bpmn-elements-adapter/README.md +295 -0
  544. package/src/bpmn-elements-adapter/__tests__/adapter_in.test.js +526 -0
  545. package/src/bpmn-elements-adapter/__tests__/adapter_out.test.js +569 -0
  546. package/src/bpmn-elements-adapter/constant.ts +76 -0
  547. package/src/bpmn-elements-adapter/index.ts +1134 -0
  548. package/src/bpmn-elements-adapter/json2xml.ts +91 -0
  549. package/src/bpmn-elements-adapter/xml2json.ts +548 -0
  550. package/src/components/context-menu/index.ts +253 -0
  551. package/src/components/control/index.ts +141 -0
  552. package/src/components/dnd-panel/index.ts +129 -0
  553. package/src/components/highlight/index.ts +173 -0
  554. package/src/components/menu/index.ts +435 -0
  555. package/src/components/mini-map/index.ts +666 -0
  556. package/src/components/selection-select/index.ts +184 -0
  557. package/src/index.less +1 -0
  558. package/src/index.ts +22 -0
  559. package/src/insert-node-in-polyline/edge.ts +175 -0
  560. package/src/insert-node-in-polyline/index.ts +187 -0
  561. package/src/materials/curved-edge/__test__/curved-edge.test.ts +43 -0
  562. package/src/materials/curved-edge/index.ts +185 -0
  563. package/src/materials/group/GroupNode.ts +443 -0
  564. package/src/materials/group/index.ts +542 -0
  565. package/src/materials/node-selection/index.ts +271 -0
  566. package/src/mindmap/fakerRoot.ts +19 -0
  567. package/src/mindmap/index.ts +328 -0
  568. package/src/mindmap/markContent.ts +81 -0
  569. package/src/mindmap/markContentOption.ts +81 -0
  570. package/src/mindmap/markEntity.ts +82 -0
  571. package/src/mindmap/markRoot.ts +83 -0
  572. package/src/mindmap/theme.ts +11 -0
  573. package/src/rect-label-node/RectLabelNodeView.ts +33 -0
  574. package/src/rect-label-node/index.ts +15 -0
  575. package/src/style/index.less +255 -0
  576. package/src/style/raw.ts +222 -0
  577. package/src/tools/auto-layout/index.ts +282 -0
  578. package/src/tools/flow-path/index.ts +234 -0
  579. package/src/tools/snapshot/README.md +9 -0
  580. package/src/tools/snapshot/index.ts +275 -0
  581. package/src/turbo-adapter/index.ts +212 -0
  582. package/tsconfig.json +18 -0
  583. package/cjs/NodeResize/index.js +0 -40
  584. package/cjs/components/menu/index.js +0 -377
  585. package/cjs/components/mini-map/index.js +0 -437
  586. package/cjs/style/index.css +0 -222
  587. package/cjs/type/index.js +0 -2
  588. package/es/NodeResize/Control/Control.d.ts +0 -68
  589. package/es/NodeResize/Node/DiamondResize.d.ts +0 -30
  590. package/es/NodeResize/Node/EllipseResize.d.ts +0 -30
  591. package/es/NodeResize/Node/HtmlResize.d.ts +0 -30
  592. package/es/NodeResize/Node/RectResize.d.ts +0 -32
  593. package/es/type/index.d.ts +0 -6
  594. package/es/type/index.js +0 -0
  595. package/lib/AutoLayout.js +0 -1
  596. package/lib/BpmnAdapter.js +0 -1
  597. package/lib/BpmnElement.js +0 -1
  598. package/lib/ContextMenu.js +0 -1
  599. package/lib/Control.js +0 -1
  600. package/lib/CurvedEdge.js +0 -1
  601. package/lib/DndPanel.js +0 -1
  602. package/lib/FlowPath.js +0 -1
  603. package/lib/Group.js +0 -1
  604. package/lib/Highlight.js +0 -1
  605. package/lib/InsertNodeInPolyline.js +0 -1
  606. package/lib/Menu.js +0 -1
  607. package/lib/MiniMap.js +0 -1
  608. package/lib/NodeResize.js +0 -1
  609. package/lib/RectLabelNode.js +0 -1
  610. package/lib/SelectionSelect.js +0 -1
  611. package/lib/Snapshot.js +0 -1
  612. package/lib/TurboAdapter.js +0 -1
  613. package/lib/lfJson2Xml.js +0 -1
  614. package/lib/lfXml2Json.js +0 -1
  615. /package/es/NodeResize/{Control → control}/Util.d.ts +0 -0
@@ -0,0 +1,527 @@
1
+ import {
2
+ h,
3
+ Component,
4
+ GraphModel,
5
+ BaseNodeModel,
6
+ BaseEdgeModel,
7
+ RectNodeModel,
8
+ DiamondNodeModel,
9
+ EllipseNodeModel,
10
+ ModelType,
11
+ Rect,
12
+ LogicFlowUtil,
13
+ } from '@logicflow/core'
14
+ import { RectResizeModel } from '../node'
15
+
16
+ type VectorData = Record<'deltaX' | 'deltaY', number>
17
+
18
+ const { StepDrag } = LogicFlowUtil
19
+
20
+ interface IControlProps {
21
+ index: number
22
+ x: number
23
+ y: number
24
+ model: BaseNodeModel
25
+ graphModel: GraphModel
26
+ style?: CSSStyleDeclaration
27
+ }
28
+
29
+ interface IControlState {
30
+ startX: number
31
+ startY: number
32
+ endX: number
33
+ endY: number
34
+ dragging: boolean
35
+ }
36
+
37
+ class Control extends Component<IControlProps, IControlState> {
38
+ index: number
39
+ nodeModel: BaseNodeModel
40
+ graphModel: GraphModel
41
+ dragHandler: LogicFlowUtil.StepDrag
42
+
43
+ constructor(props: IControlProps) {
44
+ super()
45
+ this.index = props.index
46
+ this.nodeModel = props.model
47
+ this.graphModel = props.graphModel
48
+ // 为保证对齐线功能正常使用,step默认是网格grid的两倍,
49
+ // 没有网格设置,默认为2,保证坐标是整数
50
+ // let step = 2;
51
+ // if (gridSize > 1) {
52
+ // step = 2 * gridSize;
53
+ // }
54
+ // if (this.nodeModel.gridSize) {
55
+ // step = 2 * this.nodeModel.gridSize;
56
+ // }
57
+
58
+ this.dragHandler = new StepDrag({
59
+ onDragging: this.onDragging,
60
+ onDragEnd: this.onDragEnd,
61
+ step: 1,
62
+ })
63
+ }
64
+
65
+ getNodeEdges(nodeId: string) {
66
+ const { graphModel } = this
67
+ const { edges } = graphModel
68
+ const sourceEdges: BaseEdgeModel[] = []
69
+ const targetEdges: BaseEdgeModel[] = []
70
+ for (let i = 0; i < edges.length; i++) {
71
+ const edgeModel = edges[i]
72
+ if (edgeModel.sourceNodeId === nodeId) {
73
+ sourceEdges.push(edgeModel)
74
+ } else if (edges[i].targetNodeId === nodeId) {
75
+ targetEdges.push(edgeModel)
76
+ }
77
+ }
78
+ return {
79
+ sourceEdges,
80
+ targetEdges,
81
+ }
82
+ }
83
+
84
+ // 更新中心点位置,更新文案位置
85
+ updatePosition = ({ deltaX, deltaY }: VectorData) => {
86
+ const { x, y } = this.nodeModel
87
+ this.nodeModel.x = x + deltaX / 2
88
+ this.nodeModel.y = y + deltaY / 2
89
+ this.nodeModel.moveText(deltaX / 2, deltaY / 2)
90
+ }
91
+ // 计算control拖动后,节点的宽高
92
+ getResize = ({
93
+ index,
94
+ deltaX,
95
+ deltaY,
96
+ width,
97
+ height,
98
+ PCTResizeInfo,
99
+ pct = 1,
100
+ freezeWidth = false,
101
+ freezeHeight = false,
102
+ }: any) => {
103
+ // TODO: 定义 getResize 方法的参数类型
104
+ const resize = {
105
+ width,
106
+ height,
107
+ deltaX,
108
+ deltaY,
109
+ }
110
+ if (PCTResizeInfo) {
111
+ const sensitivity = 4 // 越低越灵敏
112
+ let deltaScale = 0
113
+ let combineDelta = 0
114
+ switch (index) {
115
+ case 0:
116
+ combineDelta = (deltaX * -1 - deltaY) / sensitivity
117
+ break
118
+ case 1:
119
+ combineDelta = (deltaX - deltaY) / sensitivity
120
+ break
121
+ case 2:
122
+ combineDelta = (deltaX + deltaY) / sensitivity
123
+ break
124
+ case 3:
125
+ combineDelta = (deltaX * -1 + deltaY) / sensitivity
126
+ break
127
+ default:
128
+ break
129
+ }
130
+ if (combineDelta !== 0) {
131
+ deltaScale =
132
+ Math.round(
133
+ (combineDelta / PCTResizeInfo.ResizeBasis.basisHeight) * 100000,
134
+ ) / 1000
135
+ }
136
+ PCTResizeInfo.ResizePCT.widthPCT = Math.max(
137
+ Math.min(
138
+ PCTResizeInfo.ResizePCT.widthPCT + deltaScale,
139
+ PCTResizeInfo.ScaleLimit.maxScaleLimit,
140
+ ),
141
+ PCTResizeInfo.ScaleLimit.minScaleLimit,
142
+ )
143
+ PCTResizeInfo.ResizePCT.heightPCT = Math.max(
144
+ Math.min(
145
+ PCTResizeInfo.ResizePCT.heightPCT + deltaScale,
146
+ PCTResizeInfo.ScaleLimit.maxScaleLimit,
147
+ ),
148
+ PCTResizeInfo.ScaleLimit.minScaleLimit,
149
+ )
150
+ const spcWidth = Math.round(
151
+ (PCTResizeInfo.ResizePCT.widthPCT *
152
+ PCTResizeInfo.ResizeBasis.basisWidth) /
153
+ 100,
154
+ )
155
+ const spcHeight = Math.round(
156
+ (PCTResizeInfo.ResizePCT.heightPCT *
157
+ PCTResizeInfo.ResizeBasis.basisHeight) /
158
+ 100,
159
+ )
160
+ switch (index) {
161
+ case 0:
162
+ deltaX = width - spcWidth
163
+ deltaY = height - spcHeight
164
+ break
165
+ case 1:
166
+ deltaX = spcWidth - width
167
+ deltaY = height - spcHeight
168
+ break
169
+ case 2:
170
+ deltaX = spcWidth - width
171
+ deltaY = spcHeight - height
172
+ break
173
+ case 3:
174
+ deltaX = width - spcWidth
175
+ deltaY = spcHeight - height
176
+ break
177
+ default:
178
+ break
179
+ }
180
+ resize.width = spcWidth
181
+ resize.height = spcHeight
182
+ resize.deltaX = deltaX / pct
183
+ resize.deltaY = deltaY / pct
184
+ return resize
185
+ }
186
+ // 如果限制了宽/高不变,对应的width/height保持一致
187
+ switch (index) {
188
+ case 0:
189
+ resize.width = freezeWidth ? width : width - deltaX * pct
190
+ resize.height = freezeHeight ? height : height - deltaY * pct
191
+ break
192
+ case 1:
193
+ resize.width = freezeWidth ? width : width + deltaX * pct
194
+ resize.height = freezeHeight ? height : height - deltaY * pct
195
+ break
196
+ case 2:
197
+ resize.width = freezeWidth ? width : width + deltaX * pct
198
+ resize.height = freezeHeight ? height : height + deltaY * pct
199
+ break
200
+ case 3:
201
+ resize.width = freezeWidth ? width : width - deltaX * pct
202
+ resize.height = freezeHeight ? height : height + deltaY * pct
203
+ break
204
+ default:
205
+ break
206
+ }
207
+ return resize
208
+ }
209
+ updateEdgePointByAnchors = () => {
210
+ // https://github.com/didi/LogicFlow/issues/807
211
+ // https://github.com/didi/LogicFlow/issues/875
212
+ // 之前的做法,比如Rect是使用getRectResizeEdgePoint()计算边的point缩放后的位置
213
+ // getRectResizeEdgePoint()考虑了瞄点在四条边以及在4个圆角的情况
214
+ // 使用的是一种等比例缩放的模式,比如:
215
+ // const pct = (y - beforeNode.y) / (beforeNode.height / 2 - radius)
216
+ // afterPoint.y = afterNode.y + (afterNode.height / 2 - radius) * pct
217
+ // 但是用户自定义的getDefaultAnchor()不一定是按照比例编写的
218
+ // 它可能是 x: x + 20:每次缩放都会保持在x右边20的位置,因此用户自定义瞄点时,然后产生无法跟随的问题
219
+ // 现在的做法是:直接获取用户自定义瞄点的位置,然后用这个位置作为边的新的起点,而不是自己进行计算
220
+ const { id, anchors } = this.nodeModel
221
+ const edges = this.getNodeEdges(id)
222
+ // 更新边
223
+ edges.sourceEdges.forEach((item) => {
224
+ const anchorItem = anchors.find(
225
+ (anchor) => anchor.id === item.sourceAnchorId,
226
+ )
227
+ if (anchorItem) {
228
+ item.updateStartPoint({
229
+ x: anchorItem.x,
230
+ y: anchorItem.y,
231
+ })
232
+ }
233
+ })
234
+ edges.targetEdges.forEach((item) => {
235
+ const anchorItem = anchors.find(
236
+ (anchor) => anchor.id === item.targetAnchorId,
237
+ )
238
+ if (anchorItem) {
239
+ item.updateEndPoint({
240
+ x: anchorItem.x,
241
+ y: anchorItem.y,
242
+ })
243
+ }
244
+ })
245
+ }
246
+ // 矩形更新
247
+ updateRect = ({ deltaX, deltaY }: VectorData) => {
248
+ const { x, y, width, height, radius, PCTResizeInfo } = this
249
+ .nodeModel as RectNodeModel
250
+ const { minWidth, minHeight, maxWidth, maxHeight } = this
251
+ .nodeModel as RectResizeModel
252
+ // 更新中心点位置,更新文案位置
253
+ const { index } = this
254
+ const freezeWidth = minWidth === maxWidth
255
+ const freezeHeight = minHeight === maxHeight
256
+ const size = this.getResize({
257
+ index,
258
+ deltaX,
259
+ deltaY,
260
+ width,
261
+ height,
262
+ PCTResizeInfo,
263
+ pct: 1,
264
+ freezeWidth,
265
+ freezeHeight,
266
+ })
267
+ // 限制放大缩小的最大最小范围
268
+ if (
269
+ size.width < minWidth ||
270
+ size.width > maxWidth ||
271
+ size.height < minHeight ||
272
+ size.height > maxHeight
273
+ ) {
274
+ // 为了避免放到和缩小位置和鼠标不一致的问题
275
+ this.dragHandler.cancelDrag()
276
+ return
277
+ }
278
+ // 如果限制了宽/高不变,对应的x/y不产生位移
279
+ this.updatePosition({
280
+ deltaX: freezeWidth ? 0 : size.deltaX,
281
+ deltaY: freezeHeight ? 0 : size.deltaY,
282
+ })
283
+ // 更新宽高
284
+ this.nodeModel.width = size.width
285
+ this.nodeModel.height = size.height
286
+ this.nodeModel.setProperties({
287
+ nodeSize: {
288
+ width: size.width,
289
+ height: size.height,
290
+ },
291
+ })
292
+ // const edges = this.getNodeEdges(id)
293
+ const beforeNode = {
294
+ x,
295
+ y,
296
+ width,
297
+ height,
298
+ radius,
299
+ }
300
+ const afterNode = {
301
+ x: this.nodeModel.x,
302
+ y: this.nodeModel.y,
303
+ width: this.nodeModel.width,
304
+ height: this.nodeModel.height,
305
+ radius,
306
+ }
307
+ // 更新边
308
+ this.updateEdgePointByAnchors()
309
+ this.eventEmit({
310
+ beforeNode,
311
+ afterNode,
312
+ })
313
+ }
314
+ // 椭圆更新
315
+ updateEllipse = ({ deltaX, deltaY }: VectorData) => {
316
+ const { rx, ry, x, y, PCTResizeInfo } = this.nodeModel as EllipseNodeModel
317
+ const { index } = this
318
+ const { minWidth, minHeight, maxWidth, maxHeight } = this
319
+ .nodeModel as RectResizeModel
320
+ const freezeWidth = minWidth === maxWidth
321
+ const freezeHeight = minHeight === maxHeight
322
+ const width = rx
323
+ const height = ry
324
+ const size = this.getResize({
325
+ index,
326
+ deltaX,
327
+ deltaY,
328
+ width,
329
+ height,
330
+ PCTResizeInfo,
331
+ pct: 1 / 2,
332
+ freezeWidth,
333
+ freezeHeight,
334
+ })
335
+ // 限制放大缩小的最大最小范围
336
+ if (
337
+ size.width < minWidth / 2 ||
338
+ size.width > maxWidth / 2 ||
339
+ size.height < minHeight / 2 ||
340
+ size.height > maxHeight / 2
341
+ ) {
342
+ this.dragHandler.cancelDrag()
343
+ return
344
+ }
345
+ // 更新中心点位置,更新文案位置
346
+ // 如果限制了宽/高不变,对应的x/y不产生位移
347
+ this.updatePosition({
348
+ deltaX: freezeWidth ? 0 : size.deltaX,
349
+ deltaY: freezeHeight ? 0 : size.deltaY,
350
+ })
351
+ // 更新rx ry,宽高为计算属性自动更新
352
+ // @ts-ignore
353
+ this.nodeModel.rx = size.width
354
+ // @ts-ignore
355
+ this.nodeModel.ry = size.height
356
+ this.nodeModel.setProperties({
357
+ nodeSize: {
358
+ rx: size.width,
359
+ ry: size.height,
360
+ },
361
+ })
362
+
363
+ const beforeNode = {
364
+ x,
365
+ y,
366
+ }
367
+ const afterNode = {
368
+ rx: size.width,
369
+ ry: size.height,
370
+ x: this.nodeModel.x,
371
+ y: this.nodeModel.y,
372
+ }
373
+ // 更新边
374
+ this.updateEdgePointByAnchors()
375
+ this.eventEmit({
376
+ beforeNode: {
377
+ ...beforeNode,
378
+ rx,
379
+ ry,
380
+ },
381
+ afterNode,
382
+ })
383
+ }
384
+ // 菱形更新
385
+ updateDiamond = ({ deltaX, deltaY }: VectorData) => {
386
+ const { rx, ry, x, y, PCTResizeInfo } = this.nodeModel as DiamondNodeModel
387
+ const { index } = this
388
+ const { minWidth, minHeight, maxWidth, maxHeight } = this
389
+ .nodeModel as RectResizeModel
390
+ const freezeWidth = minWidth === maxWidth
391
+ const freezeHeight = minHeight === maxHeight
392
+ const width = rx
393
+ const height = ry
394
+ const size = this.getResize({
395
+ index,
396
+ deltaX,
397
+ deltaY,
398
+ width,
399
+ height,
400
+ PCTResizeInfo,
401
+ pct: 1 / 2,
402
+ freezeWidth,
403
+ freezeHeight,
404
+ })
405
+ // 限制放大缩小的最大最小范围
406
+ if (
407
+ size.width < minWidth / 2 ||
408
+ size.width > maxWidth / 2 ||
409
+ size.height < minHeight / 2 ||
410
+ size.height > maxHeight / 2
411
+ ) {
412
+ this.dragHandler.cancelDrag()
413
+ return
414
+ }
415
+ // 更新中心点位置,更新文案位置
416
+ // 如果限制了宽/高不变,对应的x/y不产生位移
417
+ this.updatePosition({
418
+ deltaX: freezeWidth ? 0 : size.deltaX,
419
+ deltaY: freezeHeight ? 0 : size.deltaY,
420
+ })
421
+ // 更新rx ry,宽高为计算属性自动更新
422
+ // @ts-ignore
423
+ this.nodeModel.rx = size.width
424
+ // @ts-ignore
425
+ this.nodeModel.ry = size.height
426
+ this.nodeModel.setProperties({
427
+ nodeSize: {
428
+ rx: size.width,
429
+ ry: size.height,
430
+ },
431
+ })
432
+ const beforeNode = {
433
+ x,
434
+ y,
435
+ rx,
436
+ ry,
437
+ }
438
+ const afterNode = {
439
+ rx: size.width,
440
+ ry: size.height,
441
+ x: this.nodeModel.x,
442
+ y: this.nodeModel.y,
443
+ }
444
+ // 更新边
445
+ this.updateEdgePointByAnchors()
446
+ this.eventEmit({
447
+ beforeNode,
448
+ afterNode,
449
+ })
450
+ }
451
+ eventEmit = ({ beforeNode, afterNode }: any) => {
452
+ const { id, modelType, type } = this.nodeModel
453
+ const oldNodeSize = {
454
+ id,
455
+ modelType,
456
+ type,
457
+ ...beforeNode,
458
+ }
459
+ const newNodeSize = {
460
+ id,
461
+ modelType,
462
+ type,
463
+ ...afterNode,
464
+ }
465
+ this.graphModel.eventCenter.emit('node:resize', {
466
+ oldNodeSize,
467
+ newNodeSize,
468
+ })
469
+ }
470
+ onDragging = ({ deltaX, deltaY }: VectorData) => {
471
+ const { transformModel } = this.graphModel
472
+ const { modelType } = this.nodeModel
473
+ ;[deltaX, deltaY] = transformModel.fixDeltaXY(deltaX, deltaY)
474
+ // html和矩形的计算方式是一样的,共用一个方法
475
+ if (
476
+ modelType === ModelType.RECT_NODE ||
477
+ modelType === ModelType.HTML_NODE
478
+ ) {
479
+ this.updateRect({
480
+ deltaX,
481
+ deltaY,
482
+ })
483
+ // this.nodeModel.resize(deltaX, deltaY);
484
+ } else if (modelType === ModelType.ELLIPSE_NODE) {
485
+ this.updateEllipse({
486
+ deltaX,
487
+ deltaY,
488
+ })
489
+ } else if (modelType === ModelType.DIAMOND_NODE) {
490
+ this.updateDiamond({
491
+ deltaX,
492
+ deltaY,
493
+ })
494
+ }
495
+ }
496
+ /**
497
+ * 由于将拖拽放大缩小改成丝滑模式,这个时候需要在拖拽结束的时候,将节点的位置更新到grid上.
498
+ */
499
+ onDragEnd = () => {
500
+ const { gridSize = 1 } = this.graphModel
501
+ const x = gridSize * Math.round(this.nodeModel.x / gridSize)
502
+ const y = gridSize * Math.round(this.nodeModel.y / gridSize)
503
+ this.nodeModel.moveTo(x, y)
504
+
505
+ // 先触发onDragging()->更新边->再触发用户自定义的getDefaultAnchor(),所以onDragging()拿到的anchors是滞后的
506
+ // 为了正确设置最终的位置,应该在拖拽结束的时候,再设置一次边的Point位置,此时拿到的anchors是最新的
507
+ this.updateEdgePointByAnchors()
508
+ }
509
+
510
+ render(): h.JSX.Element {
511
+ const { x, y, index, model } = this.props
512
+ const style = (model as RectResizeModel).getControlPointStyle()
513
+ return (
514
+ <g className={`lf-resize-control-${index}`}>
515
+ <Rect
516
+ className="lf-node-control"
517
+ x={x}
518
+ y={y}
519
+ {...style}
520
+ onMouseDown={this.dragHandler.handleMouseDown}
521
+ />
522
+ </g>
523
+ )
524
+ }
525
+ }
526
+
527
+ export default Control
@@ -0,0 +1,76 @@
1
+ import { h, Component, Rect, BaseNodeModel, GraphModel } from '@logicflow/core'
2
+ import Control from './Control'
3
+ import { GroupNodeModel } from '../../materials/group'
4
+
5
+ interface IControlGroupProps {
6
+ model: BaseNodeModel
7
+ graphModel: GraphModel
8
+ }
9
+
10
+ class ControlGroup extends Component<IControlGroupProps> {
11
+ constructor() {
12
+ super()
13
+ this.state = {}
14
+ }
15
+
16
+ getResizeControl(): h.JSX.Element[] {
17
+ const { model, graphModel } = this.props
18
+ const { x, y, width, height } = model
19
+ const box = {
20
+ minX: x - width / 2,
21
+ minY: y - height / 2,
22
+ maxX: x + width / 2,
23
+ maxY: y + height / 2,
24
+ }
25
+ const { minX, minY, maxX, maxY } = box
26
+ const controlList = [
27
+ // 左上角
28
+ {
29
+ x: minX,
30
+ y: minY,
31
+ },
32
+ // 右上角
33
+ {
34
+ x: maxX,
35
+ y: minY,
36
+ },
37
+ // 右下角
38
+ {
39
+ x: maxX,
40
+ y: maxY,
41
+ },
42
+ // 左下角
43
+ {
44
+ x: minX,
45
+ y: maxY,
46
+ },
47
+ ]
48
+ return controlList.map((control, index) => (
49
+ <Control
50
+ index={index}
51
+ {...control}
52
+ model={model}
53
+ graphModel={graphModel}
54
+ />
55
+ ))
56
+ }
57
+
58
+ // 一般节点被选中了会有outline, 先不用这个
59
+ getGroupSolid() {
60
+ const { model } = this.props
61
+ const { x, y, width, height } = model
62
+ const style = (model as GroupNodeModel).getResizeOutlineStyle()
63
+ return <Rect {...style} x={x} y={y} width={width} height={height} />
64
+ }
65
+
66
+ render(): h.JSX.Element {
67
+ return (
68
+ <g className="lf-resize-control">
69
+ {this.getGroupSolid()}
70
+ {this.getResizeControl()}
71
+ </g>
72
+ )
73
+ }
74
+ }
75
+
76
+ export default ControlGroup