51 lines
1.1 KiB
JavaScript
51 lines
1.1 KiB
JavaScript
import { Component } from '@angular/core';
|
|
|
|
// #docregion
|
|
export class HeroHostComponent {
|
|
constructor() {
|
|
this.active = false;
|
|
this.clicks = 0;
|
|
this.headingClass = true;
|
|
this.title = 'Hero Host Tooltip';
|
|
}
|
|
|
|
clicked() {
|
|
this.clicks += 1;
|
|
}
|
|
|
|
enter(event) {
|
|
this.active = true;
|
|
this.headingClass = false;
|
|
}
|
|
|
|
leave(event) {
|
|
this.active = false;
|
|
this.headingClass = true;
|
|
}
|
|
}
|
|
|
|
// #docregion metadata
|
|
HeroHostComponent.annotations = [
|
|
new Component({
|
|
selector: 'hero-host',
|
|
template: `
|
|
<h1 [class.active]="active">Hero Host</h1>
|
|
<div>Heading clicks: {{clicks}}</div>
|
|
`,
|
|
host: {
|
|
// HostBindings to the <hero-host> element
|
|
'[title]': 'title',
|
|
'[class.heading]': 'headingClass',
|
|
'(click)': 'clicked()',
|
|
|
|
// HostListeners on the entire <hero-host> element
|
|
'(mouseenter)': 'enter($event)',
|
|
'(mouseleave)': 'leave($event)'
|
|
},
|
|
// Styles within (but excluding) the <hero-host> element
|
|
styles: ['.active {background-color: yellow;}']
|
|
})
|
|
];
|
|
// #docregion metadata
|
|
// #enddocregion
|