' +
'
' +
@@ -240,7 +240,7 @@ export interface LoadingOptions {
super(opts);
let ele = enteringView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
let wrapper = new Animation(ele.querySelector('.loading-wrapper'));
wrapper.fromTo('opacity', '0.01', '1').fromTo('scale', '1.1', '1');
@@ -261,7 +261,7 @@ export interface LoadingOptions {
super(opts);
let ele = leavingView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
let wrapper = new Animation(ele.querySelector('.loading-wrapper'));
wrapper.fromTo('opacity', '1', '0').fromTo('scale', '1', '0.9');
@@ -282,7 +282,7 @@ export interface LoadingOptions {
super(opts);
let ele = enteringView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
let wrapper = new Animation(ele.querySelector('.loading-wrapper'));
wrapper.fromTo('opacity', '0.01', '1').fromTo('scale', '1.1', '1');
@@ -303,7 +303,7 @@ export interface LoadingOptions {
super(opts);
let ele = leavingView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
let wrapper = new Animation(ele.querySelector('.loading-wrapper'));
wrapper.fromTo('opacity', '1', '0').fromTo('scale', '1', '0.9');
@@ -324,7 +324,7 @@ export interface LoadingOptions {
super(opts);
let ele = enteringView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
let wrapper = new Animation(ele.querySelector('.loading-wrapper'));
wrapper.fromTo('opacity', '0.01', '1').fromTo('scale', '1.3', '1');
@@ -345,7 +345,7 @@ export interface LoadingOptions {
super(opts);
let ele = leavingView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
let wrapper = new Animation(ele.querySelector('.loading-wrapper'));
wrapper.fromTo('opacity', '1', '0').fromTo('scale', '1', '1.3');
diff --git a/src/components/menu/menu.scss b/src/components/menu/menu.scss
index 9097f6f523..e6b1cbd1a3 100644
--- a/src/components/menu/menu.scss
+++ b/src/components/menu/menu.scss
@@ -28,7 +28,7 @@ ion-menu[side=right] {
left: auto;
}
-ion-menu .backdrop {
+ion-menu ion-backdrop {
z-index: -1;
display: none;
}
@@ -74,13 +74,13 @@ ion-menu[type=overlay] {
left: -8px; // make up for the box-shadow hanging over on the left
z-index: $z-index-menu-overlay;
- .backdrop {
+ ion-backdrop {
left: -3000px;
display: block;
width: 6000px;
- opacity: .01;
+ opacity: 0.01;
transform: translate3d(-9999px, 0, 0);
&.show-backdrop {
diff --git a/src/components/menu/menu.ts b/src/components/menu/menu.ts
index e4412d446c..cd46038606 100644
--- a/src/components/menu/menu.ts
+++ b/src/components/menu/menu.ts
@@ -1,4 +1,4 @@
-import {Component, forwardRef, Directive, Host, EventEmitter, ElementRef, NgZone, Input, Output, Renderer, ChangeDetectionStrategy, ViewEncapsulation} from '@angular/core';
+import {Component, forwardRef, Directive, Host, EventEmitter, ElementRef, NgZone, Input, Output, Renderer, ChangeDetectionStrategy, ViewEncapsulation, ViewChild} from '@angular/core';
import {Ion} from '../ion';
import {Config} from '../../config/config';
@@ -8,6 +8,7 @@ import {MenuContentGesture, MenuTargetGesture} from './menu-gestures';
import {MenuController} from './menu-controller';
import {MenuType} from './menu-types';
import {isTrueProperty} from '../../util/util';
+import {Backdrop} from '../backdrop/backdrop';
/**
@@ -180,8 +181,7 @@ import {isTrueProperty} from '../../util/util';
},
template:
'
' +
- '
',
- directives: [forwardRef(() => MenuBackdrop)],
+ '
',
changeDetection: ChangeDetectionStrategy.OnPush,
encapsulation: ViewEncapsulation.None,
})
@@ -206,7 +206,7 @@ export class Menu extends Ion {
/**
* @private
*/
- backdrop: MenuBackdrop;
+ @ViewChild(Backdrop) backdrop: Backdrop;
/**
* @private
@@ -363,6 +363,16 @@ export class Menu extends Ion {
self._menuCtrl.register(self);
}
+ /**
+ * @private
+ */
+ bdClick(ev) {
+ console.debug('backdrop clicked');
+ ev.preventDefault();
+ ev.stopPropagation();
+ this._menuCtrl.close();
+ }
+
/**
* @private
*/
@@ -609,31 +619,3 @@ export class Menu extends Ion {
}
}
-
-
-
-/**
- * @private
- */
-@Directive({
- selector: '.backdrop',
- host: {
- '(click)': 'clicked($event)',
- }
-})
-export class MenuBackdrop {
-
- constructor(@Host() private _menuCtrl: Menu, public elementRef: ElementRef) {
- _menuCtrl.backdrop = this;
- }
-
- /**
- * @private
- */
- private clicked(ev: UIEvent) {
- console.debug('backdrop clicked');
- ev.preventDefault();
- ev.stopPropagation();
- this._menuCtrl.close();
- }
-}
diff --git a/src/components/modal/modal.scss b/src/components/modal/modal.scss
index 2ad26a3aa8..2686212e9f 100644
--- a/src/components/modal/modal.scss
+++ b/src/components/modal/modal.scss
@@ -20,7 +20,7 @@ $modal-inset-height-large: 600px !default;
width: 100%;
height: 100%;
- .backdrop {
+ ion-backdrop {
@media not all and (min-width: $modal-inset-min-width) and (min-height: $modal-inset-min-height-small) {
display: none;
}
diff --git a/src/components/modal/modal.ts b/src/components/modal/modal.ts
index 803a137fd3..7bc4f353ce 100644
--- a/src/components/modal/modal.ts
+++ b/src/components/modal/modal.ts
@@ -156,7 +156,7 @@ export class Modal extends ViewController {
@Component({
selector: 'ion-modal',
template:
- '
' +
+ '
' +
'
'
@@ -165,7 +165,7 @@ export class ModalCmp {
@ViewChild('viewport', {read: ViewContainerRef}) viewport: ViewContainerRef;
- constructor(protected _loader: DynamicComponentLoader, protected _navParams: NavParams) {}
+ constructor(protected _loader: DynamicComponentLoader, protected _navParams: NavParams) {}
loadComponent(): Promise
> {
let componentType = this._navParams.data.componentType;
@@ -189,7 +189,7 @@ class ModalSlideIn extends Transition {
super(opts);
let ele = enteringView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
backdrop.fromTo('opacity', 0.01, 0.4);
let wrapper = new Animation(ele.querySelector('.modal-wrapper'));
let page = ele.querySelector('ion-page');
@@ -222,7 +222,7 @@ class ModalSlideOut extends Transition {
let ele = leavingView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
backdrop.fromTo('opacity', 0.4, 0.0);
let wrapperEle = ele.querySelector('.modal-wrapper');
let wrapperEleRect = wrapperEle.getBoundingClientRect();
@@ -249,7 +249,7 @@ class ModalMDSlideIn extends Transition {
super(opts);
let ele = enteringView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
backdrop.fromTo('opacity', 0.01, 0.4);
let wrapper = new Animation(ele.querySelector('.modal-wrapper'));
wrapper.fromTo('translateY', '40px', '0px');
@@ -281,7 +281,7 @@ class ModalMDSlideOut extends Transition {
super(opts);
let ele = leavingView.pageRef().nativeElement;
- let backdrop = new Animation(ele.querySelector('.backdrop'));
+ let backdrop = new Animation(ele.querySelector('ion-backdrop'));
backdrop.fromTo('opacity', 0.4, 0.0);
let wrapper = new Animation(ele.querySelector('.modal-wrapper'));
wrapper.fromTo('translateY', '0px', '40px');
diff --git a/src/components/modal/test/basic/index.ts b/src/components/modal/test/basic/index.ts
index edbca00a3f..4f6b2f919a 100644
--- a/src/components/modal/test/basic/index.ts
+++ b/src/components/modal/test/basic/index.ts
@@ -308,7 +308,7 @@ class ContactUs {
-
+
Item Number: {{item.value}}
diff --git a/src/components/picker/picker.ts b/src/components/picker/picker.ts
index da916536fc..efd70f0976 100644
--- a/src/components/picker/picker.ts
+++ b/src/components/picker/picker.ts
@@ -435,7 +435,7 @@ class PickerColumnCmp {
@Component({
selector: 'ion-picker-cmp',
template:
- '' +
+ '' +
'