@flowgram.ai/free-layout-core 0.1.13 → 0.1.15

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 (42) hide show
  1. package/dist/esm/{chunk-DE4324TR.js → chunk-IYUZVBAO.js} +1 -1
  2. package/dist/esm/chunk-IYUZVBAO.js.map +1 -0
  3. package/dist/esm/chunk-LJH3TSLZ.js +7 -0
  4. package/dist/esm/chunk-LJH3TSLZ.js.map +1 -0
  5. package/dist/esm/chunk-TQLT57GW.js +1 -0
  6. package/dist/esm/chunk-TQLT57GW.js.map +1 -0
  7. package/dist/esm/index.js +156 -60
  8. package/dist/esm/index.js.map +1 -1
  9. package/dist/esm/typings/index.js +10 -5
  10. package/dist/esm/typings/workflow-drag.js +2 -0
  11. package/dist/esm/typings/workflow-drag.js.map +1 -0
  12. package/dist/esm/typings/workflow-operation.js +8 -0
  13. package/dist/esm/typings/workflow-operation.js.map +1 -0
  14. package/dist/index.d.mts +121 -7
  15. package/dist/index.d.ts +121 -7
  16. package/dist/index.js +202 -105
  17. package/dist/index.js.map +1 -1
  18. package/dist/typings/index.d.mts +2 -1
  19. package/dist/typings/index.d.ts +2 -1
  20. package/dist/typings/index.js +7 -2
  21. package/dist/typings/index.js.map +1 -1
  22. package/dist/typings/workflow-drag.d.mts +8 -0
  23. package/dist/typings/workflow-drag.d.ts +8 -0
  24. package/dist/typings/workflow-drag.js +19 -0
  25. package/dist/typings/workflow-drag.js.map +1 -0
  26. package/dist/typings/workflow-json.d.mts +1 -1
  27. package/dist/typings/workflow-json.d.ts +1 -1
  28. package/dist/typings/workflow-line.d.mts +1 -1
  29. package/dist/typings/workflow-line.d.ts +1 -1
  30. package/dist/typings/workflow-node.d.mts +1 -1
  31. package/dist/typings/workflow-node.d.ts +1 -1
  32. package/dist/typings/workflow-node.js.map +1 -1
  33. package/dist/typings/workflow-operation.d.mts +24 -0
  34. package/dist/typings/workflow-operation.d.ts +24 -0
  35. package/dist/typings/workflow-operation.js +31 -0
  36. package/dist/typings/workflow-operation.js.map +1 -0
  37. package/dist/typings/workflow-registry.d.mts +1 -1
  38. package/dist/typings/workflow-registry.d.ts +1 -1
  39. package/dist/{workflow-line-entity-BJQBRDgJ.d.mts → workflow-line-entity-CF97dniV.d.mts} +90 -170
  40. package/dist/{workflow-line-entity-CEitdjhk.d.ts → workflow-line-entity-niuFXSbE.d.ts} +90 -170
  41. package/package.json +9 -9
  42. package/dist/esm/chunk-DE4324TR.js.map +0 -1
@@ -1,6 +1,9 @@
1
1
  import {
2
2
  URLParams
3
- } from "../chunk-DE4324TR.js";
3
+ } from "../chunk-IYUZVBAO.js";
4
+ import "../chunk-KNYZRMIO.js";
5
+ import "../chunk-NU6G5HF4.js";
6
+ import "../chunk-TQLT57GW.js";
4
7
  import "../chunk-CGOMTQ3G.js";
