Skip to content

Commit a5f8a37

Browse files
committed
change host binding to @HostBinding
1 parent bf0a57a commit a5f8a37

File tree

4 files changed

+31
-30
lines changed

4 files changed

+31
-30
lines changed

src/cdk/tree/nested-node.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ import {
99
AfterContentInit,
1010
ContentChildren,
1111
Directive,
12-
ElementRef,
12+
ElementRef, HostBinding,
1313
IterableDiffer,
1414
IterableDiffers,
1515
OnDestroy,
@@ -31,17 +31,16 @@ import {getTreeControlFunctionsMissingError} from './tree-errors';
3131
@Directive({
3232
selector: 'cdk-nested-tree-node',
3333
exportAs: 'cdkNestedTreeNode',
34-
host: {
35-
'[attr.aria-expanded]': 'isExpanded',
36-
'[attr.role]': 'role',
37-
'class': 'cdk-tree-node cdk-nested-tree-node',
38-
},
3934
providers: [
4035
{provide: CdkTreeNode, useExisting: CdkNestedTreeNode},
4136
{provide: CDK_TREE_NODE_OUTLET_NODE, useExisting: CdkNestedTreeNode}
4237
]
4338
})
4439
export class CdkNestedTreeNode<T> extends CdkTreeNode<T> implements AfterContentInit, OnDestroy {
40+
@HostBinding('attr.aria-expanded') _expanded = this.isExpanded;
41+
@HostBinding('attr.role') _role = this.role;
42+
@HostBinding('class') _class = 'cdk-tree-node cdk-nested-tree-node';
43+
4544
/** Differ used to find the changes in the data provided by the data source. */
4645
private _dataDiffer: IterableDiffer<T>;
4746

src/cdk/tree/tree.ts

Lines changed: 10 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ import {
1515
ContentChildren,
1616
Directive,
1717
ElementRef,
18+
HostBinding,
1819
Input,
1920
IterableChangeRecord,
2021
IterableDiffer,
@@ -297,13 +298,15 @@ export class CdkTree<T> implements AfterContentChecked, CollectionViewer, OnDest
297298
@Directive({
298299
selector: 'cdk-tree-node',
299300
exportAs: 'cdkTreeNode',
300-
host: {
301-
'[attr.aria-expanded]': 'isExpanded',
302-
'[attr.role]': 'role',
303-
'class': 'cdk-tree-node',
304-
},
305301
})
306302
export class CdkTreeNode<T> implements FocusableOption, OnDestroy, OnInit {
303+
/**
304+
* The role of the node should always be 'treeitem'.
305+
*/
306+
// TODO: mark as deprecated
307+
@HostBinding('attr.role') @Input() role: 'treeitem' | 'group' = 'treeitem';
308+
@HostBinding('class') _class = 'cdk-tree-node';
309+
307310
/**
308311
* The most recently created `CdkTreeNode`. We save it in static variable so we can retrieve it
309312
* in `CdkTree` and set the data to it.
@@ -329,7 +332,7 @@ export class CdkTreeNode<T> implements FocusableOption, OnDestroy, OnInit {
329332
}
330333
protected _data: T;
331334

332-
get isExpanded(): boolean {
335+
@HostBinding('attr.aria-expanded') get isExpanded(): boolean {
333336
return this._tree.treeControl.isExpanded(this._data);
334337
}
335338

@@ -340,18 +343,13 @@ export class CdkTreeNode<T> implements FocusableOption, OnDestroy, OnInit {
340343
this._tree.treeControl.getLevel(this._data) : this._parentNodeAriaLevel;
341344
}
342345

343-
/**
344-
* The role of the node should always be 'treeitem'.
345-
*/
346-
// TODO: mark as deprecated
347-
@Input() role: 'treeitem' | 'group' = 'treeitem';
348-
349346
constructor(protected _elementRef: ElementRef<HTMLElement>,
350347
protected _tree: CdkTree<T>) {
351348
CdkTreeNode.mostRecentTreeNode = this as CdkTreeNode<T>;
352349
}
353350

354351
ngOnInit(): void {
352+
debugger;
355353
this._parentNodeAriaLevel = this._getParentNodeAriaLevel();
356354
this._elementRef.nativeElement.setAttribute('aria-level', String(this.level + 1));
357355
}

src/material/tree/node.ts

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -18,6 +18,7 @@ import {
1818
Attribute,
1919
Directive,
2020
ElementRef,
21+
HostBinding,
2122
Input,
2223
IterableDiffers,
2324
OnDestroy,
@@ -42,16 +43,14 @@ const _MatTreeNodeMixinBase: HasTabIndexCtor & CanDisableCtor & typeof CdkTreeNo
4243
selector: 'mat-tree-node',
4344
exportAs: 'matTreeNode',
4445
inputs: ['disabled', 'tabIndex'],
45-
host: {
46-
'[attr.aria-expanded]': 'isExpanded',
47-
'[attr.role]': 'role',
48-
'class': 'mat-tree-node'
49-
},
5046
providers: [{provide: CdkTreeNode, useExisting: MatTreeNode}]
5147
})
5248
export class MatTreeNode<T> extends _MatTreeNodeMixinBase<T>
5349
implements CanDisable, HasTabIndex {
54-
@Input() role: 'treeitem' | 'group' = 'treeitem';
50+
@HostBinding('attr.role') @Input() role: 'treeitem' | 'group' = 'treeitem';
51+
52+
@HostBinding('attr.aria-expanded') _expanded = this.isExpanded;
53+
@HostBinding('class') _class = 'mat-tree-node';
5554

5655
constructor(protected _elementRef: ElementRef<HTMLElement>,
5756
protected _tree: CdkTree<T>,
@@ -85,11 +84,6 @@ export class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {
8584
@Directive({
8685
selector: 'mat-nested-tree-node',
8786
exportAs: 'matNestedTreeNode',
88-
host: {
89-
'[attr.aria-expanded]': 'isExpanded',
90-
'[attr.role]': 'role',
91-
'class': 'mat-nested-tree-node',
92-
},
9387
providers: [
9488
{provide: CdkNestedTreeNode, useExisting: MatNestedTreeNode},
9589
{provide: CdkTreeNode, useExisting: MatNestedTreeNode},
@@ -98,6 +92,10 @@ export class MatTreeNodeDef<T> extends CdkTreeNodeDef<T> {
9892
})
9993
export class MatNestedTreeNode<T> extends CdkNestedTreeNode<T> implements AfterContentInit,
10094
OnDestroy {
95+
@HostBinding('attr.aria-expanded') _expanded = this.isExpanded;
96+
@HostBinding('attr.role') _role = this.role;
97+
@HostBinding('class') _class = 'mat-nested-tree-node';
98+
10199
@Input('matNestedTreeNode') node: T;
102100

103101
/** Whether the node is disabled. */

src/material/tree/tree.ts

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,13 @@
77
*/
88

99
import {CdkTree} from '@angular/cdk/tree';
10-
import {ChangeDetectionStrategy, Component, ViewChild, ViewEncapsulation} from '@angular/core';
10+
import {
11+
ChangeDetectionStrategy,
12+
Component,
13+
HostBinding,
14+
ViewChild,
15+
ViewEncapsulation
16+
} from '@angular/core';
1117
import {MatTreeNodeOutlet} from './outlet';
1218

1319
/**

0 commit comments

Comments
 (0)