@@ -52,10 +52,11 @@ export class Popover extends ViewController {
52
52
* |-----------------------|------------|------------------------------------------------------------------------------------------------------------------|
53
53
* | cssClass |`string` | An additional class for custom styles. |
54
54
* | showBackdrop |`boolean` | Whether to show the backdrop. Default true. |
55
- * | enableBackdropDismiss |`boolean` | Wheather the popover should be dismissed by tapping the backdrop. Default true. |
55
+ * | enableBackdropDismiss |`boolean` | Whether the popover should be dismissed by tapping the backdrop. Default true. |
56
56
*
57
57
*
58
- * @param {object } data Any data to pass to the popover view
58
+ * @param {object } componentType The Popover
59
+ * @param {object } data Any data to pass to the Popover view
59
60
* @param {object } opts Popover options
60
61
*/
61
62
static create ( componentType , data = { } , opts : PopoverOptions = { } ) {
@@ -71,9 +72,11 @@ export class Popover extends ViewController {
71
72
selector : 'ion-popover' ,
72
73
template :
73
74
'<div disable-activated class="backdrop" (click)="bdClick()" [class.hide-backdrop]="!d.showBackdrop"></div>' +
74
- '<div class="popover-arrow"></div>' +
75
75
'<div class="popover-wrapper">' +
76
- '<div #viewport></div>' +
76
+ '<div class="popover-arrow"></div>' +
77
+ '<div class="popover-content">' +
78
+ '<div #viewport></div>' +
79
+ '</div>' +
77
80
'</div>'
78
81
} )
79
82
class PopoverCmp {
@@ -148,8 +151,8 @@ class PopoverTransition extends Transition {
148
151
}
149
152
150
153
positionView ( nativeEle : HTMLElement , ev ) {
151
- // Popover wrapper width and height
152
- let popoverEle = < HTMLElement > nativeEle . querySelector ( '.popover-wrapper ' ) ;
154
+ // Popover content width and height
155
+ let popoverEle = < HTMLElement > nativeEle . querySelector ( '.popover-content ' ) ;
153
156
let popoverDim = popoverEle . getBoundingClientRect ( ) ;
154
157
let popoverWidth = popoverDim . width ;
155
158
let popoverHeight = popoverDim . height ;
@@ -216,18 +219,16 @@ class PopoverPopIn extends PopoverTransition {
216
219
this . positionView ( ele , opts . ev ) ;
217
220
218
221
let backdrop = new Animation ( ele . querySelector ( '.backdrop' ) ) ;
219
- let arrow = new Animation ( ele . querySelector ( '.popover-arrow' ) ) ;
220
222
let wrapper = new Animation ( ele . querySelector ( '.popover-wrapper' ) ) ;
221
223
222
- arrow . fromTo ( 'opacity' , '0.01' , '1' ) ;
223
- wrapper . fromTo ( 'opacity' , '0.01' , '1' ) . fromTo ( 'scale' , '1.1' , '1' ) ;
224
- backdrop . fromTo ( 'opacity' , '0.01' , '0.3' ) ;
224
+ wrapper . fromTo ( 'opacity' , '0.01' , '1' ) ;
225
+ backdrop . fromTo ( 'opacity' , '0.01' , '0.1' ) ;
225
226
226
227
this
227
- . easing ( 'ease-in-out' )
228
- . duration ( 200 )
228
+ . easing ( 'ease' )
229
+ . duration ( 100 )
230
+ . before . addClass ( 'show-page' )
229
231
. add ( backdrop )
230
- . add ( arrow )
231
232
. add ( wrapper ) ;
232
233
}
233
234
}
@@ -240,18 +241,15 @@ class PopoverPopOut extends PopoverTransition {
240
241
241
242
let ele = leavingView . pageRef ( ) . nativeElement ;
242
243
let backdrop = new Animation ( ele . querySelector ( '.backdrop' ) ) ;
243
- let arrow = new Animation ( ele . querySelector ( '.popover-arrow' ) ) ;
244
244
let wrapper = new Animation ( ele . querySelector ( '.popover-wrapper' ) ) ;
245
245
246
- arrow . fromTo ( 'opacity' , '1' , '0' ) ;
247
- wrapper . fromTo ( 'opacity' , '1' , '0' ) . fromTo ( 'scale' , '1' , '0.9' ) ;
248
- backdrop . fromTo ( 'opacity' , '0.3' , '0' ) ;
246
+ wrapper . fromTo ( 'opacity' , '1' , '0' ) ;
247
+ backdrop . fromTo ( 'opacity' , '0.1' , '0' ) ;
249
248
250
249
this
251
- . easing ( 'ease-in-out ' )
252
- . duration ( 200 )
250
+ . easing ( 'ease' )
251
+ . duration ( 500 )
253
252
. add ( backdrop )
254
- . add ( arrow )
255
253
. add ( wrapper ) ;
256
254
}
257
255
}
@@ -266,19 +264,17 @@ class PopoverMdPopIn extends PopoverTransition {
266
264
this . positionView ( ele , opts . ev ) ;
267
265
268
266
let backdrop = new Animation ( ele . querySelector ( '.backdrop' ) ) ;
269
- let arrow = new Animation ( ele . querySelector ( '.popover-arrow' ) ) ;
270
267
let wrapper = new Animation ( ele . querySelector ( '.popover-wrapper' ) ) ;
271
268
272
- arrow . fromTo ( 'opacity' , '0.01' , '1' ) . fromTo ( 'scale' , '1.1' , '1' ) ;
273
- wrapper . fromTo ( 'opacity' , '0.01' , '1' ) . fromTo ( 'scale' , '1.1' , '1' ) ;
274
- backdrop . fromTo ( 'opacity' , '0.01' , '0.5' ) ;
269
+ wrapper . fromTo ( 'opacity' , '0.01' , '1' ) ;
270
+ backdrop . fromTo ( 'opacity' , '0' , '0' ) ;
275
271
276
272
this
277
- . easing ( 'ease-in-out' )
278
- . duration ( 200 )
273
+ . easing ( 'ease' )
274
+ . duration ( 100 )
275
+ . fadeIn ( )
279
276
. add ( backdrop )
280
- . add ( wrapper )
281
- . add ( arrow ) ;
277
+ . add ( wrapper ) ;
282
278
}
283
279
}
284
280
Transition . register ( 'popover-md-pop-in' , PopoverMdPopIn ) ;
@@ -290,19 +286,17 @@ class PopoverMdPopOut extends PopoverTransition {
290
286
291
287
let ele = leavingView . pageRef ( ) . nativeElement ;
292
288
let backdrop = new Animation ( ele . querySelector ( '.backdrop' ) ) ;
293
- let arrow = new Animation ( ele . querySelector ( '.popover-arrow' ) ) ;
294
289
let wrapper = new Animation ( ele . querySelector ( '.popover-wrapper' ) ) ;
295
290
296
- arrow . fromTo ( 'opacity' , '1' , '0' ) . fromTo ( 'scale' , '1' , '0.9' ) ;
297
- wrapper . fromTo ( 'opacity' , '1' , '0' ) . fromTo ( 'scale' , '1' , '0.9' ) ;
298
- backdrop . fromTo ( 'opacity' , '0.5' , '0' ) ;
291
+ wrapper . fromTo ( 'opacity' , '1' , '0' ) ;
292
+ backdrop . fromTo ( 'opacity' , '0' , '0' ) ;
299
293
300
294
this
301
- . easing ( 'ease-in-out' )
302
- . duration ( 200 )
295
+ . easing ( 'ease' )
296
+ . duration ( 500 )
297
+ . fadeIn ( )
303
298
. add ( backdrop )
304
- . add ( wrapper )
305
- . add ( arrow ) ;
299
+ . add ( wrapper ) ;
306
300
}
307
301
}
308
302
Transition . register ( 'popover-md-pop-out' , PopoverMdPopOut ) ;
@@ -317,19 +311,17 @@ class PopoverWpPopIn extends PopoverTransition {
317
311
this . positionView ( ele , opts . ev ) ;
318
312
319
313
let backdrop = new Animation ( ele . querySelector ( '.backdrop' ) ) ;
320
- let arrow = new Animation ( ele . querySelector ( '.popover-arrow' ) ) ;
321
314
let wrapper = new Animation ( ele . querySelector ( '.popover-wrapper' ) ) ;
322
315
323
- arrow . fromTo ( 'opacity' , '0.01' , '1' ) . fromTo ( 'scale' , '1.3' , '1' ) ;
324
- wrapper . fromTo ( 'opacity' , '0.01' , '1' ) . fromTo ( 'scale' , '1.3' , '1' ) ;
316
+ wrapper . fromTo ( 'opacity' , '0.01' , '1' ) ;
325
317
backdrop . fromTo ( 'opacity' , '0.01' , '0.5' ) ;
326
318
327
319
this
328
- . easing ( 'cubic-bezier(0,0 0.05,1)' )
329
- . duration ( 200 )
320
+ . easing ( 'ease' )
321
+ . duration ( 100 )
322
+ . fadeIn ( )
330
323
. add ( backdrop )
331
- . add ( wrapper )
332
- . add ( arrow ) ;
324
+ . add ( wrapper ) ;
333
325
}
334
326
}
335
327
Transition . register ( 'popover-wp-pop-in' , PopoverWpPopIn ) ;
@@ -341,19 +333,17 @@ class PopoverWpPopOut extends PopoverTransition {
341
333
342
334
let ele = leavingView . pageRef ( ) . nativeElement ;
343
335
let backdrop = new Animation ( ele . querySelector ( '.backdrop' ) ) ;
344
- let arrow = new Animation ( ele . querySelector ( '.popover-arrow' ) ) ;
345
336
let wrapper = new Animation ( ele . querySelector ( '.popover-wrapper' ) ) ;
346
337
347
- arrow . fromTo ( 'opacity' , '1' , '0' ) . fromTo ( 'scale' , '1' , '1.3' ) ;
348
- wrapper . fromTo ( 'opacity' , '1' , '0' ) . fromTo ( 'scale' , '1' , '1.3' ) ;
338
+ wrapper . fromTo ( 'opacity' , '1' , '0' ) ;
349
339
backdrop . fromTo ( 'opacity' , '0.5' , '0' ) ;
350
340
351
341
this
352
- . easing ( 'ease-out' )
353
- . duration ( 150 )
342
+ . easing ( 'ease' )
343
+ . duration ( 500 )
344
+ . fadeIn ( )
354
345
. add ( backdrop )
355
- . add ( wrapper )
356
- . add ( arrow ) ;
346
+ . add ( wrapper ) ;
357
347
}
358
348
}
359
349
Transition . register ( 'popover-wp-pop-out' , PopoverWpPopOut ) ;
0 commit comments