5
8
  import {
6
9
  WorkflowContentChangeType
@@ -9,14 +12,16 @@ import {
9
12
  LineColors,
10
13
  LineType
11
14
  } from "../chunk-PT4ZVDZZ.js";
12
- import "../chunk-EUXUH3YW.js";
13
15
  import "../chunk-DDJTYHXN.js";
14
- import "../chunk-KNYZRMIO.js";
15
- import "../chunk-NU6G5HF4.js";
16
+ import {
17
+ WorkflowOperationBaseService
18
+ } from "../chunk-LJH3TSLZ.js";
19
+ import "../chunk-EUXUH3YW.js";
16
20
  export {
17
21
  LineColors,
18
22
  LineType,
19
23
  URLParams,
20
- WorkflowContentChangeType
24
+ WorkflowContentChangeType,
25
+ WorkflowOperationBaseService
21
26
  };
22
27
  //# sourceMappingURL=index.js.map
@@ -0,0 +1,2 @@
1
+ import "../chunk-TQLT57GW.js";
2
+ //# sourceMappingURL=workflow-drag.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
@@ -0,0 +1,8 @@
1
+ import {
2
+ WorkflowOperationBaseService
3
+ } from "../chunk-LJH3TSLZ.js";
4
+ import "../chunk-EUXUH3YW.js";
5
+ export {
6
+ WorkflowOperationBaseService
7
+ };
8
+ //# sourceMappingURL=workflow-operation.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"sourcesContent":[],"mappings":"","names":[]}
package/dist/index.d.mts CHANGED
@@ -1,20 +1,21 @@
1
- import { PlaygroundConfigEntity, EntityData } from '@flowgram.ai/core';
1
+ import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData } from '@flowgram.ai/core';
2
2
  export { bindConfigEntity, useConfigEntity, useEntities, useEntityDataFromContext, useEntityFromContext, useListenEvents, usePlayground, usePlaygroundContainer, usePlaygroundContext, usePlaygroundLatest, useRefresh, useService } from '@flowgram.ai/core';
3
3
  import { NodeFormProps } from '@flowgram.ai/node';
4
- import { FlowNodeEntity } from '@flowgram.ai/document';
5
- import { W as WorkflowPortEntity, a as WorkflowDocument, b as WorkflowPorts, c as WorkflowPortType, d as WorkflowPort, e as WorkflowLineEntity, L as LineRenderType, f as WorkflowLineRenderContribution, g as LinePosition } from './workflow-line-entity-BJQBRDgJ.mjs';
6
- export { t as LINE_HOVER_DISTANCE, q as LineColor, r as LineColors, p as LineType, N as NodesDragEndEvent, C as NodesDragEvent, O as OnDragLineEnd, P as POINT_RADIUS, x as PORT_SIZE, i as WORKFLOW_LINE_ENTITY, A as WorkfloEntityHoverable, m as WorkflowContentChangeEvent, l as WorkflowContentChangeType, H as WorkflowDocumentOptions, I as WorkflowDocumentOptionsDefault, F as WorkflowDocumentProvider, E as WorkflowDragService, B as WorkflowHoverService, k as WorkflowJSON, v as WorkflowLineEntityOpts, w as WorkflowLineInfo, u as WorkflowLinePortInfo, s as WorkflowLineRenderContributionFactory, G as WorkflowLinesManager, o as WorkflowNodeJSON, n as WorkflowNodeMeta, y as WorkflowPortEntityOpts, z as WorkflowSelectService, j as domReactToBounds, h as getPortEntityId, D as onDragLineEndParams } from './workflow-line-entity-BJQBRDgJ.mjs';
4
+ import { FlowOperationBaseService, FlowNodeType, FlowOperationBaseServiceImpl, FlowNodeEntityOrId, FlowNodeEntity } from '@flowgram.ai/document';
5
+ import { W as WorkflowHoverService, a as WorkflowDocument, b as WorkflowLinesManager, c as WorkflowSelectService, d as WorkflowDocumentOptions, L as LineEventProps, N as NodesDragEvent, e as WorkflowNodeJSON, f as WorkflowPortEntity, g as WorkflowLineEntity, O as OnDragLineEnd, h as WorkflowPorts, i as WorkflowPortType, j as WorkflowPort, k as LineRenderType, l as WorkflowLineRenderContribution, m as LinePosition } from './workflow-line-entity-CF97dniV.mjs';
6
+ export { C as LINE_HOVER_DISTANCE, v as LineColor, w as LineColors, u as LineType, z as NodesDragEndEvent, y as NodesDragStartEvent, A as NodesDraggingEvent, P as POINT_RADIUS, G as PORT_SIZE, o as WORKFLOW_LINE_ENTITY, I as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, K as WorkflowDocumentOptionsDefault, J as WorkflowDocumentProvider, q as WorkflowJSON, E as WorkflowLineEntityOpts, F as WorkflowLineInfo, D as WorkflowLinePortInfo, x as WorkflowLineRenderContributionFactory, t as WorkflowNodeMeta, H as WorkflowPortEntityOpts, p as domReactToBounds, n as getPortEntityId, B as onDragLineEndParams } from './workflow-line-entity-CF97dniV.mjs';
7
7
  import { W as WorkflowNodeEntity } from './workflow-sub-canvas-DOVla1mw.mjs';
