UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

63 lines 12 kB
import { I18nFieldValidation } from './models/i18n-field'; import { Component, Inject, Optional } from '@angular/core'; import { AbstractBaseDataFieldComponent } from "../base-component/abstract-base-data-field.component"; import { DATA_FIELD_PORTAL_DATA } from "../models/data-field-portal-data-injection-token"; import * as i0 from "@angular/core"; import * as i1 from "./language-icons.service"; import * as i2 from "@ngx-translate/core"; export class AbstractI18nErrorsComponent extends AbstractBaseDataFieldComponent { languageIconsService; _translate; constructor(languageIconsService, _translate, dataFieldPortalData) { super(dataFieldPortalData); this.languageIconsService = languageIconsService; this._translate = _translate; } getErrorMessage() { if (this.formControlRef.hasError(I18nFieldValidation.REQUIRED_I18N)) { return this._translate.instant('dataField.validations.requiredI18n'); } if (this.formControlRef.hasError(I18nFieldValidation.TRANSLATION_REQUIRED)) { const tmp = this.dataField.validations.find(value => value.validationRule.includes(I18nFieldValidation.TRANSLATION_REQUIRED)).validationRule.split(' '); const missingLanguages = tmp[1] .replace(' ', '') .split(',') .filter(lanCode => !Object.keys(this.formControlRef.value.translations).includes(lanCode)) .map(lanCode => this.languageIconsService.languageIcons[lanCode].languageName) .join(', '); return this.resolveErrorMessage(I18nFieldValidation.TRANSLATION_REQUIRED, this._translate.instant('dataField.validations.translationRequired', { translation: missingLanguages })); } if (this.formControlRef.hasError(I18nFieldValidation.TRANSLATION_ONLY)) { const tmp = this.dataField.validations.find(value => value.validationRule.includes(I18nFieldValidation.TRANSLATION_ONLY)).validationRule.split(' '); const onlyLanguages = tmp[1] .replace(' ', '') .split(',') .map(lanCode => this.languageIconsService.languageIcons[lanCode].languageName) .join(', '); return this.resolveErrorMessage(I18nFieldValidation.TRANSLATION_ONLY, this._translate.instant('dataField.validations.translationOnly', { translation: onlyLanguages })); } return ''; } resolveErrorMessage(search, generalMessage) { const validation = this.dataField.validations.find(value => value.validationRule.includes(search)); if (validation.validationMessage && validation.validationMessage !== '') { return validation.validationMessage; } return generalMessage; } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractI18nErrorsComponent, deps: [{ token: i1.LanguageIconsService }, { token: i2.TranslateService }, { token: DATA_FIELD_PORTAL_DATA, optional: true }], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: AbstractI18nErrorsComponent, selector: "ncc-abstract-i18n-errors", usesInheritance: true, ngImport: i0, template: '', isInline: true }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractI18nErrorsComponent, decorators: [{ type: Component, args: [{ selector: 'ncc-abstract-i18n-errors', template: '' }] }], ctorParameters: () => [{ type: i1.LanguageIconsService }, { type: i2.TranslateService }, { type: undefined, decorators: [{ type: Optional }, { type: Inject, args: [DATA_FIELD_PORTAL_DATA] }] }] }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtaTE4bi1lcnJvcnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9pMThuLWZpZWxkL2Fic3RyYWN0LWkxOG4tZXJyb3JzLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQVksbUJBQW1CLEVBQUMsTUFBTSxxQkFBcUIsQ0FBQztBQUNuRSxPQUFPLEVBQUMsU0FBUyxFQUFFLE1BQU0sRUFBRSxRQUFRLEVBQUMsTUFBTSxlQUFlLENBQUM7QUFFMUQsT0FBTyxFQUFDLDhCQUE4QixFQUFDLE1BQU0sc0RBQXNELENBQUM7QUFDcEcsT0FBTyxFQUFDLHNCQUFzQixFQUFzQixNQUFNLGtEQUFrRCxDQUFDOzs7O0FBTzdHLE1BQU0sT0FBZ0IsMkJBQTRCLFNBQVEsOEJBQXlDO0lBRy9EO0lBQ0E7SUFEaEMsWUFBZ0Msb0JBQTBDLEVBQzFDLFVBQTRCLEVBQ00sbUJBQW1EO1FBQ2pILEtBQUssQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO1FBSEMseUJBQW9CLEdBQXBCLG9CQUFvQixDQUFzQjtRQUMxQyxlQUFVLEdBQVYsVUFBVSxDQUFrQjtJQUc1RCxDQUFDO0lBRUQsZUFBZTtRQUNYLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsYUFBYSxDQUFDLEVBQUU7WUFDakUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxvQ0FBb0MsQ0FBQyxDQUFDO1NBQ3hFO1FBQ0QsSUFBSSxJQUFJLENBQUMsY0FBYyxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxvQkFBb0IsQ0FBQyxFQUFFO1lBQ3hFLE1BQU0sR0FBRyxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsRUFB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ZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge0kxOG5GaWVsZCwgSTE4bkZpZWxkVmFsaWRhdGlvbn0gZnJvbSAnLi9tb2RlbHMvaTE4bi1maWVsZCc7XG5pbXBvcnQge0NvbXBvbmVudCwgSW5qZWN0LCBPcHRpb25hbH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge0xhbmd1YWdlSWNvbnNTZXJ2aWNlfSBmcm9tICcuL2xhbmd1YWdlLWljb25zLnNlcnZpY2UnO1xuaW1wb3J0IHtBYnN0cmFjdEJhc2VEYXRhRmllbGRDb21wb25lbnR9IGZyb20gXCIuLi9iYXNlLWNvbXBvbmVudC9hYnN0cmFjdC1iYXNlLWRhdGEtZmllbGQuY29tcG9uZW50XCI7XG5pbXBvcnQge0RBVEFfRklFTERfUE9SVEFMX0RBVEEsIERhdGFGaWVsZFBvcnRhbERhdGF9IGZyb20gXCIuLi9tb2RlbHMvZGF0YS1maWVsZC1wb3J0YWwtZGF0YS1pbmplY3Rpb24tdG9rZW5cIjtcblxuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1pMThuLWVycm9ycycsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0STE4bkVycm9yc0NvbXBvbmVudCBleHRlbmRzIEFic3RyYWN0QmFzZURhdGFGaWVsZENvbXBvbmVudDxJMThuRmllbGQ+IHtcblxuXG4gICAgcHJvdGVjdGVkIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBsYW5ndWFnZUljb25zU2VydmljZTogTGFuZ3VhZ2VJY29uc1NlcnZpY2UsXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgICAgICAgICAgICBAT3B0aW9uYWwoKSBASW5qZWN0KERBVEFfRklFTERfUE9SVEFMX0RBVEEpIGRhdGFGaWVsZFBvcnRhbERhdGE6IERhdGFGaWVsZFBvcnRhbERhdGE8STE4bkZpZWxkPikge1xuICAgICAgICBzdXBlcihkYXRhRmllbGRQb3J0YWxEYXRhKTtcbiAgICB9XG5cbiAgICBnZXRFcnJvck1lc3NhZ2UoKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sUmVmLmhhc0Vycm9yKEkxOG5GaWVsZFZhbGlkYXRpb24uUkVRVUlSRURfSTE4TikpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLnJlcXVpcmVkSTE4bicpO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sUmVmLmhhc0Vycm9yKEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fUkVRVUlSRUQpKSB7XG4gICAgICAgICAgICBjb25zdCB0bXAgPSB0aGlzLmRhdGFGaWVsZC52YWxpZGF0aW9ucy5maW5kKHZhbHVlID0+XG4gICAgICAgICAgICAgICAgdmFsdWUudmFsaWRhdGlvblJ1bGUuaW5jbHVkZXMoSTE4bkZpZWxkVmFsaWRhdGlvbi5UUkFOU0xBVElPTl9SRVFVSVJFRClcbiAgICAgICAgICAgICkudmFsaWRhdGlvblJ1bGUuc3BsaXQoJyAnKTtcbiAgICAgICAgICAgIGNvbnN0IG1pc3NpbmdMYW5ndWFnZXMgPSB0bXBbMV1cbiAgICAgICAgICAgICAgICAucmVwbGFjZSgnICcsICcnKVxuICAgICAgICAgICAgICAgIC5zcGxpdCgnLCcpXG4gICAgICAgICAgICAgICAgLmZpbHRlcihsYW5Db2RlID0+ICFPYmplY3Qua2V5cyh0aGlzLmZvcm1Db250cm9sUmVmLnZhbHVlLnRyYW5zbGF0aW9ucykuaW5jbHVkZXMobGFuQ29kZSkpXG4gICAgICAgICAgICAgICAgLm1hcChsYW5Db2RlID0+IHRoaXMubGFuZ3VhZ2VJY29uc1NlcnZpY2UubGFuZ3VhZ2VJY29uc1tsYW5Db2RlXS5sYW5ndWFnZU5hbWUpXG4gICAgICAgICAgICAgICAgLmpvaW4oJywgJyk7XG4gICAgICAgICAgICByZXR1cm4gdGhpcy5yZXNvbHZlRXJyb3JNZXNzYWdlKFxuICAgICAgICAgICAgICAgIEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fUkVRVUlSRUQsXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICdkYXRhRmllbGQudmFsaWRhdGlvbnMudHJhbnNsYXRpb25SZXF1aXJlZCcsXG4gICAgICAgICAgICAgICAgICAgIHt0cmFuc2xhdGlvbjogbWlzc2luZ0xhbmd1YWdlc31cbiAgICAgICAgICAgICAgICApXG4gICAgICAgICAgICApO1xuICAgICAgICB9XG4gICAgICAgIGlmICh0aGlzLmZvcm1Db250cm9sUmVmLmhhc0Vycm9yKEkxOG5GaWVsZFZhbGlkYXRpb24uVFJBTlNMQVRJT05fT05MWSkpIHtcbiAgICAgICAgICAgIGNvbnN0IHRtcCA9IHRoaXMuZGF0YUZpZWxkLnZhbGlkYXRpb25zLmZpbmQodmFsdWUgPT5cbiAgICAgICAgICAgICAgICB2YWx1ZS52YWxpZGF0aW9uUnVsZS5pbmNsdWRlcyhJMThuRmllbGRWYWxpZGF0aW9uLlRSQU5TTEFUSU9OX09OTFkpXG4gICAgICAgICAgICApLnZhbGlkYXRpb25SdWxlLnNwbGl0KCcgJyk7XG4gICAgICAgICAgICBjb25zdCBvbmx5TGFuZ3VhZ2VzID0gdG1wWzFdXG4gICAgICAgICAgICAgICAgLnJlcGxhY2UoJyAnLCAnJylcbiAgICAgICAgICAgICAgICAuc3BsaXQoJywnKVxuICAgICAgICAgICAgICAgIC5tYXAobGFuQ29kZSA9PiB0aGlzLmxhbmd1YWdlSWNvbnNTZXJ2aWNlLmxhbmd1YWdlSWNvbnNbbGFuQ29kZV0ubGFuZ3VhZ2VOYW1lKVxuICAgICAgICAgICAgICAgIC5qb2luKCcsICcpO1xuICAgICAgICAgICAgcmV0dXJuIHRoaXMucmVzb2x2ZUVycm9yTWVzc2FnZShcbiAgICAgICAgICAgICAgICBJMThuRmllbGRWYWxpZGF0aW9uLlRSQU5TTEFUSU9OX09OTFksXG4gICAgICAgICAgICAgICAgdGhpcy5fdHJhbnNsYXRlLmluc3RhbnQoXG4gICAgICAgICAgICAgICAgICAgICdkYXRhRmllbGQudmFsaWRhdGlvbnMudHJhbnNsYXRpb25Pbmx5JyxcbiAgICAgICAgICAgICAgICAgICAge3RyYW5zbGF0aW9uOiBvbmx5TGFuZ3VhZ2VzfVxuICAgICAgICAgICAgICAgIClcbiAgICAgICAgICAgICk7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuICcnO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCByZXNvbHZlRXJyb3JNZXNzYWdlKHNlYXJjaDogc3RyaW5nLCBnZW5lcmFsTWVzc2FnZTogc3RyaW5nKSB7XG4gICAgICAgIGNvbnN0IHZhbGlkYXRpb24gPSB0aGlzLmRhdGFGaWVsZC52YWxpZGF0aW9ucy5maW5kKHZhbHVlID0+IHZhbHVlLnZhbGlkYXRpb25SdWxlLmluY2x1ZGVzKHNlYXJjaCkpO1xuICAgICAgICBpZiAodmFsaWRhdGlvbi52YWxpZGF0aW9uTWVzc2FnZSAmJiB2YWxpZGF0aW9uLnZhbGlkYXRpb25NZXNzYWdlICE9PSAnJykge1xuICAgICAgICAgICAgcmV0dXJuIHZhbGlkYXRpb24udmFsaWRhdGlvbk1lc3NhZ2U7XG4gICAgICAgIH1cbiAgICAgICAgcmV0dXJuIGdlbmVyYWxNZXNzYWdlO1xuICAgIH1cbn1cbiJdfQ==