@logicflow/extension 2.0.0-beta.1 → 2.0.0-beta.11
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.
- package/.turbo/turbo-build.log +389 -34
- package/dist/index.css +63 -0
- package/dist/index.min.js +32 -2
- package/es/NodeResize/control/Control.d.ts +3 -3
- package/es/NodeResize/control/Control.js +13 -3
- package/es/NodeResize/control/Control.js.map +1 -1
- package/es/NodeResize/index.d.ts +4 -0
- package/es/NodeResize/index.js.map +1 -1
- package/es/NodeResize/node/DiamondResize.d.ts +1 -0
- package/es/NodeResize/node/DiamondResize.js +2 -1
- package/es/NodeResize/node/DiamondResize.js.map +1 -1
- package/es/NodeResize/node/EllipseResize.d.ts +1 -0
- package/es/NodeResize/node/EllipseResize.js +2 -1
- package/es/NodeResize/node/EllipseResize.js.map +1 -1
- package/es/NodeResize/node/HtmlResize.js +1 -1
- package/es/NodeResize/node/HtmlResize.js.map +1 -1
- package/es/NodeResize/node/RectResize.js +1 -1
- package/es/NodeResize/node/RectResize.js.map +1 -1
- package/es/bpmn/constant.d.ts +1 -1
- package/es/bpmn/constant.js +3 -0
- package/es/bpmn/constant.js.map +1 -1
- package/es/bpmn/index.d.ts +3 -6
- package/es/bpmn/index.js +5 -7
- package/es/bpmn/index.js.map +1 -1
- package/es/bpmn-elements/presets/Pool/Pool.d.ts +21 -1
- package/es/components/control/index.d.ts +4 -4
- package/es/components/control/index.js.map +1 -1
- package/es/components/highlight/index.d.ts +6 -4
- package/es/components/highlight/index.js +32 -5
- package/es/components/highlight/index.js.map +1 -1
- package/es/components/menu/index.d.ts +1 -1
- package/es/components/menu/index.js +9 -10
- package/es/components/menu/index.js.map +1 -1
- package/es/components/mini-map/index.d.ts +1 -1
- package/es/components/mini-map/index.js +2 -2
- package/es/components/mini-map/index.js.map +1 -1
- package/es/components/selection-select/index.d.ts +1 -1
- package/es/components/selection-select/index.js +10 -6
- package/es/components/selection-select/index.js.map +1 -1
- package/es/dynamic-group/index.d.ts +106 -0
- package/es/dynamic-group/index.js +536 -0
- package/es/dynamic-group/index.js.map +1 -0
- package/es/dynamic-group/model.d.ts +135 -0
- package/es/dynamic-group/model.js +413 -0
- package/es/dynamic-group/model.js.map +1 -0
- package/es/dynamic-group/node.d.ts +16 -0
- package/es/dynamic-group/node.js +143 -0
- package/es/dynamic-group/node.js.map +1 -0
- package/es/dynamic-group/utils.d.ts +17 -0
- package/es/dynamic-group/utils.js +27 -0
- package/es/dynamic-group/utils.js.map +1 -0
- package/es/index.css +63 -0
- package/es/index.d.ts +16 -8
- package/es/index.js +24 -8
- package/es/index.js.map +1 -1
- package/es/insert-node-in-polyline/index.js +3 -3
- package/es/insert-node-in-polyline/index.js.map +1 -1
- package/es/materials/group/GroupNode.d.ts +6 -10
- package/es/materials/group/GroupNode.js +8 -6
- package/es/materials/group/GroupNode.js.map +1 -1
- package/es/materials/group/index.d.ts +5 -5
- package/es/materials/group/index.js +25 -26
- package/es/materials/group/index.js.map +1 -1
- package/es/materials/node-selection/index.d.ts +6 -1
- package/es/materials/node-selection/index.js +64 -56
- package/es/materials/node-selection/index.js.map +1 -1
- package/es/mindmap/index.d.ts +2 -2
- package/es/style/index.css +63 -0
- package/es/style/index.less +73 -0
- package/es/style/raw.d.ts +1 -1
- package/es/style/raw.js +1 -1
- package/es/style/raw.js.map +1 -1
- package/es/tools/flow-path/index.js +0 -1
- package/es/tools/flow-path/index.js.map +1 -1
- package/es/tools/label/Label.d.ts +30 -0
- package/es/tools/label/Label.js +241 -0
- package/es/tools/label/Label.js.map +1 -0
- package/es/tools/label/LabelModel.d.ts +26 -0
- package/es/tools/label/LabelModel.js +86 -0
- package/es/tools/label/LabelModel.js.map +1 -0
- package/es/tools/label/LabelOverlay.d.ts +28 -0
- package/es/tools/label/LabelOverlay.js +161 -0
- package/es/tools/label/LabelOverlay.js.map +1 -0
- package/es/tools/label/algorithm.d.ts +16 -0
- package/es/tools/label/algorithm.js +27 -0
- package/es/tools/label/algorithm.js.map +1 -0
- package/es/tools/label/index.d.ts +59 -0
- package/es/tools/label/index.js +292 -0
- package/es/tools/label/index.js.map +1 -0
- package/es/tools/label/mediumEditor.d.ts +17 -0
- package/es/tools/label/mediumEditor.js +92 -0
- package/es/tools/label/mediumEditor.js.map +1 -0
- package/es/tools/label/utils.d.ts +64 -0
- package/es/tools/label/utils.js +336 -0
- package/es/tools/label/utils.js.map +1 -0
- package/es/tools/snapshot/index.d.ts +107 -11
- package/es/tools/snapshot/index.js +366 -149
- package/es/tools/snapshot/index.js.map +1 -1
- package/es/tools/snapshot/utils.d.ts +35 -0
- package/es/tools/snapshot/utils.js +238 -0
- package/es/tools/snapshot/utils.js.map +1 -0
- package/lib/NodeResize/control/Control.d.ts +3 -3
- package/lib/NodeResize/control/Control.js +13 -3
- package/lib/NodeResize/control/Control.js.map +1 -1
- package/lib/NodeResize/index.d.ts +4 -0
- package/lib/NodeResize/index.js.map +1 -1
- package/lib/NodeResize/node/DiamondResize.d.ts +1 -0
- package/lib/NodeResize/node/DiamondResize.js +2 -1
- package/lib/NodeResize/node/DiamondResize.js.map +1 -1
- package/lib/NodeResize/node/EllipseResize.d.ts +1 -0
- package/lib/NodeResize/node/EllipseResize.js +2 -1
- package/lib/NodeResize/node/EllipseResize.js.map +1 -1
- package/lib/NodeResize/node/HtmlResize.js +1 -1
- package/lib/NodeResize/node/HtmlResize.js.map +1 -1
- package/lib/NodeResize/node/RectResize.js +1 -1
- package/lib/NodeResize/node/RectResize.js.map +1 -1
- package/lib/bpmn/constant.d.ts +1 -1
- package/lib/bpmn/constant.js +3 -0
- package/lib/bpmn/constant.js.map +1 -1
- package/lib/bpmn/index.d.ts +3 -6
- package/lib/bpmn/index.js +5 -7
- package/lib/bpmn/index.js.map +1 -1
- package/lib/bpmn-elements/presets/Pool/Pool.d.ts +21 -1
- package/lib/components/control/index.d.ts +4 -4
- package/lib/components/control/index.js.map +1 -1
- package/lib/components/highlight/index.d.ts +6 -4
- package/lib/components/highlight/index.js +32 -5
- package/lib/components/highlight/index.js.map +1 -1
- package/lib/components/menu/index.d.ts +1 -1
- package/lib/components/menu/index.js +9 -10
- package/lib/components/menu/index.js.map +1 -1
- package/lib/components/mini-map/index.d.ts +1 -1
- package/lib/components/mini-map/index.js +2 -2
- package/lib/components/mini-map/index.js.map +1 -1
- package/lib/components/selection-select/index.d.ts +1 -1
- package/lib/components/selection-select/index.js +10 -6
- package/lib/components/selection-select/index.js.map +1 -1
- package/lib/dynamic-group/index.d.ts +106 -0
- package/lib/dynamic-group/index.js +553 -0
- package/lib/dynamic-group/index.js.map +1 -0
- package/lib/dynamic-group/model.d.ts +135 -0
- package/lib/dynamic-group/model.js +416 -0
- package/lib/dynamic-group/model.js.map +1 -0
- package/lib/dynamic-group/node.d.ts +16 -0
- package/lib/dynamic-group/node.js +146 -0
- package/lib/dynamic-group/node.js.map +1 -0
- package/lib/dynamic-group/utils.d.ts +17 -0
- package/lib/dynamic-group/utils.js +32 -0
- package/lib/dynamic-group/utils.js.map +1 -0
- package/lib/index.css +63 -0
- package/lib/index.d.ts +16 -8
- package/lib/index.js +24 -8
- package/lib/index.js.map +1 -1
- package/lib/insert-node-in-polyline/index.js +2 -2
- package/lib/insert-node-in-polyline/index.js.map +1 -1
- package/lib/materials/group/GroupNode.d.ts +6 -10
- package/lib/materials/group/GroupNode.js +8 -6
- package/lib/materials/group/GroupNode.js.map +1 -1
- package/lib/materials/group/index.d.ts +5 -5
- package/lib/materials/group/index.js +24 -25
- package/lib/materials/group/index.js.map +1 -1
- package/lib/materials/node-selection/index.d.ts +6 -1
- package/lib/materials/node-selection/index.js +63 -55
- package/lib/materials/node-selection/index.js.map +1 -1
- package/lib/mindmap/index.d.ts +2 -2
- package/lib/style/index.css +63 -0
- package/lib/style/index.less +73 -0
- package/lib/style/raw.d.ts +1 -1
- package/lib/style/raw.js +1 -1
- package/lib/style/raw.js.map +1 -1
- package/lib/tools/flow-path/index.js +0 -1
- package/lib/tools/flow-path/index.js.map +1 -1
- package/lib/tools/label/Label.d.ts +30 -0
- package/lib/tools/label/Label.js +247 -0
- package/lib/tools/label/Label.js.map +1 -0
- package/lib/tools/label/LabelModel.d.ts +26 -0
- package/lib/tools/label/LabelModel.js +89 -0
- package/lib/tools/label/LabelModel.js.map +1 -0
- package/lib/tools/label/LabelOverlay.d.ts +28 -0
- package/lib/tools/label/LabelOverlay.js +167 -0
- package/lib/tools/label/LabelOverlay.js.map +1 -0
- package/lib/tools/label/algorithm.d.ts +16 -0
- package/lib/tools/label/algorithm.js +32 -0
- package/lib/tools/label/algorithm.js.map +1 -0
- package/lib/tools/label/index.d.ts +59 -0
- package/lib/tools/label/index.js +298 -0
- package/lib/tools/label/index.js.map +1 -0
- package/lib/tools/label/mediumEditor.d.ts +17 -0
- package/lib/tools/label/mediumEditor.js +98 -0
- package/lib/tools/label/mediumEditor.js.map +1 -0
- package/lib/tools/label/utils.d.ts +64 -0
- package/lib/tools/label/utils.js +349 -0
- package/lib/tools/label/utils.js.map +1 -0
- package/lib/tools/snapshot/index.d.ts +107 -11
- package/lib/tools/snapshot/index.js +366 -149
- package/lib/tools/snapshot/index.js.map +1 -1
- package/lib/tools/snapshot/utils.d.ts +35 -0
- package/lib/tools/snapshot/utils.js +247 -0
- package/lib/tools/snapshot/utils.js.map +1 -0
- package/package.json +9 -3
- package/rollup.config.js +1 -1
- package/src/NodeResize/control/Control.tsx +13 -3
- package/src/NodeResize/index.ts +4 -0
- package/src/NodeResize/node/DiamondResize.tsx +2 -1
- package/src/NodeResize/node/EllipseResize.tsx +2 -1
- package/src/NodeResize/node/HtmlResize.tsx +1 -1
- package/src/NodeResize/node/RectResize.tsx +1 -1
- package/src/bpmn/constant.ts +4 -1
- package/src/bpmn/index.ts +7 -4
- package/src/bpmn-elements-adapter/README.md +1 -3
- package/src/components/control/index.ts +4 -4
- package/src/components/highlight/index.ts +33 -6
- package/src/components/menu/index.ts +16 -13
- package/src/components/mini-map/index.ts +3 -3
- package/src/components/selection-select/index.ts +16 -8
- package/src/dynamic-group/index.ts +609 -0
- package/src/dynamic-group/model.ts +503 -0
- package/src/dynamic-group/node.ts +140 -0
- package/src/dynamic-group/utils.ts +33 -0
- package/src/index.ts +30 -8
- package/src/insert-node-in-polyline/index.ts +3 -3
- package/src/materials/group/GroupNode.ts +12 -12
- package/src/materials/group/index.ts +40 -40
- package/src/materials/node-selection/index.ts +78 -70
- package/src/style/index.less +73 -0
- package/src/style/raw.ts +64 -1
- package/src/tools/flow-path/index.ts +0 -1
- package/src/tools/label/Label.tsx +297 -0
- package/src/tools/label/LabelModel.ts +82 -0
- package/src/tools/label/LabelOverlay.tsx +159 -0
- package/src/tools/label/algorithm.ts +42 -0
- package/src/tools/label/index.ts +401 -0
- package/src/tools/label/mediumEditor.ts +94 -0
- package/src/tools/label/utils.ts +395 -0
- package/src/tools/snapshot/README.md +141 -5
- package/src/tools/snapshot/index.ts +288 -101
- package/src/tools/snapshot/utils.ts +163 -0
|
@@ -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:
|
|
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 }
|
|
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 }
|
|
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 }
|
|
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 }
|
|
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.
|
|
180
|
+
constructor({ lf, LogicFlow, options }: LogicFlow.IExtensionProps) {
|
|
181
181
|
this.lf = lf
|
|
182
182
|
this.LFCtor = LogicFlow
|
|
183
|
-
if (options
|
|
184
|
-
this.setOption(options
|
|
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
|
|
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.
|
|
22
|
+
constructor({ lf }: LogicFlow.IExtensionProps) {
|
|
19
23
|
this.lf = lf
|
|
20
24
|
// 初始化isDefaultStopMoveGraph取值
|
|
21
25
|
const { stopMoveGraph } = lf.getEditConfig()
|
|
@@ -145,10 +149,10 @@ export class SelectionSelect {
|
|
|
145
149
|
const { x: x1, y: y1 } = this.endPoint
|
|
146
150
|
// 返回框选范围,左上角和右下角的坐标
|
|
147
151
|
const lt: PointTuple = [Math.min(x, x1), Math.min(y, y1)]
|
|
148
|
-
const
|
|
152
|
+
const rb: PointTuple = [Math.max(x, x1), Math.max(y, y1)]
|
|
149
153
|
this.lf.emit('selection:selected-area', {
|
|
150
154
|
topLeft: lt,
|
|
151
|
-
bottomRight:
|
|
155
|
+
bottomRight: rb,
|
|
152
156
|
})
|
|
153
157
|
// 选区太小的情况就忽略
|
|
154
158
|
if (Math.abs(x1 - x) < 10 && Math.abs(y1 - y) < 10) {
|
|
@@ -156,19 +160,23 @@ export class SelectionSelect {
|
|
|
156
160
|
}
|
|
157
161
|
const elements = this.lf.graphModel.getAreaElement(
|
|
158
162
|
lt,
|
|
159
|
-
|
|
163
|
+
rb,
|
|
160
164
|
this.isWholeEdge,
|
|
161
165
|
this.isWholeNode,
|
|
162
166
|
true,
|
|
163
167
|
)
|
|
164
|
-
const {
|
|
168
|
+
const { dynamicGroup } = this.lf.graphModel
|
|
165
169
|
elements.forEach((element) => {
|
|
166
170
|
// 如果节点属于分组,则不不选中节点
|
|
167
|
-
if (!
|
|
171
|
+
if (!dynamicGroup || !dynamicGroup.getGroupByNodeId(element.id)) {
|
|
168
172
|
this.lf.selectElementById(element.id, true)
|
|
169
173
|
}
|
|
170
174
|
})
|
|
171
|
-
this.lf.emit('selection:selected',
|
|
175
|
+
this.lf.emit('selection:selected', {
|
|
176
|
+
elements,
|
|
177
|
+
leftTopPoint: lt,
|
|
178
|
+
rightBottomPoint: rb,
|
|
179
|
+
})
|
|
172
180
|
}
|
|
173
181
|
}
|
|
174
182
|
|