Skip to content

Commit 5ab08a8

Browse files
MKirovaMKirova
authored andcommitted
chore(*): In case cell is merged cell placeholder, do not render content.
1 parent a7970d1 commit 5ab08a8

File tree

4 files changed

+30
-10
lines changed

4 files changed

+30
-10
lines changed

projects/igniteui-angular/src/lib/grids/cell.component.html

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,8 @@
5757
<img [src]="value" [alt]="value | igxCellImageAlt" />
5858
}
5959
</ng-template>
60+
61+
<ng-template #emptyCell></ng-template>
6062
<ng-template #addRowCell let-cell="cell">
6163
@if (column.dataType !== 'boolean' || (column.dataType === 'boolean' && this.formatter)) {
6264
<div

projects/igniteui-angular/src/lib/grids/cell.component.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -144,6 +144,13 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellT
144144
@Input()
145145
public column: ColumnType;
146146

147+
/**
148+
* @hidden
149+
* @internal
150+
*/
151+
@Input()
152+
public isPlaceholder: boolean;
153+
147154

148155
/**
149156
* @hidden
@@ -286,6 +293,9 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellT
286293
* @memberof IgxGridCellComponent
287294
*/
288295
public get template(): TemplateRef<any> {
296+
if (this.isPlaceholder) {
297+
return this.emptyCellTemplate;
298+
}
289299
if (this.editMode && this.formGroup) {
290300
const inlineEditorTemplate = this.column.inlineEditorTemplate;
291301
return inlineEditorTemplate ? inlineEditorTemplate : this.inlineEditorTemplate;
@@ -704,6 +714,9 @@ export class IgxGridCellComponent implements OnInit, OnChanges, OnDestroy, CellT
704714
@ViewChild('defaultCell', { read: TemplateRef, static: true })
705715
protected defaultCellTemplate: TemplateRef<any>;
706716

717+
@ViewChild('emptyCell', { read: TemplateRef, static: true })
718+
protected emptyCellTemplate: TemplateRef<any>;
719+
707720
@ViewChild('defaultPinnedIndicator', { read: TemplateRef, static: true })
708721
protected defaultPinnedIndicator: TemplateRef<any>;
709722

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

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -28,11 +28,11 @@
2828
@if (pinnedColumns.length > 0 && grid.isPinningToStart) {
2929
@for (col of pinnedColumns | igxNotGrouped; track trackPinnedColumn(col)) {
3030
@if (this.hasMergedCells) {
31-
<div [style.height.px]=" this.metaData.cellMergeMeta.get(col.field)?.rowSpan > 1 ? getRowHeight() : null"
31+
<div [style.height.px]=" this.metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1 ? getRowHeight() : null"
3232
class="igx-grid__mrl-block"
33-
[style.visibility]="this.metaData.cellMergeMeta.get(col.field)?.root ? 'hidden' : 'visible'"
33+
[style.visibility]="this.metaData?.cellMergeMeta.get(col.field)?.root ? 'hidden' : 'visible'"
3434
[ngStyle]="{
35-
'grid-template-rows': this.metaData.cellMergeMeta.get(col.field)?.rowSpan > 1 ? this.getMergeCellSpan(col) : null
35+
'grid-template-rows': this.metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1 ? this.getMergeCellSpan(col) : null
3636
}">
3737
<ng-container *ngTemplateOutlet="col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)"></ng-container>
3838
</div>
@@ -44,11 +44,11 @@
4444
}
4545
<ng-template igxGridFor let-col [igxGridForOf]="unpinnedColumns | igxNotGrouped" [igxForScrollContainer]="grid.parentVirtDir" [igxForScrollOrientation]="'horizontal'" [igxForContainerSize]="grid.unpinnedWidth" [igxForSizePropName]="'calcPixelWidth'" [igxForTrackBy]="grid.trackColumnChanges" #igxDirRef>
4646
@if (this.hasMergedCells) {
47-
<div [style.height.px]=" this.metaData.cellMergeMeta.get(col.field)?.rowSpan > 1 ? getRowHeight() : null"
47+
<div [style.height.px]=" this.metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1 ? getRowHeight() : null"
4848
class="igx-grid__mrl-block"
49-
[style.visibility]="this.metaData.cellMergeMeta.get(col.field)?.root ? 'hidden' : 'visible'"
49+
[style.visibility]="this.metaData?.cellMergeMeta.get(col.field)?.root ? 'hidden' : 'visible'"
5050
[ngStyle]="{
51-
'grid-template-rows': this.metaData.cellMergeMeta.get(col.field)?.rowSpan > 1 ? this.getMergeCellSpan(col) : null
51+
'grid-template-rows': this.metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1 ? this.getMergeCellSpan(col) : null
5252
}">
5353
<ng-container *ngTemplateOutlet="col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)"></ng-container>
5454
</div>
@@ -61,11 +61,11 @@
6161
@if (pinnedColumns.length > 0 && !grid.isPinningToStart) {
6262
@for (col of pinnedColumns | igxNotGrouped; track trackPinnedColumn(col)) {
6363
@if (this.hasMergedCells) {
64-
<div [style.height.px]=" this.metaData.cellMergeMeta.get(col.field)?.rowSpan > 1 ? getRowHeight() : null"
64+
<div [style.height.px]=" this.metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1 ? getRowHeight() : null"
6565
class="igx-grid__mrl-block"
66-
[style.visibility]="this.metaData.cellMergeMeta.get(col.field)?.root ? 'hidden' : 'visible'"
66+
[style.visibility]="this.metaData?.cellMergeMeta.get(col.field)?.root ? 'hidden' : 'visible'"
6767
[ngStyle]="{
68-
'grid-template-rows': this.metaData.cellMergeMeta.get(col.field)?.rowSpan > 1 ? this.getMergeCellSpan(col) : null
68+
'grid-template-rows': this.metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1 ? this.getMergeCellSpan(col) : null
6969
}">
7070
<ng-container *ngTemplateOutlet="col.visibleIndex === 0 && grid.hasDetails ? expandableCellTemplate : cellTemplate; context: getContext(col, this)"></ng-container>
7171
</div>
@@ -135,6 +135,7 @@
135135
[class.igx-grid__td--merged]="metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1"
136136
[class.igx-grid__td--merged-selected]="isSelectionRoot(col)"
137137
[class.igx-grid__td--merged-hovered]="isHoveredRoot(col)"
138+
[isPlaceholder]="!!this.metaData?.cellMergeMeta.get(col.field)?.root"
138139
class="igx-grid__td igx-grid__td--fw"
139140
[class.igx-grid__td--edited]="key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row"
140141
[class.igx-grid__td--pinned]="col.pinned"
@@ -170,6 +171,10 @@
170171
<ng-template #expandableCellTemplate let-col>
171172
<igx-expandable-grid-cell
172173
[class.igx-grid__td--merged]="metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1"
174+
[class.igx-grid__td--merged]="metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1"
175+
[class.igx-grid__td--merged-selected]="isSelectionRoot(col)"
176+
[class.igx-grid__td--merged-hovered]="isHoveredRoot(col)"
177+
[isPlaceholder]="!!this.metaData?.cellMergeMeta.get(col.field)?.root"
173178
[class.igx-grid__td--pinned]="col.pinned"
174179
class="igx-grid__td igx-grid__td--fw igx-grid__td--tree-cell"
175180
[class.igx-grid__td--edited]="key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row"

projects/igniteui-angular/src/lib/grids/row.directive.ts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -124,7 +124,7 @@ export class IgxRowDirective implements DoCheck, AfterViewInit, OnDestroy {
124124
}
125125

126126
public get hasMergedCells(): boolean {
127-
return this.grid.isRecordMerged(this.metaData);
127+
return this.grid.columnsToMerge.length > 0;
128128
}
129129

130130
/**

0 commit comments

Comments
 (0)