@n8n/workflow-sdk 0.35.1 → 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.
- package/dist/build.tsbuildinfo +1 -1
- package/dist/generate-types/generate-types.d.ts +4 -2
- package/dist/generate-types/generate-types.js +175 -111
- package/dist/generate-types/generate-types.js.map +1 -1
- package/dist/generate-types/generate-zod-schemas.js.map +1 -1
- package/dist/index.d.ts +1 -1
- package/dist/index.js +4 -2
- package/dist/index.js.map +1 -1
- package/dist/validation/index.d.ts +1 -0
- package/dist/validation/index.js +4 -1
- package/dist/validation/index.js.map +1 -1
- package/dist/validation/required-subnode-connections.d.ts +36 -0
- package/dist/validation/required-subnode-connections.js +131 -0
- package/dist/validation/required-subnode-connections.js.map +1 -0
- package/dist/validation.d.ts +1 -1
- package/dist/validation.js +3 -1
- package/dist/validation.js.map +1 -1
- package/dist/workflow-builder/group-layout-utils.d.ts +32 -0
- package/dist/workflow-builder/group-layout-utils.js +211 -0
- package/dist/workflow-builder/group-layout-utils.js.map +1 -0
- package/dist/workflow-builder/layout-utils.d.ts +1 -1
- package/dist/workflow-builder/layout-utils.js +212 -203
- package/dist/workflow-builder/layout-utils.js.map +1 -1
- package/dist/workflow-builder/node-builders/node-builder.d.ts +1 -1
- package/dist/workflow-builder/node-builders/node-builder.js +12 -1
- package/dist/workflow-builder/node-builders/node-builder.js.map +1 -1
- package/dist/workflow-builder/subnode-utils.js.map +1 -1
- package/dist/workflow-builder.js +15 -3
- package/dist/workflow-builder.js.map +1 -1
- 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 =
|
|
505
|
-
parentGraph
|
|
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(
|
|
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
|
|
545
|
-
const
|
|
546
|
-
|
|
547
|
-
|
|
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) {
|