@@ -182,6 +182,7 @@ import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip.js
182
182
183
183
var mousemoveInterval = null
184
184
185
+ /* render react tooltip component */
185
186
ReactDOM . unmountComponentAtNode ( document . getElementById ( 'chart-tooltip' ) )
186
187
ReactDOM . render ( < Tooltip popMethod = 'click' >
187
188
< div className = 'tooltip-target' > </ div >
@@ -193,7 +194,8 @@ import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip.js
193
194
</ div >
194
195
</ div >
195
196
</ Tooltip >
196
- , document . getElementById ( 'chart-tooltip' ) )
197
+ , document . getElementById ( 'chart-tooltip' ) )
198
+
197
199
$scope . isFocused = false
198
200
svg . selectAll ( 'rect.hover' )
199
201
. data ( ranges )
@@ -216,6 +218,8 @@ import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip.js
216
218
$scope . highlightedRating = d . start
217
219
$scope . displayCoders = true
218
220
$scope . numCoders = d . number
221
+
222
+ /* update tooltip location on mouseover, feature currently not inbuilt in react tooltip component */
219
223
d3 . select ( '#chart-tooltip' )
220
224
. style ( 'left' , ( d3 . event . pageX - 4 ) + 'px' )
221
225
. style ( 'top' , ( d3 . event . pageY - 4 ) + 'px' )
@@ -236,9 +240,12 @@ import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip.js
236
240
$scope . $digest ( )
237
241
} )
238
242
. on ( 'mousemove' , function ( d ) {
239
- window . clearTimeout ( mousemoveInterval )
243
+
244
+ /* update tooltip on mousemove, using interval of 50ms to improve performance */
245
+ window . clearTimeout ( mousemoveInterval )
240
246
var left = ( d3 . event . pageX - 4 )
241
247
var top = ( d3 . event . pageY - 4 )
248
+
242
249
mousemoveInterval = window . setTimeout ( function ( ) {
243
250
d3 . select ( '#chart-tooltip' )
244
251
. style ( 'left' , left + 'px' )
@@ -260,7 +267,8 @@ import Tooltip from 'appirio-tech-react-components/components/Tooltip/Tooltip.js
260
267
$scope . isFocused = false
261
268
$scope . $digest ( )
262
269
} )
263
-
270
+
271
+ /* hide tooltip when clicked anywhere outside */
264
272
d3 . select ( 'body' ) . on ( 'click' , function ( ) {
265
273
if ( ( d3 . event . target . classList [ 0 ] != 'tooltip-target' ) && ! $ ( '#chart-tooltip .tooltip-container' ) . hasClass ( 'tooltip-hide' ) &&
266
274
! isInArray ( d3 . event . target . classList [ 0 ] , [ 'tooltip-content-container' , 'tooltip-container' , 'tooltip-body' , 'Tooltip' ] ) &&
0 commit comments