Skip to content

Commit 0b6dbd9

Browse files
authored
Merge pull request #5648 from plotly/v2-spike-defaults
New spike defaults in plotly.js v2
2 parents e0ea4d2 + 0361592 commit 0b6dbd9

File tree

5 files changed

+23
-18
lines changed

5 files changed

+23
-18
lines changed

src/components/fx/layout_attributes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -93,7 +93,7 @@ module.exports = {
9393
spikedistance: {
9494
valType: 'integer',
9595
min: -1,
96-
dflt: 20,
96+
dflt: -1,
9797
editType: 'none',
9898
description: [
9999
'Sets the default distance (in pixels) to look for data to draw',

src/components/fx/layout_defaults.js

+1-2
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,6 @@
11
'use strict';
22

33
var Lib = require('../../lib');
4-
var isUnifiedHover = require('./helpers').isUnifiedHover;
54
var layoutAttributes = require('./layout_attributes');
65
var handleHoverModeDefaults = require('./hovermode_defaults');
76
var handleHoverLabelDefaults = require('./hoverlabel_defaults');
@@ -14,7 +13,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut) {
1413
var hoverMode = handleHoverModeDefaults(layoutIn, layoutOut);
1514
if(hoverMode) {
1615
coerce('hoverdistance');
17-
coerce('spikedistance', isUnifiedHover(hoverMode) ? -1 : undefined);
16+
coerce('spikedistance');
1817
}
1918

2019
var dragMode = coerce('dragmode');

src/plots/cartesian/layout_attributes.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -603,7 +603,7 @@ module.exports = {
603603
spikesnap: {
604604
valType: 'enumerated',
605605
values: ['data', 'cursor', 'hovered data'],
606-
dflt: 'data',
606+
dflt: 'hovered data',
607607
editType: 'none',
608608
description: 'Determines whether spikelines are stuck to the cursor or to the closest datapoints.'
609609
},

src/plots/cartesian/layout_defaults.js

+1-1
Original file line numberDiff line numberDiff line change
@@ -253,7 +253,7 @@ module.exports = function supplyLayoutDefaults(layoutIn, layoutOut, fullData) {
253253
var spikethickness = coerce2('spikethickness', unifiedHover ? 1.5 : undefined);
254254
var spikedash = coerce2('spikedash', unifiedHover ? 'dot' : undefined);
255255
var spikemode = coerce2('spikemode', unifiedHover ? 'across' : undefined);
256-
var spikesnap = coerce2('spikesnap', unifiedHover ? 'hovered data' : undefined);
256+
var spikesnap = coerce2('spikesnap');
257257
var showSpikes = coerce('showspikes', !!unifiedSpike || !!spikecolor || !!spikethickness || !!spikedash || !!spikemode || !!spikesnap);
258258

259259
if(!showSpikes) {

test/jasmine/tests/hover_spikeline_test.js

+19-13
Original file line numberDiff line numberDiff line change
@@ -22,13 +22,17 @@ describe('spikeline hover', function() {
2222

2323
function makeMock(spikemode, hovermode) {
2424
var _mock = Lib.extendDeep({}, require('@mocks/19.json'));
25+
_mock.layout.xaxis.spikesnap = 'data';
2526
_mock.layout.xaxis.showspikes = true;
2627
_mock.layout.xaxis.spikemode = spikemode;
28+
_mock.layout.yaxis.spikesnap = 'data';
2729
_mock.layout.yaxis.showspikes = true;
2830
_mock.layout.yaxis.spikemode = spikemode + '+marker';
31+
_mock.layout.xaxis2.spikesnap = 'data';
2932
_mock.layout.xaxis2.showspikes = true;
3033
_mock.layout.xaxis2.spikemode = spikemode;
3134
_mock.layout.hovermode = hovermode;
35+
3236
return _mock;
3337
}
3438

@@ -293,9 +297,6 @@ describe('spikeline hover', function() {
293297
it('does not show spikes if no points are hovered in the spikesnap "hovered data" mode', function(done) {
294298
var _mock = makeMock('toaxis', 'x');
295299
Plotly.newPlot(gd, _mock)
296-
.then(function() {
297-
_setSpikedistance(-1);
298-
})
299300
.then(function() {
300301
_hover({xval: 1.5});
301302
_assert(
@@ -352,6 +353,7 @@ describe('spikeline hover', function() {
352353

353354
it('increase the range of search for points to draw the spikelines on spikedistance change', function(done) {
354355
var _mock = makeMock('toaxis', 'closest');
356+
_mock.layout.spikedistance = 20;
355357

356358
Plotly.newPlot(gd, _mock).then(function() {
357359
_hover({xval: 1.6, yval: 2.6});
@@ -391,28 +393,28 @@ describe('spikeline hover', function() {
391393
Plotly.newPlot(gd, _mock).then(function() {
392394
_hover({xval: 1.6, yval: 2.6});
393395
_assert(
394-
[],
395-
[]
396+
[[557, 401, 557, 250], [80, 250, 557, 250]],
397+
[[83, 250]]
396398
);
397399

398400
_hover({xval: 26, yval: 36}, 'x2y2');
399401
_assert(
400-
[],
402+
[[820, 220, 820, 167]],
401403
[]
402404
);
403405

404-
_setSpikedistance(-1);
406+
_setSpikedistance(20);
405407
})
406408
.then(function() {
407409
_hover({xval: 1.6, yval: 2.6});
408410
_assert(
409-
[[557, 401, 557, 250], [80, 250, 557, 250]],
410-
[[83, 250]]
411+
[],
412+
[]
411413
);
412414

413415
_hover({xval: 26, yval: 36}, 'x2y2');
414416
_assert(
415-
[[820, 220, 820, 167]],
417+
[],
416418
[]
417419
);
418420
})
@@ -447,6 +449,8 @@ describe('spikeline hover', function() {
447449
var mockCopy = Lib.extendDeep({}, mock);
448450
mockCopy.layout.xaxis.showspikes = true;
449451
mockCopy.layout.yaxis.showspikes = true;
452+
mockCopy.layout.xaxis.spikesnap = 'data';
453+
mockCopy.layout.yaxis.spikesnap = 'data';
450454
mockCopy.layout.spikedistance = -1;
451455
mockCopy.layout.hovermode = 'closest';
452456

@@ -498,6 +502,7 @@ describe('spikeline hover', function() {
498502
]
499503
}],
500504
layout: {
505+
spikedistance: 20,
501506
hovermode: 'x',
502507
xaxis: { showspikes: true },
503508
yaxis: { showspikes: true },
@@ -567,6 +572,7 @@ describe('spikeline hover', function() {
567572
return {
568573
width: 600, height: 600, margin: {l: 100, r: 100, t: 100, b: 100},
569574
showlegend: false,
575+
spikedistance: 20,
570576
xaxis: {range: [-0.5, 1.5], showspikes: true, spikemode: 'toaxis+marker'},
571577
yaxis: {range: [-1, 3], showspikes: true, spikemode: 'toaxis+marker'},
572578
hovermode: 'x',
@@ -825,9 +831,9 @@ describe('spikeline hover', function() {
825831
data: [makeData(type, 'xaxis', x, data)],
826832
layout: {
827833
spikedistance: -1,
828-
xaxis: {showspikes: true},
829-
yaxis: {showspikes: true},
830-
zaxis: {showspikes: true},
834+
xaxis: {showspikes: true, spikesnap: 'data'},
835+
yaxis: {showspikes: true, spikesnap: 'data'},
836+
zaxis: {showspikes: true, spikesnap: 'data'},
831837
title: {text: trace.type},
832838
width: 400, height: 400
833839
}

0 commit comments

Comments
 (0)