@flowgram.ai/free-layout-core 0.1.0-alpha.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 (85) hide show
  1. package/dist/esm/chunk-242F2JCI.js +16 -0
  2. package/dist/esm/chunk-242F2JCI.js.map +1 -0
  3. package/dist/esm/chunk-CGOMTQ3G.js +1 -0
  4. package/dist/esm/chunk-CGOMTQ3G.js.map +1 -0
  5. package/dist/esm/chunk-CTGO4RKX.js +22 -0
  6. package/dist/esm/chunk-CTGO4RKX.js.map +1 -0
  7. package/dist/esm/chunk-DDJTYHXN.js +1 -0
  8. package/dist/esm/chunk-DDJTYHXN.js.map +1 -0
  9. package/dist/esm/chunk-EUXUH3YW.js +15 -0
  10. package/dist/esm/chunk-EUXUH3YW.js.map +1 -0
  11. package/dist/esm/chunk-IKQUOAWQ.js +7 -0
  12. package/dist/esm/chunk-IKQUOAWQ.js.map +1 -0
  13. package/dist/esm/chunk-KNYZRMIO.js +1 -0
  14. package/dist/esm/chunk-KNYZRMIO.js.map +1 -0
  15. package/dist/esm/chunk-NU6G5HF4.js +1 -0
  16. package/dist/esm/chunk-NU6G5HF4.js.map +1 -0
  17. package/dist/esm/chunk-O4WKIIW2.js +7 -0
  18. package/dist/esm/chunk-O4WKIIW2.js.map +1 -0
  19. package/dist/esm/chunk-TQLT57GW.js +1 -0
  20. package/dist/esm/chunk-TQLT57GW.js.map +1 -0
  21. package/dist/esm/index.js +3471 -0
  22. package/dist/esm/index.js.map +1 -0
  23. package/dist/esm/typings/index.js +27 -0
  24. package/dist/esm/typings/index.js.map +1 -0
  25. package/dist/esm/typings/workflow-drag.js +2 -0
  26. package/dist/esm/typings/workflow-drag.js.map +1 -0
  27. package/dist/esm/typings/workflow-edge.js +2 -0
  28. package/dist/esm/typings/workflow-edge.js.map +1 -0
  29. package/dist/esm/typings/workflow-json.js +8 -0
  30. package/dist/esm/typings/workflow-json.js.map +1 -0
  31. package/dist/esm/typings/workflow-line.js +10 -0
  32. package/dist/esm/typings/workflow-line.js.map +1 -0
  33. package/dist/esm/typings/workflow-node.js +2 -0
  34. package/dist/esm/typings/workflow-node.js.map +1 -0
  35. package/dist/esm/typings/workflow-operation.js +8 -0
  36. package/dist/esm/typings/workflow-operation.js.map +1 -0
  37. package/dist/esm/typings/workflow-registry.js +2 -0
  38. package/dist/esm/typings/workflow-registry.js.map +1 -0
  39. package/dist/esm/typings/workflow-sub-canvas.js +2 -0
  40. package/dist/esm/typings/workflow-sub-canvas.js.map +1 -0
  41. package/dist/index.d.mts +565 -0
  42. package/dist/index.d.ts +565 -0
  43. package/dist/index.js +3515 -0
  44. package/dist/index.js.map +1 -0
  45. package/dist/typings/index.d.mts +23 -0
  46. package/dist/typings/index.d.ts +23 -0
  47. package/dist/typings/index.js +73 -0
  48. package/dist/typings/index.js.map +1 -0
  49. package/dist/typings/workflow-drag.d.mts +8 -0
  50. package/dist/typings/workflow-drag.d.ts +8 -0
  51. package/dist/typings/workflow-drag.js +19 -0
  52. package/dist/typings/workflow-drag.js.map +1 -0
  53. package/dist/typings/workflow-edge.d.mts +15 -0
  54. package/dist/typings/workflow-edge.d.ts +15 -0
  55. package/dist/typings/workflow-edge.js +19 -0
  56. package/dist/typings/workflow-edge.js.map +1 -0
  57. package/dist/typings/workflow-json.d.mts +8 -0
  58. package/dist/typings/workflow-json.d.ts +8 -0
  59. package/dist/typings/workflow-json.js +40 -0
  60. package/dist/typings/workflow-json.js.map +1 -0
  61. package/dist/typings/workflow-line.d.mts +8 -0
  62. package/dist/typings/workflow-line.d.ts +8 -0
  63. package/dist/typings/workflow-line.js +47 -0
  64. package/dist/typings/workflow-line.js.map +1 -0
  65. package/dist/typings/workflow-node.d.mts +8 -0
  66. package/dist/typings/workflow-node.d.ts +8 -0
  67. package/dist/typings/workflow-node.js +19 -0
  68. package/dist/typings/workflow-node.js.map +1 -0
  69. package/dist/typings/workflow-operation.d.mts +29 -0
  70. package/dist/typings/workflow-operation.d.ts +29 -0
  71. package/dist/typings/workflow-operation.js +31 -0
  72. package/dist/typings/workflow-operation.js.map +1 -0
  73. package/dist/typings/workflow-registry.d.mts +30 -0
  74. package/dist/typings/workflow-registry.d.ts +30 -0
  75. package/dist/typings/workflow-registry.js +19 -0
  76. package/dist/typings/workflow-registry.js.map +1 -0
  77. package/dist/typings/workflow-sub-canvas.d.mts +2 -0
  78. package/dist/typings/workflow-sub-canvas.d.ts +2 -0
  79. package/dist/typings/workflow-sub-canvas.js +19 -0
  80. package/dist/typings/workflow-sub-canvas.js.map +1 -0
  81. package/dist/workflow-line-entity-B2J3fUO1.d.ts +790 -0
  82. package/dist/workflow-line-entity-CW8YIX-0.d.mts +790 -0
  83. package/dist/workflow-sub-canvas-IQzlYvPD.d.mts +25 -0
  84. package/dist/workflow-sub-canvas-IQzlYvPD.d.ts +25 -0
  85. package/package.json +77 -0
