@ng-flexy/form-bootstrap
Version:
Flexy components and tools to build Angular 8+ applications
33 lines • 3.85 kB
JavaScript
// fork https://github.com/stevepapa/ng-autosize
import { HostListener, Directive } from '@angular/core';
import * as i0 from "@angular/core";
export class FlexyFormsTextareaAutosizeDirective {
constructor(element) {
this.element = element;
}
onInput(textArea) {
this.adjust();
}
ngAfterContentChecked() {
this.adjust();
}
adjust() {
this.element.nativeElement.style.overflow = 'hidden';
this.element.nativeElement.style.height = 'auto';
this.element.nativeElement.style.height = this.element.nativeElement.scrollHeight + 'px';
}
}
FlexyFormsTextareaAutosizeDirective.ɵfac = function FlexyFormsTextareaAutosizeDirective_Factory(t) { return new (t || FlexyFormsTextareaAutosizeDirective)(i0.ɵɵdirectiveInject(i0.ElementRef)); };
FlexyFormsTextareaAutosizeDirective.ɵdir = i0.ɵɵdefineDirective({ type: FlexyFormsTextareaAutosizeDirective, selectors: [["textarea", "flexyAutosize", ""]], hostBindings: function FlexyFormsTextareaAutosizeDirective_HostBindings(rf, ctx) { if (rf & 1) {
i0.ɵɵlistener("input", function FlexyFormsTextareaAutosizeDirective_input_HostBindingHandler($event) { return ctx.onInput($event.target); });
} } });
/*@__PURE__*/ (function () { i0.ɵsetClassMetadata(FlexyFormsTextareaAutosizeDirective, [{
type: Directive,
args: [{
selector: 'textarea[flexyAutosize]'
}]
}], function () { return [{ type: i0.ElementRef }]; }, { onInput: [{
type: HostListener,
args: ['input', ['$event.target']]
}] }); })();
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGV4dGFyZWEtYXV0b3NpemUuZGlyZWN0aXZlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvZm9ybS1ib290c3RyYXAvc3JjL2xpYi9kaXJlY3RpdmVzL3RleHRhcmVhLWF1dG9zaXplLmRpcmVjdGl2ZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxnREFBZ0Q7QUFFaEQsT0FBTyxFQUFjLFlBQVksRUFBRSxTQUFTLEVBQXVCLE1BQU0sZUFBZSxDQUFDOztBQUt6RixNQUFNLE9BQU8sbUNBQW1DO0lBSzlDLFlBQW1CLE9BQW1CO1FBQW5CLFlBQU8sR0FBUCxPQUFPLENBQVk7SUFBRyxDQUFDO0lBSkEsT0FBTyxDQUFDLFFBQTZCO1FBQzdFLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBSUQscUJBQXFCO1FBQ25CLElBQUksQ0FBQyxNQUFNLEVBQUUsQ0FBQztJQUNoQixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDO1FBQ3JELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsTUFBTSxDQUFDO1FBQ2pELElBQUksQ0FBQyxPQUFPLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLE9BQU8sQ0FBQyxhQUFhLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzRixDQUFDOztzSEFmVSxtQ0FBbUM7d0VBQW5DLG1DQUFtQztzSEFBbkMsMEJBQXNCOztrREFBdEIsbUNBQW1DO2NBSC9DLFNBQVM7ZUFBQztnQkFDVCxRQUFRLEVBQUUseUJBQXlCO2FBQ3BDOzZEQUUyQyxPQUFPO2tCQUFoRCxZQUFZO21CQUFDLE9BQU8sRUFBRSxDQUFDLGVBQWUsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbIi8vIGZvcmsgaHR0cHM6Ly9naXRodWIuY29tL3N0ZXZlcGFwYS9uZy1hdXRvc2l6ZVxuXG5pbXBvcnQgeyBFbGVtZW50UmVmLCBIb3N0TGlzdGVuZXIsIERpcmVjdGl2ZSwgQWZ0ZXJDb250ZW50Q2hlY2tlZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuXG5ARGlyZWN0aXZlKHtcbiAgc2VsZWN0b3I6ICd0ZXh0YXJlYVtmbGV4eUF1dG9zaXplXSdcbn0pXG5leHBvcnQgY2xhc3MgRmxleHlGb3Jtc1RleHRhcmVhQXV0b3NpemVEaXJlY3RpdmUgaW1wbGVtZW50cyBBZnRlckNvbnRlbnRDaGVja2VkIHtcbiAgQEhvc3RMaXN0ZW5lcignaW5wdXQnLCBbJyRldmVudC50YXJnZXQnXSkgb25JbnB1dCh0ZXh0QXJlYTogSFRNTFRleHRBcmVhRWxlbWVudCk6IHZvaWQge1xuICAgIHRoaXMuYWRqdXN0KCk7XG4gIH1cblxuICBjb25zdHJ1Y3RvcihwdWJsaWMgZWxlbWVudDogRWxlbWVudFJlZikge31cblxuICBuZ0FmdGVyQ29udGVudENoZWNrZWQoKTogdm9pZCB7XG4gICAgdGhpcy5hZGp1c3QoKTtcbiAgfVxuXG4gIGFkanVzdCgpOiB2b2lkIHtcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5vdmVyZmxvdyA9ICdoaWRkZW4nO1xuICAgIHRoaXMuZWxlbWVudC5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9ICdhdXRvJztcbiAgICB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zdHlsZS5oZWlnaHQgPSB0aGlzLmVsZW1lbnQubmF0aXZlRWxlbWVudC5zY3JvbGxIZWlnaHQgKyAncHgnO1xuICB9XG59XG4iXX0=