Skip to content

Commit 55017cf

Browse files
committed
fix(pivotGrid): Cover additional cases for empty row dimension list. Add separate fill style and template.
1 parent b93db8e commit 55017cf

File tree

4 files changed

+35
-29
lines changed

4 files changed

+35
-29
lines changed

projects/igniteui-angular/src/lib/core/styles/components/grid/_grid-theme.scss

Lines changed: 6 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -3492,23 +3492,19 @@
34923492
}
34933493
}
34943494

3495-
.igx-grid__tbody-pivot-dimension {
3496-
> .igx-grid-thead__wrapper {
3495+
.igx-pivot-grid-row-filler__wrapper {
3496+
.igx-grid-thead__wrapper {
3497+
height: 100%;
34973498
border-bottom: initial;
3498-
}
34993499

3500-
.igx-grid-th {
3501-
height: 100%;
3500+
.igx-grid-th {
3501+
height: 100%;
3502+
}
35023503
}
35033504
}
35043505

35053506
%igx-grid__tbody-pivot-mrl-dimension {
3506-
> .igx-grid-thead__wrapper {
3507-
border-bottom: initial;
3508-
}
3509-
35103507
.igx-grid-th {
3511-
height: 100%;
35123508
border-bottom: none;
35133509
}
35143510
}

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

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -154,11 +154,8 @@
154154
[width]="rowDimensionWidthToPixels(dim)">
155155
</igx-pivot-row-dimension-content>
156156
</ng-template>
157-
<div *ngIf="remainingBottomSize > 0" class="igx-grid-thead__wrapper" [style.height.px]="remainingBottomSize" [style.width.px]="rowDimensionWidthToPixels(dim)">
158-
<div class="igx-grid-th"></div>
159-
</div>
157+
<ng-container *ngTemplateOutlet="emptyRowDimensionFill; context: { $implicit: this, widthPx: rowDimensionWidthToPixels(dim) }"></ng-container>
160158
</div>
161-
162159
</ng-template>
163160

164161
<ng-template #horizontalRowDimensionsTemplate>
@@ -175,20 +172,21 @@
175172
<igx-pivot-row-dimension-mrl-row [rowIndex]="rowIndex" [rowGroup]="rowGroup" [groupedData]="groupedData" [style.height.px]="renderedRowHeight * rowGroup.length"></igx-pivot-row-dimension-mrl-row>
176173
</ng-template>
177174
</ng-container>
178-
<div *ngIf="remainingBottomSize > 0" class="igx-grid-thead__wrapper" [style.height.px]="remainingBottomSize" [style.width.px]="pivotRowWidths">
179-
<div class="igx-grid-th"></div>
180-
</div>
175+
<ng-container *ngTemplateOutlet="emptyRowDimensionFill; context: { $implicit: this, widthPx: pivotRowWidths }"></ng-container>
181176
</div>
182177
</ng-template>
183178

184179
<ng-template #emptyRowDimensionsTemplate>
185-
<div tabindex="0" *ngIf="columnDimensions.length > 0 || values.length > 0" #rowDimensionContainer role="rowgroup" class="igx-grid__tbody-pivot-dimension" (focus)="navigation.focusTbody($event)" (keydown)="navigation.handleNavigation($event)">
186-
<igx-pivot-row-dimension-content role="row" class="igx-grid-thead" [grid]="this"
187-
[dimension]="emptyRowDimension"
188-
[rootDimension]="emptyRowDimension"
189-
[rowIndex]="0" [rowData]="dataView[0]"
190-
[width]="rowDimensionWidthToPixels(emptyRowDimension)">
191-
</igx-pivot-row-dimension-content>
180+
<div tabindex="0" #rowDimensionContainer role="rowgroup" class="igx-grid__tbody-pivot-dimension" (focus)="navigation.focusTbody($event)" (keydown)="navigation.handleNavigation($event)">
181+
@if ((columnDimensions.length > 0 || values.length > 0) && data.length > 0) {
182+
<igx-pivot-row-dimension-content role="row" class="igx-grid-thead" [grid]="this"
183+
[dimension]="emptyRowDimension"
184+
[rootDimension]="emptyRowDimension"
185+
[rowIndex]="0" [rowData]="dataView[0]"
186+
[width]="rowDimensionWidthToPixels(emptyRowDimension)">
187+
</igx-pivot-row-dimension-content>
188+
}
189+
<ng-container *ngTemplateOutlet="emptyRowDimensionFill; context: { $implicit: this, widthPx: rowDimensionWidthToPixels(emptyRowDimension) }"></ng-container>
192190
</div>
193191
</ng-template>
194192

@@ -198,6 +196,17 @@
198196
</span>
199197
</ng-template>
200198

199+
<ng-template #emptyRowDimensionFill let-width="widthPx">
200+
@if (emptyBottomSize > 0) {
201+
<div class="igx-pivot-grid-row-filler__wrapper" [style.height.px]="emptyBottomSize" [style.width.px]="width">
202+
<!-- Reuse header styles to keep visuals consistent -->
203+
<div class="igx-grid-thead__wrapper">
204+
<div class="igx-grid-th"></div>
205+
</div>
206+
</div>
207+
}
208+
</ng-template>
209+
201210
<div [hidden]="true">
202211
<igx-grid-excel-style-filtering [maxHeight]="excelStyleFilterMaxHeight" [minHeight]="excelStyleFilterMinHeight">
203212
<div igxExcelStyleColumnOperations [hidden]="true"></div>

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1151,7 +1151,7 @@ export class IgxPivotGridComponent extends IgxGridBaseDirective implements OnIni
11511151
return false;
11521152
}
11531153

1154-
protected get remainingBottomSize() {
1154+
protected get emptyBottomSize() {
11551155
return this.totalHeight - (<any>this.verticalScroll).scrollComponent.size;
11561156
}
11571157

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

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -227,8 +227,9 @@
227227
</div>
228228
</ng-container>
229229

230-
<div class="igx-grid__tr igx-grid__tr-header-row" role="row" [style.width.px]="grid.pivotRowWidths - 1">
231-
<ng-container *ngIf="grid.pivotUI.showRowHeaders && grid.visibleRowDimensions.length > 0">
230+
<!-- Pivot Row Headers only area. If there are defined row dimension, but data is missing so no visibleRowDimensions are calculated, will show just empty area. -->
231+
<ng-container *ngIf="grid.pivotUI.showRowHeaders && grid.rowDimensions.length > 0">
232+
<div class="igx-grid__tr igx-grid__tr-header-row" role="row" [style.width.px]="grid.pivotRowWidths - 1">
232233
<ng-container *ngFor="let dim of grid.visibleRowDimensions; index as colIndex;last as isLast">
233234
<igx-pivot-row-header-group #rowDimensionHeaders *ngIf="getRowDimensionColumn(dim) as dimCol"
234235
[ngClass]="dimCol.headerGroupClasses"
@@ -241,8 +242,8 @@
241242
[rowIndex]="-1" >
242243
</igx-pivot-row-header-group>
243244
</ng-container>
244-
</ng-container>
245-
</div>
245+
</div>
246+
</ng-container>
246247

247248
<!-- Pinned columns collection from the start -->
248249
<ng-container *ngIf="pinnedColumnCollection.length && grid.isPinningToStart">

0 commit comments

Comments
 (0)