Skip to content

Commit 9329079

Browse files
MKirovaMKirova
authored andcommitted
chore(*): Implement selection per spec.
1 parent 759b465 commit 9329079

File tree

4 files changed

+23
-1
lines changed

4 files changed

+23
-1
lines changed

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -300,6 +300,11 @@
300300
@extend %igx-grid__td--merged !optional;
301301
}
302302

303+
304+
@include e(td, $m: merged-selected) {
305+
@extend %igx-grid__td--merged-selected !optional;
306+
}
307+
303308
@include e(td, $m: editing) {
304309
@extend %igx-grid__td--editing !optional;
305310
}

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

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1826,7 +1826,6 @@
18261826
background: var-get($theme, 'row-selected-background');
18271827

18281828
&%grid-row--mrl {
1829-
background: transparent;
18301829
%grid-mrl-block {
18311830
color: var-get($theme, 'row-selected-text-color');
18321831
background: var-get($theme, 'row-selected-background');
@@ -1891,6 +1890,11 @@
18911890
grid-row: 1 / -1;
18921891
}
18931892

1893+
%igx-grid__td--merged-selected {
1894+
color: var-get($theme, 'row-selected-text-color');
1895+
background: var-get($theme, 'row-selected-background');
1896+
}
1897+
18941898
%igx-grid__tr--deleted {
18951899
%grid-cell-text {
18961900
font-style: italic;

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

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -133,6 +133,7 @@
133133
<ng-template #cellTemplate let-col>
134134
<igx-grid-cell
135135
[class.igx-grid__td--merged]="metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1"
136+
[class.igx-grid__td--merged-selected]="isSelectionRoot(col)"
136137
class="igx-grid__td igx-grid__td--fw"
137138
[class.igx-grid__td--edited]="key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row"
138139
[class.igx-grid__td--pinned]="col.pinned"

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

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -620,6 +620,18 @@ export class IgxRowDirective implements DoCheck, AfterViewInit, OnDestroy {
620620
return `${sizeSpans}`;
621621
}
622622

623+
protected isSelectionRoot(col: ColumnType) {
624+
const mergeMeta = this.metaData?.cellMergeMeta;
625+
const rowCount = mergeMeta?.get(col.field)?.rowSpan;
626+
if (mergeMeta && rowCount > 1) {
627+
const indexInData = this.pinned && this.grid.isRowPinningToTop ? this.index - this.grid.pinnedRecordsCount : this.index;
628+
const range = this.grid.verticalScrollContainer.igxForOf.slice(indexInData, indexInData + rowCount);
629+
const inRange = range.filter(x => this.selectionService.isRowSelected(this.grid.primaryKey ? (x.recordRef || x)[this.grid.primaryKey] : (x.recordRef || x).recordRef)).length > 0;
630+
return inRange;
631+
}
632+
return false;
633+
}
634+
623635
protected getRowHeight() {
624636
const indexInData = this.grid.verticalScrollContainer.igxForOf.indexOf(this.metaData);
625637
const size = this.grid.verticalScrollContainer.getSizeAt(indexInData) - 1;

0 commit comments

Comments
 (0)