@logicflow/extension 2.2.0 → 2.2.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 (201) hide show
  1. package/README.md +16 -0
  2. package/dist/index.css +1 -1
  3. package/dist/index.min.js +1 -1
  4. package/dist/index.min.js.map +1 -1
  5. package/es/NodeResize/node/RectResize.d.ts +0 -6
  6. package/es/NodeResize/node/RectResize.js +2 -11
  7. package/es/bpmn-elements-adapter/json2xml.d.ts +2 -1
  8. package/es/bpmn-elements-adapter/json2xml.js +18 -4
  9. package/es/bpmn-elements-adapter/xml2json.js +2 -7
  10. package/es/components/control/index.d.ts +1 -0
  11. package/es/components/control/index.js +24 -11
  12. package/es/components/mini-map/index.js +1 -1
  13. package/es/dynamic-group/model.d.ts +2 -1
  14. package/es/dynamic-group/model.js +28 -11
  15. package/es/dynamic-group/node.js +1 -0
  16. package/es/index.css +1 -1
  17. package/es/index.d.ts +1 -0
  18. package/es/index.js +2 -0
  19. package/es/insert-node-in-polyline/index.js +11 -35
  20. package/es/materials/curved-edge/index.js +49 -21
  21. package/es/materials/group/GroupNode.d.ts +0 -6
  22. package/es/materials/group/GroupNode.js +1 -6
  23. package/es/pool/LaneModel.d.ts +90 -0
  24. package/es/pool/LaneModel.js +252 -0
  25. package/es/pool/LaneView.d.ts +40 -0
  26. package/es/pool/LaneView.js +202 -0
  27. package/es/pool/PoolModel.d.ts +120 -0
  28. package/es/pool/PoolModel.js +586 -0
  29. package/es/pool/PoolView.d.ts +17 -0
  30. package/es/pool/PoolView.js +76 -0
  31. package/es/pool/constant.d.ts +15 -0
  32. package/es/pool/constant.js +17 -0
  33. package/es/pool/index.d.ts +89 -0
  34. package/es/pool/index.js +524 -0
  35. package/es/pool/utils.d.ts +19 -0
  36. package/es/pool/utils.js +33 -0
  37. package/es/style/index.css +1 -1
  38. package/es/style/raw.d.ts +1 -1
  39. package/es/style/raw.js +1 -1
  40. package/es/tools/label/LabelOverlay.js +3 -3
  41. package/es/tools/label/mediumEditor.d.ts +1 -1
  42. package/es/tools/label/mediumEditor.js +89 -52
  43. package/es/tools/snapshot/index.d.ts +7 -3
  44. package/es/tools/snapshot/index.js +72 -77
  45. package/lib/NodeResize/node/RectResize.d.ts +0 -6
  46. package/lib/NodeResize/node/RectResize.js +1 -10
  47. package/lib/bpmn-elements-adapter/json2xml.d.ts +2 -1
  48. package/lib/bpmn-elements-adapter/json2xml.js +19 -4
  49. package/lib/bpmn-elements-adapter/xml2json.js +2 -7
  50. package/lib/components/control/index.d.ts +1 -0
  51. package/lib/components/control/index.js +24 -11
  52. package/lib/components/mini-map/index.js +1 -1
  53. package/lib/dynamic-group/model.d.ts +2 -1
  54. package/lib/dynamic-group/model.js +28 -11
  55. package/lib/dynamic-group/node.js +1 -0
  56. package/lib/index.css +1 -1
  57. package/lib/index.d.ts +1 -0
  58. package/lib/index.js +2 -0
  59. package/lib/insert-node-in-polyline/index.js +10 -34
  60. package/lib/materials/curved-edge/index.js +49 -21
  61. package/lib/materials/group/GroupNode.d.ts +0 -6
  62. package/lib/materials/group/GroupNode.js +1 -6
  63. package/lib/pool/LaneModel.d.ts +90 -0
  64. package/lib/pool/LaneModel.js +255 -0
  65. package/lib/pool/LaneView.d.ts +40 -0
  66. package/lib/pool/LaneView.js +205 -0
  67. package/lib/pool/PoolModel.d.ts +120 -0
  68. package/lib/pool/PoolModel.js +589 -0
  69. package/lib/pool/PoolView.d.ts +17 -0
  70. package/lib/pool/PoolView.js +79 -0
  71. package/lib/pool/constant.d.ts +15 -0
  72. package/lib/pool/constant.js +20 -0
  73. package/lib/pool/index.d.ts +89 -0
  74. package/lib/pool/index.js +527 -0
  75. package/lib/pool/utils.d.ts +19 -0
  76. package/lib/pool/utils.js +38 -0
  77. package/lib/style/index.css +1 -1
  78. package/lib/style/raw.d.ts +1 -1
  79. package/lib/style/raw.js +1 -1
  80. package/lib/tools/label/LabelOverlay.js +2 -2
  81. package/lib/tools/label/mediumEditor.d.ts +1 -1
  82. package/lib/tools/label/mediumEditor.js +91 -53
  83. package/lib/tools/snapshot/index.d.ts +7 -3
  84. package/lib/tools/snapshot/index.js +72 -77
  85. package/package.json +10 -7
  86. package/.turbo/turbo-build.log +0 -38
  87. package/CHANGELOG.md +0 -1766
  88. package/__test__/bpmn-adapter.test.js +0 -227
  89. package/es/materials/curved-edge/__test__/curved-edge.test.d.ts +0 -1
  90. package/es/materials/curved-edge/__test__/curved-edge.test.js +0 -18
  91. package/jest.config.js +0 -198
  92. package/lib/materials/curved-edge/__test__/curved-edge.test.d.ts +0 -1
  93. package/lib/materials/curved-edge/__test__/curved-edge.test.js +0 -20
  94. package/rollup.config.js +0 -52
  95. package/src/NodeResize/BasicShape/Ellipse.tsx +0 -22
  96. package/src/NodeResize/BasicShape/Polygon.tsx +0 -24
  97. package/src/NodeResize/BasicShape/Rect.tsx +0 -44
  98. package/src/NodeResize/control/Control.tsx +0 -537
  99. package/src/NodeResize/control/ControlGroup.tsx +0 -76
  100. package/src/NodeResize/control/Util.ts +0 -206
  101. package/src/NodeResize/index.ts +0 -26
  102. package/src/NodeResize/node/DiamondResize.tsx +0 -149
  103. package/src/NodeResize/node/EllipseResize.tsx +0 -140
  104. package/src/NodeResize/node/HtmlResize.tsx +0 -125
  105. package/src/NodeResize/node/RectResize.tsx +0 -146
  106. package/src/NodeResize/node/index.ts +0 -4
  107. package/src/bpmn/constant.ts +0 -56
  108. package/src/bpmn/events/EndEvent.ts +0 -73
  109. package/src/bpmn/events/StartEvent.ts +0 -52
  110. package/src/bpmn/events/index.ts +0 -2
  111. package/src/bpmn/flow/SequenceFlow.ts +0 -25
  112. package/src/bpmn/flow/index.ts +0 -1
  113. package/src/bpmn/gateways/ExclusiveGateway.ts +0 -71
  114. package/src/bpmn/gateways/index.ts +0 -1
  115. package/src/bpmn/getBpmnId.ts +0 -31
  116. package/src/bpmn/index.ts +0 -60
  117. package/src/bpmn/tasks/ServiceTask.ts +0 -63
  118. package/src/bpmn/tasks/UserTask.ts +0 -64
  119. package/src/bpmn/tasks/index.ts +0 -2
  120. package/src/bpmn-adapter/bpmnIds.ts +0 -31
  121. package/src/bpmn-adapter/index.ts +0 -835
  122. package/src/bpmn-adapter/json2xml.ts +0 -127
  123. package/src/bpmn-adapter/xml2json.ts +0 -544
  124. package/src/bpmn-elements/README.md +0 -223
  125. package/src/bpmn-elements/__tests__/definition.test.js +0 -72
  126. package/src/bpmn-elements/index.d.ts +0 -26
  127. package/src/bpmn-elements/index.ts +0 -107
  128. package/src/bpmn-elements/presets/Event/EndEventFactory.ts +0 -114
  129. package/src/bpmn-elements/presets/Event/IntermediateCatchEvent.ts +0 -108
  130. package/src/bpmn-elements/presets/Event/IntermediateThrowEvent.ts +0 -109
  131. package/src/bpmn-elements/presets/Event/StartEventFactory.ts +0 -114
  132. package/src/bpmn-elements/presets/Event/boundaryEventFactory.ts +0 -117
  133. package/src/bpmn-elements/presets/Event/index.ts +0 -14
  134. package/src/bpmn-elements/presets/Flow/flow.d.ts +0 -6
  135. package/src/bpmn-elements/presets/Flow/index.ts +0 -8
  136. package/src/bpmn-elements/presets/Flow/manhattan.ts +0 -691
  137. package/src/bpmn-elements/presets/Flow/sequenceFlow.ts +0 -65
  138. package/src/bpmn-elements/presets/Gateway/gateway.ts +0 -107
  139. package/src/bpmn-elements/presets/Gateway/index.ts +0 -23
  140. package/src/bpmn-elements/presets/Pool/Lane.ts +0 -211
  141. package/src/bpmn-elements/presets/Pool/Pool.ts +0 -284
  142. package/src/bpmn-elements/presets/Pool/index.ts +0 -89
  143. package/src/bpmn-elements/presets/Task/index.ts +0 -122
  144. package/src/bpmn-elements/presets/Task/subProcess.ts +0 -189
  145. package/src/bpmn-elements/presets/Task/task.ts +0 -193
  146. package/src/bpmn-elements/presets/icons.ts +0 -155
  147. package/src/bpmn-elements/utils.ts +0 -52
  148. package/src/bpmn-elements-adapter/README.md +0 -293
  149. package/src/bpmn-elements-adapter/__tests__/adapter_in.test.js +0 -528
  150. package/src/bpmn-elements-adapter/__tests__/adapter_out.test.js +0 -569
  151. package/src/bpmn-elements-adapter/constant.ts +0 -76
  152. package/src/bpmn-elements-adapter/index.ts +0 -1134
  153. package/src/bpmn-elements-adapter/json2xml.ts +0 -91
  154. package/src/bpmn-elements-adapter/xml2json.ts +0 -548
  155. package/src/components/context-menu/index.ts +0 -253
  156. package/src/components/control/index.ts +0 -141
  157. package/src/components/dnd-panel/index.ts +0 -137
  158. package/src/components/highlight/index.ts +0 -227
  159. package/src/components/menu/index.ts +0 -748
  160. package/src/components/mini-map/index.ts +0 -686
  161. package/src/components/selection-select/index.ts +0 -387
  162. package/src/dynamic-group/index.ts +0 -775
  163. package/src/dynamic-group/model.ts +0 -562
  164. package/src/dynamic-group/node.ts +0 -288
  165. package/src/dynamic-group/utils.ts +0 -46
  166. package/src/index.less +0 -1
  167. package/src/index.ts +0 -45
  168. package/src/insert-node-in-polyline/edge.ts +0 -175
  169. package/src/insert-node-in-polyline/index.ts +0 -187
  170. package/src/materials/curved-edge/__test__/curved-edge.test.ts +0 -46
  171. package/src/materials/curved-edge/index.ts +0 -185
  172. package/src/materials/group/GroupNode.ts +0 -442
  173. package/src/materials/group/index.ts +0 -542
  174. package/src/materials/node-selection/index.ts +0 -380
  175. package/src/mindmap/fakerRoot.ts +0 -19
  176. package/src/mindmap/index.ts +0 -328
  177. package/src/mindmap/markContent.ts +0 -81
  178. package/src/mindmap/markContentOption.ts +0 -81
  179. package/src/mindmap/markEntity.ts +0 -82
  180. package/src/mindmap/markRoot.ts +0 -83
  181. package/src/mindmap/theme.ts +0 -11
  182. package/src/rect-label-node/RectLabelNodeView.ts +0 -33
  183. package/src/rect-label-node/index.ts +0 -15
  184. package/src/style/index.less +0 -342
  185. package/src/style/raw.ts +0 -295
  186. package/src/tools/auto-layout/index.ts +0 -282
  187. package/src/tools/flow-path/index.ts +0 -233
  188. package/src/tools/label/Label.tsx +0 -357
  189. package/src/tools/label/LabelModel.ts +0 -83
  190. package/src/tools/label/LabelOverlay.tsx +0 -158
  191. package/src/tools/label/algorithm.ts +0 -42
  192. package/src/tools/label/index.ts +0 -479
  193. package/src/tools/label/mediumEditor.ts +0 -94
  194. package/src/tools/label/utils.ts +0 -395
  195. package/src/tools/proximity-connect/index.ts +0 -435
  196. package/src/tools/snapshot/README.md +0 -145
  197. package/src/tools/snapshot/index.ts +0 -718
  198. package/src/tools/snapshot/utils.ts +0 -163
  199. package/src/turbo-adapter/index.ts +0 -212
  200. package/stats.html +0 -4842
  201. package/tsconfig.json +0 -18
