UNPKG

@netgrif/components-core

Version:

Netgrif Application engine frontend core Angular library

47 lines 7.18 kB
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=