interactive-mining/interactive-mining-angular-.../src/app/contents/autosize.directive.ts

29 lines
612 B
TypeScript
Executable File

import { AfterContentChecked, Directive, ElementRef, HostListener } from '@angular/core';
@Directive({
selector: 'textarea[autosize]'
})
export class AutosizeDirective implements AfterContentChecked {
constructor(public element: ElementRef) {}
@HostListener('input')
public onInput() {
this.resize();
}
public ngAfterContentChecked() {
this.resize();
}
public resize() {
const style = this.element.nativeElement.style;
style.overflow = 'hidden';
style.height = 'auto';
const height = this.element.nativeElement.scrollHeight;
style.height = `${height}px`;
}
}