@@ -0,0 +1,565 @@
1
+ import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData } from '@flowgram.ai/core';
2
+ export { bindConfigEntity, useConfigEntity, useEntities, useEntityDataFromContext, useEntityFromContext, useListenEvents, usePlayground, usePlaygroundContainer, usePlaygroundContext, usePlaygroundLatest, useRefresh, useService } from '@flowgram.ai/core';
3
+ import { NodeFormProps } from '@flowgram.ai/node';
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-B2J3fUO1.js';
6
+ export { J as HoverPosition, 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, K as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, Q as WorkflowDocumentOptionsDefault, M as WorkflowDocumentProvider, I as WorkflowEntityHoverable, 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-B2J3fUO1.js';
7
+ import { W as WorkflowNodeEntity } from './workflow-sub-canvas-IQzlYvPD.js';
8
+ export { a as WorkflowSubCanvas } from './workflow-sub-canvas-IQzlYvPD.js';
9
+ import * as _flowgram_ai_utils from '@flowgram.ai/utils';
10
+ import { DisposableCollection, IPoint, Disposable, Rectangle } from '@flowgram.ai/utils';
11
+ export { compose, composeAsync, delay } from '@flowgram.ai/utils';
12
+ export { URLParams } from './typings/index.js';
13
+ import React$1 from 'react';
14
+ import { WorkflowOperationBaseService, NodePostionUpdateEvent } from './typings/workflow-operation.js';
15
+ import { ContainerModule } from 'inversify';
16
+ export { WorkflowEdgeJSON } from './typings/workflow-edge.js';
17
+ export { WorkflowNodeFormMeta, WorkflowNodeRegistry, WorkflowNodeRenderProps } from './typings/workflow-registry.js';
18
+ import '@flowgram.ai/form-core';
19
+
20
+ /**
21
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
22
+ * SPDX-License-Identifier: MIT
23
+ */
24
+ declare enum WorkflowCommands {
25
+ DELETE_NODES = "DELETE_NODES",
26
+ COPY_NODES = "COPY_NODES",
27
+ PASTE_NODES = "PASTE_NODES",
28
+ ZOOM_IN = "ZOOM_IN",
29
+ ZOOM_OUT = "ZOOM_OUT",
30
+ UNDO = "UNDO",
31
+ REDO = "REDO"
32
+ }
33
+
34
+ declare class WorkflowDragService {
35
+ protected playgroundConfig: PlaygroundConfigEntity;
36
+ protected hoverService: WorkflowHoverService;
37
+ protected document: WorkflowDocument;
38
+ protected linesManager: WorkflowLinesManager;
39
+ protected commandService: CommandService;
40
+ protected selectService: WorkflowSelectService;
41
+ protected operationService: FlowOperationBaseService;
42
+ readonly options: WorkflowDocumentOptions;
43
+ private _onDragLineEventEmitter;
44
+ readonly onDragLineEventChange: _flowgram_ai_utils.Event<LineEventProps>;
45
+ isDragging: boolean;
46
+ private _nodesDragEmitter;
47
+ readonly onNodesDrag: _flowgram_ai_utils.Event<NodesDragEvent>;
48
+ protected _toDispose: DisposableCollection;
49
+ private _droppableTransforms;
50
+ private _dropNode?;
51
+ private posAdjusters;
52
+ private _onDragLineEndCallbacks;
53
+ init(): void;
54
+ dispose(): void;
55
+ /**
56
+ * 拖拽选中节点
57
+ * @param triggerEvent
58
+ */
59
+ startDragSelectedNodes(triggerEvent: MouseEvent | React$1.MouseEvent): Promise<boolean>;
60
+ /**
61
+ * 通过拖入卡片添加
62
+ * @param type
63
+ * @param event
64
+ * @param data 节点数据
65
+ */
66
+ dropCard(type: string, event: {
67
+ clientX: number;
68
+ clientY: number;
69
+ }, data?: Partial<WorkflowNodeJSON>, parent?: WorkflowNodeEntity): Promise<WorkflowNodeEntity | undefined>;
70
+ /**
71
+ * 拖拽卡片到画布
72
+ * 返回创建结果
73
+ * @param type
74
+ * @param event
75
+ */
76
+ startDragCard(type: string, event: React$1.MouseEvent, data: Partial<WorkflowNodeJSON>, cloneNode?: (e: PlaygroundDragEvent) => HTMLDivElement): Promise<WorkflowNodeEntity | undefined>;
77
+ /**
78
+ * 如果存在容器节点,且传入鼠标坐标,需要用容器的坐标减去传入的鼠标坐标
79
+ */
80
+ adjustSubNodePosition(subNodeType?: string, containerNode?: WorkflowNodeEntity, mousePos?: IPoint): IPoint;
81
+ /**
82
+ * 注册位置调整
83
+ */
84
+ registerPosAdjuster(adjuster: (params: {
85
+ selectedNodes: WorkflowNodeEntity[];
86
+ position: IPoint;
87
+ }) => IPoint): {
88
+ dispose: () => boolean;
89
+ };
90
+ /**
91
+ * 判断是否可以放置节点
92
+ */
93
+ canDropToNode(params: {
94
+ dragNodeType?: FlowNodeType;
95
+ dragNode?: WorkflowNodeEntity;
96
+ dropNode?: WorkflowNodeEntity;
97
+ dropNodeType?: FlowNodeType;
98
+ }): {
99
+ allowDrop: boolean;
100
+ message?: string;
101
+ dropNode?: WorkflowNodeEntity;
102
+ };
103
+ /**
104
+ * 获取拖拽偏移
105
+ */
106
+ private getDragPosOffset;
107
+ private updateDroppableTransforms;
108
+ /** 是否容器节点 */
109
+ private isContainer;
110
+ /**
111
+ * 获取节点整体位置
112
+ */
113
+ private getNodesPosition;
114
+ private nodeSelectable;
115
+ private updateDropNode;
116
+ private clearDrop;
117
+ private setLineColor;
118
+ private handleDragOnNode;
119
+ private childrenOfContainer;
120
+ /**
121
+ * 绘制线条
122
+ * @param opts
123
+ * @param event
124
+ */
125
+ startDrawingLine(fromPort: WorkflowPortEntity, event: {
126
+ clientX: number;
127
+ clientY: number;
128
+ }, originLine?: WorkflowLineEntity): Promise<{
129
+ dragSuccess?: boolean;
130
+ newLine?: WorkflowLineEntity;
131
+ }>;
132
+ /**
133
+ * 重新连接线条
134
+ * @param line
135
+ * @param e
136
+ */
137
+ resetLine(line: WorkflowLineEntity, e: MouseEvent): Promise<void>;
138
+ /** 线条拖拽结束 */
139
+ onDragLineEnd(callback: OnDragLineEnd): Disposable;
140
+ /** 能否建立容器连线 */
141
+ private canBuildContainerLine;
142
+ /** 获取最近的 port */
143
+ private getNearestPort;
144
+ }
145
+
146
+ type PositionMap = Record<string, IPoint>;
147
+ /**
148
+ * 重置布局服务
149
+ */
150
+ declare class WorkflowResetLayoutService {
151
+ private _config;
152
+ private _document;
153
+ private _entityManager;
154
+ private _resetLayoutEmitter;
155
+ /**
156
+ * reset layout事件
157
+ */
158
+ readonly onResetLayout: _flowgram_ai_utils.Event<{
159
+ nodeIds: string[];
160
+ positionMap: PositionMap;
161
+ oldPositionMap: PositionMap;
162
+ }>;
163
+ private _toDispose;
164
+ /**
165
+ * 初始化
166
+ */
167
+ init(): void;
168
+ /**
169
+ * 触发重置布局
170
+ * @param nodeIds 节点id
171
+ * @param positionMap 新布局数据
172
+ * @param oldPositionMap 老布局数据
173
+ */
174
+ fireResetLayout(nodeIds: string[], positionMap: PositionMap, oldPositionMap: PositionMap): void;
175
+ /**
176
+ * 根据数据重新布局
177
+ * @param positionMap
178
+ * @returns
179
+ */
180
+ layoutToPositions(nodeIds: string[], positionMap: PositionMap): Promise<Record<string, IPoint>>;
181
+ /**
182
+ * 销毁
183
+ */
184
+ dispose(): void;
185
+ }
186
+
187
+ declare class WorkflowOperationBaseServiceImpl extends FlowOperationBaseServiceImpl implements WorkflowOperationBaseService {
188
+ protected document: WorkflowDocument;
189
+ private onNodePostionUpdateEmitter;
190
+ readonly onNodePostionUpdate: _flowgram_ai_utils.Event<NodePostionUpdateEvent>;
191
+ updateNodePosition(nodeOrId: FlowNodeEntityOrId, position: IPoint): void;
192
+ }
193
+
194
+ /**
195
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
196
+ * SPDX-License-Identifier: MIT
197
+ */
198
+
199
+ interface NodeRenderReturnType {
200
+ id: string;
201
+ type: string | number;
202
+ /**
203
+ * 当前节点
204
+ */
205
+ node: FlowNodeEntity;
206
+ /**
207
+ * 节点 data 数据
208
+ */
209
+ data: any;
210
+ /**
211
+ * 更新节点 data 数据
212
+ */
213
+ updateData: (newData: any) => void;
214
+ /**
215
+ * 节点选中
216
+ */
217
+ selected: boolean;
218
+ /**
219
+ * 节点激活
220
+ */
221
+ activated: boolean;
222
+ /**
223
+ * 节点展开
224
+ */
225
+ expanded: boolean;
226
+ /**
227
+ * 触发拖拽
228
+ * @param e
229
+ */
230
+ startDrag: (e: React.MouseEvent) => void;
231
+ /**
232
+ * 当前节点的点位信息
233
+ */
234
+ ports: WorkflowPortEntity[];
235
+ /**
236
+ * 删除节点
237
+ */
238
+ deleteNode: () => void;
239
+ /**
240
+ * 选中节点
241
+ * @param e
242
+ */
243
+ selectNode: (e: React.MouseEvent) => void;
244
+ /**
245
+ * 全局 readonly 状态
246
+ */
247
+ readonly: boolean;
248
+ /**
249
+ * 拖拽线条的目标 node id
250
+ */
251
+ linkingNodeId: string;
252
+ /**
253
+ * 节点 ref
254
+ */
255
+ nodeRef: React.MutableRefObject<HTMLDivElement | null>;
256
+ /**
257
+ * 节点 focus 事件
258
+ */
259
+ onFocus: () => void;
260
+ /**
261
+ * 节点 blur 事件
262
+ */
263
+ onBlur: () => void;
264
+ /**
265
+ * 渲染表单,只有节点引擎开启才能使用
266
+ */
267
+ form: NodeFormProps<any> | undefined;
268
+ /**
269
+ * 获取节点的扩展数据
270
+ */
271
+ getExtInfo<T = any>(): T;
272
+ /**
273
+ * 更新节点的扩展数据
274
+ * @param extInfo
275
+ */
276
+ updateExtInfo<T = any>(extInfo: T): void;
277
+ /**
278
+ * 展开/收起节点
279
+ * @param expanded
280
+ */
281
+ toggleExpand(): void;
282
+ }
283
+
284
+ /**
285
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
286
+ * SPDX-License-Identifier: MIT
287
+ */
288
+
289
+ declare function useNodeRender(nodeFromProps?: WorkflowNodeEntity): NodeRenderReturnType;
290
+
291
+ /**
292
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
293
+ * SPDX-License-Identifier: MIT
294
+ */
295
+ /**
296
+ * 获取当前渲染的 dom 节点
297
+ */
298
+ declare function useCurrentDomNode(): HTMLDivElement;
299
+
300
+ /**
301
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
302
+ * SPDX-License-Identifier: MIT
303
+ */
304
+
305
+ /**
306
+ * 获取当前节点
307
+ */
308
+ declare function useCurrentEntity(): WorkflowNodeEntity;
309
+
310
+ /**
311
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
312
+ * SPDX-License-Identifier: MIT
313
+ */
314
+
315
+ declare function useWorkflowDocument(): WorkflowDocument;
316
+
317
+ /**
318
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
319
+ * SPDX-License-Identifier: MIT
320
+ */
321
+ /**
322
+ * 获取 readonly 状态
323
+ */
324
+ declare function usePlaygroundReadonlyState(listenChange?: boolean): boolean;
325
+
326
+ /**
327
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
328
+ * SPDX-License-Identifier: MIT
329
+ */
330
+ declare function nanoid(n?: number): string;
331
+
332
+ /**
333
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
334
+ * SPDX-License-Identifier: MIT
335
+ */
336
+
337
+ declare const fitView: (doc: WorkflowDocument, playgroundConfig: PlaygroundConfigEntity, easing?: boolean) => Promise<void>;
338
+
339
+ /**
340
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
341
+ * SPDX-License-Identifier: MIT
342
+ */
343
+
344
+ /**
345
+ * 获取没有碰撞的位置
346
+ * 距离很小时,xy 各偏移 30
347
+ * @param position
348
+ */
349
+ declare function getAntiOverlapPosition(doc: WorkflowDocument, position: IPoint, containerNode?: WorkflowNodeEntity): IPoint;
350
+
351
+ /**
352
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
353
+ * SPDX-License-Identifier: MIT
354
+ */
355
+ declare enum EditorCursorState {
356
+ GRAB = "GRAB",
357
+ SELECT = "SELECT"
358
+ }
359
+ declare enum InteractiveType {
360
+ /** 鼠标优先交互模式 */
361
+ MOUSE = "MOUSE",
362
+ /** 触控板优先交互模式 */
363
+ PAD = "PAD"
364
+ }
365
+
366
+ /**
367
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
368
+ * SPDX-License-Identifier: MIT
369
+ */
370
+
371
+ /**
372
+ * 节点的点位信息
373
+ * portsData 只监听点位的数目和类型,不监听点位的 position 变化
374
+ */
375
+ declare class WorkflowNodePortsData extends EntityData {
376
+ static readonly type = "WorkflowNodePortsData";
377
+ readonly entity: WorkflowNodeEntity;
378
+ /** 静态的 ports 数据 */
379
+ protected _staticPorts: WorkflowPorts;
380
+ /** 存储 port 实体的 id,用于判断 port 是否存在 */
381
+ protected _portIDSet: Set<string>;
382
+ /** 上一次的 ports 数据,用于判断 ports 是否发生变化 */
383
+ protected _prePorts: WorkflowPorts;
384
+ constructor(entity: WorkflowNodeEntity);
385
+ getDefaultData(): any;
386
+ /**
387
+ * 更新静态的 ports 数据
388
+ */
389
+ updateStaticPorts(ports: WorkflowPorts): void;
390
+ /**
391
+ * 动态计算点位,通过 dom 的 data-port-key
392
+ */
393
+ updateDynamicPorts(): void;
394
+ /**
395
+ * 根据 key 获取 port 实体
396
+ */
397
+ getPortEntityByKey(portType: WorkflowPortType, portKey?: string | number): WorkflowPortEntity;
398
+ /**
399
+ * 更新 ports 数据
400
+ */
401
+ updatePorts(ports: WorkflowPorts): void;
402
+ /**
403
+ * 获取所有 port entities
404
+ */
405
+ get allPorts(): WorkflowPortEntity[];
406
+ /**
407
+ * 获取输入点位
408
+ */
409
+ get inputPorts(): WorkflowPortEntity[];
410
+ /**
411
+ * 获取输出点位
412
+ */
413
+ get outputPorts(): WorkflowPortEntity[];
414
+ /**
415
+ * 获取输入点位置
416
+ */
417
+ get inputPoints(): IPoint[];
418
+ /**
419
+ * 获取输出点位置
420
+ */
421
+ get outputPoints(): IPoint[];
422
+ /**
423
+ * 根据 key 获取 输入点位置
424
+ */
425
+ getInputPoint(key?: string | number): IPoint;
426
+ /**
427
+ * 根据 key 获取输出点位置
428
+ */
429
+ getOutputPoint(key?: string | number): IPoint;
430
+ /**
431
+ * 获取 port 实体
432
+ */
433
+ protected getPortEntity(portId: string): WorkflowPortEntity | undefined;
434
+ /**
435
+ * 拼接 port 实体的 id
436
+ */
437
+ protected getPortId(portType: WorkflowPortType, portKey?: string | number): string;
438
+ /**
439
+ * 创建 port 实体
440
+ */
441
+ protected createPortEntity(portInfo: WorkflowPort): WorkflowPortEntity;
442
+ /**
443
+ * 获取或创建 port 实体
444
+ */
445
+ protected getOrCreatePortEntity(portInfo: WorkflowPort): WorkflowPortEntity;
446
+ /**
447
+ * 更新 port 实体
448
+ */
449
+ protected updatePortEntity(portInfo: WorkflowPort): WorkflowPortEntity;
450
+ }
451
+
452
+ /**
453
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
454
+ * SPDX-License-Identifier: MIT
455
+ */
456
+
457
+ interface WorkflowNodeLines {
458
+ inputLines: WorkflowLineEntity[];
459
+ outputLines: WorkflowLineEntity[];
460
+ }
461
+ /**
462
+ * 节点的关联的线条
463
+ */
464
+ declare class WorkflowNodeLinesData extends EntityData<WorkflowNodeLines> {
465
+ static type: string;
466
+ entity: WorkflowNodeEntity;
467
+ getDefaultData(): WorkflowNodeLines;
468
+ constructor(entity: WorkflowNodeEntity);
469
+ /**
470
+ * 输入线条
471
+ */
472
+ get inputLines(): WorkflowLineEntity[];
473
+ /**
474
+ * 输出线条
475
+ */
476
+ get outputLines(): WorkflowLineEntity[];
477
+ /**
478
+ * 输入节点
479
+ */
480
+ get inputNodes(): WorkflowNodeEntity[];
481
+ /**
482
+ * 所有输入节点
483
+ */
484
+ get allInputNodes(): WorkflowNodeEntity[];
485
+ /**
486
+ * 输出节点
487
+ */
488
+ get outputNodes(): WorkflowNodeEntity[];
489
+ /**
490
+ * 输入输出节点
491
+ */
492
+ get allOutputNodes(): WorkflowNodeEntity[];
493
+ addLine(line: WorkflowLineEntity): void;
494
+ removeLine(line: WorkflowLineEntity): void;
495
+ }
496
+
497
+ /**
498
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
499
+ * SPDX-License-Identifier: MIT
500
+ */
501
+
502
+ interface WorkflowLineRenderDataSchema {
503
+ version: string;
504
+ contributions: Map<LineRenderType, WorkflowLineRenderContribution>;
505
+ position: LinePosition;
506
+ }
507
+ declare class WorkflowLineRenderData extends EntityData<WorkflowLineRenderDataSchema> {
508
+ static type: string;
509
+ entity: WorkflowLineEntity;
510
+ constructor(entity: WorkflowLineEntity);
511
+ getDefaultData(): WorkflowLineRenderDataSchema;
512
+ get renderVersion(): string;
513
+ get position(): LinePosition;
514
+ get path(): string;
515
+ calcDistance(pos: IPoint): number;
516
+ get bounds(): Rectangle;
517
+ /**
518
+ * 更新数据
519
+ * WARNING: 这个方法,必须在 requestAnimationFrame / useLayoutEffect 中调用,否则会引起浏览器强制重排
520
+ */
521
+ update(): void;
522
+ private get lineType();
523
+ /**
524
+ * 更新版本
525
+ * WARNING: 这个方法,必须在 requestAnimationFrame / useLayoutEffect 中调用,否则会引起浏览器强制重排
526
+ */
527
+ private updatePosition;
528
+ private get currentLine();
529
+ private syncContributions;
530
+ private registerContribution;
531
+ }
532
+
533
+ /**
534
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
535
+ * SPDX-License-Identifier: MIT
536
+ */
537
+
538
+ declare const WorkflowDocumentContainerModule: ContainerModule;
539
+
540
+ /**
541
+ * Copyright (c) 2025 Bytedance Ltd. and/or its affiliates
542
+ * SPDX-License-Identifier: MIT
543
+ */
544
+
545
+ interface StraightData {
546
+ points: IPoint[];
547
+ path: string;
548
+ bbox: Rectangle;
549
+ }
550
+ declare class WorkflowSimpleLineContribution implements WorkflowLineRenderContribution {
551
+ static type: string;
552
+ entity: WorkflowLineEntity;
553
+ constructor(entity: WorkflowLineEntity);
554
+ private data?;
555
+ get path(): string;
556
+ calcDistance(pos: IPoint): number;
557
+ get bounds(): Rectangle;
558
+ update(params: {
559
+ fromPos: IPoint;
560
+ toPos: IPoint;
561
+ }): void;
562
+ private projectPointOnLine;
563
+ }
564
+
565
+ 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 };