@@ -242,6 +242,9 @@ class PopoverTransition extends Transition {
242
242
243
243
244
244
positionView ( nativeEle : HTMLElement , ev ) {
245
+ let originY = 'top' ;
246
+ let originX = 'left' ;
247
+
245
248
// Popover content width and height
246
249
let popoverEle = < HTMLElement > nativeEle . querySelector ( '.popover-content' ) ;
247
250
let popoverDim = popoverEle . getBoundingClientRect ( ) ;
@@ -289,6 +292,7 @@ class PopoverTransition extends Transition {
289
292
popoverCSS . left = POPOVER_BODY_PADDING ;
290
293
} else if ( popoverWidth + POPOVER_BODY_PADDING + popoverCSS . left > bodyWidth ) {
291
294
popoverCSS . left = bodyWidth - popoverWidth - POPOVER_BODY_PADDING ;
295
+ originX = 'right' ;
292
296
}
293
297
294
298
// If the popover when popped down stretches past bottom of screen,
@@ -297,6 +301,7 @@ class PopoverTransition extends Transition {
297
301
arrowCSS . top = targetTop - ( arrowHeight + 1 ) ;
298
302
popoverCSS . top = targetTop - popoverHeight - ( arrowHeight - 1 ) ;
299
303
nativeEle . className = nativeEle . className + ' popover-bottom' ;
304
+ originY = 'bottom' ;
300
305
// If there isn't room for it to pop up above the target cut it off
301
306
} else if ( targetTop + targetHeight + popoverHeight > bodyHeight ) {
302
307
popoverEle . style . bottom = POPOVER_BODY_PADDING + '%' ;
@@ -307,6 +312,8 @@ class PopoverTransition extends Transition {
307
312
308
313
popoverEle . style . top = popoverCSS . top + 'px' ;
309
314
popoverEle . style . left = popoverCSS . left + 'px' ;
315
+
316
+ popoverEle . style . transformOrigin = originY + " " + originX ;
310
317
}
311
318
}
312
319
@@ -370,12 +377,11 @@ class PopoverMdPopIn extends PopoverTransition {
370
377
let content = new Animation ( ele . querySelector ( '.popover-content' ) ) ;
371
378
let viewport = new Animation ( ele . querySelector ( '.popover-viewport' ) ) ;
372
379
373
- content . fromTo ( 'maxWidth' , '0%' , '90%' ) ;
374
- content . fromTo ( 'maxHeight' , '0%' , '90%' ) ;
380
+ content . fromTo ( 'scale' , '0' , '1' ) ;
375
381
viewport . fromTo ( 'opacity' , '0' , '1' ) ;
376
382
377
383
this
378
- . easing ( 'ease ' )
384
+ . easing ( 'cubic-bezier(.55,0,.55,.2) ' )
379
385
. duration ( 500 )
380
386
. add ( content )
381
387
. add ( viewport ) ;
0 commit comments