@@ -88,14 +88,30 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
8888 }
8989 }
9090
91+ var zVal = z [ ny ] [ nx ] ;
92+ if ( zmask && ! zmask [ ny ] [ nx ] ) zVal = undefined ;
93+
94+ if ( zVal === undefined && ! trace . hoverongaps ) return ;
95+
9196 var text ;
9297 if ( Array . isArray ( cd0 . hovertext ) && Array . isArray ( cd0 . hovertext [ ny ] ) ) {
9398 text = cd0 . hovertext [ ny ] [ nx ] ;
9499 } else if ( Array . isArray ( cd0 . text ) && Array . isArray ( cd0 . text [ ny ] ) ) {
95100 text = cd0 . text [ ny ] [ nx ] ;
96101 }
97102
98- var obj = {
103+ // dummy axis for formatting the z value
104+ var cOpts = extractOpts ( trace ) ;
105+ var dummyAx = {
106+ type : 'linear' ,
107+ range : [ cOpts . min , cOpts . max ] ,
108+ hoverformat : zhoverformat ,
109+ _separators : xa . _separators ,
110+ _numFormat : xa . _numFormat
111+ } ;
112+ var zLabel = Axes . tickText ( dummyAx , zVal , 'hover' ) . text ;
113+
114+ return [ Lib . extendFlat ( pointData , {
99115 index : [ ny , nx ] ,
100116 // never let a 2D override 1D type as closest point
101117 distance : pointData . maxHoverDistance ,
@@ -106,26 +122,8 @@ module.exports = function hoverPoints(pointData, xval, yval, hovermode, hoverLay
106122 y1 : y1 ,
107123 xLabelVal : xl ,
108124 yLabelVal : yl ,
125+ zLabelVal : zVal ,
126+ zLabel : zLabel ,
109127 text : text
110- } ;
111-
112- var zVal = z [ ny ] [ nx ] ;
113- if ( zmask && ! zmask [ ny ] [ nx ] ) zVal = undefined ;
114-
115- if ( zVal !== undefined || trace . hoverongaps ) {
116- // dummy axis for formatting the z value
117- var cOpts = extractOpts ( trace ) ;
118- var dummyAx = {
119- type : 'linear' ,
120- range : [ cOpts . min , cOpts . max ] ,
121- hoverformat : zhoverformat ,
122- _separators : xa . _separators ,
123- _numFormat : xa . _numFormat
124- } ;
125-
126- obj . zLabelVal = zVal ;
127- obj . zLabel = Axes . tickText ( dummyAx , zVal , 'hover' ) . text ;
128- }
129-
130- return [ Lib . extendFlat ( pointData , obj ) ] ;
128+ } ) ] ;
131129} ;
0 commit comments