@n8n/workflow-sdk 0.35.2 → 0.36.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.
Files changed (30) hide show
  1. package/dist/build.tsbuildinfo +1 -1
  2. package/dist/generate-types/generate-types.d.ts +4 -2
  3. package/dist/generate-types/generate-types.js +175 -111
  4. package/dist/generate-types/generate-types.js.map +1 -1
  5. package/dist/generate-types/generate-zod-schemas.js.map +1 -1
  6. package/dist/index.d.ts +1 -1
  7. package/dist/index.js +4 -2
  8. package/dist/index.js.map +1 -1
  9. package/dist/validation/index.d.ts +1 -0
  10. package/dist/validation/index.js +4 -1
  11. package/dist/validation/index.js.map +1 -1
  12. package/dist/validation/required-subnode-connections.d.ts +36 -0
  13. package/dist/validation/required-subnode-connections.js +131 -0
  14. package/dist/validation/required-subnode-connections.js.map +1 -0
  15. package/dist/validation.d.ts +1 -1
  16. package/dist/validation.js +3 -1
  17. package/dist/validation.js.map +1 -1
  18. package/dist/workflow-builder/group-layout-utils.d.ts +32 -0
  19. package/dist/workflow-builder/group-layout-utils.js +211 -0
  20. package/dist/workflow-builder/group-layout-utils.js.map +1 -0
  21. package/dist/workflow-builder/layout-utils.d.ts +1 -1
  22. package/dist/workflow-builder/layout-utils.js +212 -203
  23. package/dist/workflow-builder/layout-utils.js.map +1 -1
  24. package/dist/workflow-builder/node-builders/node-builder.d.ts +1 -1
  25. package/dist/workflow-builder/node-builders/node-builder.js +12 -1
  26. package/dist/workflow-builder/node-builders/node-builder.js.map +1 -1
  27. package/dist/workflow-builder/subnode-utils.js.map +1 -1
  28. package/dist/workflow-builder.js +15 -3
  29. package/dist/workflow-builder.js.map +1 -1
  30. package/package.json +10 -7
@@ -9,6 +9,7 @@ exports.resolveStickyGeometry = resolveStickyGeometry;
9
9
  exports.calculateNodePositionsDagre = calculateNodePositionsDagre;
10
10
  const dagre_1 = __importDefault(require("@dagrejs/dagre"));
11
11
  const constants_1 = require("./constants");
12
+ const group_layout_utils_1 = require("./group-layout-utils");
12
13
  const string_utils_1 = require("./string-utils");
13
14
  const base_1 = require("../types/base");
