Skip to content

Releases: ionic-team/ionic-framework

3.0.0

05 Apr 14:35

Choose a tag to compare

3.0.0 (2017-04-05)

Steps to Upgrade

With this release comes a major update to Angular (Angular 4.0!), the latest version of TypeScript, and some optional structural changes to your application.

  1. Update your package.json to match the following dependencies, remove the existing node_modules directory, and then run npm install:
"dependencies": {
    "@angular/common": "4.0.0",
    "@angular/compiler": "4.0.0",
    "@angular/compiler-cli": "4.0.0",
    "@angular/core": "4.0.0",
    "@angular/forms": "4.0.0",
    "@angular/http": "4.0.0",
    "@angular/platform-browser": "4.0.0",
    "@angular/platform-browser-dynamic": "4.0.0",
    "@ionic-native/core": "3.4.2",
    "@ionic-native/splash-screen": "3.4.2",
    "@ionic-native/status-bar": "3.4.2",
    "@ionic/storage": "2.0.1",
    "ionic-angular": "3.0.0",
    "ionicons": "3.0.0",
    "rxjs": "5.1.1",
    "sw-toolbox": "3.4.0",
    "zone.js": "^0.8.4"
},
"devDependencies": {
  "@ionic/app-scripts": "1.3.0",
  "typescript": "~2.2.1"
}
  1. Import the BrowserModule in your app/app.module.ts file:
import { BrowserModule } from '@angular/platform-browser';

and then add it to the imports in the same file:

imports: [
  BrowserModule,
  IonicModule.forRoot(MyApp)
],
  1. If you are using Http, Import the HttpModule in your app/app.module.ts file:
imports: [
  BrowserModule,
  HttpModule,
  IonicModule.forRoot(MyApp)
],
  1. Upgrading to Ionic Native 3.x will result in a smaller bundle size. With Ionic Native 3, native functionality was moved from static methods to using Angular injectables.

And that’s it! Your app should still function the same without any issues.

