Skip to content

Commit 3137d76

Browse files
authored
Merge pull request #16467 from IgniteUI/mkirova/fix-16464
fix(igxGrid): Merge user-set pin config with default one.
1 parent a2aeb97 commit 3137d76

2 files changed

Lines changed: 26 additions & 2 deletions

File tree

projects/igniteui-angular/grids/grid/src/grid-base.directive.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2278,7 +2278,8 @@ export abstract class IgxGridBaseDirective implements GridType,
22782278
if (value !== this._pinning) {
22792279
this.resetCaches();
22802280
}
2281-
this._pinning = value;
2281+
2282+
this._pinning = Object.assign({}, this._pinning, value);
22822283
}
22832284

22842285
/**

projects/igniteui-angular/grids/grid/src/grid.pinning.spec.ts

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import { TestBed, fakeAsync, tick, waitForAsync } from '@angular/core/testing';
22
import { By } from '@angular/platform-browser';
33
import { NoopAnimationsModule } from '@angular/platform-browser/animations';
4-
import { GridSelectionMode, IgxGridHeaderRowComponent, IgxGridMRLNavigationService, IPinningConfig } from 'igniteui-angular/grids/core';
4+
import { GridSelectionMode, IgxGridHeaderRowComponent, IgxGridMRLNavigationService, IPinningConfig, RowPinningPosition } from 'igniteui-angular/grids/core';
55
import { wait, UIInteractions } from '../../../test-utils/ui-interactions.spec';
66
import {
77
CELL_PINNED_CLASS,
@@ -1011,4 +1011,27 @@ describe('IgxGrid - Column Pinning #grid', () => {
10111011
expect(rootMRLGroups.map(x => x.visibleIndex)).toEqual([0, 2, 1])
10121012
}));
10131013
});
1014+
1015+
1016+
describe('Pinning Configuration', () => {
1017+
let fix;
1018+
let grid: IgxGridComponent;
1019+
1020+
beforeEach(() => {
1021+
fix = TestBed.createComponent(PinningComponent);
1022+
grid = fix.componentInstance.grid;
1023+
});
1024+
1025+
it('should merge partial user configuration with default values', () => {
1026+
// Default is { columns: ColumnPinningPosition.Start }
1027+
// Set only rows property
1028+
grid.pinning = { rows: RowPinningPosition.Bottom };
1029+
fix.detectChanges();
1030+
1031+
// Should merge, keeping default columns value
1032+
expect(grid.pinning.columns).toBe(ColumnPinningPosition.Start);
1033+
expect(grid.pinning.rows).toBe(RowPinningPosition.Bottom);
1034+
});
1035+
});
1036+
10141037
});

0 commit comments

Comments
 (0)