From dd09723d19535e5ff9dbc55772f7a64588ea6df5 Mon Sep 17 00:00:00 2001 From: pythongosssss <125205205+pythongosssss@users.noreply.github.com> Date: Wed, 30 Apr 2025 12:51:15 +0100 Subject: [PATCH] Fix exporting with domwidget wrapper --- web/js/workflowImage.js | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/web/js/workflowImage.js b/web/js/workflowImage.js index c2f2b80..16838e3 100644 --- a/web/js/workflowImage.js +++ b/web/js/workflowImage.js @@ -37,7 +37,7 @@ class WorkflowImage { width: app.canvas.canvas.width, height: app.canvas.canvas.height, offset: app.canvas.ds.offset, - transform: app.canvas.canvas.getContext('2d').getTransform(), // Save the original transformation matrix + transform: app.canvas.canvas.getContext("2d").getTransform(), // Save the original transformation matrix }; } @@ -46,7 +46,7 @@ class WorkflowImage { app.canvas.canvas.width = this.state.width; app.canvas.canvas.height = this.state.height; app.canvas.ds.offset = this.state.offset; - app.canvas.canvas.getContext('2d').setTransform(this.state.transform); // Reapply the original transformation matrix + app.canvas.canvas.getContext("2d").setTransform(this.state.transform); // Reapply the original transformation matrix } updateView(bounds) { @@ -427,9 +427,10 @@ class SvgWorkflowImage extends WorkflowImage { } getDrawTextConfig(_, widget) { + const domWrapper = widget.inputEl.closest(".dom-widget") ?? widget.inputEl; return { - x: parseInt(widget.inputEl.style.left), - y: parseInt(widget.inputEl.style.top), + x: parseInt(domWrapper.style.left), + y: parseInt(domWrapper.style.top), resetTransform: true, }; } @@ -486,9 +487,7 @@ class SvgWorkflowImage extends WorkflowImage { } getBlob(workflow) { - let svg = this.svgCtx - .getSerializedSvg(true) - .replace("", `${SvgWorkflowImage.escapeXml(workflow)}`); @@ -558,8 +557,9 @@ app.registerExtension({ const style = document.defaultView.getComputedStyle(this.inputEl, null); const x = config.x; const y = config.y; - const w = parseInt(this.inputEl.style.width); - const h = parseInt(this.inputEl.style.height); + const domWrapper = this.inputEl.closest(".dom-widget") ?? widget.inputEl; + const w = parseInt(domWrapper.style.width); + const h = parseInt(domWrapper.style.height); ctx.fillStyle = style.getPropertyValue("background-color"); ctx.fillRect(x, y, w, h);