Bug Fixes

  • alert: add missing cssClass property for buttons (4fbcda7)
  • content: remove scroll bouncing from desktop (7cee7b0)
  • content: enable scroll listener automatically (d9a7652), closes #10938
  • datetime: emit ionCancel event on backdrop click (#10532) (4ac8ffb)
  • datetime: remove unnecessary calls and performance improvements (99142f8)
  • infinite-scroll: don't call complete if the state isn't loading (58b57c0)
  • item-sliding: add forwardRef for item options (0ccd96e)
  • navigation: update the URL if there are no children navs (8586cc1)
  • slides: negative number indicates position starting at end (#10997) (33be36d)
  • split-pane: add RTL support (57f3f97), closes #10903
  • virtual-list: fix the rendering of the first item (ccb49f3)
  • virtual-list: update compatibility with angular (682ce49)

Code Refactoring

  • grid: remove the old grid system (19c36de)
  • typography: remove the native element selectors (2827275)

Features

  • module-loader: add caching for ngModuleLoader on load (17359b7)
  • module-loader: add preloadModules config option, set to false (bdbd521)
  • module-loader: preload modules based on priority (5a4f8b9)
  • module-loader: run outside of angular and in requestIdleCallback (c7ad3ce)
  • navigation: @DeepLink decorator (3e70856)
  • navigation: add optional priority to deep link config (b47848c)
  • split-pane: adds enabled input (fa7ea0c), closes #10949
  • split-pane: sizing via scss variables (979ca63), closes #10893
  • util: system.js ng-module loader (beabe32)

BREAKING CHANGES

Grid

Removed the deprecated (old) grid. See the blog post for more information including steps to migrate:
http://blog.ionic.io/build-awesome-desktop-apps-with-ionics-new-responsive-grid/

Typography

The following selectors to style the text color of the native text elements have been removed:

h1[color], h2[color], h3[color], h4[color], h5[color], h6[color], a[color]:not([ion-button]):not([ion-item]):not([ion-fab]), p[color], span[color], b[color], i[color], strong[color], em[color], small[color], sub[color], sup[color]

These have been throwing a deprecation warning since rc.3 but still working. They are officially gone and therefore these elements will not get the color unless the ion-text attribute is added. Please see the documentation for more information: http://ionicframework.com/docs/api/components/typography/Typography/

Slides

The following properties and functions have been printing console warnings and are officially removed:

Slides input options has been removed. Please use the input
properties instead.

Slide event ionWillChange has been removed, please use
ionSlideWillChange instead.

Slide event ionDidChange has been removed, please use
ionSlideDidChange instead.

Slide event ionDrag has been removed, please use ionSlideDrag
instead.

Slides getSlider() method has been removed, please use the instance
of ion-slides.

2.3.0

22 Mar 19:09

Choose a tag to compare

2.3.0 (2017-03-22)

Bug Fixes

  • alert: pass id to alert inputs (46fe1ff), closes #10603
  • datetime: don't always disable day values when dayValues is set (eff420f)
  • datetime: move the call to picker.refresh() in generate (58beea3)
  • datetime: respect time limits in hours and minutes (afd99ba), closes #6850
  • datetime: update selectedIndex according to ngModel value (74191c3)
  • infinite-scroll: add event.timeStamp polyfill for firefox (#10752) (53feb3f)
  • picker: initialize the selectionIndex (ba35306)
  • range: update the bar width correctly (b541832), closes #10150
  • range: only activate knob B if range is dual (d538245)
  • scroll-view: do not set initialized until it is enabled (#10817) (56364a0)
  • searchbar: add IE support (05859db)
  • select: make floating labels work for ion-select (8c483f2), closes #10751
  • slides: fix rtl support (e90d692)
  • slides: simulate touch events for query params (#10579) (e191321), closes #10577
  • toggle/checkbox: trigger ui update when using virtalScroll with Angular Reactive Forms (30980b6)
  • virtual-list: make virtual-scroll work with infinite-scroll (999efac), closes #9350 #9722 #9247 #10778
  • virtualscroll: populate the nodes at the correct height (51c398d)

Features

  • alert: add attributes min & max to alert inputs (d666e8b)
  • alert: add attributes min & max to alert inputs of type number (b53219a)
  • infinite: add scroll in opposite direction (#8099) (6918275)
  • infinite-scroll: add waitFor method to InfiniteScroll (84e25a1)
  • overlay: add method chaining pattern to configure overlays (bee75f7)
  • range: add ionFocus and ionBlur events (#10761) (8f310eb)
  • split-pane: support for side=right (963cdcb)

Performance Improvements

  • content: scrollview magic activated on demand (7e9bad5)

2.2.0

08 Mar 19:23

Choose a tag to compare

2.2.0 (2017-03-08)

Updating to 2.2.0

  1. Update your package.json to match the following dependencies, remove the existing node_modules directory, and then run npm install:
  "dependencies": {
    "@angular/common": "2.4.8",
    "@angular/compiler": "2.4.8",
    "@angular/compiler-cli": "2.4.8",
    "@angular/core": "2.4.8",
    "@angular/forms": "2.4.8",
    "@angular/http": "2.4.8",
    "@angular/platform-browser": "2.4.8",
    "@angular/platform-browser-dynamic": "2.4.8",
    "@angular/platform-server": "2.4.8",
    "@ionic/storage": "2.0.0",
    "ionic-angular": "2.2.0",
    "ionic-native": "2.4.1",
    "ionicons": "3.0.0",
    "rxjs": "5.0.1",
    "sw-toolbox": "3.4.0",
    "zone.js": "0.7.2"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.1.4",
    "typescript": "2.0.9"
  }

Note: If you are using ionic-storage, you need to update it to 2.0.0 or you will run into an error similar to this: Error: Can't resolve all parameters for Storage: (?, ?).. For more information, see the Storage Documentation.

What's new

Split Pane

As part of our initiative to improve desktop support we have introduced a new component called Split Pane. Split Pane makes it possible to easily create multi-view layouts. It allows elements, such as a menu or another navigation pane, to be displayed on large viewports. Split Pane can be used to achieve a layout similar to the Gmail (Android) or Mail (Apple) applications.

Angular 2.4.8

Ionic has been updated to depend on Angular 2.4.8, which is the latest version that we have tested and confirmed to be compatible with Ionic. This means that updating to the 2.2.0 release of Ionic will automatically work with all of the performance updates, bug fixes and features in Angular 2.4.8!

Ionic Storage

We recently released the 2.0.0 version of ionic-storage. If you are using Ionic Storage in your application, you need to update to this version of ionic-storage. Attempting to use an older version of ionic-storage with Ionic 2.2.0 will cause errors. You can read about how to update to ionic-storage 2.0.0 here.

Bug Fixes

  • components: clean up event listeners to stop memory leaks (8d9f374), closes #10459 #10416 #10286
  • infinite-scroll: use icon color from Sass var and add var for text color (7b97fb7), closes #10574
  • menu: disable the menus when they should be (dc53c8e)
  • menu: don't hide menuToggle outside navbar (e56bad9)
  • radio: calculate radio-inner width/height with border width (#10495) (176aa23)
  • refresher: don't destroy events manager (9308694), (1dd8883), closes #10652
  • refresher: use refresher icon color from Sass var (116ae38), closes #10479
  • tabs: emit ionChange after the tab is selected (ac1a886), closes #10538
  • tabs: catch the rejected promise with popToRoot (7385158)
  • view-controller: set navigation so dimiss() will work synchronously. (61a5317), closes #10654

Features

  • alert: add ability to set the mode on alert (f577e54)
  • split-pane: split pane support for ion-nav and ion-menu (#10343) (9e4c3a6)
  • typography: add text-wrap attribute for all elements (2c2b87b), closes #7051

2.1.0

23 Feb 18:02

Choose a tag to compare

2.1.0 (2017-02-23)

Bug Fixes

  • content: check for scroll element before modifying it (#10374) (6a0c92c)
  • platform: resize platform correctly (54e50f)

Features

  • alert: add sass variables for checkbox and radio button text color (#10331) (9cd42dd)
  • datetime: add placeholder attribute (52a6d41), closes #7966
  • grid: improve grid to a column layout with more flexibility (#10485) (6ceec7a), closes #6050 #7508

2.0.1

08 Feb 15:26

Choose a tag to compare

2.0.1 (2017-02-08)

Bug Fixes

  • chip: align icon in the center (ace727e), closes #5386
  • content: check for this._scroll when reading dimensions (#10216) (96f550c)
  • datetime: set input-has-value class without formControlName (#8947) (81c3394)
  • input: add variables for alert and input placeholder color (4ca9f2c), closes #10153
  • input: add max, min, step as inputs and pass to native (803782a), closes #10189
  • input: don't allow focus when disabled is set (#10214) (eba0866), closes #10155
  • platform: detect iPad Pro correctly (#10292) (f12fc61)
  • toggle/checkbox: allow value to be programmatically updated while disabled (#10304) (b8ee301), closes #9730

2.0.0-rc.6

24 Jan 20:14

Choose a tag to compare

2.0.0-rc.6 (2017-01-24)

Updating to 2.0.0-rc.6

  1. Update the framework:

    npm install --save --save-exact [email protected]
    
  2. Change the import for ionicons in your theme/variables.scss file from this:

    @import "ionicons";
    

    to

    @import "ionic.ionicons";
    

    See the conference app for an example. This fixes a bug with ionicons getting styled incorrectly.

Bug Fixes

  • alert: input missing id attribute from input options (6da9eb6), closes #9457
  • alert: unhandled promise exception (ee2268f)
  • checkbox: set disabled state from FormControl (b44ff41)
  • content: unsubscribe from viewCtrl observables after content ins… (#10050) (3a718de), closes #9593 #10045
  • datetime: set disabled state from FormControl (99c493e)
  • gestures: drag events are debounced (23a70e1)
  • input: pass disabled down to input when it is set from form (5844a83), closes #9834
  • input: pass readonly from ion-input down to native input (f9a576e), closes #6408
  • input: show clear-input on inputs with ngModel/formControlName (7a6ba2d), closes #9077
  • item-sliding: don't error or allow swipes with no options (421b7da), closes #9914
  • modal: overlay-zindex is not changed in back direction (fba1596), closes #9409
  • nav: swipe back after getRootNav().push (eaa6248), fixes #9558 (#9767)
  • nav-pop: add catch for unhandled promise exception (b995ca8)
  • nav-push: add catch for unhandled promise exception (8c4fd56)
  • platform: detect the orientation correctly (8840124)
  • range: set disabled state from FormControl (8e64a28)
  • select: set disabled state from FormControl (40e7eb2)
  • slides: allow auto to be passed (e56028e), closes #10000 #10037
  • tabs: ionChange event is dispatched after the switch (ba9e7b3)
  • tap: allow document to be tap polyfilled (9168bc1), closes #9726
  • toggle: set disabled state from FormControl (0aad835)

Features

  • radio: add disabled to radio-group and support disabled formcontrol (3e9427b), closes #9998
  • slides: add option for paginationBulletRender (21667c6), closes #10002
  • slides: add swiper controller (#9983) (f499496)
  • slides: expose more options (#9992) (2d26edb), closes #9988

2.0.0

25 Jan 16:29

Choose a tag to compare

2.0.0 (2017-01-25)

Enjoy! 🎉

2.0.0-rc.5

11 Jan 16:34

Choose a tag to compare

2.0.0-rc.5 (2017-01-11)

Updating to 2.0.0-rc.5

  1. Update to the latest version of the Ionic CLI:
npm uninstall -g ionic
npm install -g ionic
  1. Update your package.json to match the following dependencies, remove existing node_modules directory, and then run npm install:
"dependencies": {
    "@angular/common": "2.2.1",
    "@angular/compiler": "2.2.1",
    "@angular/compiler-cli": "2.2.1",
    "@angular/core": "2.2.1",
    "@angular/forms": "2.2.1",
    "@angular/http": "2.2.1",
    "@angular/platform-browser": "2.2.1",
    "@angular/platform-browser-dynamic": "2.2.1",
    "@angular/platform-server": "2.2.1",
    "@ionic/storage": "1.1.7",
    "ionic-angular": "2.0.0-rc.5",
    "ionic-native": "2.2.11",
    "ionicons": "3.0.0",
    "rxjs": "5.0.0-beta.12",
    "zone.js": "0.6.26",
    "sw-toolbox": "3.4.0"
  },
  "devDependencies": {
    "@ionic/app-scripts": "1.0.0",
    "typescript": "2.0.9"
  }

Note: please ensure you are using the exact TypeScript and Angular versions listed above. There have been issues with the latest versions.

What’s changed?

Internal refactor completed in order to improve tree shaking and dead code removal. The public API, with the exception of the slides component, has stayed the same. However, internally many changes were required so bundlers could better exclude modules which should not be bundled. Ultimately most changes resorted to removing references to window or document, or a module that referenced one of those.

What’s new?

Service Worker Toolbox (sw-toolbox) is now built in to the starters and conference app. This allows you to customize your service worker using a high level API instead of using the raw service worker API. Our out of the box configuration will give your app a good, network independent experience but you can easily customize this to fit your app’s unique use cases.

BREAKING CHANGES

Inputs

As part of the refactor to improve tree shaking the TextArea has been merged into the TextInput class. This means that if you are importing the TextArea class you will need to change this to be TextInput.

Slides

ion-slides was refactored to remove the external dependencies, and rewritten in TypeScript/ES6 modules to again improve tree shaking abilities. In order to work with tree shaking, the options attribute had to be removed. See the Slides API Documentation for usage information.

Bug Fixes

  • clickblock: add NavOptions.minClickBlockDuration (8ca9797)
  • datetime: enable custom day values (#9708) (acba3c0), closes #7190 #7190
  • input: fix the text jumping for stacked/floating inputs on iOS (877fcf1), closes #9605
  • input: only add padding right if it has clear input (717cada), closes #9865
  • input: remove click events from disabled inputs (#9676) (22ba043), closes #9070
  • list: add border to last item in MD list (#9679) (64346bd), closes #9619
  • overlay: don't call to dismiss pages if the view is an overlay (8b25798)
  • platform: only set isPortrait when the width/height is set (e9adab0)
  • scroll: handle low duration in scrollTo (14eb2fd)
  • show-hide-when: remove whitespaces from conditions before check phase (#9573) (cd342c2)
  • tabs: current tab still active if selected tab does not have a root (f09c300), closes #9392 #9811 #9392

2.0.0-rc.4

15 Dec 15:34

Choose a tag to compare

2.0.0-rc.4 (2016-12-15)

Updating to 2.0.0-rc.4

  1. Update the Ionic CLI to the latest version:
npm uninstall -g ionic
npm install -g ionic
  1. Update the following dependencies in your package.json file:
"dependencies": {
  "@angular/common": "2.2.1",
  "@angular/compiler": "2.2.1",
  "@angular/compiler-cli": "2.2.1",
  "@angular/core": "2.2.1",
  "@angular/forms": "2.2.1",
  "@angular/http": "2.2.1",
  "@angular/platform-browser": "2.2.1",
  "@angular/platform-browser-dynamic": "2.2.1",
  "@angular/platform-server": "2.2.1",
  "@ionic/storage": "1.1.7",
  "ionic-angular": "2.0.0-rc.4",
  "ionic-native": "2.2.11",
  "ionicons": "3.0.0",
  "rxjs": "5.0.0-beta.12",
  "zone.js": "0.6.26"
},
"devDependencies": {
  "@ionic/app-scripts": "0.0.47",
  "typescript": "2.0.9"
}
  1. A major version of @ionic/app-scripts was recently
    released. Please review the changelog
    for the details on the minor breaking changes to the release:
    https://github.com/driftyco/ionic-app-scripts/blob/master/CHANGELOG.md

Bug Fixes

  • action-sheet: set border bottom of last button to transparent (ffdd8f4)
  • activator: cancel remove .activated timeout (9510a2b)
  • alert: fix alert input focusing and keyboard (29a56c4)
  • alert: close keyboard when alert leaves (f354d91), closes #8185
  • animation: improve menu and go back swipe (4be47bd)
  • app: go back navigation can close menus (8de253a)
  • app: navPop() can go back inside modals (2ac3b4a), closes #7611
  • app: navPop() does not go to previous tab (eebb062)
  • app-root: async disable-scroll is cancelled properly (177a089)
  • avatar: make border-radius 50% so it is always circular (e84f2e2)
  • backdrop: remove click cursor when the backdrop is not tappable (06938b6)
  • clickblock: clickblock applies longer (e0d876e)
  • components: set true/false inputs to booleans (a796786), closes #9391
  • components: export ClickBlock (6244b51)
  • content: add a new variable for calculating fixed content top/bottom (8037086)
  • content: get correct content dimensions (1d245ec)
  • content: prefix utility attributes with ion-app and the mode (abc7395), closes #8765
  • datetime: fix am/pm in format w/out minutes or seconds (95b3b38), closes #9269
  • dateTime: make sure picker-column is shown on retina screens (b17950d)
  • fab: add box shadow transition for md fab list buttons (1e2374f), closes #9557
  • fab: fab list colors (cbf59fa), closes #9225
  • fab: position fab-list correctly on IE (a0b61f2)
  • fab: set ripple color to contrast color of the fab background (0888dec)
  • fab: using as fab (0e773fa)
  • fonts: auto-set ionicons font path if not already set (7bbfb7e)
  • gesture: nativeRaf is unsafe (b63344c)
  • gesture: pass type to hammer.get() so pinch and rotate can be enabled (66afe34)
  • header: fix no-border on ios headers (d53a38e), closes #9525 #9480
  • img: ensure scroll has been initialized (39e1dce)
  • img: fix content viewable area (903473e)
  • img: move img requests out of web workers (5376318)
  • img: use img tag due to cordova limitations (4f61ea5)
  • input: add back old styles to fix input margin (e09aee4)
  • input: apply transform css prefix (eba2862)
  • input: fix input margins while scrolling (67473f2)
  • input: fix tabbing between tappable inputs (c4cf9df)
  • input: improve scroll to input and focusing (3b30497)
  • input: prevent exception when input components outside Content (e80f4cf)
  • input: stop ios from hiding keyboard on focus change (5bcd7f2)
  • input: test for null element before update (f0327a9), closes #9278
  • item: disable scroll while sliding item (c002b36)
  • item: tappable does not make ion-label pointer-event:none (4512c5c)
  • keyboard: fix keyboard tabbing context (902a767), closes #9568
  • labels: consistent label styles on iOS (b788ce6)
  • menu-toggle: move logic for css class to the menu toggle (624cb35), closes #8943
  • modal: app.navPop() can dismiss modals (5567191), closes #8692
  • modal: backdrop click catches navigation promise (e46d8d6)
  • modal: using cross mode animations (ccb6bf1), closes #9323
  • module: add ClickBlock to NgModule declarations (960399a)
  • nav: async removing for views (5ff7072)
  • nav: back button and title not aligned on baseline (d82bb01), closes #8983
  • nav: popTo() uses the new removeView API (6b3e2ed)
  • nav: prevents to remove all views in the nav stack (16bfb49), closes #9140
  • navbar: go back text (58189d2)
  • note: separate note from item so its styles will alway be applied (bf00803), closes #9173
  • picker: add color to picker-opt so the variable will style correctly (dc0659f), closes #9519
  • picker: making touchable fill all the available space (448e020)
  • picker: mark main button as strong (af7139b)
  • picker: removes unused code (44d772f)
  • picker: stop picker once it is closed (ecb8bee)
  • platform: fix window width/height calculations (4ed6b36)
  • popover: remove css contain from popover (db9f1a8)
  • ripple: disable ripple on android 4.4 with chrome (97ec20e)
  • scroll: correctly resolve promise (c6fbb9c)
  • scroll: ensure listeners have been added before removing (a237253)
  • scroll: fix content dimensions for js scrolling (...
Read more

2.0.0-rc.3

17 Nov 19:58

Choose a tag to compare

2.0.0-rc.3 (2016-11-17)

Bug Fixes

  • animation: always run before classes and functions (d9e9ece), closes #8842 #8769
  • animation: regression in _willChg() (91f5087)
  • button: fix ios buttons in colored toolbar so they don't use the default color (0e53ec3), closes #8566
  • colors: override element styling and tweak colors for card and item (ee3decc), closes #9081
  • components: add a mode agnostic css class (#9133) (025c5cc), closes #8545
  • datetime: fix min/max displayFormat and pickerFormat (c72b67d), closes #8729
  • gestures: gesture controller handled by components (32ab817), closes #9046 #9130 #9052 #7444
  • item: fix color input for item divider and list header (5e5c33a), closes #8376
  • nav: controller is initialized (beab06f)
  • nav: fixes empty stack condition (909293a)
  • nav: it is not allowed to pop all the views (0ab990c)
  • nav: returning Promise in canLeave / canEnter works as expected (5f1a862)
  • nav: transitioning state is a boolean not a timer (63d495a)
  • nav: willLeave is called before willEnter (b77b2ae), closes #9163
  • nav: zIndex in overlays (70f8a8e)
  • picker: prevents scrolling under the picker (2348d22)
  • sass: change default font path (#8811) (0940d5a)
  • sass: remove usage of colors other than primary, improve error (#8907) (eb0b05d), closes #8266
  • styles: update ios and md styles closer to native (9f7972b)
  • test: class 'Page5' incorrectly extends base class (a98284a)
  • typography: Exclude ion-item on a tags selector (#8340) (b00860b)

Features

  • export NavControllerBase for building of components similar to ion-tab (24b087c)
  • input: clearOnEdit feature. Closes #9187 (9469b4f)
  • IonicErrorHandler: custom ionic error handler provider (6b77772)
  • tappable: auto add tappable attribute for ion-item clicks (5c4838b)

Performance Improvements

  • animation: improves _progress() hot function (c44f6b6)
  • animation: optimizing hot loops (c78dc19)
  • animation: set after styles should not be recursive (3a2ff85)
  • click: increase number to find activatable elements (c8aad56), closes #9190
  • item: improve performance of sliding item (#9005) (759e3ea)
  • item: reorder is only added to the DOM if needed (dec5a0b), closes #9065
  • menu: avoid change detection when it isn't needed (#8986) (d531ec2)
  • nav: avoid running zone when it is not needed (be72d39)
  • picker: improves performance of picker and datepicker (fc2ee64)
  • picker: improves picker UX feedback (cfbc5ea)

BREAKING CHANGES

  • sass: - $fab-<mode>-in-list-background-color ->
    $fab-<mode>-list-button-background-color
  • $fab-<mode>-in-list-text-color ->
    $fab-<mode>-list-button-text-color
  • $fab-<mode>-in-list-background-color-activated ->
    $fab-<mode>-list-button-background-color-activated