Skip to content

Commit 2e71fa4

Browse files
committed
fix(table): Add hover directive
1 parent eafdac8 commit 2e71fa4

File tree

4 files changed

+31
-14
lines changed

4 files changed

+31
-14
lines changed
Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,20 @@
1+
import {
2+
Directive,
3+
HostListener
4+
} from "@angular/core";
5+
6+
@Directive({
7+
selector: "[ibmHoverToggle]"
8+
})
9+
export class HoverToggle {
10+
@HostListener("mouseenter", ["$event"])
11+
addHoverClass(event) {
12+
console.log(event.target);
13+
event.target.previousElementSibling.classList.add("bx--expandable-row--hover-v2");
14+
}
15+
16+
@HostListener("mouseleave", ["$event"])
17+
removeHoverClass(event) {
18+
event.target.previousElementSibling.classList.remove("bx--expandable-row--hover-v2");
19+
}
20+
}

src/table/table.component.spec.ts

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,8 @@ import {
77
TableModel,
88
TableHeaderItem,
99
TableItem,
10-
DataGridFocus
10+
DataGridFocus,
11+
HoverToggle
1112
} from "./table.module";
1213
import { Table } from "./table.component";
1314
import { StaticIconModule } from "./../icon/static-icon.module";
@@ -49,7 +50,8 @@ describe("Table", () => {
4950
declarations: [
5051
Table,
5152
TableTest,
52-
DataGridFocus
53+
DataGridFocus,
54+
HoverToggle
5355
]
5456
});
5557

src/table/table.component.ts

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -370,13 +370,12 @@ import { I18n } from "./../i18n/i18n.module";
370370
<tr
371371
*ngIf="model.rowsExpanded[i] && !model.isRowFiltered(i)"
372372
class="bx--expandable-row-v2"
373+
ibmHoverToggle
373374
[attr.data-child-row]="(model.rowsExpanded[i] ? 'true' : null)">
374375
<td
375376
[ibmDataGridFocus]="isDataGrid"
376377
[(columnIndex)]="columnIndex"
377378
[attr.colspan]="row.length + 2"
378-
(mouseenter)="addHoverClass($event)"
379-
(mouseleave)="removeHoverClass($event)"
380379
(click)="setExpandIndex($event)">
381380
<ng-container *ngIf="!firstExpandedTemplateInRow(row)">{{firstExpandedDataInRow(row)}}</ng-container>
382381
<ng-template
@@ -915,14 +914,6 @@ export class Table implements AfterViewInit {
915914
this.model.isEnd = false;
916915
}
917916

918-
addHoverClass(event) {
919-
event.target.closest("tr").previousElementSibling.classList.add("bx--expandable-row--hover-v2");
920-
}
921-
922-
removeHoverClass(event) {
923-
event.target.closest("tr").previousElementSibling.classList.remove("bx--expandable-row--hover-v2");
924-
}
925-
926917
handleTabIndex() {
927918
setTimeout(() => {
928919
const focusElementList = getFocusElementList(this.elementRef.nativeElement, tabbableSelectorIgnoreTabIndex);

src/table/table.module.ts

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,7 @@ import { TableToolbarActions } from "./toolbar/table-toolbar-actions.component";
1111
import { TableToolbarSearch } from "./toolbar/table-toolbar-search.component";
1212
import { TableToolbarContent } from "./toolbar/table-toolbar-content.component";
1313
import { DataGridFocus } from "./data-grid-focus.directive";
14+
import { HoverToggle } from "./hover-toggle.directive";
1415

1516
import { IconModule } from "./../icon/icon.module";
1617
import { StaticIconModule } from "..";
@@ -26,6 +27,7 @@ export { TableToolbarActions } from "./toolbar/table-toolbar-actions.component";
2627
export { TableToolbarSearch } from "./toolbar/table-toolbar-search.component";
2728
export { TableToolbarContent } from "./toolbar/table-toolbar-content.component";
2829
export { DataGridFocus } from "./data-grid-focus.directive";
30+
export { HoverToggle } from "./hover-toggle.directive";
2931

3032
@NgModule({
3133
declarations: [
@@ -34,15 +36,17 @@ export { DataGridFocus } from "./data-grid-focus.directive";
3436
TableToolbarActions,
3537
TableToolbarSearch,
3638
TableToolbarContent,
37-
DataGridFocus
39+
DataGridFocus,
40+
HoverToggle
3841
],
3942
exports: [
4043
Table,
4144
TableToolbar,
4245
TableToolbarActions,
4346
TableToolbarSearch,
4447
TableToolbarContent,
45-
DataGridFocus
48+
DataGridFocus,
49+
HoverToggle
4650
],
4751
imports: [
4852
CommonModule,

0 commit comments

Comments
 (0)