UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

60 lines 9.06 kB
import { Component, Inject, Optional } from '@angular/core'; import { ViewChild } from '@angular/core'; import { TextAreaHeight, TextField } from '../models/text-field'; import { take } from 'rxjs/operators'; import { AbstractTextErrorsComponent } from '../abstract-text-errors.component'; import { DATA_FIELD_PORTAL_DATA } from "../../models/data-field-portal-data-injection-token"; import * as i0 from "@angular/core"; import * as i1 from "@ngx-translate/core"; export class AbstractTextareaFieldComponent extends AbstractTextErrorsComponent { _translate; _ngZone; dynamicTextArea; textArea; constructor(_translate, _ngZone, dataFieldPortalData) { super(_translate, dataFieldPortalData); this._translate = _translate; this._ngZone = _ngZone; } ngAfterViewInit() { this.triggerResize(); this.textArea.nativeElement.style.minHeight = this.getHeight() + 'px'; if (parseInt(this.textArea.nativeElement.style.height, 10) < this.getHeight()) { this.textArea.nativeElement.style.height = this.getHeight() + 'px'; } } getHeight() { const oneHeight = this.dataField.layout && this.dataField.layout.appearance === 'outline' ? TextAreaHeight.OUTLINE : TextAreaHeight.FILL_STANDARD; return this.dataField.layout?.rows && this.dataField.layout?.rows !== 1 ? (this.dataField.layout.rows - 1) * TextField.FIELD_HEIGHT + oneHeight : oneHeight; } triggerResize() { this._ngZone.onStable.pipe(take(1)) .subscribe(() => this.dynamicTextArea.resizeToFitContent(true)); } getErrorMessage() { return this.buildErrorMessage(this.dataField, this.formControlRef); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractTextareaFieldComponent, deps: [{ token: i1.TranslateService }, { token: i0.NgZone }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractTextareaFieldComponent, selector: "ncc-abstract-text-area-field", viewQueries: [{ propertyName: "dynamicTextArea", first: true, predicate: ["dynamicTextArea"], descendants: true }, { propertyName: "textArea", first: true, predicate: ["textArea"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractTextareaFieldComponent, decorators: [{ type: Component, args: [{ selector: 'ncc-abstract-text-area-field', template: '' }] }], ctorParameters: () => [{ type: i1.TranslateService }, { type: i0.NgZone }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DATA_FIELD_PORTAL_DATA] }] }], propDecorators: { dynamicTextArea: [{ type: ViewChild, args: ['dynamicTextArea'] }], textArea: [{ type: ViewChild, args: ['textArea'] }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtdGV4dGFyZWEtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy90ZXh0LWZpZWxkL3RleHRhcmVhLWZpZWxkL2Fic3RyYWN0LXRleHRhcmVhLWZpZWxkLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQWdCLFNBQVMsRUFBRSxNQUFNLEVBQUUsUUFBUSxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQ3pFLE9BQU8sRUFBcUIsU0FBUyxFQUFDLE1BQU0sZUFBZSxDQUFDO0FBQzVELE9BQU8sRUFBQyxjQUFjLEVBQUUsU0FBUyxFQUFDLE1BQU0sc0JBQXNCLENBQUM7QUFFL0QsT0FBTyxFQUFDLElBQUksRUFBQyxNQUFNLGdCQUFnQixDQUFDO0FBRXBDLE9BQU8sRUFBQywyQkFBMkIsRUFBQyxNQUFNLG1DQUFtQyxDQUFDO0FBQzlFLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxxREFBcUQsQ0FBQzs7O0FBT2hILE1BQU0sT0FBZ0IsOEJBQStCLFNBQVEsMkJBQXNDO0lBS3pFO0lBQXdDO0lBSGhDLGVBQWUsQ0FBc0I7SUFDNUMsUUFBUSxDQUFrQztJQUVqRSxZQUFzQixVQUE0QixFQUFZLE9BQWUsRUFDckIsbUJBQXVEO1FBQzNHLEtBQUssQ0FBQyxVQUFVLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztRQUZyQixlQUFVLEdBQVYsVUFBVSxDQUFrQjtRQUFZLFlBQU8sR0FBUCxPQUFPLENBQVE7SUFHN0UsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7UUFDckIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxhQUFhLENBQUMsS0FBSyxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLEdBQUcsSUFBSSxDQUFDO1FBQ3RFLElBQUksUUFBUSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEVBQUUsRUFBRSxDQUFDLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxFQUFFO1lBQzNFLElBQUksQ0FBQyxRQUFRLENBQUMsYUFBYSxDQUFDLEtBQUssQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDLFNBQVMsRUFBRSxHQUFHLElBQUksQ0FBQztTQUN0RTtJQUNMLENBQUM7SUFFTSxTQUFTO1FBQ1osTUFBTSxTQUFTLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsVUFBVSxLQUFLLFNBQVMsQ0FBQyxDQUFDO1lBQ3ZGLGNBQWMsQ0FBQyxPQUFPLENBQUMsQ0FBQyxDQUFDLGNBQWMsQ0FBQyxhQUFhLENBQUM7UUFDMUQsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLE1BQU0sRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLEVBQUUsSUFBSSxLQUFLLENBQUMsQ0FBQyxDQUFDO1lBQ3JFLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsSUFBSSxHQUFHLENBQUMsQ0FBQyxHQUFHLFNBQVMsQ0FBQyxZQUFZLEdBQUcsU0FBUyxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7SUFDMUYsQ0FBQztJQUVELGFBQWE7UUFDVCxJQUFJLENBQUMsT0FBTyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsZUFBZSxDQUFDLGtCQUFrQixDQUFDLElBQUksQ0FBQyxDQUFDLENBQUM7SUFDeEUsQ0FBQztJQUVNLGVBQWU7UUFDbEIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLENBQUMsSUFBSSxDQUFDLFNBQVMsRUFBRSxJQUFJLENBQUMsY0FBYyxDQUFDLENBQUM7SUFDdkUsQ0FBQzt3R0FoQ2lCLDhCQUE4Qix3RUFNaEIsc0JBQXNCOzRGQU5wQyw4QkFBOEIsc1NBRnRDLEVBQUU7OzRGQUVNLDhCQUE4QjtrQkFKbkQsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUsOEJBQThCO29CQUN4QyxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBT2dCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCO3lDQUp4QixlQUFlO3NCQUE1QyxTQUFTO3VCQUFDLGlCQUFpQjtnQkFDTCxRQUFRO3NCQUE5QixTQUFTO3VCQUFDLFVBQVUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0FmdGVyVmlld0luaXQsIENvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0VsZW1lbnRSZWYsIE5nWm9uZSwgVmlld0NoaWxkfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7VGV4dEFyZWFIZWlnaHQsIFRleHRGaWVsZH0gZnJvbSAnLi4vbW9kZWxzL3RleHQtZmllbGQnO1xuaW1wb3J0IHtUcmFuc2xhdGVTZXJ2aWNlfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7dGFrZX0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xuaW1wb3J0IHtDZGtUZXh0YXJlYUF1dG9zaXplfSBmcm9tICdAYW5ndWxhci9jZGsvdGV4dC1maWVsZCc7XG5pbXBvcnQge0Fic3RyYWN0VGV4dEVycm9yc0NvbXBvbmVudH0gZnJvbSAnLi4vYWJzdHJhY3QtdGV4dC1lcnJvcnMuY29tcG9uZW50JztcbmltcG9ydCB7REFUQV9GSUVMRF9QT1JUQUxfREFUQSwgRGF0YUZpZWxkUG9ydGFsRGF0YX0gZnJvbSBcIi4uLy4uL21vZGVscy9kYXRhLWZpZWxkLXBvcnRhbC1kYXRhLWluamVjdGlvbi10b2tlblwiO1xuaW1wb3J0IHtUZXh0QXJlYUZpZWxkfSBmcm9tIFwiLi4vbW9kZWxzL3RleHQtYXJlYS1maWVsZFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC10ZXh0LWFyZWEtZmllbGQnLFxuICAgIHRlbXBsYXRlOiAnJ1xufSlcbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBBYnN0cmFjdFRleHRhcmVhRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdFRleHRFcnJvcnNDb21wb25lbnQ8VGV4dEZpZWxkPiBpbXBsZW1lbnRzIEFmdGVyVmlld0luaXQge1xuXG4gICAgQFZpZXdDaGlsZCgnZHluYW1pY1RleHRBcmVhJykgZHluYW1pY1RleHRBcmVhOiBDZGtUZXh0YXJlYUF1dG9zaXplO1xuICAgIEBWaWV3Q2hpbGQoJ3RleHRBcmVhJykgdGV4dEFyZWE6IEVsZW1lbnRSZWY8SFRNTFRleHRBcmVhRWxlbWVudD47XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgX3RyYW5zbGF0ZTogVHJhbnNsYXRlU2VydmljZSwgcHJvdGVjdGVkIF9uZ1pvbmU6IE5nWm9uZSxcbiAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFfRklFTERfUE9SVEFMX0RBVEEpIGRhdGFGaWVsZFBvcnRhbERhdGE6IERhdGFGaWVsZFBvcnRhbERhdGE8VGV4dEFyZWFGaWVsZD4pIHtcbiAgICAgICAgc3VwZXIoX3RyYW5zbGF0ZSwgZGF0YUZpZWxkUG9ydGFsRGF0YSk7XG4gICAgfVxuXG4gICAgbmdBZnRlclZpZXdJbml0KCkge1xuICAgICAgICB0aGlzLnRyaWdnZXJSZXNpemUoKTtcbiAgICAgICAgdGhpcy50ZXh0QXJlYS5uYXRpdmVFbGVtZW50LnN0eWxlLm1pbkhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICBpZiAocGFyc2VJbnQodGhpcy50ZXh0QXJlYS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCwgMTApIDwgdGhpcy5nZXRIZWlnaHQoKSkge1xuICAgICAgICAgICAgdGhpcy50ZXh0QXJlYS5uYXRpdmVFbGVtZW50LnN0eWxlLmhlaWdodCA9IHRoaXMuZ2V0SGVpZ2h0KCkgKyAncHgnO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIGdldEhlaWdodCgpIHtcbiAgICAgICAgY29uc3Qgb25lSGVpZ2h0ID0gdGhpcy5kYXRhRmllbGQubGF5b3V0ICYmIHRoaXMuZGF0YUZpZWxkLmxheW91dC5hcHBlYXJhbmNlID09PSAnb3V0bGluZScgP1xuICAgICAgICAgICAgVGV4dEFyZWFIZWlnaHQuT1VUTElORSA6IFRleHRBcmVhSGVpZ2h0LkZJTExfU1RBTkRBUkQ7XG4gICAgICAgIHJldHVybiB0aGlzLmRhdGFGaWVsZC5sYXlvdXQ/LnJvd3MgJiYgdGhpcy5kYXRhRmllbGQubGF5b3V0Py5yb3dzICE9PSAxID9cbiAgICAgICAgICAgICh0aGlzLmRhdGFGaWVsZC5sYXlvdXQucm93cyAtIDEpICogVGV4dEZpZWxkLkZJRUxEX0hFSUdIVCArIG9uZUhlaWdodCA6IG9uZUhlaWdodDtcbiAgICB9XG5cbiAgICB0cmlnZ2VyUmVzaXplKCkge1xuICAgICAgICB0aGlzLl9uZ1pvbmUub25TdGFibGUucGlwZSh0YWtlKDEpKVxuICAgICAgICAgICAgLnN1YnNjcmliZSgoKSA9PiB0aGlzLmR5bmFtaWNUZXh0QXJlYS5yZXNpemVUb0ZpdENvbnRlbnQodHJ1ZSkpO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXRFcnJvck1lc3NhZ2UoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLmJ1aWxkRXJyb3JNZXNzYWdlKHRoaXMuZGF0YUZpZWxkLCB0aGlzLmZvcm1Db250cm9sUmVmKTtcbiAgICB9XG59XG4iXX0=