Skip to content

Commit 2afb476

Browse files
committed
set default hovermode to closest
1 parent 264ae72 commit 2afb476

File tree

4 files changed

+8
-44
lines changed

4 files changed

+8
-44
lines changed

src/components/fx/hovermode_defaults.js

Lines changed: 3 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -3,44 +3,14 @@
33
var Lib = require('../../lib');
44
var layoutAttributes = require('./layout_attributes');
55

6-
module.exports = function handleHoverModeDefaults(layoutIn, layoutOut, fullData) {
6+
module.exports = function handleHoverModeDefaults(layoutIn, layoutOut) {
77
function coerce(attr, dflt) {
88
// don't coerce if it is already coerced in other place e.g. in cartesian defaults
99
if(layoutOut[attr] !== undefined) return layoutOut[attr];
1010

1111
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
1212
}
1313

14-
var clickmode = coerce('clickmode');
15-
16-
var hovermodeDflt;
17-
if(layoutOut._has('cartesian')) {
18-
if(clickmode.indexOf('select') > -1) {
19-
hovermodeDflt = 'closest';
20-
} else {
21-
// flag for 'horizontal' plots:
22-
// determines the state of the mode bar 'compare' hovermode button
23-
layoutOut._isHoriz = isHoriz(fullData, layoutOut);
24-
hovermodeDflt = layoutOut._isHoriz ? 'y' : 'x';
25-
}
26-
} else hovermodeDflt = 'closest';
27-
28-
return coerce('hovermode', hovermodeDflt);
14+
coerce('clickmode');
15+
return coerce('hovermode');
2916
};
30-
31-
function isHoriz(fullData, fullLayout) {
32-
var stackOpts = fullLayout._scatterStackOpts || {};
33-
34-
for(var i = 0; i < fullData.length; i++) {
35-
var trace = fullData[i];
36-
var subplot = trace.xaxis + trace.yaxis;
37-
var subplotStackOpts = stackOpts[subplot] || {};
38-
var groupOpts = subplotStackOpts[trace.stackgroup] || {};
39-
40-
if(trace.orientation !== 'h' && groupOpts.orientation !== 'h') {
41-
return false;
42-
}
43-
}
44-
45-
return true;
46-
}

src/components/fx/layout_attributes.js

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ module.exports = {
6060
hovermode: {
6161
valType: 'enumerated',
6262
values: ['x', 'y', 'closest', false, 'x unified', 'y unified'],
63+
dflt: 'closest',
6364
editType: 'modebar',
6465
description: [
6566
'Determines the mode of hover interactions.',
@@ -72,14 +73,7 @@ module.exports = {
7273
'multiple points at the closest x- (or y-) coordinate within the `hoverdistance`',
7374
'with the caveat that no more than one hoverlabel will appear per trace.',
7475
'In this mode, spikelines are enabled by default perpendicular to the specified axis.',
75-
'If false, hover interactions are disabled.',
76-
'If `clickmode` includes the *select* flag,',
77-
'`hovermode` defaults to *closest*.',
78-
'If `clickmode` lacks the *select* flag,',
79-
'it defaults to *x* or *y* (depending on the trace\'s',
80-
'`orientation` value) for plots based on',
81-
'cartesian coordinates. For anything else the default',
82-
'value is *closest*.',
76+
'If false, hover interactions are disabled.'
8377
].join(' ')
8478
},
8579
hoverdistance: {

src/components/fx/layout_defaults.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -6,12 +6,12 @@ var layoutAttributes = require('./layout_attributes');
66
var handleHoverModeDefaults = require('./hovermode_defaults');
77
var handleHoverLabelDefaults = require('./hoverlabel_defaults');
88

9-
module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
9+
module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
1010
function coerce(attr, dflt) {
1111
return Lib.coerce(layoutIn, layoutOut, layoutAttributes, attr, dflt);
1212
}
1313

14-
var hoverMode = handleHoverModeDefaults(layoutIn, layoutOut, fullData);
14+
var hoverMode = handleHoverModeDefaults(layoutIn, layoutOut);
1515
if(hoverMode) {
1616
coerce('hoverdistance');
1717
coerce('spikedistance', isUnifiedHover(hoverMode) ? -1 : undefined);

src/plots/cartesian/layout_defaults.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -200,7 +200,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
200200
}
201201
}
202202

203-
var hovermode = handleHoverModeDefaults(layoutIn, layoutOut, fullData);
203+
var hovermode = handleHoverModeDefaults(layoutIn, layoutOut);
204204
var unifiedHover = isUnifiedHover(hovermode);
205205

206206
// first pass creates the containers, determines types, and handles most of the settings

0 commit comments

Comments
 (0)