@@ -171,8 +171,8 @@ var ReactTooltip = function (_Component) {
171
171
value : function bindListener ( ) {
172
172
var targetArray = this . getTargetArray ( ) ;
173
173
174
- var dataEvent = undefined ;
175
- var dataEventOff = undefined ;
174
+ var dataEvent = void 0 ;
175
+ var dataEventOff = void 0 ;
176
176
for ( var i = 0 ; i < targetArray . length ; i ++ ) {
177
177
if ( targetArray [ i ] . getAttribute ( 'currentItem' ) === null ) {
178
178
targetArray [ i ] . setAttribute ( 'currentItem' , 'false' ) ;
@@ -206,7 +206,7 @@ var ReactTooltip = function (_Component) {
206
206
key : 'unbindListener' ,
207
207
value : function unbindListener ( ) {
208
208
var targetArray = document . querySelectorAll ( '[data-tip]' ) ;
209
- var dataEvent = undefined ;
209
+ var dataEvent = void 0 ;
210
210
211
211
for ( var i = 0 ; i < targetArray . length ; i ++ ) {
212
212
dataEvent = this . state . event || targetArray [ i ] . getAttribute ( 'data-event' ) ;
@@ -229,7 +229,7 @@ var ReactTooltip = function (_Component) {
229
229
value : function getTargetArray ( ) {
230
230
var id = this . props . id ;
231
231
232
- var targetArray = undefined ;
232
+ var targetArray = void 0 ;
233
233
234
234
if ( id === undefined ) {
235
235
targetArray = document . querySelectorAll ( '[data-tip]:not([data-for])' ) ;
@@ -278,7 +278,7 @@ var ReactTooltip = function (_Component) {
278
278
value : function checkStatus ( e ) {
279
279
var show = this . state . show ;
280
280
281
- var isCapture = undefined ;
281
+ var isCapture = void 0 ;
282
282
283
283
if ( e . currentTarget . getAttribute ( 'data-iscapture' ) ) {
284
284
isCapture = e . currentTarget . getAttribute ( 'data-iscapture' ) === 'true' ;
@@ -329,7 +329,7 @@ var ReactTooltip = function (_Component) {
329
329
/* Detect multiline */
330
330
var regexp = / < b r \s * \/ ? > / ;
331
331
var multiline = e . currentTarget . getAttribute ( 'data-multiline' ) ? e . currentTarget . getAttribute ( 'data-multiline' ) : this . props . multiline ? this . props . multiline : false ;
332
- var tooltipText = undefined ;
332
+ var tooltipText = void 0 ;
333
333
var multilineCount = 0 ;
334
334
if ( ! multiline || multiline === 'false' || ! regexp . test ( originTooltip ) ) {
335
335
tooltipText = originTooltip ;
@@ -464,13 +464,29 @@ var ReactTooltip = function (_Component) {
464
464
var targetHeight = currentTarget . clientHeight ;
465
465
var windoWidth = window . innerWidth ;
466
466
var windowHeight = window . innerHeight ;
467
- var x = undefined ;
468
- var y = undefined ;
467
+ var x = void 0 ;
468
+ var y = void 0 ;
469
469
var defaultTopY = targetTop - tipHeight - 8 ;
470
470
var defaultBottomY = targetTop + targetHeight + 8 ;
471
471
var defaultLeftX = targetLeft - tipWidth - 6 ;
472
472
var defaultRightX = targetLeft + targetWidth + 6 ;
473
473
474
+ var parentTop = 0 ;
475
+ var parentLeft = 0 ;
476
+ var currentParent = currentTarget . parentElement ;
477
+
478
+ while ( currentParent ) {
479
+ if ( currentParent . style . transform . length > 0 ) {
480
+ break ;
481
+ }
482
+ currentParent = currentParent . parentElement ;
483
+ }
484
+
485
+ if ( currentParent ) {
486
+ parentTop = currentParent . getBoundingClientRect ( ) . top ;
487
+ parentLeft = currentParent . getBoundingClientRect ( ) . left ;
488
+ }
489
+
474
490
var outsideTop = function outsideTop ( ) {
475
491
return defaultTopY - 10 < 0 ;
476
492
} ;
@@ -532,17 +548,17 @@ var ReactTooltip = function (_Component) {
532
548
} ;
533
549
534
550
if ( place === 'top' ) {
535
- x = targetLeft - tipWidth / 2 + targetWidth / 2 ;
536
- y = getTopPositionY ( ) ;
551
+ x = targetLeft - tipWidth / 2 + targetWidth / 2 - parentLeft ;
552
+ y = getTopPositionY ( ) - parentTop ;
537
553
} else if ( place === 'bottom' ) {
538
- x = targetLeft - tipWidth / 2 + targetWidth / 2 ;
539
- y = getBottomPositionY ( ) ;
554
+ x = targetLeft - tipWidth / 2 + targetWidth / 2 - parentLeft ;
555
+ y = getBottomPositionY ( ) - parentTop ;
540
556
} else if ( place === 'left' ) {
541
- x = getLeftPositionX ( ) ;
542
- y = targetTop + targetHeight / 2 - tipHeight / 2 ;
557
+ x = getLeftPositionX ( ) - parentLeft ;
558
+ y = targetTop + targetHeight / 2 - tipHeight / 2 - parentTop ;
543
559
} else if ( place === 'right' ) {
544
- x = getRightPositionX ( ) ;
545
- y = targetTop + targetHeight / 2 - tipHeight / 2 ;
560
+ x = getRightPositionX ( ) - parentLeft ;
561
+ y = targetTop + targetHeight / 2 - tipHeight / 2 - parentTop ;
546
562
}
547
563
548
564
return { x : x , y : y } ;
@@ -737,8 +753,8 @@ var ReactTooltip = function (_Component) {
737
753
}
738
754
firstCount ++ ;
739
755
}
740
- for ( var i = string . length - 1 ; i >= 0 ; i -- ) {
741
- if ( string [ i ] !== ' ' ) {
756
+ for ( var _i = string . length - 1 ; _i >= 0 ; _i -- ) {
757
+ if ( string [ _i ] !== ' ' ) {
742
758
break ;
743
759
}
744
760
lastCount ++ ;
0 commit comments