@netgrif/components-core
Version:
Netgrif Application engine frontend core Angular library
47 lines • 7.18 kB
JavaScript
import { EnumerationField } from './enumeration-field';
import { FieldTypeResource } from '../../../task-content/model/field-type-resource';
import { Validators } from '@angular/forms';
import { Subject } from 'rxjs';
import { debounceTime } from 'rxjs/operators';
import { LoadingEmitter } from '../../../utility/loading-emitter';
export class DynamicEnumerationField extends EnumerationField {
_choices;
_fieldType;
REQUEST_DEBOUNCE_TIME = 600;
_choicesChange$;
_loading;
constructor(stringId, title, value, _choices, behavior, placeholder, description, layout, _fieldType = FieldTypeResource.ENUMERATION, validations, component, parentTaskId) {
super(stringId, title, value, _choices, behavior, placeholder, description, layout, _fieldType, validations, component, parentTaskId);
this._choices = _choices;
this._fieldType = _fieldType;
this._choicesChange$ = new Subject();
this._loading = new LoadingEmitter();
}
set choices(choices) {
this._choices = choices;
this._choicesChange$.next();
}
get choices() {
return this._choices;
}
set loading(bool) {
bool ? this._loading.on() : this._loading.off();
}
get loading() {
return this._loading.isActive;
}
get choicesChange$() {
return this._choicesChange$.asObservable();
}
valueChanges() {
return this._value.pipe(debounceTime(this.REQUEST_DEBOUNCE_TIME));
}
resolveFormControlValidators() {
const result = [];
if (this.behavior.required) {
result.push(Validators.required);
}
return result;
}
}
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1lbnVtZXJhdGlvbi1maWVsZC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL25ldGdyaWYtY29tcG9uZW50cy1jb3JlL3NyYy9saWIvZGF0YS1maWVsZHMvZW51bWVyYXRpb24tZmllbGQvbW9kZWxzL2R5bmFtaWMtZW51bWVyYXRpb24tZmllbGQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFDLGdCQUFnQixFQUF3QixNQUFNLHFCQUFxQixDQUFDO0FBRzVFLE9BQU8sRUFBQyxpQkFBaUIsRUFBQyxNQUFNLGlEQUFpRCxDQUFDO0FBRWxGLE9BQU8sRUFBYyxVQUFVLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUN2RCxPQUFPLEVBQWEsT0FBTyxFQUFDLE1BQU0sTUFBTSxDQUFDO0FBQ3pDLE9BQU8sRUFBQyxZQUFZLEVBQUMsTUFBTSxnQkFBZ0IsQ0FBQztBQUM1QyxPQUFPLEVBQUMsY0FBYyxFQUFDLE1BQU0sa0NBQWtDLENBQUM7QUFHaEUsTUFBTSxPQUFPLHVCQUF3QixTQUFRLGdCQUFnQjtJQU1uQztJQUMwQjtJQU50QyxxQkFBcUIsR0FBRyxHQUFHLENBQUM7SUFDNUIsZUFBZSxDQUFnQjtJQUMvQixRQUFRLENBQWlCO0lBRW5DLFlBQVksUUFBZ0IsRUFBRSxLQUFhLEVBQUUsS0FBYSxFQUNwQyxRQUFzQyxFQUFFLFFBQWtCLEVBQUUsV0FBb0IsRUFBRSxXQUFvQixFQUNoSCxNQUFlLEVBQXFCLGFBQWEsaUJBQWlCLENBQUMsV0FBVyxFQUM5RSxXQUErQixFQUFFLFNBQXFCLEVBQUUsWUFBcUI7UUFDckYsS0FBSyxDQUFDLFFBQVEsRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFLFFBQVEsRUFBRSxRQUFRLEVBQUUsV0FBVyxFQUFFLFdBQVcsRUFBRSxNQUFNLEVBQUUsVUFBVSxFQUFFLFdBQVcsRUFDdkcsU0FBUyxFQUFFLFlBQVksQ0FBQyxDQUFDO1FBSlgsYUFBUSxHQUFSLFFBQVEsQ0FBOEI7UUFDWixlQUFVLEdBQVYsVUFBVSxDQUFnQztRQUl0RixJQUFJLENBQUMsZUFBZSxHQUFHLElBQUksT0FBTyxFQUFRLENBQUM7UUFDM0MsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLGNBQWMsRUFBRSxDQUFDO0lBQ3pDLENBQUM7SUFFRCxJQUFJLE9BQU8sQ0FBQyxPQUFxQztRQUM3QyxJQUFJLENBQUMsUUFBUSxHQUFHLE9BQU8sQ0FBQztRQUN4QixJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUM7SUFDekIsQ0FBQztJQUVELElBQUksT0FBTyxDQUFDLElBQWE7UUFDckIsSUFBSSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQUUsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEdBQUcsRUFBRSxDQUFDO0lBQ3BELENBQUM7SUFFRCxJQUFJLE9BQU87UUFDUCxPQUFPLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxDQUFDO0lBQ2xDLENBQUM7SUFFRCxJQUFJLGNBQWM7UUFDZCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDL0MsQ0FBQztJQUVNLFlBQVk7UUFDZixPQUFPLElBQUksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxJQUFJLENBQUMscUJBQXFCLENBQUMsQ0FBQyxDQUFDO0lBQ3RFLENBQUM7SUFFUyw0QkFBNEI7UUFDbEMsTUFBTSxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBRWxCLElBQUksSUFBSSxDQUFDLFFBQVEsQ0FBQyxRQUFRLEVBQUU7WUFDeEIsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQUM7U0FDcEM7UUFFRCxPQUFPLE1BQU0sQ0FBQztJQUNsQixDQUFDO0NBQ0oiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQge0VudW1lcmF0aW9uRmllbGQsIEVudW1lcmF0aW9uRmllbGRWYWx1ZX0gZnJvbSAnLi9lbnVtZXJhdGlvbi1maWVsZCc7XG5pbXBvcnQge0JlaGF2aW9yfSBmcm9tICcuLi8uLi9tb2RlbHMvYmVoYXZpb3InO1xuaW1wb3J0IHtMYXlvdXR9IGZyb20gJy4uLy4uL21vZGVscy9sYXlvdXQnO1xuaW1wb3J0IHtGaWVsZFR5cGVSZXNvdXJjZX0gZnJvbSAnLi4vLi4vLi4vdGFzay1jb250ZW50L21vZGVsL2ZpZWxkLXR5cGUtcmVzb3VyY2UnO1xuaW1wb3J0IHtDb21wb25lbnR9IGZyb20gJy4uLy4uL21vZGVscy9jb21wb25lbnQnO1xuaW1wb3J0IHtWYWxpZGF0b3JGbiwgVmFsaWRhdG9yc30gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHtPYnNlcnZhYmxlLCBTdWJqZWN0fSBmcm9tICdyeGpzJztcbmltcG9ydCB7ZGVib3VuY2VUaW1lfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XG5pbXBvcnQge0xvYWRpbmdFbWl0dGVyfSBmcm9tICcuLi8uLi8uLi91dGlsaXR5L2xvYWRpbmctZW1pdHRlcic7XG5pbXBvcnQge1ZhbGlkYXRpb259IGZyb20gJy4uLy4uL21vZGVscy92YWxpZGF0aW9uJztcblxuZXhwb3J0IGNsYXNzIER5bmFtaWNFbnVtZXJhdGlvbkZpZWxkIGV4dGVuZHMgRW51bWVyYXRpb25GaWVsZCB7XG4gICAgcHJvdGVjdGVkIFJFUVVFU1RfREVCT1VOQ0VfVElNRSA9IDYwMDtcbiAgICBwcm90ZWN0ZWQgX2Nob2ljZXNDaGFuZ2UkOiBTdWJqZWN0PHZvaWQ+O1xuICAgIHByb3RlY3RlZCBfbG9hZGluZzogTG9hZGluZ0VtaXR0ZXI7XG5cbiAgICBjb25zdHJ1Y3RvcihzdHJpbmdJZDogc3RyaW5nLCB0aXRsZTogc3RyaW5nLCB2YWx1ZTogc3RyaW5nLFxuICAgICAgICAgICAgICAgIHByb3RlY3RlZCBfY2hvaWNlczogQXJyYXk8RW51bWVyYXRpb25GaWVsZFZhbHVlPiwgYmVoYXZpb3I6IEJlaGF2aW9yLCBwbGFjZWhvbGRlcj86IHN0cmluZywgZGVzY3JpcHRpb24/OiBzdHJpbmcsXG4gICAgICAgICAgICAgICAgbGF5b3V0PzogTGF5b3V0LCBwcm90ZWN0ZWQgcmVhZG9ubHkgX2ZpZWxkVHlwZSA9IEZpZWxkVHlwZVJlc291cmNlLkVOVU1FUkFUSU9OLFxuICAgICAgICAgICAgICAgIHZhbGlkYXRpb25zPzogQXJyYXk8VmFsaWRhdGlvbj4sIGNvbXBvbmVudD86IENvbXBvbmVudCwgcGFyZW50VGFza0lkPzogc3RyaW5nKSB7XG4gICAgICAgIHN1cGVyKHN0cmluZ0lkLCB0aXRsZSwgdmFsdWUsIF9jaG9pY2VzLCBiZWhhdmlvciwgcGxhY2Vob2xkZXIsIGRlc2NyaXB0aW9uLCBsYXlvdXQsIF9maWVsZFR5cGUsIHZhbGlkYXRpb25zLFxuICAgICAgICAgICAgY29tcG9uZW50LCBwYXJlbnRUYXNrSWQpO1xuICAgICAgICB0aGlzLl9jaG9pY2VzQ2hhbmdlJCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XG4gICAgICAgIHRoaXMuX2xvYWRpbmcgPSBuZXcgTG9hZGluZ0VtaXR0ZXIoKTtcbiAgICB9XG5cbiAgICBzZXQgY2hvaWNlcyhjaG9pY2VzOiBBcnJheTxFbnVtZXJhdGlvbkZpZWxkVmFsdWU+KSB7XG4gICAgICAgIHRoaXMuX2Nob2ljZXMgPSBjaG9pY2VzO1xuICAgICAgICB0aGlzLl9jaG9pY2VzQ2hhbmdlJC5uZXh0KCk7XG4gICAgfVxuXG4gICAgZ2V0IGNob2ljZXMoKTogQXJyYXk8RW51bWVyYXRpb25GaWVsZFZhbHVlPiB7XG4gICAgICAgIHJldHVybiB0aGlzLl9jaG9pY2VzO1xuICAgIH1cblxuICAgIHNldCBsb2FkaW5nKGJvb2w6IGJvb2xlYW4pIHtcbiAgICAgICAgYm9vbCA/IHRoaXMuX2xvYWRpbmcub24oKSA6IHRoaXMuX2xvYWRpbmcub2ZmKCk7XG4gICAgfVxuXG4gICAgZ2V0IGxvYWRpbmcoKSB7XG4gICAgICAgIHJldHVybiB0aGlzLl9sb2FkaW5nLmlzQWN0aXZlO1xuICAgIH1cblxuICAgIGdldCBjaG9pY2VzQ2hhbmdlJCgpIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX2Nob2ljZXNDaGFuZ2UkLmFzT2JzZXJ2YWJsZSgpO1xuICAgIH1cblxuICAgIHB1YmxpYyB2YWx1ZUNoYW5nZXMoKTogT2JzZXJ2YWJsZTxzdHJpbmc+IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuX3ZhbHVlLnBpcGUoZGVib3VuY2VUaW1lKHRoaXMuUkVRVUVTVF9ERUJPVU5DRV9USU1FKSk7XG4gICAgfVxuXG4gICAgcHJvdGVjdGVkIHJlc29sdmVGb3JtQ29udHJvbFZhbGlkYXRvcnMoKTogQXJyYXk8VmFsaWRhdG9yRm4+IHtcbiAgICAgICAgY29uc3QgcmVzdWx0ID0gW107XG5cbiAgICAgICAgaWYgKHRoaXMuYmVoYXZpb3IucmVxdWlyZWQpIHtcbiAgICAgICAgICAgIHJlc3VsdC5wdXNoKFZhbGlkYXRvcnMucmVxdWlyZWQpO1xuICAgICAgICB9XG5cbiAgICAgICAgcmV0dXJuIHJlc3VsdDtcbiAgICB9XG59XG4iXX0=