projects/netgrif-components-core/src/lib/data-fields/text-field/abstract-text-errors.component.ts
AbstractBaseDataFieldComponent
selector | ncc-text-errors |
Properties |
|
Methods |
|
Inputs |
Protected
constructor(_translate: TranslateService, dataFieldPortalData: DataFieldPortalData<T>)
|
|||||||||
Parameters :
|
dataField | |
Type : T
|
|
Inherited from
AbstractBaseDataFieldComponent
|
|
Defined in
AbstractBaseDataFieldComponent:13
|
formControlRef | |
Type : FormControl
|
|
Inherited from
AbstractBaseDataFieldComponent
|
|
Defined in
AbstractBaseDataFieldComponent:14
|
showLargeLayout | |
Type : WrappedBoolean
|
|
Inherited from
AbstractBaseDataFieldComponent
|
|
Defined in
AbstractBaseDataFieldComponent:15
|
Protected buildErrorMessage | |||||||||
buildErrorMessage(textField: TextField | TextAreaField, formControlRef: FormControl)
|
|||||||||
Parameters :
Returns :
any
|
Protected resolveErrorMessage | ||||||||||||
resolveErrorMessage(textField: TextField | TextAreaField, search: string, generalMessage: string)
|
||||||||||||
Parameters :
Returns :
any
|
Public checkPropertyInComponent | ||||||
checkPropertyInComponent(property: string)
|
||||||
Inherited from
AbstractBaseDataFieldComponent
|
||||||
Defined in
AbstractBaseDataFieldComponent:33
|
||||||
Parameters :
Returns :
boolean
|
Public hasHint |
hasHint()
|
Inherited from
AbstractBaseDataFieldComponent
|
Defined in
AbstractBaseDataFieldComponent:42
|
Returns :
boolean
|
Public hasTitle |
hasTitle()
|
Inherited from
AbstractBaseDataFieldComponent
|
Defined in
AbstractBaseDataFieldComponent:38
|
Returns :
boolean
|
ngOnDestroy |
ngOnDestroy()
|
Inherited from
AbstractBaseDataFieldComponent
|
Defined in
AbstractBaseDataFieldComponent:29
|
Returns :
void
|
Public dataField |
Type : T
|
Decorators :
@Input()
|
Inherited from
AbstractBaseDataFieldComponent
|
Defined in
AbstractBaseDataFieldComponent:13
|
Public formControlRef |
Type : FormControl
|
Decorators :
@Input()
|
Inherited from
AbstractBaseDataFieldComponent
|
Defined in
AbstractBaseDataFieldComponent:14
|
Public showLargeLayout |
Type : WrappedBoolean
|
Decorators :
@Input()
|
Inherited from
AbstractBaseDataFieldComponent
|
Defined in
AbstractBaseDataFieldComponent:15
|
import {FormControl} from '@angular/forms';
import {TextField, TextFieldValidation} from './models/text-field';
import {TranslateService} from '@ngx-translate/core';
import {TextAreaField} from './models/text-area-field';
import {Component, Inject, Optional} from "@angular/core";
import {DATA_FIELD_PORTAL_DATA, DataFieldPortalData} from "../models/data-field-portal-data-injection-token";
import {AbstractBaseDataFieldComponent} from "../base-component/abstract-base-data-field.component";
@Component({
selector: 'ncc-text-errors',
template: ''
})
export abstract class AbstractTextErrorsComponent<T extends TextField> extends AbstractBaseDataFieldComponent<T>{
protected constructor(protected _translate: TranslateService,
@Optional() @Inject(DATA_FIELD_PORTAL_DATA) dataFieldPortalData: DataFieldPortalData<T>) {
super(dataFieldPortalData);
}
protected buildErrorMessage(textField: TextField | TextAreaField, formControlRef: FormControl) {
if (formControlRef.hasError(TextFieldValidation.REQUIRED)) {
return this._translate.instant('dataField.validations.required');
}
if (formControlRef.hasError(TextFieldValidation.VALID_MIN_LENGTH)) {
return this.resolveErrorMessage(textField, TextFieldValidation.MIN_LENGTH,
this._translate.instant('dataField.validations.minLength', {length: formControlRef.errors.minlength.requiredLength}));
}
if (formControlRef.hasError(TextFieldValidation.VALID_MAX_LENGTH)) {
return this.resolveErrorMessage(textField, TextFieldValidation.MAX_LENGTH,
this._translate.instant('dataField.validations.maxLength', {length: formControlRef.errors.maxlength.requiredLength}));
}
if (formControlRef.hasError(TextFieldValidation.PATTERN)) {
return this.resolveErrorMessage(textField, TextFieldValidation.REGEX, this._translate.instant('dataField.validations.pattern'));
}
if (formControlRef.hasError(TextFieldValidation.VALID_TEL_NUMBER)) {
return this.resolveErrorMessage(
textField, TextFieldValidation.TEL_NUMBER, this._translate.instant('dataField.validations.phone')
);
}
if (formControlRef.hasError(TextFieldValidation.EMAIL)) {
return this.resolveErrorMessage(textField, TextFieldValidation.EMAIL, this._translate.instant('dataField.validations.email'));
}
return '';
}
protected resolveErrorMessage(textField: TextField | TextAreaField, search: string, generalMessage: string) {
const validation = textField.validations.find(value => value.validationRule.includes(search));
if (validation.validationMessage && validation.validationMessage !== '') {
return validation.validationMessage;
}
return generalMessage;
}
}