Skip to content

Commit d473560

Browse files
committed
fix namelength=0 case
1 parent 0782274 commit d473560

File tree

2 files changed

+57
-3
lines changed

2 files changed

+57
-3
lines changed

src/components/fx/hover.js

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1334,18 +1334,22 @@ function cleanPoint(d, hovermode) {
13341334
var cd0 = d.cd[0];
13351335
var cd = d.cd[index] || {};
13361336

1337+
function pass(v) {
1338+
return v || (isNumeric(v) && v === 0);
1339+
}
1340+
13371341
var getVal = Array.isArray(index) ?
13381342
function(calcKey, traceKey) {
1339-
return Lib.castOption(cd0, index, calcKey) ||
1340-
Lib.extractOption({}, trace, '', traceKey);
1343+
var v = Lib.castOption(cd0, index, calcKey);
1344+
return pass(v) ? v : Lib.extractOption({}, trace, '', traceKey);
13411345
} :
13421346
function(calcKey, traceKey) {
13431347
return Lib.extractOption(cd, trace, calcKey, traceKey);
13441348
};
13451349

13461350
function fill(key, calcKey, traceKey) {
13471351
var val = getVal(calcKey, traceKey);
1348-
if(val) d[key] = val;
1352+
if(pass(val)) d[key] = val;
13491353
}
13501354

13511355
fill('hoverinfo', 'hi', 'hoverinfo');

test/jasmine/tests/hover_label_test.js

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -805,6 +805,40 @@ describe('hover info', function() {
805805
name: 'trace one'
806806
});
807807
})
808+
.then(function() {
809+
var nl = [[0, 0, 0], [0, 0, 0]];
810+
return Plotly.restyle(gd, 'hoverlabel.namelength', [nl, nl]);
811+
})
812+
.then(function() {
813+
// hoverlabel.namelength has no effect when <extra></extra> is set
814+
_hover(gd, 250, 50);
815+
assertHoverLabelContent({
816+
nums: '(1,3) -- 2',
817+
name: 'trace two'
818+
});
819+
820+
_hover(gd, 250, 300);
821+
assertHoverLabelContent({
822+
nums: '(1,1) -- 5.56',
823+
name: 'trace one'
824+
});
825+
})
826+
.then(function() {
827+
return Plotly.restyle(gd, 'hovertemplate', null);
828+
})
829+
.then(function() {
830+
_hover(gd, 250, 50);
831+
assertHoverLabelContent({
832+
nums: 'x: 1\ny: 3\nz: 2\nY',
833+
name: ''
834+
});
835+
836+
_hover(gd, 250, 300);
837+
assertHoverLabelContent({
838+
nums: 'x: 1\ny: 1\nz: 5.56\nY',
839+
name: ''
840+
});
841+
})
808842
.catch(failTest)
809843
.then(done);
810844
});
@@ -929,6 +963,22 @@ describe('hover info', function() {
929963
name: 'one'
930964
});
931965
})
966+
.then(function() {
967+
return Plotly.restyle(gd, 'hoverlabel.namelength', 0);
968+
})
969+
.then(function() {
970+
_hover(gd, 250, 100);
971+
assertHoverLabelContent({
972+
nums: 'f(1.000,3.000)=2',
973+
name: ''
974+
});
975+
976+
_hover(gd, 250, 300);
977+
assertHoverLabelContent({
978+
nums: 'f(1.000,1.000)=5.56',
979+
name: ''
980+
});
981+
})
932982
.catch(failTest)
933983
.then(done);
934984
});

0 commit comments

Comments
 (0)