Skip to content

Commit 6f6714c

Browse files
authored
Merge branch '16.1.x' into mkirova/fix-14116-16.1.x
2 parents 0d03ebb + ca2a867 commit 6f6714c

File tree

5 files changed

+34
-6
lines changed

5 files changed

+34
-6
lines changed

projects/igniteui-angular/src/lib/grids/common/crud.service.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -74,6 +74,7 @@ export class IgxAddRow extends IgxEditRow {
7474
const args = super.createEditEventArgs(includeNewValue, event);
7575
args.oldValue = null;
7676
args.isAddRow = true;
77+
args.rowData = this.newData ?? this.data;
7778
return args;
7879
}
7980

projects/igniteui-angular/src/lib/grids/grid/grid-row-editing.spec.ts

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing';
33
import { By } from '@angular/platform-browser';
44
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
55
import { IgxGridComponent } from './grid.component';
6-
import { IGridEditEventArgs, IGridEditDoneEventArgs } from '../common/events';
6+
import { IGridEditDoneEventArgs, IGridEditEventArgs,IRowDataEventArgs } from '../common/events';
77
import { IgxColumnComponent } from '../columns/column.component';
88
import { DisplayDensity } from '../../core/density';
99
import { UIInteractions, wait } from '../../test-utils/ui-interactions.spec';
@@ -292,8 +292,9 @@ describe('IgxGrid - Row Editing #grid', () => {
292292
expect(grid.rowEditDone.emit).toHaveBeenCalledWith(rowDoneArgs);
293293
});
294294

295-
it('Emit rowAdd event with proper arguments', () => {
295+
it('Emit rowAdd and rowAdded event with proper arguments', () => {
296296
spyOn(grid.rowAdd, 'emit').and.callThrough();
297+
spyOn(grid.rowAdded, 'emit').and.callThrough();
297298
// start add row
298299
grid.beginAddRowById(null);
299300
fix.detectChanges();
@@ -328,7 +329,14 @@ describe('IgxGrid - Row Editing #grid', () => {
328329
owner: grid,
329330
isAddRow: true
330331
}
332+
333+
const rowAddedArgs: IRowDataEventArgs = {
334+
data: { ProductID: generatedId, ProductName: "NewValue"},
335+
primaryKey: generatedId,
336+
owner: grid
337+
};
331338
expect(grid.rowAdd.emit).toHaveBeenCalledWith(rowAddArgs);
339+
expect(grid.rowAdded.emit).toHaveBeenCalledWith(rowAddedArgs);
332340
});
333341

334342
it('Should display the banner below the edited row if it is not the last one', () => {

projects/igniteui-angular/src/lib/grids/hierarchical-grid/hierarchical-grid.spec.ts

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1015,6 +1015,19 @@ describe('Basic IgxHierarchicalGrid #hGrid', () => {
10151015

10161016
expect(fixture.componentInstance.childGridRef.elementRef.nativeElement).toEqual(child1Grid.nativeElement);
10171017
});
1018+
1019+
it('should update columns property of row islands on columns change.', fakeAsync(() => {
1020+
1021+
expect(hierarchicalGrid.childLayoutList.first.columns.length).toEqual(2, 'Initial columns length should be 2');
1022+
expect(hierarchicalGrid.childLayoutList.first.columnList.length).toEqual(2, 'Initial columnList length should be 2');
1023+
1024+
fixture.componentInstance.toggleColumns = false;
1025+
fixture.detectChanges();
1026+
tick();
1027+
1028+
expect(hierarchicalGrid.childLayoutList.first.columns.length).toEqual(0, 'Columns length should be 0 after toggle');
1029+
expect(hierarchicalGrid.childLayoutList.first.columnList.length).toEqual(0, 'ColumnList length should be 0 after toggle');
1030+
}));
10181031
});
10191032

10201033
describe('IgxHierarchicalGrid Children Sizing #hGrid', () => {
@@ -1867,8 +1880,8 @@ export class IgxHierarchicalGridTestBaseComponent {
18671880
<igx-column field="ID"></igx-column>
18681881
<igx-column field="ProductName"></igx-column>
18691882
<igx-row-island [key]="'childData'" [autoGenerate]="false" [height]="height" #rowIsland1>
1870-
<igx-column field="ID"></igx-column>
1871-
<igx-column field="ProductName"></igx-column>
1883+
<igx-column field="ID" *ngIf="toggleColumns"></igx-column>
1884+
<igx-column field="ProductName" *ngIf="toggleColumns"></igx-column>
18721885
</igx-row-island>
18731886
<igx-row-island [key]="'childData2'" [autoGenerate]="false" [height]="height" #rowIsland2>
18741887
<igx-column field="Col1"></igx-column>
@@ -1877,12 +1890,13 @@ export class IgxHierarchicalGridTestBaseComponent {
18771890
</igx-row-island>
18781891
</igx-hierarchical-grid>`,
18791892
standalone: true,
1880-
imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent]
1893+
imports: [IgxHierarchicalGridComponent, IgxColumnComponent, IgxRowIslandComponent, NgIf]
18811894
})
18821895
export class IgxHierarchicalGridMultiLayoutComponent extends IgxHierarchicalGridTestBaseComponent {
18831896
@ViewChild('rowIsland1', { read: IgxRowIslandComponent, static: true }) public rowIsland1: IgxRowIslandComponent;
18841897
@ViewChild('rowIsland2', { read: IgxRowIslandComponent, static: true }) public override rowIsland2: IgxRowIslandComponent;
18851898
public height = '100px';
1899+
public toggleColumns = true;
18861900
}
18871901

18881902
@Component({

projects/igniteui-angular/src/lib/grids/hierarchical-grid/row-island.component.ts

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -400,6 +400,7 @@ export class IgxRowIslandComponent extends IgxHierarchicalGridBaseDirective
400400
return false;
401401
});
402402
this._childColumns = topCols;
403+
this.updateColumns(this._childColumns);
403404
this.rowIslandAPI.getChildGrids().forEach((grid: GridType) => {
404405
grid.createColumnsList(this._childColumns);
405406
if (!document.body.contains(grid.nativeElement)) {

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid.component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2033,18 +2033,22 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
20332033
const separator = this.pivotKeys.columnDimensionSeparator;
20342034
const dataArr = fields.map(x => x.split(separator)).sort(x => x.length);
20352035
const hierarchy = new Map<string, any>();
2036+
const columnDimensions = PivotUtil.flatten(this.columnDimensions);
20362037
dataArr.forEach(arr => {
20372038
let currentHierarchy = hierarchy;
20382039
const path = [];
2040+
let index = 0;
20392041
for (const val of arr) {
20402042
path.push(val);
20412043
const newPath = path.join(separator);
20422044
let targetHierarchy = currentHierarchy.get(newPath);
20432045
if (!targetHierarchy) {
2044-
currentHierarchy.set(newPath, { value: newPath, expandable: !!this.columnDimensions[0].childLevel, children: new Map<string, any>(), dimension: this.columnDimensions[0] });
2046+
const currentColumnDimension = columnDimensions[index];
2047+
currentHierarchy.set(newPath, { value: newPath, expandable: !!currentColumnDimension.childLevel, children: new Map<string, any>(), dimension: currentColumnDimension });
20452048
targetHierarchy = currentHierarchy.get(newPath);
20462049
}
20472050
currentHierarchy = targetHierarchy.children;
2051+
index++;
20482052
}
20492053
});
20502054
return hierarchy;

0 commit comments

Comments
 (0)