From 60f71a1994166517f4f3bb409526f5f9f1a1c7cc Mon Sep 17 00:00:00 2001 From: archmoj Date: Wed, 17 Jul 2019 12:39:35 -0400 Subject: [PATCH 1/4] fix 4047 display empty bars only when having line.width --- src/traces/bar/plot.js | 23 +- ...ar_display_height_zero_only_line_width.png | Bin 0 -> 40611 bytes ...r_display_height_zero_only_line_width.json | 340 ++++++++++++++++++ 3 files changed, 357 insertions(+), 6 deletions(-) create mode 100644 test/image/baselines/bar_display_height_zero_only_line_width.png create mode 100644 test/image/mocks/bar_display_height_zero_only_line_width.json diff --git a/src/traces/bar/plot.js b/src/traces/bar/plot.js index 90c5fb2e46d..59d62b2b5e9 100644 --- a/src/traces/bar/plot.js +++ b/src/traces/bar/plot.js @@ -69,7 +69,7 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts) { var isWaterfall = (trace.type === 'waterfall'); var isFunnel = (trace.type === 'funnel'); var isBar = (trace.type === 'bar'); - var shouldDisplayZeros = isBar || isFunnel; + var shouldDisplayZeros = (isBar || isFunnel); var adjustPixel = 0; if(isWaterfall && trace.connector.visible && trace.connector.mode === 'between') { @@ -102,12 +102,23 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts) { var y0 = xy[1][0]; var y1 = xy[1][1]; - var isBlank = di.isBlank = !( - isNumeric(x0) && isNumeric(x1) && - isNumeric(y0) && isNumeric(y1) && - (x0 !== x1 || (shouldDisplayZeros && isHorizontal)) && - (y0 !== y1 || (shouldDisplayZeros && !isHorizontal)) + var isBlank = ( + x0 === x1 || + y0 === y1 || + !isNumeric(x0) || + !isNumeric(x1) || + !isNumeric(y0) || + !isNumeric(y1) ); + // display zeros if line.width > 0 + if(isBlank && shouldDisplayZeros) { + if(isHorizontal ? x1 - x0 === 0 : y1 - y0 === 0) { + if(di.mlw || trace.marker.line.width > 0) { + isBlank = false; + } + } + } + di.isBlank = isBlank; // in waterfall mode `between` we need to adjust bar end points to match the connector width if(adjustPixel) { diff --git a/test/image/baselines/bar_display_height_zero_only_line_width.png b/test/image/baselines/bar_display_height_zero_only_line_width.png new file mode 100644 index 0000000000000000000000000000000000000000..7682e5d360b73ee94a764141cc45b0a7c5a7bd30 GIT binary patch literal 40611 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 Date: Wed, 17 Jul 2019 14:17:09 -0400 Subject: [PATCH 2/4] use getLineWidth function to get line width move getLineWidth function to helpers and reuse it in hover also fixing 4057 --- src/lib/index.js | 4 +- src/traces/bar/arrays_to_calcdata.js | 4 +- src/traces/bar/helpers.js | 9 + src/traces/bar/hover.js | 3 +- src/traces/bar/plot.js | 11 +- .../bar_display_height_zero_no_line_width.png | Bin 0 -> 51956 bytes ...ar_display_height_zero_only_line_width.png | Bin 40611 -> 38942 bytes ...bar_display_height_zero_no_line_width.json | 329 ++++++++++++++++++ ...r_display_height_zero_only_line_width.json | 16 +- 9 files changed, 359 insertions(+), 17 deletions(-) create mode 100644 test/image/baselines/bar_display_height_zero_no_line_width.png create mode 100644 test/image/mocks/bar_display_height_zero_no_line_width.json diff --git a/src/lib/index.js b/src/lib/index.js index 97a376d30b2..0b074a745bc 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -459,10 +459,10 @@ lib.noneOrAll = function(containerIn, containerOut, attrList) { * @param {object} cd : calcdata trace * @param {string} cdAttr : calcdata key */ -lib.mergeArray = function(traceAttr, cd, cdAttr) { +lib.mergeArray = function(traceAttr, cd, cdAttr, isNumber) { if(lib.isArrayOrTypedArray(traceAttr)) { var imax = Math.min(traceAttr.length, cd.length); - for(var i = 0; i < imax; i++) cd[i][cdAttr] = traceAttr[i]; + for(var i = 0; i < imax; i++) cd[i][cdAttr] = isNumber ? +traceAttr[i] : traceAttr[i]; } }; diff --git a/src/traces/bar/arrays_to_calcdata.js b/src/traces/bar/arrays_to_calcdata.js index a722f3dec04..0dfbcdd03d6 100644 --- a/src/traces/bar/arrays_to_calcdata.js +++ b/src/traces/bar/arrays_to_calcdata.js @@ -19,13 +19,13 @@ module.exports = function arraysToCalcdata(cd, trace) { var marker = trace.marker; if(marker) { - mergeArray(marker.opacity, cd, 'mo'); + mergeArray(marker.opacity, cd, 'mo', true); mergeArray(marker.color, cd, 'mc'); var markerLine = marker.line; if(markerLine) { mergeArray(markerLine.color, cd, 'mlc'); - mergeArray(markerLine.width, cd, 'mlw'); + mergeArray(markerLine.width, cd, 'mlw', true); } } }; diff --git a/src/traces/bar/helpers.js b/src/traces/bar/helpers.js index afe5a2d6ff0..cbbbdddbb64 100644 --- a/src/traces/bar/helpers.js +++ b/src/traces/bar/helpers.js @@ -64,3 +64,12 @@ exports.getValue = function(arrayOrScalar, index) { else if(index < arrayOrScalar.length) value = arrayOrScalar[index]; return value; }; + +exports.getLineWidth = function(trace, di) { + var w = + (0 < di.mlw) ? di.mlw : + (0 < trace.marker.line.width) ? trace.marker.line.width : // Note: we don't want to get true & return an array when trace.marker.line.width is an array containing zeros. + 0; + + return w; +}; diff --git a/src/traces/bar/hover.js b/src/traces/bar/hover.js index 68d5fb818d7..61832ac48e6 100644 --- a/src/traces/bar/hover.js +++ b/src/traces/bar/hover.js @@ -14,6 +14,7 @@ var Registry = require('../../registry'); var Color = require('../../components/color'); var fillText = require('../../lib').fillText; +var getLineWidth = require('./helpers').getLineWidth; function hoverPoints(pointData, xval, yval, hovermode) { var barPointData = hoverOnBars(pointData, xval, yval, hovermode); @@ -165,7 +166,7 @@ function hoverOnBars(pointData, xval, yval, hovermode) { function getTraceColor(trace, di) { var mc = di.mcc || trace.marker.color; var mlc = di.mlcc || trace.marker.line.color; - var mlw = di.mlw || trace.marker.line.width; + var mlw = getLineWidth(trace, di); if(Color.opacity(mc)) return mc; else if(Color.opacity(mlc) && mlw) return mlc; diff --git a/src/traces/bar/plot.js b/src/traces/bar/plot.js index 59d62b2b5e9..a52fdd7ae43 100644 --- a/src/traces/bar/plot.js +++ b/src/traces/bar/plot.js @@ -111,12 +111,8 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts) { !isNumeric(y1) ); // display zeros if line.width > 0 - if(isBlank && shouldDisplayZeros) { - if(isHorizontal ? x1 - x0 === 0 : y1 - y0 === 0) { - if(di.mlw || trace.marker.line.width > 0) { - isBlank = false; - } - } + if(isBlank && shouldDisplayZeros && helpers.getLineWidth(trace, di) && (isHorizontal ? x1 - x0 === 0 : y1 - y0 === 0)) { + isBlank = false; } di.isBlank = isBlank; @@ -141,8 +137,7 @@ function plot(gd, plotinfo, cdModule, traceLayer, opts) { mc = cont.color; } } else { - lw = (di.mlw + 1 || trace.marker.line.width + 1 || - (di.trace ? di.trace.marker.line.width : 0) + 1) - 1; + lw = helpers.getLineWidth(trace, di); mc = di.mc || trace.marker.color; } diff --git a/test/image/baselines/bar_display_height_zero_no_line_width.png b/test/image/baselines/bar_display_height_zero_no_line_width.png new file mode 100644 index 0000000000000000000000000000000000000000..ebe9e0f2e6ed56d62664823b823c2469884c4eaf GIT binary patch literal 51956 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 QoJGpf&TVg%P0*?T0Q$9*ng9R* literal 0 HcmV?d00001 diff --git a/test/image/baselines/bar_display_height_zero_only_line_width.png b/test/image/baselines/bar_display_height_zero_only_line_width.png index 7682e5d360b73ee94a764141cc45b0a7c5a7bd30..a71e9d0c7ce92101e937a7bd22b82225d7f248c4 100644 GIT binary patch literal 38942 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 Date: Thu, 18 Jul 2019 12:57:44 -0400 Subject: [PATCH 3/4] declare new mergeArray options in Lib and use them in bar --- src/lib/index.js | 30 ++++++++++++++++++++++++++-- src/traces/bar/arrays_to_calcdata.js | 14 ++++++------- src/traces/bar/helpers.js | 3 ++- 3 files changed, 37 insertions(+), 10 deletions(-) diff --git a/src/lib/index.js b/src/lib/index.js index 0b074a745bc..788f522a742 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -459,13 +459,39 @@ lib.noneOrAll = function(containerIn, containerOut, attrList) { * @param {object} cd : calcdata trace * @param {string} cdAttr : calcdata key */ -lib.mergeArray = function(traceAttr, cd, cdAttr, isNumber) { +lib.mergeArray = function(traceAttr, cd, cdAttr, fn) { + var hasFn = typeof fn === 'function'; if(lib.isArrayOrTypedArray(traceAttr)) { var imax = Math.min(traceAttr.length, cd.length); - for(var i = 0; i < imax; i++) cd[i][cdAttr] = isNumber ? +traceAttr[i] : traceAttr[i]; + for(var i = 0; i < imax; i++) { + var v = traceAttr[i]; + cd[i][cdAttr] = hasFn ? fn(v) : v; + } } }; +// cast numbers to numbers and if not return 0 +lib.mergeArrayCastIfNumber = function(traceAttr, cd, cdAttr) { + return lib.mergeArray(traceAttr, cd, cdAttr, function(v) { + return isNumeric(v) ? +v : v; + }); +}; + +// cast numbers to numbers, NaN to NaN, null to 0 +lib.mergeArrayCastNumber = function(traceAttr, cd, cdAttr) { + return lib.mergeArray(traceAttr, cd, cdAttr, function(v) { + return +v; + }); +}; + +// cast numbers to positive numbers, returns 0 if not greater than 0 +lib.mergeArrayCastPositive = function(traceAttr, cd, cdAttr) { + return lib.mergeArray(traceAttr, cd, cdAttr, function(v) { + var w = +v; + return w > 0 ? w : 0; + }); +}; + /** fills calcdata field (given by cdAttr) with traceAttr values * or function of traceAttr values (e.g. some fallback) * diff --git a/src/traces/bar/arrays_to_calcdata.js b/src/traces/bar/arrays_to_calcdata.js index 0dfbcdd03d6..4316dac2d38 100644 --- a/src/traces/bar/arrays_to_calcdata.js +++ b/src/traces/bar/arrays_to_calcdata.js @@ -8,24 +8,24 @@ 'use strict'; -var mergeArray = require('../../lib').mergeArray; +var Lib = require('../../lib'); // arrayOk attributes, merge them into calcdata array module.exports = function arraysToCalcdata(cd, trace) { for(var i = 0; i < cd.length; i++) cd[i].i = i; - mergeArray(trace.text, cd, 'tx'); - mergeArray(trace.hovertext, cd, 'htx'); + Lib.mergeArray(trace.text, cd, 'tx'); + Lib.mergeArray(trace.hovertext, cd, 'htx'); var marker = trace.marker; if(marker) { - mergeArray(marker.opacity, cd, 'mo', true); - mergeArray(marker.color, cd, 'mc'); + Lib.mergeArray(marker.opacity, cd, 'mo', true); + Lib.mergeArray(marker.color, cd, 'mc'); var markerLine = marker.line; if(markerLine) { - mergeArray(markerLine.color, cd, 'mlc'); - mergeArray(markerLine.width, cd, 'mlw', true); + Lib.mergeArray(markerLine.color, cd, 'mlc'); + Lib.mergeArrayCastPositive(markerLine.width, cd, 'mlw'); } } }; diff --git a/src/traces/bar/helpers.js b/src/traces/bar/helpers.js index cbbbdddbb64..aa368a0f939 100644 --- a/src/traces/bar/helpers.js +++ b/src/traces/bar/helpers.js @@ -10,6 +10,7 @@ var isNumeric = require('fast-isnumeric'); var tinycolor = require('tinycolor2'); +var isArrayOrTypedArray = require('../../lib').isArrayOrTypedArray; exports.coerceString = function(attributeDefinition, value, defaultValue) { if(typeof value === 'string') { @@ -68,7 +69,7 @@ exports.getValue = function(arrayOrScalar, index) { exports.getLineWidth = function(trace, di) { var w = (0 < di.mlw) ? di.mlw : - (0 < trace.marker.line.width) ? trace.marker.line.width : // Note: we don't want to get true & return an array when trace.marker.line.width is an array containing zeros. + !isArrayOrTypedArray(trace.marker.line.width) ? trace.marker.line.width : 0; return w; From 579a1b55c248350de6c2d461c87ac0a05bd0eef9 Mon Sep 17 00:00:00 2001 From: archmoj Date: Thu, 18 Jul 2019 14:25:05 -0400 Subject: [PATCH 4/4] remove unused Lib.mergeArrayCastNumber and Lib.mergeArrayCastIfNumber for now --- src/lib/index.js | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/src/lib/index.js b/src/lib/index.js index 788f522a742..da1e75093ba 100644 --- a/src/lib/index.js +++ b/src/lib/index.js @@ -470,20 +470,6 @@ lib.mergeArray = function(traceAttr, cd, cdAttr, fn) { } }; -// cast numbers to numbers and if not return 0 -lib.mergeArrayCastIfNumber = function(traceAttr, cd, cdAttr) { - return lib.mergeArray(traceAttr, cd, cdAttr, function(v) { - return isNumeric(v) ? +v : v; - }); -}; - -// cast numbers to numbers, NaN to NaN, null to 0 -lib.mergeArrayCastNumber = function(traceAttr, cd, cdAttr) { - return lib.mergeArray(traceAttr, cd, cdAttr, function(v) { - return +v; - }); -}; - // cast numbers to positive numbers, returns 0 if not greater than 0 lib.mergeArrayCastPositive = function(traceAttr, cd, cdAttr) { return lib.mergeArray(traceAttr, cd, cdAttr, function(v) {