12.0.0-rc.1
Pre-release12.0.0
General
IgxGrid,IgxTreeGrid,IgxHierarchicalGrid- Breaking Change - The
localeandpipeArgsparameters are removed from theoperatemethod exposed by theIgxNumberSummaryOperand,IgxDateSummaryOperand,IgxCurrencySummaryOperandandIgxPercentSummaryOperand. They are now set in theigx-grid-summary-celltemplate. To change the locale and format setting of theigx-grid-summary-cellthe user can use the newsummaryFormatterproperty of theIgxColumnComponent. - Breaking Change -
IgxGrid,IgxTreeGrid,IgxHierarchicalGridevents are renamed as follows:onCellClick->cellClickonScroll->gridScrollonSelection->selectedonRowSelectionChange->rowSelectedonColumnSelectionChange->columnSelectedonColumnPinning->columnPinonColumnInit->columnInitonSortingDone->sortingDoneonFilteringDone->filteringDoneonPagingDone->pagingDoneonRowAdded->rowAddedonRowDeleted->rowDeletedonColumnResized->columnResizedonContextMenu->contextMenuonDoubleClick->doubleClickonColumnVisibilityChanged->columnVisibilityChangedonColumnMovingStart->columnMovingStartonColumnMoving->columnMovingonColumnMovingEnd->columnMovingEndonGridKeydown->gridKeydownonRowDragStart->rowDragStartonRowDragEnd->rowDragEndonGridCopy->gridCopyonRowToggle->rowToggleonRowPinning->rowPinningonToolbarExporting->toolbarExportingonRangeSelection->rangeSelected
IgxGridRowComponent,IgxGridGroupByRowComponent,IgxTreeGridRowComponent,IgxHierarchicalRowComponentare no longer exposed in the public API. Automatic migration will change these imports withRowType.- The IgxColumn data type
DataTypeis renamed toGridColumnDataType. - Behavioral changes
getRowByIndex,getRowByKey,cell.rownow return an object implemening theRowTypeinterface.dragDataemitted withIRowDragEndEventArgs,IRowDragStartEventArgsis nowRowTypeIRowDragEndEventArgs,IRowDragStartEventArgsnow emitdragElement, which holds the dragged row html element.rowinIPinRowEventArgsis nowRowType
- Breaking Change - The
IgxTabs,IgxBottomNav- Breaking Change -
IgxTabsandIgxBottomNavcomponents were completely refactored in order to provide more flexible and descriptive way to define tab headers and contents. Please make sure to update viang updatein order to migrate the existingigx-tabsandigx-bottom-navdefinitions to the new ones.
- Breaking Change -
IgxForOfDirective- Breaking Change -
IgxForOfDirectiveevents are renamed as follows:onChunkLoad->chunkLoadonScrollbarVisibilityChanged->scrollbarVisibilityChangedonContentSizeChange->contentSizeChangeonDataChanged->dataChangedonBeforeViewDestroyed->beforeViewDestroyedonChunkPreload->chunkPreloadonDataChanging->dataChanging
- Breaking Change -
IgxColumnComponent- Breaking Change - The
onColumnChangeoutput is renamed tocolumnChange.
- Breaking Change - The
- Breaking Change -
IgxHierarchicalGridandigxRowIslandevents are renamed as follows:onGridCreated->gridCreatedonGridInitialized->gridInitializedonDataPreLoad->dataPreLoad
IgxInputGroupComponent- Breaking Change -
disabledproperty removed. Use the underlyingIgxInputDirective.disabledto control the disabled state of the input group. Please make sure to update viang updateto migrate an usage ofdisabledin your template files. Please make sure to check out the update guide.
- Breaking Change -
IgxDateTimeEditor- Breaking Change -
onValueChangeevent is renamed tovalueChange. - Breaking Change -
isSpinLoopproperty is renamed tospinLoop.
- Breaking Change -
IgxDatePicker- Breaking Change -
onSelectionevent is renamed tovalueChange. - Breaking Change - new way to define custom elements in the
igx-date-pickerwhile the following properties are deleted or deprecated:context,labelInternal,template.<igx-date-picker #datePicker [(value)]="date" [displayFormat]="'longDate'" [inputFormat]="'dd/MM/yyyy'"> <label igxLabel>Date: </label> <igx-picker-toggle igxPrefix> calendar_view_day </igx-picker-toggle> <igx-picker-clear igxSuffix> delete </igx-picker-clear> </igx-date-picker>
- Breaking Change -
modeandformatare replaced byinputFormat. - Breaking Change -
placeholderdefaults to theinputFormat - Breaking Change -
editorTabIndexis renamed totabIndex. - Breaking Change -
monthsViewNumberis renamed todisplayMonthsCount. - Breaking Change -
verticalis renamed toheaderOrientation. - Breaking Change -
displayDatais renamed todisplayFormat. - Breaking Change -
dropDownOverlaySettingsandmodalOverlaySettingsare replaced byoverlaySettings. - Breaking Change -
onValidationFailedevent is renamed tovalidationFailed. - Breaking Change -
onDisabledDateevent is removed. - Breaking Change -
onOpening,onOpened,onClosingandonClosedevents are renamed respectively toopening,opened,closingandclosed. - Breaking Change -
igxDatePickerActionsis renamed toigxPickerActions - Behavioral Change - Upon opening, the focused date will always be the selected/bound date. If there is no selected/bound date, the date picker will focus today's date. If
minValueand/ormaxValueare applied and today's date (or the bound date) is outside of the specified range, the focused date will be respectivelyminValueormaxValue.
- Breaking Change -
IgxTimePicker- Breaking Change -
valuetype could beDateorstring. - Breaking Change -
onValueChangedevent is renamed tovalueChange. - Breaking Change - new way to define custom elements in the
igx-time-pickerwhile the following properties are deleted or deprecated:context,promptChar,displayTime,template.<igx-time-picker #timePicker [(value)]="time" [displayFormat]="'mediumTime'" [inputFormat]="hh:mm:ss"> <label igxLabel>Time: </label> <igx-picker-toggle igxPrefix> alarm </igx-picker-toggle> <igx-picker-clear igxSuffix> delete </igx-picker-clear> </igx-time-picker>
- Breaking Change -
formatis replaced byinputFormat. - Breaking Change -
placeholderdefaults to theinputFormat - Breaking Change -
isSpinLoopproperty is renamed tospinLoop. - Breaking Change -
verticalis renamed toheaderOrientation. - Breaking Change -
onOpening,onOpened,onClosingandonClosedevents are renamed respectively toopening,opened,closingandclosed. - Breaking Change -
onValidationFailedevent is renamed tovalidationFailed. - Behavioral Change - The dropdown/dialog displays time portions within
minValueandmaxValuerange if set or time between 00:00 and 24:00 in the providedinputFormat. The displayed values for each time portion are calculated based on the items delta always starting from zero. If theminValueormaxValuedoes not match the items delta, the displayed values will start/end from the next/last possible value that matches the delta. Upon opening, the selected time will be the bound value. In cases when there is not a bound value, it is outside the min/max range or does not match the items delta, the selected time will be the closest possible time that matches the items delta.
- Breaking Change -
IgxDateRangePicker- Breaking Change -
rangeSelectedevent is renamed tovalueChange. - Breaking Change -
onOpening,onOpened,onClosingandonClosedevents are renamed respectively toopening,opened,closingandclosed. - Breaking Change -
monthsViewNumberis renamed todisplayMonthsCount.
- Breaking Change -
IgxSliderComponent- Breaking Change - The following outputs are renamed:
onValueChangetovalueChangeonValueChangedtodragFinished
- Breaking Change - The following outputs are renamed:
IgxCircularProgressBarComponent- Breaking Change - The following outputs are renamed:
onProgressChangedtoprogressChanged
- Breaking Change - The following outputs are renamed:
IgxLinearProgressBarComponent- Breaking Change - The following outputs are renamed:
onProgressChangedtoprogressChanged
- 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,onClosedinstead. - Methods
show,hide. Useopen,closeinstead.
- 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,closeinstead.
- Breaking Change - The following deprecated methods have been removed
New Features
-
Added
IgxTreecomponent- 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)"> <a igxTreeNodeLink href="{{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
IgxRowAddTextDirectiveallows to customize the text of the row adding overlay.<igx-grid [rowEditable]="true"> <ng-template igxRowAddText> Adding Row </ng-template> </igx-grid>
-
A new
summaryFormatterinput property is exposed by theIgxColumnComponent, which is used to format the displayed summary values for the columns.public dateSummaryFormat(summary: IgxSummaryResult, summaryOperand: IgxSummaryOperand): string { const result = summary.summaryResult; if(summaryOperand instanceof IgxDateSummaryOperand && summary.key !== 'count' && result !== null && result !== undefined) { const pipe = new DatePipe('en-US'); return pipe.transform(result,'MMM YYYY'); } return result; }
<igx-column field="OrderDate" header="Order Date" [sortable]="true" [disableHiding]="true" [dataType]="'date'" [hasSummary]="true" [summaryFormatter]="dateSummaryFormat"> </igx-column>
-
Two new column types are introduced
dateTimeandtime. In order to operate with them is necessary to set the column property dataType to'dateTime'or'time'.<igx-column field="OrderDate" header="Order Date" [dataType]="'dateTime'" > </igx-column> <igx-column field="ClosingTime" header="Closing time" [dataType]="'time'" > </igx-column>
-
Behavioral Change -
Column Autosizefeature now does not handle templated headers where the first level children are sized based on parent like defaultdivand etc. Autosizing for such headers will not result in change. -
Behavioral Change - Calling
autosizethrough theIgxColumnComponentAPI now takes into consideration theminWidthandmaxWidthof the column. -
A new
IgxColumnComponentinput property is exposed calledautosizeHeader, which if false, allows the autosizing to ignore the header cell and autosize only based on content cells.
-
-
IgxTabs- The
tabAlignmentproperty of theIgxTabscomponent replaces thetypeproperty and enables you to set the tab alignment tostart,center,endandjustify. - The
igx-tab-headersupportsigx-prefixandigx-suffixdirectives in itsng-content.
- The
-
IgxBottomNav- The
IgxBottomNavcomponent exposesdisableAnimationsproperty which determines whether the contents should animate when switching the selected item. The property is set totrueby default which means that the animations are disabled.
- The
-
IgxOverlayServicedetachanddetachAllmethods are added toIgxOverlayService. Callingdetachwill remove all the elements generated for the related overlay, as well as clean up all related resources. CallingdetachAllwill remove all elements generated by any call toIgxOverlayattach, and will clean up all related resources. Note: callinghideorhideAllwill not clean generated by the service elements and will not clean up related resources.
-
IgxCombo- Any changes to
IComboItemAdditionEvent.addedItemwill be reflected in the item added to the data. IgxComboComponent.onAdditionis now cancelable. You can prevent the item from being added by setting the event argscancelproperty totrue.
public handleComboItemAddition(event: IComboItemAdditionEvent): void { if (event.addedItem[this.combo.valueKey] === 'ForbiddenValue') { event.cancel = true; } else if (event.addedItem[this.combo.valueKey] === 'Change Me') { const index = this.iter++; event.addedItem = { [this.combo.valueKey]: `customId${index}`, [this.combo.displayKey]: `New item ${index}`; } } }
- Any changes to
-
IgxDateTimeEditorvalueaccepts ISO 8601 string format.spinDeltainput property which allows a user to provide different delta values that will be used for spinning. All parts default to1.incrementanddecrementmethods now accept an optionaldeltaparameter which targets the currently spun date portion. It takes precedence over the values set inspinDelta.
-
IgxDatePickervalueaccepts ISO 8601 string format.- The actions template now exposes the Calendar component as implicit context:
<igx-date-picker> <ng-template igxPickerActions let-calendar> <button igxButton="flat" (click)="calendar.viewDate = today">Today</button> </ng-template> </igx-date-picker>
-
IgxTimePickervalueaccepts ISO 8601 string format.- The
igxPickerActionsdirective can now be used to provide custom buttons to the picker's pop-up:<igx-time-picker #timePicker> <ng-template igxPickerActions> <button igxButton="flat" (click)="timePicker.close()">Close</button> </ng-template> </igx-time-picker>
-
IgxDateRangePickervaluestart and end accept ISO 8601 string format.- The
igxPickerActionsdirective can now be used to template the pickersDonebutton:<igx-date-range-picker #rangePicker> <ng-template igxPickerActions> <button igxButton="flat" (click)="rangePicker.close()">Close</button> </ng-template> </igx-date-range-picker>
Themes:
-
Breaking Changes:
IgxButtontheme 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 updatewill migrate existing button themes but some additional tweaking may be required to account for the abscense of prefixed params.- The
igx-typographymixin 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);