Skip to content

Commit cea46eb

Browse files
authored
Merge pull request #14379 from IgniteUI/iminchev/pivot-row-header-kb-sorting
feat(pivotGrid): row dimension header sort with kb interaction
2 parents a2c5097 + 4d65da5 commit cea46eb

File tree

2 files changed

+18
-1
lines changed

2 files changed

+18
-1
lines changed

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

+17-1
Original file line numberDiff line numberDiff line change
@@ -5,9 +5,9 @@ import { HEADER_KEYS, ROW_COLLAPSE_KEYS, ROW_EXPAND_KEYS } from '../../core/util
55
import { PivotUtil } from './pivot-util';
66
import { IgxPivotRowDimensionMrlRowComponent } from './pivot-row-dimension-mrl-row.component';
77
import { IMultiRowLayoutNode } from '../public_api';
8+
import { SortingDirection } from '../../data-operations/sorting-strategy';
89
import { take, timeout } from 'rxjs';
910

10-
1111
@Injectable()
1212
export class IgxPivotGridNavigationService extends IgxGridNavigationService {
1313
public override grid: IgxPivotGridComponent;
@@ -174,6 +174,22 @@ export class IgxPivotGridNavigationService extends IgxGridNavigationService {
174174
layout: null
175175
}
176176

177+
if (ctrl) {
178+
const dimIndex = this.activeNode.column;
179+
const dim = this.grid.visibleRowDimensions[dimIndex];
180+
if (this.activeNode.row === -1) {
181+
if (key.includes('down') || key.includes('up')) {
182+
let newSortDirection = SortingDirection.None;
183+
if (key.includes('down')) {
184+
newSortDirection = (dim.sortDirection === SortingDirection.Desc) ? SortingDirection.None : SortingDirection.Desc;
185+
} else if (key.includes('up')) {
186+
newSortDirection = (dim.sortDirection === SortingDirection.Asc) ? SortingDirection.None : SortingDirection.Asc;
187+
}
188+
this.grid.sortDimension(dim, newSortDirection);
189+
return;
190+
}
191+
}
192+
}
177193
if ((key.includes('left') || key === 'home') && this.activeNode.column > 0) {
178194
newActiveNode.column = ctrl || key === 'home' ? 0 : this.activeNode.column - 1;
179195
}

projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.html

+1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
(pointerdown)="pointerdown($event)"
2424
[igxColumnMovingDrop]="column"
2525
[column]="column"
26+
(keydown)="grid.navigation.headerNavigation($event)"
2627
>
2728
</igx-pivot-row-dimension-header>
2829
<span *ngIf="!column.columnGroup && column.resizable" class="igx-grid-th__resize-handle"

0 commit comments

Comments
 (0)