14
15
  function calculateNodePositions(nodes) {
@@ -226,6 +227,36 @@ function isCoveredBy(parent, child) {
226
227
  function centerHorizontally(container, target) {
227
228
  return container.x + container.width / 2 - target.width / 2;
228
229
  }
230
+ function createParentGraph(nonStickyNames, aiParentNames, aiConfigNames, nodes) {
231
+ const parentGraph = new dagre_1.default.graphlib.Graph();
232
+ parentGraph.setGraph({});
233
+ parentGraph.setDefaultEdgeLabel(() => ({}));
234
+ for (const name of nonStickyNames) {
235
+ const { width, height } = getNodeDimensions(name, aiParentNames, aiConfigNames, nodes);
236
+ const explicitPosition = nodes.get(name)?.instance.config?.position;
237
+ parentGraph.setNode(name, {
238
+ width,
239
+ height,
240
+ ...(explicitPosition ? { x: explicitPosition[0], y: explicitPosition[1] } : {}),
241
+ });
242
+ }
243
+ return parentGraph;
244
+ }
245
+ function addConnectionEdges(parentGraph, nonStickyNames, nodes) {
246
+ const nonStickySet = new Set(nonStickyNames);
247
+ for (const name of nonStickyNames) {
248
+ const graphNode = nodes.get(name);
249
+ for (const [, outputMap] of graphNode.connections) {
250
+ for (const targets of outputMap.values()) {
251
+ for (const target of targets) {
252
+ if (nonStickySet.has(target.node)) {
253
+ parentGraph.setEdge(name, target.node);
254
+ }
255
+ }
256
+ }
257
+ }
258
+ }
259
+ }
229
260
  function createSubGraph(nodeIds, parent) {
230
261
  const subGraph = new dagre_1.default.graphlib.Graph();
231
262
  subGraph.setGraph({
@@ -239,13 +270,66 @@ function createSubGraph(nodeIds, parent) {
239
270
  parent
240
271
  .nodes()
241
272
  .filter((id) => nodeIdSet.has(id))
242
- .forEach((id) => subGraph.setNode(id, parent.node(id)));
273
+ .forEach((id) => subGraph.setNode(id, { ...parent.node(id) }));
243
274
  parent
244
275
  .edges()
245
276
  .filter((edge) => nodeIdSet.has(edge.v) && nodeIdSet.has(edge.w))
246
277
  .forEach((edge) => subGraph.setEdge(edge.v, edge.w, parent.edge(edge)));
247
278
  return subGraph;
248
279
  }
280
+ function hasCompleteAiSubtree(nodeIds, parentGraph, aiParentNames, aiConfigNames) {
281
+ const memberIds = new Set(nodeIds);
282
+ const aiParents = [...aiParentNames].filter((parentId) => {
283
+ if (memberIds.has(parentId))
284
+ return true;
285
+ return getAllConnectedAiConfigNodes(parentGraph, parentId, aiConfigNames).some((id) => memberIds.has(id));
286
+ });
287
+ for (const aiParentId of aiParents) {
288
+ const aiSubtree = new Set([
289
+ aiParentId,
290
+ ...getAllConnectedAiConfigNodes(parentGraph, aiParentId, aiConfigNames),
291
+ ]);
292
+ if ([...aiSubtree].some((id) => !memberIds.has(id)))
293
+ return false;
294
+ }
295
+ return nodeIds.every((id) => !aiConfigNames.has(id) ||
296
+ aiParents.some((parentId) => {
297
+ const aiSubtree = new Set([
298
+ parentId,
299
+ ...getAllConnectedAiConfigNodes(parentGraph, parentId, aiConfigNames),
300
+ ]);
301
+ return aiSubtree.has(id);
302
+ }));
303
+ }
304
+ function layoutGroupMembers(nodeIds, parentGraph, aiParentNames, aiConfigNames, nodes) {
305
+ const subgraph = createSubGraph(nodeIds, parentGraph);
306
+ const containsAiNode = nodeIds.some((id) => aiParentNames.has(id) || aiConfigNames.has(id));
307
+ if (!containsAiNode) {
308
+ dagre_1.default.layout(subgraph, { disableOptimalOrderHeuristic: true });
309
+ return subgraph;
310
+ }
311
+ const subgraphs = layoutSubgraphs(subgraph, aiParentNames, aiConfigNames);
312
+ const boxes = boxesFromSubgraphs(subgraphs, arrangeSubgraphs(subgraphs), new Map(), nodes, new Map());
313
+ alignAiSubgraphs(subgraphs, boxes);
314
+ const laidOut = new dagre_1.default.graphlib.Graph();
315
+ laidOut.setGraph(subgraph.graph());
316
+ laidOut.setDefaultEdgeLabel(() => ({}));
317
+ for (const nodeId of nodeIds) {
318
+ const box = boxes[nodeId];
319
+ if (!box)
320
+ continue;
321
+ laidOut.setNode(nodeId, {
322
+ x: box.x + box.width / 2,
323
+ y: box.y + box.height / 2,
324
+ width: box.width,
325
+ height: box.height,
326
+ });
327
+ }
328
+ for (const edge of subgraph.edges()) {
329
+ laidOut.setEdge(edge.v, edge.w, subgraph.edge(edge));
330
+ }
331
+ return laidOut;
332
+ }
249
333
  function createVerticalGraph(items) {
250
334
  const graph = new dagre_1.default.graphlib.Graph();
251
335
  graph.setGraph({
@@ -284,6 +368,121 @@ function createAiSubGraph(parent, nodeIds) {
284
368
  .forEach((edge) => graph.setEdge(edge.w, edge.v));
285
369
  return graph;
286
370
  }
371
+ function layoutSubgraphs(parentGraph, aiParentNames, aiConfigNames) {
372
+ return dagre_1.default.graphlib.alg.components(parentGraph).map((nodeIds) => {
373
+ const subgraph = createSubGraph(nodeIds, parentGraph);
374
+ const aiParentsInSubgraph = subgraph.nodes().filter((id) => aiParentNames.has(id));
375
+ const aiGraphs = aiParentsInSubgraph.map((aiParentId) => {
376
+ const configNodeIds = getAllConnectedAiConfigNodes(subgraph, aiParentId, aiConfigNames);
377
+ const allAiNodeIds = configNodeIds.concat(aiParentId);
378
+ const aiGraph = createAiSubGraph(subgraph, allAiNodeIds);
379
+ const configNodeIdSet = new Set(configNodeIds);
380
+ const rootEdges = subgraph
381
+ .edges()
382
+ .filter((edge) => (edge.v === aiParentId || edge.w === aiParentId) &&
383
+ !configNodeIdSet.has(edge.v) &&
384
+ !configNodeIdSet.has(edge.w));
385
+ configNodeIds.forEach((id) => subgraph.removeNode(id));
386
+ dagre_1.default.layout(aiGraph, { disableOptimalOrderHeuristic: true });
387
+ const aiBoundingBox = boundingBoxFromGraph(aiGraph);
388
+ subgraph.setNode(aiParentId, {
389
+ width: aiBoundingBox.width,
390
+ height: aiBoundingBox.height,
391
+ });
392
+ rootEdges.forEach((edge) => subgraph.setEdge(edge));
393
+ return { graph: aiGraph, boundingBox: aiBoundingBox, aiParentId };
394
+ });
395
+ dagre_1.default.layout(subgraph, { disableOptimalOrderHeuristic: true });
396
+ return { graph: subgraph, aiGraphs, boundingBox: boundingBoxFromGraph(subgraph) };
397
+ });
398
+ }
399
+ function arrangeSubgraphs(subgraphs) {
400
+ if (subgraphs.length <= 1)
401
+ return undefined;
402
+ const compositeGraph = createVerticalGraph(subgraphs.map(({ boundingBox }, index) => ({
403
+ box: boundingBox,
404
+ id: index.toString(),
405
+ })));
406
+ dagre_1.default.layout(compositeGraph);
407
+ return compositeGraph;
408
+ }
409
+ function boxesFromSubgraphs(subgraphs, compositeGraph, groupByGraphId, nodes, keyByNodeId) {
410
+ const boundingBoxByNodeId = {};
411
+ subgraphs.forEach(({ graph, aiGraphs }, index) => {
412
+ let offset = { x: 0, y: 0 };
413
+ if (compositeGraph) {
414
+ const subgraphPosition = compositeGraph.node(index.toString());
415
+ offset = {
416
+ x: 0,
417
+ y: subgraphPosition.y - subgraphPosition.height / 2,
418
+ };
419
+ }
420
+ const aiParentIds = new Set(aiGraphs.map(({ aiParentId }) => aiParentId));
421
+ for (const nodeId of graph.nodes()) {
422
+ const { x, y, width, height } = graph.node(nodeId);
423
+ const box = {
424
+ x: x + offset.x - width / 2,
425
+ y: y + offset.y - height / 2,
426
+ width,
427
+ height,
428
+ };
429
+ const group = groupByGraphId.get(nodeId);
430
+ if (group) {
431
+ (0, group_layout_utils_1.placeGroupMembers)(group, box, boundingBoxByNodeId, {
432
+ boundingBoxFromGraph,
433
+ compositeBoundingBox,
434
+ keyByNodeId,
435
+ nodes,
436
+ snapToGrid,
437
+ wrappingBoxFor,
438
+ });
439
+ continue;
440
+ }
441
+ if (!aiParentIds.has(nodeId)) {
442
+ boundingBoxByNodeId[nodeId] = box;
443
+ continue;
444
+ }
445
+ const aiGraphInfo = aiGraphs.find(({ aiParentId }) => aiParentId === nodeId);
446
+ if (!aiGraphInfo)
447
+ continue;
448
+ for (const aiNodeId of aiGraphInfo.graph.nodes()) {
449
+ const aiNode = aiGraphInfo.graph.node(aiNodeId);
450
+ boundingBoxByNodeId[aiNodeId] = {
451
+ x: aiNode.x + box.x - aiNode.width / 2,
452
+ y: aiNode.y + box.y - aiNode.height / 2,
453
+ width: aiNode.width,
454
+ height: aiNode.height,
455
+ };
456
+ }
457
+ }
458
+ });
459
+ return boundingBoxByNodeId;
460
+ }
461
+ function alignAiSubgraphs(subgraphs, boundingBoxByNodeId) {
462
+ subgraphs
463
+ .flatMap(({ aiGraphs }) => aiGraphs)
464
+ .forEach(({ graph }) => {
465
+ const aiNodes = graph.nodes();
466
+ const boxes = aiNodes
467
+ .map((id) => boundingBoxByNodeId[id])
468
+ .filter((b) => b !== undefined);
469
+ if (boxes.length === 0)
470
+ return;
471
+ const aiGraphBoundingBox = compositeBoundingBox(boxes);
472
+ const aiNodeVerticalCorrection = aiGraphBoundingBox.height / 2 - constants_1.DEFAULT_NODE_SIZE[0] / 2;
473
+ aiGraphBoundingBox.y += aiNodeVerticalCorrection;
474
+ const hasConflictingNodes = Object.entries(boundingBoxByNodeId)
475
+ .filter(([id]) => !graph.hasNode(id))
476
+ .some(([, nodeBoundingBox]) => intersects(aiGraphBoundingBox, nodeBoundingBox, constants_1.NODE_Y_SPACING));
477
+ if (!hasConflictingNodes) {
478
+ for (const aiNode of aiNodes) {
479
+ if (boundingBoxByNodeId[aiNode]) {
480
+ boundingBoxByNodeId[aiNode].y += aiNodeVerticalCorrection;
481
+ }
482
+ }
483
+ }
484
+ });
485
+ }
287
486
  function repositionStickyNotes(stickyNames, nonStickyNames, positionsBefore, positionsAfter, result) {
288
487
  for (const stickyName of stickyNames) {
289
488
  const stickyBoxBefore = positionsBefore.get(stickyName);
@@ -403,80 +602,6 @@ function resolveStickyGeometry(nodes, positions) {
403
602
  }
404
603
  return geometryByName;
405
604
  }
406
- const GROUP_GRAPH_ID_PREFIX = '__nodeGroup__:';
407
- const GROUP_HEADER_TO_MEMBERS_Y = constants_1.GROUP_PADDING_Y_TOP + constants_1.GROUP_HEADER_HEIGHT;
408
- function memberOriginFor(headerCoordinate, padding) {
409
- const base = snapToGrid(headerCoordinate + padding);
410
- let best = base;
411
- let bestError = Infinity;
412
- for (const candidate of [base - constants_1.GRID_SIZE, base, base + constants_1.GRID_SIZE]) {
413
- const error = Math.abs(snapToGrid(candidate - padding) - headerCoordinate);
414
- if (error < bestError) {
415
- bestError = error;
416
- best = candidate;
417
- }
418
- }
419
- return best;
420
- }
421
- function collapseNodeGroups(parentGraph, nodeGroups, keyByNodeId, excludedKeys) {
422
- const collapsed = [];
423
- const claimed = new Set();
424
- const takenKeys = new Set(parentGraph.nodes());
425
- nodeGroups.forEach((group, index) => {
426
- const memberKeys = [];
427
- for (const memberId of group.memberIds) {
428
- const key = keyByNodeId.get(memberId);
429
- if (key === undefined)
430
- continue;
431
- if (excludedKeys.has(key) || claimed.has(key))
432
- return;
433
- if (!parentGraph.hasNode(key))
434
- continue;
435
- if (!memberKeys.includes(key))
436
- memberKeys.push(key);
437
- }
438
- if (memberKeys.length === 0)
439
- return;
440
- const memberKeySet = new Set(memberKeys);
441
- let graphId = `${GROUP_GRAPH_ID_PREFIX}${index}`;
442
- while (takenKeys.has(graphId))
443
- graphId += ':';
444
- takenKeys.add(graphId);
445
- const crossingEdges = parentGraph
446
- .edges()
447
- .filter((edge) => memberKeySet.has(edge.v) !== memberKeySet.has(edge.w));
448
- const graph = createSubGraph(memberKeys, parentGraph);
449
- dagre_1.default.layout(graph, { disableOptimalOrderHeuristic: true });
450
- memberKeys.forEach((key) => parentGraph.removeNode(key));
451
- memberKeys.forEach((key) => claimed.add(key));
452
- parentGraph.setNode(graphId, {
453
- width: constants_1.GROUP_HEADER_WIDTH_COLLAPSED,
454
- height: constants_1.GROUP_HEADER_HEIGHT,
455
- });
456
- for (const edge of crossingEdges) {
457
- const source = memberKeySet.has(edge.v) ? graphId : edge.v;
458
- const target = memberKeySet.has(edge.w) ? graphId : edge.w;
459
- if (source !== target)
460
- parentGraph.setEdge(source, target);
461
- }
462
- collapsed.push({ graphId, graph });
463
- });
464
- return collapsed;
465
- }
466
- function placeGroupMembers(group, headerBox, boundingBoxByNodeId) {
467
- const memberBox = boundingBoxFromGraph(group.graph);
468
- const offsetX = memberOriginFor(headerBox.x, constants_1.GROUP_PADDING_X) - memberBox.x;
469
- const offsetY = memberOriginFor(headerBox.y, GROUP_HEADER_TO_MEMBERS_Y) - memberBox.y;
470
- for (const key of group.graph.nodes()) {
471
- const member = group.graph.node(key);
472
- boundingBoxByNodeId[key] = {
473
- x: member.x - member.width / 2 + offsetX,
474
- y: member.y - member.height / 2 + offsetY,
475
- width: member.width,
476
- height: member.height,
477
- };
478
- }
479
- }
480
605
  function calculateNodePositionsDagre(nodes, nodeGroups) {
481
606
  const positions = new Map();
482
607
  if (nodes.size === 0)
@@ -501,147 +626,31 @@ function calculateNodePositionsDagre(nodes, nodeGroups) {
501
626
  });
502
627
  if (!needsLayout)
503
628
  return positions;
504
- const parentGraph = new dagre_1.default.graphlib.Graph();
505
- parentGraph.setGraph({});
506
- parentGraph.setDefaultEdgeLabel(() => ({}));
507
- for (const name of nonStickyNames) {
508
- const { width, height } = getNodeDimensions(name, aiParentNames, aiConfigNames, nodes);
509
- const explicitPosition = nodes.get(name)?.instance.config?.position;
510
- parentGraph.setNode(name, {
511
- width,
512
- height,
513
- ...(explicitPosition ? { x: explicitPosition[0], y: explicitPosition[1] } : {}),
514
- });
515
- }
516
- const nonStickySet = new Set(nonStickyNames);
517
- for (const name of nonStickyNames) {
518
- const graphNode = nodes.get(name);
519
- for (const [, outputMap] of graphNode.connections) {
520
- for (const targets of outputMap.values()) {
521
- for (const target of targets) {
522
- if (nonStickySet.has(target.node)) {
523
- parentGraph.setEdge(name, target.node);
524
- }
525
- }
526
- }
527
- }
528
- }
629
+ const parentGraph = createParentGraph(nonStickyNames, aiParentNames, aiConfigNames, nodes);
630
+ addConnectionEdges(parentGraph, nonStickyNames, nodes);
529
631
  const keyByNodeId = new Map();
530
632
  for (const [key, graphNode] of nodes) {
531
633
  const id = graphNode.instance.id;
532
634
  if (id !== undefined)
533
635
  keyByNodeId.set(id, key);
534
636
  }
535
- const ungroupableKeys = new Set([...stickyNames, ...aiParentNames, ...aiConfigNames]);
637
+ const ungroupableKeys = new Set(stickyNames);
536
638
  for (const [key, graphNode] of nodes) {
537
639
  if (graphNode.instance.config?.position)
538
640
  ungroupableKeys.add(key);
539
641
  }
540
642
  const collapsedGroups = nodeGroups?.length
541
- ? collapseNodeGroups(parentGraph, nodeGroups, keyByNodeId, ungroupableKeys)
643
+ ? (0, group_layout_utils_1.collapseNodeGroups)(parentGraph, nodeGroups, nodes, keyByNodeId, ungroupableKeys, {
644
+ createSubGraph,
645
+ canCollapseMembers: (memberKeys, graph) => hasCompleteAiSubtree(memberKeys, graph, aiParentNames, aiConfigNames),
646
+ layoutSubGraph: (memberKeys, graph) => layoutGroupMembers(memberKeys, graph, aiParentNames, aiConfigNames, nodes),
647
+ })
542
648
  : [];
543
649
  const groupByGraphId = new Map(collapsedGroups.map((group) => [group.graphId, group]));
544
- const components = dagre_1.default.graphlib.alg.components(parentGraph);
545
- const subgraphs = components.map((nodeIds) => {
546
- const subgraph = createSubGraph(nodeIds, parentGraph);
547
- const aiParentsInSubgraph = subgraph.nodes().filter((id) => aiParentNames.has(id));
548
- const aiGraphs = aiParentsInSubgraph.map((aiParentId) => {
549
- const configNodeIds = getAllConnectedAiConfigNodes(subgraph, aiParentId, aiConfigNames);
550
- const allAiNodeIds = configNodeIds.concat(aiParentId);
551
- const aiGraph = createAiSubGraph(subgraph, allAiNodeIds);
552
- const configNodeIdSet = new Set(configNodeIds);
553
- const rootEdges = subgraph
554
- .edges()
555
- .filter((edge) => (edge.v === aiParentId || edge.w === aiParentId) &&
556
- !configNodeIdSet.has(edge.v) &&
557
- !configNodeIdSet.has(edge.w));
558
- configNodeIds.forEach((id) => subgraph.removeNode(id));
559
- dagre_1.default.layout(aiGraph, { disableOptimalOrderHeuristic: true });
560
- const aiBoundingBox = boundingBoxFromGraph(aiGraph);
561
- subgraph.setNode(aiParentId, {
562
- width: aiBoundingBox.width,
563
- height: aiBoundingBox.height,
564
- });
565
- rootEdges.forEach((edge) => subgraph.setEdge(edge));
566
- return { graph: aiGraph, boundingBox: aiBoundingBox, aiParentId };
567
- });
568
- dagre_1.default.layout(subgraph, { disableOptimalOrderHeuristic: true });
569
- return { graph: subgraph, aiGraphs, boundingBox: boundingBoxFromGraph(subgraph) };
570
- });
571
- let compositeGraph;
572
- if (subgraphs.length > 1) {
573
- compositeGraph = createVerticalGraph(subgraphs.map(({ boundingBox }, index) => ({
574
- box: boundingBox,
575
- id: index.toString(),
576
- })));
577
- dagre_1.default.layout(compositeGraph);
578
- }
579
- const boundingBoxByNodeId = {};
580
- subgraphs.forEach(({ graph, aiGraphs }, index) => {
581
- let offset = { x: 0, y: 0 };
582
- if (compositeGraph) {
583
- const subgraphPosition = compositeGraph.node(index.toString());
584
- offset = {
585
- x: 0,
586
- y: subgraphPosition.y - subgraphPosition.height / 2,
587
- };
588
- }
589
- const aiParentIds = new Set(aiGraphs.map(({ aiParentId }) => aiParentId));
590
- for (const nodeId of graph.nodes()) {
591
- const { x, y, width, height } = graph.node(nodeId);
592
- const box = {
593
- x: x + offset.x - width / 2,
594
- y: y + offset.y - height / 2,
595
- width,
596
- height,
597
- };
598
- const group = groupByGraphId.get(nodeId);
599
- if (group) {
600
- placeGroupMembers(group, box, boundingBoxByNodeId);
601
- }
602
- else if (aiParentIds.has(nodeId)) {
603
- const aiGraphInfo = aiGraphs.find(({ aiParentId }) => aiParentId === nodeId);
604
- if (!aiGraphInfo)
605
- continue;
606
- const parentOffset = { x: box.x, y: box.y };
607
- for (const aiNodeId of aiGraphInfo.graph.nodes()) {
608
- const aiNode = aiGraphInfo.graph.node(aiNodeId);
609
- boundingBoxByNodeId[aiNodeId] = {
610
- x: aiNode.x + parentOffset.x - aiNode.width / 2,
611
- y: aiNode.y + parentOffset.y - aiNode.height / 2,
612
- width: aiNode.width,
613
- height: aiNode.height,
614
- };
615
- }
616
- }
617
- else {
618
- boundingBoxByNodeId[nodeId] = box;
619
- }
620
- }
621
- });
622
- subgraphs
623
- .flatMap(({ aiGraphs }) => aiGraphs)
624
- .forEach(({ graph }) => {
625
- const aiNodes = graph.nodes();
626
- const boxes = aiNodes
627
- .map((id) => boundingBoxByNodeId[id])
628
- .filter((b) => b !== undefined);
629
- if (boxes.length === 0)
630
- return;
631
- const aiGraphBoundingBox = compositeBoundingBox(boxes);
632
- const aiNodeVerticalCorrection = aiGraphBoundingBox.height / 2 - constants_1.DEFAULT_NODE_SIZE[0] / 2;
633
- aiGraphBoundingBox.y += aiNodeVerticalCorrection;
634
- const hasConflictingNodes = Object.entries(boundingBoxByNodeId)
635
- .filter(([id]) => !graph.hasNode(id))
636
- .some(([, nodeBoundingBox]) => intersects(aiGraphBoundingBox, nodeBoundingBox, constants_1.NODE_Y_SPACING));
637
- if (!hasConflictingNodes) {
638
- for (const aiNode of aiNodes) {
639
- if (boundingBoxByNodeId[aiNode]) {
640
- boundingBoxByNodeId[aiNode].y += aiNodeVerticalCorrection;
641
- }
642
- }
643
- }
644
- });
650
+ const subgraphs = layoutSubgraphs(parentGraph, aiParentNames, aiConfigNames);
651
+ const compositeGraph = arrangeSubgraphs(subgraphs);
652
+ const boundingBoxByNodeId = boxesFromSubgraphs(subgraphs, compositeGraph, groupByGraphId, nodes, keyByNodeId);
653
+ alignAiSubgraphs(subgraphs, boundingBoxByNodeId);
645
654
  for (const [name, box] of Object.entries(boundingBoxByNodeId)) {
646
655
  const node = nodes.get(name);
647
656
  if (node && !node.instance.config?.position) {
@@ -1 +1 @@
1
- {"version":3,"file":"layout-utils.js","sourceRoot":"","sources":["../../src/workflow-builder/layout-utils.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"layout-utils.js","sourceRoot":"","sources":["../../src/workflow-builder/layout-utils.ts"],"names":[],"mappings":"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"}
@@ -26,4 +26,4 @@ export declare function trigger<TTrigger extends TriggerInput>(input: TTrigger):
26
26
  export declare function sticky(content: string, nodesOrConfig?: Array<NodeInstance<string, string, unknown>> | StickyNoteConfig, config?: StickyNoteConfig): NodeInstance<'n8n-nodes-base.stickyNote', 'v1', void>;
27
27
  export declare function placeholder(hint: string): string;
28
28
  export declare function newCredential(name: string, id?: string): NewCredentialValue;
29
- export declare function cloneNodeWithId(instance: NodeInstance<string, string, unknown>, newId: string): NodeInstance<string, string, unknown>;
29
+ export declare function cloneNodeWithId(instance: NodeInstance<string, string, unknown>, newId: string, newIdByOldId?: ReadonlyMap<string, string>): NodeInstance<string, string, unknown>;
@@ -643,6 +643,13 @@ class StickyNoteInstance {
643
643
  getConnections() {
644
644
  return [];
645
645
  }
646
+ cloneStickyNoteWithIdAndAnchors(newId, remappedAnchorIds) {
647
+ const content = this.config.parameters?.content;
648
+ const clone = new StickyNoteInstance(typeof content === 'string' ? content : '', [], { name: this.name }, remappedAnchorIds, newId);
649
+ Object.assign(clone.config, this.config);
650
+ clone.config.parameters = this.config.parameters ? { ...this.config.parameters } : undefined;
651
+ return clone;
652
+ }
646
653
  }
647
654
  function sticky(content, nodesOrConfig, config) {
648
655
  if (nodesOrConfig !== undefined && !Array.isArray(nodesOrConfig)) {
@@ -670,7 +677,11 @@ class NewCredentialImpl {
670
677
  function newCredential(name, id) {
671
678
  return new NewCredentialImpl(name, id);
672
679
  }
673
- function cloneNodeWithId(instance, newId) {
680
+ function cloneNodeWithId(instance, newId, newIdByOldId = new Map()) {
681
+ if (instance instanceof StickyNoteInstance) {
682
+ const remappedAnchorIds = instance.stickyAnchorIds.map((anchorId) => newIdByOldId.get(anchorId) ?? anchorId);
683
+ return instance.cloneStickyNoteWithIdAndAnchors(newId, remappedAnchorIds);
684
+ }
674
685
  const connections = typeof instance.getConnections === 'function' ? instance.getConnections() : [];
675
686
  const isTrigger = 'isTrigger' in instance && instance.isTrigger === true;
676
687
  if (isTrigger) {