Mercurial > gemma
changeset 4228:b8d578e42b4b
pdfprint: generate a new transform object instead of manipulating the given one.
See https://github.com/d3/d3-zoom#zoomTransform
author | Thomas Junk <thomas.junk@intevation.de> |
---|---|
date | Tue, 20 Aug 2019 10:10:21 +0200 |
parents | 849d5ca7cc03 |
children | 912b8aa42c31 |
files | client/src/components/gauge/HydrologicalConditions.vue client/src/components/gauge/Waterlevel.vue |
diffstat | 2 files changed, 10 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/client/src/components/gauge/HydrologicalConditions.vue Mon Aug 19 14:23:08 2019 +0200 +++ b/client/src/components/gauge/HydrologicalConditions.vue Tue Aug 20 10:10:21 2019 +0200 @@ -822,17 +822,12 @@ let t = d3.event.transform; // Set the last zoom level and recalculate x,y for pdf-export if (zoomLevel) { - t.x = (zoomLevel.x * dimensions.width) / zoomLevel.width; - t.k = zoomLevel.k; - t.y = zoomLevel.y; - scaleForZoom(t); - // reset zoomming after drawing for pdf - t.k = 1; - t.x = 0; - t.y = 0; - } else { - scaleForZoom(t); + const tx = (zoomLevel.x * dimensions.width) / zoomLevel.width; + const k = zoomLevel.k; + const ty = zoomLevel.y; + t = d3.zoomIdentity.translate(tx, ty).scale(k); } + scaleForZoom(t); }); zoom.on("start", () => { svg.select(".chart-dot").style("opacity", 0);
--- a/client/src/components/gauge/Waterlevel.vue Mon Aug 19 14:23:08 2019 +0200 +++ b/client/src/components/gauge/Waterlevel.vue Tue Aug 20 10:10:21 2019 +0200 @@ -948,19 +948,13 @@ if (d3.event.sourceEvent && d3.event.sourceEvent.type === "brush") return; // ignore zoom-by-brush let t = d3.event.transform; - // Set the last zoom level and recalculate x,y for pdf-export if (zoomLevel) { - t.x = (zoomLevel.x * dimensions.width) / zoomLevel.width; - t.k = zoomLevel.k; - t.y = zoomLevel.y; - scaleForZoom(t); - // reset zoomming after drawing for pdf - t.k = 1; - t.x = 0; - t.y = 0; - } else { - scaleForZoom(t); + const tx = (zoomLevel.x * dimensions.width) / zoomLevel.width; + const k = zoomLevel.k; + const ty = zoomLevel.y; + t = d3.zoomIdentity.translate(tx, ty).scale(k); } + scaleForZoom(t); }); zoom.on("start", () => { svg.select(".chart-dot").style("opacity", 0);