@ng-flexy/form
Version:
Flexy components and tools to build Angular 8+ applications
39 lines • 5.34 kB
JavaScript
import { Pipe } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import { FlexyLoggerService } from '@ng-flexy/core';
const REQUIRED_PATTERN_KEY = 'requiredPattern';
export class FlexyFormFirstErrorPipe {
constructor(translateService, logger) {
this.translateService = translateService;
this.logger = logger;
}
transform(errors) {
if (errors && Object.keys(errors) && Object.keys(errors).length) {
const key = Object.keys(errors)[0];
const error = typeof errors[key] === 'object' ? Object.assign({}, errors[key]) : '';
this.logger.debug('translate', key, errors[key]);
if (key === 'pattern') {
const patternKey = 'FLEXY_FORM_VALIDATION_PATTERN_' + error[REQUIRED_PATTERN_KEY];
const pattern = this.translateService.instant(patternKey);
if (pattern && pattern !== patternKey) {
error[REQUIRED_PATTERN_KEY] = pattern;
}
this.logger.debug('Validation error message: Check pattern translate', patternKey);
}
return this.translateService.instant('FLEXY_FORM_VALIDATION_' +
key
.split('-')
.join('_')
.toUpperCase(), error);
}
return '';
}
}
FlexyFormFirstErrorPipe.decorators = [
{ type: Pipe, args: [{ name: 'firstError' },] }
];
FlexyFormFirstErrorPipe.ctorParameters = () => [
{ type: TranslateService },
{ type: FlexyLoggerService }
];
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlyc3QtZXJyb3IucGlwZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2Zvcm0vc3JjL2xpYi9waXBlcy9maXJzdC1lcnJvci5waXBlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxJQUFJLEVBQWlCLE1BQU0sZUFBZSxDQUFDO0FBQ3BELE9BQU8sRUFBRSxnQkFBZ0IsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBQ3ZELE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBRXBELE1BQU0sb0JBQW9CLEdBQUcsaUJBQWlCLENBQUM7QUFHL0MsTUFBTSxPQUFPLHVCQUF1QjtJQUNsQyxZQUFvQixnQkFBa0MsRUFBVSxNQUEwQjtRQUF0RSxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQWtCO1FBQVUsV0FBTSxHQUFOLE1BQU0sQ0FBb0I7SUFBRyxDQUFDO0lBRTlGLFNBQVMsQ0FBQyxNQUFXO1FBQ25CLElBQUksTUFBTSxJQUFJLE1BQU0sQ0FBQyxJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxNQUFNLEVBQUU7WUFDL0QsTUFBTSxHQUFHLEdBQUcsTUFBTSxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLENBQUMsQ0FBQztZQUNuQyxNQUFNLEtBQUssR0FBRyxPQUFPLE1BQU0sQ0FBQyxHQUFHLENBQUMsS0FBSyxRQUFRLENBQUMsQ0FBQyxtQkFBTSxNQUFNLENBQUMsR0FBRyxDQUFDLEVBQUcsQ0FBQyxDQUFDLEVBQUUsQ0FBQztZQUN4RSxJQUFJLENBQUMsTUFBTSxDQUFDLEtBQUssQ0FBQyxXQUFXLEVBQUUsR0FBRyxFQUFFLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQyxDQUFDO1lBQ2pELElBQUksR0FBRyxLQUFLLFNBQVMsRUFBRTtnQkFDckIsTUFBTSxVQUFVLEdBQUcsZ0NBQWdDLEdBQUcsS0FBSyxDQUFDLG9CQUFvQixDQUFDLENBQUM7Z0JBQ2xGLE1BQU0sT0FBTyxHQUFHLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQUMsVUFBVSxDQUFDLENBQUM7Z0JBQzFELElBQUksT0FBTyxJQUFJLE9BQU8sS0FBSyxVQUFVLEVBQUU7b0JBQ3JDLEtBQUssQ0FBQyxvQkFBb0IsQ0FBQyxHQUFHLE9BQU8sQ0FBQztpQkFDdkM7Z0JBQ0QsSUFBSSxDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsbURBQW1ELEVBQUUsVUFBVSxDQUFDLENBQUM7YUFDcEY7WUFFRCxPQUFPLElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxPQUFPLENBQ2xDLHdCQUF3QjtnQkFDdEIsR0FBRztxQkFDQSxLQUFLLENBQUMsR0FBRyxDQUFDO3FCQUNWLElBQUksQ0FBQyxHQUFHLENBQUM7cUJBQ1QsV0FBVyxFQUFFLEVBQ2xCLEtBQUssQ0FDTixDQUFDO1NBQ0g7UUFDRCxPQUFPLEVBQUUsQ0FBQztJQUNaLENBQUM7OztZQTVCRixJQUFJLFNBQUMsRUFBRSxJQUFJLEVBQUUsWUFBWSxFQUFFOzs7WUFMbkIsZ0JBQWdCO1lBQ2hCLGtCQUFrQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IFBpcGUsIFBpcGVUcmFuc2Zvcm0gfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFRyYW5zbGF0ZVNlcnZpY2UgfSBmcm9tICdAbmd4LXRyYW5zbGF0ZS9jb3JlJztcbmltcG9ydCB7IEZsZXh5TG9nZ2VyU2VydmljZSB9IGZyb20gJ0BuZy1mbGV4eS9jb3JlJztcblxuY29uc3QgUkVRVUlSRURfUEFUVEVSTl9LRVkgPSAncmVxdWlyZWRQYXR0ZXJuJztcblxuQFBpcGUoeyBuYW1lOiAnZmlyc3RFcnJvcicgfSlcbmV4cG9ydCBjbGFzcyBGbGV4eUZvcm1GaXJzdEVycm9yUGlwZSBpbXBsZW1lbnRzIFBpcGVUcmFuc2Zvcm0ge1xuICBjb25zdHJ1Y3Rvcihwcml2YXRlIHRyYW5zbGF0ZVNlcnZpY2U6IFRyYW5zbGF0ZVNlcnZpY2UsIHByaXZhdGUgbG9nZ2VyOiBGbGV4eUxvZ2dlclNlcnZpY2UpIHt9XG5cbiAgdHJhbnNmb3JtKGVycm9yczogYW55KTogc3RyaW5nIHtcbiAgICBpZiAoZXJyb3JzICYmIE9iamVjdC5rZXlzKGVycm9ycykgJiYgT2JqZWN0LmtleXMoZXJyb3JzKS5sZW5ndGgpIHtcbiAgICAgIGNvbnN0IGtleSA9IE9iamVjdC5rZXlzKGVycm9ycylbMF07XG4gICAgICBjb25zdCBlcnJvciA9IHR5cGVvZiBlcnJvcnNba2V5XSA9PT0gJ29iamVjdCcgPyB7IC4uLmVycm9yc1trZXldIH0gOiAnJztcbiAgICAgIHRoaXMubG9nZ2VyLmRlYnVnKCd0cmFuc2xhdGUnLCBrZXksIGVycm9yc1trZXldKTtcbiAgICAgIGlmIChrZXkgPT09ICdwYXR0ZXJuJykge1xuICAgICAgICBjb25zdCBwYXR0ZXJuS2V5ID0gJ0ZMRVhZX0ZPUk1fVkFMSURBVElPTl9QQVRURVJOXycgKyBlcnJvcltSRVFVSVJFRF9QQVRURVJOX0tFWV07XG4gICAgICAgIGNvbnN0IHBhdHRlcm4gPSB0aGlzLnRyYW5zbGF0ZVNlcnZpY2UuaW5zdGFudChwYXR0ZXJuS2V5KTtcbiAgICAgICAgaWYgKHBhdHRlcm4gJiYgcGF0dGVybiAhPT0gcGF0dGVybktleSkge1xuICAgICAgICAgIGVycm9yW1JFUVVJUkVEX1BBVFRFUk5fS0VZXSA9IHBhdHRlcm47XG4gICAgICAgIH1cbiAgICAgICAgdGhpcy5sb2dnZXIuZGVidWcoJ1ZhbGlkYXRpb24gZXJyb3IgbWVzc2FnZTogQ2hlY2sgcGF0dGVybiB0cmFuc2xhdGUnLCBwYXR0ZXJuS2V5KTtcbiAgICAgIH1cblxuICAgICAgcmV0dXJuIHRoaXMudHJhbnNsYXRlU2VydmljZS5pbnN0YW50KFxuICAgICAgICAnRkxFWFlfRk9STV9WQUxJREFUSU9OXycgK1xuICAgICAgICAgIGtleVxuICAgICAgICAgICAgLnNwbGl0KCctJylcbiAgICAgICAgICAgIC5qb2luKCdfJylcbiAgICAgICAgICAgIC50b1VwcGVyQ2FzZSgpLFxuICAgICAgICBlcnJvclxuICAgICAgKTtcbiAgICB9XG4gICAgcmV0dXJuICcnO1xuICB9XG59XG4iXX0=