@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
67 lines • 9.97 kB
JavaScript
import { Component, Inject, Optional, ViewChild } from '@angular/core';
import { of } from 'rxjs';
import { map, startWith } from 'rxjs/operators';
import { EnumerationFieldValidation } from '../models/enumeration-field';
import { DATA_FIELD_PORTAL_DATA } from "../../models/data-field-portal-data-injection-token";
import { AbstractBaseDataFieldComponent } from "../../base-component/abstract-base-data-field.component";
import * as i0 from "@angular/core";
import * as i1 from "@ngx-translate/core";
export class AbstractEnumerationAutocompleteDynamicFieldComponent extends AbstractBaseDataFieldComponent {
_translate;
text;
filteredOptions;
choiceSubscription;
constructor(_translate, dataFieldPortalData) {
super(dataFieldPortalData);
this._translate = _translate;
}
ngOnInit() {
this.filteredOptions = this.formControlRef.valueChanges.pipe(startWith(''), map(() => this.dataField.choices));
this.choiceSubscription = this.dataField.choicesChange$.subscribe(() => {
this.filteredOptions = of(this.dataField.choices);
});
}
ngAfterViewInit() {
this.dataField.input = this.text;
}
ngOnDestroy() {
this.filteredOptions = undefined;
this.choiceSubscription.unsubscribe();
}
change() {
if (this.text.nativeElement.value !== undefined) {
this.filteredOptions = of(this.dataField.choices);
}
}
renderSelection = (key) => {
if (key !== undefined && key !== '' && key !== null) {
if (this.dataField.choices.find(choice => choice.key === key)) {
return this.dataField.choices.find(choice => choice.key === key).value;
}
}
return key;
};
buildErrorMessage() {
if (this.formControlRef.hasError(EnumerationFieldValidation.REQUIRED)) {
return this._translate.instant('dataField.validations.required');
}
}
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractEnumerationAutocompleteDynamicFieldComponent, deps: [{ token: i1.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: AbstractEnumerationAutocompleteDynamicFieldComponent, selector: "ncc-abstract-enumeration-autocomplete-dynamic-field", viewQueries: [{ propertyName: "text", first: true, predicate: ["input"], descendants: true }], usesInheritance: true, ngImport: i0, template: '', isInline: true });
}
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AbstractEnumerationAutocompleteDynamicFieldComponent, decorators: [{
type: Component,
args: [{
selector: 'ncc-abstract-enumeration-autocomplete-dynamic-field',
template: ''
}]
}], ctorParameters: () => [{ type: i1.TranslateService }, { type: undefined, decorators: [{
type: Optional
}, {
type: Inject,
args: [DATA_FIELD_PORTAL_DATA]
}] }], propDecorators: { text: [{
type: ViewChild,
args: ['input']
}] } });
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYWJzdHJhY3QtZW51bWVyYXRpb24tYXV0b2NvbXBsZXRlLWR5bmFtaWMtZmllbGQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvbmV0Z3JpZi1jb21wb25lbnRzLWNvcmUvc3JjL2xpYi9kYXRhLWZpZWxkcy9lbnVtZXJhdGlvbi1maWVsZC9lbnVtZXJhdGlvbi1hdXRvY29tcGxldGUtZHluYW1pYy1maWVsZC9hYnN0cmFjdC1lbnVtZXJhdGlvbi1hdXRvY29tcGxldGUtZHluYW1pYy1maWVsZC5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUVILFNBQVMsRUFFVCxNQUFNLEVBR04sUUFBUSxFQUNSLFNBQVMsRUFDWixNQUFNLGVBQWUsQ0FBQztBQUN2QixPQUFPLEVBQWEsRUFBRSxFQUFlLE1BQU0sTUFBTSxDQUFDO0FBRWxELE9BQU8sRUFBQyxHQUFHLEVBQUUsU0FBUyxFQUFDLE1BQU0sZ0JBQWdCLENBQUM7QUFFOUMsT0FBTyxFQUFDLDBCQUEwQixFQUF3QixNQUFNLDZCQUE2QixDQUFDO0FBQzlGLE9BQU8sRUFBQyxzQkFBc0IsRUFBc0IsTUFBTSxxREFBcUQsQ0FBQztBQUNoSCxPQUFPLEVBQUMsOEJBQThCLEVBQUMsTUFBTSx5REFBeUQsQ0FBQzs7O0FBTXZHLE1BQU0sT0FBZ0Isb0RBQXFELFNBQVEsOEJBQXVEO0lBTWhIO0lBSkYsSUFBSSxDQUFhO0lBQ3JDLGVBQWUsQ0FBMkM7SUFDMUQsa0JBQWtCLENBQWU7SUFFakMsWUFBc0IsVUFBNEIsRUFDTSxtQkFBaUU7UUFDckgsS0FBSyxDQUFDLG1CQUFtQixDQUFDLENBQUM7UUFGVCxlQUFVLEdBQVYsVUFBVSxDQUFrQjtJQUdsRCxDQUFDO0lBRUQsUUFBUTtRQUNKLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLGNBQWMsQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUN4RCxTQUFTLENBQUMsRUFBRSxDQUFDLEVBQ2IsR0FBRyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQ3BDLENBQUM7UUFFSCxJQUFJLENBQUMsa0JBQWtCLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxjQUFjLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRTtZQUNsRSxJQUFJLENBQUMsZUFBZSxHQUFHLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLE9BQU8sQ0FBQyxDQUFDO1FBQ3RELENBQUMsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUVELGVBQWU7UUFDWCxJQUFJLENBQUMsU0FBUyxDQUFDLEtBQUssR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxXQUFXO1FBQ1AsSUFBSSxDQUFDLGVBQWUsR0FBRyxTQUFTLENBQUM7UUFDakMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFdBQVcsRUFBRSxDQUFDO0lBQzFDLENBQUM7SUFFRCxNQUFNO1FBQ0YsSUFBSSxJQUFJLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxLQUFLLEtBQUssU0FBUyxFQUFFO1lBQzdDLElBQUksQ0FBQyxlQUFlLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLENBQUM7U0FDckQ7SUFDTCxDQUFDO0lBRU0sZUFBZSxHQUFHLENBQUMsR0FBRyxFQUFFLEVBQUU7UUFDN0IsSUFBSSxHQUFHLEtBQUssU0FBUyxJQUFJLEdBQUcsS0FBSyxFQUFFLElBQUksR0FBRyxLQUFLLElBQUksRUFBRTtZQUNqRCxJQUFJLElBQUksQ0FBQyxTQUFTLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxNQUFNLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxHQUFHLEtBQUssR0FBRyxDQUFDLEVBQUU7Z0JBQzNELE9BQU8sSUFBSSxDQUFDLFNBQVMsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxFQUFFLENBQUMsTUFBTSxDQUFDLEdBQUcsS0FBSyxHQUFHLENBQUMsQ0FBQyxLQUFLLENBQUM7YUFDMUU7U0FDSjtRQUNELE9BQU8sR0FBRyxDQUFDO0lBQ2YsQ0FBQyxDQUFBO0lBRU0saUJBQWlCO1FBQ3BCLElBQUksSUFBSSxDQUFDLGNBQWMsQ0FBQyxRQUFRLENBQUMsMEJBQTBCLENBQUMsUUFBUSxDQUFDLEVBQUU7WUFDbkUsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLE9BQU8sQ0FBQyxnQ0FBZ0MsQ0FBQyxDQUFDO1NBQ3BFO0lBQ0wsQ0FBQzt3R0FsRGlCLG9EQUFvRCxrREFPdEMsc0JBQXNCOzRGQVBwQyxvREFBb0QsaU5BRjVELEVBQUU7OzRGQUVNLG9EQUFvRDtrQkFKekUsU0FBUzttQkFBQztvQkFDUCxRQUFRLEVBQUUscURBQXFEO29CQUMvRCxRQUFRLEVBQUUsRUFBRTtpQkFDZjs7MEJBUWdCLFFBQVE7OzBCQUFJLE1BQU07MkJBQUMsc0JBQXNCO3lDQUxsQyxJQUFJO3NCQUF2QixTQUFTO3VCQUFDLE9BQU8iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge1xuICAgIEFmdGVyVmlld0luaXQsXG4gICAgQ29tcG9uZW50LFxuICAgIEVsZW1lbnRSZWYsXG4gICAgSW5qZWN0LFxuICAgIE9uRGVzdHJveSxcbiAgICBPbkluaXQsXG4gICAgT3B0aW9uYWwsXG4gICAgVmlld0NoaWxkXG59IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBvZiwgU3Vic2NyaXB0aW9ufSBmcm9tICdyeGpzJztcbmltcG9ydCB7VHJhbnNsYXRlU2VydmljZX0gZnJvbSAnQG5neC10cmFuc2xhdGUvY29yZSc7XG5pbXBvcnQge21hcCwgc3RhcnRXaXRofSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0R5bmFtaWNFbnVtZXJhdGlvbkZpZWxkfSBmcm9tICcuLi9tb2RlbHMvZHluYW1pYy1lbnVtZXJhdGlvbi1maWVsZCc7XG5pbXBvcnQge0VudW1lcmF0aW9uRmllbGRWYWxpZGF0aW9uLCBFbnVtZXJhdGlvbkZpZWxkVmFsdWV9IGZyb20gJy4uL21vZGVscy9lbnVtZXJhdGlvbi1maWVsZCc7XG5pbXBvcnQge0RBVEFfRklFTERfUE9SVEFMX0RBVEEsIERhdGFGaWVsZFBvcnRhbERhdGF9IGZyb20gXCIuLi8uLi9tb2RlbHMvZGF0YS1maWVsZC1wb3J0YWwtZGF0YS1pbmplY3Rpb24tdG9rZW5cIjtcbmltcG9ydCB7QWJzdHJhY3RCYXNlRGF0YUZpZWxkQ29tcG9uZW50fSBmcm9tIFwiLi4vLi4vYmFzZS1jb21wb25lbnQvYWJzdHJhY3QtYmFzZS1kYXRhLWZpZWxkLmNvbXBvbmVudFwiO1xuXG5AQ29tcG9uZW50KHtcbiAgICBzZWxlY3RvcjogJ25jYy1hYnN0cmFjdC1lbnVtZXJhdGlvbi1hdXRvY29tcGxldGUtZHluYW1pYy1maWVsZCcsXG4gICAgdGVtcGxhdGU6ICcnXG59KVxuZXhwb3J0IGFic3RyYWN0IGNsYXNzIEFic3RyYWN0RW51bWVyYXRpb25BdXRvY29tcGxldGVEeW5hbWljRmllbGRDb21wb25lbnQgZXh0ZW5kcyBBYnN0cmFjdEJhc2VEYXRhRmllbGRDb21wb25lbnQ8RHluYW1pY0VudW1lcmF0aW9uRmllbGQ+IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3ksIEFmdGVyVmlld0luaXQge1xuXG4gICAgQFZpZXdDaGlsZCgnaW5wdXQnKSB0ZXh0OiBFbGVtZW50UmVmO1xuICAgIGZpbHRlcmVkT3B0aW9uczogT2JzZXJ2YWJsZTxBcnJheTxFbnVtZXJhdGlvbkZpZWxkVmFsdWU+PjtcbiAgICBjaG9pY2VTdWJzY3JpcHRpb246IFN1YnNjcmlwdGlvbjtcblxuICAgIGNvbnN0cnVjdG9yKHByb3RlY3RlZCBfdHJhbnNsYXRlOiBUcmFuc2xhdGVTZXJ2aWNlLFxuICAgICAgICAgICAgICAgIEBPcHRpb25hbCgpIEBJbmplY3QoREFUQV9GSUVMRF9QT1JUQUxfREFUQSkgZGF0YUZpZWxkUG9ydGFsRGF0YTogRGF0YUZpZWxkUG9ydGFsRGF0YTxEeW5hbWljRW51bWVyYXRpb25GaWVsZD4pIHtcbiAgICAgICAgc3VwZXIoZGF0YUZpZWxkUG9ydGFsRGF0YSk7XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKSB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdGhpcy5mb3JtQ29udHJvbFJlZi52YWx1ZUNoYW5nZXMucGlwZShcbiAgICAgICAgICAgIHN0YXJ0V2l0aCgnJyksXG4gICAgICAgICAgICBtYXAoKCkgPT4gdGhpcy5kYXRhRmllbGQuY2hvaWNlcylcbiAgICAgICAgKTtcblxuICAgICAgIHRoaXMuY2hvaWNlU3Vic2NyaXB0aW9uID0gdGhpcy5kYXRhRmllbGQuY2hvaWNlc0NoYW5nZSQuc3Vic2NyaWJlKCgpID0+IHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gb2YodGhpcy5kYXRhRmllbGQuY2hvaWNlcyk7XG4gICAgICAgIH0pO1xuICAgIH1cblxuICAgIG5nQWZ0ZXJWaWV3SW5pdCgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5kYXRhRmllbGQuaW5wdXQgPSB0aGlzLnRleHQ7XG4gICAgfVxuXG4gICAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XG4gICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gdW5kZWZpbmVkO1xuICAgICAgICB0aGlzLmNob2ljZVN1YnNjcmlwdGlvbi51bnN1YnNjcmliZSgpO1xuICAgIH1cblxuICAgIGNoYW5nZSgpIHtcbiAgICAgICAgaWYgKHRoaXMudGV4dC5uYXRpdmVFbGVtZW50LnZhbHVlICE9PSB1bmRlZmluZWQpIHtcbiAgICAgICAgICAgIHRoaXMuZmlsdGVyZWRPcHRpb25zID0gb2YodGhpcy5kYXRhRmllbGQuY2hvaWNlcyk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgcmVuZGVyU2VsZWN0aW9uID0gKGtleSkgPT4ge1xuICAgICAgICBpZiAoa2V5ICE9PSB1bmRlZmluZWQgJiYga2V5ICE9PSAnJyAmJiBrZXkgIT09IG51bGwpIHtcbiAgICAgICAgICAgIGlmICh0aGlzLmRhdGFGaWVsZC5jaG9pY2VzLmZpbmQoY2hvaWNlID0+IGNob2ljZS5rZXkgPT09IGtleSkpIHtcbiAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy5kYXRhRmllbGQuY2hvaWNlcy5maW5kKGNob2ljZSA9PiBjaG9pY2Uua2V5ID09PSBrZXkpLnZhbHVlO1xuICAgICAgICAgICAgfVxuICAgICAgICB9XG4gICAgICAgIHJldHVybiBrZXk7XG4gICAgfVxuXG4gICAgcHVibGljIGJ1aWxkRXJyb3JNZXNzYWdlKCkge1xuICAgICAgICBpZiAodGhpcy5mb3JtQ29udHJvbFJlZi5oYXNFcnJvcihFbnVtZXJhdGlvbkZpZWxkVmFsaWRhdGlvbi5SRVFVSVJFRCkpIHtcbiAgICAgICAgICAgIHJldHVybiB0aGlzLl90cmFuc2xhdGUuaW5zdGFudCgnZGF0YUZpZWxkLnZhbGlkYXRpb25zLnJlcXVpcmVkJyk7XG4gICAgICAgIH1cbiAgICB9XG5cbn1cbiJdfQ==