@flowgram.ai/free-layout-core 0.1.8 → 0.1.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.
package/dist/index.d.mts CHANGED
@@ -1,20 +1,20 @@
1
- import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData } from '@flowgram.ai/core';
1
+ import { PlaygroundConfigEntity, 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 { FlowOperationBaseService, FlowNodeEntity } from '@flowgram.ai/document';
5
- import { W as WorkflowHoverService, a as WorkflowDocument, b as WorkflowLinesManager, c as WorkflowSelectService, d as WorkflowNodeJSON, e as WorkflowPortEntity, f as WorkflowLineEntity, g as WorkflowPorts, h as WorkflowPortType, i as WorkflowPort, L as LineRenderType, j as WorkflowLineRenderContribution, k as LinePosition } from './workflow-line-entity-DZGrnBuq.mjs';
6
- export { w as LINE_HOVER_DISTANCE, t as LineColor, u as LineColors, s as LineType, P as POINT_RADIUS, A as PORT_SIZE, m as WORKFLOW_LINE_ENTITY, C as WorkfloEntityHoverable, q as WorkflowContentChangeEvent, p as WorkflowContentChangeType, E as WorkflowDocumentOptions, F as WorkflowDocumentOptionsDefault, D as WorkflowDocumentProvider, o as WorkflowJSON, y as WorkflowLineEntityOpts, z as WorkflowLineInfo, x as WorkflowLinePortInfo, v as WorkflowLineRenderContributionFactory, r as WorkflowNodeMeta, B as WorkflowPortEntityOpts, n as domReactToBounds, l as getPortEntityId } from './workflow-line-entity-DZGrnBuq.mjs';
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';
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 { DisposableCollection, IPoint, Disposable, PositionSchema, Rectangle } from '@flowgram.ai/utils';
10
+ import { IPoint, 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
13
  import { ContainerModule } from 'inversify';
15
14
  export { WorkflowEdgeJSON } from './typings/workflow-edge.mjs';
16
15
  export { WorkflowNodeFormMeta, WorkflowNodeRegistry, WorkflowNodeRenderProps } from './typings/workflow-registry.mjs';
17
16
  import '@flowgram.ai/form-core';
17
+ import 'react';
18
18
 
19
19
  declare enum WorkflowCommands {
20
20
  DELETE_NODES = "DELETE_NODES",
@@ -26,121 +26,6 @@ declare enum WorkflowCommands {
26
26
  REDO = "REDO"
27
27
  }
28
28
 
29
- interface LineEventProps {
30
- type: 'onDrag' | 'onDragEnd';
31
- onDragNodeId?: string;
32
- event?: MouseEvent;
33
- }
34
- interface INodesDragEvent {
35
- type: string;
36
- nodes: FlowNodeEntity[];
37
- startPositions: IPoint[];
38
- altKey: boolean;
39
- }
40
- interface NodesDragEndEvent extends INodesDragEvent {
41
- type: 'onDragEnd';
42
- }
43
- type NodesDragEvent = NodesDragEndEvent;
44
- type OnDragNodeEnd = (params: {
45
- fromPort: WorkflowPortEntity;
46
- toPort?: WorkflowPortEntity;
47
- mousePos: PositionSchema;
48
- line?: WorkflowLineEntity;
49
- originLine?: WorkflowLineEntity;
50
- event: PlaygroundDragEvent;
51
- }) => Promise<void>;
52
- declare class WorkflowDragService {
53
- protected playgroundConfig: PlaygroundConfigEntity;
54
- protected hoverService: WorkflowHoverService;
55
- protected document: WorkflowDocument;
56
- protected linesManager: WorkflowLinesManager;
57
- protected commandService: CommandService;
58
- protected selectService: WorkflowSelectService;
59
- protected operationService: FlowOperationBaseService;
60
- private _onDragLineEventEmitter;
61
- readonly onDragLineEventChange: _flowgram_ai_utils.Event<LineEventProps>;
62
- isDragging: boolean;
63
- private _nodesDragEmitter;
64
- readonly onNodesDrag: _flowgram_ai_utils.Event<NodesDragEndEvent>;
65
- protected _toDispose: DisposableCollection;
66
- private _droppableTransforms;
67
- private _dropNode?;
68
- private posAdjusters;
69
- private _onDragLineEndCallbacks;
70
- init(): void;
71
- dispose(): void;
72
- /**
73
- * 拖拽选中节点
74
- * @param event
75
- */
76
- startDragSelectedNodes(event: MouseEvent | React$1.MouseEvent): Promise<boolean>;
77
- /**
78
- * 通过拖入卡片添加
79
- * @param type
80
- * @param event
81
- * @param data 节点数据
82
- */
83
- dropCard(type: string, event: {
84
- clientX: number;
85
- clientY: number;
86
- }, data?: Partial<WorkflowNodeJSON>, parent?: WorkflowNodeEntity): Promise<WorkflowNodeEntity | undefined>;
87
- /**
88
- * 拖拽卡片到画布
89
- * 返回创建结果
90
- * @param type
91
- * @param event
92
- */
93
- startDragCard(type: string, event: React$1.MouseEvent, data: Partial<WorkflowNodeJSON>, cloneNode?: (e: PlaygroundDragEvent) => HTMLDivElement): Promise<WorkflowNodeEntity | undefined>;
94
- /**
95
- * 如果存在容器节点,且传入鼠标坐标,需要用容器的坐标减去传入的鼠标坐标
96
- */
97
- adjustSubNodePosition(subNodeType?: string, containerNode?: WorkflowNodeEntity, mousePos?: IPoint, resetEmptyPos?: boolean): IPoint;
98
- /**
99
- * 注册位置调整
100
- */
101
- registerPosAdjuster(adjuster: (params: {
102
- selectedNodes: WorkflowNodeEntity[];
103
- position: IPoint;
104
- }) => IPoint): {
105
- dispose: () => boolean;
106
- };
107
- /**
108
- * 获取拖拽偏移
109
- */
110
- private getDragPosOffset;
111
- private updateDroppableTransforms;
112
- /**
113
- * 获取节点整体位置
114
- */
115
- private getNodesPosition;
116
- private nodeSelectable;
117
- private updateDropNode;
118
- private clearDrop;
119
- private setLineColor;
120
- private handleDragOnNode;
121
- private childrenOfContainer;
122
- /**
123
- * 绘制线条
124
- * @param opts
125
- * @param event
126
- */
127
- startDrawingLine(fromPort: WorkflowPortEntity, event: {
128
- clientX: number;
129
- clientY: number;
130
- }, originLine?: WorkflowLineEntity): Promise<{
131
- dragSuccess?: boolean;
132
- newLine?: WorkflowLineEntity;
133
- }>;
134
- /**
135
- * 重新连接线条
136
- * @param line
137
- * @param e
138
- */
139
- resetLine(line: WorkflowLineEntity, e: MouseEvent): Promise<void>;
140
- /** 线条拖拽结束 */
141
- onDragLineEnd(callback: OnDragNodeEnd): Disposable;
142
- }
143
-
144
29
  type PositionMap = Record<string, IPoint>;
145
30
  /**
146
31
  * 重置布局服务
@@ -472,4 +357,4 @@ declare class WorkflowSimpleLineContribution implements WorkflowLineRenderContri
472
357
  private projectPointOnLine;
473
358
  }
474
359
 
475
- export { EditorCursorState, InteractiveType, LinePosition, LineRenderType, type NodeRenderReturnType, type NodesDragEndEvent, type NodesDragEvent, type PositionMap, type StraightData, WorkflowCommands, WorkflowDocument, WorkflowDocumentContainerModule, WorkflowDragService, WorkflowHoverService, WorkflowLineEntity, WorkflowLineRenderContribution, WorkflowLineRenderData, type WorkflowLineRenderDataSchema, WorkflowLinesManager, WorkflowNodeEntity, WorkflowNodeJSON, type WorkflowNodeLines, WorkflowNodeLinesData, WorkflowNodePortsData, WorkflowPort, WorkflowPortEntity, WorkflowPortType, WorkflowPorts, WorkflowResetLayoutService, WorkflowSelectService, WorkflowSimpleLineContribution, fitView, getAntiOverlapPosition, nanoid, useCurrentDomNode, useCurrentEntity, useNodeRender, usePlaygroundReadonlyState, useWorkflowDocument };
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 };
package/dist/index.d.ts CHANGED
@@ -1,20 +1,20 @@
1
- import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData } from '@flowgram.ai/core';
1
+ import { PlaygroundConfigEntity, 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 { FlowOperationBaseService, FlowNodeEntity } from '@flowgram.ai/document';
5
- import { W as WorkflowHoverService, a as WorkflowDocument, b as WorkflowLinesManager, c as WorkflowSelectService, d as WorkflowNodeJSON, e as WorkflowPortEntity, f as WorkflowLineEntity, g as WorkflowPorts, h as WorkflowPortType, i as WorkflowPort, L as LineRenderType, j as WorkflowLineRenderContribution, k as LinePosition } from './workflow-line-entity-BcXJ4GjA.js';
6
- export { w as LINE_HOVER_DISTANCE, t as LineColor, u as LineColors, s as LineType, P as POINT_RADIUS, A as PORT_SIZE, m as WORKFLOW_LINE_ENTITY, C as WorkfloEntityHoverable, q as WorkflowContentChangeEvent, p as WorkflowContentChangeType, E as WorkflowDocumentOptions, F as WorkflowDocumentOptionsDefault, D as WorkflowDocumentProvider, o as WorkflowJSON, y as WorkflowLineEntityOpts, z as WorkflowLineInfo, x as WorkflowLinePortInfo, v as WorkflowLineRenderContributionFactory, r as WorkflowNodeMeta, B as WorkflowPortEntityOpts, n as domReactToBounds, l as getPortEntityId } from './workflow-line-entity-BcXJ4GjA.js';
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';
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 { DisposableCollection, IPoint, Disposable, PositionSchema, Rectangle } from '@flowgram.ai/utils';
10
+ import { IPoint, 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
13
  import { ContainerModule } from 'inversify';
15
14
  export { WorkflowEdgeJSON } from './typings/workflow-edge.js';
16
15
  export { WorkflowNodeFormMeta, WorkflowNodeRegistry, WorkflowNodeRenderProps } from './typings/workflow-registry.js';
17
16
  import '@flowgram.ai/form-core';
17
+ import 'react';
18
18
 
19
19
  declare enum WorkflowCommands {
20
20
  DELETE_NODES = "DELETE_NODES",
@@ -26,121 +26,6 @@ declare enum WorkflowCommands {
26
26
  REDO = "REDO"
27
27
  }
28
28
 
29
- interface LineEventProps {
30
- type: 'onDrag' | 'onDragEnd';
31
- onDragNodeId?: string;
32
- event?: MouseEvent;
33
- }
34
- interface INodesDragEvent {
35
- type: string;
36
- nodes: FlowNodeEntity[];
37
- startPositions: IPoint[];
38
- altKey: boolean;
39
- }
40
- interface NodesDragEndEvent extends INodesDragEvent {
41
- type: 'onDragEnd';
42
- }
43
- type NodesDragEvent = NodesDragEndEvent;
44
- type OnDragNodeEnd = (params: {
45
- fromPort: WorkflowPortEntity;
46
- toPort?: WorkflowPortEntity;
47
- mousePos: PositionSchema;
48
- line?: WorkflowLineEntity;
49
- originLine?: WorkflowLineEntity;
50
- event: PlaygroundDragEvent;
51
- }) => Promise<void>;
52
- declare class WorkflowDragService {
53
- protected playgroundConfig: PlaygroundConfigEntity;
54
- protected hoverService: WorkflowHoverService;
55
- protected document: WorkflowDocument;
56
- protected linesManager: WorkflowLinesManager;
57
- protected commandService: CommandService;
58
- protected selectService: WorkflowSelectService;
59
- protected operationService: FlowOperationBaseService;
60
- private _onDragLineEventEmitter;
61
- readonly onDragLineEventChange: _flowgram_ai_utils.Event<LineEventProps>;
62
- isDragging: boolean;
63
- private _nodesDragEmitter;
64
- readonly onNodesDrag: _flowgram_ai_utils.Event<NodesDragEndEvent>;
65
- protected _toDispose: DisposableCollection;
66
- private _droppableTransforms;
67
- private _dropNode?;
68
- private posAdjusters;
69
- private _onDragLineEndCallbacks;
70
- init(): void;
71
- dispose(): void;
72
- /**
73
- * 拖拽选中节点
74
- * @param event
75
- */
76
- startDragSelectedNodes(event: MouseEvent | React$1.MouseEvent): Promise<boolean>;
77
- /**
78
- * 通过拖入卡片添加
79
- * @param type
80
- * @param event
81
- * @param data 节点数据
82
- */
83
- dropCard(type: string, event: {
84
- clientX: number;
85
- clientY: number;
86
- }, data?: Partial<WorkflowNodeJSON>, parent?: WorkflowNodeEntity): Promise<WorkflowNodeEntity | undefined>;
87
- /**
88
- * 拖拽卡片到画布
89
- * 返回创建结果
90
- * @param type
91
- * @param event
92
- */
93
- startDragCard(type: string, event: React$1.MouseEvent, data: Partial<WorkflowNodeJSON>, cloneNode?: (e: PlaygroundDragEvent) => HTMLDivElement): Promise<WorkflowNodeEntity | undefined>;
94
- /**
95
- * 如果存在容器节点,且传入鼠标坐标,需要用容器的坐标减去传入的鼠标坐标
96
- */
97
- adjustSubNodePosition(subNodeType?: string, containerNode?: WorkflowNodeEntity, mousePos?: IPoint, resetEmptyPos?: boolean): IPoint;
98
- /**
99
- * 注册位置调整
100
- */
101
- registerPosAdjuster(adjuster: (params: {
102
- selectedNodes: WorkflowNodeEntity[];
103
- position: IPoint;
104
- }) => IPoint): {
105
- dispose: () => boolean;
106
- };
107
- /**
108
- * 获取拖拽偏移
109
- */
110
- private getDragPosOffset;
111
- private updateDroppableTransforms;
112
- /**
113
- * 获取节点整体位置
114
- */
115
- private getNodesPosition;
116
- private nodeSelectable;
117
- private updateDropNode;
118
- private clearDrop;
119
- private setLineColor;
120
- private handleDragOnNode;
121
- private childrenOfContainer;
122
- /**
123
- * 绘制线条
124
- * @param opts
125
- * @param event
126
- */
127
- startDrawingLine(fromPort: WorkflowPortEntity, event: {
128
- clientX: number;
129
- clientY: number;
130
- }, originLine?: WorkflowLineEntity): Promise<{
131
- dragSuccess?: boolean;
132
- newLine?: WorkflowLineEntity;
133
- }>;
134
- /**
135
- * 重新连接线条
136
- * @param line
137
- * @param e
138
- */
139
- resetLine(line: WorkflowLineEntity, e: MouseEvent): Promise<void>;
140
- /** 线条拖拽结束 */
141
- onDragLineEnd(callback: OnDragNodeEnd): Disposable;
142
- }
143
-
144
29
  type PositionMap = Record<string, IPoint>;
145
30
  /**
146
31
  * 重置布局服务
@@ -472,4 +357,4 @@ declare class WorkflowSimpleLineContribution implements WorkflowLineRenderContri
472
357
  private projectPointOnLine;
473
358
  }
474
359
 
475
- export { EditorCursorState, InteractiveType, LinePosition, LineRenderType, type NodeRenderReturnType, type NodesDragEndEvent, type NodesDragEvent, type PositionMap, type StraightData, WorkflowCommands, WorkflowDocument, WorkflowDocumentContainerModule, WorkflowDragService, WorkflowHoverService, WorkflowLineEntity, WorkflowLineRenderContribution, WorkflowLineRenderData, type WorkflowLineRenderDataSchema, WorkflowLinesManager, WorkflowNodeEntity, WorkflowNodeJSON, type WorkflowNodeLines, WorkflowNodeLinesData, WorkflowNodePortsData, WorkflowPort, WorkflowPortEntity, WorkflowPortType, WorkflowPorts, WorkflowResetLayoutService, WorkflowSelectService, WorkflowSimpleLineContribution, fitView, getAntiOverlapPosition, nanoid, useCurrentDomNode, useCurrentEntity, useNodeRender, usePlaygroundReadonlyState, useWorkflowDocument };
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 };
package/dist/index.js CHANGED
@@ -2291,6 +2291,9 @@ var WorkflowDragService = class {
2291
2291
  }
2292
2292
  init() {
2293
2293
  this._toDispose.pushAll([this._onDragLineEventEmitter, this._nodesDragEmitter]);
2294
+ if (this.options.onDragLineEnd) {
2295
+ this._toDispose.push(this.onDragLineEnd(this.options.onDragLineEnd));
2296
+ }
2294
2297
  }
2295
2298
  dispose() {
2296
2299
  this._toDispose.dispose();
@@ -2326,6 +2329,7 @@ var WorkflowDragService = class {
2326
2329
  if (altKey) {
2327
2330
  const tryCopyNodes = selectedNodes;
2328
2331
  if (tryCopyNodes.length > 0) {
2332
+ this.selectService.clear();
2329
2333
  this.commandService.executeCommand("PASTE_NODES" /* PASTE_NODES */, tryCopyNodes, true).then((newNodes) => {
2330
2334
  if (newNodes && Array.isArray(newNodes) && newNodes.length > 0) {
2331
2335
  selectedNodes = newNodes;
@@ -2807,6 +2811,9 @@ __decorateClass([
2807
2811
  __decorateClass([
2808
2812
  (0, import_inversify6.inject)(import_document7.FlowOperationBaseService)
2809
2813
  ], WorkflowDragService.prototype, "operationService", 2);
2814
+ __decorateClass([
2815
+ (0, import_inversify6.inject)(WorkflowDocumentOptions)
2816
+ ], WorkflowDragService.prototype, "options", 2);
2810
2817
  __decorateClass([
2811
2818
  (0, import_inversify6.postConstruct)()
2812
2819
  ], WorkflowDragService.prototype, "init", 1);