@flowgram.ai/free-layout-core 0.2.8 → 0.2.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.
@@ -11,7 +11,7 @@ import {
11
11
  import {
12
12
  LineColors,
13
13
  LineType
14
- } from "../chunk-6DKK25L7.js";
14
+ } from "../chunk-BJKYSQMI.js";
15
15
  import "../chunk-DDJTYHXN.js";
16
16
  import {
17
17
  WorkflowOperationBaseService
@@ -1,7 +1,7 @@
1
1
  import {
2
2
  LineColors,
3
3
  LineType
4
- } from "../chunk-6DKK25L7.js";
4
+ } from "../chunk-BJKYSQMI.js";
5
5
  import "../chunk-EUXUH3YW.js";
6
6
  export {
7
7
  LineColors,
package/dist/index.d.mts CHANGED
@@ -2,8 +2,8 @@ import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData
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
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-D8NFe_5A.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, J as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, M as WorkflowDocumentOptionsDefault, K 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-D8NFe_5A.mjs';
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-BGD6_sdy.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, J as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, M as WorkflowDocumentOptionsDefault, K 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-BGD6_sdy.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';
package/dist/index.d.ts CHANGED
@@ -2,8 +2,8 @@ import { PlaygroundConfigEntity, CommandService, PlaygroundDragEvent, EntityData
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
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-BkEp6R-u.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, J as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, M as WorkflowDocumentOptionsDefault, K 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-BkEp6R-u.js';
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-OFVYg40b.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, J as WorkfloEntityHoverable, s as WorkflowContentChangeEvent, r as WorkflowContentChangeType, M as WorkflowDocumentOptionsDefault, K 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-OFVYg40b.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';
package/dist/index.js CHANGED
@@ -1187,12 +1187,13 @@ var LineType = /* @__PURE__ */ ((LineType2) => {
1187
1187
  return LineType2;
1188
1188
  })(LineType || {});
1189
1189
  var LineColors = /* @__PURE__ */ ((LineColors2) => {
1190
- LineColors2["HIDDEN"] = "var(--g-line-color-hidden,transparent)";
1191
- LineColors2["DEFUALT"] = "var(--g-line-color-default,#4d53e8)";
1192
- LineColors2["DRAWING"] = "var(--g-line-color-drawing, #5DD6E3)";
1193
- LineColors2["HOVER"] = "var(--g-line-color-hover,#37d0ff)";
1194
- LineColors2["SELECTED"] = "var(--g-line-color-selected,#37d0ff)";
1195
- LineColors2["ERROR"] = "var(--g-line-color-error,red)";
1190
+ LineColors2["HIDDEN"] = "var(--g-workflow-line-color-hidden,transparent)";
1191
+ LineColors2["DEFUALT"] = "var(--g-workflow-line-color-default,#4d53e8)";
1192
+ LineColors2["DRAWING"] = "var(--g-workflow-line-color-drawing, #5DD6E3)";
1193
+ LineColors2["HOVER"] = "var(--g-workflow-line-color-hover,#37d0ff)";
1194
+ LineColors2["SELECTED"] = "var(--g-workflow-line-color-selected,#37d0ff)";
1195
+ LineColors2["ERROR"] = "var(--g-workflow-line-color-error,red)";
1196
+ LineColors2["FLOWING"] = "var(--g-workflow-line-color-flowing,#4d53e8)";
1196
1197
  return LineColors2;
1197
1198
  })(LineColors || {});
1198
1199
 
@@ -1303,12 +1304,13 @@ var WorkflowLinesManager = class {
1303
1304
  }
1304
1305
  get lineColor() {
1305
1306
  const color = {
1306
- default: "var(--g-line-color-default,#4d53e8)" /* DEFUALT */,
1307
- error: "var(--g-line-color-error,red)" /* ERROR */,
1308
- hidden: "var(--g-line-color-hidden,transparent)" /* HIDDEN */,
1309
- drawing: "var(--g-line-color-drawing, #5DD6E3)" /* DRAWING */,
1310
- hovered: "var(--g-line-color-hover,#37d0ff)" /* HOVER */,
1311
- selected: "var(--g-line-color-selected,#37d0ff)" /* SELECTED */
1307
+ default: "var(--g-workflow-line-color-default,#4d53e8)" /* DEFUALT */,
1308
+ error: "var(--g-workflow-line-color-error,red)" /* ERROR */,
1309
+ hidden: "var(--g-workflow-line-color-hidden,transparent)" /* HIDDEN */,
1310
+ drawing: "var(--g-workflow-line-color-drawing, #5DD6E3)" /* DRAWING */,
1311
+ hovered: "var(--g-workflow-line-color-hover,#37d0ff)" /* HOVER */,
1312
+ selected: "var(--g-workflow-line-color-selected,#37d0ff)" /* SELECTED */,
1313
+ flowing: "var(--g-workflow-line-color-flowing,#4d53e8)" /* FLOWING */
1312
1314
  };
1313
1315
  if (this.options.lineColor) {
1314
1316
  Object.assign(color, this.options.lineColor);
@@ -1500,6 +1502,9 @@ var WorkflowLinesManager = class {
1500
1502
  if (this.selectService.isSelected(line.id)) {
1501
1503
  return this.lineColor.selected;
1502
1504
  }
1505
+ if (this.isFlowingLine(line)) {
1506
+ return this.lineColor.flowing;
1507
+ }
1503
1508
  return this.lineColor.default;
1504
1509
  }
1505
1510
  canAddLine(fromPort, toPort, silent) {
@@ -1833,7 +1838,6 @@ var WorkflowDocument = class extends import_document7.FlowDocument {
1833
1838
  parent
1834
1839
  },
1835
1840
  void 0,
1836
- true,
1837
1841
  true
1838
1842
  );
1839
1843
  const registry = node.getNodeRegistry();
@@ -1938,6 +1942,64 @@ var WorkflowDocument = class extends import_document7.FlowDocument {
1938
1942
  }
1939
1943
  return node;
1940
1944
  }
1945
+ /**
1946
+ * 添加节点,如果节点已经存在则不会重复创建
1947
+ * @param data
1948
+ * @param addedNodes
1949
+ */
1950
+ addNode(data, addedNodes, ignoreCreateAndUpdateEvent) {
1951
+ const { id, type = "block", originParent, parent, meta, hidden, index } = data;
1952
+ let node = this.getNode(id);
1953
+ let isNew = false;
1954
+ const register = this.getNodeRegistry(type, data.originParent);
1955
+ if (node && node.flowNodeType !== data.type) {
1956
+ node.dispose();
1957
+ node = void 0;
1958
+ }
1959
+ if (!node) {
1960
+ const { dataRegistries } = register;
1961
+ node = this.entityManager.createEntity(WorkflowNodeEntity, {
1962
+ id,
1963
+ document: this,
1964
+ flowNodeType: type,
1965
+ originParent,
1966
+ meta
1967
+ });
1968
+ const datas = dataRegistries ? this.nodeDataRegistries.concat(...dataRegistries) : this.nodeDataRegistries;
1969
+ node.addInitializeData(datas);
1970
+ node.onDispose(() => this.onNodeDisposeEmitter.fire({ node }));
1971
+ this.options.fromNodeJSON?.(node, data, true);
1972
+ isNew = true;
1973
+ } else {
1974
+ this.options.fromNodeJSON?.(node, data, false);
1975
+ }
1976
+ node.initData({
1977
+ originParent,
1978
+ parent,
1979
+ meta,
1980
+ hidden,
1981
+ index
1982
+ });
1983
+ addedNodes?.push(node);
1984
+ if (register.onCreate) {
1985
+ const extendNodes = register.onCreate(node, data);
1986
+ if (extendNodes && addedNodes) {
1987
+ addedNodes.push(...extendNodes);
1988
+ }
1989
+ }
1990
+ if (!ignoreCreateAndUpdateEvent) {
1991
+ if (isNew) {
1992
+ this.onNodeCreateEmitter.fire({
1993
+ node,
1994
+ data,
1995
+ json: data
1996
+ });
1997
+ } else {
1998
+ this.onNodeUpdateEmitter.fire({ node, data, json: data });
1999
+ }
2000
+ }
2001
+ return node;
2002
+ }
1941
2003
  get layout() {
1942
2004
  const layout = this.layouts.find((layout2) => layout2.name == this.currentLayoutKey);
1943
2005
  if (!layout) {