@@ -170,19 +170,50 @@ function getButtonGroups(gd) {
170
170
dragModeGroup . push ( 'select2d' , 'lasso2d' ) ;
171
171
}
172
172
173
- // accept pre-defined buttons as string
173
+ var enabledHoverGroup = [ ] ;
174
+ var enableHover = function ( a ) {
175
+ // return if already added
176
+ if ( enabledHoverGroup . indexOf ( a ) !== - 1 ) return ;
177
+ // should be in hoverGroup
178
+ if ( hoverGroup . indexOf ( a ) !== - 1 ) {
179
+ enabledHoverGroup . push ( a ) ;
180
+ }
181
+ } ;
174
182
if ( Array . isArray ( buttonsToAdd ) ) {
175
183
var newList = [ ] ;
176
184
for ( var i = 0 ; i < buttonsToAdd . length ; i ++ ) {
177
185
var b = buttonsToAdd [ i ] ;
178
186
if ( typeof b === 'string' ) {
187
+ b = b . toLowerCase ( ) ;
188
+
179
189
if ( DRAW_MODES . indexOf ( b ) !== - 1 ) {
190
+ // accept pre-defined drag modes i.e. shape drawing features as string
180
191
if (
181
192
fullLayout . _has ( 'mapbox' ) || // draw shapes in paper coordinate (could be improved in future to support data coordinate, when there is no pitch)
182
193
fullLayout . _has ( 'cartesian' ) // draw shapes in data coordinate
183
194
) {
184
195
dragModeGroup . push ( b ) ;
185
196
}
197
+ } else if ( b === 'togglespikelines' ) {
198
+ enableHover ( 'toggleSpikelines' ) ;
199
+ } else if ( b === 'togglehover' ) {
200
+ enableHover ( 'toggleHover' ) ;
201
+ } else if ( b === 'hovercompare' ) {
202
+ enableHover ( 'hoverCompareCartesian' ) ;
203
+ } else if ( b === 'hoverclosest' ) {
204
+ enableHover ( 'hoverClosestCartesian' ) ;
205
+ enableHover ( 'hoverClosestGeo' ) ;
206
+ enableHover ( 'hoverClosest3d' ) ;
207
+ enableHover ( 'hoverClosestGl2d' ) ;
208
+ enableHover ( 'hoverClosestPie' ) ;
209
+ } else if ( b === 'v1hovermode' ) {
210
+ enableHover ( 'toggleHover' ) ;
211
+ enableHover ( 'hoverClosestCartesian' ) ;
212
+ enableHover ( 'hoverCompareCartesian' ) ;
213
+ enableHover ( 'hoverClosestGeo' ) ;
214
+ enableHover ( 'hoverClosest3d' ) ;
215
+ enableHover ( 'hoverClosestGl2d' ) ;
216
+ enableHover ( 'hoverClosestPie' ) ;
186
217
}
187
218
} else newList . push ( b ) ;
188
219
}
@@ -191,7 +222,7 @@ function getButtonGroups(gd) {
191
222
192
223
addGroup ( dragModeGroup ) ;
193
224
addGroup ( zoomGroup . concat ( resetGroup ) ) ;
194
- addGroup ( hoverGroup ) ;
225
+ addGroup ( enabledHoverGroup ) ;
195
226
196
227
return appendButtonsToGroups ( groups , buttonsToAdd ) ;
197
228
}
0 commit comments