25 lines
647 B
TypeScript
25 lines
647 B
TypeScript
// #docregion
|
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
|
|
@Component({
|
|
selector: 'app-sizer',
|
|
template: `
|
|
<div>
|
|
<button (click)="dec()" title="smaller">-</button>
|
|
<button (click)="inc()" title="bigger">+</button>
|
|
<label [style.font-size.px]="size">FontSize: {{size}}px</label>
|
|
</div>`
|
|
})
|
|
export class SizerComponent {
|
|
@Input() size: number | string;
|
|
@Output() sizeChange = new EventEmitter<number>();
|
|
|
|
dec() { this.resize(-1); }
|
|
inc() { this.resize(+1); }
|
|
|
|
resize(delta: number) {
|
|
this.size = Math.min(40, Math.max(8, +this.size + delta));
|
|
this.sizeChange.emit(this.size);
|
|
}
|
|
}
|