From 1b6ecd0fd72bfc50825e1ca311ecbf5302902965 Mon Sep 17 00:00:00 2001 From: IMinchev64 Date: Wed, 12 Jun 2024 16:41:25 +0300 Subject: [PATCH 1/5] feat(pivotGrid): row dimension header sort with kb interaction --- .../pivot-grid/pivot-grid-navigation.service.ts | 17 +++++++++++++++++ ...ot-row-dimension-header-group.component.html | 1 + 2 files changed, 18 insertions(+) diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts index c34d1e2d342..7103d6e2610 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts @@ -4,6 +4,7 @@ import { IgxPivotGridComponent } from './pivot-grid.component'; import { HEADER_KEYS } from '../../core/utils'; import { IgxPivotRowDimensionMrlRowComponent } from './pivot-row-dimension-mrl-row.component'; import { IMultiRowLayoutNode } from '../public_api'; +import { SortingDirection } from '../../data-operations/sorting-strategy'; @Injectable() export class IgxPivotGridNavigationService extends IgxGridNavigationService { @@ -127,6 +128,22 @@ export class IgxPivotGridNavigationService extends IgxGridNavigationService { layout: null } + if (ctrl) { + const dimIndex = this.activeNode.column; + const dim = this.grid.rowDimensions[dimIndex]; + if (dimIndex === 0 && this.activeNode.row === -1) { + if (key.includes('down') || key.includes('up')) { + let newSortDirection = SortingDirection.None; + if (key.includes('down')) { + newSortDirection = (dim.sortDirection === SortingDirection.Desc) ? SortingDirection.None : SortingDirection.Desc; + } else if (key.includes('up')) { + newSortDirection = (dim.sortDirection === SortingDirection.Asc) ? SortingDirection.None : SortingDirection.Asc; + } + this.grid.sortDimension(dim, newSortDirection); + return; + } + } + } if ((key.includes('left') || key === 'home') && this.activeNode.column > 0) { newActiveNode.column = ctrl || key === 'home' ? 0 : this.activeNode.column - 1; } diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.html b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.html index 6164bf97f01..5565f2dede6 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.html +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-row-dimension-header-group.component.html @@ -20,6 +20,7 @@ (pointerdown)="pointerdown($event)" [igxColumnMovingDrop]="column" [column]="column" + (keydown)="grid.navigation.headerNavigation($event)" > Date: Wed, 3 Jul 2024 13:30:58 +0300 Subject: [PATCH 2/5] fix(pivotGrid): kb header sort with horizontal layout --- .../src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts index 7103d6e2610..c41c269d7a1 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts @@ -5,6 +5,7 @@ import { HEADER_KEYS } from '../../core/utils'; import { IgxPivotRowDimensionMrlRowComponent } from './pivot-row-dimension-mrl-row.component'; import { IMultiRowLayoutNode } from '../public_api'; import { SortingDirection } from '../../data-operations/sorting-strategy'; +import { PivotUtil } from './pivot-util'; @Injectable() export class IgxPivotGridNavigationService extends IgxGridNavigationService { @@ -130,7 +131,8 @@ export class IgxPivotGridNavigationService extends IgxGridNavigationService { if (ctrl) { const dimIndex = this.activeNode.column; - const dim = this.grid.rowDimensions[dimIndex]; + const flatRowDImensions = PivotUtil.flatten(this.grid.rowDimensions) + const dim = flatRowDImensions[dimIndex]; if (dimIndex === 0 && this.activeNode.row === -1) { if (key.includes('down') || key.includes('up')) { let newSortDirection = SortingDirection.None; From b7c4fd7df284ec9b6f52460129ca7afedea46fd2 Mon Sep 17 00:00:00 2001 From: IMinchev64 Date: Wed, 3 Jul 2024 13:31:35 +0300 Subject: [PATCH 3/5] chore(*): remove redundant check --- .../src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts index c41c269d7a1..123c68fe264 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts @@ -133,7 +133,7 @@ export class IgxPivotGridNavigationService extends IgxGridNavigationService { const dimIndex = this.activeNode.column; const flatRowDImensions = PivotUtil.flatten(this.grid.rowDimensions) const dim = flatRowDImensions[dimIndex]; - if (dimIndex === 0 && this.activeNode.row === -1) { + if (this.activeNode.row === -1) { if (key.includes('down') || key.includes('up')) { let newSortDirection = SortingDirection.None; if (key.includes('down')) { From b9aa4d1b1711fd3f259b046e209b9408816a5edb Mon Sep 17 00:00:00 2001 From: IMinchev64 Date: Fri, 5 Jul 2024 12:02:34 +0300 Subject: [PATCH 4/5] fix(pivotGrid): use visibleRowDImensions and not all rowDimensions --- .../src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts index 123c68fe264..4244cc4faf0 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts @@ -131,8 +131,8 @@ export class IgxPivotGridNavigationService extends IgxGridNavigationService { if (ctrl) { const dimIndex = this.activeNode.column; - const flatRowDImensions = PivotUtil.flatten(this.grid.rowDimensions) - const dim = flatRowDImensions[dimIndex]; + const flatRowDimensions = PivotUtil.flatten(this.grid.visibleRowDimensions) + const dim = flatRowDimensions[dimIndex]; if (this.activeNode.row === -1) { if (key.includes('down') || key.includes('up')) { let newSortDirection = SortingDirection.None; From 4d65da5c8c1b9f037fc06a041bbb25e7a84adc89 Mon Sep 17 00:00:00 2001 From: IMinchev64 Date: Fri, 5 Jul 2024 15:00:00 +0300 Subject: [PATCH 5/5] fix(pivotGrid): remove flattening of visibleRowDimensions --- .../src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts index b3950e9dfc9..c6624cc2c20 100644 --- a/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts +++ b/projects/igniteui-angular/src/lib/grids/pivot-grid/pivot-grid-navigation.service.ts @@ -6,7 +6,6 @@ import { PivotUtil } from './pivot-util'; import { IgxPivotRowDimensionMrlRowComponent } from './pivot-row-dimension-mrl-row.component'; import { IMultiRowLayoutNode } from '../public_api'; import { SortingDirection } from '../../data-operations/sorting-strategy'; -import { PivotUtil } from './pivot-util'; import { take, timeout } from 'rxjs'; @Injectable() @@ -177,8 +176,7 @@ export class IgxPivotGridNavigationService extends IgxGridNavigationService { if (ctrl) { const dimIndex = this.activeNode.column; - const flatRowDimensions = PivotUtil.flatten(this.grid.visibleRowDimensions) - const dim = flatRowDimensions[dimIndex]; + const dim = this.grid.visibleRowDimensions[dimIndex]; if (this.activeNode.row === -1) { if (key.includes('down') || key.includes('up')) { let newSortDirection = SortingDirection.None;