Skip to content

Commit e168c3a

Browse files
MKirovaMKirova
authored andcommitted
chore(*): Add integration with pinning.
1 parent aca57ee commit e168c3a

File tree

6 files changed

+29
-6
lines changed

6 files changed

+29
-6
lines changed

projects/igniteui-angular/src/lib/data-operations/merge-strategy.ts

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,7 +31,17 @@ export class DefaultMergeStrategy implements IGridMergeStrategy {
3131
let prev = null;
3232
let index = 0;
3333
for (const rec of data) {
34+
3435
const recData = result[index];
36+
// if this is some special record type - add and skip merging
37+
if (rec.ghostRecord) {
38+
if(!recData) {
39+
result.push(rec);
40+
}
41+
prev = null;
42+
index++;
43+
continue;
44+
}
3545
let recToUpdateData = recData ?? { recordRef: rec, cellMergeMeta: new Map<string, IMergeByResult>() };
3646
recToUpdateData.cellMergeMeta.set(field, { rowSpan: 1 });
3747
if (prev && comparer(prev.recordRef, recToUpdateData.recordRef, field)) {

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3668,7 +3668,11 @@ export abstract class IgxGridBaseDirective implements GridType,
36683668

36693669
public getMergeCellOffset(rec) {
36703670
const index = this.verticalScrollContainer.igxForOf.indexOf(rec);
3671-
return -(this.verticalScrollContainer.scrollPosition - this.verticalScrollContainer.getScrollForIndex(index));
3671+
let offset = this.verticalScrollContainer.scrollPosition - this.verticalScrollContainer.getScrollForIndex(index);
3672+
if (this.hasPinnedRecords && this.isRowPinningToTop) {
3673+
offset -= this.pinnedRowHeight;
3674+
}
3675+
return -offset;
36723676
}
36733677

36743678
/**

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -967,7 +967,7 @@ export class IgxGridComponent extends IgxGridBaseDirective implements GridType,
967967
id: null
968968
},
969969
disabled: this.isGhostRecord(rowData),
970-
metaData: rowData
970+
metaData: this.isRecordMerged(rowData) ? rowData : null
971971
};
972972
}
973973

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -611,15 +611,17 @@ export class IgxRowDirective implements DoCheck, AfterViewInit, OnDestroy {
611611
protected getMergeCellSpan(col: ColumnType){
612612
const rowCount = this.metaData.cellMergeMeta.get(col.field).rowSpan;
613613
let sizeSpans = "";
614-
for (let index = this.index; index < this.index + rowCount; index++) {
614+
const indexInData = this.grid.verticalScrollContainer.igxForOf.indexOf(this.metaData);
615+
for (let index = indexInData; index < indexInData + rowCount; index++) {
615616
const size = this.grid.verticalScrollContainer.getSizeAt(index);
616617
sizeSpans += size + 'px ';
617618
}
618619
return `${sizeSpans}`;
619620
}
620621

621622
protected getRowHeight() {
622-
const size = this.grid.verticalScrollContainer.getSizeAt(this.index) - 1;
623+
const indexInData = this.grid.verticalScrollContainer.igxForOf.indexOf(this.metaData);
624+
const size = this.grid.verticalScrollContainer.getSizeAt(indexInData) - 1;
623625
return size || this.grid.rowHeight;
624626
}
625627

src/app/grid-cellMerging/grid-cellMerging.component.html

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@ <h4 class="sample-title">Grid with cell merge</h4>
33
<igx-column field="ProductID" header="Product ID" width="200px">
44
<ng-template igxCell let-cell="cell" let-val>
55
<div>
6-
<button igxButton>Test {{val}}</button>
6+
<button igxButton>Test {{cell.row.index}}</button>
77
<!-- @if (cell.row.index % 2 == 0) {
88
<br/>
99
<button igxButton>Test 2</button>
@@ -22,4 +22,7 @@ <h4 class="sample-title">Grid with cell merge</h4>
2222
</igx-column>
2323
<igx-paginator [perPage]="20">
2424
</igx-paginator>
25+
<igx-action-strip>
26+
<igx-grid-pinning-actions></igx-grid-pinning-actions>
27+
</igx-action-strip>
2528
</igx-grid>

src/app/grid-cellMerging/grid-cellMerging.component.ts

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,12 @@
11
import { Component, HostBinding, ViewChild } from '@angular/core';
22
import { FormsModule } from '@angular/forms';
33
import {
4+
IgxActionStripComponent,
45
IgxButtonDirective,
56
IgxCellTemplateDirective,
67
IgxColumnComponent,
78
IgxGridComponent,
9+
IgxGridPinningActionsComponent,
810
IgxPaginatorComponent,
911
} from 'igniteui-angular';
1012

@@ -20,7 +22,9 @@ import { data, dataWithoutPK } from '../shared/data';
2022
IgxGridComponent,
2123
IgxCellTemplateDirective,
2224
IgxButtonDirective,
23-
IgxPaginatorComponent
25+
IgxPaginatorComponent,
26+
IgxActionStripComponent,
27+
IgxGridPinningActionsComponent
2428
]
2529
})
2630
export class GridCellMergingComponent {

0 commit comments

Comments
 (0)