@@ -1,227 +0,0 @@
1
- import LogicFlow, { BaseEdgeModel, BaseNodeModel } from '@logicflow/core'
2
- import { uniqBy, concat } from 'lodash-es'
3
-
4
- // 后续并入FlowPath
5
- const getPath = (id: string, lf: LogicFlow) => {
6
- const el = lf.getModelById(id)
7
- return getNodePath(el?.BaseType === 'node' ? el : el?.targetNode, lf)
8
- }
9
-
10
- // dfs + 动态规划
11
- // todo 算法优化
12
- const getNodePath = (node, lf: LogicFlow) => {
13
- const incomingPaths: any[] = []
14
- const outgoingPaths: any[] = []
15
-
16
- const getIncomingPaths = (curNode, path, prevNode?: BaseNodeModel) => {
17
- if (!curNode) return
18
- if (prevNode) {
19
- // * 上个节点和当前节点中间边
20
- path.unshift(
21
- ...lf
22
- .getEdgeModels({
23
- sourceNodeId: curNode.id,
24
- targetNodeId: prevNode?.id,
25
- })
26
- .map((item) => item.id),
27
- )
28
- }
29
-
30
- // * 路径中存在节点,则不再继续查找,说明出现环情况
31
- if (path.includes(curNode.id)) {
32
- incomingPaths.push(path)
33
- return
34
- }
35
-
36
- // * 路径中当前加入节点
37
- path.unshift(curNode.id)
38
-
39
- if (!curNode.incoming.nodes.length) {
40
- incomingPaths.push(path)
41
- return
42
- }
43
-
44
- // * 往下找
45
- curNode.incoming.nodes.forEach((nextNode) => {
46
- getIncomingPaths(nextNode, path.slice(), curNode)
47
- })
48
- }
49
-
50
- // * 同上逻辑
51
- const getOutgoingPaths = (curNode, path, prevNode?: BaseNodeModel) => {
52
- if (!curNode) return
53
- if (prevNode) {
54
- path.push(
55
- ...lf
56
- .getEdgeModels({
57
- sourceNodeId: prevNode?.id,
58
- targetNodeId: curNode.id,
59
- })
60
- .map((item) => item.id),
61
- )
62
- }
63
- if (path.includes(curNode.id)) {
64
- outgoingPaths.push(path)
65
- return
66
- }
67
-
68
- path.push(curNode.id)
69
-
70
- if (!curNode.outgoing.nodes.length) {
71
- outgoingPaths.push(path)
72
- return
73
- }
74
-
75
- curNode.outgoing.nodes.forEach((nextNode) => {
76
- getOutgoingPaths(nextNode, path.slice(), curNode)
77
- })
78
- }
79
-
80
- getIncomingPaths(node, [])
81
- getOutgoingPaths(node, [])
82
-
83
- return [...new Set([...incomingPaths.flat(), ...outgoingPaths.flat()])]
84
- }
85
-
86
- type IMode = 'single' | 'path' | 'neighbour'
87
-
88
- export class Highlight {
89
- lf: LogicFlow
90
- static pluginName = 'highlight'
91
- mode: IMode = 'path'
92
- enable = true
93
- tempStyles = {}
94
-
95
- constructor({ lf, options }) {
96
- const { mode = 'path', enable = true } = options
97
- this.lf = lf
98
- this.mode = mode
99
- this.enable = enable
100
- }
101
-
102
- public setMode(mode: IMode) {
103
- this.mode = mode
104
- }
105
-
106
- setEnable(enable: boolean) {
107
- this.enable = enable
108
- }
109
-
110
- private highlightSingle(id: string) {
111
- const model = this.lf.getModelById(id)
112
-
113
- if (model?.BaseType === 'node') {
114
- // 高亮节点
115
- model.updateStyles(this.tempStyles[id])
116
- } else if (model?.BaseType === 'edge') {
117
- // 高亮边及对应的节点
118
- model.updateStyles(this.tempStyles[id])
119
- model.sourceNode.updateStyles(this.tempStyles[model.sourceNode.id])
120
- model.targetNode.updateStyles(this.tempStyles[model.targetNode.id])
121
- }
122
- this.lf.emit('highlight:single', {
123
- data: model,
124
- })
125
- }
126
-
127
- private highlightNeighbours(id: string) {
128
- const model = this.lf.getModelById(id)
129
- let relateElements: (BaseNodeModel | BaseEdgeModel)[] = []
130
- if (model?.BaseType === 'node') {
131
- // 高亮节点
132
- model.updateStyles(this.tempStyles[id])
133
- const { nodes: incomingNodes, edges: incomingEdges } = model.incoming
134
- const { nodes: outgoingNodes, edges: outgoingEdges } = model.outgoing
135
- concat(incomingNodes, outgoingNodes).forEach((node) => {
136
- node.updateStyles(this.tempStyles[node.id])
137
- })
138
- concat(incomingEdges, outgoingEdges).forEach((edge) => {
139
- edge.updateStyles(this.tempStyles[edge.id])
140
- })
141
- relateElements = uniqBy(
142
- concat(
143
- relateElements,
144
- incomingNodes,
145
- outgoingNodes,
146
- incomingEdges,
147
- outgoingEdges,
148
- ),
149
- 'id',
150
- )
151
- } else if (model?.BaseType === 'edge') {
152
- // 高亮边及对应的节点
153
- model.updateStyles(this.tempStyles[id])
154
- model.sourceNode.updateStyles(this.tempStyles[model.sourceNode.id])
155
- model.targetNode.updateStyles(this.tempStyles[model.targetNode.id])
156
- relateElements = [model.sourceNode, model.targetNode]
157
- }
158
- this.lf.emit('highlight:neighbours', {
159
- data: model,
160
- relateElements,
161
- })
162
- }
163
-
164
- private highlightPath(id: string) {
165
- const path = getPath(id, this.lf)
166
- const relateElements: any[] = []
167
- path.forEach((_id) => {
168
- const elementModel = this.lf.getModelById(_id)
169
- // 高亮路径上所有的边和节点
170
- elementModel?.updateStyles(this.tempStyles[_id])
171
- relateElements.push(elementModel)
172
- })
173
- this.lf.emit('highlight:path', {
174
- data: this.lf.getModelById(id),
175
- relateElements,
176
- })
177
- }
178
-
179
- highlight(id: string, mode: IMode = this.mode) {
180
- if (!this.enable) return
181
- if (Object.keys(this.tempStyles).length) {
182
- this.restoreHighlight()
183
- }
184
-
185
- Object.values(this.lf.graphModel.modelsMap).forEach((item) => {
186
- // 所有节点样式都进行备份
187
- const oStyle =
188
- item.BaseType === 'node' ? item.getNodeStyle() : item.getEdgeStyle()
189
- this.tempStyles[item.id] = { ...oStyle }
190
-
191
- // 所有节点都设置透明度为0.1
192
- item.setStyles({ opacity: 0.1 })
193
- })
194
-
195
- const modeTrigger = {
196
- single: this.highlightSingle.bind(this),
197
- neighbour: this.highlightNeighbours.bind(this),
198
- path: this.highlightPath.bind(this),
199
- }
200
-
201
- modeTrigger[mode](id)
202
- }
203
-
204
- restoreHighlight() {
205
- // 恢复所有节点的样式
206
- if (!Object.keys(this.tempStyles).length) return
207
- Object.values(this.lf.graphModel.modelsMap).forEach((item) => {
208
- const oStyle = this.tempStyles[item.id] ?? {}
209
- item.updateStyles({ ...oStyle })
210
- })
211
-
212
- this.tempStyles = {}
213
- }
214
-
215
- render() {
216
- this.lf.on('node:mouseenter', ({ data }: any) => this.highlight(data.id))
217
- this.lf.on('edge:mouseenter', ({ data }: any) => this.highlight(data.id))
218
-
219
- this.lf.on('node:mouseleave', this.restoreHighlight.bind(this))
220
- this.lf.on('edge:mouseleave', this.restoreHighlight.bind(this))
221
- this.lf.on('history:change', this.restoreHighlight.bind(this))
222
- }
223
-
224
- destroy() {}
225
- }
226
-
227
- export default Highlight