UNPKG

@ng-flexy/form

Version:

Flexy components and tools to build Angular 8+ applications

39 lines 5.34 kB
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=