From a5eb50f5b7d497b9b4b0351efbad4ed9684cb281 Mon Sep 17 00:00:00 2001 From: Sipke Schoorstra Date: Wed, 8 Jun 2022 21:23:55 +0200 Subject: [PATCH] Ensure activity walker does not change source object --- .../components/activities/flowchart/activity-walker.ts | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts b/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts index f91154299..a29740a24 100644 --- a/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts +++ b/src/designer/elsa-workflows-designer/src/components/activities/flowchart/activity-walker.ts @@ -18,10 +18,13 @@ export interface ActivityPort { } export function walkActivities(root: Activity, descriptors: Array): ActivityNode { - const collectedActivities = new Set([root]); + // Create a copy of the root to avoid transposing its outbound properties. + const rootCopy = {...root}; + + const collectedActivities = new Set([rootCopy]); const graph: ActivityNode = {activity: root, parents: [], children: []}; const collectedNodes = new Set([graph]); - walkRecursive(graph, root, collectedActivities, collectedNodes, descriptors); + walkRecursive(graph, rootCopy, collectedActivities, collectedNodes, descriptors); return graph; } @@ -65,6 +68,7 @@ function getPorts(node: ActivityNode, activity: Activity, descriptors: Array x.activityType == activity.typeName); + debugger; const untransposedConnections = transposeHandler.untranspose({activity, activityDescriptor}); return untransposedConnections.map(x => ({activity: x.target, port: x.sourcePort})); }