diff --git a/.github/ISSUE_TEMPLATE.md b/.github/ISSUE_TEMPLATE.md index 017c46458b..c9bc3a92a9 100644 --- a/.github/ISSUE_TEMPLATE.md +++ b/.github/ISSUE_TEMPLATE.md @@ -1,5 +1,5 @@ **Ionic version:** (check one with "x") -[ ] **1.x** +[ ] **1.x** (For Ionic 1.x issues, please use https://github.com/driftyco/ionic-v1) [ ] **2.x** [ ] **3.x** diff --git a/CHANGELOG.md b/CHANGELOG.md index 1dc30ddaf3..f2ac6fe6da 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,3 +1,55 @@ + +# [3.3.0](https://github.com/driftyco/ionic/compare/v3.2.1...v3.3.0) (2017-05-24) + + +### Steps to Upgrade + +`ionic-angular` now supports the latest `@angular` (4.1.2), and `typescript` (2.3.3) versions. Feel free to update apps by updating the `package.json` dependencies to match below: + +``` +"dependencies": { + "@angular/common": "4.1.2", + "@angular/compiler": "4.1.2", + "@angular/compiler-cli": "4.1.2", + "@angular/core": "4.1.2", + "@angular/forms": "4.1.2", + "@angular/http": "4.1.2", + "@angular/platform-browser": "4.1.2", + "@angular/platform-browser-dynamic": "4.1.2", + "@ionic-native/core": "3.6.1", + "@ionic-native/splash-screen": "3.6.1", + "@ionic-native/status-bar": "3.6.1", + "@ionic/storage": "2.0.1", + "ionic-angular": "3.3.0", + "ionicons": "3.0.0", + "rxjs": "5.1.1", + "sw-toolbox": "3.6.0", + "zone.js": "0.8.10" +}, +"devDependencies": { + "@ionic/app-scripts": "1.3.7", + "typescript": "2.3.3" +} +``` + +Another optional step is to remove the `src/declarations.d.ts` file. This is a legacy file introduced early with `ionic-angular` projects to improve compatibility between TypeScript and third-party libraries. Due to improvements in TypeScript, this file is no longer necessary. By removing this file, the TypeScript compiler will be able to provide more accurate error messages for `import` statements. + +### Bug Fixes + +* **range:** update the UI when min/max change ([#11720](https://github.com/driftyco/ionic/issues/11720)) ([d86785c](https://github.com/driftyco/ionic/commit/d86785c)), closes [#11719](https://github.com/driftyco/ionic/issues/11719) +* **searchbar:** searchbar padding should be on the left ([#11651](https://github.com/driftyco/ionic/issues/11651)) ([3443ffd](https://github.com/driftyco/ionic/commit/3443ffd)) +* **segment:** add z-index to ios back button ([#10363](https://github.com/driftyco/ionic/issues/10363)) ([bb22e4a](https://github.com/driftyco/ionic/commit/bb22e4a)) +* **select:** RTL fix for searchbar ([#11355](https://github.com/driftyco/ionic/issues/11355)) ([ca71072](https://github.com/driftyco/ionic/commit/ca71072)) +* **VirtualScroll:** initialize trackByFn reference ([#11624](https://github.com/driftyco/ionic/issues/11624)) ([892e14f](https://github.com/driftyco/ionic/commit/892e14f)) + + +### Features + +* **icon:** add flip/unflip for icon on rtl ([#11634](https://github.com/driftyco/ionic/issues/11634)) ([7bdfaac](https://github.com/driftyco/ionic/commit/7bdfaac)) +* **rtl:** add rtl margin, padding, position and border-radius ([#11342](https://github.com/driftyco/ionic/issues/11342)) ([a30379b](https://github.com/driftyco/ionic/commit/a30379b)) + + + ## [3.2.1](https://github.com/driftyco/ionic/compare/v3.2.0...v3.2.1) (2017-05-12) diff --git a/package.json b/package.json index 65729fad97..8c6cdff2ae 100644 --- a/package.json +++ b/package.json @@ -1,7 +1,7 @@ { "private": true, "name": "ionic2", - "version": "3.2.1", + "version": "3.3.0", "description": "A powerful framework for building mobile and progressive web apps with JavaScript and Angular 2", "keywords": [ "ionic", @@ -25,14 +25,14 @@ "link": "gulp release.prepareReleasePackage && cd dist/ionic-angular && npm link" }, "dependencies": { - "@angular/common": "4.1.0", - "@angular/compiler": "4.1.0", - "@angular/compiler-cli": "4.1.0", - "@angular/core": "4.1.0", - "@angular/forms": "4.1.0", - "@angular/http": "4.1.0", - "@angular/platform-browser": "4.1.0", - "@angular/platform-browser-dynamic": "4.1.0", + "@angular/common": "4.1.2", + "@angular/compiler": "4.1.2", + "@angular/compiler-cli": "4.1.2", + "@angular/core": "4.1.2", + "@angular/forms": "4.1.2", + "@angular/http": "4.1.2", + "@angular/platform-browser": "4.1.2", + "@angular/platform-browser-dynamic": "4.1.2", "ionicons": "~3.0.0", "rxjs": "5.1.1", "zone.js": "^0.8.10" @@ -148,4 +148,4 @@ "pre-push#master": [ "test" ] -} \ No newline at end of file +} diff --git a/scripts/gulp/util.ts b/scripts/gulp/util.ts index 1d7fc83b12..0654465fc2 100644 --- a/scripts/gulp/util.ts +++ b/scripts/gulp/util.ts @@ -209,8 +209,7 @@ export function runAppScriptsServe(testOrDemoName: string, appEntryPoint: string '--coreDir', coreDir, '--sass', sassConfigPath, '--copy', copyConfigPath, - '--enableLint', 'false', - '--bonjour' + '--enableLint', 'false' ]; if (watchConfigPath) { diff --git a/src/components/checkbox/checkbox.ts b/src/components/checkbox/checkbox.ts index 86377f4c0c..ef3bb9086e 100644 --- a/src/components/checkbox/checkbox.ts +++ b/src/components/checkbox/checkbox.ts @@ -42,6 +42,34 @@ import { Item } from '../item/item'; * * ``` * + * @advanced + * + * ```html + * + * + * + * + * + * Cucumber + * + * + * + * + * ``` + * + * ```ts + * @Component({ + * templateUrl: 'main.html' + * }) + * class SaladPage { + * cucumber: boolean; + * + * updateCucumber() { + * console.log("Cucumbers new state:" + this.cucumber); + * } + * } + * ``` + * * @demo /docs/demos/src/checkbox/ * @see {@link /docs/components#checkbox Checkbox Component Docs} */ diff --git a/src/components/loading/loading-options.ts b/src/components/loading/loading-options.ts index 3e2713e743..f3f5711568 100644 --- a/src/components/loading/loading-options.ts +++ b/src/components/loading/loading-options.ts @@ -5,6 +5,5 @@ export interface LoadingOptions { cssClass?: string; showBackdrop?: boolean; dismissOnPageChange?: boolean; - delay?: number; duration?: number; } diff --git a/src/components/menu/menu.ts b/src/components/menu/menu.ts index af0f706d6c..b896e88077 100644 --- a/src/components/menu/menu.ts +++ b/src/components/menu/menu.ts @@ -25,7 +25,7 @@ import { RootNode } from '../split-pane/split-pane'; * will be displayed differently based on the mode, however the display type can be changed * to any of the available [menu types](#menu-types). The menu element should be a sibling * to the app's content element. There can be any number of menus attached to the content. - * These can be controlled from the templates, or programmatically using the [MenuController](../MenuController). + * These can be controlled from the templates, or programmatically using the [MenuController](../app/MenuController). * * @usage * @@ -170,14 +170,14 @@ import { RootNode } from '../split-pane/split-pane'; * } * ``` * - * See the [MenuController](../MenuController) API docs for all of the methods + * See the [MenuController](../../app/MenuController) API docs for all of the methods * and usage information. * * * @demo /docs/demos/src/menu/ * * @see {@link /docs/components#menus Menu Component Docs} - * @see {@link ../MenuController MenuController API Docs} + * @see {@link ../../app/MenuController MenuController API Docs} * @see {@link ../../nav/Nav Nav API Docs} * @see {@link ../../nav/NavController NavController API Docs} */ diff --git a/src/components/range/range.ts b/src/components/range/range.ts index ea4dd6b8db..9389619168 100644 --- a/src/components/range/range.ts +++ b/src/components/range/range.ts @@ -146,6 +146,7 @@ export class Range extends BaseInput implements AfterContentInit, ControlVa val = Math.round(val); if (!isNaN(val)) { this._min = val; + this._inputUpdated(); } } @@ -160,6 +161,7 @@ export class Range extends BaseInput implements AfterContentInit, ControlVa val = Math.round(val); if (!isNaN(val)) { this._max = val; + this._inputUpdated(); } } diff --git a/src/components/range/test/basic/pages/root-page/root-page.html b/src/components/range/test/basic/pages/root-page/root-page.html index 042873e29e..1c982b62b8 100644 --- a/src/components/range/test/basic/pages/root-page/root-page.html +++ b/src/components/range/test/basic/pages/root-page/root-page.html @@ -92,6 +92,14 @@ + + dynamic min and max + + + + + + dual, pin, {{dualValue | json}} @@ -117,4 +125,4 @@ - \ No newline at end of file + diff --git a/src/components/range/test/basic/pages/root-page/root-page.ts b/src/components/range/test/basic/pages/root-page/root-page.ts index 426f243947..dddfe16990 100644 --- a/src/components/range/test/basic/pages/root-page/root-page.ts +++ b/src/components/range/test/basic/pages/root-page/root-page.ts @@ -10,9 +10,13 @@ export class RootPage { singleValue2: number = 150; singleValue3: number = 64; singleValue4: number = 1300; + singleValue5: number = 0; dualValue: any; dualValue2 = {lower: 33, upper: 60}; + min: number = -50; + max: number = 50; + rangeCtrl = new FormControl({value: '66', disabled: true}); dualRangeCtrl = new FormControl({value: {lower: 33, upper: 60}, disabled: true}); diff --git a/src/components/segment/segment.ts b/src/components/segment/segment.ts index 0af6e4805d..3fc253b2ea 100644 --- a/src/components/segment/segment.ts +++ b/src/components/segment/segment.ts @@ -31,11 +31,11 @@ import { SegmentButton } from './segment-button'; * * * - * - * + * + * * Friends * - * + * * Enemies * * diff --git a/src/components/toolbar/toolbar.ios.scss b/src/components/toolbar/toolbar.ios.scss index 60aab685e6..e46f59feaf 100644 --- a/src/components/toolbar/toolbar.ios.scss +++ b/src/components/toolbar/toolbar.ios.scss @@ -315,6 +315,7 @@ $toolbar-button-ios-strong-font-weight: 600 !default; .back-button-ios { @include margin(0); + z-index: 99; overflow: visible; order: map-get($toolbar-order-ios, back-button); diff --git a/src/components/toolbar/toolbar.ts b/src/components/toolbar/toolbar.ts index 80b7f03040..6141b28fd9 100644 --- a/src/components/toolbar/toolbar.ts +++ b/src/components/toolbar/toolbar.ts @@ -8,7 +8,7 @@ import { ToolbarBase } from './toolbar-base'; * @name Toolbar * @description * A Toolbar is a generic bar that is positioned above or below content. - * Unlike a [Navbar](../../navbar/Navbar), a toolbar can be used as a subheader. + * Unlike a [Navbar](../Navbar/), a toolbar can be used as a subheader. * When toolbars are placed within an `` or ``, * the toolbars stay fixed in their respective location. When placed within * ``, toolbars will scroll with the content. @@ -90,7 +90,7 @@ import { ToolbarBase } from './toolbar-base'; * ``` * * @demo /docs/demos/src/toolbar/ - * @see {@link ../../navbar/Navbar/ Navbar API Docs} + * @see {@link ../Navbar/ Navbar API Docs} */ @Component({ selector: 'ion-toolbar', diff --git a/src/components/virtual-scroll/virtual-scroll.ts b/src/components/virtual-scroll/virtual-scroll.ts index 805ff0c6c4..88bf65ba80 100644 --- a/src/components/virtual-scroll/virtual-scroll.ts +++ b/src/components/virtual-scroll/virtual-scroll.ts @@ -4,7 +4,7 @@ import { adjustRendered, calcDimensions, estimateHeight, initReadNodes, processR import { Config } from '../../config/config'; import { Content, ScrollEvent } from '../content/content'; import { DomController } from '../../platform/dom-controller'; -import { isBlank, isFunction, isPresent, assert } from '../../util/util'; +import { isFunction, isPresent, assert } from '../../util/util'; import { Platform } from '../../platform/platform'; import { ViewController } from '../../navigation/view-controller'; import { VirtualCell, VirtualData, VirtualNode } from './virtual-util'; @@ -528,7 +528,7 @@ export class VirtualScroll implements DoCheck, AfterContentInit, OnDestroy { } private _updateDiffer() { - if (isBlank(this._differ) && isPresent(this._records)) { + if (isPresent(this._records)) { this._differ = this._iterableDiffers.find(this._records).create(this._virtualTrackBy); } } diff --git a/src/fonts/ionicons.scss b/src/fonts/ionicons.scss index dc8e92c386..436a309139 100644 --- a/src/fonts/ionicons.scss +++ b/src/fonts/ionicons.scss @@ -32,4 +32,19 @@ ion-icon { text-rendering: auto; text-transform: none; speak: none; + + @include rtl() { + &[aria-label^="arrow"]::before, + &[flip-rtl]::before { + transform: scaleX(-1); + } + + &[unflip-rtl]::before { + transform: scaleX(1); + } + } + + &::before { + display: inline-block; + } } diff --git a/src/navigation/nav-params.ts b/src/navigation/nav-params.ts index ba6474854f..01116bb6bf 100644 --- a/src/navigation/nav-params.ts +++ b/src/navigation/nav-params.ts @@ -8,9 +8,9 @@ * @usage * ```ts * export class MyClass{ - * constructor(public params: NavParams){ + * constructor(public navParams: NavParams){ * // userParams is an object we have in our nav-parameters - * this.params.get('userParams'); + * this.navParams.get('userParams'); * } * } * ``` @@ -33,9 +33,9 @@ export class NavParams { * * ```ts * export class MyClass{ - * constructor(public params: NavParams){ + * constructor(public navParams: NavParams){ * // userParams is an object we have in our nav-parameters - * this.params.get('userParams'); + * this.navParams.get('userParams'); * } * } * ```