8
8
  export { a as WorkflowSubCanvas } from './workflow-sub-canvas-DOVla1mw.mjs';
9
9
  import * as _flowgram_ai_utils from '@flowgram.ai/utils';
10
- import { IPoint, Rectangle } from '@flowgram.ai/utils';
10
+ import { DisposableCollection, IPoint, Disposable, Rectangle } from '@flowgram.ai/utils';
11
11
  export { compose, composeAsync, delay } from '@flowgram.ai/utils';
12
12
  export { URLParams } from './typings/index.mjs';
13
+ import React$1 from 'react';
14
+ import { WorkflowOperationBaseService, NodePostionUpdateEvent } from './typings/workflow-operation.mjs';
13
15
  import { ContainerModule } from 'inversify';
14
16
  export { WorkflowEdgeJSON } from './typings/workflow-edge.mjs';
15
17
  export { WorkflowNodeFormMeta, WorkflowNodeRegistry, WorkflowNodeRenderProps } from './typings/workflow-registry.mjs';
16
18
  import '@flowgram.ai/form-core';
17
- import 'react';
18
19
 
19
20
  declare enum WorkflowCommands {
20
21
  DELETE_NODES = "DELETE_NODES",
@@ -26,6 +27,112 @@ declare enum WorkflowCommands {
26
27
  REDO = "REDO"
27
28
  }
28
29
 
30
+ declare class WorkflowDragService {
31
+ protected playgroundConfig: PlaygroundConfigEntity;
32
+ protected hoverService: WorkflowHoverService;
33
+ protected document: WorkflowDocument;
34
+ protected linesManager: WorkflowLinesManager;
35
+ protected commandService: CommandService;
36
+ protected selectService: WorkflowSelectService;
37
+ protected operationService: FlowOperationBaseService;
38
+ readonly options: WorkflowDocumentOptions;
39
+ private _onDragLineEventEmitter;
40
+ readonly onDragLineEventChange: _flowgram_ai_utils.Event<LineEventProps>;
41
+ isDragging: boolean;
42
+ private _nodesDragEmitter;
43
+ readonly onNodesDrag: _flowgram_ai_utils.Event<NodesDragEvent>;
44
+ protected _toDispose: DisposableCollection;
45
+ private _droppableTransforms;
46
+ private _dropNode?;
47
+ private posAdjusters;
48
+ private _onDragLineEndCallbacks;
49
+ init(): void;
50
+ dispose(): void;
51
+ /**
52
+ * 拖拽选中节点
53
+ * @param triggerEvent
54
+ */
55
+ startDragSelectedNodes(triggerEvent: MouseEvent | React$1.MouseEvent): Promise<boolean>;
56
+ /**
57
+ * 通过拖入卡片添加
58
+ * @param type
59
+ * @param event
60
+ * @param data 节点数据
61
+ */
62
+ dropCard(type: string, event: {
63
+ clientX: number;
64
+ clientY: number;
65
+ }, data?: Partial<WorkflowNodeJSON>, parent?: WorkflowNodeEntity): Promise<WorkflowNodeEntity | undefined>;
66
+ /**
67
+ * 拖拽卡片到画布
68
+ * 返回创建结果
69
+ * @param type
70
+ * @param event
71
+ */
72
+ startDragCard(type: string, event: React$1.MouseEvent, data: Partial<WorkflowNodeJSON>, cloneNode?: (e: PlaygroundDragEvent) => HTMLDivElement): Promise<WorkflowNodeEntity | undefined>;
73
+ /**
74
+ * 如果存在容器节点,且传入鼠标坐标,需要用容器的坐标减去传入的鼠标坐标
75
+ */
76
+ adjustSubNodePosition(subNodeType?: string, containerNode?: WorkflowNodeEntity, mousePos?: IPoint, resetEmptyPos?: boolean): IPoint;
77
+ /**
78
+ * 注册位置调整
79
+ */
80
+ registerPosAdjuster(adjuster: (params: {
81
+ selectedNodes: WorkflowNodeEntity[];
82
+ position: IPoint;
83
+ }) => IPoint): {
84
+ dispose: () => boolean;
85
+ };
86
+ /**
87
+ * 判断是否可以放置节点
88
+ */
89
+ canDropToNode(params: {
90
+ dragNodeType?: FlowNodeType;
91
+ dropNode?: WorkflowNodeEntity;
92
+ }): {
93
+ allowDrop: boolean;
94
+ message?: string;
95
+ dropNode?: WorkflowNodeEntity;
96
+ };
97
+ /**
98
+ * 获取拖拽偏移
99
+ */
100
+ private getDragPosOffset;
101
+ private updateDroppableTransforms;
102
+ /** 是否容器节点 */
103
+ private isContainer;
104
+ /**
105
+ * 获取节点整体位置
106
+ */
107
+ private getNodesPosition;
108
+ private nodeSelectable;
109
+ private updateDropNode;
110
+ private clearDrop;
111
+ private setLineColor;
112
+ private handleDragOnNode;
113
+ private childrenOfContainer;
114
+ /**
115
+ * 绘制线条
116
+ * @param opts
117
+ * @param event
118
+ */
119
+ startDrawingLine(fromPort: WorkflowPortEntity, event: {
120
+ clientX: number;
121
+ clientY: number;
122
+ }, originLine?: WorkflowLineEntity): Promise<{
123
+ dragSuccess?: boolean;
124
+ newLine?: WorkflowLineEntity;
125
+ }>;
126
+ /**
127
+ * 重新连接线条
128
+ * @param line
129
+ * @param e
130
+ */
131
+ resetLine(line: WorkflowLineEntity, e: MouseEvent): Promise<void>;
132
+ /** 线条拖拽结束 */
133
+ onDragLineEnd(callback: OnDragLineEnd): Disposable;
134
+ }
135
+
29
136
  type PositionMap = Record<string, IPoint>;
30
137
  /**
31
138
  * 重置布局服务
@@ -67,6 +174,13 @@ declare class WorkflowResetLayoutService {
67
174
  dispose(): void;
68
175
  }
69
176
 
177
+ declare class WorkflowOperationBaseServiceImpl extends FlowOperationBaseServiceImpl implements WorkflowOperationBaseService {
178
+ protected document: WorkflowDocument;
179
+ private onNodePostionUpdateEmitter;
180
+ readonly onNodePostionUpdate: _flowgram_ai_utils.Event<NodePostionUpdateEvent>;
181
+ updateNodePosition(nodeOrId: FlowNodeEntityOrId, position: IPoint): void;
182
+ }
183
+
70
184
  interface NodeRenderReturnType {
71
185
  /**
72
186
  * 当前节点
@@ -357,4 +471,4 @@ declare class WorkflowSimpleLineContribution implements WorkflowLineRenderContri
357
471
  private projectPointOnLine;
358
472
  }
359
473
 
360
- export { EditorCursorState, InteractiveType, LinePosition, LineRenderType, type NodeRenderReturnType, type PositionMap, type StraightData, WorkflowCommands, WorkflowDocument, WorkflowDocumentContainerModule, WorkflowLineEntity, WorkflowLineRenderContribution, WorkflowLineRenderData, type WorkflowLineRenderDataSchema, WorkflowNodeEntity, type WorkflowNodeLines, WorkflowNodeLinesData, WorkflowNodePortsData, WorkflowPort, WorkflowPortEntity, WorkflowPortType, WorkflowPorts, WorkflowResetLayoutService, WorkflowSimpleLineContribution, fitView, getAntiOverlapPosition, nanoid, useCurrentDomNode, useCurrentEntity, useNodeRender, usePlaygroundReadonlyState, useWorkflowDocument };
474
+ export { EditorCursorState, InteractiveType, LineEventProps, LinePosition, LineRenderType, NodePostionUpdateEvent, type NodeRenderReturnType, NodesDragEvent, OnDragLineEnd, type PositionMap, type StraightData, WorkflowCommands, WorkflowDocument, WorkflowDocumentContainerModule, WorkflowDocumentOptions, WorkflowDragService, WorkflowHoverService, WorkflowLineEntity, WorkflowLineRenderContribution, WorkflowLineRenderData, type WorkflowLineRenderDataSchema, WorkflowLinesManager, WorkflowNodeEntity, WorkflowNodeJSON, type WorkflowNodeLines, WorkflowNodeLinesData, WorkflowNodePortsData, WorkflowOperationBaseService, WorkflowOperationBaseServiceImpl, WorkflowPort, WorkflowPortEntity, WorkflowPortType, WorkflowPorts, WorkflowResetLayoutService, WorkflowSelectService, WorkflowSimpleLineContribution, fitView, getAntiOverlapPosition, nanoid, useCurrentDomNode, useCurrentEntity, useNodeRender, usePlaygroundReadonlyState, useWorkflowDocument };
package/dist/index.d.ts CHANGED
@@ -1,20 +1,21 @@
1
- import { PlaygroundConfigEntity, EntityData } from '@flowgram.ai/core';
1
+ import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData } from '@flowgram.ai/core';
2
2
  export { bindConfigEntity, useConfigEntity, useEntities, useEntityDataFromContext, useEntityFromContext, useListenEvents, usePlayground, usePlaygroundContainer, usePlaygroundContext, usePlaygroundLatest, useRefresh, useService } from '@flowgram.ai/core';
3
3
  import { NodeFormProps } from '@flowgram.ai/node';
4
- import { FlowNodeEntity } from '@flowgram.ai/document';
5
- import { W as WorkflowPortEntity, a as WorkflowDocument, b as WorkflowPorts, c as WorkflowPortType, d as WorkflowPort, e as WorkflowLineEntity, L as LineRenderType, f as WorkflowLineRenderContribution, g as LinePosition } from './workflow-line-entity-CEitdjhk.js';
6
- export { t as LINE_HOVER_DISTANCE, q as LineColor, r as LineColors, p as LineType, N as NodesDragEndEvent, C as NodesDragEvent, O as OnDragLineEnd, P as POINT_RADIUS, x as PORT_SIZE, i as WORKFLOW_LINE_ENTITY, A as WorkfloEntityHoverable, m as WorkflowContentChangeEvent, l as WorkflowContentChangeType, H as WorkflowDocumentOptions, I as WorkflowDocumentOptionsDefault, F as WorkflowDocumentProvider, E as WorkflowDragService, B as WorkflowHoverService, k as WorkflowJSON, v as WorkflowLineEntityOpts, w as WorkflowLineInfo, u as WorkflowLinePortInfo, s as WorkflowLineRenderContributionFactory, G as WorkflowLinesManager, o as WorkflowNodeJSON, n as WorkflowNodeMeta, y as WorkflowPortEntityOpts, z as WorkflowSelectService, j as domReactToBounds, h as getPortEntityId, D as onDragLineEndParams } from './workflow-line-entity-CEitdjhk.js';
4
+ import { FlowOperationBaseService, FlowNodeType, FlowOperationBaseServiceImpl, FlowNodeEntityOrId, FlowNodeEntity } from '@flowgram.ai/document';
5
+ import { W as WorkflowHoverService, a as WorkflowDocument, b as WorkflowLinesManager, c as WorkflowSelectService, d as WorkflowDocumentOptions, L as LineEventProps, N as NodesDragEvent, e as WorkflowNodeJSON, f as WorkflowPortEntity, g as WorkflowLineEntity, O as OnDragLineEnd, h as WorkflowPorts, i as WorkflowPortType, j as WorkflowPort, k as LineRenderType, l as WorkflowLineRenderContribution, m as LinePosition } from './workflow-line-entity-niuFXSbE.js';
6
+ export { C as LINE_HOVER_DISTANCE, v as LineColor, w as LineColors, u as LineType, z as NodesDragEndEvent, y as NodesDragStartEvent, A as NodesDraggingEvent, P as POINT_RADIUS, G as PORT_SIZE, o as WORKFLOW_LINE_ENTITY, I as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, K as WorkflowDocumentOptionsDefault, J as WorkflowDocumentProvider, q as WorkflowJSON, E as WorkflowLineEntityOpts, F as WorkflowLineInfo, D as WorkflowLinePortInfo, x as WorkflowLineRenderContributionFactory, t as WorkflowNodeMeta, H as WorkflowPortEntityOpts, p as domReactToBounds, n as getPortEntityId, B as onDragLineEndParams } from './workflow-line-entity-niuFXSbE.js';
7
7
  import { W as WorkflowNodeEntity } from './workflow-sub-canvas-DOVla1mw.js';
8
8
  export { a as WorkflowSubCanvas } from './workflow-sub-canvas-DOVla1mw.js';
9
9
  import * as _flowgram_ai_utils from '@flowgram.ai/utils';
10
- import { IPoint, Rectangle } from '@flowgram.ai/utils';
10
+ import { DisposableCollection, IPoint, Disposable, Rectangle } from '@flowgram.ai/utils';
11
11
  export { compose, composeAsync, delay } from '@flowgram.ai/utils';
12
12
  export { URLParams } from './typings/index.js';
13
+ import React$1 from 'react';
14
+ import { WorkflowOperationBaseService, NodePostionUpdateEvent } from './typings/workflow-operation.js';
13
15
  import { ContainerModule } from 'inversify';
14
16
  export { WorkflowEdgeJSON } from './typings/workflow-edge.js';
15
17
  export { WorkflowNodeFormMeta, WorkflowNodeRegistry, WorkflowNodeRenderProps } from './typings/workflow-registry.js';
16
18
  import '@flowgram.ai/form-core';
17
- import 'react';
18
19
 
19
20
  declare enum WorkflowCommands {
20
21
  DELETE_NODES = "DELETE_NODES",
@@ -26,6 +27,112 @@ declare enum WorkflowCommands {
26
27
  REDO = "REDO"
27
28
  }
28
29
 
30
+ declare class WorkflowDragService {
31
+ protected playgroundConfig: PlaygroundConfigEntity;
32
+ protected hoverService: WorkflowHoverService;
33
+ protected document: WorkflowDocument;
34
+ protected linesManager: WorkflowLinesManager;
35
+ protected commandService: CommandService;
36
+ protected selectService: WorkflowSelectService;
37
+ protected operationService: FlowOperationBaseService;
38
+ readonly options: WorkflowDocumentOptions;
39
+ private _onDragLineEventEmitter;
40
+ readonly onDragLineEventChange: _flowgram_ai_utils.Event<LineEventProps>;
41
+ isDragging: boolean;
42
+ private _nodesDragEmitter;
43
+ readonly onNodesDrag: _flowgram_ai_utils.Event<NodesDragEvent>;
44
+ protected _toDispose: DisposableCollection;
45
+ private _droppableTransforms;
46
+ private _dropNode?;
47
+ private posAdjusters;
48
+ private _onDragLineEndCallbacks;
49
+ init(): void;
50
+ dispose(): void;
51
+ /**
52
+ * 拖拽选中节点
53
+ * @param triggerEvent
54
+ */
55
+ startDragSelectedNodes(triggerEvent: MouseEvent | React$1.MouseEvent): Promise<boolean>;
56
+ /**
57
+ * 通过拖入卡片添加
58
+ * @param type
59
+ * @param event
60
+ * @param data 节点数据
61
+ */
62
+ dropCard(type: string, event: {
63
+ clientX: number;
64
+ clientY: number;
65
+ }, data?: Partial<WorkflowNodeJSON>, parent?: WorkflowNodeEntity): Promise<WorkflowNodeEntity | undefined>;
66
+ /**
67
+ * 拖拽卡片到画布
68
+ * 返回创建结果
69
+ * @param type
70
+ * @param event
71
+ */
72
+ startDragCard(type: string, event: React$1.MouseEvent, data: Partial<WorkflowNodeJSON>, cloneNode?: (e: PlaygroundDragEvent) => HTMLDivElement): Promise<WorkflowNodeEntity | undefined>;
73
+ /**
74
+ * 如果存在容器节点,且传入鼠标坐标,需要用容器的坐标减去传入的鼠标坐标
75
+ */
76
+ adjustSubNodePosition(subNodeType?: string, containerNode?: WorkflowNodeEntity, mousePos?: IPoint, resetEmptyPos?: boolean): IPoint;
77
+ /**
78
+ * 注册位置调整
79
+ */
80
+ registerPosAdjuster(adjuster: (params: {
81
+ selectedNodes: WorkflowNodeEntity[];
82
+ position: IPoint;
83
+ }) => IPoint): {
84
+ dispose: () => boolean;
85
+ };
86
+ /**
87
+ * 判断是否可以放置节点
88
+ */
89
+ canDropToNode(params: {
90
+ dragNodeType?: FlowNodeType;
91
+ dropNode?: WorkflowNodeEntity;
92
+ }): {
93
+ allowDrop: boolean;
94
+ message?: string;
95
+ dropNode?: WorkflowNodeEntity;
96
+ };
97
+ /**
98
+ * 获取拖拽偏移
99
+ */
100
+ private getDragPosOffset;
101
+ private updateDroppableTransforms;
102
+ /** 是否容器节点 */
103
+ private isContainer;
104
+ /**
105
+ * 获取节点整体位置
106
+ */
107
+ private getNodesPosition;
108
+ private nodeSelectable;
109
+ private updateDropNode;
110
+ private clearDrop;
111
+ private setLineColor;
112
+ private handleDragOnNode;
113
+ private childrenOfContainer;
114
+ /**
115
+ * 绘制线条
116
+ * @param opts
117
+ * @param event
118
+ */
119
+ startDrawingLine(fromPort: WorkflowPortEntity, event: {
120
+ clientX: number;
121
+ clientY: number;
122
+ }, originLine?: WorkflowLineEntity): Promise<{
123
+ dragSuccess?: boolean;
124
+ newLine?: WorkflowLineEntity;
125
+ }>;
126
+ /**
127
+ * 重新连接线条
128
+ * @param line
129
+ * @param e
130
+ */
131
+ resetLine(line: WorkflowLineEntity, e: MouseEvent): Promise<void>;
132
+ /** 线条拖拽结束 */
133
+ onDragLineEnd(callback: OnDragLineEnd): Disposable;
134
+ }
135
+
29
136
  type PositionMap = Record<string, IPoint>;
