@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,271 @@
1
+ import { get } from 'lodash-es'
2
+ import { h, PolygonNode, PolygonNodeModel } from '@logicflow/core'
3
+
4
+ class NodeSelectionView extends PolygonNode {
5
+ d = 10
6
+
7
+ getShapeStyle() {
8
+ // 设置边框为虚线
9
+ const style = this.props.model.getNodeStyle()
10
+ // @ts-ignore
11
+ style.strokeDashArray = '10 5'
12
+
13
+ return style
14
+ }
15
+
16
+ getLabelShape(): h.JSX.Element {
17
+ const { id, x, y, width, height, properties } = this.props.model
18
+ const style = this.props.model.getNodeStyle()
19
+ return h(
20
+ 'svg',
21
+ {
22
+ x: x - width / 2,
23
+ y: y - height / 2,
24
+ style: 'z-index: 0; background: none; overflow: auto;',
25
+ },
26
+ properties.labelText
27
+ ? h(
28
+ 'text',
29
+ {
30
+ x: 0,
31
+ y: -5,
32
+ width: 50,
33
+ height: 24,
34
+ fontSize: '16px',
35
+ fill: style.stroke,
36
+ },
37
+ '方案',
38
+ )
39
+ : '',
40
+ properties.disabledDelete
41
+ ? ''
42
+ : h(
43
+ 'text',
44
+ {
45
+ x: properties.labelText ? 50 : 0,
46
+ y: -5,
47
+ width: 50,
48
+ height: 24,
49
+ fontSize: '24px',
50
+ cursor: 'pointer',
51
+ fill: style.stroke,
52
+ onclick: this.handleCustomDeleteIconClick.bind(this, id),
53
+ },
54
+ 'x',
55
+ ),
56
+ )
57
+ }
58
+
59
+ getShape(): h.JSX.Element {
60
+ const { x, y, width, height, id } = this.props.model
61
+ const style = this.props.model.getNodeStyle()
62
+
63
+ return h('g', {}, [
64
+ h('rect', {
65
+ ...style,
66
+ x: x - width / 2,
67
+ y: y - height / 2,
68
+ width,
69
+ height,
70
+ id,
71
+ }),
72
+ this.getLabelShape(),
73
+ ])
74
+ }
75
+
76
+ toFront() {}
77
+
78
+ /**
79
+ * 点击删除
80
+ * @param id
81
+ */
82
+ handleCustomDeleteIconClick(id) {
83
+ const { graphModel } = this.props
84
+ graphModel.deleteNode(id)
85
+ }
86
+ }
87
+
88
+ class NodeSelectionModel extends PolygonNodeModel {
89
+ d = 10
90
+
91
+ setAttributes() {
92
+ // 默认不显示
93
+ this.points = []
94
+
95
+ this.text = {
96
+ value: '',
97
+ x: 0,
98
+ y: 0,
99
+ draggable: false,
100
+ editable: false,
101
+ }
102
+ this.stroke = this.properties.active_color || '#008000'
103
+ this.zIndex = 0
104
+ this.draggable = false
105
+ this.anchorsOffset = [[0, 0]]
106
+
107
+ // TODO: 确认此处为何使用 setTimeout, 是初始化时该设置未生效吗?
108
+ if ((this.properties.node_selection_ids as string[]).length > 1) {
109
+ setTimeout(() => {
110
+ this.updatePointsByNodes(this.properties.node_selection_ids)
111
+ })
112
+ }
113
+ }
114
+
115
+ getDefaultAnchor() {
116
+ return []
117
+ }
118
+
119
+ /**
120
+ * 更新points
121
+ * @param points
122
+ */
123
+ updatePoints(points) {
124
+ this.points = points
125
+ }
126
+
127
+ /**
128
+ * 更新x y
129
+ */
130
+ updateCoordinate({ x, y }) {
131
+ this.x = x
132
+ this.y = y
133
+ }
134
+
135
+ /**
136
+ * 更新points
137
+ */
138
+ updatePointsByNodes(nodesIds) {
139
+ // TODO: 临时方案矩形
140
+ const points: [number, number][] = []
141
+ let minX = Infinity
142
+ let minY = Infinity
143
+ let maxX = -Infinity
144
+ let maxY = -Infinity
145
+
146
+ nodesIds.forEach((id) => {
147
+ const model = this.graphModel.getNodeModelById(id)
148
+ if (!model) return
149
+ const { width, height, x, y } = model
150
+ minX = Math.min(minX, x - width / 2 - this.d)
151
+ minY = Math.min(minY, y - height / 2 - this.d)
152
+ maxX = Math.max(maxX, x + width / 2 + this.d)
153
+ maxY = Math.max(maxY, y + height / 2 + this.d)
154
+ })
155
+ points.push([minX, minY], [maxX, minY], [maxX, maxY], [minX, maxY])
156
+
157
+ if ([minX, minY, maxX, maxY].some((n) => Math.abs(n) === Infinity)) return
158
+
159
+ this.updatePoints(points)
160
+ this.updateCoordinate({
161
+ x: (maxX + minX) / 2,
162
+ y: (maxY + minY) / 2,
163
+ })
164
+ }
165
+ }
166
+
167
+ export class NodeSelection {
168
+ static pluginName = 'node-selection'
169
+ lf // lf 实例
170
+ selectNodes: any[] = [] // 选择的nodes
171
+ currentClickNode // 当前点击的节点,选中的节点是无序的
172
+ d = 10
173
+
174
+ constructor({ lf }) {
175
+ lf.register({
176
+ type: 'node-selection',
177
+ view: NodeSelectionView,
178
+ model: NodeSelectionModel,
179
+ })
180
+ }
181
+
182
+ /**
183
+ * 获取所选node的id数组
184
+ */
185
+ get selectNodesIds(): string[] {
186
+ return this.selectNodes.map((node) => node.id)
187
+ }
188
+
189
+ /**
190
+ * 新建node-selection节点
191
+ */
192
+ addNodeSelection() {
193
+ const node = this.lf.addNode({
194
+ type: 'node-selection',
195
+ text: '',
196
+ properties: {
197
+ node_selection_ids: this.selectNodesIds,
198
+ },
199
+ })
200
+ node.updatePointsByNodes(this.selectNodesIds)
201
+ }
202
+
203
+ /**
204
+ * 更新node-selection节点
205
+ */
206
+ updateNodeSelection() {
207
+ const nodeSelection = this.getNodeSelection()
208
+ if (!nodeSelection) return
209
+ this.lf.setProperties(nodeSelection.id, {
210
+ node_selection_ids: this.selectNodesIds,
211
+ })
212
+
213
+ this.lf
214
+ .getNodeModelById(nodeSelection.id)
215
+ .updatePointsByNodes(this.selectNodesIds)
216
+ }
217
+
218
+ /**
219
+ * 获取所属的node-selection
220
+ */
221
+ getNodeSelection() {
222
+ const ids = this.selectNodesIds
223
+ const rawData = this.lf.getGraphRawData()
224
+
225
+ const oldIds = ids.filter((id) => id !== this.currentClickNode.id)
226
+ return rawData.nodes.find((node) => {
227
+ if (node.type === 'node-selection') {
228
+ const nodeSelectionIds = get(node, 'properties.node_selection_ids', [])
229
+ return oldIds.every((id) => nodeSelectionIds.includes(id))
230
+ }
231
+ return false
232
+ })
233
+ }
234
+
235
+ render(lf) {
236
+ this.lf = lf
237
+
238
+ lf.on('node:click', (val) => {
239
+ if (!val.e.shiftKey || val.data.type === 'node-selection') return
240
+
241
+ this.currentClickNode = val.data
242
+
243
+ // 如果selectNodesIds中已存在此节点,则取消选中此节点
244
+ let isUnSelected = false
245
+ if (this.selectNodesIds.includes(val.data.id)) {
246
+ this.lf.getNodeModelById(val.data.id).setSelected(false)
247
+ isUnSelected = true
248
+ }
249
+
250
+ // 获取所有被选中的节点,获取到的数组是无序的
251
+ const { nodes } = lf.getSelectElements(true)
252
+ // 使用插件时判断是否允许使用node-selection
253
+ if (lf.disableNodeSelection && lf.disableNodeSelection(nodes)) {
254
+ return
255
+ }
256
+ this.selectNodes = nodes
257
+
258
+ if (this.selectNodes.length === 1) {
259
+ if (!isUnSelected) {
260
+ this.addNodeSelection()
261
+ } else {
262
+ this.updateNodeSelection()
263
+ }
264
+ } else if (this.selectNodes.length > 1) {
265
+ this.updateNodeSelection()
266
+ }
267
+ })
268
+ }
269
+ }
270
+
271
+ export default NodeSelection
@@ -0,0 +1,19 @@
1
+ import { BaseNode, RectNodeModel } from '@logicflow/core'
2
+
3
+ class MarkRootModel extends RectNodeModel {
4
+ static extendKey = 'MarkRootModel'
5
+ }
6
+
7
+ class MarkRootView extends BaseNode<any> {
8
+ getShape() {
9
+ return null
10
+ }
11
+ }
12
+
13
+ const MarkRoot = {
14
+ type: 'faker:root',
15
+ view: MarkRootView,
16
+ model: MarkRootModel,
17
+ }
18
+
19
+ export default MarkRoot
@@ -0,0 +1,328 @@
1
+ import LogicFlow from '@logicflow/core'
2
+ import Hierarchy from '@antv/hierarchy'
3
+ import MarkEntity from './markEntity'
4
+ import FakerRoot from './fakerRoot'
5
+ import MarkRoot from './markRoot'
6
+ import MarkContent from './markContent'
7
+ import MarkContentOption from './markContentOption'
8
+ import { theme } from './theme'
9
+
10
+ import NodeConfig = LogicFlow.NodeConfig
11
+ import EdgeConfig = LogicFlow.EdgeConfig
12
+
13
+ export const ROOT_NODE = 'mark:root'
14
+ export const FAKER_NODE = 'faker:root'
15
+ const FIRST_ROOT_X = 10
16
+ const FIRST_ROOT_Y = 10
17
+
18
+ class MindMap {
19
+ static pluginName = 'MindMap'
20
+ lf: any
21
+
22
+ constructor({ lf }) {
23
+ this.lf = lf
24
+ lf.adapterIn = this.adapterIn
25
+ lf.adapterOut = this.adapterOut
26
+
27
+ lf.setTheme(theme)
28
+ lf.register(FakerRoot)
29
+ lf.register(MarkRoot)
30
+ lf.register(MarkContent)
31
+ lf.register(MarkContentOption)
32
+ lf.register(MarkEntity)
33
+ lf.setDefaultEdgeType('bezier')
34
+ lf.updateEditConfig({
35
+ hideAnchors: true,
36
+ adjustNodePosition: false,
37
+ edgeTextEdit: false,
38
+ adjustEdge: false,
39
+ })
40
+ lf.graphModel.transformModel.translate(200, 200)
41
+ this.setContextMenu()
42
+ /**
43
+ * 删除树上的某一个点和这个点后面所有的点
44
+ */
45
+ lf.removeTreeNode = (nodeId) => {
46
+ const { nodesMap } = this.getGraphTreeData()
47
+ const node = nodesMap.get(nodeId)
48
+ if (node.type === ROOT_NODE) {
49
+ return
50
+ }
51
+ this.removeNode(node)
52
+ this.renderTree()
53
+ }
54
+ /**
55
+ * 重新排布树
56
+ */
57
+ lf.renderTree = () => {
58
+ this.renderTree()
59
+ }
60
+ /**
61
+ * 监听删除
62
+ */
63
+ this.lf.keyboard.on('backspace', () => {
64
+ const { nodes } = this.lf.getSelectElements(true)
65
+ if (nodes.length > 0) {
66
+ this.lf.clearSelectElements()
67
+ nodes.forEach((node) => {
68
+ this.lf.removeTreeNode(node.id)
69
+ })
70
+ }
71
+ })
72
+ }
73
+
74
+ setContextMenu() {
75
+ const menuItem = [
76
+ {
77
+ icon: 'data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAACgAAAAoCAYAAACM/rhtAAAAAXNSR0IArs4c6QAAA5NJREFUWEfNmOtRFEEQgHsiACIQIkAiADOQCMAI7I0AjOCaCMQIxAg4IlAjQCIQIhjrW3uuZvf2bmf2Vov+d3Xz+LbfPUFeuYS5+JqmOU1nxRhfzOzHHGdPAlTVwxDCaYzxvYicicj+BphnEbkLISxjjN/MjN9VUgWoqsB8FBHAkJ8ishSRXyLS11gCZ+0bX38rIp/MjPVFUgSoqmhoISKXIvIiIiYit6UXqepb/6grp7oWkZsSjY4Cuta+ighrAbOSg4fUg2uICHAXrvEPY766FVBV0dhnN+Xl2GFFNhMR/+g7EYki8m7buRsBM7gHzFOiNVXF357NDL/cKq5NIPHPjZCDgO4z92jOzHD2IlHVFqx0j/s2e4A8GfLpNUDf9N2D4axEc4m+FpB9rgwgH83spK+JIUBSQZvfan1uCqBDch+BSAoiiFbSAXS/eBxaWGLjqYAOiRaPReQot1ofMGnvsMa0u5g420uuxLU6WlwBuu/9nqq9TAvFQdK3iqqioFMzO0r/5YAp5xFNkwr9Lib2D1xjyAGhJzDI9pNkBkBKKlZsKFdA5ID88cXMdBLd35RRlQeH7umfkQNSdtbCvAZ2JkAseZxyYguYpZdzM6P8TJKZAMmDV2bWsiVAyhmljZq4qqNeW+n/SoVUsal5HTqDBrZTh1W1CjD1caWARCGCmUql074NArqZ8UH6s5rDOxD/zMQZ4GsIEmJgP3VEeRQzJyzNLJmp1ESrdTNpkHL3ZGbt3JMDkhgvzOygmsw37AqYZZOVq+WAqeXpRHIN7AyAFAmGMzqadvLrdzPtHDvVzDMAkuoOzIzs0UofsM1B+Rf8Lw1mM1Ankww1rHQy92Z2XgPnmWByLVZVGuXQb1aGWv6kxeqc6CZmqksvD0XfmJJzv5KtmTid5hfRfm+dWfu3+z5SVWeu2EaZmZZOai3FbRo76QkxNdWlMyOMXIaJiwGz8fbJe9G1x6VtgzuRxIWj03+mefZg4tHHIdccKWUj3EYT9y4Eci+EoIvF4qbIqUYWqSqZAjfgdWzr7F3yeET7RH3kgRJY6vXo08YQY9M0FzFGwHAhPvZ6bHocBcy0iQNTDvcADSHcxhgfxsyJn/ljJ1UCMEzKQ1TRRxYDep5Dm6QQLiPKEYIJ584vZB3+CFAawjAnvV9VO1cFmJvNCzudOMAAAZJeUtESgdJ2SF4+q59/R4NkjoDY9YzJGtz14tL9fwB50PM48Yfe+AAAAABJRU5ErkJggg==',
78
+ className: 'lf-mindmap_addIcon',
79
+ callback: (data) => {
80
+ this.addChild(data)
81
+ },
82
+ },
83
+ ]
84
+ this.lf.setContextMenuByType(ROOT_NODE, menuItem)
85
+ this.lf.setContextMenuByType('mark:entity', menuItem)
86
+ this.lf.setContextMenuByType('mark:content', menuItem)
87
+ this.lf.setContextMenuByType('mark:content-option', menuItem)
88
+ }
89
+
90
+ private addChild(data) {
91
+ let type = 'mark:content-option'
92
+ switch (data.type) {
93
+ case ROOT_NODE:
94
+ type = 'mark:entity'
95
+ break
96
+ case 'mark:entity':
97
+ type = 'mark:content'
98
+ break
99
+ default:
100
+ break
101
+ }
102
+ const nodeModel = this.lf.addNode({
103
+ type,
104
+ x: data.x,
105
+ y: data.y,
106
+ })
107
+ this.lf.addEdge({
108
+ sourceNodeId: data.id,
109
+ targetNodeId: nodeModel.id,
110
+ })
111
+ this.renderTree()
112
+ }
113
+
114
+ private removeNode(node) {
115
+ if (node.children && node.children.length > 0) {
116
+ node.children.forEach((subNode) => {
117
+ this.removeNode(subNode)
118
+ })
119
+ }
120
+ this.lf.deleteNode(node.id)
121
+ }
122
+
123
+ private getGraphTreeData() {
124
+ const graphData = this.lf.getGraphRawData()
125
+ const nodesMap = new Map()
126
+ const rootNodes: string[] = []
127
+ let root: any = null
128
+ graphData.nodes.forEach((node) => {
129
+ const treeNode = {
130
+ id: node.id,
131
+ type: node.type,
132
+ properties: node.properties,
133
+ x: node.x,
134
+ y: node.y,
135
+ children: [],
136
+ }
137
+ nodesMap.set(node.id, treeNode)
138
+ if (node.type === ROOT_NODE) {
139
+ rootNodes.push(node.id)
140
+ }
141
+ if (node.type === FAKER_NODE) {
142
+ root = treeNode
143
+ }
144
+ })
145
+
146
+ graphData.edges.forEach((edge) => {
147
+ const node = nodesMap.get(edge.sourceNodeId)
148
+ node.children.push(nodesMap.get(edge.targetNodeId))
149
+ })
150
+ rootNodes.forEach((nodeId) => {
151
+ root.children.push(nodesMap.get(nodeId))
152
+ })
153
+ return {
154
+ root,
155
+ nodesMap,
156
+ }
157
+ }
158
+
159
+ private renderTree() {
160
+ let graphData = this.lf.getGraphRawData()
161
+ let tree = this.graphToTree(graphData)
162
+ tree = this.layoutTree(tree)
163
+ graphData = this.treeToGraph(tree)
164
+ this.lf.graphModel.graphDataToModel(graphData)
165
+ }
166
+
167
+ private graphToTree(graphData) {
168
+ let tree: any = null
169
+ const nodesMap = new Map()
170
+ const roots: any = []
171
+ graphData.nodes.forEach((node) => {
172
+ const treeNode = {
173
+ id: node.id,
174
+ type: node.type,
175
+ properties: node.proerties,
176
+ text: node.text,
177
+ children: [],
178
+ }
179
+ nodesMap.set(node.id, treeNode)
180
+ if (node.type === 'mark:root') {
181
+ roots.push(node)
182
+ }
183
+ if (node.type === FAKER_NODE) {
184
+ tree = treeNode
185
+ }
186
+ })
187
+ graphData.edges.forEach((edge) => {
188
+ const node = nodesMap.get(edge.sourceNodeId)
189
+ node.children.push(nodesMap.get(edge.targetNodeId))
190
+ })
191
+ if (tree && tree.children) {
192
+ tree.children = roots.map((root: any) => nodesMap.get(root.id))
193
+ }
194
+ return tree
195
+ }
196
+
197
+ /**
198
+ * 将树这种数据格式转换为图
199
+ */
200
+ private treeToGraph(rootNode) {
201
+ const nodes: NodeConfig[] = []
202
+ const edges: EdgeConfig[] = []
203
+
204
+ function getNode(current, parent: any = null) {
205
+ const node: NodeConfig = {
206
+ id: current.id,
207
+ x: current.x,
208
+ y: current.y,
209
+ type: current.type || current.data.type,
210
+ properties: current.properties || {},
211
+ }
212
+ nodes.push(node)
213
+ if (current.children) {
214
+ current.children.forEach((subNode) => {
215
+ getNode(subNode, node)
216
+ })
217
+ }
218
+ if (parent && parent.type !== FAKER_NODE) {
219
+ const edge: EdgeConfig = {
220
+ sourceNodeId: parent.id,
221
+ targetNodeId: node.id as string,
222
+ type: 'bezier',
223
+ }
224
+ edges.push(edge)
225
+ }
226
+ }
227
+
228
+ getNode(rootNode)
229
+ return {
230
+ nodes,
231
+ edges,
232
+ }
233
+ }
234
+
235
+ /**
236
+ * 由于树这种数据格式本身是没有坐标的
237
+ * 需要使用一些算法来将树转换为有坐标的树
238
+ */
239
+ layoutTree(tree) {
240
+ if (!tree || !tree.children || tree.children.length === 0) return tree
241
+ const NODE_SIZE = 40
242
+ const PEM = 20
243
+ tree.isRoot = true
244
+ const rootNode = Hierarchy.compactBox(tree, {
245
+ direction: 'LR',
246
+ getId(d) {
247
+ return d.id
248
+ },
249
+ getHeight(d) {
250
+ if (d.type === ROOT_NODE) {
251
+ return NODE_SIZE * 4
252
+ }
253
+ return NODE_SIZE
254
+ },
255
+ getWidth() {
256
+ return 200 + PEM * 1.6
257
+ },
258
+ getHGap() {
259
+ return PEM
260
+ },
261
+ getVGap() {
262
+ return PEM
263
+ },
264
+ getSubTreeSep(d) {
265
+ if (!d.children || !d.children.length) {
266
+ return 0
267
+ }
268
+ return PEM
269
+ },
270
+ })
271
+ // const { nodes, edges } = this.treeToGraph(rootNode);
272
+ // 将根节点位置平移回原位置
273
+ // 保证第一个根节点在画布位置不变
274
+ // 为什么取第一个child呢,这里是因为一张图上存在多个树的情况下
275
+ // 我们需要使用一个虚拟的节点(faker:root)作为所有树的根节点
276
+ // 这样在使用树布局算法的时候方便统一处理。
277
+ // 但是为了在视觉上保证图形不抖动,
278
+ // 我们需要把第一个真实的根节点位置保持不动
279
+ const x = tree.children[0].x || FIRST_ROOT_X
280
+ const y = tree.children[0].y || FIRST_ROOT_Y
281
+ const x1 = rootNode.children[0].x
282
+ const y1 = rootNode.children[0].y
283
+ const moveX = x - x1
284
+ const moveY = y - y1
285
+ const newTree = this.dfsTree(rootNode, (currentNode) => ({
286
+ id: currentNode.id,
287
+ x: currentNode.x + moveX,
288
+ y: currentNode.y + moveY,
289
+ type: currentNode.data.type,
290
+ }))
291
+ return newTree
292
+ }
293
+
294
+ /**
295
+ * 遍历树的每一项,已传入的回调方法重新构建一个新的树
296
+ */
297
+ dfsTree(tree, callback) {
298
+ const newTree = callback(tree)
299
+ if (tree.children && tree.children.length > 0) {
300
+ newTree.children = tree.children.map((treeNode) =>
301
+ this.dfsTree(treeNode, callback),
302
+ )
303
+ }
304
+ return newTree
305
+ }
306
+
307
+ /**
308
+ * 将传入的数据转换为logicflow格式的数据
309
+ */
310
+ adapterIn = (trees) => {
311
+ const tree = {
312
+ id: 'faker:root',
313
+ type: 'faker:root',
314
+ x: 0,
315
+ y: 0,
316
+ children: trees,
317
+ }
318
+ const newtree = this.layoutTree(tree)
319
+ const graphData = this.treeToGraph(newtree)
320
+ return graphData
321
+ }
322
+ /**
323
+ * 将logicflow格式的数据转换为mindmap需要的数据
324
+ */
325
+ adapterOut = (graphData) => this.graphToTree(graphData).children
326
+ }
327
+
328
+ export { MindMap }
@@ -0,0 +1,81 @@
1
+ import { h, RectNode, RectNodeModel } from '@logicflow/core'
2
+
3
+ class MarkContentModel extends RectNodeModel {
4
+ static extendKey = 'MarkContentModel'
5
+
6
+ constructor(data, graphModel) {
7
+ if (!data.text) {
8
+ data.text = {
9
+ x: data.x,
10
+ y: data.y + 15,
11
+ value: '',
12
+ }
13
+ }
14
+ super(data, graphModel)
15
+ }
16
+
17
+ setAttributes() {
18
+ this.height = 60
19
+ this.strokeWidth = 1
20
+ }
21
+ }
22
+
23
+ class MarkContentView extends RectNode {
24
+ static extendKey = 'MarkContent'
25
+
26
+ getLabelShape(): h.JSX.Element {
27
+ const { x, y, width, height } = this.props.model
28
+ const style = this.props.model.getNodeStyle()
29
+ return h(
30
+ 'svg',
31
+ {
32
+ x: x - width / 2 + 5,
33
+ y: y - height / 2 + 5,
34
+ width: 25,
35
+ height: 25,
36
+ viewBox: '0 0 1274 1024',
37
+ },
38
+ h('path', {
39
+ fill: style.stroke,
40
+ d: 'M655.807326 287.35973m-223.989415 0a218.879 218.879 0 1 0 447.978829 0 218.879 218.879 0 1 0-447.978829 0ZM1039.955839 895.482975c-0.490184-212.177424-172.287821-384.030443-384.148513-384.030443-211.862739 0-383.660376 171.85302-384.15056 384.030443L1039.955839 895.482975z',
41
+ }),
42
+ )
43
+ }
44
+
45
+ getShape(): h.JSX.Element {
46
+ const { x, y, width, height, radius } = this.props.model
47
+ const style = this.props.model.getNodeStyle()
48
+ return h('g', {}, [
49
+ h('rect', {
50
+ ...style,
51
+ x: x - width / 2,
52
+ y: y - height / 2,
53
+ rx: radius,
54
+ ry: radius,
55
+ width,
56
+ height,
57
+ }),
58
+ this.getLabelShape(),
59
+ h(
60
+ 'text',
61
+ {
62
+ fill: style.stroke,
63
+ fontSize: 12,
64
+ x: x - width / 2 + 30,
65
+ y: y - height / 2 + 20,
66
+ width: 50,
67
+ height: 25,
68
+ },
69
+ '二级主题',
70
+ ),
71
+ ])
72
+ }
73
+ }
74
+
75
+ const MarkContent = {
76
+ type: 'mark:content',
77
+ view: MarkContentView,
78
+ model: MarkContentModel,
79
+ }
80
+
81
+ export default MarkContent