@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
63 lines • 12 kB
JavaScript
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==