Skip to content

Commit d5e756e

Browse files
authored
fix(igxGrid): Merge user-set pin config with default one. (#16762)
1 parent cb1094b commit d5e756e

2 files changed

Lines changed: 24 additions & 2 deletions

File tree

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2272,7 +2272,7 @@ export abstract class IgxGridBaseDirective implements GridType,
22722272
if (value !== this._pinning) {
22732273
this.resetCaches();
22742274
}
2275-
this._pinning = value;
2275+
this._pinning = Object.assign({}, this._pinning, value);
22762276
}
22772277

22782278
/**

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

Lines changed: 23 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,26 @@ describe('IgxGrid - Column Pinning #grid', () => {
10111011
expect(rootMRLGroups.map(x => x.visibleIndex)).toEqual([0, 2, 1])
10121012
}));
10131013
});
1014+
1015+
describe('Pinning Configuration', () => {
1016+
let fix;
1017+
let grid: IgxGridComponent;
1018+
1019+
beforeEach(() => {
1020+
fix = TestBed.createComponent(PinningComponent);
1021+
grid = fix.componentInstance.grid;
1022+
});
1023+
1024+
it('should merge partial user configuration with default values', () => {
1025+
// Default is { columns: ColumnPinningPosition.Start }
1026+
// Set only rows property
1027+
grid.pinning = { rows: RowPinningPosition.Bottom };
1028+
fix.detectChanges();
1029+
1030+
// Should merge, keeping default columns value
1031+
expect(grid.pinning.columns).toBe(ColumnPinningPosition.Start);
1032+
expect(grid.pinning.rows).toBe(RowPinningPosition.Bottom);
1033+
});
1034+
});
1035+
10141036
});

0 commit comments

Comments
 (0)