ng-fveh
Version:
NG-FVEH - Some helpers to help you with form validation :)
59 lines (58 loc) • 4.18 kB
JavaScript
/**
* @fileoverview added by tsickle
* @suppress {checkTypes} checked by tsc
*/
import { Component, Input } from '@angular/core';
import { FormControl } from '@angular/forms';
import { NgFvehLibService } from '../../ng-fveh-lib.service';
export class ErrorsPresenterComponent {
/**
* @param {?} service
*/
constructor(service) {
this.service = service;
}
/**
* @return {?}
*/
getFieldErrors() {
return Object.keys(this.field.errors);
}
/**
* @param {?} errorPropertyName
* @return {?}
*/
getErrorMessage(errorPropertyName) {
const /** @type {?} */ errorPayload = this.field.errors[errorPropertyName];
return this.service.getMessage(errorPropertyName, errorPayload);
}
/**
* @return {?}
*/
hasErrors() {
return this.field.touched && this.field.invalid && !!this.field.errors;
}
}
ErrorsPresenterComponent.decorators = [
{ type: Component, args: [{
selector: 'fveh-errors-presenter',
template: `<div *ngIf="hasErrors()">
<div *ngFor="let error of getFieldErrors()">{{ getErrorMessage(error) }}</div>
</div>`,
styles: [``],
},] },
];
/** @nocollapse */
ErrorsPresenterComponent.ctorParameters = () => [
{ type: NgFvehLibService }
];
ErrorsPresenterComponent.propDecorators = {
field: [{ type: Input }]
};
function ErrorsPresenterComponent_tsickle_Closure_declarations() {
/** @type {?} */
ErrorsPresenterComponent.prototype.field;
/** @type {?} */
ErrorsPresenterComponent.prototype.service;
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZXJyb3JzLXByZXNlbnRlci5jb21wb25lbnQuanMiLCJzb3VyY2VSb290Ijoibmc6Ly9uZy1mdmVoLyIsInNvdXJjZXMiOlsibGliL2NvbXBvbmVudHMvZXJyb3JzLXByZXNlbnRlci9lcnJvcnMtcHJlc2VudGVyLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiOzs7O0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDakQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBUzdELE1BQU07Ozs7SUFHSixZQUFtQixPQUF5QjtRQUF6QixZQUFPLEdBQVAsT0FBTyxDQUFrQjtLQUFJOzs7O0lBRWhELGNBQWM7UUFDWixPQUFPLE1BQU0sQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUMsQ0FBQztLQUN2Qzs7Ozs7SUFFRCxlQUFlLENBQUMsaUJBQXlCO1FBQ3ZDLHVCQUFNLFlBQVksR0FBRyxJQUFJLENBQUMsS0FBSyxDQUFDLE1BQU0sQ0FBQyxpQkFBaUIsQ0FBQyxDQUFDO1FBQzFELE9BQU8sSUFBSSxDQUFDLE9BQU8sQ0FBQyxVQUFVLENBQUMsaUJBQWlCLEVBQUUsWUFBWSxDQUFDLENBQUM7S0FDakU7Ozs7SUFFRCxTQUFTO1FBQ1AsT0FBTyxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxJQUFJLENBQUMsS0FBSyxDQUFDLE9BQU8sSUFBSSxDQUFDLENBQUMsSUFBSSxDQUFDLEtBQUssQ0FBQyxNQUFNLENBQUM7S0FDeEU7OztZQXZCRixTQUFTLFNBQUM7Z0JBQ1QsUUFBUSxFQUFFLHVCQUF1QjtnQkFDakMsUUFBUSxFQUFFOztPQUVMO2dCQUNMLE1BQU0sRUFBRSxDQUFDLEVBQUUsQ0FBQzthQUNiOzs7O1lBUlEsZ0JBQWdCOzs7b0JBVXRCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Db250cm9sIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ0Z2ZWhMaWJTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vbmctZnZlaC1saWIuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2Z2ZWgtZXJyb3JzLXByZXNlbnRlcicsXHJcbiAgdGVtcGxhdGU6IGA8ZGl2ICpuZ0lmPVwiaGFzRXJyb3JzKClcIj5cclxuICA8ZGl2ICpuZ0Zvcj1cImxldCBlcnJvciBvZiBnZXRGaWVsZEVycm9ycygpXCI+e3sgZ2V0RXJyb3JNZXNzYWdlKGVycm9yKSB9fTwvZGl2PlxyXG48L2Rpdj5gLFxyXG4gIHN0eWxlczogW2BgXSxcclxufSlcclxuZXhwb3J0IGNsYXNzIEVycm9yc1ByZXNlbnRlckNvbXBvbmVudCB7XHJcbiAgQElucHV0KCkgZmllbGQ6IEZvcm1Db250cm9sO1xyXG5cclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgc2VydmljZTogTmdGdmVoTGliU2VydmljZSkge31cclxuXHJcbiAgZ2V0RmllbGRFcnJvcnMoKSB7XHJcbiAgICByZXR1cm4gT2JqZWN0LmtleXModGhpcy5maWVsZC5lcnJvcnMpO1xyXG4gIH1cclxuXHJcbiAgZ2V0RXJyb3JNZXNzYWdlKGVycm9yUHJvcGVydHlOYW1lOiBzdHJpbmcpIHtcclxuICAgIGNvbnN0IGVycm9yUGF5bG9hZCA9IHRoaXMuZmllbGQuZXJyb3JzW2Vycm9yUHJvcGVydHlOYW1lXTtcclxuICAgIHJldHVybiB0aGlzLnNlcnZpY2UuZ2V0TWVzc2FnZShlcnJvclByb3BlcnR5TmFtZSwgZXJyb3JQYXlsb2FkKTtcclxuICB9XHJcblxyXG4gIGhhc0Vycm9ycygpIHtcclxuICAgIHJldHVybiB0aGlzLmZpZWxkLnRvdWNoZWQgJiYgdGhpcy5maWVsZC5pbnZhbGlkICYmICEhdGhpcy5maWVsZC5lcnJvcnM7XHJcbiAgfVxyXG59XHJcbiJdfQ==