@voiceflow/utils-designer 1.63.25 → 1.65.0

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.
@@ -1,21 +1,33 @@
1
1
  import type { Diagram } from '@voiceflow/dtos';
2
2
  export declare const getUniqueDiagramCopyName: (originalName: string, existingNames: string[]) => string;
3
- type DiagramPayload = Omit<Diagram, '_id' | 'creatorID' | 'versionID' | 'diagramID'>;
3
+ export type DiagramPayload = Omit<Diagram, '_id' | 'creatorID' | 'versionID' | 'diagramID'>;
4
4
  export declare const componentDiagramPayloadFactory: ({ startNode, diagramName, }: {
5
5
  startNode?: {
6
+ id?: string;
6
7
  name?: string;
7
8
  coords?: [number, number];
8
9
  color?: string;
9
10
  };
10
11
  diagramName: string;
11
12
  }) => DiagramPayload;
12
- export declare const topicDiagramPayloadFactory: ({ diagramName, triggerNodeName, triggerNodeCoords, }: {
13
+ export declare const topicDiagramPayloadFactory: ({ diagramName, triggerNode, }: {
13
14
  diagramName: string;
14
- triggerNodeName?: string;
15
- triggerNodeCoords?: [number, number];
15
+ triggerNode?: {
16
+ id?: string;
17
+ name?: string;
18
+ color?: string;
19
+ coords?: [number, number];
20
+ };
21
+ }) => DiagramPayload;
22
+ export declare const rootDiagramPayloadFactory: ({ diagramName, startNode, }: {
23
+ diagramName: string;
24
+ startNode?: {
25
+ id?: string;
26
+ name?: string;
27
+ coords?: [number, number];
28
+ };
16
29
  }) => DiagramPayload;
17
30
  export declare const templateDiagramPayloadFactory: ({ name }?: {
18
31
  name?: string;
19
32
  }) => DiagramPayload;
20
- export {};
21
33
  //# sourceMappingURL=diagram.util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram.util.d.ts","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAK5D,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,iBAAiB,MAAM,EAAE,WAUrF,CAAC;AAQF,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAiBrF,eAAO,MAAM,8BAA8B,gCAGxC;IACD,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,WAAW,EAAE,MAAM,CAAC;CACrB,mBAUG,CAAC;AAEL,eAAO,MAAM,0BAA0B,yDAIpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,mBAWA,CAAC;AAEF,eAAO,MAAM,6BAA6B,cAAmC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,mBACJ,CAAC"}
1
+ {"version":3,"file":"diagram.util.d.ts","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAK5D,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,iBAAiB,MAAM,EAAE,WAUrF,CAAC;AAQF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAiB5F,eAAO,MAAM,8BAA8B,gCAGxC;IACD,SAAS,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,WAAW,EAAE,MAAM,CAAC;CACrB,mBAWG,CAAC;AAEL,eAAO,MAAM,0BAA0B,kCAGpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3B,CAAC;CACH,mBAcA,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAGnC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3B,CAAC;CACH,mBAYA,CAAC;AAEF,eAAO,MAAM,6BAA6B,cAAmC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,mBAK1F,CAAC"}
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.templateDiagramPayloadFactory = exports.topicDiagramPayloadFactory = exports.componentDiagramPayloadFactory = exports.getUniqueDiagramCopyName = void 0;
3
+ exports.templateDiagramPayloadFactory = exports.rootDiagramPayloadFactory = exports.topicDiagramPayloadFactory = exports.componentDiagramPayloadFactory = exports.getUniqueDiagramCopyName = void 0;
4
4
  const common_1 = require("@voiceflow/common");
5
5
  const dtos_1 = require("@voiceflow/dtos");
6
6
  const node_util_1 = require("./node.util");
@@ -29,24 +29,46 @@ const componentDiagramPayloadFactory = ({ startNode, diagramName, }) => diagramP
29
29
  type: dtos_1.DiagramType.COMPONENT,
30
30
  nodes: [
31
31
  (0, node_util_1.startNodeFactory)({
32
- coords: startNode?.coords ?? dtos_1.START_NODE_POSITION,
33
32
  data: { name: startNode?.name ?? 'Enter', color: startNode?.color },
33
+ coords: startNode?.coords ?? dtos_1.START_NODE_POSITION,
34
+ nodeID: startNode?.id,
34
35
  }),
35
36
  ],
36
37
  });
37
38
  exports.componentDiagramPayloadFactory = componentDiagramPayloadFactory;
