@@ -354,11 +354,11 @@ function _hover(gd, evt, subplot) {
354
354
trace : trace ,
355
355
xa : xaArray [ subploti ] ,
356
356
ya : yaArray [ subploti ] ,
357
- name : ( gd . data . length > 1 || trace . hoverinfo . indexOf ( 'name' ) !== - 1 ) ? trace . name : undefined ,
358
357
// point properties - override all of these
359
358
index : false , // point index in trace - only used by plotly.js hoverdata consumers
360
359
distance : Math . min ( distance , constants . MAXDIST ) , // pixel distance or pseudo-distance
361
360
color : Color . defaultLine , // trace color
361
+ name : trace . name ,
362
362
x0 : undefined ,
363
363
x1 : undefined ,
364
364
y0 : undefined ,
@@ -558,7 +558,7 @@ function createHoverText(hoverData, opts) {
558
558
// to have common labels
559
559
var i , traceHoverinfo ;
560
560
for ( i = 0 ; i < hoverData . length ; i ++ ) {
561
- traceHoverinfo = hoverData [ i ] . trace . hoverinfo ;
561
+ traceHoverinfo = hoverData [ i ] . hoverinfo || hoverData [ i ] . trace . hoverinfo ;
562
562
var parts = traceHoverinfo . split ( '+' ) ;
563
563
if ( parts . indexOf ( 'all' ) === - 1 &&
564
564
parts . indexOf ( hovermode ) === - 1 ) {
@@ -724,7 +724,9 @@ function createHoverText(hoverData, opts) {
724
724
else if ( d . yLabel === undefined ) text = d . xLabel ;
725
725
else text = '(' + d . xLabel + ', ' + d . yLabel + ')' ;
726
726
727
- if ( d . text && ! Array . isArray ( d . text ) ) text += ( text ? '<br>' : '' ) + d . text ;
727
+ if ( d . text && ! Array . isArray ( d . text ) ) {
728
+ text += ( text ? '<br>' : '' ) + d . text ;
729
+ }
728
730
729
731
// if 'text' is empty at this point,
730
732
// put 'name' in main label and don't show secondary label
@@ -1056,6 +1058,30 @@ function cleanPoint(d, hovermode) {
1056
1058
var cd0 = d . cd [ 0 ] ;
1057
1059
var cd = d . cd [ d . index ] || { } ;
1058
1060
1061
+ function fill ( key , calcKey , traceKey ) {
1062
+ var val ;
1063
+
1064
+ if ( cd [ calcKey ] ) {
1065
+ val = cd [ calcKey ] ;
1066
+ } else if ( cd0 [ calcKey ] ) {
1067
+ var arr = cd0 [ calcKey ] ;
1068
+ if ( Array . isArray ( arr ) && Array . isArray ( arr [ d . index [ 0 ] ] ) ) {
1069
+ val = arr [ d . index [ 0 ] ] [ d . index [ 1 ] ] ;
1070
+ }
1071
+ } else {
1072
+ val = Lib . nestedProperty ( trace , traceKey ) . get ( ) ;
1073
+ }
1074
+
1075
+ if ( val ) d [ key ] = val ;
1076
+ }
1077
+
1078
+ fill ( 'hoverinfo' , 'hi' , 'hoverinfo' ) ;
1079
+ fill ( 'color' , 'hbg' , 'hoverlabel.bgcolor' ) ;
1080
+ fill ( 'borderColor' , 'hbc' , 'hoverlabel.bordercolor' ) ;
1081
+ fill ( 'fontFamily' , 'htf' , 'hoverlabel.font.family' ) ;
1082
+ fill ( 'fontSize' , 'hts' , 'hoverlabel.font.size' ) ;
1083
+ fill ( 'fontColor' , 'htc' , 'hoverlabel.font.color' ) ;
1084
+
1059
1085
d . posref = hovermode === 'y' ? ( d . x0 + d . x1 ) / 2 : ( d . y0 + d . y1 ) / 2 ;
1060
1086
1061
1087
// then constrain all the positions to be on the plot
@@ -1123,7 +1149,7 @@ function cleanPoint(d, hovermode) {
1123
1149
if ( hovermode === 'y' ) d . distance += 1 ;
1124
1150
}
1125
1151
1126
- var infomode = d . trace . hoverinfo ;
1152
+ var infomode = d . hoverinfo || d . trace . hoverinfo ;
1127
1153
if ( infomode !== 'all' ) {
1128
1154
infomode = infomode . split ( '+' ) ;
1129
1155
if ( infomode . indexOf ( 'x' ) === - 1 ) d . xLabel = undefined ;
@@ -1133,29 +1159,6 @@ function cleanPoint(d, hovermode) {
1133
1159
if ( infomode . indexOf ( 'name' ) === - 1 ) d . name = undefined ;
1134
1160
}
1135
1161
1136
- function fill ( key , calcKey , traceKey ) {
1137
- var val ;
1138
-
1139
- if ( cd [ calcKey ] ) {
1140
- val = cd [ calcKey ] ;
1141
- } else if ( cd0 [ calcKey ] ) {
1142
- var arr = cd0 [ calcKey ] ;
1143
- if ( Array . isArray ( arr ) && Array . isArray ( arr [ d . index [ 0 ] ] ) ) {
1144
- val = arr [ d . index [ 0 ] ] [ d . index [ 1 ] ] ;
1145
- }
1146
- } else {
1147
- val = Lib . nestedProperty ( trace , traceKey ) . get ( ) ;
1148
- }
1149
-
1150
- if ( val ) d [ key ] = val ;
1151
- }
1152
-
1153
- fill ( 'color' , 'hbg' , 'hoverlabel.bgcolor' ) ;
1154
- fill ( 'borderColor' , 'hbc' , 'hoverlabel.bordercolor' ) ;
1155
- fill ( 'fontFamily' , 'htf' , 'hoverlabel.font.family' ) ;
1156
- fill ( 'fontSize' , 'hts' , 'hoverlabel.font.size' ) ;
1157
- fill ( 'fontColor' , 'htc' , 'hoverlabel.font.color' ) ;
1158
-
1159
1162
return d ;
1160
1163
}
1161
1164
0 commit comments