Skip to content

Commit 70c91a0

Browse files
authored
Merge branch 'master' into dTsvetkov/fix-10172-master
2 parents 57a04fa + e7a9d07 commit 70c91a0

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

56 files changed

+584
-509
lines changed

CHANGELOG.md

Lines changed: 44 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,34 @@
22

33
All notable changes for each version of this project will be documented in this file.
44

5+
## 13.0.0
6+
7+
### New Features
8+
- `IgxCsvExporterService`, `IgxExcelExporterService`
9+
- Exporter services are no longer required to be provided in the application since they are now injected on a root level.
10+
11+
### General
12+
13+
- `IgxDialog`
14+
- **Breaking Change** - The default positionSettings open/close animation has been changed to `fadeIn`/`fadeOut`. The open/close animation can be set through the position settings, e.g. change the animation to the previously default open/close animation:
15+
16+
```typescript
17+
import { slideInBottom, slideOutTop } from 'igniteui-angular';
18+
19+
@ViewChild('alert', { static: true }) public alert: IgxDialogComponent;
20+
public newPositionSettings: PositionSettings = {
21+
openAnimation: useAnimation(slideInBottom, { params: { fromPosition: 'translateY(100%)' } }),
22+
closeAnimation: useAnimation(slideOutTop, { params: { toPosition: 'translateY(-100%)'} })
23+
};
24+
this.alert.positionSettings = this.newPositionSettings;
25+
```
26+
27+
## 12.2.1
28+
29+
### New Features
30+
- `igxGrid`, `igxHierarchicalGrid`, `igxTreeGrid`
31+
- new `rowPinned` event is emitted after a row is pinned/unpinned and grid has already refreshed its state to represent the pinned/unpinned rows in the DOM.
32+
533
## 12.2.0
634

