@bian-womp/spark-workbench 0.2.66 → 0.2.68
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 +51 -4
- package/lib/cjs/index.cjs.map +1 -1
- package/lib/cjs/src/core/InMemoryWorkbench.d.ts +9 -0
- package/lib/cjs/src/core/InMemoryWorkbench.d.ts.map +1 -1
- package/lib/cjs/src/misc/WorkbenchCanvas.d.ts.map +1 -1
- package/lib/cjs/src/misc/context/WorkbenchContext.d.ts +5 -0
- package/lib/cjs/src/misc/context/WorkbenchContext.d.ts.map +1 -1
- package/lib/esm/index.js +51 -4
- package/lib/esm/index.js.map +1 -1
- package/lib/esm/src/core/InMemoryWorkbench.d.ts +9 -0
- package/lib/esm/src/core/InMemoryWorkbench.d.ts.map +1 -1
- package/lib/esm/src/misc/WorkbenchCanvas.d.ts.map +1 -1
- package/lib/esm/src/misc/context/WorkbenchContext.d.ts +5 -0
- package/lib/esm/src/misc/context/WorkbenchContext.d.ts.map +1 -1
- package/package.json +4 -4
package/lib/cjs/index.cjs
CHANGED
|
@@ -131,6 +131,7 @@ class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
131
131
|
edges: [],
|
|
132
132
|
};
|
|
133
133
|
this.viewport = null;
|
|
134
|
+
this.copiedData = null;
|
|
134
135
|
}
|
|
135
136
|
setRegistry(registry) {
|
|
136
137
|
this.registry = registry;
|
|
@@ -519,6 +520,18 @@ class InMemoryWorkbench extends AbstractWorkbench {
|
|
|
519
520
|
});
|
|
520
521
|
return { nodeIdMap, edgeIds };
|
|
521
522
|
}
|
|
523
|
+
/**
|
|
524
|
+
* Get the currently copied graph data.
|
|
525
|
+
*/
|
|
526
|
+
getCopiedData() {
|
|
527
|
+
return this.copiedData;
|
|
528
|
+
}
|
|
529
|
+
/**
|
|
530
|
+
* Set the copied graph data (used for paste functionality).
|
|
531
|
+
*/
|
|
532
|
+
setCopiedData(data) {
|
|
533
|
+
this.copiedData = data;
|
|
534
|
+
}
|
|
522
535
|
}
|
|
523
536
|
|
|
524
537
|
class CLIWorkbench {
|
|
@@ -4380,15 +4393,39 @@ const WorkbenchCanvas = React.forwardRef(({ showValues, toString, toElement, get
|
|
|
4380
4393
|
}, [runner]);
|
|
4381
4394
|
const nodeIds = React.useMemo(() => Array.from(registry.nodes.keys()), [registry, registryVersion]);
|
|
4382
4395
|
const defaultContextMenuHandlers = React.useMemo(() => {
|
|
4383
|
-
|
|
4396
|
+
// Get storage from override or use workbench's internal storage
|
|
4397
|
+
const storage = overrides?.getCopiedDataStorage
|
|
4398
|
+
? overrides.getCopiedDataStorage()
|
|
4399
|
+
: {
|
|
4400
|
+
get: () => wb.getCopiedData(),
|
|
4401
|
+
set: (data) => wb.setCopiedData(data),
|
|
4402
|
+
};
|
|
4403
|
+
const baseHandlers = createDefaultContextMenuHandlers(addNodeAt, onCloseMenu,
|
|
4404
|
+
// Paste handler - checks storage dynamically when called
|
|
4405
|
+
// Only provide handler if storage has data or might have data (for dynamic checking)
|
|
4406
|
+
(position) => {
|
|
4407
|
+
const data = storage.get();
|
|
4408
|
+
if (!data)
|
|
4409
|
+
return;
|
|
4410
|
+
wb.pasteCopiedData(data, position);
|
|
4411
|
+
onCloseMenu();
|
|
4412
|
+
});
|
|
4384
4413
|
if (overrides?.getDefaultContextMenuHandlers) {
|
|
4385
4414
|
return overrides.getDefaultContextMenuHandlers(wb, baseHandlers);
|
|
4386
4415
|
}
|
|
4387
4416
|
return baseHandlers;
|
|
4388
4417
|
}, [addNodeAt, onCloseMenu, overrides, wb]);
|
|
4389
4418
|
const selectionContextMenuHandlers = React.useMemo(() => {
|
|
4390
|
-
|
|
4391
|
-
|
|
4419
|
+
// Get storage from override or use workbench's internal storage
|
|
4420
|
+
const storage = overrides?.getCopiedDataStorage
|
|
4421
|
+
? overrides.getCopiedDataStorage()
|
|
4422
|
+
: {
|
|
4423
|
+
get: () => wb.getCopiedData(),
|
|
4424
|
+
set: (data) => wb.setCopiedData(data),
|
|
4425
|
+
};
|
|
4426
|
+
const baseHandlers = createSelectionContextMenuHandlers(wb, onCloseSelectionMenu, overrides?.getDefaultNodeSize, (data) => {
|
|
4427
|
+
storage.set(data);
|
|
4428
|
+
}, runner);
|
|
4392
4429
|
if (overrides?.getSelectionContextMenuHandlers) {
|
|
4393
4430
|
const selection = wb.getSelection();
|
|
4394
4431
|
return overrides.getSelectionContextMenuHandlers(wb, selection, baseHandlers, {
|
|
@@ -4400,7 +4437,16 @@ const WorkbenchCanvas = React.forwardRef(({ showValues, toString, toElement, get
|
|
|
4400
4437
|
const nodeContextMenuHandlers = React.useMemo(() => {
|
|
4401
4438
|
if (!nodeAtMenu)
|
|
4402
4439
|
return null;
|
|
4403
|
-
|
|
4440
|
+
// Get storage from override or use workbench's internal storage
|
|
4441
|
+
const storage = overrides?.getCopiedDataStorage
|
|
4442
|
+
? overrides.getCopiedDataStorage()
|
|
4443
|
+
: {
|
|
4444
|
+
get: () => wb.getCopiedData(),
|
|
4445
|
+
set: (data) => wb.setCopiedData(data),
|
|
4446
|
+
};
|
|
4447
|
+
const baseHandlers = createNodeContextMenuHandlers(nodeAtMenu, wb, runner, registry, outputsMap, outputTypesMap, onCloseNodeMenu, overrides?.getDefaultNodeSize, (data) => {
|
|
4448
|
+
storage.set(data);
|
|
4449
|
+
});
|
|
4404
4450
|
if (overrides?.getNodeContextMenuHandlers) {
|
|
4405
4451
|
return overrides.getNodeContextMenuHandlers(wb, nodeAtMenu, baseHandlers);
|
|
4406
4452
|
}
|
|
@@ -4415,6 +4461,7 @@ const WorkbenchCanvas = React.forwardRef(({ showValues, toString, toElement, get
|
|
|
4415
4461
|
onCloseNodeMenu,
|
|
4416
4462
|
overrides?.getDefaultNodeSize,
|
|
4417
4463
|
overrides?.getNodeContextMenuHandlers,
|
|
4464
|
+
overrides?.getCopiedDataStorage,
|
|
4418
4465
|
]);
|
|
4419
4466
|
const canRunPull = React.useMemo(() => engineKind()?.toString() === "pull", [engineKind]);
|
|
4420
4467
|
const bakeableOutputs = React.useMemo(() => {
|