Ignite UI for Angular 12.2.0 Release

Radoslav Mirchev / Monday, October 4, 2021

It has been a busy time here at Infragistics, with a number of Ignite UI updates and new releases coming in the past few weeks. After the September releases of the App Builder and Web Components Dock Manager, now we are proud to announce the release of Ignite UI for Angular 12.2.0!

 First I want to share a glimpse of the new styling abilities of the Infragisitcs Web Dock Manager. If you like what you see, you can find more at Web Components Dock Manager.

Example for Web Dock Manager Styling

Let's review what we have for you in Ignite UI for Angular 12.2.0.

Angular Grids: Grid, Tree Grid and Hierarchical Grid

 Angular grid row styling

 The Angular Grid component in Ignite UI for Angular provides conditional styling of rows based on custom rules.

Angular Grid Row Conditional Styling Example

 Add row at the top of the grid

 Ignite UI Angular Grid allows to programmatically spawn the add row UI by using two different public methods. One that accepts a row ID for specifying the row under which the UI should spawn and another that works by index. You can use these methods to spawn the UI anywhere within the current data view. Changing the page or specifying a row that is e.g. filtered out is not supported.

 Persistent State directive - column group storing

 Now, the Angular Grid State Persistence directive supports out of the box: 

  • Multi column headers
  • Columns order
  • Column properties defined by the IColumnState interface
  • Columns templates and functions are restored using application level code

 IgxTreeGrid: new filtering strategy to display only filtered records

 By default, after a filtering is applied, the Tree Grid component displays the records matching the criterion that have been set and their parents in a grayed-out fashion to provide additional context. However, in some cases, you may want to display only the records matching particular filtering condition without any trace for their parents. This can be achieved out of the box.

 Update of Grid Export to Excel Service - export of freeze columns and rows

By default Excel Exporter service exports the grid with scrollable (unfrozen) column headers. There are scenarios in which you may want to freeze all headers on top of the exported excel file so they always stay in view as the user scrolls through the records. To achieve this you could set the exporter option freezeHeaders to true.

Example of Angular Grid export to excel

Angular Components

 Snackbar - support of animation customization

Ignite UI Snackbar component can be customized to display more complex elements than a message and a button. If we want to show the snackbar while loading a file, for example, a loading animation could be added to its content.

Example of custom animation for angular snackbar component

 Toast - new position strategy

Here is the complete Ignite UI for Angular Change Log for 12.2.0


New Features

  • igxGrid, igxHierarchicalGrid, igxTreeGrid
    • Added capability to restore the state of multi column headers with IgxGridStateDirective.

    • Introduced new 'rowStyles' and 'rowClasses' grid properties which allows to define a custom styling on each grid row

    • Introduced two new cancellable outputs related to CRUD - rowDelete and rowAdd. Both use an IGridEditEventArgs object as an event argument.

      <igx-grid #grid [data]="localData" (rowAdd)="rowAdd($event)" (rowDelete)="rowDelete($event)" [autoGenerate]="true"></igx-grid>
    • Added two public methods that spawn the add row UI for an arbitrary record in the current data view. One that accepts a rowID to use as the row the UI spawns under and the other accepting an index that has a distinct implementation for IgxTreeGrid. Please, refer to the official documentation for more information: Grid Row Adding and Tree Grid Row Adding.

      Note: That the new record is still added at the end of the data view, after the end-user submits it.

      this.grid.beginAddRowById('ALFKI');             // spawns the add row UI under the row with PK 'ALFKI'
      this.grid.beginAddRowById(null);                // spawns the add row UI as the first record
      this.grid.beginAddRowByIndex(10);               // spawns the add row UI at index 10
      this.grid.beginAddRowByIndex(0);                // spawns the add row UI as the first record
      this.treeGrid.beginAddRowById('ALFKI', true);   // spawns the add row UI to add a child for the row with PK 'ALFKI'
      this.treeGrid.beginAddRowByIndex(10, true);     // spawns the add row UI to add a child for the row at index 10
      this.treeGrid.beginAddRowByIndex(null);         // spawns the add row UI as the first record
    • Added headerStyles and headerGroupStyles inputs to the column component. Similar to cellStyles is exposes a way to bind CSS properties and style the grid headers.

  • igxTreeGrid
    • Added TreeGridMatchingRecordsOnlyFilteringStrategy, which allows you to display only the records matching particular filtering condition without any trace for their parents.
  • IgxSnackbarComponent
    • Introduced new 'positionSettings' input which allows to define a custom animation and position.
  • IgxToastComponent
    • Introduced new 'positionSettings' input which allows to define a custom animation and position.


  • igxGrid, igxHierarchicalGrid, igxTreeGrid

    • 'oddRowCSS' and 'evenRowCSS' properties has been deprecated
    • The column formatter callback signature now accepts the row data as an additional argument:
      formatter(value: any, rowData?: any)
      The rowData argument may be undefined in remote scenarios/applying the callback on filtering labels so make sure to check its availability.
  • IgxForOf - now takes margins into account when calculating the space that each element takes.

    Note: If your virtualized items contain margins, please calculate them into the itemSize value for the best possible initial virtualized state.

  • IgxExcelExporterService

    • Added support for freezing column headers in Excel. By default, the column headers would not be frozen but this behavior can be controlled by the freezeHeaders option of the IgxExcelExporterOptions object.


As you can see, there are numerous updates to Ignite UI for Angular, ready for you to use. We are committed to providing you with the best Angular UI toolkit and continuously updating our components, grids, and features so they remain the fastest on the market. As we mentioned, some of our enhancements come from users like yourself through our GitHub repository. With this in mind, we are always open to suggestions and feedback – it’s what makes us grow and serve you better.

Follow us on Medium and stay up-to-date with the latest Angular-related projects that we are working on. Give us a star on GitHub and help us to continue to improve our product by addressing any concerns, questions or feature requests in the issues section.  We will continue to do our best to constantly improve our product experience to meet all your needs and build apps with ease.