From 3844fe1a7ea0816890f97c14a87025dc5732de85 Mon Sep 17 00:00:00 2001 From: Fredric Johansson Date: Wed, 16 Feb 2022 10:20:54 +0100 Subject: [PATCH 1/5] Support hovertemplate on hoveron: fills Scatter trace currently doesn't hovertemplate on hoveron: fills. Change this to allow hovertemplate on fills when mode=='lines' --- src/traces/scatter/defaults.js | 2 +- src/traces/scatter/hover.js | 7 +++++-- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/src/traces/scatter/defaults.js b/src/traces/scatter/defaults.js index 0450df06fa9..a3029f69475 100644 --- a/src/traces/scatter/defaults.js +++ b/src/traces/scatter/defaults.js @@ -76,7 +76,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout dfltHoverOn.push('fills'); } coerce('hoveron', dfltHoverOn.join('+') || 'points'); - if(traceOut.hoveron !== 'fills') coerce('hovertemplate'); + coerce('hovertemplate', false); var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults'); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'}); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'}); diff --git a/src/traces/scatter/hover.js b/src/traces/scatter/hover.js index c86a5b902f8..138e876ebe6 100644 --- a/src/traces/scatter/hover.js +++ b/src/traces/scatter/hover.js @@ -184,7 +184,10 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { else if(Color.opacity((trace.line || {}).color)) { color = trace.line.color; } - + var hovertemplate = false; + if (trace.mode === 'lines') { + hovertemplate = trace.hovertemplate + } Lib.extendFlat(pointData, { // never let a 2D override 1D type as closest point // also: no spikeDistance, it's not allowed for fills @@ -194,7 +197,7 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { y0: yAvg, y1: yAvg, color: color, - hovertemplate: false + hovertemplate: hovertemplate, }); delete pointData.index; From a0a1bce4e634cb53585612c3be17877bba72d3e2 Mon Sep 17 00:00:00 2001 From: Fredric Johansson Date: Wed, 23 Feb 2022 11:24:26 +0100 Subject: [PATCH 2/5] Adjust codestyle --- src/traces/scatter/hover.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/traces/scatter/hover.js b/src/traces/scatter/hover.js index 138e876ebe6..2414dbf0b08 100644 --- a/src/traces/scatter/hover.js +++ b/src/traces/scatter/hover.js @@ -185,8 +185,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode) { color = trace.line.color; } var hovertemplate = false; - if (trace.mode === 'lines') { - hovertemplate = trace.hovertemplate + if(trace.mode === 'lines') { + hovertemplate = trace.hovertemplate; } Lib.extendFlat(pointData, { // never let a 2D override 1D type as closest point From 424bcdfb5dbe46a4fd733abcf51cf514c84e4ba7 Mon Sep 17 00:00:00 2001 From: Fredric Johansson Date: Thu, 27 Feb 2025 12:58:28 +0100 Subject: [PATCH 3/5] Add test for hovertemplate on scatter with hoveron: fills + mode: lines --- test/jasmine/tests/hover_label_test.js | 24 ++++++++++++++++++++++++ 1 file changed, 24 insertions(+) diff --git a/test/jasmine/tests/hover_label_test.js b/test/jasmine/tests/hover_label_test.js index 0461344a3f1..4697048f2f0 100644 --- a/test/jasmine/tests/hover_label_test.js +++ b/test/jasmine/tests/hover_label_test.js @@ -2036,6 +2036,30 @@ describe('hover info', function() { }) .then(done, done.fail); }); + + it('should work when hoveron: fills and mode: lines', function(done) { + var gd = document.getElementById('graph'); + Plotly.newPlot(gd, [{ + 'x': ['0', '390', '390', '0', '0'], + 'y': ['0', '0', '390', '390', '0'], + 'hovertemplate': 'Test', + 'markers': 'lines', + 'type': 'scatter', + 'mode': 'lines', + 'fill': 'toself', + 'hoveron': 'fills' + }], mockCopy.layout + ) + .then(function() { + Fx.hover('graph', evt, 'xy'); + + assertHoverLabelContent({ + nums: 'Test', + name: '' + }); + }) + .then(done, done.fail); + }); }); it('should work with trace.name linked to layout.meta', function(done) { From 32f75ca26a9506ca19e8179be4cec9a1fd6fd541 Mon Sep 17 00:00:00 2001 From: Fredric Johansson Date: Thu, 27 Feb 2025 13:05:50 +0100 Subject: [PATCH 4/5] Use the original if-statement with additional test for mode=='lines' --- src/traces/scatter/defaults.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/traces/scatter/defaults.js b/src/traces/scatter/defaults.js index a3029f69475..d0d45107c02 100644 --- a/src/traces/scatter/defaults.js +++ b/src/traces/scatter/defaults.js @@ -76,7 +76,7 @@ module.exports = function supplyDefaults(traceIn, traceOut, defaultColor, layout dfltHoverOn.push('fills'); } coerce('hoveron', dfltHoverOn.join('+') || 'points'); - coerce('hovertemplate', false); + if(traceOut.hoveron !== 'fills' || traceOut.mode === 'lines') coerce('hovertemplate'); var errorBarsSupplyDefaults = Registry.getComponentMethod('errorbars', 'supplyDefaults'); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'y'}); errorBarsSupplyDefaults(traceIn, traceOut, lineColor || markerColor || defaultColor, {axis: 'x', inherit: 'y'}); From 5c5c197ccec63201ad6ea4ee903da25c0ca73f57 Mon Sep 17 00:00:00 2001 From: Fredric Johansson Date: Thu, 27 Feb 2025 13:34:31 +0100 Subject: [PATCH 5/5] Create 6121_add.md --- draftlogs/6121_add.md | 1 + 1 file changed, 1 insertion(+) create mode 100644 draftlogs/6121_add.md diff --git a/draftlogs/6121_add.md b/draftlogs/6121_add.md new file mode 100644 index 00000000000..364bb3ff4a9 --- /dev/null +++ b/draftlogs/6121_add.md @@ -0,0 +1 @@ +- Add support for hovertemplate when mode=lines on scatter traces [[#6121](https://github.com/plotly/plotly.js/pull/6121)]