735
### New Features
@@ -12,21 +40,6 @@ All notable changes for each version of this project will be documented in this
1240
```html
1341
<igx-grid #grid [data]="localData" (rowAdd)="rowAdd($event)" (rowDelete)="rowDelete($event)" [autoGenerate]="true"></igx-grid>
1442
```
15-
- `igxTreeGrid`
16-
- Added `TreeGridMatchingRecordsOnlyFilteringStrategy`, which allows you to display only the records matching particular filtering condition without any trace for their parents.
17-
- `IgxSnackbarComponent`
18-
- Introduced new 'positionSettings' input which allows to define a custom animation and position.
19-
- `IgxToastComponent`
20-
- Introduced new 'positionSettings' input which allows to define a custom animation and position.
21-
22-
### General
23-
- `igxGrid`, `igxHierarchicalGrid`, `igxTreeGrid`
24-
- 'oddRowCSS' and 'evenRowCSS' properties has been deprecated
25-
26-
## 12.1.6
27-
28-
### New Features
29-
- `igxGrid`, `igxHierarchicalGrid`, `igxTreeGrid`
3043
- 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](https://www.infragistics.com/products/ignite-ui-angular/angular/components/grid/row-adding) and [Tree Grid Row Adding](https://www.infragistics.com/products/ignite-ui-angular/angular/components/treegrid/row-adding).
3144

3245
_Note:_ That the new record is still added at the end of the data view, after the end-user submits it.
@@ -39,21 +52,26 @@ All notable changes for each version of this project will be documented in this
3952
this.treeGrid.beginAddRowByIndex(10, true); // spawns the add row UI to add a child for the row at index 10
4053
this.treeGrid.beginAddRowByIndex(null); // spawns the add row UI as the first record
4154
```
42-
43-
## 12.1.3
44-
45-
### New Features
46-
- `igxGrid`
4755
- Added `headerStyles` and `headerGroupStyles` inputs to the column component.
48-
Similar to `cellStyles` is exposes a way to bind CSS properties and style the grid headers.
56+
Similar to `cellStyles` is exposes a way to bind CSS properties and style the grid headers.
57+
- `igxTreeGrid`
58+
- Added `TreeGridMatchingRecordsOnlyFilteringStrategy`, which allows you to display only the records matching particular filtering condition without any trace for their parents.
59+
- `IgxSnackbarComponent`
60+
- Introduced new 'positionSettings' input which allows to define a custom animation and position.
61+
- `IgxToastComponent`
62+
- Introduced new 'positionSettings' input which allows to define a custom animation and position.
4963

50-
## 12.1.2
51-
- `igxGrid`
64+
### General
65+
- `igxGrid`, `igxHierarchicalGrid`, `igxTreeGrid`
66+
- 'oddRowCSS' and 'evenRowCSS' properties has been deprecated
5267
- The column formatter callback signature now accepts the row data as an additional argument:
53-
```typescript formatter(value: any, rowData?: any)```
54-
The `rowData` argument may be `undefined` in remote scenarios/applying the callback on filtering labels
55-
so make sure to check its availability.
68+
```typescript
69+
formatter(value: any, rowData?: any)
70+
```
71+
The `rowData` argument may be `undefined` in remote scenarios/applying the callback on filtering labels so make sure to check its availability.
72+
- `IgxForOf` - now takes margins into account when calculating the space that each element takes.
5673

74+
_Note:_ If your virtualized items contain margins, please calculate them into the `itemSize` value for the best possible initial virtualized state.
5775
- `IgxExcelExporterService`
5876
- 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.
5977

README.md

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -25,12 +25,10 @@ Ignite UI for Angular arrives with an extensive library of data visualizations t
2525

2626
Some of the Angular chart types included are: [Polar chart](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/polar-chart), [Pie chart](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/pie-chart), [Donut chart](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/donut-chart), [Bubble chart](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/bubble-chart), [Area chart](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/area-chart), [Treemap chart](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/treemap-chart), and many others. And if you look for [Angular financial charts](https://www.infragistics.com/products/ignite-ui-angular/angular/components/charts/types/stock-chart), with Ignite UI you can get the same features as the ones you come across with Google Finance and Yahoo Finance Charts.
2727

28-
### [**Install our VSCode Toolbox extension**](https://marketplace.visualstudio.com/items?itemName=Infragistics.igniteui-angular-toolbox)
29-
![](https://dl.infragistics.com/tools/extensions/angular-toolbox/toolbox.gif)
30-
### [**Install our VSCode tooltip extension**](https://marketplace.visualstudio.com/items?itemName=Infragistics.igniteui-angular-tooltips)
31-
![](https://dl.infragistics.com/tools/extensions/angular-tooltips/tooltip_preview.gif)
32-
33-
**IMPORTANT** The repository has been renamed from `igniteui-js-blocks` to `igniteui-angular`. Read more on our new [naming convention](https://www.infragistics.com/community/blogs/b/infragistics/posts/ignite-ui-github-repo-name-changes).
28+
### Build Apps with Ignite UI for Angular faster using our [App Builder](https://www.infragistics.com/products/indigo-design/app-builder)
29+
![5661 drag drop](https://user-images.githubusercontent.com/1472513/132676597-09eec222-42f7-40ff-bd0d-fe8b91fd0c1c.gif)
30+
### Generate your Angular code projects using the [App Builder](https://www.infragistics.com/products/indigo-design/app-builder)
31+
![0871 change-preview-code](https://user-images.githubusercontent.com/1472513/132676607-3851f308-416b-45d6-99bc-c34266b55c44.gif)
3432

3533
### Current List of Components Include:
3634

ROADMAP.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
## Going down the road
1515

1616
1. Angular Pivot Grid [#5700](https://github.com/IgniteUI/igniteui-angular/issues/5700)
17-
2. Grid Cell Merging
17+
2. Grid Cell Merging [#3514](https://github.com/IgniteUI/igniteui-angular/issues/3514)
1818
3. PDF Export feature on Angular Grid [#5696](https://github.com/IgniteUI/igniteui-angular/issues/5696)
1919
4. Themes: Move code to Sass modules [#9554](https://github.com/IgniteUI/igniteui-angular/issues/9554)
2020
5. Themes: Split themes and aid with Grid refactoring [#9556](https://github.com/IgniteUI/igniteui-angular/issues/9556)

projects/igniteui-angular/package.json

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -77,14 +77,14 @@
7777
"@igniteui/material-icons-extended": "^2.8.0"
7878
},
7979
"peerDependencies": {
80-
"@angular/common": "^12.1.1",
81-
"@angular/core": "^12.1.1",
82-
"@angular/animations": "^12.1.1",
83-
"@angular/forms": "^12.1.1",
80+
"@angular/common": "^12.2.0",
81+
"@angular/core": "^12.2.0",
82+
"@angular/animations": "^12.2.0",
83+
"@angular/forms": "^12.2.0",
8484
"web-animations-js": "^2.3.2"
8585
},
8686
"igxDevDependencies": {
87-
"@igniteui/angular-schematics": "~12.1.810"
87+
"@igniteui/angular-schematics": "~12.2.820"
8888
},
8989
"ng-update": {
9090
"migrations": "./migrations/migration-collection.json"

projects/igniteui-angular/src/lib/checkbox/checkbox.component.spec.ts

Lines changed: 33 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
import { Component, ViewChild } from '@angular/core';
22
import { fakeAsync, TestBed, tick, waitForAsync } from '@angular/core/testing';
3-
import { FormsModule } from '@angular/forms';
3+
import { FormBuilder, FormsModule, ReactiveFormsModule } from '@angular/forms';
44
import { By } from '@angular/platform-browser';
55
import { IgxRippleModule } from '../directives/ripple/ripple.directive';
66
import { IgxCheckboxComponent } from './checkbox.component';
@@ -22,9 +22,10 @@ describe('IgxCheckbox', () => {
2222
CheckboxExternalLabelComponent,
2323
CheckboxInvisibleLabelComponent,
2424
CheckboxDisabledTransitionsComponent,
25+
CheckboxFormGroupComponent,
2526
IgxCheckboxComponent
2627
],
27-
imports: [FormsModule, IgxRippleModule, NoopAnimationsModule]
28+
imports: [FormsModule, ReactiveFormsModule, IgxRippleModule, NoopAnimationsModule]
2829
})
2930
.compileComponents();
3031
}));
@@ -34,7 +35,7 @@ describe('IgxCheckbox', () => {
3435
fixture.detectChanges();
3536

3637
const checkbox = fixture.componentInstance.cb;
37-
const nativeCheckbox = fixture.debugElement.query(By.css('input')).nativeElement;
38+
const nativeCheckbox = checkbox.nativeCheckbox.nativeElement;
3839
const nativeLabel = checkbox.nativeLabel.nativeElement;
3940
const placeholderLabel = fixture.debugElement.query(By.css('.igx-checkbox__label')).nativeElement;
4041

@@ -69,7 +70,7 @@ describe('IgxCheckbox', () => {
6970
fixture.detectChanges();
7071

7172
expect(nativeCheckbox.checked).toBe(false);
72-
expect(checkboxInstance.checked).toBe(false);
73+
expect(checkboxInstance.checked).toBe(null);
7374

7475
testInstance.subscribed = true;
7576
checkboxInstance.name = 'my-checkbox';
@@ -85,6 +86,22 @@ describe('IgxCheckbox', () => {
8586
expect(checkboxInstance.name).toEqual('my-checkbox');
8687
}));
8788

89+
it('Initializes with form group', () => {
90+
const fixture = TestBed.createComponent(CheckboxFormGroupComponent);
91+
fixture.detectChanges();
92+
93+
const testInstance = fixture.componentInstance;
94+
const checkboxInstance = testInstance.cb;
95+
const form = testInstance.myForm;
96+
97+
form.setValue({ checkbox: true });
98+
expect(checkboxInstance.checked).toBe(true);
99+
100+
form.reset();
101+
102+
expect(checkboxInstance.checked).toBe(null);
103+
});
104+
88105
it('Initializes with external label', () => {
89106
const fixture = TestBed.createComponent(CheckboxExternalLabelComponent);
90107
const checkboxInstance = fixture.componentInstance.cb;
@@ -197,7 +214,7 @@ describe('IgxCheckbox', () => {
197214
fixture.detectChanges();
198215

199216
// Should not update
200-
expect(checkboxInstance.checked).toBe(false);
217+
expect(checkboxInstance.checked).toBe(null);
201218
expect(testInstance.subscribed).toBe(false);
202219
});
203220

@@ -398,3 +415,14 @@ class CheckboxInvisibleLabelComponent {
398415
class CheckboxDisabledTransitionsComponent {
399416
@ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent;
400417
}
418+
419+
@Component({
420+
template: `<form [formGroup]="myForm"><igx-checkbox #cb formControlName="checkbox">Form Group</igx-checkbox></form>`
421+
})
422+
class CheckboxFormGroupComponent {
423+
@ViewChild('cb', { static: true }) public cb: IgxCheckboxComponent;
424+
425+
public myForm = this.fb.group({ checkbox: [''] });
426+
427+
constructor(private fb: FormBuilder) {}
428+
}

