@logicflow/extension 2.0.0-beta.0 → 2.0.0-beta.10

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 (235) hide show
  1. package/.turbo/turbo-build.log +146 -491
  2. package/dist/index.css +63 -0
  3. package/dist/index.min.js +42 -0
  4. package/dist/index.min.js.map +1 -0
  5. package/es/NodeResize/control/Control.d.ts +3 -3
  6. package/es/NodeResize/control/Control.js +13 -3
  7. package/es/NodeResize/control/Control.js.map +1 -1
  8. package/es/NodeResize/index.d.ts +4 -0
  9. package/es/NodeResize/index.js.map +1 -1
  10. package/es/NodeResize/node/DiamondResize.d.ts +1 -0
  11. package/es/NodeResize/node/DiamondResize.js +2 -1
  12. package/es/NodeResize/node/DiamondResize.js.map +1 -1
  13. package/es/NodeResize/node/EllipseResize.d.ts +1 -0
  14. package/es/NodeResize/node/EllipseResize.js +2 -1
  15. package/es/NodeResize/node/EllipseResize.js.map +1 -1
  16. package/es/NodeResize/node/HtmlResize.d.ts +1 -0
  17. package/es/NodeResize/node/HtmlResize.js +2 -1
  18. package/es/NodeResize/node/HtmlResize.js.map +1 -1
  19. package/es/bpmn/constant.d.ts +1 -1
  20. package/es/bpmn/constant.js +3 -0
  21. package/es/bpmn/constant.js.map +1 -1
  22. package/es/bpmn/index.d.ts +3 -6
  23. package/es/bpmn/index.js +5 -7
  24. package/es/bpmn/index.js.map +1 -1
  25. package/es/bpmn-elements/presets/Pool/Pool.d.ts +21 -1
  26. package/es/components/control/index.d.ts +4 -4
  27. package/es/components/control/index.js.map +1 -1
  28. package/es/components/highlight/index.d.ts +6 -4
  29. package/es/components/highlight/index.js +32 -5
  30. package/es/components/highlight/index.js.map +1 -1
  31. package/es/components/menu/index.d.ts +1 -1
  32. package/es/components/menu/index.js +9 -10
  33. package/es/components/menu/index.js.map +1 -1
  34. package/es/components/mini-map/index.d.ts +1 -1
  35. package/es/components/mini-map/index.js +2 -2
  36. package/es/components/mini-map/index.js.map +1 -1
  37. package/es/components/selection-select/index.d.ts +1 -1
  38. package/es/components/selection-select/index.js.map +1 -1
  39. package/es/dynamic-group/index.d.ts +106 -0
  40. package/es/dynamic-group/index.js +536 -0
  41. package/es/dynamic-group/index.js.map +1 -0
  42. package/es/dynamic-group/model.d.ts +135 -0
  43. package/es/dynamic-group/model.js +413 -0
  44. package/es/dynamic-group/model.js.map +1 -0
  45. package/es/dynamic-group/node.d.ts +16 -0
  46. package/es/dynamic-group/node.js +143 -0
  47. package/es/dynamic-group/node.js.map +1 -0
  48. package/es/dynamic-group/utils.d.ts +17 -0
  49. package/es/dynamic-group/utils.js +27 -0
  50. package/es/dynamic-group/utils.js.map +1 -0
  51. package/es/index.css +63 -0
  52. package/es/index.d.ts +16 -8
  53. package/es/index.js +24 -8
  54. package/es/index.js.map +1 -1
  55. package/es/insert-node-in-polyline/index.js +3 -3
  56. package/es/insert-node-in-polyline/index.js.map +1 -1
  57. package/es/materials/group/GroupNode.d.ts +6 -10
  58. package/es/materials/group/GroupNode.js +8 -6
  59. package/es/materials/group/GroupNode.js.map +1 -1
  60. package/es/materials/group/index.d.ts +5 -5
  61. package/es/materials/group/index.js +25 -26
  62. package/es/materials/group/index.js.map +1 -1
  63. package/es/materials/node-selection/index.d.ts +6 -1
  64. package/es/materials/node-selection/index.js +64 -56
  65. package/es/materials/node-selection/index.js.map +1 -1
  66. package/es/mindmap/index.d.ts +2 -2
  67. package/es/style/index.css +63 -0
  68. package/es/style/index.less +73 -0
  69. package/es/style/raw.d.ts +1 -1
  70. package/es/style/raw.js +1 -1
  71. package/es/style/raw.js.map +1 -1
  72. package/es/tools/flow-path/index.js +0 -1
  73. package/es/tools/flow-path/index.js.map +1 -1
  74. package/es/tools/label/Label.d.ts +30 -0
  75. package/es/tools/label/Label.js +241 -0
  76. package/es/tools/label/Label.js.map +1 -0
  77. package/es/tools/label/LabelModel.d.ts +26 -0
  78. package/es/tools/label/LabelModel.js +86 -0
  79. package/es/tools/label/LabelModel.js.map +1 -0
  80. package/es/tools/label/LabelOverlay.d.ts +28 -0
  81. package/es/tools/label/LabelOverlay.js +161 -0
  82. package/es/tools/label/LabelOverlay.js.map +1 -0
  83. package/es/tools/label/algorithm.d.ts +16 -0
  84. package/es/tools/label/algorithm.js +27 -0
  85. package/es/tools/label/algorithm.js.map +1 -0
  86. package/es/tools/label/index.d.ts +59 -0
  87. package/es/tools/label/index.js +292 -0
  88. package/es/tools/label/index.js.map +1 -0
  89. package/es/tools/label/mediumEditor.d.ts +17 -0
  90. package/es/tools/label/mediumEditor.js +92 -0
  91. package/es/tools/label/mediumEditor.js.map +1 -0
  92. package/es/tools/label/utils.d.ts +64 -0
  93. package/es/tools/label/utils.js +336 -0
  94. package/es/tools/label/utils.js.map +1 -0
  95. package/es/tools/snapshot/index.d.ts +107 -11
  96. package/es/tools/snapshot/index.js +366 -149
  97. package/es/tools/snapshot/index.js.map +1 -1
  98. package/es/tools/snapshot/utils.d.ts +35 -0
  99. package/es/tools/snapshot/utils.js +238 -0
  100. package/es/tools/snapshot/utils.js.map +1 -0
  101. package/lib/NodeResize/control/Control.d.ts +3 -3
  102. package/lib/NodeResize/control/Control.js +13 -3
  103. package/lib/NodeResize/control/Control.js.map +1 -1
  104. package/lib/NodeResize/index.d.ts +4 -0
  105. package/lib/NodeResize/index.js.map +1 -1
  106. package/lib/NodeResize/node/DiamondResize.d.ts +1 -0
  107. package/lib/NodeResize/node/DiamondResize.js +2 -1
  108. package/lib/NodeResize/node/DiamondResize.js.map +1 -1
  109. package/lib/NodeResize/node/EllipseResize.d.ts +1 -0
  110. package/lib/NodeResize/node/EllipseResize.js +2 -1
  111. package/lib/NodeResize/node/EllipseResize.js.map +1 -1
  112. package/lib/NodeResize/node/HtmlResize.d.ts +1 -0
  113. package/lib/NodeResize/node/HtmlResize.js +2 -1
  114. package/lib/NodeResize/node/HtmlResize.js.map +1 -1
  115. package/lib/bpmn/constant.d.ts +1 -1
  116. package/lib/bpmn/constant.js +3 -0
  117. package/lib/bpmn/constant.js.map +1 -1
  118. package/lib/bpmn/index.d.ts +3 -6
  119. package/lib/bpmn/index.js +5 -7
  120. package/lib/bpmn/index.js.map +1 -1
  121. package/lib/bpmn-elements/presets/Pool/Pool.d.ts +21 -1
  122. package/lib/components/control/index.d.ts +4 -4
  123. package/lib/components/control/index.js.map +1 -1
  124. package/lib/components/highlight/index.d.ts +6 -4
  125. package/lib/components/highlight/index.js +32 -5
  126. package/lib/components/highlight/index.js.map +1 -1
  127. package/lib/components/menu/index.d.ts +1 -1
  128. package/lib/components/menu/index.js +9 -10
  129. package/lib/components/menu/index.js.map +1 -1
  130. package/lib/components/mini-map/index.d.ts +1 -1
  131. package/lib/components/mini-map/index.js +2 -2
  132. package/lib/components/mini-map/index.js.map +1 -1
  133. package/lib/components/selection-select/index.d.ts +1 -1
  134. package/lib/components/selection-select/index.js.map +1 -1
  135. package/lib/dynamic-group/index.d.ts +106 -0
  136. package/lib/dynamic-group/index.js +553 -0
  137. package/lib/dynamic-group/index.js.map +1 -0
  138. package/lib/dynamic-group/model.d.ts +135 -0
  139. package/lib/dynamic-group/model.js +416 -0
  140. package/lib/dynamic-group/model.js.map +1 -0
  141. package/lib/dynamic-group/node.d.ts +16 -0
  142. package/lib/dynamic-group/node.js +146 -0
  143. package/lib/dynamic-group/node.js.map +1 -0
  144. package/lib/dynamic-group/utils.d.ts +17 -0
  145. package/lib/dynamic-group/utils.js +32 -0
  146. package/lib/dynamic-group/utils.js.map +1 -0
  147. package/lib/index.css +63 -0
  148. package/lib/index.d.ts +16 -8
  149. package/lib/index.js +24 -8
  150. package/lib/index.js.map +1 -1
  151. package/lib/insert-node-in-polyline/index.js +2 -2
  152. package/lib/insert-node-in-polyline/index.js.map +1 -1
  153. package/lib/materials/group/GroupNode.d.ts +6 -10
  154. package/lib/materials/group/GroupNode.js +8 -6
  155. package/lib/materials/group/GroupNode.js.map +1 -1
  156. package/lib/materials/group/index.d.ts +5 -5
  157. package/lib/materials/group/index.js +24 -25
  158. package/lib/materials/group/index.js.map +1 -1
  159. package/lib/materials/node-selection/index.d.ts +6 -1
  160. package/lib/materials/node-selection/index.js +63 -55
  161. package/lib/materials/node-selection/index.js.map +1 -1
  162. package/lib/mindmap/index.d.ts +2 -2
  163. package/lib/style/index.css +63 -0
  164. package/lib/style/index.less +73 -0
  165. package/lib/style/raw.d.ts +1 -1
  166. package/lib/style/raw.js +1 -1
  167. package/lib/style/raw.js.map +1 -1
  168. package/lib/tools/flow-path/index.js +0 -1
  169. package/lib/tools/flow-path/index.js.map +1 -1
  170. package/lib/tools/label/Label.d.ts +30 -0
  171. package/lib/tools/label/Label.js +247 -0
  172. package/lib/tools/label/Label.js.map +1 -0
  173. package/lib/tools/label/LabelModel.d.ts +26 -0
  174. package/lib/tools/label/LabelModel.js +89 -0
  175. package/lib/tools/label/LabelModel.js.map +1 -0
  176. package/lib/tools/label/LabelOverlay.d.ts +28 -0
  177. package/lib/tools/label/LabelOverlay.js +167 -0
  178. package/lib/tools/label/LabelOverlay.js.map +1 -0
  179. package/lib/tools/label/algorithm.d.ts +16 -0
  180. package/lib/tools/label/algorithm.js +32 -0
  181. package/lib/tools/label/algorithm.js.map +1 -0
  182. package/lib/tools/label/index.d.ts +59 -0
  183. package/lib/tools/label/index.js +298 -0
  184. package/lib/tools/label/index.js.map +1 -0
  185. package/lib/tools/label/mediumEditor.d.ts +17 -0
  186. package/lib/tools/label/mediumEditor.js +98 -0
  187. package/lib/tools/label/mediumEditor.js.map +1 -0
  188. package/lib/tools/label/utils.d.ts +64 -0
  189. package/lib/tools/label/utils.js +349 -0
  190. package/lib/tools/label/utils.js.map +1 -0
  191. package/lib/tools/snapshot/index.d.ts +107 -11
  192. package/lib/tools/snapshot/index.js +366 -149
  193. package/lib/tools/snapshot/index.js.map +1 -1
  194. package/lib/tools/snapshot/utils.d.ts +35 -0
  195. package/lib/tools/snapshot/utils.js +247 -0
  196. package/lib/tools/snapshot/utils.js.map +1 -0
  197. package/package.json +20 -3
  198. package/rollup.config.js +1 -1
  199. package/src/NodeResize/control/Control.tsx +13 -3
  200. package/src/NodeResize/index.ts +4 -0
  201. package/src/NodeResize/node/DiamondResize.tsx +2 -1
  202. package/src/NodeResize/node/EllipseResize.tsx +2 -1
  203. package/src/NodeResize/node/HtmlResize.tsx +2 -1
  204. package/src/bpmn/constant.ts +4 -1
  205. package/src/bpmn/index.ts +7 -4
  206. package/src/bpmn-elements-adapter/README.md +1 -3
  207. package/src/components/control/index.ts +4 -4
  208. package/src/components/highlight/index.ts +33 -6
  209. package/src/components/menu/index.ts +16 -13
  210. package/src/components/mini-map/index.ts +3 -3
  211. package/src/components/selection-select/index.ts +6 -2
  212. package/src/dynamic-group/index.ts +609 -0
  213. package/src/dynamic-group/model.ts +503 -0
  214. package/src/dynamic-group/node.ts +140 -0
  215. package/src/dynamic-group/utils.ts +33 -0
  216. package/src/index.ts +30 -8
  217. package/src/insert-node-in-polyline/index.ts +3 -3
  218. package/src/materials/group/GroupNode.ts +12 -12
  219. package/src/materials/group/index.ts +40 -40
  220. package/src/materials/node-selection/index.ts +78 -70
  221. package/src/style/index.less +73 -0
  222. package/src/style/raw.ts +64 -1
  223. package/src/tools/flow-path/index.ts +0 -1
  224. package/src/tools/label/Label.tsx +297 -0
  225. package/src/tools/label/LabelModel.ts +82 -0
  226. package/src/tools/label/LabelOverlay.tsx +159 -0
  227. package/src/tools/label/algorithm.ts +42 -0
  228. package/src/tools/label/index.ts +401 -0
  229. package/src/tools/label/mediumEditor.ts +94 -0
  230. package/src/tools/label/utils.ts +395 -0
  231. package/src/tools/snapshot/README.md +141 -5
  232. package/src/tools/snapshot/index.ts +288 -101
  233. package/src/tools/snapshot/utils.ts +163 -0
  234. package/dist/index.js +0 -26
  235. package/dist/index.js.map +0 -1
