@bian-womp/spark-workbench 0.3.46 → 0.3.48
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/lib/cjs/index.cjs +93 -78
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/core/InMemoryWorkbench.d.ts +6 -16
- package/lib/cjs/src/core/InMemoryWorkbench.d.ts.map +1 -1
- package/lib/esm/index.js +93 -78
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/core/InMemoryWorkbench.d.ts +6 -16
- package/lib/esm/src/core/InMemoryWorkbench.d.ts.map +1 -1
- package/package.json +4 -4
|
@@ -167,16 +167,6 @@ export declare class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
167
167
|
width: number;
|
|
168
168
|
height: number;
|
|
169
169
|
} | undefined): CopiedGraphData | null;
|
|
170
|
-
/**
|
|
171
|
-
* Duplicate all selected nodes.
|
|
172
|
-
* Returns the list of newly created node IDs.
|
|
173
|
-
* Each duplicated node is offset by 24px in both x and y directions.
|
|
174
|
-
* Copies inputs without bindings and uses copyOutputsFrom to copy outputs.
|
|
175
|
-
*/
|
|
176
|
-
duplicateSelection(runner: IGraphRunner, options?: {
|
|
177
|
-
commit?: boolean;
|
|
178
|
-
reason?: string;
|
|
179
|
-
}): string[];
|
|
180
170
|
/**
|
|
181
171
|
* Bake an output value from a node into a new node.
|
|
182
172
|
* Creates a new node based on the output type's bakeTarget configuration.
|
|
@@ -190,22 +180,22 @@ export declare class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
190
180
|
reason?: string;
|
|
191
181
|
}): Promise<string | undefined>;
|
|
192
182
|
/**
|
|
193
|
-
* Duplicate
|
|
194
|
-
* Returns the
|
|
195
|
-
*
|
|
183
|
+
* Duplicate all selected nodes.
|
|
184
|
+
* Returns the list of newly created node IDs.
|
|
185
|
+
* Each duplicated node is offset by 24px in both x and y directions.
|
|
196
186
|
* Copies inputs without bindings and uses copyOutputsFrom to copy outputs.
|
|
197
187
|
*/
|
|
198
|
-
|
|
188
|
+
duplicateSelection(runner: IGraphRunner, options?: {
|
|
199
189
|
commit?: boolean;
|
|
200
190
|
reason?: string;
|
|
201
|
-
}): string
|
|
191
|
+
}): string[];
|
|
202
192
|
/**
|
|
203
193
|
* Duplicate a node and all its incoming edges.
|
|
204
194
|
* Returns the ID of the newly created node.
|
|
205
195
|
* The duplicated node is offset by 24px in both x and y directions.
|
|
206
196
|
* All incoming edges are duplicated to point to the new node.
|
|
207
197
|
*/
|
|
208
|
-
|
|
198
|
+
duplicateNode(nodeId: string, runner: IGraphRunner, options?: {
|
|
209
199
|
commit?: boolean;
|
|
210
200
|
reason?: string;
|
|
211
201
|
}): string | undefined;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"InMemoryWorkbench.d.ts","sourceRoot":"","sources":["../../../../src/core/InMemoryWorkbench.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"InMemoryWorkbench.d.ts","sourceRoot":"","sources":["../../../../src/core/InMemoryWorkbench.ts"],"names":[],"mappings":"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"}
|
package/lib/esm/index.js
CHANGED
|
@@ -607,51 +607,6 @@ class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
607
607
|
bounds,
|
|
608
608
|
};
|
|
609
609
|
}
|
|
610
|
-
/**
|
|
611
|
-
* Duplicate all selected nodes.
|
|
612
|
-
* Returns the list of newly created node IDs.
|
|
613
|
-
* Each duplicated node is offset by 24px in both x and y directions.
|
|
614
|
-
* Copies inputs without bindings and uses copyOutputsFrom to copy outputs.
|
|
615
|
-
*/
|
|
616
|
-
duplicateSelection(runner, options) {
|
|
617
|
-
const selection = this.getSelection();
|
|
618
|
-
if (selection.nodes.length === 0)
|
|
619
|
-
return [];
|
|
620
|
-
const positions = this.getPositions();
|
|
621
|
-
const sizes = this.getSizes();
|
|
622
|
-
const newNodes = [];
|
|
623
|
-
// Get inputs without bindings (literal values only)
|
|
624
|
-
const allInputs = runner.getInputs(this.def) || {};
|
|
625
|
-
// Duplicate each selected node
|
|
626
|
-
for (const nodeId of selection.nodes) {
|
|
627
|
-
const n = this.def.nodes.find((n) => n.nodeId === nodeId);
|
|
628
|
-
if (!n)
|
|
629
|
-
continue;
|
|
630
|
-
const pos = positions[nodeId];
|
|
631
|
-
const size = sizes[nodeId];
|
|
632
|
-
const inboundHandles = new Set(this.def.edges
|
|
633
|
-
.filter((e) => e.target.nodeId === nodeId)
|
|
634
|
-
.map((e) => e.target.handle));
|
|
635
|
-
const inputsWithoutBindings = Object.fromEntries(Object.entries(allInputs).filter(([handle]) => !inboundHandles.has(handle)));
|
|
636
|
-
const newNodeId = this.addNode({
|
|
637
|
-
typeId: n.typeId,
|
|
638
|
-
params: n.params,
|
|
639
|
-
resolvedHandles: n.resolvedHandles,
|
|
640
|
-
}, {
|
|
641
|
-
inputs: inputsWithoutBindings,
|
|
642
|
-
position: pos ? { x: pos.x + 24, y: pos.y + 24 } : undefined,
|
|
643
|
-
size,
|
|
644
|
-
copyOutputsFrom: nodeId,
|
|
645
|
-
dry: true,
|
|
646
|
-
});
|
|
647
|
-
newNodes.push(newNodeId);
|
|
648
|
-
}
|
|
649
|
-
// Select all newly duplicated nodes
|
|
650
|
-
if (newNodes.length > 0) {
|
|
651
|
-
this.setSelectionInternal({ nodes: newNodes, edges: [] }, options || { commit: true, reason: "duplicate-selection" });
|
|
652
|
-
}
|
|
653
|
-
return newNodes;
|
|
654
|
-
}
|
|
655
610
|
/**
|
|
656
611
|
* Bake an output value from a node into a new node.
|
|
657
612
|
* Creates a new node based on the output type's bakeTarget configuration.
|
|
@@ -745,37 +700,97 @@ class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
745
700
|
}
|
|
746
701
|
}
|
|
747
702
|
/**
|
|
748
|
-
* Duplicate
|
|
749
|
-
* Returns the
|
|
750
|
-
*
|
|
703
|
+
* Duplicate all selected nodes.
|
|
704
|
+
* Returns the list of newly created node IDs.
|
|
705
|
+
* Each duplicated node is offset by 24px in both x and y directions.
|
|
751
706
|
* Copies inputs without bindings and uses copyOutputsFrom to copy outputs.
|
|
752
707
|
*/
|
|
753
|
-
|
|
754
|
-
const
|
|
755
|
-
if (
|
|
756
|
-
return
|
|
757
|
-
const
|
|
758
|
-
const
|
|
759
|
-
|
|
760
|
-
const
|
|
761
|
-
const
|
|
762
|
-
|
|
763
|
-
|
|
764
|
-
|
|
765
|
-
const
|
|
766
|
-
|
|
767
|
-
|
|
768
|
-
|
|
769
|
-
}
|
|
770
|
-
|
|
771
|
-
|
|
772
|
-
|
|
773
|
-
|
|
774
|
-
|
|
775
|
-
|
|
776
|
-
|
|
777
|
-
|
|
778
|
-
|
|
708
|
+
duplicateSelection(runner, options) {
|
|
709
|
+
const selection = this.getSelection();
|
|
710
|
+
if (selection.nodes.length === 0)
|
|
711
|
+
return [];
|
|
712
|
+
const positions = this.getPositions();
|
|
713
|
+
const sizes = this.getSizes();
|
|
714
|
+
const newNodes = [];
|
|
715
|
+
const nodeIdMap = new Map(); // Map from original nodeId to new nodeId
|
|
716
|
+
const processedNodes = new Set(); // Track which nodes have been duplicated
|
|
717
|
+
const selectedNodeSet = new Set(selection.nodes);
|
|
718
|
+
const allInputs = runner.getInputs(this.def) || {};
|
|
719
|
+
// Build a map of incoming edges for each selected node
|
|
720
|
+
const incomingEdgesByNode = new Map();
|
|
721
|
+
for (const nodeId of selection.nodes) {
|
|
722
|
+
const incomingEdges = this.def.edges.filter((e) => e.target.nodeId === nodeId);
|
|
723
|
+
incomingEdgesByNode.set(nodeId, incomingEdges);
|
|
724
|
+
}
|
|
725
|
+
// Helper function to check if a node is ready to be processed
|
|
726
|
+
// (all its dependencies from selected nodes have been processed)
|
|
727
|
+
const isNodeReady = (nodeId) => {
|
|
728
|
+
const incomingEdges = incomingEdgesByNode.get(nodeId) || [];
|
|
729
|
+
for (const edge of incomingEdges) {
|
|
730
|
+
// If the source is a selected node, it must have been processed
|
|
731
|
+
if (selectedNodeSet.has(edge.source.nodeId)) {
|
|
732
|
+
if (!processedNodes.has(edge.source.nodeId)) {
|
|
733
|
+
return false;
|
|
734
|
+
}
|
|
735
|
+
}
|
|
736
|
+
}
|
|
737
|
+
return true;
|
|
738
|
+
};
|
|
739
|
+
// Process nodes in topological order
|
|
740
|
+
let remainingNodes = new Set(selection.nodes);
|
|
741
|
+
while (remainingNodes.size > 0) {
|
|
742
|
+
// Find nodes that are ready to be processed (no unprocessed dependencies)
|
|
743
|
+
const readyNodes = Array.from(remainingNodes).filter((nodeId) => isNodeReady(nodeId));
|
|
744
|
+
if (readyNodes.length === 0) {
|
|
745
|
+
// If no nodes are ready, there might be a cycle. Process remaining nodes anyway.
|
|
746
|
+
// This shouldn't happen in a DAG, but handle it gracefully.
|
|
747
|
+
readyNodes.push(...remainingNodes);
|
|
748
|
+
}
|
|
749
|
+
// Process each ready node
|
|
750
|
+
for (const nodeId of readyNodes) {
|
|
751
|
+
const n = this.def.nodes.find((n) => n.nodeId === nodeId);
|
|
752
|
+
if (!n) {
|
|
753
|
+
remainingNodes.delete(nodeId);
|
|
754
|
+
continue;
|
|
755
|
+
}
|
|
756
|
+
const pos = positions[nodeId];
|
|
757
|
+
const size = sizes[nodeId];
|
|
758
|
+
// Get all inputs (including those with bindings, since edges will be duplicated)
|
|
759
|
+
const inputs = allInputs[nodeId] || {};
|
|
760
|
+
// Create the duplicated node
|
|
761
|
+
const newNodeId = this.addNode({
|
|
762
|
+
typeId: n.typeId,
|
|
763
|
+
params: n.params,
|
|
764
|
+
resolvedHandles: n.resolvedHandles,
|
|
765
|
+
}, {
|
|
766
|
+
inputs,
|
|
767
|
+
position: pos ? { x: pos.x + 24, y: pos.y + 24 } : undefined,
|
|
768
|
+
size,
|
|
769
|
+
copyOutputsFrom: nodeId,
|
|
770
|
+
dry: true,
|
|
771
|
+
});
|
|
772
|
+
newNodes.push(newNodeId);
|
|
773
|
+
nodeIdMap.set(nodeId, newNodeId);
|
|
774
|
+
processedNodes.add(nodeId);
|
|
775
|
+
// Connect incoming edges for this node
|
|
776
|
+
const incomingEdges = incomingEdgesByNode.get(nodeId) || [];
|
|
777
|
+
for (const edge of incomingEdges) {
|
|
778
|
+
// Determine the source node: use duplicated node if it was duplicated, otherwise use original
|
|
779
|
+
const sourceNodeId = nodeIdMap.get(edge.source.nodeId) || edge.source.nodeId;
|
|
780
|
+
this.connect({
|
|
781
|
+
source: { nodeId: sourceNodeId, handle: edge.source.handle },
|
|
782
|
+
target: { nodeId: newNodeId, handle: edge.target.handle },
|
|
783
|
+
typeId: edge.typeId,
|
|
784
|
+
}, { dry: true });
|
|
785
|
+
}
|
|
786
|
+
remainingNodes.delete(nodeId);
|
|
787
|
+
}
|
|
788
|
+
}
|
|
789
|
+
// Select all newly duplicated nodes
|
|
790
|
+
if (newNodes.length > 0) {
|
|
791
|
+
this.setSelectionInternal({ nodes: newNodes, edges: [] }, options || { commit: true, reason: "duplicate-selection" });
|
|
792
|
+
}
|
|
793
|
+
return newNodes;
|
|
779
794
|
}
|
|
780
795
|
/**
|
|
781
796
|
* Duplicate a node and all its incoming edges.
|
|
@@ -783,7 +798,7 @@ class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
783
798
|
* The duplicated node is offset by 24px in both x and y directions.
|
|
784
799
|
* All incoming edges are duplicated to point to the new node.
|
|
785
800
|
*/
|
|
786
|
-
|
|
801
|
+
duplicateNode(nodeId, runner, options) {
|
|
787
802
|
const n = this.def.nodes.find((n) => n.nodeId === nodeId);
|
|
788
803
|
if (!n)
|
|
789
804
|
return undefined;
|
|
@@ -815,7 +830,7 @@ class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
815
830
|
}
|
|
816
831
|
// Select the newly duplicated node
|
|
817
832
|
if (newNodeId) {
|
|
818
|
-
this.setSelectionInternal({ nodes: [newNodeId], edges: [] }, options || { commit: true, reason: "duplicate-node
|
|
833
|
+
this.setSelectionInternal({ nodes: [newNodeId], edges: [] }, options || { commit: true, reason: "duplicate-node" });
|
|
819
834
|
}
|
|
820
835
|
return newNodeId;
|
|
821
836
|
}
|
|
@@ -5089,9 +5104,9 @@ function createNodeContextMenuHandlers(nodeId, wb, runner, registry, outputsMap,
|
|
|
5089
5104
|
onClose();
|
|
5090
5105
|
},
|
|
5091
5106
|
onDuplicate: async () => {
|
|
5092
|
-
wb.
|
|
5107
|
+
wb.duplicateNode(nodeId, runner, {
|
|
5093
5108
|
commit: true,
|
|
5094
|
-
reason: "duplicate-node
|
|
5109
|
+
reason: "duplicate-node",
|
|
5095
5110
|
});
|
|
5096
5111
|
onClose();
|
|
5097
5112
|
},
|