diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md
index 68df9a4f0d1..61cb4a9e093 100644
--- a/.github/ISSUE_TEMPLATE.md
+++ b/.github/ISSUE_TEMPLATE.md
@@ -1,12 +1,18 @@
+
+
+
+
**Ionic version:** (check one with "x")
-[ ] **1.x** (For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
+(For Ionic 1.x issues, please use https://github.com/ionic-team/ionic-v1)
[ ] **2.x**
[ ] **3.x**
+[ ] **4.x**
**I'm submitting a ...** (check one with "x")
[ ] bug report
[ ] feature request
-[ ] support request => Please do not submit support requests here, use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
+
+Please do not submit support requests or "How to" questions here. Instead, please use one of these channels: https://forum.ionicframework.com/ or http://ionicworldwide.herokuapp.com/
**Current behavior:**
@@ -15,17 +21,22 @@
**Steps to reproduce:**
-
-For Ionic V1 issues - http://plnkr.co/edit/Xo1QyAUx35ny1Xf9ODHx?p=preview
+**Related code:**
-For Ionic issues - http://plnkr.co/edit/z0DzVL?p=preview
--->
+
```
-insert any relevant code here
+insert short code snippets here
```
**Other information:**
diff --git a/.gitignore b/.gitignore
index 7ce7a3c8146..e0e58a08e31 100644
--- a/.gitignore
+++ b/.gitignore
@@ -9,6 +9,7 @@ log.txt
*.sublime-workspace
.idea/
+.sourcemaps/
.vscode/
.sass-cache/
.versions/
diff --git a/CHANGELOG.md b/CHANGELOG.md
index db182dd9770..7e3354b2ad3 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1,3 +1,569 @@
+
+## [3.9.2](https://github.com/ionic-team/ionic/compare/v3.9.1...v3.9.2) (2017-11-08)
+
+## Upgrade Instructions
+`ionic-angular` 3.9.2 is patch release of `ionic-angular` 3.9.1. To upgrade, follow the instructions [here](https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md#390-2017-11-08) for updating to `ionic-angular` 3.9.0. After completing those steps, update the `ionic-angular` version to 3.9.2.
+
+```
+npm install ionic-angular@3.9.2 --save
+```
+
+### Bug Fixes
+
+* **action-sheet:** remove ios inertia scroll to fix flicker ([c463b06](https://github.com/ionic-team/ionic/commit/c463b06)), closes [#13262](https://github.com/ionic-team/ionic/issues/13262)
+
+
+
+
+## [3.9.1](https://github.com/ionic-team/ionic/compare/v3.9.0...v3.9.1) (2017-11-08)
+
+## Upgrade Instructions
+`ionic-angular` 3.9.1 is patch release of `ionic-angular` 3.9.0. To upgrade, follow the instructions [here](https://github.com/ionic-team/ionic/blob/master/CHANGELOG.md#390-2017-11-08) for updating to `ionic-angular` 3.9.0. After completing those steps, update the `ionic-angular` version to 3.9.1.
+
+```
+npm install ionic-angular@3.9.1 --save
+```
+
+### Bug Fixes
+
+* **datetime:** avoid adding cancel and done button repeatedly ([248a1ce](https://github.com/ionic-team/ionic/commit/248a1ce))
+
+
+
+
+# [3.9.0](https://github.com/ionic-team/ionic/compare/v3.8.0...v3.9.0) (2017-11-08)
+
+### Upgrade Instructions
+`ionic-angular` 3.9.0 adds support for `@angular` 5.0.0 :tada:! It is a drop-in replacement for `ionic-angular` 3.8.x.
+
+To update, remove existing `node_modules` and any lock files, and then update `package.json` to the following deps.
+
+```
+"dependencies" : {
+ ...
+ "@angular/common": "5.0.0",
+ "@angular/compiler": "5.0.0",
+ "@angular/compiler-cli": "5.0.0",
+ "@angular/core": "5.0.0",
+ "@angular/forms": "5.0.0",
+ "@angular/http": "5.0.0",
+ "@angular/platform-browser": "5.0.0",
+ "@angular/platform-browser-dynamic": "5.0.0",
+ "@ionic/storage": "2.1.3",
+ "ionic-angular": "3.9.0",
+ "rxjs": "5.5.2",
+ "zone.js": "0.8.18"
+ ...
+},
+"devDependencies: {
+ "@ionic/app-scripts": "3.1.0",
+ "typescript" : "2.4.2"
+}
+```
+
+If your app uses RXJS, see the instructions below to update.
+
+### RXJS 5.5.2 Updates
+
+The recent update of RXJS includes a change in how operators are applied.
+
+Traditionally, operators were applied like this:
+
+```typescript
+import 'rxjs/add/operator/debounceTime';
+import 'rxjs/add/operator/switchMap';
+
+export MyClass {
+
+
+ someMethod(){
+ // Using Reactive Forms
+ this.input.valueChanges
+ .debounceTime(500)
+ .switchMap(inputVal => this.service.get(inputVal))
+ .subscribe(res => console.log(res))
+ }
+}
+```
+
+This approach involved modifying the Observable prototype and patching on the
+methods.
+
+RXJS 5.5 introduces a different way to do this that can lead to significantly
+smaller code bundles, lettable operators.
+
+To use lettable operators, modify the code from above to look like this:
+
+```typescript
+//Use Deep imports here for smallest bunlde size
+import { debounceTime } from 'rxjs/operators/debounceTime';
+import { switch } from 'rxjs/operators/switchMap';
+
+export MyClass {
+
+
+ someMethod(){
+ // Using Reactive Forms
+ // We use the new `.pipe` method on the observable
+ // too apply operators now
+
+ this.input.valueChanges
+ .pipe(
+ debounceTime(500),
+ switchMap(inputVal => this.service.get(inputVal))
+ )
+ .subscribe(res => console.log(res))
+ }
+}
+```
+
+This slight change allows only import the operators we need in our code. This will result in a smaller, faster application. This example uses Deep Imports, which allow the module we want to import to be isolated.
+
+Take a look at [this
+doc](https://github.com/ReactiveX/rxjs/blob/master/doc/lettable-operators.md) for more information.
+
+### Bug Fixes
+
+* **action-sheet:** move box-shadow to first group ([4f3e91b](https://github.com/ionic-team/ionic/commit/4f3e91b))
+* **alert:** focus input after it is ready ([#13259](https://github.com/ionic-team/ionic/issues/13259)) ([e555eae](https://github.com/ionic-team/ionic/commit/e555eae))
+* **datetime:** use spread operator to copy pickerOptions ([#13202](https://github.com/ionic-team/ionic/issues/13202)) ([2ab8385](https://github.com/ionic-team/ionic/commit/2ab8385)), closes [#11641](https://github.com/ionic-team/ionic/issues/11641)
+* **input:** better support for WKKeyboard ([#13106](https://github.com/ionic-team/ionic/issues/13106)) ([e7ac15f](https://github.com/ionic-team/ionic/commit/e7ac15f))
+* **tabs:** no safe area padding for top tabs ([236e7f8](https://github.com/ionic-team/ionic/commit/236e7f8))
+* **tap-click:** clear activated state on activable element when appropriate ([#13258](https://github.com/ionic-team/ionic/issues/13258)) ([5742540](https://github.com/ionic-team/ionic/commit/5742540)), closes [#13044](https://github.com/ionic-team/ionic/issues/13044)
+* **VirtualScroll:** stop from resizing while out of view ([#13143](https://github.com/ionic-team/ionic/issues/13143)) ([6978bb5](https://github.com/ionic-team/ionic/commit/6978bb5))
+
+
+
+
+# [3.8.0](https://github.com/ionic-team/ionic/compare/v3.7.1...v3.8.0) (2017-10-26)
+
+
+### Upgrade Instructions
+
+This release includes improvements for iOS11 and specifically, the iPhone X. Please also read over the [iOS 11 checklist](http://blog.ionic.io/ios-11-checklist/) blog post for additional information.
+
+To update, install the latest version of `ionic-angular` and `@ionic/app-scripts`:
+
+```bash
+npm install ionic-angular@latest --save
+npm install @ionic/app-scripts@latest --save-dev
+```
+
+This release uses version `4.4.4` of Angular. Please update the version number of any `@angular` packages in your `package.json` file:
+
+```
+ "dependencies": {
+ "@angular/common": "4.4.4",
+ "@angular/compiler": "4.4.4",
+ "@angular/compiler-cli": "4.4.4",
+ "@angular/core": "4.4.4",
+ "@angular/forms": "4.4.4",
+ "@angular/http": "4.4.4",
+ "@angular/platform-browser": "4.4.4",
+ "@angular/platform-browser-dynamic": "4.4.4",
+ ...
+ }
+```
+
+### Bug Fixes
+
+* **action-sheet:** fix action sheet so it will scroll when the options exceed the screen ([#13049](https://github.com/ionic-team/ionic/issues/13049)) ([199cb00](https://github.com/ionic-team/ionic/commit/199cb00))
+* **content:** reize on orientationchange only ([6b848a0](https://github.com/ionic-team/ionic/commit/6b848a0))
+* **cordova:** size footer correctly ([33960f1](https://github.com/ionic-team/ionic/commit/33960f1))
+* **item:** safe-padding on last item only ([af36358](https://github.com/ionic-team/ionic/commit/af36358))
+* **nav:** remove bad assert ([ae4be66](https://github.com/ionic-team/ionic/commit/ae4be66))
+* **navigation:** account for condition of toggling one view with tabs to another view with tabs ([c963745](https://github.com/ionic-team/ionic/commit/c963745))
+* **navigation:** add defaultHistory support to ion-tabs ([2646ebe](https://github.com/ionic-team/ionic/commit/2646ebe))
+* **navigation:** unregister root navs when appropriate ([2bd89fe](https://github.com/ionic-team/ionic/commit/2bd89fe))
+* **overlay:** onWillDismiss is called as expected ([#12056](https://github.com/ionic-team/ionic/issues/12056)) ([c91223b](https://github.com/ionic-team/ionic/commit/c91223b)), closes [#11702](https://github.com/ionic-team/ionic/issues/11702)
+* **popover:** improve positioning in ios11 ([73f6a82](https://github.com/ionic-team/ionic/commit/73f6a82))
+* **select:** overlay types should use shared interface ([c4e9b5d](https://github.com/ionic-team/ionic/commit/c4e9b5d)), closes [#13103](https://github.com/ionic-team/ionic/issues/13103)
+* **swiper:** add safe-guards when user tries to zoom a slide without an image ([#12931](https://github.com/ionic-team/ionic/issues/12931)) ([e0c8309](https://github.com/ionic-team/ionic/commit/e0c8309)), closes [#12861](https://github.com/ionic-team/ionic/issues/12861)
+* **swiper:** allow for multiple swipers on a page ([#12213](https://github.com/ionic-team/ionic/issues/12213)) ([dd66f9a](https://github.com/ionic-team/ionic/commit/dd66f9a)), closes [#12008](https://github.com/ionic-team/ionic/issues/12008)
+* **tabs:** emit viewDidEnter and viewDidLeave on app during tab change ([c8be8e2](https://github.com/ionic-team/ionic/commit/c8be8e2))
+* **tabs:** return promises where appropriate ([a77bb2c](https://github.com/ionic-team/ionic/commit/a77bb2c))
+* **virtual-scroll:** flickering issue fixes ([88b2e83](https://github.com/ionic-team/ionic/commit/88b2e83))
+* **viewController** move resize logic to viewCtrl ([ebdf22d](https://github.com/ionic-team/ionic/commit/ebdf22d))
+
+
+### Features
+
+* **alert:** export AlertButton interface ([0ba33d9](https://github.com/ionic-team/ionic/commit/0ba33d9)), closes [#12545](https://github.com/ionic-team/ionic/issues/12545)
+* **input:** add dir attribute for different language directions ([#13043](https://github.com/ionic-team/ionic/issues/13043)) ([b180351](https://github.com/ionic-team/ionic/commit/b180351))
+* improved ios11 support ([49e0c37](https://github.com/ionic-team/ionic/commit/49e0c37))
+
+
+
+
+## [3.7.1](https://github.com/ionic-team/ionic/compare/v3.7.0...v3.7.1) (2017-09-29)
+
+
+### Upgrade Instructions
+
+This release includes the latest version of `zone.js`. Update your `package.json` to match the following dependencies, remove the existing `node_modules` directory, and then run `npm install`:
+
+```
+"dependencies": {
+ ...
+ "ionic-angular": "3.7.1",
+ ...
+ "zone.js": "0.8.18"
+}
+```
+
+
+### Bug Fixes
+
+* **datetime:** set default to max if max before current only [#9846](https://github.com/ionic-team/ionic/issues/9846) ([39e7da3](https://github.com/ionic-team/ionic/commit/39e7da3))
+
+
+### Features
+
+* **datetime:** add default picker value input ([b87d212](https://github.com/ionic-team/ionic/commit/b87d212))
+* **datetime:** default to now or max. Fixes [#9846](https://github.com/ionic-team/ionic/issues/9846) ([559f4d3](https://github.com/ionic-team/ionic/commit/559f4d3))
+
+
+
+
+# [3.7.0](https://github.com/ionic-team/ionic/compare/v3.6.1...v3.7.0) (2017-09-28)
+
+### Notes
+This release adds support for the latest version of Angular (4.4.3) as well as the initial iteration of support for the iPhone X.
+
+### Upgrade Instructions
+
+These are the latest versions of `@angular`, `rxjs`, `zone.js` and `ionic-angular`. Update your `package.json` to match the following dependencies, remove the existing `node_modules` directory, and then run `npm install`:
+
+```
+...
+"dependencies": {
+ "@angular/common": "4.4.3",
+ "@angular/compiler": "4.4.3",
+ "@angular/compiler-cli": "4.4.3",
+ "@angular/core": "4.4.3",
+ "@angular/forms": "4.4.3",
+ "@angular/http": "4.4.3",
+ "@angular/platform-browser": "4.4.3",
+ "@angular/platform-browser-dynamic": "4.4.3",
+ "ionic-angular": "3.7.0",
+ "rxjs": "5.4.3",
+ "zone.js": "0.8.17"
+}
+"devDependencies": {
+ "@ionic/app-scripts": "3.0.0"
+}
+...
+```
+
+If you're using a `package-lock.json` file, make sure that is updated as well.
+
+### Bug Fixes
+
+* **input:** mark ion-input touched on blur instead of changed ([#12812](https://github.com/ionic-team/ionic/issues/12812)) ([d0cad6b](https://github.com/ionic-team/ionic/commit/d0cad6b)), closes [#12102](https://github.com/ionic-team/ionic/issues/12102)
+* **swiper:** change var to let to avoid variable shadowing ([f5ef1ca](https://github.com/ionic-team/ionic/commit/f5ef1ca))
+
+
+### Features
+
+* initial iphoneX support ([112d4f5](https://github.com/ionic-team/ionic/commit/112d4f5))
+
+
+
+## [3.6.1](https://github.com/ionic-team/ionic/compare/v3.6.0...v3.6.1) (2017-09-07)
+
+### Upgrade Instructions
+
+`ionic-angular@3.6.1` is a drop-in replacement for 3.6.0. To install it, please run:
+
+```
+npm install -g ionic@latest
+npm install @ionic/app-scripts@2.1.4 --save-dev
+npm install ionic-angular@3.6.1 --save
+```
+
+
+### Bug Fixes
+
+* **generators:** Update documentation URLs for templates ([475b722](https://github.com/ionic-team/ionic/commit/475b722))
+* **navigation:** check existence of done transition callback ([#12640](https://github.com/ionic-team/ionic/issues/12640)) ([0a6bb3b](https://github.com/ionic-team/ionic/commit/0a6bb3b))
+* **navigation:** ensure secondaryId always has a string value ([#12641](https://github.com/ionic-team/ionic/issues/12641)) ([1069505](https://github.com/ionic-team/ionic/commit/1069505))
+* **navigation:** fix popTo signature and make usage uniform ([3187375](https://github.com/ionic-team/ionic/commit/3187375))
+* **slider:** guard the processing of _slides ([b809665](https://github.com/ionic-team/ionic/commit/b809665)), closes [#12791](https://github.com/ionic-team/ionic/issues/12791)
+
+
+
+
+# [3.6.0](https://github.com/ionic-team/ionic/compare/v3.5.3...v3.6.0) (2017-07-27)
+
+
+### Upgrade Instructions
+
+`ionic-angular` 3.6.0 requires developer's to update to the latest version of the `Ionic CLI` and `@ionic/app-scripts`.
+
+To upgrade, please run
+
+```
+npm install -g ionic@latest
+npm install @ionic/app-scripts@latest --save-dev
+npm install ionic-angular@latest --save
+```
+
+### Notes
+
+The URL when using deep linking is shortened and improved in this release. Due to a limitation in our nav system, if you're using `ion-tabs` and have a tab name that matches a segment, meaning you have a tab name of `schedule` and a segment of `schedule`, there could potentially be issues. To mitigate these issues, make sure you set the `tabUrlPath` property on the `ion-tab` and give it a unique name. This limitation will require an API change to fix so it will be resolved in `ionic-angular` 4.x.
+
+
+The upgrades include necessary changes to generators that add back lazy loading functionality, as well as an improved way of generating component/directives/and pipes.
+
+### New Generators
+
+The release adds back the functionality to generate lazy loaded pages.
+To generate a lazy loaded page, run:
+
+```bash
+ionic g page
+```
+
+This will include a `.module.ts` file in the page directory created. If you do not want to generate a lazy loaded page, you can run:
+
+```bash
+ionic g page --no-module
+```
+
+This will also generate lazy loaded tabs as well, accepting the `--no-module` flag as well to disable it.
+
+
+For pipes/components/components, we now generate a shared common module for each of these.
+
+So running:
+
+```bash
+ionic g component music-card
+```
+
+Will create a `components/components.module.ts` file that declares and exports the `music-card` component.
+We think that this will allow developers to get up and running with custom components much faster and will less overhead.
+
+### Bug Fixes
+
+* **list:** remove margin of MD buttons in ion-item-options ([#12263](https://github.com/ionic-team/ionic/issues/12263)) ([97f9522](https://github.com/ionic-team/ionic/commit/97f9522))
+* **nav:** make call to setPages return the promise so if it rejects it doesn't get lost ([de0f9d5](https://github.com/ionic-team/ionic/commit/de0f9d5))
+* **navigation:** account for race conditions in developer's code ([4596dbe](https://github.com/ionic-team/ionic/commit/4596dbe))
+* **navigation:** fix bug where that occurred when tab identifier and segment had the exact same string ([add0c4e](https://github.com/ionic-team/ionic/commit/add0c4e))
+* **navigation:** fix null pointer exceptions that would occur when destroying a nav controller while its transitioning ([584afd0](https://github.com/ionic-team/ionic/commit/584afd0))
+* **navigation:** reduce urls to minimum set of fields ([a8ceee4](https://github.com/ionic-team/ionic/commit/a8ceee4))
+
+
+### Features
+
+* **generators:** refactor generators ([400aa54](https://github.com/ionic-team/ionic/commit/400aa54))
+
+
+
+
+## [3.5.3](https://github.com/ionic-team/ionic/compare/v3.5.2...v3.5.3) (2017-07-14)
+
+## Upgrade Instructions
+`ionic-angular@3.5.3` is a drop-in replacement for `3.5.2`. To install it, simply run `npm install ionic-angular@3.5.3 --save --save-exact`.
+
+### Bug Fixes
+
+* **app:** restore getActiveNav api ([2d49e10](https://github.com/ionic-team/ionic/commit/2d49e10))
+
+
+
+
+## [3.5.2](https://github.com/ionic-team/ionic/compare/v3.5.1...v3.5.2) (2017-07-13)
+
+## Upgrade Instructions
+`ionic-angular@3.5.2` is a drop-in replacement for `3.5.1`. To install it, simply run `npm install ionic-angular@3.5.2 --save --save-exact`.
+
+We have released a new version of our build process for `ionic-angular` apps, `@ionic/app-scripts` in conjunction with this release of `ionic-angular`. While it's not a required update, we recommend it because we have greatly improved the developer experience. Incremental, or update builds while developing are much faster now. We've also added `scope hoisting` for better start-up performance on production builds.
+
+To upgrade to `@ionic/app-scripts`, run the following command:
+
+```
+rm -rf node_modules
+npm install @ionic/app-scripts@2.0.2 --save-dev --save-exact
+```
+
+After installing the update, you'll need to make a minor change to the `src/index.html` file to include a new `
+
+
+
+
+
+
+
+
+
+
+