diff --git a/angular/package.json b/angular/package.json
index 26ea7949837..3f45b23b132 100644
--- a/angular/package.json
+++ b/angular/package.json
@@ -48,30 +48,30 @@
"tslib": "^1.9.3"
},
"peerDependencies": {
- "@angular-devkit/core": "^7.1.4",
- "@angular-devkit/schematics": "^7.1.4",
- "@angular/core": "^7.1.4",
- "@angular/common": "^7.1.4",
- "@angular/forms": "^7.1.4",
- "@angular/router": "^7.1.4",
- "@angular/compiler": "^7.1.4",
- "@angular/compiler-cli": "^7.1.4",
- "@angular/platform-browser": "^7.1.4",
- "@angular/platform-browser-dynamic": "^7.1.4",
+ "@angular-devkit/core": "^7.2.0",
+ "@angular-devkit/schematics": "^7.2.0",
+ "@angular/core": "^7.2.0",
+ "@angular/common": "^7.2.0",
+ "@angular/forms": "^7.2.0",
+ "@angular/router": "^7.2.0",
+ "@angular/compiler": "^7.2.0",
+ "@angular/compiler-cli": "^7.2.0",
+ "@angular/platform-browser": "^7.2.0",
+ "@angular/platform-browser-dynamic": "^7.2.0",
"rxjs": ">=6.2.0",
"zone.js": "^0.8.26"
},
"devDependencies": {
- "@angular-devkit/core": "^7.1.4",
- "@angular-devkit/schematics": "^7.1.4",
- "@angular/common": "^7.1.4",
- "@angular/compiler": "^7.1.4",
- "@angular/compiler-cli": "^7.1.4",
- "@angular/core": "^7.1.4",
- "@angular/forms": "^7.1.4",
- "@angular/platform-browser": "^7.1.4",
- "@angular/platform-browser-dynamic": "^7.1.4",
- "@angular/router": "^7.1.4",
+ "@angular-devkit/core": "^7.2.0",
+ "@angular-devkit/schematics": "^7.2.0",
+ "@angular/common": "^7.2.0",
+ "@angular/compiler": "^7.2.0",
+ "@angular/compiler-cli": "^7.2.0",
+ "@angular/core": "^7.2.0",
+ "@angular/forms": "^7.2.0",
+ "@angular/platform-browser": "^7.2.0",
+ "@angular/platform-browser-dynamic": "^7.2.0",
+ "@angular/router": "^7.2.0",
"@types/node": "~10.12.0",
"fs-extra": "^7.0.0",
"glob": "^7.1.3",
@@ -81,7 +81,7 @@
"tsickle": "^0.34.0",
"tslint": "^5.10.0",
"tslint-ionic-rules": "0.0.21",
- "typescript": "3.1.6",
+ "typescript": "3.2.2",
"zone.js": "^0.8.26"
},
"schematics": "./dist/schematics/collection.json"
diff --git a/angular/src/directives/index.ts b/angular/src/directives/index.ts
deleted file mode 100644
index 7b26dad4de1..00000000000
--- a/angular/src/directives/index.ts
+++ /dev/null
@@ -1,19 +0,0 @@
-
-export { BooleanValueAccessor } from './control-value-accessors/boolean-value-accessor';
-export { NumericValueAccessor } from './control-value-accessors/numeric-value-accesssor';
-export { RadioValueAccessor } from './control-value-accessors/radio-value-accessor';
-export { SelectValueAccessor } from './control-value-accessors/select-value-accessor';
-export { TextValueAccessor } from './control-value-accessors/text-value-accessor';
-
-export { IonTabs } from './navigation/ion-tabs';
-export { IonBackButtonDelegate } from './navigation/ion-back-button';
-export { NavDelegate } from './navigation/nav-delegate';
-export { IonRouterOutlet } from './navigation/ion-router-outlet';
-export { RouterLinkDelegate } from './navigation/router-link-delegate';
-export { NavParams } from './navigation/nav-params';
-
-export { IonVirtualScroll } from './virtual-scroll/virtual-scroll';
-export { VirtualItem } from './virtual-scroll/virtual-item';
-export { VirtualHeader } from './virtual-scroll/virtual-header';
-export { VirtualFooter } from './virtual-scroll/virtual-footer';
-export * from './proxies';
diff --git a/angular/src/index.ts b/angular/src/index.ts
index f572703fa00..023f554e4d6 100644
--- a/angular/src/index.ts
+++ b/angular/src/index.ts
@@ -1,11 +1,39 @@
-// export custom directives
-export * from './directives';
+// DIRECTIVES
+export { BooleanValueAccessor } from './directives/control-value-accessors/boolean-value-accessor';
+export { NumericValueAccessor } from './directives/control-value-accessors/numeric-value-accesssor';
+export { RadioValueAccessor } from './directives/control-value-accessors/radio-value-accessor';
+export { SelectValueAccessor } from './directives/control-value-accessors/select-value-accessor';
+export { TextValueAccessor } from './directives/control-value-accessors/text-value-accessor';
+export { IonTabs } from './directives/navigation/ion-tabs';
+export { IonBackButtonDelegate } from './directives/navigation/ion-back-button';
+export { NavDelegate } from './directives/navigation/nav-delegate';
+export { IonRouterOutlet } from './directives/navigation/ion-router-outlet';
+export { RouterLinkDelegate } from './directives/navigation/router-link-delegate';
+export { NavParams } from './directives/navigation/nav-params';
+export { IonVirtualScroll } from './directives/virtual-scroll/virtual-scroll';
+export { VirtualItem } from './directives/virtual-scroll/virtual-item';
+export { VirtualHeader } from './directives/virtual-scroll/virtual-header';
+export { VirtualFooter } from './directives/virtual-scroll/virtual-footer';
+export * from './directives/proxies';
-// export custom providers
-export * from './providers';
+// PROVIDERS
+export { AngularDelegate } from './providers/angular-delegate';
+export { ActionSheetController } from './providers/action-sheet-controller';
+export { AlertController } from './providers/alert-controller';
+export { Events } from './providers/events';
+export { LoadingController } from './providers/loading-controller';
+export { MenuController } from './providers/menu-controller';
+export { PickerController } from './providers/picker-controller';
+export { ModalController } from './providers/modal-controller';
+export { Platform } from './providers/platform';
+export { PopoverController } from './providers/popover-controller';
+export { ToastController } from './providers/toast-controller';
+export { NavController } from './providers/nav-controller';
+export { DomController } from './providers/dom-controller';
+export { Config } from './providers/config';
-// ionic route reuse strategy
-export * from './util/ionic-router-reuse-strategy';
+// ROUTER STRATEGY
+export { IonicRouteStrategy } from './util/ionic-router-reuse-strategy';
-// export module
+// PACKAGE MODULE
export { IonicModule } from './ionic-module';
diff --git a/angular/src/providers/index.ts b/angular/src/providers/index.ts
deleted file mode 100644
index d9f4f70ed5a..00000000000
--- a/angular/src/providers/index.ts
+++ /dev/null
@@ -1,14 +0,0 @@
-export { AngularDelegate } from './angular-delegate';
-export { ActionSheetController } from './action-sheet-controller';
-export { AlertController } from './alert-controller';
-export { Events } from './events';
-export { LoadingController } from './loading-controller';
-export { MenuController } from './menu-controller';
-export { PickerController } from './picker-controller';
-export { ModalController } from './modal-controller';
-export { Platform } from './platform';
-export { PopoverController } from './popover-controller';
-export { ToastController } from './toast-controller';
-export { NavController } from './nav-controller';
-export { DomController } from './dom-controller';
-export { Config } from './config';
diff --git a/angular/test/test-app/e2e/src/view-child.e2e-spec.ts b/angular/test/test-app/e2e/src/view-child.e2e-spec.ts
new file mode 100644
index 00000000000..90c9bff24dd
--- /dev/null
+++ b/angular/test/test-app/e2e/src/view-child.e2e-spec.ts
@@ -0,0 +1,21 @@
+import { browser, element, by } from 'protractor';
+import { getProperty, setProperty, handleErrorMessages } from './utils';
+
+describe('view-child', () => {
+
+ beforeEach(async () => {
+ await browser.get('/view-child');
+ });
+ afterEach(() => {
+ handleErrorMessages();
+ });
+
+ it('should get a reference to all children', async () => {
+ // button should be red
+ expect(await element(by.css('#color-button.ion-color-danger')).isPresent()).toBeTruthy();
+
+ // tabs should be found
+ expect(await element(by.css('#tabs-result')).getText()).toEqual('tabs found');
+ });
+
+});
diff --git a/angular/test/test-app/package-lock.json b/angular/test/test-app/package-lock.json
index d01e4dc87e0..281004f3314 100644
--- a/angular/test/test-app/package-lock.json
+++ b/angular/test/test-app/package-lock.json
@@ -132,60 +132,124 @@
}
},
"@angular-devkit/schematics": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.1.0.tgz",
- "integrity": "sha512-MIK6eT3x6EppUcz7KFwJ63z3gUVmi5dQPiN8p+kTpHE2SorZCQvQ6+YKUMw9VZ6WLEQOZYJfoQozKyEWllNlsw==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/schematics/-/schematics-7.2.1.tgz",
+ "integrity": "sha512-jEhwkeDn8exgJBfUwMc6rdtDkxHJkUmKPTn4M436bkMMMa9KFPFbPpzp9weKpB3SbRjM3Mu90JprO4C7qDtCcg==",
"dev": true,
"requires": {
- "@angular-devkit/core": "7.1.0",
+ "@angular-devkit/core": "7.2.1",
"rxjs": "6.3.3"
+ },
+ "dependencies": {
+ "@angular-devkit/core": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
+ "integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "6.6.2",
+ "chokidar": "2.0.4",
+ "fast-json-stable-stringify": "2.0.0",
+ "rxjs": "6.3.3",
+ "source-map": "0.7.3"
+ }
+ },
+ "ajv": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
+ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ }
}
},
"@angular/animations": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.1.0.tgz",
- "integrity": "sha512-1Sje3qptVsTxPP4LwcvVPQun4P156wsEEwwCXoCO3NuP+tS67syU8M69uIpyDbpnx2ZeuWpJ9HfvKe1ljeqcuw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/animations/-/animations-7.2.0.tgz",
+ "integrity": "sha512-xi832o3YN+eYSV4PDRllc8JwkH4aKPlb7NZ0UaqchOmz9/jQcykCEMZDzQAZUgHG1ohay6JBVaV8/zNcbSsRCA==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/cli": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.1.0.tgz",
- "integrity": "sha512-G7WZvClrZjfo0VL6eFxwzqPffUQr3XbdkdCUcVbzJVnkFLrBG5Q2jFOJaZ4uFeRW4z5UM+8u/4N9N1Z6MH2QAQ==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@angular/cli/-/cli-7.2.1.tgz",
+ "integrity": "sha512-KA5HE+s2ZBV9T+3XAvLXZulvPzp2BQKEKCoj6aefZB+TZASeatXO8keDDm2+N/8zqoqSe/akf6hvB/u9x0xJ3w==",
"dev": true,
"requires": {
- "@angular-devkit/architect": "0.11.0",
- "@angular-devkit/core": "7.1.0",
- "@angular-devkit/schematics": "7.1.0",
- "@schematics/angular": "7.1.0",
- "@schematics/update": "0.11.0",
- "inquirer": "6.2.0",
+ "@angular-devkit/architect": "0.12.1",
+ "@angular-devkit/core": "7.2.1",
+ "@angular-devkit/schematics": "7.2.1",
+ "@schematics/angular": "7.2.1",
+ "@schematics/update": "0.12.1",
+ "inquirer": "6.2.1",
"opn": "5.3.0",
"semver": "5.5.1",
"symbol-observable": "1.2.0"
+ },
+ "dependencies": {
+ "@angular-devkit/architect": {
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/architect/-/architect-0.12.1.tgz",
+ "integrity": "sha512-1ozBP0ZAApkSfuPpZ7b9vShU8smNxb98jW+65S12cPOxv1bVVxCj5sTmC3sSfXapgq/pMzblbaVSKOG7Ajz0vQ==",
+ "dev": true,
+ "requires": {
+ "@angular-devkit/core": "7.2.1",
+ "rxjs": "6.3.3"
+ }
+ },
+ "@angular-devkit/core": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
+ "integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "6.6.2",
+ "chokidar": "2.0.4",
+ "fast-json-stable-stringify": "2.0.0",
+ "rxjs": "6.3.3",
+ "source-map": "0.7.3"
+ }
+ },
+ "ajv": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
+ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ }
}
},
"@angular/common": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.1.0.tgz",
- "integrity": "sha512-tu6Hv3/z3K2NLD4ndBioGtcykhbwhMJYUWb0NvaOLhaVYColWKPFpkflEorDWB+3/IWkpELGhA/HQ2zQh7EVyg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/common/-/common-7.2.0.tgz",
+ "integrity": "sha512-5HNGT+XsY+7sQcNoFRqhbUfVdnBAtXaupmMbBclnQHTon9y9Ijp0ocYi7zxx39feo6xYF5HhBMnDPkFgtAnsYQ==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/compiler": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.1.0.tgz",
- "integrity": "sha512-1Hjx6e+lVXZyXFFe4OW34ZpiaGEYyB1MQ7k2C+cMm0ABMQS3LsWT4DYhY7bk0mmMuuXQj66C62MX76ladDtdIg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/compiler/-/compiler-7.2.0.tgz",
+ "integrity": "sha512-On1qj4yQoIGxGOQ09ohTq0QNjrIJtWcwnCXYAEEyc83eadBMOqiFh6SUMgX1O+B7BIB4mebFw/n/etez0A21xw==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/compiler-cli": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.1.0.tgz",
- "integrity": "sha512-Q42B3YmjMNYWTxTWfyDDFa6HSVqwY3rZO5Kp3Q/NKhQ6w/WddduxjARf/OCbtp0bVX3wZNObS6nO4H65rNCtsw==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/compiler-cli/-/compiler-cli-7.2.0.tgz",
+ "integrity": "sha512-BKELLAnA4jWfyPEzuVxTNNFAPKJOyh4Xjw7c+dRf90bnw9iIgZOpz9WXSN/xfEhftqRPTnPcfs56i6bxqeYCCQ==",
"dev": true,
"requires": {
"canonical-path": "1.0.0",
@@ -351,7 +415,7 @@
},
"load-json-file": {
"version": "2.0.0",
- "resolved": "http://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
+ "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-2.0.0.tgz",
"integrity": "sha1-eUfkIUmvgNaWy/eXvKq8/h/inKg=",
"dev": true,
"requires": {
@@ -393,7 +457,7 @@
},
"minimist": {
"version": "1.2.0",
- "resolved": "http://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
+ "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.0.tgz",
"integrity": "sha1-o1AIsg9BOD7sH7kU9M1d95omQoQ=",
"dev": true
},
@@ -419,7 +483,7 @@
},
"pify": {
"version": "2.3.0",
- "resolved": "http://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
+ "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz",
"integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=",
"dev": true
},
@@ -520,47 +584,47 @@
}
},
"@angular/core": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.1.0.tgz",
- "integrity": "sha512-7mMoWuf8jAf4hcjQ0Exz2w9Qx9SRwNuDdtEZFGWH9dZWz5uPCewrN+Kt9MigMfSYGEdLAPcRMIuvFHDCS8B3Hg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/core/-/core-7.2.0.tgz",
+ "integrity": "sha512-tlCDDM9IknXvVLk1sg0lzCO4OREM54i1bFtTpl5kPtugK6l4kYCOH78UzDPHnOzzI3LGLj8Hb2NiObVa9c4fdg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/forms": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.1.0.tgz",
- "integrity": "sha512-Gwk80SFqucA0Q0E+I90Onec453QVGhcDU0UUAI09NgTKq+K+/g8xudWUx4pwE9t8WOyOhI5jtFRUtY5XAbfnig==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/forms/-/forms-7.2.0.tgz",
+ "integrity": "sha512-vgnKgThitbaSQekTFt8qCFejnBwBMNJDUm7LJFcvRn4wcZKArTARTfSKHudNYCjTEqs9/YT4TJQTm9flVRbUJw==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/language-service": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.1.0.tgz",
- "integrity": "sha512-dgYCD4Kw6j14hPykprSkMJNCo05dKu+JroMR84/PA/J+weN39nAUj4+/TV4oElbRK2Mr/xtHzSkb259y3Rwm/Q==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/language-service/-/language-service-7.2.0.tgz",
+ "integrity": "sha512-UDmIRR0ybdafrJLHkSDgc/3PpsA9lnwXqGMSAyyhEF3InORFFkloAb0a6Naz+y8ePgEMfqbpyWjtzo8qGtOmEQ==",
"dev": true
},
"@angular/platform-browser": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.1.0.tgz",
- "integrity": "sha512-kCrmaNZukWaXk6qlvzyE1Dln/YB2XOGbhb9e+y3NE94beCgDTWseKViMevIoGm/H+Lzf0I2RPg8GMKkQ7pQwNQ==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser/-/platform-browser-7.2.0.tgz",
+ "integrity": "sha512-ClrGYlacK0kexE7eHLfruOjgJl0MtMt7RsMv5i757GUwbOm1dCwG1HK8cLNDZJFHMZodKVKwEGS6/R5Cl6vrNg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/platform-browser-dynamic": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.1.0.tgz",
- "integrity": "sha512-0yG6e/ZOI9LNUGgSjJ7xUWZhC41z87klO0oEHhEzQeaDxO/SOBasbMiws4ETuhulMgOR81UCAVobXMoOQJbfWg==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/platform-browser-dynamic/-/platform-browser-dynamic-7.2.0.tgz",
+ "integrity": "sha512-IiyBcQIQVDZMxfpTYex1QfPmcMubKLgu1pCvQsjr0HmUEySqcykO+FzHlYLf5TTgRrtkI6cP2pYzTHGVR93Gpg==",
"requires": {
"tslib": "^1.9.0"
}
},
"@angular/router": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.1.0.tgz",
- "integrity": "sha512-yrjNvCj7XbXmZSmQfXGEkWJ9ogRZmIk5GHyOfGKNNRXhQK2OBznY0Avyer2r3mcgV/RLrI1FYQyKN9mdLftf6g==",
+ "version": "7.2.0",
+ "resolved": "https://registry.npmjs.org/@angular/router/-/router-7.2.0.tgz",
+ "integrity": "sha512-Jpm0Y5IH30hIQsbnLgi2/LgHbArfE9gWMj/9mDIUOlJeQfGzNVoifBE+zLLJU/wb09+ZtfwGBxkMeDTitH/n2A==",
"requires": {
"tslib": "^1.9.0"
}
@@ -726,20 +790,20 @@
}
},
"@ionic/angular": {
- "version": "4.0.0-beta.18",
- "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.0.0-beta.18.tgz",
- "integrity": "sha512-VQCT6vGg4tNzmVWZTzIE0tXI8tRGuSlQJMmRmWVuRsAncr+/P+02BzYL3R5ssrLcoRlsJhUJmIyIcJ1XbEkW9w==",
+ "version": "4.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/@ionic/angular/-/angular-4.0.0-rc.1.tgz",
+ "integrity": "sha512-BoNynQ7s+9v4D/yOg6Po33c8svL3HLrL623cmU2CeXIh8F7c4DTlyn+vE6x1ifWrlHucLc5KmMCGd5YqzsGfNw==",
"requires": {
- "@ionic/core": "4.0.0-beta.18",
+ "@ionic/core": "4.0.0-rc.1",
"tslib": "^1.9.3"
}
},
"@ionic/core": {
- "version": "4.0.0-beta.18",
- "resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.0.0-beta.18.tgz",
- "integrity": "sha512-mppyG+7NJWaA/y25dzkyduZm+T527Mpm37jOxfQIAeDEYUvyj/yO5hOrXo1WwzSXI4EquxFnoIfbmlE0Jj0FRg==",
+ "version": "4.0.0-rc.1",
+ "resolved": "https://registry.npmjs.org/@ionic/core/-/core-4.0.0-rc.1.tgz",
+ "integrity": "sha512-HGMjSq0hW7xVczTDib3tJ1aLi6RgE6R3spKWRiEsVvuBz3WGrLAuG6ASFic/U1k5LLG6vyJoWs4qvZ24b3dXag==",
"requires": {
- "ionicons": "4.5.0"
+ "ionicons": "4.5.1"
}
},
"@ngtools/webpack": {
@@ -774,30 +838,90 @@
}
},
"@schematics/angular": {
- "version": "7.1.0",
- "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.1.0.tgz",
- "integrity": "sha512-BLRTHlhYXgP49OwDyoolwolf7LqxOAPuc8lpgH0HEmYjkXmufZ4urngyFKY1IuBwaAR4PLjDx3U/ofszyV0taw==",
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@schematics/angular/-/angular-7.2.1.tgz",
+ "integrity": "sha512-UdqU8udVr693BZ6uaZ7+el/VFlTjrmp56OS+6YaziyAko84e1Q1Fcx+fwdHugy4V3YmQhTVsyOPSEsphnwSwOA==",
"dev": true,
"requires": {
- "@angular-devkit/core": "7.1.0",
- "@angular-devkit/schematics": "7.1.0",
- "typescript": "3.1.6"
+ "@angular-devkit/core": "7.2.1",
+ "@angular-devkit/schematics": "7.2.1",
+ "typescript": "3.2.2"
+ },
+ "dependencies": {
+ "@angular-devkit/core": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
+ "integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "6.6.2",
+ "chokidar": "2.0.4",
+ "fast-json-stable-stringify": "2.0.0",
+ "rxjs": "6.3.3",
+ "source-map": "0.7.3"
+ }
+ },
+ "ajv": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
+ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ },
+ "typescript": {
+ "version": "3.2.2",
+ "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.2.2.tgz",
+ "integrity": "sha512-VCj5UiSyHBjwfYacmDuc/NOk4QQixbE+Wn7MFJuS0nRuPQbof132Pw4u53dm264O8LPc2MVsc7RJNml5szurkg==",
+ "dev": true
+ }
}
},
"@schematics/update": {
- "version": "0.11.0",
- "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.11.0.tgz",
- "integrity": "sha512-Zrt4MQOM8DjK7fYVrzx08KhQ7jSj/at0/uF+Ca+ObZJIiC67IY8NXlc1TETXpB4A2UYrclvc9mTpZrvgIoEcYA==",
+ "version": "0.12.1",
+ "resolved": "https://registry.npmjs.org/@schematics/update/-/update-0.12.1.tgz",
+ "integrity": "sha512-P92tDxy0AA1NPhaThiJ7fIFxIC4jzlGK7sJlpbnRREBImsI/O9gmGaV8Kjy+75vaEjqpWaU2oj1hnWqkmxSK1A==",
"dev": true,
"requires": {
- "@angular-devkit/core": "7.1.0",
- "@angular-devkit/schematics": "7.1.0",
+ "@angular-devkit/core": "7.2.1",
+ "@angular-devkit/schematics": "7.2.1",
"@yarnpkg/lockfile": "1.1.0",
"ini": "1.3.5",
"pacote": "9.1.1",
"rxjs": "6.3.3",
"semver": "5.5.1",
"semver-intersect": "1.4.0"
+ },
+ "dependencies": {
+ "@angular-devkit/core": {
+ "version": "7.2.1",
+ "resolved": "https://registry.npmjs.org/@angular-devkit/core/-/core-7.2.1.tgz",
+ "integrity": "sha512-zOozPswSM1cTkltw5LeSPoZ/fJ2d3vN304IVgKgrM5/Fs54bd7nTaBcAK+HvjKS+5KmykYrXW47Q4CdFJikluQ==",
+ "dev": true,
+ "requires": {
+ "ajv": "6.6.2",
+ "chokidar": "2.0.4",
+ "fast-json-stable-stringify": "2.0.0",
+ "rxjs": "6.3.3",
+ "source-map": "0.7.3"
+ }
+ },
+ "ajv": {
+ "version": "6.6.2",
+ "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.6.2.tgz",
+ "integrity": "sha512-FBHEW6Jf5TB9MGBgUUA9XHkTbjXYfAUjY43ACMfmdMRHniyoMHjHjzD50OK8LGDWQwp4rWEsIq5kEqq7rvIM1g==",
+ "dev": true,
+ "requires": {
+ "fast-deep-equal": "^2.0.1",
+ "fast-json-stable-stringify": "^2.0.0",
+ "json-schema-traverse": "^0.4.1",
+ "uri-js": "^4.2.2"
+ }
+ }
}
},
"@types/jasmine": {
@@ -1132,7 +1256,7 @@
},
"ansi-escapes": {
"version": "3.1.0",
- "resolved": "http://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
+ "resolved": "https://registry.npmjs.org/ansi-escapes/-/ansi-escapes-3.1.0.tgz",
"integrity": "sha512-UgAb8H9D41AQnu/PbWlCofQVcnV4Gs2bBJi9eZPxfU/hgglFh3SMDMENRIqdr7H6XFnXdoknctFByVsCOotTVw==",
"dev": true
},
@@ -3379,7 +3503,7 @@
},
"expand-range": {
"version": "1.8.2",
- "resolved": "http://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
+ "resolved": "https://registry.npmjs.org/expand-range/-/expand-range-1.8.2.tgz",
"integrity": "sha1-opnv/TNf4nIeuujiV+x5ZE/IUzc=",
"dev": true,
"requires": {
@@ -5076,9 +5200,9 @@
"dev": true
},
"inquirer": {
- "version": "6.2.0",
- "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.0.tgz",
- "integrity": "sha512-QIEQG4YyQ2UYZGDC4srMZ7BjHOmNk1lR2JQj5UknBapklm6WHA+VVH7N+sUdX3A7NeCfGF8o4X1S3Ao7nAcIeg==",
+ "version": "6.2.1",
+ "resolved": "https://registry.npmjs.org/inquirer/-/inquirer-6.2.1.tgz",
+ "integrity": "sha512-088kl3DRT2dLU5riVMKKr1DlImd6X7smDhpXUCkJDCKvTEJeRiXh0G132HG9u5a+6Ylw9plFRY7RuTnwohYSpg==",
"dev": true,
"requires": {
"ansi-escapes": "^3.0.0",
@@ -5092,7 +5216,7 @@
"run-async": "^2.2.0",
"rxjs": "^6.1.0",
"string-width": "^2.1.0",
- "strip-ansi": "^4.0.0",
+ "strip-ansi": "^5.0.0",
"through": "^2.3.6"
},
"dependencies": {
@@ -5116,15 +5240,34 @@
"requires": {
"is-fullwidth-code-point": "^2.0.0",
"strip-ansi": "^4.0.0"
+ },
+ "dependencies": {
+ "strip-ansi": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
+ "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "dev": true,
+ "requires": {
+ "ansi-regex": "^3.0.0"
+ }
+ }
}
},
"strip-ansi": {
- "version": "4.0.0",
- "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-4.0.0.tgz",
- "integrity": "sha1-qEeQIusaw2iocTibY1JixQXuNo8=",
+ "version": "5.0.0",
+ "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.0.0.tgz",
+ "integrity": "sha512-Uu7gQyZI7J7gn5qLn1Np3G9vcYGTVqB+lFTytnDJv83dd8T22aGH451P3jueT2/QemInJDfxHB5Tde5OzgG1Ow==",
"dev": true,
"requires": {
- "ansi-regex": "^3.0.0"
+ "ansi-regex": "^4.0.0"
+ },
+ "dependencies": {
+ "ansi-regex": {
+ "version": "4.0.0",
+ "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.0.0.tgz",
+ "integrity": "sha512-iB5Dda8t/UqpPI/IjsejXu5jOGDrzn41wJyljwPH65VCIbk6+1BzFIMJGFwTNrYXT1CrD+B4l19U7awiQ8rk7w==",
+ "dev": true
+ }
}
}
}
@@ -5140,9 +5283,9 @@
}
},
"interpret": {
- "version": "1.1.0",
- "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.1.0.tgz",
- "integrity": "sha1-ftGxQQxqDg94z5XTuEQMY/eLhhQ=",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/interpret/-/interpret-1.2.0.tgz",
+ "integrity": "sha512-mT34yGKMNceBQUoVn7iCDKDntA7SC6gycMAWzGx1z/CMCTV7b2AAtXlo3nRyHZ1FelRkQbQjprHSYGwzLtkVbw==",
"dev": true
},
"invariant": {
@@ -5161,9 +5304,9 @@
"dev": true
},
"ionicons": {
- "version": "4.5.0",
- "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.5.0.tgz",
- "integrity": "sha512-nNkS/0wmPcW4Lbg+NqivlOl14BGKKpaZZzZVQzH63MuZZvuu5u8F/JCwcUYiPOAYGp02w0UaDL/slz+HZOuB3Q=="
+ "version": "4.5.1",
+ "resolved": "https://registry.npmjs.org/ionicons/-/ionicons-4.5.1.tgz",
+ "integrity": "sha512-zqfkjpPKsdzzXePdE03IRw6xt7B6N3fcN/7NepyniuEWhKZLy7YpdZLegEwBmKeciXi7rIcv1O/hHJTdokUwXQ=="
},
"ip": {
"version": "1.1.5",
@@ -6282,25 +6425,36 @@
},
"dependencies": {
"cacache": {
- "version": "11.3.1",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz",
- "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==",
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
+ "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
"dev": true,
"requires": {
- "bluebird": "^3.5.1",
- "chownr": "^1.0.1",
- "figgy-pudding": "^3.1.0",
- "glob": "^7.1.2",
- "graceful-fs": "^4.1.11",
- "lru-cache": "^4.1.3",
+ "bluebird": "^3.5.3",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.1.15",
+ "lru-cache": "^5.1.1",
"mississippi": "^3.0.0",
"mkdirp": "^0.5.1",
"move-concurrently": "^1.0.1",
"promise-inflight": "^1.0.1",
"rimraf": "^2.6.2",
- "ssri": "^6.0.0",
- "unique-filename": "^1.1.0",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
"y18n": "^4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ }
}
},
"mississippi": {
@@ -6564,9 +6718,9 @@
}
},
"minizlib": {
- "version": "1.1.1",
- "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.1.1.tgz",
- "integrity": "sha512-TrfjCjk4jLhcJyGMYymBH6oTXcWjYbUAXTHDbtnWHjZC25h0cdajHuPE1zxb4DVmu8crfh+HwH/WMuyLG0nHBg==",
+ "version": "1.2.1",
+ "resolved": "https://registry.npmjs.org/minizlib/-/minizlib-1.2.1.tgz",
+ "integrity": "sha512-7+4oTUOWKg7AuL3vloEWekXY2/D20cevzsrNT2kGWm+39J9hGTCBv8VI5Pm5lXZ/o3/mdR4f8rflAPhnQb8mPA==",
"dev": true,
"requires": {
"minipass": "^2.2.1"
@@ -6932,9 +7086,9 @@
}
},
"npm-packlist": {
- "version": "1.1.12",
- "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.1.12.tgz",
- "integrity": "sha512-WJKFOVMeAlsU/pjXuqVdzU0WfgtIBCupkEVwn+1Y0ERAbUfWw8R4GjgVbaKnUjRoD2FoQbHOCbOyT5Mbs9Lw4g==",
+ "version": "1.2.0",
+ "resolved": "https://registry.npmjs.org/npm-packlist/-/npm-packlist-1.2.0.tgz",
+ "integrity": "sha512-7Mni4Z8Xkx0/oegoqlcao/JpPCPEMtUvsmB0q7mgvlMinykJLSRTYuFqoQLYgGY8biuxIeiHO+QNJKbCfljewQ==",
"dev": true,
"requires": {
"ignore-walk": "^3.0.1",
@@ -7304,25 +7458,36 @@
},
"dependencies": {
"cacache": {
- "version": "11.3.1",
- "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.1.tgz",
- "integrity": "sha512-2PEw4cRRDu+iQvBTTuttQifacYjLPhET+SYO/gEFMy8uhi+jlJREDAjSF5FWSdV/Aw5h18caHA7vMTw2c+wDzA==",
+ "version": "11.3.2",
+ "resolved": "https://registry.npmjs.org/cacache/-/cacache-11.3.2.tgz",
+ "integrity": "sha512-E0zP4EPGDOaT2chM08Als91eYnf8Z+eH1awwwVsngUmgppfM5jjJ8l3z5vO5p5w/I3LsiXawb1sW0VY65pQABg==",
"dev": true,
"requires": {
- "bluebird": "^3.5.1",
- "chownr": "^1.0.1",
- "figgy-pudding": "^3.1.0",
- "glob": "^7.1.2",
- "graceful-fs": "^4.1.11",
- "lru-cache": "^4.1.3",
+ "bluebird": "^3.5.3",
+ "chownr": "^1.1.1",
+ "figgy-pudding": "^3.5.1",
+ "glob": "^7.1.3",
+ "graceful-fs": "^4.1.15",
+ "lru-cache": "^5.1.1",
"mississippi": "^3.0.0",
"mkdirp": "^0.5.1",
"move-concurrently": "^1.0.1",
"promise-inflight": "^1.0.1",
"rimraf": "^2.6.2",
- "ssri": "^6.0.0",
- "unique-filename": "^1.1.0",
+ "ssri": "^6.0.1",
+ "unique-filename": "^1.1.1",
"y18n": "^4.0.0"
+ },
+ "dependencies": {
+ "lru-cache": {
+ "version": "5.1.1",
+ "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz",
+ "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==",
+ "dev": true,
+ "requires": {
+ "yallist": "^3.0.2"
+ }
+ }
}
},
"get-stream": {
diff --git a/angular/test/test-app/package.json b/angular/test/test-app/package.json
index 5db94204c03..b26953b64d4 100644
--- a/angular/test/test-app/package.json
+++ b/angular/test/test-app/package.json
@@ -13,15 +13,15 @@
},
"private": true,
"dependencies": {
- "@angular/animations": "~7.1.0",
- "@angular/common": "~7.1.0",
- "@angular/compiler": "~7.1.0",
- "@angular/core": "~7.1.0",
- "@angular/forms": "~7.1.0",
- "@angular/platform-browser": "~7.1.0",
- "@angular/platform-browser-dynamic": "~7.1.0",
- "@angular/router": "~7.1.0",
- "@ionic/angular": "^4.0.0-beta.18",
+ "@angular/animations": "~7.2.0",
+ "@angular/common": "~7.2.0",
+ "@angular/compiler": "~7.2.0",
+ "@angular/core": "~7.2.0",
+ "@angular/forms": "~7.2.0",
+ "@angular/platform-browser": "~7.2.0",
+ "@angular/platform-browser-dynamic": "~7.2.0",
+ "@angular/router": "~7.2.0",
+ "@ionic/angular": "^4.0.0-rc.1",
"core-js": "^2.5.4",
"rxjs": "~6.3.3",
"tslib": "^1.9.0",
@@ -29,9 +29,9 @@
},
"devDependencies": {
"@angular-devkit/build-angular": "~0.11.0",
- "@angular/cli": "~7.1.0",
- "@angular/compiler-cli": "~7.1.0",
- "@angular/language-service": "~7.1.0",
+ "@angular/cli": "~7.2.0",
+ "@angular/compiler-cli": "~7.2.0",
+ "@angular/language-service": "~7.2.0",
"@types/node": "~8.9.4",
"@types/jasmine": "~2.8.8",
"@types/jasminewd2": "~2.0.3",
diff --git a/angular/test/test-app/src/app/app-routing.module.ts b/angular/test/test-app/src/app/app-routing.module.ts
index bcb3fa54a66..815829fb4e1 100644
--- a/angular/test/test-app/src/app/app-routing.module.ts
+++ b/angular/test/test-app/src/app/app-routing.module.ts
@@ -14,11 +14,13 @@ import { VirtualScrollDetailComponent } from './virtual-scroll-detail/virtual-sc
import { NestedOutletComponent } from './nested-outlet/nested-outlet.component';
import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component';
import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component';
+import { ViewChildComponent } from './view-child/view-child.component';
const routes: Routes = [
{ path: '', component: HomePageComponent },
{ path: 'inputs', component: InputsComponent },
{ path: 'modals', component: ModalComponent },
+ { path: 'view-child', component: ViewChildComponent },
{ path: 'router-link', component: RouterLinkComponent },
{ path: 'router-link-page', component: RouterLinkPageComponent },
{ path: 'virtual-scroll', component: VirtualScrollComponent },
diff --git a/angular/test/test-app/src/app/app.module.ts b/angular/test/test-app/src/app/app.module.ts
index 9541b1c2432..113ba8a9465 100644
--- a/angular/test/test-app/src/app/app.module.ts
+++ b/angular/test/test-app/src/app/app.module.ts
@@ -22,6 +22,7 @@ import { NestedOutletComponent } from './nested-outlet/nested-outlet.component';
import { NestedOutletPageComponent } from './nested-outlet-page/nested-outlet-page.component';
import { NestedOutletPage2Component } from './nested-outlet-page2/nested-outlet-page2.component';
import { NavComponent } from './nav/nav.component';
+import { ViewChildComponent } from './view-child/view-child.component';
@NgModule({
declarations: [
@@ -42,7 +43,8 @@ import { NavComponent } from './nav/nav.component';
NestedOutletComponent,
NestedOutletPageComponent,
NestedOutletPage2Component,
- NavComponent
+ NavComponent,
+ ViewChildComponent
],
imports: [
BrowserModule,
diff --git a/angular/test/test-app/src/app/home-page/home-page.component.html b/angular/test/test-app/src/app/home-page/home-page.component.html
index 6baec55e1fb..d544375263c 100644
--- a/angular/test/test-app/src/app/home-page/home-page.component.html
+++ b/angular/test/test-app/src/app/home-page/home-page.component.html
@@ -37,5 +37,10 @@
Nested ion-router-outlet
+
+
+ ViewChild()
+
+
diff --git a/angular/test/test-app/src/app/view-child/view-child.component.html b/angular/test/test-app/src/app/view-child/view-child.component.html
new file mode 100644
index 00000000000..ee17a22f88b
--- /dev/null
+++ b/angular/test/test-app/src/app/view-child/view-child.component.html
@@ -0,0 +1,13 @@
+
+
+
+ ViewChild() test
+
+
+
+
+ Hello! it's a button
+
+
+
+
diff --git a/angular/test/test-app/src/app/view-child/view-child.component.ts b/angular/test/test-app/src/app/view-child/view-child.component.ts
new file mode 100644
index 00000000000..a938a3bf081
--- /dev/null
+++ b/angular/test/test-app/src/app/view-child/view-child.component.ts
@@ -0,0 +1,20 @@
+import { Component, ViewChild, AfterViewInit, ElementRef } from '@angular/core';
+import { IonTabs, IonButton } from '@ionic/angular';
+
+@Component({
+ selector: 'app-view-child',
+ templateUrl: './view-child.component.html'
+})
+export class ViewChildComponent implements AfterViewInit {
+
+ @ViewChild(IonButton) button: IonButton;
+ @ViewChild(IonTabs) tabs: IonTabs;
+ @ViewChild('div') div: ElementRef;
+
+ ngAfterViewInit() {
+ this.button.color = 'danger';
+ if (this.tabs != null) {
+ this.div.nativeElement.textContent = 'tabs found';
+ }
+ }
+}