ngx-ui-hero
Version:
Simple, fast and reliable utilities for Angular.
54 lines • 11.1 kB
JavaScript
import { Component, Inject, Input, Optional, ViewChild } from '@angular/core';
import { NG_ASYNC_VALIDATORS, NG_VALIDATORS, NG_VALUE_ACCESSOR, NgModel } from '@angular/forms';
import { ElementBase } from '../../base/element-base';
import { INPUT_FORMS_CONFIG } from '../../input-forms-config.constants';
import * as i0 from "@angular/core";
import * as i1 from "@angular/common";
import * as i2 from "@angular/forms";
import * as i3 from "ngx-bootstrap/tooltip";
import * as i4 from "../input-validations/input-validations.component";
let identifier = 0;
export class InputTextareaComponent extends ElementBase {
constructor(validators, asyncValidators, config) {
super(validators, asyncValidators, config);
this.config = config;
this.placeholder = '';
this.identifier = `input-textarea-${identifier++}`;
}
ngOnInit() { }
}
InputTextareaComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InputTextareaComponent, deps: [{ token: NG_VALIDATORS, optional: true }, { token: NG_ASYNC_VALIDATORS, optional: true }, { token: INPUT_FORMS_CONFIG }], target: i0.ɵɵFactoryTarget.Component });
InputTextareaComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: InputTextareaComponent, selector: "input-textarea", inputs: { placeholder: "placeholder", maxlength: "maxlength" }, providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: InputTextareaComponent,
multi: true
}], viewQueries: [{ propertyName: "model", first: true, predicate: NgModel, descendants: true, static: true }], usesInheritance: true, ngImport: i0, template: "<label *ngIf=\"label\" [attr.for]=\"identifier\">\n {{label}}\n <span class=\"required-symbol\" *ngIf=\"isRequired\"> *</span>\n <i class=\"fa fa-question-circle ml-2\" tooltip=\"{{help}}\" container=\"body\" *ngIf=\"help\"></i>\n</label>\n\n<textarea\n rows=\"5\"\n class=\"form-control\" \n [disabled]=\"disabled\" \n [maxlength]=\"maxlength\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n [ngClass]=\"{\n 'is-valid': showValidations && !disabled && touched && !(invalid | async),\n 'is-invalid': showValidations && !disabled && touched && (invalid | async)\n }\"\n [id]=\"identifier\">\n</textarea>\n\n<small class=\"text-muted\" *ngIf=\"description\">{{description}}</small>\n\n<input-validations\n *ngIf=\"showValidations && !disabled && touched && (invalid | async)\"\n [messages]=\"failures | async\">\n</input-validations>\n", dependencies: [{ kind: "directive", type: i1.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i2.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { kind: "directive", type: i3.TooltipDirective, selector: "[tooltip], [tooltipHtml]", inputs: ["containerClass", "tooltipAnimation", "tooltipFadeDuration", "isOpen", "tooltipHtml", "tooltip", "tooltipPlacement", "placement", "tooltipIsOpen", "tooltipEnable", "isDisabled", "tooltipAppendToBody", "container", "tooltipClass", "tooltipContext", "tooltipPopupDelay", "delay", "tooltipTrigger", "triggers", "adaptivePosition"], outputs: ["tooltipChange", "tooltipStateChanged", "onShown", "onHidden"], exportAs: ["bs-tooltip"] }, { kind: "component", type: i4.InputValidationsComponent, selector: "input-validations", inputs: ["messages"] }, { kind: "pipe", type: i1.AsyncPipe, name: "async" }] });
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: InputTextareaComponent, decorators: [{
type: Component,
args: [{ selector: 'input-textarea', providers: [{
provide: NG_VALUE_ACCESSOR,
useExisting: InputTextareaComponent,
multi: true
}], template: "<label *ngIf=\"label\" [attr.for]=\"identifier\">\n {{label}}\n <span class=\"required-symbol\" *ngIf=\"isRequired\"> *</span>\n <i class=\"fa fa-question-circle ml-2\" tooltip=\"{{help}}\" container=\"body\" *ngIf=\"help\"></i>\n</label>\n\n<textarea\n rows=\"5\"\n class=\"form-control\" \n [disabled]=\"disabled\" \n [maxlength]=\"maxlength\"\n [placeholder]=\"placeholder\"\n [(ngModel)]=\"value\"\n [ngClass]=\"{\n 'is-valid': showValidations && !disabled && touched && !(invalid | async),\n 'is-invalid': showValidations && !disabled && touched && (invalid | async)\n }\"\n [id]=\"identifier\">\n</textarea>\n\n<small class=\"text-muted\" *ngIf=\"description\">{{description}}</small>\n\n<input-validations\n *ngIf=\"showValidations && !disabled && touched && (invalid | async)\"\n [messages]=\"failures | async\">\n</input-validations>\n" }]
}], ctorParameters: function () { return [{ type: Array, decorators: [{
type: Optional
}, {
type: Inject,
args: [NG_VALIDATORS]
}] }, { type: Array, decorators: [{
type: Optional
}, {
type: Inject,
args: [NG_ASYNC_VALIDATORS]
}] }, { type: undefined, decorators: [{
type: Inject,
args: [INPUT_FORMS_CONFIG]
}] }]; }, propDecorators: { placeholder: [{
type: Input
}], maxlength: [{
type: Input
}], model: [{
type: ViewChild,
args: [NgModel, { static: true }]
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiaW5wdXQtdGV4dGFyZWEuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmd4LXVpLWhlcm8vc3JjL2xpYi9pbnB1dC1mb3Jtcy9jb21wb25lbnRzL2lucHV0LXRleHRhcmVhL2lucHV0LXRleHRhcmVhLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25neC11aS1oZXJvL3NyYy9saWIvaW5wdXQtZm9ybXMvY29tcG9uZW50cy9pbnB1dC10ZXh0YXJlYS9pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sRUFBRSxLQUFLLEVBQVUsUUFBUSxFQUFFLFNBQVMsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUN0RixPQUFPLEVBQUUsbUJBQW1CLEVBQUUsYUFBYSxFQUFFLGlCQUFpQixFQUFFLE9BQU8sRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRWhHLE9BQU8sRUFBRSxXQUFXLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUV0RCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSxvQ0FBb0MsQ0FBQzs7Ozs7O0FBRXhFLElBQUksVUFBVSxHQUFHLENBQUMsQ0FBQztBQVduQixNQUFNLE9BQU8sc0JBQXVCLFNBQVEsV0FBbUI7SUFRN0QsWUFDcUMsVUFBc0IsRUFDaEIsZUFBMkIsRUFDL0IsTUFBd0I7UUFFN0QsS0FBSyxDQUFDLFVBQVUsRUFBRSxlQUFlLEVBQUUsTUFBTSxDQUFDLENBQUM7UUFGTixXQUFNLEdBQU4sTUFBTSxDQUFrQjtRQVYvQyxnQkFBVyxHQUFHLEVBQUUsQ0FBQztRQUsxQixlQUFVLEdBQUcsa0JBQWtCLFVBQVUsRUFBRSxFQUFFLENBQUM7SUFRckQsQ0FBQztJQUVELFFBQVEsS0FBVSxDQUFDOztvSEFoQlIsc0JBQXNCLGtCQVNYLGFBQWEsNkJBQ2IsbUJBQW1CLDZCQUM5QixrQkFBa0I7d0dBWGxCLHNCQUFzQix5R0FOdEIsQ0FBQztZQUNWLE9BQU8sRUFBRSxpQkFBaUI7WUFDMUIsV0FBVyxFQUFFLHNCQUFzQjtZQUNuQyxLQUFLLEVBQUUsSUFBSTtTQUNaLENBQUMsaUVBTVMsT0FBTyxxRkN0QnBCLG8yQkEwQkE7NEZEUmEsc0JBQXNCO2tCQVRsQyxTQUFTOytCQUNFLGdCQUFnQixhQUVmLENBQUM7NEJBQ1YsT0FBTyxFQUFFLGlCQUFpQjs0QkFDMUIsV0FBVyx3QkFBd0I7NEJBQ25DLEtBQUssRUFBRSxJQUFJO3lCQUNaLENBQUM7OzBCQVdDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsYUFBYTs7MEJBQ2hDLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsbUJBQW1COzswQkFDdEMsTUFBTTsyQkFBRSxrQkFBa0I7NENBVmIsV0FBVztzQkFBMUIsS0FBSztnQkFDVSxTQUFTO3NCQUF4QixLQUFLO2dCQUU4QixLQUFLO3NCQUF4QyxTQUFTO3VCQUFDLE9BQU8sRUFBRSxFQUFDLE1BQU0sRUFBRSxJQUFJLEVBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEluamVjdCwgSW5wdXQsIE9uSW5pdCwgT3B0aW9uYWwsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgTkdfQVNZTkNfVkFMSURBVE9SUywgTkdfVkFMSURBVE9SUywgTkdfVkFMVUVfQUNDRVNTT1IsIE5nTW9kZWwgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XG5cbmltcG9ydCB7IEVsZW1lbnRCYXNlIH0gZnJvbSAnLi4vLi4vYmFzZS9lbGVtZW50LWJhc2UnO1xuaW1wb3J0IHsgSW5wdXRGb3Jtc0NvbmZpZyB9IGZyb20gJy4uLy4uL2lucHV0LWZvcm1zLWNvbmZpZyc7XG5pbXBvcnQgeyBJTlBVVF9GT1JNU19DT05GSUcgfSBmcm9tICcuLi8uLi9pbnB1dC1mb3Jtcy1jb25maWcuY29uc3RhbnRzJztcblxubGV0IGlkZW50aWZpZXIgPSAwO1xuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICdpbnB1dC10ZXh0YXJlYScsXG4gIHRlbXBsYXRlVXJsOiAnLi9pbnB1dC10ZXh0YXJlYS5jb21wb25lbnQuaHRtbCcsXG4gIHByb3ZpZGVyczogW3tcbiAgICBwcm92aWRlOiBOR19WQUxVRV9BQ0NFU1NPUixcbiAgICB1c2VFeGlzdGluZzogSW5wdXRUZXh0YXJlYUNvbXBvbmVudCxcbiAgICBtdWx0aTogdHJ1ZVxuICB9XVxufSlcbmV4cG9ydCBjbGFzcyBJbnB1dFRleHRhcmVhQ29tcG9uZW50IGV4dGVuZHMgRWxlbWVudEJhc2U8c3RyaW5nPiBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gIEBJbnB1dCgpIHB1YmxpYyBwbGFjZWhvbGRlciA9ICcnO1xuICBASW5wdXQoKSBwdWJsaWMgbWF4bGVuZ3RoOiBudW1iZXI7XG5cbiAgQFZpZXdDaGlsZChOZ01vZGVsLCB7c3RhdGljOiB0cnVlfSkgbW9kZWw6IE5nTW9kZWw7XG5cbiAgcHVibGljIGlkZW50aWZpZXIgPSBgaW5wdXQtdGV4dGFyZWEtJHtpZGVudGlmaWVyKyt9YDtcblxuICBjb25zdHJ1Y3RvcihcbiAgICBAT3B0aW9uYWwoKSBASW5qZWN0KE5HX1ZBTElEQVRPUlMpIHZhbGlkYXRvcnM6IEFycmF5PGFueT4sXG4gICAgQE9wdGlvbmFsKCkgQEluamVjdChOR19BU1lOQ19WQUxJREFUT1JTKSBhc3luY1ZhbGlkYXRvcnM6IEFycmF5PGFueT4sXG4gICAgQEluamVjdCggSU5QVVRfRk9STVNfQ09ORklHICkgcHVibGljIGNvbmZpZzogSW5wdXRGb3Jtc0NvbmZpZ1xuICApIHtcbiAgICBzdXBlcih2YWxpZGF0b3JzLCBhc3luY1ZhbGlkYXRvcnMsIGNvbmZpZyk7XG4gIH1cblxuICBuZ09uSW5pdCgpOiB2b2lkIHt9XG59XG4iLCI8bGFiZWwgKm5nSWY9XCJsYWJlbFwiIFthdHRyLmZvcl09XCJpZGVudGlmaWVyXCI+XG4gIHt7bGFiZWx9fVxuICA8c3BhbiBjbGFzcz1cInJlcXVpcmVkLXN5bWJvbFwiICpuZ0lmPVwiaXNSZXF1aXJlZFwiPiAqPC9zcGFuPlxuICA8aSBjbGFzcz1cImZhIGZhLXF1ZXN0aW9uLWNpcmNsZSBtbC0yXCIgdG9vbHRpcD1cInt7aGVscH19XCIgY29udGFpbmVyPVwiYm9keVwiICpuZ0lmPVwiaGVscFwiPjwvaT5cbjwvbGFiZWw+XG5cbjx0ZXh0YXJlYVxuICByb3dzPVwiNVwiXG4gIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgICBcbiAgW2Rpc2FibGVkXT1cImRpc2FibGVkXCIgXG4gIFttYXhsZW5ndGhdPVwibWF4bGVuZ3RoXCJcbiAgW3BsYWNlaG9sZGVyXT1cInBsYWNlaG9sZGVyXCJcbiAgWyhuZ01vZGVsKV09XCJ2YWx1ZVwiXG4gIFtuZ0NsYXNzXT1cIntcbiAgICAnaXMtdmFsaWQnOiBzaG93VmFsaWRhdGlvbnMgJiYgIWRpc2FibGVkICYmIHRvdWNoZWQgJiYgIShpbnZhbGlkIHwgYXN5bmMpLFxuICAgICdpcy1pbnZhbGlkJzogc2hvd1ZhbGlkYXRpb25zICYmICFkaXNhYmxlZCAmJiB0b3VjaGVkICYmIChpbnZhbGlkIHwgYXN5bmMpXG4gIH1cIlxuICBbaWRdPVwiaWRlbnRpZmllclwiPlxuPC90ZXh0YXJlYT5cblxuPHNtYWxsIGNsYXNzPVwidGV4dC1tdXRlZFwiICpuZ0lmPVwiZGVzY3JpcHRpb25cIj57e2Rlc2NyaXB0aW9ufX08L3NtYWxsPlxuXG48aW5wdXQtdmFsaWRhdGlvbnNcbiAgKm5nSWY9XCJzaG93VmFsaWRhdGlvbnMgJiYgIWRpc2FibGVkICYmIHRvdWNoZWQgJiYgKGludmFsaWQgfCBhc3luYylcIlxuICBbbWVzc2FnZXNdPVwiZmFpbHVyZXMgfCBhc3luY1wiPlxuPC9pbnB1dC12YWxpZGF0aW9ucz5cbiJdfQ==