projects/igniteui-angular/src/lib/checkbox/checkbox.component.ts

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -428,9 +428,7 @@ export class IgxCheckboxComponent implements ControlValueAccessor, EditorProvide
428428

429429
/** @hidden @internal */
430430
public writeValue(value: boolean) {
431-
if (typeof value === 'boolean') {
432-
this._checked = value;
433-
}
431+
this._checked = value;
434432
}
435433

436434
/** @hidden @internal */

projects/igniteui-angular/src/lib/core/styles/components/icon/_icon-theme.scss

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,14 +64,12 @@
6464
font-size: $igx-icon-font-size;
6565
color: --var($theme, 'color');
6666

67+
div,
6768
svg {
69+
display: block;
6870
width: inherit;
6971
height: inherit;
7072
fill: currentColor;
71-
72-
use {
73-
pointer-events: none;
74-
}
7573
}
7674
}
7775

projects/igniteui-angular/src/lib/core/styles/components/navbar/_navbar-theme.scss

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,6 +122,8 @@
122122
margin: $navbar-title-margin;
123123
flex-grow: 1;
124124
user-select: text;
125+
display: flex;
126+
flex-direction: row
125127
}
126128

127129
%igx-navbar-bundle {

projects/igniteui-angular/src/lib/data-operations/filtering-strategy.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -134,7 +134,7 @@ export class FormattedValuesFilteringStrategy extends FilteringStrategy {
134134
let value = resolveNestedPath(rec, fieldName);
135135

136136
value = column.formatter && this.shouldApplyFormatter(fieldName) ?
137-
column.formatter(value) : value && (isDate || isTime) ? parseDate(value) : value;
137+
column.formatter(value, rec) : value && (isDate || isTime) ? parseDate(value) : value;
138138

139139
return value;
140140
}

projects/igniteui-angular/src/lib/dialog/dialog.component.spec.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -345,7 +345,7 @@ describe('Dialog', () => {
345345
fix.detectChanges();
346346

347347
dialog.open();
348-
tick();
348+
tick(16);
349349
fix.detectChanges();
350350

351351
overlaydiv = document.getElementsByClassName(OVERLAY_MAIN_CLASS)[0];

0 commit comments

Comments
 (0)