@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,163 +0,0 @@
1
- /**
2
- * 图片缓存, 已请求过的图片直接从缓存中获取
3
- */
4
- const imageCache: Record<string, string> = {}
5
-
6
- /**
7
- * 当获取图片失败时会返回失败信息,是 text/plain 类型的数据
8
- * @param str - 图片内容
9
- * @returns
10
- */
11
- export function isTextPlainBase64(str: string) {
12
- return str.startsWith('data:text/plain')
13
- }
14
-
15
- /**
16
- * 将网络图片转为 base64
17
- * @param url - 图片地址
18
- * @returns
19
- */
20
- export async function convertImageToBase64(url: string): Promise<string> {
21
- if (imageCache[url]) {
22
- return imageCache[url]
23
- }
24
- return new Promise((resolve, reject) => {
25
- try {
26
- fetch(url)
27
- .then((response) => response.blob())
28
- .then((blob) => {
29
- const reader = new FileReader()
30
- reader.onloadend = () => {
31
- resolve((imageCache[url] = reader.result as string))
32
- }
33
- reader.onerror = reject
34
- reader.readAsDataURL(blob)
35
- })
36
- .catch(() => {
37
- resolve((imageCache[url] = url))
38
- })
39
- } catch (error) {
40
- // 如果转换失败,后续大概率仍然会失败,因此直接缓存
41
- return (imageCache[url] = url)
42
- }
43
- })
44
- }
45
-
46
- /**
47
- * 使用 base64 的图片替换 img 标签的 src 或 image 标签的 href
48
- * @param node - html 节点或 svg 节点
49
- */
50
- export async function updateImageSrcOrHrefWithBase64Image(
51
- node: HTMLImageElement | SVGImageElement,
52
- attrName: 'src' | 'href',
53
- ) {
54
- try {
55
- const url = node.getAttribute(attrName) || ''
56
- // 已经是 base64 图片,不需要处理
57
- if (url.startsWith('data:')) {
58
- return
59
- }
60
- const base64Image = await convertImageToBase64(url)
61
- if (isTextPlainBase64(base64Image)) {
62
- return
63
- }
64
- node.setAttribute(attrName, base64Image)
65
- } catch (error) {
66
- console.error(error)
67
- }
68
- }
69
-
70
- /**
71
- * 使用 base64 的图片替换背景图片
72
- * @param node - html 节点
73
- * @param styleAttr - 样式属性名称
74
- */
75
- export async function updateBackgroundImageWithBase64Image(
76
- node: HTMLElement,
77
- url: string,
78
- ) {
79
- try {
80
- // 已经是 base64 图片,不需要处理
81
- if (url.startsWith('data:')) {
82
- return
83
- }
84
- const base64Image = await convertImageToBase64(url)
85
- if (isTextPlainBase64(base64Image)) {
86
- return
87
- }
88
- node.style.backgroundImage = `url(${base64Image})`
89
- } catch (error) {
90
- console.error(error)
91
- }
92
- }
93
-
94
- /**
95
- * 更新图片数据
96
- * @param node - 节点
97
- */
98
- export async function updateImageSource(node: HTMLElement | SVGElement) {
99
- const nodes = [node]
100
- let nodePtr
101
- const promises: any[] = []
102
- while (nodes.length) {
103
- nodePtr = nodes.shift()
104
- if (nodePtr.children.length) {
105
- nodes.push(...nodePtr.children)
106
- }
107
- if (nodePtr instanceof HTMLElement) {
108
- // 如果有 style 的 background, backgroundImage 属性中有 url(xxx), 尝试替换为 base64 图片
109
- const { background, backgroundImage } = nodePtr.style
110
- const backgroundUrlMatch = background.match(/url\(["']?(.*?)["']?\)/)
111
- if (backgroundUrlMatch && backgroundUrlMatch[1]) {
112
- const imageUrl = backgroundUrlMatch[1]
113
- promises.push(updateBackgroundImageWithBase64Image(nodePtr, imageUrl))
114
- }
115
- const backgroundImageUrlMatch = backgroundImage.match(
116
- /url\(["']?(.*?)["']?\)/,
117
- )
118
- if (backgroundImageUrlMatch && backgroundImageUrlMatch[1]) {
119
- const imageUrl = backgroundImageUrlMatch[1]
120
- promises.push(updateBackgroundImageWithBase64Image(nodePtr, imageUrl))
121
- }
122
- }
123
- // 如果有 img 和 image 标签,尝试将 src 和 href 替换为 base64 图片
124
- if (nodePtr instanceof HTMLImageElement) {
125
- promises.push(updateImageSrcOrHrefWithBase64Image(nodePtr, 'src'))
126
- } else if (nodePtr instanceof SVGImageElement) {
127
- promises.push(updateImageSrcOrHrefWithBase64Image(nodePtr, 'href'))
128
- }
129
- }
130
- await Promise.all(promises)
131
- }
132
-
133
- /**
134
- * 重新复制canvas 用于在不裁剪原canvas的基础上通过拉伸方式达到自定义宽高目的
135
- * @param originCanvas HTMLCanvasElement
136
- * @param targetWidth number
137
- * @param targetHeight number
138
- */
139
- export function copyCanvas(
140
- originCanvas: HTMLCanvasElement,
141
- targetWidth: number,
142
- targetHeight: number,
143
- ): HTMLCanvasElement {
144
- const newCanvas = document.createElement('canvas')
145
- newCanvas.width = targetWidth
146
- newCanvas.height = targetHeight
147
- const newCtx = newCanvas.getContext('2d')
148
- if (newCtx) {
149
- // 注意: 自定义宽高时,可能会拉伸图形,这时候padding也会被拉伸导致不准确
150
- newCtx.drawImage(
151
- originCanvas,
152
- 0,
153
- 0,
154
- originCanvas.width,
155
- originCanvas.height,
156
- 0,
157
- 0,
158
- targetWidth,
159
- targetHeight,
160
- )
161
- }
162
- return newCanvas
163
- }
@@ -1,212 +0,0 @@
1
- const TurboType = {
2
- SEQUENCE_FLOW: 1,
3
- START_EVENT: 2,
4
- END_EVENT: 3,
5
- USER_TASK: 4,
6
- // SERVICE_TASK = 5, 暂不支持
7
- EXCLUSIVE_GATEWAY: 6,
8
- }
9
-
10
- const TurboTypeMap = {
11
- 1: 'bpmn:sequenceFlow',
12
- 2: 'bpmn:startEvent',
13
- 3: 'bpmn:endEvent',
14
- 4: 'bpmn:userTask',
15
- 6: 'bpmn:exclusiveGateway',
16
- }
17
-
18
- // 转换Turbo识别的类型
19
- function getTurboType(type) {
20
- switch (type) {
21
- case 'bpmn:sequenceFlow':
22
- return TurboType.SEQUENCE_FLOW
23
- case 'bpmn:startEvent':
24
- return TurboType.START_EVENT
25
- case 'bpmn:endEvent':
26
- return TurboType.END_EVENT
27
- case 'bpmn:userTask':
28
- return TurboType.USER_TASK
29
- // case 'bpmn:serviceTask':
30
- // return TurboType.SERVICE_TASK;
31
- case 'bpmn:exclusiveGateway':
32
- return TurboType.EXCLUSIVE_GATEWAY
33
- default:
34
- return type
35
- }
36
- }
37
-
38
- // 将LogicFlow中的Node数据转换为Turbo元素数据
39
- function convertNodeToTurboElement(node) {
40
- const { id, type, x, y, text = '', properties } = node
41
- return {
42
- incoming: [],
43
- outgoing: [],
44
- dockers: [],
45
- type: getTurboType(type),
46
- properties: {
47
- ...properties,
48
- name: (text && text.value) || '',
49
- x,
50
- y,
51
- text,
52
- },
53
- key: id,
54
- }
55
- }
56
-
57
- // 将LogicFlow中的Edge数据转换为Turbo元素数据
58
- function convertEdgeToTurboElement(edge) {
59
- const {
60
- id,
61
- type,
62
- sourceNodeId,
63
- targetNodeId,
64
- startPoint,
65
- endPoint,
66
- pointsList,
67
- text = '',
68
- properties,
69
- } = edge
70
- return {
71
- incoming: [sourceNodeId],
72
- outgoing: [targetNodeId],
73
- type: getTurboType(type),
74
- dockers: [],
75
- properties: {
76
- ...properties,
77
- name: (text && text.value) || '',
78
- text,
79
- startPoint: JSON.stringify(startPoint),
80
- endPoint: JSON.stringify(endPoint),
81
- pointsList: JSON.stringify(pointsList),
82
- },
83
- key: id,
84
- }
85
- }
86
-
87
- // 将LogicFlow中数据转换为Turbo数据
88
- export function toTurboData(data) {
89
- const nodeMap = new Map()
90
- const turboData: any = {
91
- // TODO: 定义类型
92
- flowElementList: [],
93
- }
94
- data.nodes.forEach((node) => {
95
- const flowElement = convertNodeToTurboElement(node)
96
- turboData.flowElementList.push(flowElement)
97
- nodeMap.set(node.id, flowElement)
98
- })
99
- data.edges.forEach((edge) => {
100
- const flowElement = convertEdgeToTurboElement(edge)
101
- const sourceElement = nodeMap.get(edge.sourceNodeId)
102
- sourceElement.outgoing.push(flowElement.key)
103
- const targetElement = nodeMap.get(edge.targetNodeId)
104
- targetElement.incoming.push(flowElement.key)
105
- turboData.flowElementList.push(flowElement)
106
- })
107
- return turboData
108
- }
109
-
110
- // 将Turbo元素数据转换为LogicFlow中的Edge数据
111
- function convertFlowElementToEdge(element) {
112
- const { incoming, outgoing, properties, key, type } = element
113
- const { text, name, startPoint, endPoint, pointsList } = properties
114
- const edge: Record<string, any> = {
115
- id: key,
116
- type: TurboTypeMap[type],
117
- sourceNodeId: incoming[0],
118
- targetNodeId: outgoing[0],
119
- text: text || name,
120
- properties: {},
121
- }
122
- if (startPoint) {
123
- edge.startPoint = JSON.parse(startPoint)
124
- }
125
- if (endPoint) {
126
- edge.endPoint = JSON.parse(endPoint)
127
- }
128
- if (pointsList) {
129
- edge.pointsList = JSON.parse(pointsList)
130
- }
131
- // 这种转换方式,在自定义属性中不能与excludeProperties中的属性重名,否则将在转换过程中丢失
132
- const excludeProperties = ['startPoint', 'endPoint', 'pointsList', 'text']
133
- Object.keys(element.properties).forEach((property) => {
134
- if (excludeProperties.indexOf(property) === -1) {
135
- edge.properties[property] = element.properties[property]
136
- }
137
- })
138
- return edge
139
- }
140
-
141
- // 将Turbo元素数据转换为LogicFlow中的Node数据
142
- function convertFlowElementToNode(element) {
143
- const { properties, key, type, bounds } = element
144
- let { x, y } = properties
145
- const { text } = properties
146
- if (x === undefined) {
147
- const [{ x: x1, y: y1 }, { x: x2, y: y2 }] = bounds
148
- x = (x1 + x2) / 2
149
- y = (y1 + y2) / 2
150
- }
151
- const node = {
152
- id: key,
153
- type: TurboTypeMap[type],
154
- x,
155
- y,
156
- text,
157
- properties: {},
158
- }
159
- // 这种转换方式,在自定义属性中不能与excludeProperties中的属性重名,否则将在转换过程中丢失
160
- const excludeProperties = ['x', 'y', 'text']
161
- Object.keys(element.properties).forEach((property) => {
162
- if (excludeProperties.indexOf(property) === -1) {
163
- node.properties[property] = element.properties[property]
164
- }
165
- })
166
- return node
167
- }
168
-
169
- // 将Turbo元素数据转换为LogicFlow数据
170
- export function toLogicflowData(data) {
171
- const lfData: any = {
172
- // TODO: 定义类型
173
- nodes: [],
174
- edges: [],
175
- }
176
- const list = data.flowElementList
177
- list &&
178
- list.length > 0 &&
179
- list.forEach((element) => {
180
- if (element.type === TurboType.SEQUENCE_FLOW) {
181
- const edge = convertFlowElementToEdge(element)
182
- lfData.edges.push(edge)
183
- } else {
184
- const node = convertFlowElementToNode(element)
185
- lfData.nodes.push(node)
186
- }
187
- })
188
- return lfData
189
- }
190
-
191
- class TurboAdapter {
192
- static pluginName = 'turboAdapter'
193
-
194
- constructor({ lf }) {
195
- lf.adapterIn = this.adapterIn
196
- lf.adapterOut = this.adapterOut
197
- }
198
-
199
- adapterOut(logicflowData) {
200
- if (logicflowData) {
201
- return toTurboData(logicflowData)
202
- }
203
- }
204
-
205
- adapterIn(turboData) {
206
- if (turboData) {
207
- return toLogicflowData(turboData)
208
- }
209
- }
210
- }
211
-
212
- export default TurboAdapter