Just in time for Angular 12, it’s Ignite UI 12.0.0!
We are all excited about the release of Angular 12 and the new features that it supports. At Infragistics, we strive to provide you with the best possible user experience and keep you up-to-date with the latest versions of frameworks, platforms, and technology. That is why we are excited to share that we have released Ignite UI for Angular 12.0.0 , with full support for Angular 12, so quickly after its release!
To be the best Angular enterprise-grade library takes continues efforts and devotion. Ignite UI 12.0.0 is proof for that. We continue to add new components and features, enhance the existing ones and address your requests, letting you creating Angular application at ease. Let's see what do we have for you in Ignite UI 12.0.0:
Angular Components
Angular Tree Component
The Angular Tree Component allows users to represent hierarchical data in a tree-view structure, maintaining parent-child relationships, as well as to define static tree-view structure without a corresponding data model. Its primary purpose is to allow end-users to visualize and navigate within hierarchical data structures. The Ignite UI for Angular Tree Component also provides load on demand capabilities, item activation, bi-state and cascading selection of items through built-in checkboxes, built-in keyboard navigation and more.
Angular Date Picker& Angular Time Picker Update
As mentioned above, keeping the top position for enterprise-grade Angular library, obligates us to continuously improve our product. In Ignite UI 12.0.0 you can enjoy on enhanced user experience with updated Angular Date Picker and Angular Time Picker components. You can find more in Ignite UI documentation.
Angular Date Time Editor
We have added new feature to our Angular Date Time Editor. Now it accepts ISO 8601 date strings. Find more here.
Design & Theming
Ignite UI for Angular would not be complete without our state-of-art design and theming. Ignite UI 12.0.0 comes with reduced themes size, global palette values and new "How to..." topics. Check out the updated "Styling & Themes" documentation.
Reduced themes size
Use of global palette values (CSS variables)
Scope custom CSS properties to component selectors
Expose elevations as custom CSS properties
Typography to be explicitly set by the user
New Bootstrap Theming Sample
Angular Grids: Grid, Tree Grid and Hierarchical Grid
Export Angular Hierarchical Grid to Excel
The Excel Exporter service now can export data to excel from the Ignite UI Angular Hierarchical Grid. The data export functionality is encapsulated in the IgxExcelExporterService
class. To trigger the process, you need to invoke the IgxExcelExporterService
's export
method and pass the IgxHierarchicalGrid component as the first argument.
Datetime & Time Column Types
We add two new members to our Angular Column Data Types portfolio. The appearance of the date portions will be set (e.g. day, month, year) based on locale
format or pipeArgs
input. The pipe arguments can be used to specify a custom date format or timezone.
Angular Tabs& Angular Bottom Navigation Refactoring
Another two angular components that have been updated and changed in Ignite UI 12.0.0.
Expose API for a new row object in Angular Grid
The Grid provides a convenient way to perform data manipulations through inline row adding and a powerful API for Angular CRUD operations. Add an Action Strip component with editing actions enabled in the grid's template, hover a row and use the provided button or press ALT + + to spawn the row adding UI.
Angular Grid Interactions
Detach method for IgxOverlay
Here it is the complete Ignite UI for Angular Change Log for 12.0.0
General
IgxGrid
,IgxTreeGrid
,IgxHierarchicalGrid
- Breaking Change - The
locale
andpipeArgs
parameters are removed from theoperate
method exposed by theIgxNumberSummaryOperand
,IgxDateSummaryOperand
,IgxCurrencySummaryOperand
andIgxPercentSummaryOperand
. They are now set in theigx-grid-summary-cell
template. To change the locale and format setting of theigx-grid-summary-cell
the user can use the newsummaryFormatter
property of theIgxColumnComponent
. - Breaking Change -
IgxGrid
,IgxTreeGrid
,IgxHierarchicalGrid
events are renamed as follows:onCellClick
->cellClick
onScroll
->gridScroll
onSelection
->selected
onRowSelectionChange
->rowSelected
onColumnSelectionChange
->columnSelected
onColumnPinning
->columnPin
onColumnInit
->columnInit
onSortingDone
->sortingDone
onFilteringDone
->filteringDone
onPagingDone
->pagingDone
onRowAdded
->rowAdded
onRowDeleted
->rowDeleted
onColumnResized
->columnResized
onContextMenu
->contextMenu
onDoubleClick
->doubleClick
onColumnVisibilityChanged
->columnVisibilityChanged
onColumnMovingStart
->columnMovingStart
onColumnMoving
->columnMoving
onColumnMovingEnd
->columnMovingEnd
onGridKeydown
->gridKeydown
onRowDragStart
->rowDragStart
onRowDragEnd
->rowDragEnd
onGridCopy
->gridCopy
onRowToggle
->rowToggle
onRowPinning
->rowPinning
onToolbarExporting
->toolbarExporting
onRangeSelection
->rangeSelected
IgxGridRowComponent
,IgxGridGroupByRowComponent
,IgxTreeGridRowComponent
,IgxHierarchicalRowComponent
are no longer exposed in the public API. Automatic migration will change these imports withRowType
.- Behavioral changes
getRowByIndex
,getRowByKey
,cell.row
now return an object implemening theRowType
interface.dragData
emitted withIRowDragEndEventArgs
,IRowDragStartEventArgs
is nowRowType
IRowDragEndEventArgs
,IRowDragStartEventArgs
now emitdragElement
, which holds the dragged row html element.row
inIPinRowEventArgs
is nowRowType
- Breaking Change - The
IgxTabs
,IgxBottomNav
- Breaking Change -
IgxTabs
andIgxBottomNav
components were completely refactored in order to provide more flexible and descriptive way to define tab headers and contents. Please make sure to update viang update
in order to migrate the existingigx-tabs
andigx-bottom-nav
definitions to the new ones.
- Breaking Change -
IgxForOfDirective
- Breaking Change -
IgxForOfDirective
events are renamed as follows:onChunkLoad
->chunkLoad
onScrollbarVisibilityChanged
->scrollbarVisibilityChanged
onContentSizeChange
->contentSizeChange
onDataChanged
->dataChanged
onBeforeViewDestroyed
->beforeViewDestroyed
onChunkPreload
->chunkPreload
onDataChanging
->dataChanging
- Breaking Change -
IgxColumnComponent
- Breaking Change - The
onColumnChange
output is renamed tocolumnChange
.
- Breaking Change - The
Breaking Change -
IgxHierarchicalGrid
andigxRowIsland
events are renamed as follows:onGridCreated
->gridCreated
onGridInitialized
->gridInitialized
onDataPreLoad
->dataPreLoad
IgxDateTimeEditor
- Feature -
value
accepts ISO 8601 string format. - Breaking Change -
value
type could beDate
orstring
. - Breaking Change -
onValueChange
event is renamed tovalueChange
. - Breaking Change -
isSpinLoop
property is renamed tospinLoop
. - Feature -
spinDelta
input property which allows a user to provide different delta values that will be used for spinning. All parts default to1
. increment
anddecrement
methods now accept an optionaldelta
parameter which targets the currently spun date portion. It takes precedence over the values set inspinDelta
.
- Feature -
IgxDatePicker
- Feature -
value
accepts ISO 8601 string format. - Feature - The actions template now exposes the Calendar component as implicit context:
<igx-date-picker><ng-templateigxPickerActionslet-calendar><buttonigxButton="flat" (click)="calendar.viewDate = today">Today</button></ng-template></igx-date-picker>
- Breaking Change -
value
type could beDate
orstring
. - Breaking Change -
onSelection
event is renamed tovalueChange
. - Breaking Change - new way to define custom elements in the
igx-date-picker
while the following properties are deleted or deprecated:formatter
,context
,labelInternal
,template
.<igx-date-picker#datePicker[(value)]="date" [displayFormat]="'longDate'" [inputFormat]="dd/MM/yyyy"><labeligxLabel>Date: </label><igx-picker-toggleigxPrefix(click)="datePicker.toggle()"> calendar_view_day </igx-picker-toggle><igx-picker-clearigxSuffix(click)="datePicker.clear()"> delete </igx-picker-clear></igx-date-picker>
- Breaking Change -
mode
andformat
are replaced byinputFormat
. - Breaking Change -
placeholder
defaults to theinputFormat
- Breaking Change -
editorTabIndex
is renamed totabIndex
. - Breaking Change -
monthsViewNumber
is renamed todisplayMonthsCount
. - Breaking Change -
vertical
is renamed toheaderOrientation
. - Breaking Change -
displayData
is renamed todisplayFormat
. - Breaking Change -
dropDownOverlaySettings
andmodalOverlaySettings
are replaced by theoverlaySettings
. - Breaking Change -
onValidationFailed
event is renamed tovalidationFailed
. - Breaking Change -
onDisabledDate
event is removed. - Breaking Change -
onOpening
,onOpened
,onClosing
andonClosed
events are renamed respectively toopening
,opened
,closing
andclosed
.
- Feature -
IgxTimePicker
- Feature -
value
accepts ISO 8601 string format. - Breaking Change -
value
type could beDate
orstring
. - Breaking Change -
onValueChanged
event is renamed tovalueChange
. - Breaking Change - new way to define custom elements in the
igx-time-picker
while the following properties are deleted or deprecated:context
,promptChar
,displayTime
,template
.<igx-time-picker#timePicker[(value)]="time" [displayFormat]="'mediumTime'" [inputFormat]="hh:mm:ss"><labeligxLabel>Time: </label><igx-picker-toggleigxPrefix(click)="timePicker.toggle()"> alarm </igx-picker-toggle><igx-picker-clearigxSuffix(click)="timePicker.clear()"> delete </igx-picker-clear></igx-time-picker>
- Breaking Change -
format
is replaced byinputFormat
. - Breaking Change -
placeholder
defaults to theinputFormat
- Breaking Change -
isSpinLoop
property is renamed tospinLoop
. - Breaking Change -
vertical
is renamed toheaderOrientation
. - Breaking Change -
onOpening
,onOpened
,onClosing
andonClosed
events are renamed respectively toopening
,opened
,closing
andclosed
. - Breaking Change -
onValidationFailed
event is renamed tovalidationFailed
.
- Feature -
IgxDateRangePicker
- Feature -
value
start and end accept ISO 8601 string format. - Feature - The actions template now exposes the Calendar component as implicit context:
<igx-date-range-picker><ng-templateigxPickerActionslet-calendar><buttonigxButton="flat" (click)="calendar.viewDate = today">Today</button></ng-template></igx-date-range-picker>
- Breaking Change -
value
start and end types could beDate
orstring
. - Breaking Change -
rangeSelected
event is renamed tovalueChange
. - Breaking Change -
onOpening
,onOpened
,onClosing
andonClosed
events are renamed respectively toopening
,opened
,closing
andclosed
. - Breaking Change -
monthsViewNumber
is renamed todisplayMonthsCount
.
- Feature -
IgxSliderComponent
- Breaking Change - The following outputs are renamed:
onValueChange
tovalueChange
onValueChanged
todragFinished
- Breaking Change - The following outputs are renamed:
IgxCircularProgressBarComponent
- Breaking Change - The following outputs are renamed:
onProgressChanged
toprogressChanged
- Breaking Change - The following outputs are renamed:
IgxLinearProgressBarComponent
- Breaking Change - The following outputs are renamed:
onProgressChanged
toprogressChanged
- Breaking Change - The following outputs are renamed:
IgxToast
- Breaking Change - The following deprecated methods and outputs have been removed
- Outputs
showing
,shown
,hiding
,hidden
. UseonOpening
,onOpened
,onClosing
,onClosed
instead. - Methods
show
,hide
. Useopen
,close
instead.
- Outputs
- Breaking Change - The following deprecated methods and outputs have been removed
IgxSnackbar
- Breaking Change - The following deprecated methods have been removed
show
,hide
. Useopen
,close
instead.
- Breaking Change - The following deprecated methods have been removed
New Features
Added
IgxTree
component- Allows users to render hierarchical data in an easy-to-navigate way. The control is not data bound and takes a declarative approach, giving users more control over what is being rendered.
- Features API for handling selection (bi-state and cascading), node activation, node expansion state.
- Features extensive and easy-to-use keyboard navigation, fully compliant with W3 standards.
- Code example for a tree contructured from a hierarchical data set:
<igx-tree><igx-tree-node*ngFor="let node of data" [data]="node" [expanded]="isNodeExpanded(node)" [selected]="isNodeSelected(node)"> {{ node.text }} <img[src]="node.image" alt="node.imageAlt" /> <igx-tree-node*ngFor="let child of node.children" [data]="child" [expanded]="isNodeExpanded(child)" [selected]="isNodeSelected(child)"> {{ child.text }} <igx-tree-node*ngFor="let leafChild of child.children" [data]="leafChild" [expanded]="isNodeExpanded(leafChild)" [selected]="isNodeSelected(leafChild)"><aigxTreeNodeLinkhref="{{leafChild.location}}" target="_blank">{{ leafChild.text }}</a></igx-tree-node></igx-tree-node></igx-tree-node></igx-tree>
- For more information, check out the README, specification and official documentation
IgxHierarchicalGrid
- Added support for exporting hierarchical data.
IgxForOf
,IgxGrid
,IgxTreeGrid
,IgxHierarchicalGrid
- Behavioral Change - Virtual containers now scroll smoothly when using the mouse wheel(s) to scroll them horizontally or vertically. This behavior more closely resembles the scrolling behavior of non-virtualized containers in most modern browsers.
IgxGrid
,IgxTreeGrid
,IgxHierarchicalGrid
The
IgxRowAddTextDirective
allows to customize the text of the row adding overlay.<igx-grid[rowEditable]="true"><ng-templateigxRowAddText> Adding Row </ng-template></igx-grid>
A new
summaryFormatter
input property is exposed by theIgxColumnComponent
, which is used to format the displayed summary values for the columns.publicdateSummaryFormat(summary: IgxSummaryResult,summaryOperand: IgxSummaryOperand): string {constresult=summary.summaryResult;if(summaryOperandinstanceofIgxDateSummaryOperand&&summary.key!=='count'&&result!==null&&result!==undefined){constpipe=newDatePipe('en-US');returnpipe.transform(result,'MMM YYYY');}returnresult;}
<igx-columnfield="OrderDate" header="Order Date" [sortable]="true" [disableHiding]="true" [dataType]="'date'" [hasSummary]="true" [summaryFormatter]="dateSummaryFormat"></igx-column>
Two new column types are introduced
dateTime
andtime
. In order to operate with them is necessary to set the column property dataType to'dateTime'
or'time'
.<igx-columnfield="OrderDate" header="Order Date" [dataType]="'dateTime'" ></igx-column><igx-columnfield="ClosingTime" header="Closing time" [dataType]="'time'" ></igx-column>
Behavioral Change -
Column Autosize
feature now does not handle templated headers where the first level children are sized based on parent like defaultdiv
and etc. Autosizing for such headers will not result in change.Behavioral Change - Calling
autosize
through theIgxColumnComponent
API now takes into consideration theminWidth
andmaxWidth
of the column.A new
IgxColumnComponent
input property is exposed calledautosizeHeader
, which if false, allows the autosizing to ignore the header cell and autosize only based on content cells.
IgxTabs
- The
tabAlignment
property of theIgxTabs
component replaces thetype
property and enables you to set the tab alignment tostart
,center
,end
andjustify
. - The
igx-tab-header
supportsigx-prefix
andigx-suffix
directives in itsng-content
.
- The
IgxBottomNav
- The
IgxBottomNav
component exposesdisableAnimations
property which determines whether the contents should animate when switching the selected item. The property is set totrue
by default which means that the animations are disabled.
- The
IgxOverlayService
detach
anddetachAll
methods are added toIgxOverlayService
. Callingdetach
will remove all the elements generated for the related overlay, as well as clean up all related resources. CallingdetachAll
will remove all elements generated by any call toIgxOverlay
attach
, and will clean up all related resources. Note: callinghide
orhideAll
will not clean generated by the service elements and will not clean up related resources.
IgxCombo
- Any changes to
IComboItemAdditionEvent.addedItem
will be reflected in the item added to the data. IgxComboComponent.onAddition
is now cancelable. You can prevent the item from being added by setting the event argscancel
property totrue
.
publichandleComboItemAddition(event: IComboItemAdditionEvent): void{if(event.addedItem[this.combo.valueKey]==='ForbiddenValue'){event.cancel=true;}elseif(event.addedItem[this.combo.valueKey]==='Change Me'){constindex=this.iter++;event.addedItem={[this.combo.valueKey]: `customId${index}`,[this.combo.displayKey]: `New item ${index}`;}}}
- Any changes to
Themes:
Breaking Changes:
IgxButton
theme has been simplified. The number of theme params (igx-button-theme
) has been reduced significantly and no longer includes prefixed parameters (flat-*
,raised-*
, etc.). See the migration guide to update existing button themes. Updates performed withng update
will migrate existing button themes but some additional tweaking may be required to account for the abscense of prefixed params.- The
igx-typography
mixin is no longer implicitly included withigx-core
. To use our typography styles users have to include the mixin explicitly:
@include igx-core(); /// Example with Indigo Design theme: @include igx-typography($font-family: $indigo-typeface, $type-scale: $indigo-type-scale);
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.