38
- const topicDiagramPayloadFactory = ({ diagramName, triggerNodeName, triggerNodeCoords = dtos_1.START_NODE_POSITION, }) => {
39
- const triggerNodeID = common_1.Utils.id.objectID();
39
+ const topicDiagramPayloadFactory = ({ diagramName, triggerNode, }) => {
40
+ const triggerNodeID = triggerNode?.id ?? common_1.Utils.id.objectID();
40
41
  return diagramPayloadFactory({
41
42
  name: diagramName,
42
43
  type: dtos_1.DiagramType.TOPIC,
43
44
  nodes: [
44
- (0, node_util_1.blockNodeFactory)({ data: { name: triggerNodeName, steps: [triggerNodeID] }, coords: triggerNodeCoords }),
45
+ (0, node_util_1.blockNodeFactory)({
46
+ data: { name: triggerNode?.name, steps: [triggerNodeID] },
47
+ coords: triggerNode?.coords ?? dtos_1.START_NODE_POSITION,
48
+ }),
45
49
  (0, node_util_1.triggerNodeFactory)({ nodeID: triggerNodeID }),
46
50
  ],
47
51
  });
48
52
  };
49
53
  exports.topicDiagramPayloadFactory = topicDiagramPayloadFactory;
50
- const templateDiagramPayloadFactory = ({ name = 'Template Diagram' } = {}) => diagramPayloadFactory({ name, type: dtos_1.DiagramType.TEMPLATE, nodes: [(0, node_util_1.startNodeFactory)()] });
54
+ const rootDiagramPayloadFactory = ({ diagramName, startNode, }) => {
55
+ return diagramPayloadFactory({
56
+ name: diagramName,
57
+ type: dtos_1.DiagramType.TOPIC,
58
+ nodes: [
59
+ (0, node_util_1.startNodeFactory)({
60
+ data: { name: startNode?.name },
61
+ coords: startNode?.coords ?? dtos_1.START_NODE_POSITION,
62
+ nodeID: startNode?.id,
63
+ }),
64
+ ],
65
+ });
66
+ };
67
+ exports.rootDiagramPayloadFactory = rootDiagramPayloadFactory;
68
+ const templateDiagramPayloadFactory = ({ name = 'Template Diagram' } = {}) => diagramPayloadFactory({
69
+ name,
70
+ type: dtos_1.DiagramType.TEMPLATE,
71
+ nodes: [(0, node_util_1.startNodeFactory)({ coords: dtos_1.START_NODE_POSITION })],
72
+ });
51
73
  exports.templateDiagramPayloadFactory = templateDiagramPayloadFactory;
52
74
  //# sourceMappingURL=diagram.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram.util.js","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":";;;AAAA,8CAA0C;AAE1C,0CAAmE;AAEnE,2CAAqF;AAE9E,MAAM,wBAAwB,GAAG,CAAC,YAAoB,EAAE,aAAuB,EAAE,EAAE;IACxF,IAAI,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAChG,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,UAAU,GAAG,GAAG,YAAY,UAAU,KAAK,GAAG,CAAC;QAC/C,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAVW,QAAA,wBAAwB,4BAUnC;AAUF,MAAM,qBAAqB,GAAG,CAAwB,EACpD,IAAI,EACJ,IAAI,EACJ,KAAK,GAC+B,EAAkB,EAAE,CAAC,CAAC;IAC1D,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,cAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC1C,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEI,MAAM,8BAA8B,GAAG,CAAC,EAC7C,SAAS,EACT,WAAW,GAIZ,EAAE,EAAE,CACH,qBAAqB,CAAC;IACpB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,kBAAW,CAAC,SAAS;IAC3B,KAAK,EAAE;QACL,IAAA,4BAAgB,EAAC;YACf,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,0BAAmB;YAChD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;SACpE,CAAC;KACH;CACF,CAAC,CAAC;AAhBQ,QAAA,8BAA8B,kCAgBtC;AAEE,MAAM,0BAA0B,GAAG,CAAC,EACzC,WAAW,EACX,eAAe,EACf,iBAAiB,GAAG,0BAAmB,GAKxC,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,cAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE1C,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,kBAAW,CAAC,KAAK;QACvB,KAAK,EAAE;YACL,IAAA,4BAAgB,EAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;YACxG,IAAA,8BAAkB,EAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;SAC9C;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAnBW,QAAA,0BAA0B,8BAmBrC;AAEK,MAAM,6BAA6B,GAAG,CAAC,EAAE,IAAI,GAAG,kBAAkB,KAAwB,EAAE,EAAE,EAAE,CACrG,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,kBAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,IAAA,4BAAgB,GAAE,CAAC,EAAE,CAAC,CAAC;AAD9E,QAAA,6BAA6B,iCACiD"}
1
+ {"version":3,"file":"diagram.util.js","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"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"}
@@ -1,12 +1,12 @@
1
- import type { BlockNode, DiagramNode, StartNode, TriggerNode } from '@voiceflow/dtos';
1
+ import type { BaseNode, BlockNode, DiagramNode, StartNode, TriggerNode } from '@voiceflow/dtos';
2
2
  export declare const diagramNodeFactory: <Node extends DiagramNode>(node: Omit<Node, "nodeID"> & {
3
3
  nodeID?: string;
4
4
  }) => Node;
5
- type NodeFactoryOptions<Node extends DiagramNode> = Pick<Node, 'coords'> & {
5
+ interface NodeFactoryOptions<Node extends DiagramNode> extends Pick<Node, 'coords'> {
6
6
  data?: Partial<Node['data']>;
7
7
  nodeID?: string;
8
- };
9
- export declare const startNodeFactory: ({ data, coords, ...rest }?: NodeFactoryOptions<StartNode>) => {
8
+ }
9
+ export declare const startNodeFactory: ({ data, coords, ...rest }: NodeFactoryOptions<StartNode>) => {
10
10
  type: "start";
11
11
  data: {
12
12
  portsV2: {
@@ -110,7 +110,7 @@ export declare const startNodeFactory: ({ data, coords, ...rest }?: NodeFactoryO
110
110
  })[] | undefined;
111
111
  };
112
112
  nodeID: string;
113
- coords?: [number, number] | undefined;
113
+ coords: [number, number];
114
114
  };
115
115
  export declare const blockNodeFactory: ({ data, ...rest }: NodeFactoryOptions<BlockNode>) => {
116
116
  type: "block";
@@ -290,5 +290,38 @@ export declare const triggerNodeFactory: ({ data, ...reset }?: NodeFactoryOption
290
290
  nodeID: string;
291
291
  coords?: [number, number] | undefined;
292
292
  };
293
+ export declare const getFlatNodePorts: (node: BaseNode) => {
294
+ type: string;
295
+ id: string;
296
+ target: string | null;
297
+ data?: {
298
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
299
+ color?: string | null | undefined;
300
+ points?: {
301
+ point: [number, number];
302
+ toTop?: boolean | null | undefined;
303
+ locked?: boolean | null | undefined;
304
+ reversed?: boolean | null | undefined;
305
+ allowedToTop?: boolean | null | undefined;
306
+ }[] | null | undefined;
307
+ caption?: {
308
+ value: string;
309
+ width: number;
310
+ height: number;
311
+ } | null | undefined;
312
+ } | null | undefined;
313
+ }[];
314
+ export declare const isStartNode: (node: BaseNode) => node is StartNode;
315
+ export declare const isBlockNode: (node: BaseNode) => node is BlockNode;
316
+ export declare const isTriggerNode: (node: BaseNode) => node is TriggerNode;
317
+ /**
318
+ * mutates nodes in place - creates horizontal tree layout
319
+ */
320
+ export declare const normalizeNodePositions: <Node extends BaseNode>(nodes: Node[], { hGap, vGap, blockWidth, blockHeight, }?: {
321
+ hGap?: number;
322
+ vGap?: number;
323
+ blockWidth?: number;
324
+ blockHeight?: number;
325
+ }) => Node[];
293
326
  export {};
294
327
  //# sourceMappingURL=node.util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.util.d.ts","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKtF,eAAO,MAAM,kBAAkB,GAAI,IAAI,SAAS,WAAW,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,IAIpG,CAAC;AAEb,KAAK,kBAAkB,CAAC,IAAI,SAAS,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+BAAqD,kBAAkB,CAAC,SAAS,CAAC;;;;;;;;oBA2Cmz3E,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAA2d,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAAuW,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;YAAkP,CAAC;aAAmC,CAAC;aAAmC,CAAC;aAAmC,CAAC;gBAAwC,CAAC;;;;;;;6BAAoM,CAAC;4BAAgC,CAAC;;;;;wBAA4J,CAAC;6BAA2D,CAAC;;;iBAAsH,CAAC;;;;oBAA+G,CAAC;;;;;;;;;;;;CA5B10+E,CAAC;AAEL,eAAO,MAAM,gBAAgB,sBAAuB,kBAAkB,CAAC,SAAS,CAAC;;;;;;;;;;oBA0BuitD,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAA2d,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAAuW,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;;CAhBl/xD,CAAC;AAEL,eAAO,MAAM,kBAAkB,wBAAwB,kBAAkB,CAAC,WAAW,CAAC;;;;;;;;oBAciz2F,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAA2d,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAAuW,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;;;;;6BAAub,CAAC;4BAAgC,CAAC;;;;;wBAA4J,CAAC;6BAA2D,CAAC;;;iBAAsH,CAAC;;;;oBAA+G,CAAC;;;;;;;;;YAAgN,CAAC;;;;CAD329F,CAAC"}
1
+ {"version":3,"file":"node.util.d.ts","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"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"}
@@ -1,6 +1,7 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.triggerNodeFactory = exports.blockNodeFactory = exports.startNodeFactory = exports.diagramNodeFactory = void 0;
3
+ exports.normalizeNodePositions = exports.isTriggerNode = exports.isBlockNode = exports.isStartNode = exports.getFlatNodePorts = exports.triggerNodeFactory = exports.blockNodeFactory = exports.startNodeFactory = exports.diagramNodeFactory = void 0;
4
+ /* eslint-disable no-param-reassign */
4
5
  const common_1 = require("@voiceflow/common");
5
6
  const dtos_1 = require("@voiceflow/dtos");
6
7
  const node_port_util_1 = require("./node-port.util");
@@ -9,7 +10,7 @@ const diagramNodeFactory = (node) => ({
9
10
  nodeID: node.nodeID ?? common_1.Utils.id.objectID(),
10
11
  });
11
12
  exports.diagramNodeFactory = diagramNodeFactory;
12
- const startNodeFactory = ({ data, coords = dtos_1.START_NODE_POSITION, ...rest } = {}) => (0, exports.diagramNodeFactory)({
13
+ const startNodeFactory = ({ data, coords, ...rest }) => (0, exports.diagramNodeFactory)({
13
14
  ...rest,
14
15
  type: dtos_1.NodeType.START,
15
16
  data: {
@@ -48,4 +49,142 @@ const triggerNodeFactory = ({ data, ...reset } = {}) => (0, exports.diagramNodeF
48
49
  },
49
50
  });
50
51
  exports.triggerNodeFactory = triggerNodeFactory;
52
+ const getFlatNodePorts = (node) => [
53
+ ...Object.values(node.data.portsV2.byKey ?? {}),
54
+ ...Object.values(node.data.portsV2.builtIn ?? {}),
55
+ ...(node.data.portsV2.dynamic ?? []),
56
+ ];
57
+ exports.getFlatNodePorts = getFlatNodePorts;
58
+ const isStartNode = (node) => node.type === dtos_1.NodeType.START;
59
+ exports.isStartNode = isStartNode;
60
+ const isBlockNode = (node) => node.type === dtos_1.NodeType.BLOCK;
61
+ exports.isBlockNode = isBlockNode;
62
+ const isTriggerNode = (node) => node.type === dtos_1.NodeType.TRIGGER;
63
+ exports.isTriggerNode = isTriggerNode;
64
+ /**
65
+ * mutates nodes in place - creates horizontal tree layout
66
+ */
67
+ const normalizeNodePositions = (nodes, { hGap = 100, vGap = 80, blockWidth = 330, blockHeight = 250, } = {}) => {
68
+ const stepsMap = new Map();
69
+ const parentNodes = new Map();
70
+ const stepIDToBlockIDMap = new Map();
71
+ // Separate parent nodes (blocks/start) from step nodes
72
+ nodes.forEach((node) => {
73
+ if ((0, exports.isBlockNode)(node)) {
74
+ node.data.steps.forEach((stepID) => {
75
+ stepIDToBlockIDMap.set(stepID, node.nodeID);
76
+ });
77
+ parentNodes.set(node.nodeID, node);
78
+ }
79
+ else if ((0, exports.isStartNode)(node)) {
80
+ parentNodes.set(node.nodeID, node);
81
+ }
82
+ else {
83
+ stepsMap.set(node.nodeID, node);
84
+ }
85
+ });
86
+ // Build parent-child relationships
87
+ const parentOf = new Map(); // child nodeID -> parent nodeID
88
+ const childrenOf = new Map(); // nodeID -> child nodeIDs[]
89
+ // Initialize empty children arrays for all parent nodes
90
+ parentNodes.forEach((node) => {
91
+ childrenOf.set(node.nodeID, []);
92
+ });
93
+ parentNodes.forEach((node) => {
94
+ const ports = [];
95
+ if ((0, exports.isStartNode)(node)) {
96
+ ports.push(...(0, exports.getFlatNodePorts)(node));
97
+ }
98
+ else {
99
+ node.data.steps.forEach((stepID) => {
100
+ const step = stepsMap.get(stepID);
101
+ if (!step)
102
+ return;
103
+ ports.push(...(0, exports.getFlatNodePorts)(step));
104
+ });
105
+ }
106
+ ports.forEach((port) => {
107
+ if (!port.target)
108
+ return;
109
+ const targetStep = stepsMap.get(port.target);
110
+ const targetStepBlockID = targetStep ? stepIDToBlockIDMap.get(port.target) : null;
111
+ const targetBlock = parentNodes.get(targetStepBlockID ?? port.target);
112
+ if (!targetBlock)
113
+ return;
114
+ // Add child relationship (avoid duplicates)
115
+ const children = childrenOf.get(node.nodeID) ?? [];
116
+ if (!children.includes(targetBlock.nodeID)) {
117
+ children.push(targetBlock.nodeID);
118
+ childrenOf.set(node.nodeID, children);
119
+ }
120
+ // Set parent relationship
121
+ parentOf.set(targetBlock.nodeID, node.nodeID);
122
+ });
123
+ });
124
+ // Find root nodes (nodes with no parents)
125
+ const roots = Array.from(parentNodes.values()).filter((b) => !parentOf.has(b.nodeID));
126
+ if (roots.length === 0)
127
+ throw new Error('Graph has cycles or no root block.');
128
+ // If all nodes are roots (no parent-child relationships), position them in a simple grid
129
+ if (roots.length === parentNodes.size) {
130
+ let x = 0;
131
+ let y = 0;
132
+ const maxNodesPerRow = 3; // Adjust as needed
133
+ roots.forEach((node, index) => {
134
+ node.coords[0] = x;
135
+ node.coords[1] = y;
136
+ if ((index + 1) % maxNodesPerRow === 0) {
137
+ x = 0;
138
+ y += blockHeight + vGap;
139
+ }
140
+ else {
141
+ x += blockWidth + hGap;
142
+ }
143
+ });
144
+ return nodes;
145
+ }
146
+ // First pass: assign depth (X coordinate) to each node
147
+ const nodeDepths = new Map();
148
+ // Use BFS to assign depths, handling cycles properly
149
+ const queue = [];
150
+ // Start with all roots at depth 0
151
+ roots.forEach((root) => {
152
+ nodeDepths.set(root.nodeID, 0);
153
+ queue.push({ nodeId: root.nodeID, depth: 0 });
154
+ });
155
+ // Process queue until empty
156
+ while (queue.length > 0) {
157
+ const { nodeId, depth } = queue.shift();
158
+ const children = childrenOf.get(nodeId) ?? [];
159
+ children.forEach((childId) => {
160
+ const currentDepth = nodeDepths.get(childId);
161
+ const newDepth = depth + 1;
162
+ // Only update if we haven't seen this node or found a shorter path
163
+ if (currentDepth === undefined || newDepth < currentDepth) {
164
+ nodeDepths.set(childId, newDepth);
165
+ queue.push({ nodeId: childId, depth: newDepth });
166
+ }
167
+ });
168
+ }
169
+ // Second pass: group nodes by depth and assign Y coordinates
170
+ const nodesByDepth = new Map();
171
+ parentNodes.forEach((node) => {
172
+ const depth = nodeDepths.get(node.nodeID) ?? 0;
173
+ if (!nodesByDepth.has(depth)) {
174
+ nodesByDepth.set(depth, []);
175
+ }
176
+ nodesByDepth.get(depth).push(node);
177
+ });
178
+ // Position nodes: X by depth, Y by order within depth
179
+ nodesByDepth.forEach((nodesAtDepth, depth) => {
180
+ const x = depth * (blockWidth + hGap);
181
+ nodesAtDepth.forEach((node, index) => {
182
+ const y = index * (blockHeight + vGap);
183
+ // Create a new coords array to avoid shared reference issues
184
+ node.coords = [x, y];
185
+ });
186
+ });
187
+ return nodes;
188
+ };
189
+ exports.normalizeNodePositions = normalizeNodePositions;
51
190
  //# sourceMappingURL=node.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.util.js","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":";;;AAAA,8CAA0C;AAE1C,0CAAoF;AAEpF,qDAAqE;AAE9D,MAAM,kBAAkB,GAAG,CAA2B,IAAgD,EAAQ,EAAE,CACrH,CAAC;IACC,GAAG,IAAI;IACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,cAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAS,CAAC;AAJA,QAAA,kBAAkB,sBAIlB;AAON,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,0BAAmB,EAAE,GAAG,IAAI,KAAoC,EAAE,EAAE,EAAE,CACtH,IAAA,0BAAkB,EAAY;IAC5B,GAAG,IAAI;IACP,IAAI,EAAE,eAAQ,CAAC,KAAK;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO;QAC3B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;QAC/B,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;QAC9B,OAAO,EACL,IAAI,EAAE,OAAO;YACb,IAAA,iCAAgB,EAAC;gBACf,OAAO,EAAE,EAAE,CAAC,yBAAkB,CAAC,IAAI,CAAC,EAAE,IAAA,gCAAe,EAAC,EAAE,IAAI,EAAE,yBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;aAC3F,CAAC;KACL;IACD,MAAM;CACP,CAAC,CAAC;AAfQ,QAAA,gBAAgB,oBAexB;AAEE,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAiC,EAAE,EAAE,CACnF,IAAA,0BAAkB,EAAY;IAC5B,GAAG,IAAI;IACP,IAAI,EAAE,eAAQ,CAAC,KAAK;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAA,iCAAgB,GAAE;KAC7C;CACF,CAAC,CAAC;AAVQ,QAAA,gBAAgB,oBAUxB;AAEE,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,KAAsC,EAAE,EAAE,EAAE,CAC7F,IAAA,0BAAkB,EAAc;IAC9B,GAAG,KAAK;IACR,IAAI,EAAE,eAAQ,CAAC,OAAO;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,OAAO,EACL,IAAI,EAAE,OAAO;YACb,IAAA,iCAAgB,EAAC;gBACf,KAAK,EAAE,EAAE,CAAC,yBAAkB,CAAC,IAAI,CAAC,EAAE,IAAA,gCAAe,EAAC,EAAE,IAAI,EAAE,yBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;aACzF,CAAC;KACL;CACF,CAAC,CAAC;AAbQ,QAAA,kBAAkB,sBAa1B"}
1
+ {"version":3,"file":"node.util.js","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":";;;AAAA,sCAAsC;AACtC,8CAA0C;AAE1C,0CAA+D;AAE/D,qDAAqE;AAE9D,MAAM,kBAAkB,GAAG,CAA2B,IAAgD,EAAQ,EAAE,CACrH,CAAC;IACC,GAAG,IAAI;IACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,cAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAS,CAAC;AAJA,QAAA,kBAAkB,sBAIlB;AAON,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,EAAE,GAAG,IAAI,EAAiC,EAAE,EAAE,CAC3F,IAAA,0BAAkB,EAAY;IAC5B,GAAG,IAAI;IACP,IAAI,EAAE,eAAQ,CAAC,KAAK;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO;QAC3B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;QAC/B,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;QAC9B,OAAO,EACL,IAAI,EAAE,OAAO;YACb,IAAA,iCAAgB,EAAC;gBACf,OAAO,EAAE,EAAE,CAAC,yBAAkB,CAAC,IAAI,CAAC,EAAE,IAAA,gCAAe,EAAC,EAAE,IAAI,EAAE,yBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;aAC3F,CAAC;KACL;IACD,MAAM;CACP,CAAC,CAAC;AAfQ,QAAA,gBAAgB,oBAexB;AAEE,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAiC,EAAE,EAAE,CACnF,IAAA,0BAAkB,EAAY;IAC5B,GAAG,IAAI;IACP,IAAI,EAAE,eAAQ,CAAC,KAAK;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,IAAA,iCAAgB,GAAE;KAC7C;CACF,CAAC,CAAC;AAVQ,QAAA,gBAAgB,oBAUxB;AAEE,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,KAAsC,EAAE,EAAE,EAAE,CAC7F,IAAA,0BAAkB,EAAc;IAC9B,GAAG,KAAK;IACR,IAAI,EAAE,eAAQ,CAAC,OAAO;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,OAAO,EACL,IAAI,EAAE,OAAO;YACb,IAAA,iCAAgB,EAAC;gBACf,KAAK,EAAE,EAAE,CAAC,yBAAkB,CAAC,IAAI,CAAC,EAAE,IAAA,gCAAe,EAAC,EAAE,IAAI,EAAE,yBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;aACzF,CAAC;KACL;CACF,CAAC,CAAC;AAbQ,QAAA,kBAAkB,sBAa1B;AAEE,MAAM,gBAAgB,GAAG,CAAC,IAAc,EAAE,EAAE,CAAC;IAClD,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,KAAK,IAAI,EAAE,CAAC;IAC/C,GAAG,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;IACjD,GAAG,CAAC,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,OAAO,IAAI,EAAE,CAAC;CACrC,CAAC;AAJW,QAAA,gBAAgB,oBAI3B;AAEK,MAAM,WAAW,GAAG,CAAC,IAAc,EAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,KAAK,CAAC;AAAlF,QAAA,WAAW,eAAuE;AACxF,MAAM,WAAW,GAAG,CAAC,IAAc,EAAqB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,KAAK,CAAC;AAAlF,QAAA,WAAW,eAAuE;AACxF,MAAM,aAAa,GAAG,CAAC,IAAc,EAAuB,EAAE,CAAC,IAAI,CAAC,IAAI,KAAK,eAAQ,CAAC,OAAO,CAAC;AAAxF,QAAA,aAAa,iBAA2E;AAErG;;GAEG;AACI,MAAM,sBAAsB,GAAG,CACpC,KAAa,EACb,EACE,IAAI,GAAG,GAAG,EACV,IAAI,GAAG,EAAE,EACT,UAAU,GAAG,GAAG,EAChB,WAAW,GAAG,GAAG,MAC8D,EAAE,EAC3E,EAAE;IACV,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAoB,CAAC;IAC7C,MAAM,WAAW,GAAG,IAAI,GAAG,EAAiC,CAAC;IAC7D,MAAM,kBAAkB,GAAG,IAAI,GAAG,EAAkB,CAAC;IAErD,uDAAuD;IACvD,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,IAAI,IAAA,mBAAW,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,kBAAkB,CAAC,GAAG,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC9C,CAAC,CAAC,CAAC;YACH,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,IAAI,IAAA,mBAAW,EAAC,IAAI,CAAC,EAAE,CAAC;YAC7B,WAAW,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QACrC,CAAC;aAAM,CAAC;YACN,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;QAClC,CAAC;IACH,CAAC,CAAC,CAAC;IAEH,mCAAmC;IACnC,MAAM,QAAQ,GAAG,IAAI,GAAG,EAAkB,CAAC,CAAC,gCAAgC;IAC5E,MAAM,UAAU,GAAG,IAAI,GAAG,EAAoB,CAAC,CAAC,4BAA4B;IAE5E,wDAAwD;IACxD,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,EAAE,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IAEH,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAe,EAAE,CAAC;QAE7B,IAAI,IAAA,mBAAW,EAAC,IAAI,CAAC,EAAE,CAAC;YACtB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;QACxC,CAAC;aAAM,CAAC;YACN,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,MAAM,EAAE,EAAE;gBACjC,MAAM,IAAI,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,CAAC,CAAC;gBAClC,IAAI,CAAC,IAAI;oBAAE,OAAO;gBAClB,KAAK,CAAC,IAAI,CAAC,GAAG,IAAA,wBAAgB,EAAC,IAAI,CAAC,CAAC,CAAC;YACxC,CAAC,CAAC,CAAC;QACL,CAAC;QAED,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;YACrB,IAAI,CAAC,IAAI,CAAC,MAAM;gBAAE,OAAO;YAEzB,MAAM,UAAU,GAAG,QAAQ,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;YAC7C,MAAM,iBAAiB,GAAG,UAAU,CAAC,CAAC,CAAC,kBAAkB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;YAClF,MAAM,WAAW,GAAG,WAAW,CAAC,GAAG,CAAC,iBAAiB,IAAI,IAAI,CAAC,MAAM,CAAC,CAAC;YAEtE,IAAI,CAAC,WAAW;gBAAE,OAAO;YAEzB,4CAA4C;YAC5C,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;YACnD,IAAI,CAAC,QAAQ,CAAC,QAAQ,CAAC,WAAW,CAAC,MAAM,CAAC,EAAE,CAAC;gBAC3C,QAAQ,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,CAAC,CAAC;gBAClC,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,CAAC;YACxC,CAAC;YAED,0BAA0B;YAC1B,QAAQ,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QAChD,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,0CAA0C;IAC1C,MAAM,KAAK,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,MAAM,EAAE,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC;IAEtF,IAAI,KAAK,CAAC,MAAM,KAAK,CAAC;QAAE,MAAM,IAAI,KAAK,CAAC,oCAAoC,CAAC,CAAC;IAE9E,yFAAyF;IACzF,IAAI,KAAK,CAAC,MAAM,KAAK,WAAW,CAAC,IAAI,EAAE,CAAC;QACtC,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,IAAI,CAAC,GAAG,CAAC,CAAC;QACV,MAAM,cAAc,GAAG,CAAC,CAAC,CAAC,mBAAmB;QAE7C,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YAC5B,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YACnB,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC;YAEnB,IAAI,CAAC,KAAK,GAAG,CAAC,CAAC,GAAG,cAAc,KAAK,CAAC,EAAE,CAAC;gBACvC,CAAC,GAAG,CAAC,CAAC;gBACN,CAAC,IAAI,WAAW,GAAG,IAAI,CAAC;YAC1B,CAAC;iBAAM,CAAC;gBACN,CAAC,IAAI,UAAU,GAAG,IAAI,CAAC;YACzB,CAAC;QACH,CAAC,CAAC,CAAC;QAEH,OAAO,KAAK,CAAC;IACf,CAAC;IAED,uDAAuD;IACvD,MAAM,UAAU,GAAG,IAAI,GAAG,EAAkB,CAAC;IAE7C,qDAAqD;IACrD,MAAM,KAAK,GAA6C,EAAE,CAAC;IAE3D,kCAAkC;IAClC,KAAK,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QACrB,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC,CAAC;QAC/B,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,IAAI,CAAC,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC,CAAC;IAChD,CAAC,CAAC,CAAC;IAEH,4BAA4B;IAC5B,OAAO,KAAK,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;QACxB,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,KAAK,CAAC,KAAK,EAAG,CAAC;QACzC,MAAM,QAAQ,GAAG,UAAU,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,EAAE,CAAC;QAE9C,QAAQ,CAAC,OAAO,CAAC,CAAC,OAAO,EAAE,EAAE;YAC3B,MAAM,YAAY,GAAG,UAAU,CAAC,GAAG,CAAC,OAAO,CAAC,CAAC;YAC7C,MAAM,QAAQ,GAAG,KAAK,GAAG,CAAC,CAAC;YAE3B,mEAAmE;YACnE,IAAI,YAAY,KAAK,SAAS,IAAI,QAAQ,GAAG,YAAY,EAAE,CAAC;gBAC1D,UAAU,CAAC,GAAG,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;gBAClC,KAAK,CAAC,IAAI,CAAC,EAAE,MAAM,EAAE,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,CAAC,CAAC;YACnD,CAAC;QACH,CAAC,CAAC,CAAC;IACL,CAAC;IAED,6DAA6D;IAC7D,MAAM,YAAY,GAAG,IAAI,GAAG,EAAqC,CAAC;IAElE,WAAW,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,EAAE;QAC3B,MAAM,KAAK,GAAG,UAAU,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC/C,IAAI,CAAC,YAAY,CAAC,GAAG,CAAC,KAAK,CAAC,EAAE,CAAC;YAC7B,YAAY,CAAC,GAAG,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;QAC9B,CAAC;QACD,YAAY,CAAC,GAAG,CAAC,KAAK,CAAE,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IACtC,CAAC,CAAC,CAAC;IAEH,sDAAsD;IACtD,YAAY,CAAC,OAAO,CAAC,CAAC,YAAY,EAAE,KAAK,EAAE,EAAE;QAC3C,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,CAAC;QACtC,YAAY,CAAC,OAAO,CAAC,CAAC,IAAI,EAAE,KAAK,EAAE,EAAE;YACnC,MAAM,CAAC,GAAG,KAAK,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,CAAC;YAEvC,6DAA6D;YAC7D,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QACvB,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,CAAC;IAEH,OAAO,KAAK,CAAC;AACf,CAAC,CAAC;AApJW,QAAA,sBAAsB,0BAoJjC"}
@@ -1,21 +1,33 @@
1
1
  import type { Diagram } from '@voiceflow/dtos';
2
2
  export declare const getUniqueDiagramCopyName: (originalName: string, existingNames: string[]) => string;
3
- type DiagramPayload = Omit<Diagram, '_id' | 'creatorID' | 'versionID' | 'diagramID'>;
3
+ export type DiagramPayload = Omit<Diagram, '_id' | 'creatorID' | 'versionID' | 'diagramID'>;
4
4
  export declare const componentDiagramPayloadFactory: ({ startNode, diagramName, }: {
5
5
  startNode?: {
6
+ id?: string;
6
7
  name?: string;
7
8
  coords?: [number, number];
8
9
  color?: string;
9
10
  };
10
11
  diagramName: string;
11
12
  }) => DiagramPayload;
12
- export declare const topicDiagramPayloadFactory: ({ diagramName, triggerNodeName, triggerNodeCoords, }: {
13
+ export declare const topicDiagramPayloadFactory: ({ diagramName, triggerNode, }: {
13
14
  diagramName: string;
14
- triggerNodeName?: string;
15
- triggerNodeCoords?: [number, number];
15
+ triggerNode?: {
16
+ id?: string;
17
+ name?: string;
18
+ color?: string;
19
+ coords?: [number, number];
20
+ };
21
+ }) => DiagramPayload;
22
+ export declare const rootDiagramPayloadFactory: ({ diagramName, startNode, }: {
23
+ diagramName: string;
24
+ startNode?: {
25
+ id?: string;
26
+ name?: string;
27
+ coords?: [number, number];
28
+ };
16
29
  }) => DiagramPayload;
17
30
  export declare const templateDiagramPayloadFactory: ({ name }?: {
18
31
  name?: string;
19
32
  }) => DiagramPayload;
20
- export {};
21
33
  //# sourceMappingURL=diagram.util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram.util.d.ts","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAK5D,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,iBAAiB,MAAM,EAAE,WAUrF,CAAC;AAQF,KAAK,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAiBrF,eAAO,MAAM,8BAA8B,gCAGxC;IACD,SAAS,CAAC,EAAE;QAAE,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACzE,WAAW,EAAE,MAAM,CAAC;CACrB,mBAUG,CAAC;AAEL,eAAO,MAAM,0BAA0B,yDAIpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,CAAC;IACzB,iBAAiB,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CACtC,mBAWA,CAAC;AAEF,eAAO,MAAM,6BAA6B,cAAmC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,mBACJ,CAAC"}
1
+ {"version":3,"file":"diagram.util.d.ts","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,OAAO,EAAe,MAAM,iBAAiB,CAAC;AAK5D,eAAO,MAAM,wBAAwB,iBAAkB,MAAM,iBAAiB,MAAM,EAAE,WAUrF,CAAC;AAQF,MAAM,MAAM,cAAc,GAAG,IAAI,CAAC,OAAO,EAAE,KAAK,GAAG,WAAW,GAAG,WAAW,GAAG,WAAW,CAAC,CAAC;AAiB5F,eAAO,MAAM,8BAA8B,gCAGxC;IACD,SAAS,CAAC,EAAE;QAAE,EAAE,CAAC,EAAE,MAAM,CAAC;QAAC,IAAI,CAAC,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,KAAK,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IACtF,WAAW,EAAE,MAAM,CAAC;CACrB,mBAWG,CAAC;AAEL,eAAO,MAAM,0BAA0B,kCAGpC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,CAAC,EAAE;QACZ,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;QACf,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3B,CAAC;CACH,mBAcA,CAAC;AAEF,eAAO,MAAM,yBAAyB,gCAGnC;IACD,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,CAAC,EAAE;QACV,EAAE,CAAC,EAAE,MAAM,CAAC;QACZ,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,MAAM,CAAC,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;KAC3B,CAAC;CACH,mBAYA,CAAC;AAEF,eAAO,MAAM,6BAA6B,cAAmC;IAAE,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,mBAK1F,CAAC"}
@@ -25,21 +25,42 @@ export const componentDiagramPayloadFactory = ({ startNode, diagramName, }) => d
25
25
  type: DiagramType.COMPONENT,
26
26
  nodes: [
27
27
  startNodeFactory({
28
- coords: startNode?.coords ?? START_NODE_POSITION,
29
28
  data: { name: startNode?.name ?? 'Enter', color: startNode?.color },
29
+ coords: startNode?.coords ?? START_NODE_POSITION,
30
+ nodeID: startNode?.id,
30
31
  }),
31
32
  ],
32
33
  });
33
- export const topicDiagramPayloadFactory = ({ diagramName, triggerNodeName, triggerNodeCoords = START_NODE_POSITION, }) => {
34
- const triggerNodeID = Utils.id.objectID();
34
+ export const topicDiagramPayloadFactory = ({ diagramName, triggerNode, }) => {
35
+ const triggerNodeID = triggerNode?.id ?? Utils.id.objectID();
35
36
  return diagramPayloadFactory({
36
37
  name: diagramName,
37
38
  type: DiagramType.TOPIC,
38
39
  nodes: [
39
- blockNodeFactory({ data: { name: triggerNodeName, steps: [triggerNodeID] }, coords: triggerNodeCoords }),
40
+ blockNodeFactory({
41
+ data: { name: triggerNode?.name, steps: [triggerNodeID] },
42
+ coords: triggerNode?.coords ?? START_NODE_POSITION,
43
+ }),
40
44
  triggerNodeFactory({ nodeID: triggerNodeID }),
41
45
  ],
42
46
  });
43
47
  };
44
- export const templateDiagramPayloadFactory = ({ name = 'Template Diagram' } = {}) => diagramPayloadFactory({ name, type: DiagramType.TEMPLATE, nodes: [startNodeFactory()] });
48
+ export const rootDiagramPayloadFactory = ({ diagramName, startNode, }) => {
49
+ return diagramPayloadFactory({
50
+ name: diagramName,
51
+ type: DiagramType.TOPIC,
52
+ nodes: [
53
+ startNodeFactory({
54
+ data: { name: startNode?.name },
55
+ coords: startNode?.coords ?? START_NODE_POSITION,
56
+ nodeID: startNode?.id,
57
+ }),
58
+ ],
59
+ });
60
+ };
61
+ export const templateDiagramPayloadFactory = ({ name = 'Template Diagram' } = {}) => diagramPayloadFactory({
62
+ name,
63
+ type: DiagramType.TEMPLATE,
64
+ nodes: [startNodeFactory({ coords: START_NODE_POSITION })],
65
+ });
45
66
  //# sourceMappingURL=diagram.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"diagram.util.js","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,YAAoB,EAAE,aAAuB,EAAE,EAAE;IACxF,IAAI,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAChG,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,UAAU,GAAG,GAAG,YAAY,UAAU,KAAK,GAAG,CAAC;QAC/C,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAUF,MAAM,qBAAqB,GAAG,CAAwB,EACpD,IAAI,EACJ,IAAI,EACJ,KAAK,GAC+B,EAAkB,EAAE,CAAC,CAAC;IAC1D,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC1C,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,SAAS,EACT,WAAW,GAIZ,EAAE,EAAE,CACH,qBAAqB,CAAC;IACpB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW,CAAC,SAAS;IAC3B,KAAK,EAAE;QACL,gBAAgB,CAAC;YACf,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,mBAAmB;YAChD,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;SACpE,CAAC;KACH;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,WAAW,EACX,eAAe,EACf,iBAAiB,GAAG,mBAAmB,GAKxC,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE1C,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW,CAAC,KAAK;QACvB,KAAK,EAAE;YACL,gBAAgB,CAAC,EAAE,IAAI,EAAE,EAAE,IAAI,EAAE,eAAe,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE,EAAE,MAAM,EAAE,iBAAiB,EAAE,CAAC;YACxG,kBAAkB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;SAC9C;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAAE,IAAI,GAAG,kBAAkB,KAAwB,EAAE,EAAE,EAAE,CACrG,qBAAqB,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,WAAW,CAAC,QAAQ,EAAE,KAAK,EAAE,CAAC,gBAAgB,EAAE,CAAC,EAAE,CAAC,CAAC"}
1
+ {"version":3,"file":"diagram.util.js","sourceRoot":"","sources":["../../src/diagram.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,WAAW,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEnE,OAAO,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,kBAAkB,EAAE,MAAM,aAAa,CAAC;AAErF,MAAM,CAAC,MAAM,wBAAwB,GAAG,CAAC,YAAoB,EAAE,aAAuB,EAAE,EAAE;IACxF,IAAI,UAAU,GAAG,aAAa,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC,CAAC,CAAC,GAAG,YAAY,SAAS,CAAC,CAAC,CAAC,YAAY,CAAC;IAChG,IAAI,KAAK,GAAG,CAAC,CAAC;IAEd,OAAO,aAAa,CAAC,QAAQ,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,UAAU,GAAG,GAAG,YAAY,UAAU,KAAK,GAAG,CAAC;QAC/C,KAAK,EAAE,CAAC;IACV,CAAC;IAED,OAAO,UAAU,CAAC;AACpB,CAAC,CAAC;AAUF,MAAM,qBAAqB,GAAG,CAAwB,EACpD,IAAI,EACJ,IAAI,EACJ,KAAK,GAC+B,EAAkB,EAAE,CAAC,CAAC;IAC1D,IAAI;IACJ,IAAI;IACJ,IAAI,EAAE,GAAG;IACT,KAAK,EAAE,MAAM,CAAC,WAAW,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC,IAAI,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC,CAAC;IACnE,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,CAAC;IACV,QAAQ,EAAE,KAAK,CAAC,IAAI,CAAC,mBAAmB,EAAE;IAC1C,SAAS,EAAE,EAAE;CACd,CAAC,CAAC;AAEH,MAAM,CAAC,MAAM,8BAA8B,GAAG,CAAC,EAC7C,SAAS,EACT,WAAW,GAIZ,EAAE,EAAE,CACH,qBAAqB,CAAC;IACpB,IAAI,EAAE,WAAW;IACjB,IAAI,EAAE,WAAW,CAAC,SAAS;IAC3B,KAAK,EAAE;QACL,gBAAgB,CAAC;YACf,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,IAAI,OAAO,EAAE,KAAK,EAAE,SAAS,EAAE,KAAK,EAAE;YACnE,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,mBAAmB;YAChD,MAAM,EAAE,SAAS,EAAE,EAAE;SACtB,CAAC;KACH;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,0BAA0B,GAAG,CAAC,EACzC,WAAW,EACX,WAAW,GASZ,EAAE,EAAE;IACH,MAAM,aAAa,GAAG,WAAW,EAAE,EAAE,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE,CAAC;IAE7D,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW,CAAC,KAAK;QACvB,KAAK,EAAE;YACL,gBAAgB,CAAC;gBACf,IAAI,EAAE,EAAE,IAAI,EAAE,WAAW,EAAE,IAAI,EAAE,KAAK,EAAE,CAAC,aAAa,CAAC,EAAE;gBACzD,MAAM,EAAE,WAAW,EAAE,MAAM,IAAI,mBAAmB;aACnD,CAAC;YACF,kBAAkB,CAAC,EAAE,MAAM,EAAE,aAAa,EAAE,CAAC;SAC9C;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,yBAAyB,GAAG,CAAC,EACxC,WAAW,EACX,SAAS,GAQV,EAAE,EAAE;IACH,OAAO,qBAAqB,CAAC;QAC3B,IAAI,EAAE,WAAW;QACjB,IAAI,EAAE,WAAW,CAAC,KAAK;QACvB,KAAK,EAAE;YACL,gBAAgB,CAAC;gBACf,IAAI,EAAE,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE;gBAC/B,MAAM,EAAE,SAAS,EAAE,MAAM,IAAI,mBAAmB;gBAChD,MAAM,EAAE,SAAS,EAAE,EAAE;aACtB,CAAC;SACH;KACF,CAAC,CAAC;AACL,CAAC,CAAC;AAEF,MAAM,CAAC,MAAM,6BAA6B,GAAG,CAAC,EAAE,IAAI,GAAG,kBAAkB,KAAwB,EAAE,EAAE,EAAE,CACrG,qBAAqB,CAAC;IACpB,IAAI;IACJ,IAAI,EAAE,WAAW,CAAC,QAAQ;IAC1B,KAAK,EAAE,CAAC,gBAAgB,CAAC,EAAE,MAAM,EAAE,mBAAmB,EAAE,CAAC,CAAC;CAC3D,CAAC,CAAC"}
@@ -1,12 +1,12 @@
1
- import type { BlockNode, DiagramNode, StartNode, TriggerNode } from '@voiceflow/dtos';
1
+ import type { BaseNode, BlockNode, DiagramNode, StartNode, TriggerNode } from '@voiceflow/dtos';
2
2
  export declare const diagramNodeFactory: <Node extends DiagramNode>(node: Omit<Node, "nodeID"> & {
3
3
  nodeID?: string;
4
4
  }) => Node;
5
- type NodeFactoryOptions<Node extends DiagramNode> = Pick<Node, 'coords'> & {
5
+ interface NodeFactoryOptions<Node extends DiagramNode> extends Pick<Node, 'coords'> {
6
6
  data?: Partial<Node['data']>;
7
7
  nodeID?: string;
8
- };
9
- export declare const startNodeFactory: ({ data, coords, ...rest }?: NodeFactoryOptions<StartNode>) => {
8
+ }
9
+ export declare const startNodeFactory: ({ data, coords, ...rest }: NodeFactoryOptions<StartNode>) => {
10
10
  type: "start";
11
11
  data: {
12
12
  portsV2: {
@@ -110,7 +110,7 @@ export declare const startNodeFactory: ({ data, coords, ...rest }?: NodeFactoryO
110
110
  })[] | undefined;
111
111
  };
112
112
  nodeID: string;
113
- coords?: [number, number] | undefined;
113
+ coords: [number, number];
114
114
  };
115
115
  export declare const blockNodeFactory: ({ data, ...rest }: NodeFactoryOptions<BlockNode>) => {
116
116
  type: "block";
@@ -290,5 +290,38 @@ export declare const triggerNodeFactory: ({ data, ...reset }?: NodeFactoryOption
290
290
  nodeID: string;
291
291
  coords?: [number, number] | undefined;
292
292
  };
293
+ export declare const getFlatNodePorts: (node: BaseNode) => {
294
+ type: string;
295
+ id: string;
296
+ target: string | null;
297
+ data?: {
298
+ type?: "CURVED" | "STRAIGHT" | null | undefined;
299
+ color?: string | null | undefined;
300
+ points?: {
301
+ point: [number, number];
302
+ toTop?: boolean | null | undefined;
303
+ locked?: boolean | null | undefined;
304
+ reversed?: boolean | null | undefined;
305
+ allowedToTop?: boolean | null | undefined;
306
+ }[] | null | undefined;
307
+ caption?: {
308
+ value: string;
309
+ width: number;
310
+ height: number;
311
+ } | null | undefined;
312
+ } | null | undefined;
313
+ }[];
314
+ export declare const isStartNode: (node: BaseNode) => node is StartNode;
315
+ export declare const isBlockNode: (node: BaseNode) => node is BlockNode;
316
+ export declare const isTriggerNode: (node: BaseNode) => node is TriggerNode;
317
+ /**
318
+ * mutates nodes in place - creates horizontal tree layout
319
+ */
320
+ export declare const normalizeNodePositions: <Node extends BaseNode>(nodes: Node[], { hGap, vGap, blockWidth, blockHeight, }?: {
321
+ hGap?: number;
322
+ vGap?: number;
323
+ blockWidth?: number;
324
+ blockHeight?: number;
325
+ }) => Node[];
293
326
  export {};
294
327
  //# sourceMappingURL=node.util.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.util.d.ts","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,WAAW,EAAE,SAAS,EAAE,WAAW,EAAE,MAAM,iBAAiB,CAAC;AAKtF,eAAO,MAAM,kBAAkB,GAAI,IAAI,SAAS,WAAW,QAAQ,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IAAE,MAAM,CAAC,EAAE,MAAM,CAAA;CAAE,KAAG,IAIpG,CAAC;AAEb,KAAK,kBAAkB,CAAC,IAAI,SAAS,WAAW,IAAI,IAAI,CAAC,IAAI,EAAE,QAAQ,CAAC,GAAG;IACzE,IAAI,CAAC,EAAE,OAAO,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC,CAAC;IAC7B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB,CAAC;AAEF,eAAO,MAAM,gBAAgB,+BAAqD,kBAAkB,CAAC,SAAS,CAAC;;;;;;;;oBA2Cmz3E,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAA2d,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAAuW,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;YAAkP,CAAC;aAAmC,CAAC;aAAmC,CAAC;aAAmC,CAAC;gBAAwC,CAAC;;;;;;;6BAAoM,CAAC;4BAAgC,CAAC;;;;;wBAA4J,CAAC;6BAA2D,CAAC;;;iBAAsH,CAAC;;;;oBAA+G,CAAC;;;;;;;;;;;;CA5B10+E,CAAC;AAEL,eAAO,MAAM,gBAAgB,sBAAuB,kBAAkB,CAAC,SAAS,CAAC;;;;;;;;;;oBA0BuitD,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAA2d,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAAuW,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;;CAhBl/xD,CAAC;AAEL,eAAO,MAAM,kBAAkB,wBAAwB,kBAAkB,CAAC,WAAW,CAAC;;;;;;;;oBAciz2F,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAA2d,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;oBAAuW,CAAC;wBAA4B,CAAC;yBAAqE,CAAC;0BAAuD,CAAC;;6BAAkF,CAAC;8BAA4D,CAAC;gCAA8D,CAAC;oCAAkE,CAAC;;2BAAqG,CAAC;;;;;;;;;;;;;;;6BAAub,CAAC;4BAAgC,CAAC;;;;;wBAA4J,CAAC;6BAA2D,CAAC;;;iBAAsH,CAAC;;;;oBAA+G,CAAC;;;;;;;;;YAAgN,CAAC;;;;CAD329F,CAAC"}
1
+ {"version":3,"file":"node.util.d.ts","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"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"}
@@ -1,11 +1,12 @@
1
+ /* eslint-disable no-param-reassign */
1
2
  import { Utils } from '@voiceflow/common';
2
- import { NodeSystemPortType, NodeType, START_NODE_POSITION } from '@voiceflow/dtos';
3
+ import { NodeSystemPortType, NodeType } from '@voiceflow/dtos';
3
4
  import { nodePortFactory, nodePortsFactory } from './node-port.util.js';
4
5
  export const diagramNodeFactory = (node) => ({
5
6
  ...node,
6
7
  nodeID: node.nodeID ?? Utils.id.objectID(),
7
8
  });
8
- export const startNodeFactory = ({ data, coords = START_NODE_POSITION, ...rest } = {}) => diagramNodeFactory({
9
+ export const startNodeFactory = ({ data, coords, ...rest }) => diagramNodeFactory({
9
10
  ...rest,
10
11
  type: NodeType.START,
11
12
  data: {
@@ -41,4 +42,137 @@ export const triggerNodeFactory = ({ data, ...reset } = {}) => diagramNodeFactor
41
42
  }),
42
43
  },
43
44
  });
45
+ export const getFlatNodePorts = (node) => [
46
+ ...Object.values(node.data.portsV2.byKey ?? {}),
47
+ ...Object.values(node.data.portsV2.builtIn ?? {}),
48
+ ...(node.data.portsV2.dynamic ?? []),
49
+ ];
50
+ export const isStartNode = (node) => node.type === NodeType.START;
51
+ export const isBlockNode = (node) => node.type === NodeType.BLOCK;
52
+ export const isTriggerNode = (node) => node.type === NodeType.TRIGGER;
53
+ /**
54
+ * mutates nodes in place - creates horizontal tree layout
55
+ */
56
+ export const normalizeNodePositions = (nodes, { hGap = 100, vGap = 80, blockWidth = 330, blockHeight = 250, } = {}) => {
57
+ const stepsMap = new Map();
58
+ const parentNodes = new Map();
59
+ const stepIDToBlockIDMap = new Map();
60
+ // Separate parent nodes (blocks/start) from step nodes
61
+ nodes.forEach((node) => {
62
+ if (isBlockNode(node)) {
63
+ node.data.steps.forEach((stepID) => {
64
+ stepIDToBlockIDMap.set(stepID, node.nodeID);
65
+ });
66
+ parentNodes.set(node.nodeID, node);
67
+ }
68
+ else if (isStartNode(node)) {
69
+ parentNodes.set(node.nodeID, node);
70
+ }
71
+ else {
72
+ stepsMap.set(node.nodeID, node);
73
+ }
74
+ });
75
+ // Build parent-child relationships
76
+ const parentOf = new Map(); // child nodeID -> parent nodeID
77
+ const childrenOf = new Map(); // nodeID -> child nodeIDs[]
78
+ // Initialize empty children arrays for all parent nodes
79
+ parentNodes.forEach((node) => {
80
+ childrenOf.set(node.nodeID, []);
81
+ });
82
+ parentNodes.forEach((node) => {
83
+ const ports = [];
84
+ if (isStartNode(node)) {
85
+ ports.push(...getFlatNodePorts(node));
86
+ }
87
+ else {
88
+ node.data.steps.forEach((stepID) => {
89
+ const step = stepsMap.get(stepID);
90
+ if (!step)
91
+ return;
92
+ ports.push(...getFlatNodePorts(step));
93
+ });
94
+ }
95
+ ports.forEach((port) => {
96
+ if (!port.target)
97
+ return;
98
+ const targetStep = stepsMap.get(port.target);
99
+ const targetStepBlockID = targetStep ? stepIDToBlockIDMap.get(port.target) : null;
100
+ const targetBlock = parentNodes.get(targetStepBlockID ?? port.target);
101
+ if (!targetBlock)
102
+ return;
103
+ // Add child relationship (avoid duplicates)
104
+ const children = childrenOf.get(node.nodeID) ?? [];
105
+ if (!children.includes(targetBlock.nodeID)) {
106
+ children.push(targetBlock.nodeID);
107
+ childrenOf.set(node.nodeID, children);
108
+ }
109
+ // Set parent relationship
110
+ parentOf.set(targetBlock.nodeID, node.nodeID);
111
+ });
112
+ });
113
+ // Find root nodes (nodes with no parents)
114
+ const roots = Array.from(parentNodes.values()).filter((b) => !parentOf.has(b.nodeID));
115
+ if (roots.length === 0)
116
+ throw new Error('Graph has cycles or no root block.');
117
+ // If all nodes are roots (no parent-child relationships), position them in a simple grid
118
+ if (roots.length === parentNodes.size) {
119
+ let x = 0;
120
+ let y = 0;
121
+ const maxNodesPerRow = 3; // Adjust as needed
122
+ roots.forEach((node, index) => {
123
+ node.coords[0] = x;
124
+ node.coords[1] = y;
125
+ if ((index + 1) % maxNodesPerRow === 0) {
126
+ x = 0;
127
+ y += blockHeight + vGap;
128
+ }
129
+ else {
130
+ x += blockWidth + hGap;
131
+ }
132
+ });
133
+ return nodes;
134
+ }
135
+ // First pass: assign depth (X coordinate) to each node
136
+ const nodeDepths = new Map();
137
+ // Use BFS to assign depths, handling cycles properly
138
+ const queue = [];
139
+ // Start with all roots at depth 0
140
+ roots.forEach((root) => {
141
+ nodeDepths.set(root.nodeID, 0);
142
+ queue.push({ nodeId: root.nodeID, depth: 0 });
143
+ });
144
+ // Process queue until empty
145
+ while (queue.length > 0) {
146
+ const { nodeId, depth } = queue.shift();
147
+ const children = childrenOf.get(nodeId) ?? [];
148
+ children.forEach((childId) => {
149
+ const currentDepth = nodeDepths.get(childId);
150
+ const newDepth = depth + 1;
151
+ // Only update if we haven't seen this node or found a shorter path
152
+ if (currentDepth === undefined || newDepth < currentDepth) {
153
+ nodeDepths.set(childId, newDepth);
154
+ queue.push({ nodeId: childId, depth: newDepth });
155
+ }
156
+ });
157
+ }
158
+ // Second pass: group nodes by depth and assign Y coordinates
159
+ const nodesByDepth = new Map();
160
+ parentNodes.forEach((node) => {
161
+ const depth = nodeDepths.get(node.nodeID) ?? 0;
162
+ if (!nodesByDepth.has(depth)) {
163
+ nodesByDepth.set(depth, []);
164
+ }
165
+ nodesByDepth.get(depth).push(node);
166
+ });
167
+ // Position nodes: X by depth, Y by order within depth
168
+ nodesByDepth.forEach((nodesAtDepth, depth) => {
169
+ const x = depth * (blockWidth + hGap);
170
+ nodesAtDepth.forEach((node, index) => {
171
+ const y = index * (blockHeight + vGap);
172
+ // Create a new coords array to avoid shared reference issues
173
+ node.coords = [x, y];
174
+ });
175
+ });
176
+ return nodes;
177
+ };
44
178
  //# sourceMappingURL=node.util.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"node.util.js","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,EAAE,MAAM,mBAAmB,CAAC;AAE1C,OAAO,EAAE,kBAAkB,EAAE,QAAQ,EAAE,mBAAmB,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,EAAE,eAAe,EAAE,gBAAgB,EAAE,MAAM,kBAAkB,CAAC;AAErE,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAA2B,IAAgD,EAAQ,EAAE,CACrH,CAAC;IACC,GAAG,IAAI;IACP,MAAM,EAAE,IAAI,CAAC,MAAM,IAAI,KAAK,CAAC,EAAE,CAAC,QAAQ,EAAE;CAC3C,CAAS,CAAC;AAOb,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,MAAM,GAAG,mBAAmB,EAAE,GAAG,IAAI,KAAoC,EAAE,EAAE,EAAE,CACtH,kBAAkB,CAAY;IAC5B,GAAG,IAAI;IACP,IAAI,EAAE,QAAQ,CAAC,KAAK;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,OAAO;QAC3B,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,SAAS;QAC/B,QAAQ,EAAE,IAAI,EAAE,QAAQ,IAAI,EAAE;QAC9B,OAAO,EACL,IAAI,EAAE,OAAO;YACb,gBAAgB,CAAC;gBACf,OAAO,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;aAC3F,CAAC;KACL;IACD,MAAM;CACP,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,gBAAgB,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,IAAI,EAAiC,EAAE,EAAE,CACnF,kBAAkB,CAAY;IAC5B,GAAG,IAAI;IACP,IAAI,EAAE,QAAQ,CAAC,KAAK;IACpB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,OAAO,EAAE,IAAI,EAAE,OAAO,IAAI,gBAAgB,EAAE;KAC7C;CACF,CAAC,CAAC;AAEL,MAAM,CAAC,MAAM,kBAAkB,GAAG,CAAC,EAAE,IAAI,EAAE,GAAG,KAAK,KAAsC,EAAE,EAAE,EAAE,CAC7F,kBAAkB,CAAc;IAC9B,GAAG,KAAK;IACR,IAAI,EAAE,QAAQ,CAAC,OAAO;IACtB,IAAI,EAAE;QACJ,IAAI,EAAE,IAAI,EAAE,IAAI,IAAI,EAAE;QACtB,KAAK,EAAE,IAAI,EAAE,KAAK,IAAI,EAAE;QACxB,OAAO,EACL,IAAI,EAAE,OAAO;YACb,gBAAgB,CAAC;gBACf,KAAK,EAAE,EAAE,CAAC,kBAAkB,CAAC,IAAI,CAAC,EAAE,eAAe,CAAC,EAAE,IAAI,EAAE,kBAAkB,CAAC,IAAI,EAAE,CAAC,EAAE;aACzF,CAAC;KACL;CACF,CAAC,CAAC"}
1
+ {"version":3,"file":"node.util.js","sourceRoot":"","sources":["../../src/node.util.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@voiceflow/utils-designer",
3
- "version": "1.63.25",
3
+ "version": "1.65.0",
4
4
  "exports": {
5
5
  ".": {
6
6
  "types": "./build/cjs/main.d.ts",
@@ -32,7 +32,7 @@
32
32
  },
33
33
  "dependencies": {
34
34
  "@voiceflow/common": "8.8.0",
35
- "@voiceflow/dtos": "1.376.0",
35
+ "@voiceflow/dtos": "1.378.0",
36
36
  "bidirectional-adapter": "1.2.1",
37
37
  "polished": "4.2.2",
38
38
  "slate": "0.94.1",
@@ -44,5 +44,5 @@
44
44
  "volta": {
45
45
  "extends": "../../package.json"
46
46
  },
47
- "gitHead": "10b69131802e0fbd830e7636d1cbbaf0d4a98cac"
47
+ "gitHead": "be7fec75f461b01e0bf6aa2034035a58eb9bab44"
48
48
  }