@@ -29,6 +29,45 @@ export default function(lib) {
29
29
} , delay ) ;
30
30
} ) ;
31
31
32
+ // FIX for c3 tooltip bug - REMOVE when https://github.com/c3js/c3/pull/2476 is merged
33
+ if ( c3 . chart && c3 . chart . internal && c3 . chart . internal . fn ) {
34
+ c3 . chart . internal . fn . horizontalDistance = function ( data , pos ) {
35
+ var $$ = this ,
36
+ config = $$ . config ,
37
+ xIndex = config . axis_rotated ? 1 : 0 ,
38
+ x = $$ . x ( data . x ) ;
39
+ return Math . abs ( x - pos [ xIndex ] ) ;
40
+ } ;
41
+ c3 . chart . internal . fn . findClosest = function ( values , pos ) {
42
+ const CLASS = c3 . chart . internal . fn . CLASS ;
43
+ var $$ = this ,
44
+ minDist = $$ . config . point_sensitivity ,
45
+ minDist = Infinity ,
46
+ closest ;
47
+ // find mouseovering bar
48
+ values . filter ( function ( v ) {
49
+ return v && $$ . isBarType ( v . id ) ;
50
+ } ) . forEach ( function ( v ) {
51
+ var shape = $$ . main . select ( '.' + CLASS . bars + $$ . getTargetSelectorSuffix ( v . id ) + ' .' + CLASS . bar + '-' + v . index ) . node ( ) ;
52
+ if ( ! closest && $$ . isWithinBar ( $$ . d3 . mouse ( shape ) , shape ) ) {
53
+ closest = v ;
54
+ }
55
+ } ) ;
56
+ // find closest point from non-bar
57
+ values . filter ( function ( v ) {
58
+ return v && ! $$ . isBarType ( v . id ) ;
59
+ } ) . forEach ( function ( v ) {
60
+ var d = $$ . dist ( v , pos ) ;
61
+ var d = $$ . horizontalDistance ( v , pos ) ;
62
+ if ( d < minDist ) {
63
+ minDist = d ;
64
+ closest = v ;
65
+ }
66
+ } ) ;
67
+ return closest ;
68
+ } ;
69
+ }
70
+
32
71
return defineC3 ( ) ;
33
72
} ;
34
73
@@ -276,6 +315,7 @@ function defineC3(){
276
315
277
316
// Render artifacts
278
317
this . view . _artifacts [ 'c3' ] = c3 . generate ( c3options ) ;
318
+
279
319
c3PaginatingLegend . call ( this , { ...options , onLegendRendered : ( ) => {
280
320
const legendElement = this . el ( ) . querySelector ( '.keen-c3-legend' ) ;
281
321
if ( legendElement ) {
0 commit comments