@@ -5158,24 +5158,22 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
51585158
51595159 if ( ! positionTimeout ) {
51605160 positionTimeout = $timeout ( function ( ) {
5161- var placementClasses = $position . parsePlacement ( ttScope . placement ) ;
5161+ // calculate position based on available space
5162+ var ttPosition = $position . positionElements ( element , tooltip , ttScope . placement , appendTo || appendToBody , true ) ;
5163+ var placementClasses = ttPosition . placement . split ( '-' ) ;
51625164
5163- // need to add classes prior to placement to allow correct tooltip size calculations
5165+ // add placement class, e.g. "top", "left", etc
51645166 if ( ! tooltip . hasClass ( options . placementClassPrefix + placementClasses [ 0 ] ) ) {
5165- tooltip . removeClass ( lastPlacement ) ;
5166- tooltip . removeClass ( options . placementClassPrefix + lastPlacement ) ;
5167+ tooltip . removeClass ( options . placementClassPrefix + lastPlacement . split ( '-' ) [ 0 ] ) ;
51675168 tooltip . addClass ( options . placementClassPrefix + placementClasses [ 0 ] ) ;
51685169 }
5169-
5170- // calculate proper positioning based on available space
5171- var ttPosition = $position . positionElements ( element , tooltip , ttScope . placement , appendTo || appendToBody , true ) ;
5172- var placement = ttPosition . placement ;
51735170
5174- if ( ! tooltip . hasClass ( options . placementClassPrefix + placement ) ) {
5175- tooltip . removeClass ( options . placementClassPrefix + placementClasses [ 0 ] ) ;
5176- tooltip . addClass ( options . placementClassPrefix + placement ) ;
5171+ // add secondary alignment class, e.g. "top-left", "bottom-right", etc
5172+ if ( ! tooltip . hasClass ( options . placementClassPrefix + ttPosition . placement ) ) {
5173+ tooltip . removeClass ( options . placementClassPrefix + lastPlacement ) ;
5174+ tooltip . addClass ( options . placementClassPrefix + ttPosition . placement ) ;
51775175 }
5178-
5176+
51795177 // Take into account tooltup margins, since boostrap css draws tooltip arrow inside margins
51805178 var initialHeight = angular . isDefined ( tooltip . offsetHeight ) ? tooltip . offsetHeight : tooltip . prop ( 'offsetHeight' ) ;
51815179 var elementPos = appendToBody ? $position . offset ( element ) : $position . position ( element ) ;
@@ -5199,7 +5197,7 @@ angular.module('ui.bootstrap.tooltip', ['ui.bootstrap.position', 'ui.bootstrap.s
51995197 } else if ( lastPlacement !== ttPosition . placement ) {
52005198 $position . positionArrow ( tooltip , ttPosition . placement ) ;
52015199 }
5202- lastPlacement = placement ;
5200+ lastPlacement = ttPosition . placement ;
52035201
52045202 positionTimeout = null ;
52055203 } , 0 , false ) ;
0 commit comments