33var axisIds = require ( '../../plots/cartesian/axis_ids' ) ;
44var scatterSubTypes = require ( '../../traces/scatter/subtypes' ) ;
55var Registry = require ( '../../registry' ) ;
6- var isUnifiedHover = require ( '../fx/helpers' ) . isUnifiedHover ;
76
87var createModeBar = require ( './modebar' ) ;
98var modeBarButtons = require ( './buttons' ) ;
@@ -86,7 +85,6 @@ function getButtonGroups(gd) {
8685 var hasPolar = fullLayout . _has ( 'polar' ) ;
8786 var hasSankey = fullLayout . _has ( 'sankey' ) ;
8887 var allAxesFixed = areAllAxesFixed ( fullLayout ) ;
89- var hasUnifiedHoverLabel = isUnifiedHover ( fullLayout . hovermode ) ;
9088
9189 var groups = [ ] ;
9290
@@ -111,45 +109,23 @@ function getButtonGroups(gd) {
111109 addGroup ( commonGroup ) ;
112110
113111 var zoomGroup = [ ] ;
114- var hoverGroup = [ ] ;
115112 var resetGroup = [ ] ;
116113 var dragModeGroup = [ ] ;
117114
118115 if ( ( hasCartesian || hasGL2D || hasPie || hasFunnelarea || hasTernary ) + hasGeo + hasGL3D + hasMapbox + hasPolar > 1 ) {
119116 // graphs with more than one plot types get 'union buttons'
120- // which reset the view or toggle hover labels across all subplots.
121- hoverGroup = [ 'toggleHover' ] ;
117+ // which reset the view across all subplots.
122118 resetGroup = [ 'resetViews' ] ;
123119 } else if ( hasGeo ) {
124120 zoomGroup = [ 'zoomInGeo' , 'zoomOutGeo' ] ;
125- hoverGroup = [ 'hoverClosestGeo' ] ;
126121 resetGroup = [ 'resetGeo' ] ;
127122 } else if ( hasGL3D ) {
128- hoverGroup = [ 'hoverClosest3d' ] ;
129123 resetGroup = [ 'resetCameraDefault3d' , 'resetCameraLastSave3d' ] ;
130124 } else if ( hasMapbox ) {
131125 zoomGroup = [ 'zoomInMapbox' , 'zoomOutMapbox' ] ;
132- hoverGroup = [ 'toggleHover' ] ;
133126 resetGroup = [ 'resetViewMapbox' ] ;
134- } else if ( hasGL2D ) {
135- hoverGroup = [ 'hoverClosestGl2d' ] ;
136- } else if ( hasPie ) {
137- hoverGroup = [ 'hoverClosestPie' ] ;
138127 } else if ( hasSankey ) {
139- hoverGroup = [ 'hoverClosestCartesian' , 'hoverCompareCartesian' ] ;
140128 resetGroup = [ 'resetViewSankey' ] ;
141- } else { // hasPolar, hasTernary
142- // always show at least one hover icon.
143- hoverGroup = [ 'toggleHover' ] ;
144- }
145- // if we have cartesian, allow switching between closest and compare
146- // regardless of what other types are on the plot, since they'll all
147- // just treat any truthy hovermode as 'closest'
148- if ( hasCartesian ) {
149- hoverGroup = [ 'toggleSpikelines' , 'hoverClosestCartesian' , 'hoverCompareCartesian' ] ;
150- }
151- if ( hasNoHover ( fullData ) || hasUnifiedHoverLabel ) {
152- hoverGroup = [ ] ;
153129 }
154130
155131 if ( ( hasCartesian || hasGL2D ) && ! allAxesFixed ) {
@@ -191,7 +167,6 @@ function getButtonGroups(gd) {
191167
192168 addGroup ( dragModeGroup ) ;
193169 addGroup ( zoomGroup . concat ( resetGroup ) ) ;
194- addGroup ( hoverGroup ) ;
195170
196171 return appendButtonsToGroups ( groups , buttonsToAdd ) ;
197172}
@@ -240,14 +215,6 @@ function isSelectable(fullData) {
240215 return selectable ;
241216}
242217
243- // check whether all trace are 'noHover'
244- function hasNoHover ( fullData ) {
245- for ( var i = 0 ; i < fullData . length ; i ++ ) {
246- if ( ! Registry . traceIs ( fullData [ i ] , 'noHover' ) ) return false ;
247- }
248- return true ;
249- }
250-
251218function appendButtonsToGroups ( groups , buttons ) {
252219 if ( buttons . length ) {
253220 if ( Array . isArray ( buttons [ 0 ] ) ) {
0 commit comments