@ng-dynamic-forms/core
Version:
A rapid form development library for Angular
43 lines • 6.64 kB
JavaScript
import { __decorate } from "tslib";
import { BehaviorSubject } from "rxjs";
import { DynamicFormControlModel } from "./dynamic-form-control.model";
import { serializable } from "../decorator/serializable.decorator";
import { isBoolean, isObject } from "../utils/core.utils";
export class DynamicFormValueControlModel extends DynamicFormControlModel {
constructor(config, layout) {
super(config, layout);
this.additional = isObject(config.additional) ? config.additional : null;
this.hint = config.hint ?? null;
this.required = isBoolean(config.required) ? config.required : false;
this.tabIndex = config.tabIndex ?? null;
this._value = config.value ?? null;
this.value$ = new BehaviorSubject(this._value);
this.value$.subscribe(value => this._value = value);
this.valueChanges = this.value$.asObservable();
}
get value() {
return this.value$.getValue();
}
set value(value) {
this.value$.next(value);
}
getAdditional(key, defaultValue) {
return this.additional !== null && this.additional.hasOwnProperty(key) ? this.additional[key] : defaultValue;
}
}
__decorate([
serializable()
], DynamicFormValueControlModel.prototype, "additional", void 0);
__decorate([
serializable()
], DynamicFormValueControlModel.prototype, "hint", void 0);
__decorate([
serializable()
], DynamicFormValueControlModel.prototype, "required", void 0);
__decorate([
serializable()
], DynamicFormValueControlModel.prototype, "tabIndex", void 0);
__decorate([
serializable("value")
], DynamicFormValueControlModel.prototype, "_value", void 0);
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLXZhbHVlLWNvbnRyb2wubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1keW5hbWljLWZvcm1zL2NvcmUvc3JjL2xpYi9tb2RlbC9keW5hbWljLWZvcm0tdmFsdWUtY29udHJvbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUNuRCxPQUFPLEVBQUUsdUJBQXVCLEVBQWlDLE1BQU0sOEJBQThCLENBQUM7QUFFdEcsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQ25FLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLE1BQU0scUJBQXFCLENBQUM7QUFVMUQsTUFBTSxPQUFnQiw0QkFBZ0MsU0FBUSx1QkFBdUI7SUFXakYsWUFBc0IsTUFBNkMsRUFBRSxNQUFpQztRQUNsRyxLQUFLLENBQUMsTUFBTSxFQUFFLE1BQU0sQ0FBQyxDQUFDO1FBRXRCLElBQUksQ0FBQyxVQUFVLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxJQUFJLEdBQUcsTUFBTSxDQUFDLElBQUksSUFBSSxJQUFJLENBQUM7UUFDaEMsSUFBSSxDQUFDLFFBQVEsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDckUsSUFBSSxDQUFDLFFBQVEsR0FBRyxNQUFNLENBQUMsUUFBUSxJQUFJLElBQUksQ0FBQztRQUV4QyxJQUFJLENBQUMsTUFBTSxHQUFHLE1BQU0sQ0FBQyxLQUFLLElBQUksSUFBSSxDQUFDO1FBQ25DLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxlQUFlLENBQUMsSUFBSSxDQUFDLE1BQU0sQ0FBQyxDQUFDO1FBQy9DLElBQUksQ0FBQyxNQUFNLENBQUMsU0FBUyxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUMsQ0FBQztRQUNwRCxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQyxNQUFNLENBQUMsWUFBWSxFQUFFLENBQUM7SUFDbkQsQ0FBQztJQUVELElBQUksS0FBSztRQUNMLE9BQU8sSUFBSSxDQUFDLE1BQU0sQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxLQUFLLENBQUMsS0FBZTtRQUNyQixJQUFJLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUM1QixDQUFDO0lBRUQsYUFBYSxDQUFDLEdBQVcsRUFBRSxZQUF5QjtRQUNoRCxPQUFPLElBQUksQ0FBQyxVQUFVLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEdBQUcsQ0FBQyxDQUFDLENBQUMsQ0FBQyxZQUFZLENBQUM7SUFDakgsQ0FBQztDQUNKO0FBbkNtQjtJQUFmLFlBQVksRUFBRTtnRUFBMkM7QUFDMUM7SUFBZixZQUFZLEVBQUU7MERBQXFCO0FBQ3BCO0lBQWYsWUFBWSxFQUFFOzhEQUFtQjtBQUNsQjtJQUFmLFlBQVksRUFBRTs4REFBeUI7QUFDVDtJQUE5QixZQUFZLENBQUMsT0FBTyxDQUFDOzREQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEJlaGF2aW9yU3ViamVjdCwgT2JzZXJ2YWJsZSB9IGZyb20gXCJyeGpzXCI7XG5pbXBvcnQgeyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCwgRHluYW1pY0Zvcm1Db250cm9sTW9kZWxDb25maWcgfSBmcm9tIFwiLi9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Db250cm9sTGF5b3V0IH0gZnJvbSBcIi4vbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1sYXlvdXQubW9kZWxcIjtcbmltcG9ydCB7IHNlcmlhbGl6YWJsZSB9IGZyb20gXCIuLi9kZWNvcmF0b3Ivc2VyaWFsaXphYmxlLmRlY29yYXRvclwiO1xuaW1wb3J0IHsgaXNCb29sZWFuLCBpc09iamVjdCB9IGZyb20gXCIuLi91dGlscy9jb3JlLnV0aWxzXCI7XG5cbmV4cG9ydCBpbnRlcmZhY2UgRHluYW1pY0Zvcm1WYWx1ZUNvbnRyb2xNb2RlbENvbmZpZzxUPiBleHRlbmRzIER5bmFtaWNGb3JtQ29udHJvbE1vZGVsQ29uZmlnIHtcbiAgICBhZGRpdGlvbmFsPzogeyBba2V5OiBzdHJpbmddOiBhbnkgfTtcbiAgICBoaW50Pzogc3RyaW5nO1xuICAgIHJlcXVpcmVkPzogYm9vbGVhbjtcbiAgICB0YWJJbmRleD86IG51bWJlcjtcbiAgICB2YWx1ZT86IFQ7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsPFQ+IGV4dGVuZHMgRHluYW1pY0Zvcm1Db250cm9sTW9kZWwge1xuICAgIEBzZXJpYWxpemFibGUoKSBhZGRpdGlvbmFsOiB7IFtrZXk6IHN0cmluZ106IGFueSB9IHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgaGludDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgcmVxdWlyZWQ6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIHRhYkluZGV4OiBudW1iZXIgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoXCJ2YWx1ZVwiKSBwcml2YXRlIF92YWx1ZTogVCB8IG51bGw7XG5cbiAgICBwcml2YXRlIHJlYWRvbmx5IHZhbHVlJDogQmVoYXZpb3JTdWJqZWN0PFQgfCBudWxsPjtcblxuICAgIHJlYWRvbmx5IHZhbHVlQ2hhbmdlczogT2JzZXJ2YWJsZTxUIHwgbnVsbD47XG5cbiAgICBwcm90ZWN0ZWQgY29uc3RydWN0b3IoY29uZmlnOiBEeW5hbWljRm9ybVZhbHVlQ29udHJvbE1vZGVsQ29uZmlnPFQ+LCBsYXlvdXQ/OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQpIHtcbiAgICAgICAgc3VwZXIoY29uZmlnLCBsYXlvdXQpO1xuXG4gICAgICAgIHRoaXMuYWRkaXRpb25hbCA9IGlzT2JqZWN0KGNvbmZpZy5hZGRpdGlvbmFsKSA/IGNvbmZpZy5hZGRpdGlvbmFsIDogbnVsbDtcbiAgICAgICAgdGhpcy5oaW50ID0gY29uZmlnLmhpbnQgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5yZXF1aXJlZCA9IGlzQm9vbGVhbihjb25maWcucmVxdWlyZWQpID8gY29uZmlnLnJlcXVpcmVkIDogZmFsc2U7XG4gICAgICAgIHRoaXMudGFiSW5kZXggPSBjb25maWcudGFiSW5kZXggPz8gbnVsbDtcblxuICAgICAgICB0aGlzLl92YWx1ZSA9IGNvbmZpZy52YWx1ZSA/PyBudWxsO1xuICAgICAgICB0aGlzLnZhbHVlJCA9IG5ldyBCZWhhdmlvclN1YmplY3QodGhpcy5fdmFsdWUpO1xuICAgICAgICB0aGlzLnZhbHVlJC5zdWJzY3JpYmUodmFsdWUgPT4gdGhpcy5fdmFsdWUgPSB2YWx1ZSk7XG4gICAgICAgIHRoaXMudmFsdWVDaGFuZ2VzID0gdGhpcy52YWx1ZSQuYXNPYnNlcnZhYmxlKCk7XG4gICAgfVxuXG4gICAgZ2V0IHZhbHVlKCk6IFQgfCBudWxsIHtcbiAgICAgICAgcmV0dXJuIHRoaXMudmFsdWUkLmdldFZhbHVlKCk7XG4gICAgfVxuXG4gICAgc2V0IHZhbHVlKHZhbHVlOiBUIHwgbnVsbCkge1xuICAgICAgICB0aGlzLnZhbHVlJC5uZXh0KHZhbHVlKTtcbiAgICB9XG5cbiAgICBnZXRBZGRpdGlvbmFsKGtleTogc3RyaW5nLCBkZWZhdWx0VmFsdWU/OiBhbnkgfCBudWxsKTogYW55IHtcbiAgICAgICAgcmV0dXJuIHRoaXMuYWRkaXRpb25hbCAhPT0gbnVsbCAmJiB0aGlzLmFkZGl0aW9uYWwuaGFzT3duUHJvcGVydHkoa2V5KSA/IHRoaXMuYWRkaXRpb25hbFtrZXldIDogZGVmYXVsdFZhbHVlO1xuICAgIH1cbn1cbiJdfQ==