Skip to content

Commit 19c2efe

Browse files
MKirovaMKirova
authored andcommitted
chore(*): Add hover styles.
1 parent 9329079 commit 19c2efe

File tree

6 files changed

+54
-2
lines changed

6 files changed

+54
-2
lines changed

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

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -305,6 +305,10 @@
305305
@extend %igx-grid__td--merged-selected !optional;
306306
}
307307

308+
@include e(td, $m: merged-hovered) {
309+
@extend %igx-grid__td--merged-hovered !optional;
310+
}
311+
308312
@include e(td, $m: editing) {
309313
@extend %igx-grid__td--editing !optional;
310314
}

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

Lines changed: 23 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1827,11 +1827,17 @@
18271827

18281828
&%grid-row--mrl {
18291829
%grid-mrl-block {
1830-
color: var-get($theme, 'row-selected-text-color');
1831-
background: var-get($theme, 'row-selected-background');
18321830
%igx-grid__td--merged {
18331831
color: var-get($theme, 'row-selected-text-color');
18341832
background: var-get($theme, 'row-selected-background');
1833+
&:hover {
1834+
background: var-get($theme, 'row-selected-hover-background');
1835+
color: var-get($theme, 'row-selected-hover-text-color');
1836+
}
1837+
&%igx-grid__td--merged-hovered {
1838+
background: var-get($theme, 'row-selected-hover-background');
1839+
color: var-get($theme, 'row-selected-hover-text-color');
1840+
}
18351841
}
18361842
}
18371843
}
@@ -1893,6 +1899,21 @@
18931899
%igx-grid__td--merged-selected {
18941900
color: var-get($theme, 'row-selected-text-color');
18951901
background: var-get($theme, 'row-selected-background');
1902+
1903+
&%igx-grid__td--merged-hovered {
1904+
background: var-get($theme, 'row-selected-hover-background');
1905+
color: var-get($theme, 'row-selected-hover-text-color');
1906+
}
1907+
}
1908+
1909+
%igx-grid__td--merged-hovered {
1910+
background: var-get($theme, 'row-hover-background');
1911+
color: var-get($theme, 'row-hover-text-color');
1912+
1913+
&%igx-grid__td--merged-selected {
1914+
background: var-get($theme, 'row-selected-hover-background');
1915+
color: var-get($theme, 'row-selected-hover-text-color');
1916+
}
18961917
}
18971918

18981919
%igx-grid__tr--deleted {

projects/igniteui-angular/src/lib/grids/common/grid.interface.ts

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -728,6 +728,8 @@ export interface GridType extends IGridDataBindable {
728728
isColumnWidthSum: boolean;
729729
/** @hidden @internal */
730730
minColumnWidth: number;
731+
/** @hidden @internal */
732+
hoverIndex?: number;
731733
/** Strategy, used for cloning the provided data. The type has one method, that takes any type of data */
732734
dataCloneStrategy: IDataCloneStrategy;
733735

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

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3099,6 +3099,11 @@ export abstract class IgxGridBaseDirective implements GridType,
30993099
*/
31003100
public groupablePipeTrigger = 0;
31013101

3102+
/**
3103+
* @hidden @internal
3104+
*/
3105+
public hoverIndex: number;
3106+
31023107
/**
31033108
* @hidden @internal
31043109
*/

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
@@ -134,6 +134,7 @@
134134
<igx-grid-cell
135135
[class.igx-grid__td--merged]="metaData?.cellMergeMeta.get(col.field)?.rowSpan > 1"
136136
[class.igx-grid__td--merged-selected]="isSelectionRoot(col)"
137+
[class.igx-grid__td--merged-hovered]="isHoveredRoot(col)"
137138
class="igx-grid__td igx-grid__td--fw"
138139
[class.igx-grid__td--edited]="key | transactionState:col.field:grid.rowEditable:grid.transactions:grid.pipeTrigger:grid.gridAPI.crudService.cell:grid.gridAPI.crudService.row"
139140
[class.igx-grid__td--pinned]="col.pinned"

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

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -632,6 +632,25 @@ export class IgxRowDirective implements DoCheck, AfterViewInit, OnDestroy {
632632
return false;
633633
}
634634

635+
@HostListener('mouseenter') onMouseEnter() {
636+
this.grid.hoverIndex = this.index;
637+
}
638+
639+
@HostListener('mouseleave') onMouseLeave() {
640+
this.grid.hoverIndex = null;
641+
}
642+
643+
protected isHoveredRoot(col: ColumnType) {
644+
const mergeMeta = this.metaData?.cellMergeMeta;
645+
const rowCount = mergeMeta?.get(col.field)?.rowSpan;
646+
if (mergeMeta && rowCount > 1 && this.grid.hoverIndex !== null && this.grid.hoverIndex !== undefined) {
647+
const indexInData = this.index;
648+
const hoveredIndex = this.grid.hoverIndex;
649+
return indexInData <= hoveredIndex && indexInData + rowCount > hoveredIndex;
650+
}
651+
return false;
652+
}
653+
635654
protected getRowHeight() {
636655
const indexInData = this.grid.verticalScrollContainer.igxForOf.indexOf(this.metaData);
637656
const size = this.grid.verticalScrollContainer.getSizeAt(indexInData) - 1;

0 commit comments

Comments
 (0)