From e975e993efa03c2151a19df624ff7e478d752598 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C3=89tienne=20T=C3=A9treault-Pinard?= Date: Tue, 2 Apr 2019 14:08:00 -0400 Subject: [PATCH] don't try to access textfont when bar has no text --- src/traces/bar/plot.js | 18 +++++++++--------- test/jasmine/tests/bar_test.js | 14 ++++++++++++++ 2 files changed, 23 insertions(+), 9 deletions(-) diff --git a/src/traces/bar/plot.js b/src/traces/bar/plot.js index c8d77b2f00b..8c3481b58c3 100644 --- a/src/traces/bar/plot.js +++ b/src/traces/bar/plot.js @@ -205,11 +205,6 @@ function appendBarText(gd, bar, calcTrace, i, x0, x1, y0, y1) { var text = getText(trace, i); textPosition = getTextPosition(trace, i); - var layoutFont = fullLayout.font; - var barColor = style.getBarColor(calcTrace[i], trace); - var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor); - var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont); - // compute text position var prefix = trace.type === 'waterfall' ? 'waterfall' : 'bar'; var barmode = fullLayout[prefix + 'mode']; @@ -218,16 +213,21 @@ function appendBarText(gd, bar, calcTrace, i, x0, x1, y0, y1) { var calcBar = calcTrace[i]; var isOutmostBar = !inStackOrRelativeMode || calcBar._outmost; - // padding excluded - var barWidth = Math.abs(x1 - x0) - 2 * TEXTPAD; - var barHeight = Math.abs(y1 - y0) - 2 * TEXTPAD; - if(!text || textPosition === 'none' || (calcBar.isBlank && (textPosition === 'auto' || textPosition === 'inside'))) { bar.select('text').remove(); return; } + var layoutFont = fullLayout.font; + var barColor = style.getBarColor(calcTrace[i], trace); + var insideTextFont = style.getInsideTextFont(trace, i, layoutFont, barColor); + var outsideTextFont = style.getOutsideTextFont(trace, i, layoutFont); + + // padding excluded + var barWidth = Math.abs(x1 - x0) - 2 * TEXTPAD; + var barHeight = Math.abs(y1 - y0) - 2 * TEXTPAD; + var textSelection; var textBB; var textWidth; diff --git a/test/jasmine/tests/bar_test.js b/test/jasmine/tests/bar_test.js index 08c728c3436..51deb89951f 100644 --- a/test/jasmine/tests/bar_test.js +++ b/test/jasmine/tests/bar_test.js @@ -1886,6 +1886,20 @@ describe('A bar plot', function() { .catch(failTest) .then(done); }); + + it('should not error out when *textfont* is set in traces w/o *text*', function(done) { + Plotly.plot(gd, [{ + type: 'bar', + x: ['A', 'K', 'M', 'O', 'Q', 'S', 'T', 'V', 'X', 'Z', 'D', 'F', 'H'], + y: [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25], + textfont: {color: 'red'} + }]) + .then(function() { + expect(getAllBarNodes(gd).length).toBe(13, '# of bars'); + }) + .catch(failTest) + .then(done); + }); }); describe('bar visibility toggling:', function() {