Skip to content

Commit 6ba88ca

Browse files
authored
Merge pull request #6635 from plotly/waterfall-hover-total-delta
Fix waterfall `hovertemplate` not showing delta on totals similar to `texttemplate`
2 parents 5342fe4 + 8d185b9 commit 6ba88ca

File tree

2 files changed

+39
-10
lines changed

2 files changed

+39
-10
lines changed

src/traces/waterfall/hover.js

+8-10
Original file line numberDiff line numberDiff line change
@@ -31,16 +31,14 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, opts) {
3131

3232
var size = (di.isSum) ? di.b + di.s : di.rawS;
3333

34-
if(!di.isSum) {
35-
point.initial = di.b + di.s - size;
36-
point.delta = size;
37-
point.final = point.initial + point.delta;
38-
39-
var v = formatNumber(Math.abs(point.delta));
40-
point.deltaLabel = size < 0 ? '(' + v + ')' : v;
41-
point.finalLabel = formatNumber(point.final);
42-
point.initialLabel = formatNumber(point.initial);
43-
}
34+
point.initial = di.b + di.s - size;
35+
point.delta = size;
36+
point.final = point.initial + point.delta;
37+
38+
var v = formatNumber(Math.abs(point.delta));
39+
point.deltaLabel = size < 0 ? '(' + v + ')' : v;
40+
point.finalLabel = formatNumber(point.final);
41+
point.initialLabel = formatNumber(point.initial);
4442

4543
var hoverinfo = di.hi || trace.hoverinfo;
4644
var text = [];

test/jasmine/tests/waterfall_test.js

+31
Original file line numberDiff line numberDiff line change
@@ -1528,6 +1528,37 @@ describe('waterfall hover', function() {
15281528
.then(done, done.fail);
15291529
});
15301530

1531+
it('should provide delta hovertemplate on totals similar to hovertext', function(done) {
1532+
gd = createGraphDiv();
1533+
1534+
function _hover() {
1535+
var evt = { xpx: 400, ypx: 100 };
1536+
Fx.hover('graph', evt, 'xy');
1537+
}
1538+
1539+
Plotly.newPlot(gd, {
1540+
data: [{
1541+
type: 'waterfall',
1542+
y: [ 10, -4, null ],
1543+
measure: [ '', '', 'total' ],
1544+
texttemplate: '%{delta}',
1545+
hovertemplate: '%{delta}',
1546+
}],
1547+
layout: {
1548+
width: 600,
1549+
height: 400
1550+
}
1551+
})
1552+
.then(_hover)
1553+
.then(function() {
1554+
assertHoverLabelContent({
1555+
nums: '6',
1556+
name: 'trace 0'
1557+
});
1558+
})
1559+
.then(done, done.fail);
1560+
});
1561+
15311562
it('should format numbers - round hover precision', function(done) {
15321563
gd = createGraphDiv();
15331564

0 commit comments

Comments
 (0)