diff --git a/src/components/fx/helpers.js b/src/components/fx/helpers.js index a796aded8c8..f11e5266ef7 100644 --- a/src/components/fx/helpers.js +++ b/src/components/fx/helpers.js @@ -138,11 +138,6 @@ exports.makeEventData = function(pt, trace, cd) { if('yVal' in pt) out.y = pt.yVal; else if('y' in pt) out.y = pt.y; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; if(pt.zLabelVal !== undefined) out.z = pt.zLabelVal; diff --git a/src/components/fx/hover.js b/src/components/fx/hover.js index 66ac9b91cb7..64c63e2de5b 100644 --- a/src/components/fx/hover.js +++ b/src/components/fx/hover.js @@ -752,12 +752,14 @@ function _hover(gd, evt, subplot, noHoverEvent) { pt.hovertemplate = ht || pt.trace.hovertemplate || false; } - var bbox = {}; - if('x0' in pt) bbox.x0 = pt.x0 + pt.xa._offset + gLeft; - if('x1' in pt) bbox.x1 = pt.x1 + pt.xa._offset + gLeft; - if('y0' in pt) bbox.y0 = pt.y0 + pt.ya._offset + gTop; - if('y1' in pt) bbox.y1 = pt.y1 + pt.ya._offset + gTop; - eventData.bbox = bbox; + if(pt.xa && pt.ya) { + eventData.bbox = { + x0: pt.x0 + pt.xa._offset + gLeft, + x1: pt.x1 + pt.xa._offset + gLeft, + y0: pt.y0 + pt.ya._offset + gTop, + y1: pt.y1 + pt.ya._offset + gTop + }; + } pt.eventData = [eventData]; newhoverdata.push(eventData); diff --git a/src/traces/bar/event_data.js b/src/traces/bar/event_data.js index 0d3f6f4ff3f..fb20f16b065 100644 --- a/src/traces/bar/event_data.js +++ b/src/traces/bar/event_data.js @@ -7,11 +7,6 @@ module.exports = function eventData(out, pt, trace) { if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - if(trace.orientation === 'h') { out.label = out.y; out.value = out.x; diff --git a/src/traces/box/event_data.js b/src/traces/box/event_data.js index 21c0fc67abb..4ee9bd70d9f 100644 --- a/src/traces/box/event_data.js +++ b/src/traces/box/event_data.js @@ -11,10 +11,5 @@ module.exports = function eventData(out, pt) { if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - return out; }; diff --git a/src/traces/funnel/event_data.js b/src/traces/funnel/event_data.js index b7a06d679ca..678219186e4 100644 --- a/src/traces/funnel/event_data.js +++ b/src/traces/funnel/event_data.js @@ -13,10 +13,5 @@ module.exports = function eventData(out, pt /* , trace, cd, pointNumber */) { if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - return out; }; diff --git a/src/traces/histogram/event_data.js b/src/traces/histogram/event_data.js index 181ce500d69..db61fccc7db 100644 --- a/src/traces/histogram/event_data.js +++ b/src/traces/histogram/event_data.js @@ -11,11 +11,6 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - // specific to histogram - CDFs do not have pts (yet?) if(!(trace.cumulative || {}).enabled) { var pts = Array.isArray(pointNumber) ? diff --git a/src/traces/image/event_data.js b/src/traces/image/event_data.js index 8e07437aff3..0d8d1bc3ba0 100644 --- a/src/traces/image/event_data.js +++ b/src/traces/image/event_data.js @@ -3,12 +3,6 @@ module.exports = function eventData(out, pt) { if('xVal' in pt) out.x = pt.xVal; if('yVal' in pt) out.y = pt.yVal; - - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; out.color = pt.color; diff --git a/src/traces/pie/event_data.js b/src/traces/pie/event_data.js index eb5cdcad87a..3393f0353dd 100644 --- a/src/traces/pie/event_data.js +++ b/src/traces/pie/event_data.js @@ -18,16 +18,7 @@ module.exports = function eventData(pt, trace) { text: pt.text, // pt.v (and pt.i below) for backward compatibility - v: pt.v, - - // TODO: These coordinates aren't quite correct and don't take into account some offset - // I still haven't quite located (similar to xa._offset) - bbox: { - x0: pt.x0, - x1: pt.x1, - y0: pt.y0, - y1: pt.y1, - }, + v: pt.v }; // Only include pointNumber if it's unambiguous diff --git a/src/traces/pie/plot.js b/src/traces/pie/plot.js index 17810a3b712..cca8694817d 100644 --- a/src/traces/pie/plot.js +++ b/src/traces/pie/plot.js @@ -379,19 +379,12 @@ function attachFxHandlers(sliceTop, gd, cd) { if(hoverinfo === 'all') hoverinfo = 'label+text+value+percent+name'; - // If hoverinfo === 'none', we still want the *coordinates* of hover to be - // output, just not the hover to actually display - var rInscribed = pt.rInscribed || 0; - var hoverCenterX = cx + pt.pxmid[0] * (1 - rInscribed); - var hoverCenterY = cy + pt.pxmid[1] * (1 - rInscribed); - pt.x0 = hoverCenterX - rInscribed * cd0.r; - pt.x1 = hoverCenterX + rInscribed * cd0.r; - pt.y0 = hoverCenterY; - pt.y1 = hoverCenterY; - // in case we dragged over the pie from another subplot, // or if hover is turned off if(trace2.hovertemplate || (hoverinfo !== 'none' && hoverinfo !== 'skip' && hoverinfo)) { + var rInscribed = pt.rInscribed || 0; + var hoverCenterX = cx + pt.pxmid[0] * (1 - rInscribed); + var hoverCenterY = cy + pt.pxmid[1] * (1 - rInscribed); var separators = fullLayout2.separators; var text = []; @@ -413,9 +406,9 @@ function attachFxHandlers(sliceTop, gd, cd) { Fx.loneHover({ trace: trace, - x0: pt.x0, - x1: pt.x1, - y: pt.y0, + x0: hoverCenterX - rInscribed * cd0.r, + x1: hoverCenterX + rInscribed * cd0.r, + y: hoverCenterY, text: text.join('
'), name: (trace2.hovertemplate || hoverinfo.indexOf('name') !== -1) ? trace2.name : undefined, idealAlign: pt.pxmid[0] < 0 ? 'left' : 'right', diff --git a/src/traces/scattercarpet/event_data.js b/src/traces/scattercarpet/event_data.js index a89a923f579..41aa4b4a739 100644 --- a/src/traces/scattercarpet/event_data.js +++ b/src/traces/scattercarpet/event_data.js @@ -7,10 +7,5 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { out.b = cdi.b; out.y = cdi.y; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - return out; }; diff --git a/src/traces/scatterternary/event_data.js b/src/traces/scatterternary/event_data.js index 733816565ed..ef7722d7419 100644 --- a/src/traces/scatterternary/event_data.js +++ b/src/traces/scatterternary/event_data.js @@ -4,11 +4,6 @@ module.exports = function eventData(out, pt, trace, cd, pointNumber) { if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - if(cd[pointNumber]) { var cdi = cd[pointNumber]; diff --git a/src/traces/waterfall/event_data.js b/src/traces/waterfall/event_data.js index 3a25b77fc28..24c05324795 100644 --- a/src/traces/waterfall/event_data.js +++ b/src/traces/waterfall/event_data.js @@ -13,10 +13,5 @@ module.exports = function eventData(out, pt /* , trace, cd, pointNumber */) { if(pt.xa) out.xaxis = pt.xa; if(pt.ya) out.yaxis = pt.ya; - if('x0' in pt) out.x0 = pt.x0; - if('x1' in pt) out.x1 = pt.x1; - if('y0' in pt) out.y0 = pt.y0; - if('y1' in pt) out.y1 = pt.y1; - return out; }; diff --git a/test/jasmine/tests/click_test.js b/test/jasmine/tests/click_test.js index 9c707e42b90..10e1d03d515 100644 --- a/test/jasmine/tests/click_test.js +++ b/test/jasmine/tests/click_test.js @@ -117,7 +117,7 @@ describe('Test click interactions:', function() { var pt = futureData.points[0]; expect(Object.keys(pt).sort()).toEqual([ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', - 'bbox', 'x0', 'x1', 'y0', 'y1', + 'bbox', 'x', 'y', 'xaxis', 'yaxis' ].sort()); expect(pt.curveNumber).toEqual(0); @@ -151,7 +151,7 @@ describe('Test click interactions:', function() { var pt = futureData.points[0]; expect(Object.keys(pt).sort()).toEqual([ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', - 'bbox', 'x0', 'x1', 'y0', 'y1', + 'bbox', 'x', 'y', 'xaxis', 'yaxis' ].sort()); expect(pt.curveNumber).toEqual(0); @@ -223,7 +223,7 @@ describe('Test click interactions:', function() { var pt = futureData.points[0]; expect(Object.keys(pt).sort()).toEqual([ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', - 'bbox', 'x0', 'x1', 'y0', 'y1', + 'bbox', 'x', 'y', 'xaxis', 'yaxis' ].sort()); expect(pt.curveNumber).toEqual(0); @@ -313,7 +313,7 @@ describe('Test click interactions:', function() { var pt = futureData.points[0]; expect(Object.keys(pt).sort()).toEqual([ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', - 'bbox', 'x0', 'x1', 'y0', 'y1', + 'bbox', 'x', 'y', 'xaxis', 'yaxis' ].sort()); expect(pt.curveNumber).toEqual(0); @@ -347,7 +347,7 @@ describe('Test click interactions:', function() { var pt = futureData.points[0]; expect(Object.keys(pt).sort()).toEqual([ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', - 'bbox', 'x0', 'x1', 'y0', 'y1', + 'bbox', 'x', 'y', 'xaxis', 'yaxis' ].sort()); expect(pt.curveNumber).toEqual(0); @@ -385,7 +385,7 @@ describe('Test click interactions:', function() { var pt = futureData.points[0]; expect(Object.keys(pt).sort()).toEqual([ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', - 'bbox', 'x0', 'x1', 'y0', 'y1', + 'bbox', 'x', 'y', 'xaxis', 'yaxis' ].sort()); expect(pt.curveNumber).toEqual(0); diff --git a/test/jasmine/tests/funnelarea_test.js b/test/jasmine/tests/funnelarea_test.js index faa00094d13..2afb934e434 100644 --- a/test/jasmine/tests/funnelarea_test.js +++ b/test/jasmine/tests/funnelarea_test.js @@ -763,7 +763,7 @@ describe('funnelarea hovering', function() { var fields = [ 'curveNumber', 'pointNumber', 'pointNumbers', - 'data', 'fullData', 'bbox', + 'data', 'fullData', 'label', 'color', 'value', 'percent', 'text' ]; diff --git a/test/jasmine/tests/pie_test.js b/test/jasmine/tests/pie_test.js index 6ea3d528bc4..eedb6974d26 100644 --- a/test/jasmine/tests/pie_test.js +++ b/test/jasmine/tests/pie_test.js @@ -1101,9 +1101,9 @@ describe('pie hovering', function() { var fields = [ 'curveNumber', 'pointNumber', 'pointNumbers', - 'data', 'fullData', 'bbox', + 'data', 'fullData', 'label', 'color', 'value', - 'i', 'v', 'percent', 'text', + 'i', 'v', 'percent', 'text' ]; expect(Object.keys(hoverData.points[0]).sort()).toEqual(fields.sort()); diff --git a/test/jasmine/tests/ternary_test.js b/test/jasmine/tests/ternary_test.js index 4bf8fa52922..151a818edab 100644 --- a/test/jasmine/tests/ternary_test.js +++ b/test/jasmine/tests/ternary_test.js @@ -22,7 +22,7 @@ var assertHoverLabelContent = customAssertions.assertHoverLabelContent; var SORTED_EVENT_KEYS = [ 'data', 'fullData', 'curveNumber', 'pointNumber', 'pointIndex', 'xaxis', 'yaxis', 'a', 'b', 'c', - 'bbox', 'x0', 'x1', 'y0', 'y1' + 'bbox' ].sort(); describe('ternary plots', function() {