30
137
  /**
31
138
  * 重置布局服务
@@ -67,6 +174,13 @@ declare class WorkflowResetLayoutService {
67
174
  dispose(): void;
68
175
  }
69
176
 
177
+ declare class WorkflowOperationBaseServiceImpl extends FlowOperationBaseServiceImpl implements WorkflowOperationBaseService {
178
+ protected document: WorkflowDocument;
179
+ private onNodePostionUpdateEmitter;
180
+ readonly onNodePostionUpdate: _flowgram_ai_utils.Event<NodePostionUpdateEvent>;
181
+ updateNodePosition(nodeOrId: FlowNodeEntityOrId, position: IPoint): void;
182
+ }
183
+
70
184
  interface NodeRenderReturnType {
71
185
  /**
72
186
  * 当前节点
@@ -357,4 +471,4 @@ declare class WorkflowSimpleLineContribution implements WorkflowLineRenderContri
357
471
  private projectPointOnLine;
358
472
  }
359
473
 
360
- export { EditorCursorState, InteractiveType, LinePosition, LineRenderType, type NodeRenderReturnType, type PositionMap, type StraightData, WorkflowCommands, WorkflowDocument, WorkflowDocumentContainerModule, WorkflowLineEntity, WorkflowLineRenderContribution, WorkflowLineRenderData, type WorkflowLineRenderDataSchema, WorkflowNodeEntity, type WorkflowNodeLines, WorkflowNodeLinesData, WorkflowNodePortsData, WorkflowPort, WorkflowPortEntity, WorkflowPortType, WorkflowPorts, WorkflowResetLayoutService, WorkflowSimpleLineContribution, fitView, getAntiOverlapPosition, nanoid, useCurrentDomNode, useCurrentEntity, useNodeRender, usePlaygroundReadonlyState, useWorkflowDocument };
474
+ export { EditorCursorState, InteractiveType, LineEventProps, LinePosition, LineRenderType, NodePostionUpdateEvent, type NodeRenderReturnType, NodesDragEvent, OnDragLineEnd, type PositionMap, type StraightData, WorkflowCommands, WorkflowDocument, WorkflowDocumentContainerModule, WorkflowDocumentOptions, WorkflowDragService, WorkflowHoverService, WorkflowLineEntity, WorkflowLineRenderContribution, WorkflowLineRenderData, type WorkflowLineRenderDataSchema, WorkflowLinesManager, WorkflowNodeEntity, WorkflowNodeJSON, type WorkflowNodeLines, WorkflowNodeLinesData, WorkflowNodePortsData, WorkflowOperationBaseService, WorkflowOperationBaseServiceImpl, WorkflowPort, WorkflowPortEntity, WorkflowPortType, WorkflowPorts, WorkflowResetLayoutService, WorkflowSelectService, WorkflowSimpleLineContribution, fitView, getAntiOverlapPosition, nanoid, useCurrentDomNode, useCurrentEntity, useNodeRender, usePlaygroundReadonlyState, useWorkflowDocument };