diff --git a/draftlogs/6335_fix.md b/draftlogs/6335_fix.md new file mode 100644 index 00000000000..1177ad7f8de --- /dev/null +++ b/draftlogs/6335_fix.md @@ -0,0 +1 @@ + - Hide text on empty slices to avoid PDF exports in MS Word from SVG imports [[#6335](https://github.com/plotly/plotly.js/pull/6335)] diff --git a/src/lib/index.js b/src/lib/index.js index 5d97f2cfc89..b3badf83e25 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -1331,6 +1331,11 @@ lib.getTextTransform = function(transform) { ); }; +lib.setTransormAndDisplay = function(s, transform) { + s.attr('transform', lib.getTextTransform(transform)); + s.style('display', transform.scale ? null : 'none'); +}; + lib.ensureUniformFontSize = function(gd, baseFont) { var out = lib.extendFlat({}, baseFont); out.size = Math.max( diff --git a/src/traces/bar/plot.js b/src/traces/bar/plot.js index 9866bd57156..8876dc3db21 100644 --- a/src/traces/bar/plot.js +++ b/src/traces/bar/plot.js @@ -431,8 +431,8 @@ function appendBarText(gd, plotinfo, bar, cd, i, x0, x1, y0, y1, opts, makeOnCom recordMinTextSize(trace.type === 'histogram' ? 'bar' : trace.type, transform, fullLayout); calcBar.transform = transform; - transition(textSelection, fullLayout, opts, makeOnCompleteCallback) - .attr('transform', Lib.getTextTransform(transform)); + var s = transition(textSelection, fullLayout, opts, makeOnCompleteCallback); + Lib.setTransormAndDisplay(s, transform); } function getRotateFromAngle(angle) { diff --git a/src/traces/bar/uniform_text.js b/src/traces/bar/uniform_text.js index b7b2390d8b5..825018e44d0 100644 --- a/src/traces/bar/uniform_text.js +++ b/src/traces/bar/uniform_text.js @@ -30,7 +30,7 @@ function resizeText(gd, gTrace, traceType) { transform.scale = (shouldHide && transform.hide) ? 0 : minSize / transform.fontSize; var el = d3.select(this).select('text'); - el.attr('transform', Lib.getTextTransform(transform)); + Lib.setTransormAndDisplay(el, transform); } }); } diff --git a/src/traces/funnelarea/plot.js b/src/traces/funnelarea/plot.js index e728b51c2cd..b0ea10ec638 100644 --- a/src/traces/funnelarea/plot.js +++ b/src/traces/funnelarea/plot.js @@ -128,7 +128,7 @@ module.exports = function plot(gd, cdModule) { recordMinTextSize(trace.type, transform, fullLayout); cd[i].transform = transform; - sliceText.attr('transform', Lib.getTextTransform(transform)); + Lib.setTransormAndDisplay(sliceText, transform); }); }); diff --git a/src/traces/pie/plot.js b/src/traces/pie/plot.js index d58b8cc6540..a6b803aed35 100644 --- a/src/traces/pie/plot.js +++ b/src/traces/pie/plot.js @@ -199,7 +199,7 @@ function plot(gd, cdModule) { recordMinTextSize(trace.type, transform, fullLayout); cd[i].transform = transform; - sliceText.attr('transform', Lib.getTextTransform(transform)); + Lib.setTransormAndDisplay(sliceText, transform); }); }); @@ -307,7 +307,7 @@ function plotTextLines(slices, trace) { pt.transform.targetX += pt.labelExtraX; pt.transform.targetY += pt.labelExtraY; - sliceText.attr('transform', Lib.getTextTransform(pt.transform)); + Lib.setTransormAndDisplay(sliceText, pt.transform); // then add a line to the new location var lineStartX = pt.cxFinal + pt.pxmid[0];