import { Component, OnInit, Input } from '@angular/core'; import { FormControl, Validators } from '@angular/forms'; import { TextAreaOptions } from './TextAreaOptions'; import { Defaults } from '../../constant/defaults.constant'; import { Helper } from '../../helper'; @Component({ selector: 'rss-text-area', templateUrl: './text-area.component.html', styleUrls: ['./text-area.component.scss'] }) export class TextAreaComponent implements OnInit { @Input() config; @Input() control: FormControl; @Input() readonly: Boolean; @Input() label: any; @Input() minLength = Defaults.MIN_LENGTH; @Input() maxLength = Defaults.TEXTAREA_MAX_LENGTH; @Input() columns = Defaults.COLUMNS; @Input() rows = Defaults.ROWS; @Input() placeholder = Defaults.PLACEHOLDER; @Input() required: boolean = Defaults.REQUIRED; @Input() requiredError: string = Defaults.REQUIRED_ERROR_MESSAGE; emptyResponseMsg = Defaults.EMPTY_RESPONSE_MSG; constructor() { } ngOnInit() { if (this.config) { const config = new TextAreaOptions(this.config); Helper.merge(this, config); } if (!this.control) { console.error(Defaults.MISSING_FORM_CONTROL_ERROR_MESSAGE); } else { if (this.required) { this.control.setValidators(Validators.required); } } } displayRequiredError(fc: FormControl) { return fc.hasError('required') && Helper.displayRequiredError(fc); } }