@@ -1,5 +1,9 @@
1
1
  import LogicFlow from '@logicflow/core'
2
2
 
3
+ import GraphData = LogicFlow.GraphData
4
+ import NodeData = LogicFlow.NodeData
5
+ import EdgeData = LogicFlow.EdgeData
6
+
3
7
  type SetType = 'add' | 'reset'
4
8
 
5
9
  export type MenuItem = {
@@ -25,7 +29,7 @@ class Menu {
25
29
  private __container?: HTMLElement
26
30
  private __menuDOM?: HTMLElement
27
31
  private menuTypeMap?: Map<string, MenuItem[]>
28
- private __currentData: any
32
+ private __currentData: EdgeData | NodeData | GraphData | null = null
29
33
  static pluginName = 'menu'
30
34
 
31
35
  constructor({ lf }) {
@@ -107,7 +111,7 @@ class Menu {
107
111
  this.menuTypeMap?.set(DefaultSelectionMenuKey, DefaultSelectionMenu)
108
112
  }
109
113
 
110
- render(lf, container) {
114
+ render(lf: LogicFlow, container: HTMLElement) {
111
115
  if (lf.options.isSilentMode) return
112
116
  this.__container = container
113
117
  this.__currentData = null // 当前展示的菜单所属元素的model数据
@@ -147,7 +151,7 @@ class Menu {
147
151
  )
148
152
  }
149
153
  // 通过事件控制菜单的显示和隐藏
150
- this.lf.on('node:contextmenu', ({ data, position, e }: any) => {
154
+ this.lf.on('node:contextmenu', ({ data, position, e }) => {
151
155
  const {
152
156
  domOverlayPosition: { x, y },
153
157
  } = position
@@ -157,14 +161,14 @@ class Menu {
157
161
  if (!model) return
158
162
  let menuList: any = []
159
163
  const typeMenus = this.menuTypeMap?.get(model.type)
160
- // 如果单个节点自定义了节点,以单个节点自定义为准
164
+ // 1.如果单个节点自定义了菜单,以单个节点自定义为准
161
165
  if (model && model.menu && Array.isArray(model.menu)) {
162
166
  menuList = model.menu
163
167
  } else if (typeMenus) {
164
- // 如果定义当前节点类型的元素
168
+ // 2.如果当前节点类型定义了菜单,再取该配置
165
169
  menuList = typeMenus
166
170
  } else {
167
- // 最后取全局默认
171
+ // 3.最后取全局默认
168
172
  menuList = this.menuTypeMap?.get(DefaultNodeMenuKey)
169
173
  }
170
174
  this.__currentData = data
@@ -175,7 +179,7 @@ class Menu {
175
179
  clientY: e.clientY,
176
180
  })
177
181
  })
178
- this.lf.on('edge:contextmenu', ({ data, position, e }: any) => {
182
+ this.lf.on('edge:contextmenu', ({ data, position, e }) => {
179
183
  const {
180
184
  domOverlayPosition: { x, y },
181
185
  } = position
@@ -183,15 +187,13 @@ class Menu {
183
187
  const model = this.lf.graphModel.getEdgeModelById(id)
184
188
  if (!model) return
185
189
  let menuList: any = []
186
- const typeMenus = this.menuTypeMap?.get(model.type) ?? []
187
- // 如果单个节点自定义了边
190
+ const typeMenus = this.menuTypeMap?.get(model.type)
191
+ // 菜单优先级: model.menu > typeMenus > defaultEdgeMenu,注释同上节点
188
192
  if (model && model.menu && Array.isArray(model.menu)) {
189
193
  menuList = model.menu
190
194
  } else if (typeMenus) {
191
- // 如果定义当前边类型的元素
192
195
  menuList = typeMenus
193
196
  } else {
194
- // 最后取全局默认
195
197
  menuList = this.menuTypeMap?.get(DefaultEdgeMenuKey) ?? []
196
198
  }
197
199
  this.__currentData = data
@@ -202,14 +204,14 @@ class Menu {
202
204
  clientY: e.clientY,
203
205
  })
204
206
  })
205
- this.lf.on('blank:contextmenu', ({ position }: any) => {
207
+ this.lf.on('blank:contextmenu', ({ position }) => {
206
208
  const menuList = this.menuTypeMap?.get(DefaultGraphMenuKey) ?? []
207
209
  const {
208
210
  domOverlayPosition: { x, y },
209
211
  } = position
210
212
  this.showMenu(x, y, menuList)
211
213
  })
212
- this.lf.on('selection:contextmenu', ({ data, position }: any) => {
214
+ this.lf.on('selection:contextmenu', ({ data, position }) => {
213
215
  const menuList = this.menuTypeMap?.get(DefaultSelectionMenuKey)
214
216
  const {
215
217
  domOverlayPosition: { x, y },
@@ -217,6 +219,7 @@ class Menu {
217
219
  this.__currentData = data
218
220
  this.showMenu(x, y, menuList)
219
221
  })
222
+
220
223
  this.lf.on('node:mousedown', () => {
221
224
  this.__menuDOM!.style.display = 'none'
222
225
  })
@@ -177,11 +177,11 @@ export class MiniMap {
177
177
  */
178
178
  private disabledPlugins = ['miniMap', 'control', 'selectionSelect']
179
179
 
180
- constructor({ lf, LogicFlow, options }: LogicFlow.ExtensionProps) {
180
+ constructor({ lf, LogicFlow, options }: LogicFlow.IExtensionProps) {
181
181
  this.lf = lf
182
182
  this.LFCtor = LogicFlow
183
- if (options && options.MiniMap) {
184
- this.setOption(options.MiniMap as MiniMapOption)
183
+ if (options) {
184
+ this.setOption(options as MiniMapOption)
185
185
  }
186
186
  this.viewPortWidth = lf.graphModel.width
187
187
  this.viewPortHeight = lf.graphModel.height
@@ -11,11 +11,15 @@ export class SelectionSelect {
11
11
  private startPoint?: Position
12
12
  private endPoint?: Position
13
13
  private disabled = true
14
- private isDefaultStopMoveGraph = false
14
+ private isDefaultStopMoveGraph:
15
+ | boolean
16
+ | 'horizontal'
17
+ | 'vertical'
18
+ | [number, number, number, number] = false
15
19
  private isWholeNode = true
16
20
  private isWholeEdge = true
17
21
 
18
- constructor({ lf }: LogicFlow.ExtensionProps) {
22
+ constructor({ lf }: LogicFlow.IExtensionProps) {
19
23
  this.lf = lf
20
24
  // 初始化isDefaultStopMoveGraph取值
21
25
  const { stopMoveGraph } = lf.getEditConfig()