UNPKG

@ng-dynamic-forms/core

Version:

A rapid form development library for Angular

77 lines 10.4 kB
import { __decorate } from "tslib"; import { BehaviorSubject } from "rxjs"; import { serializable, serialize } from "../decorator/serializable.decorator"; import { isBoolean, isObject, isString } from "../utils/core.utils"; export class DynamicFormControlModel { constructor(config, layout = null) { this.parent = null; this.asyncValidators = config.asyncValidators ?? null; this.errorMessages = config.errorMessages ?? null; this.hidden = isBoolean(config.hidden) ? config.hidden : false; this.id = config.id; this.label = config.label ?? null; this.labelTooltip = config.labelTooltip ?? null; this.controlTooltip = config.controlTooltip ?? null; this.layout = layout; this.name = config.name ?? config.id; this.relations = Array.isArray(config.relations) ? config.relations : []; this.updateOn = isString(config.updateOn) ? config.updateOn : null; this.validators = config.validators ?? null; this._disabled = isBoolean(config.disabled) ? config.disabled : false; this.disabled$ = new BehaviorSubject(this._disabled); this.disabled$.subscribe(disabled => this._disabled = disabled); this.disabledChanges = this.disabled$.asObservable(); } get disabled() { return this.disabled$.getValue(); } set disabled(disabled) { this.disabled$.next(disabled); } get hasErrorMessages() { return isObject(this.errorMessages); } toJSON() { return serialize(this); } } __decorate([ serializable() ], DynamicFormControlModel.prototype, "asyncValidators", void 0); __decorate([ serializable("disabled") ], DynamicFormControlModel.prototype, "_disabled", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "errorMessages", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "hidden", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "id", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "label", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "labelTooltip", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "controlTooltip", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "layout", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "name", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "relations", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "updateOn", void 0); __decorate([ serializable() ], DynamicFormControlModel.prototype, "validators", void 0); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZHluYW1pYy1mb3JtLWNvbnRyb2wubW9kZWwuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy9uZy1keW5hbWljLWZvcm1zL2NvcmUvc3JjL2xpYi9tb2RlbC9keW5hbWljLWZvcm0tY29udHJvbC5tb2RlbC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLGVBQWUsRUFBYyxNQUFNLE1BQU0sQ0FBQztBQUtuRCxPQUFPLEVBQUUsWUFBWSxFQUFFLFNBQVMsRUFBRSxNQUFNLHFDQUFxQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxTQUFTLEVBQUUsUUFBUSxFQUFFLFFBQVEsRUFBRSxNQUFNLHFCQUFxQixDQUFDO0FBaUJwRSxNQUFNLE9BQWdCLHVCQUF1QjtJQXNCekMsWUFBc0IsTUFBcUMsRUFBRSxTQUEwQyxJQUFJO1FBWDNHLFdBQU0sR0FBMkIsSUFBSSxDQUFDO1FBWWxDLElBQUksQ0FBQyxlQUFlLEdBQUcsTUFBTSxDQUFDLGVBQWUsSUFBSSxJQUFJLENBQUM7UUFDdEQsSUFBSSxDQUFDLGFBQWEsR0FBRyxNQUFNLENBQUMsYUFBYSxJQUFJLElBQUksQ0FBQztRQUNsRCxJQUFJLENBQUMsTUFBTSxHQUFHLFNBQVMsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDLENBQUMsQ0FBQyxDQUFDLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUMvRCxJQUFJLENBQUMsRUFBRSxHQUFHLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDcEIsSUFBSSxDQUFDLEtBQUssR0FBRyxNQUFNLENBQUMsS0FBSyxJQUFJLElBQUksQ0FBQztRQUNsQyxJQUFJLENBQUMsWUFBWSxHQUFHLE1BQU0sQ0FBQyxZQUFZLElBQUksSUFBSSxDQUFDO1FBQ2hELElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLGNBQWMsSUFBSSxJQUFJLENBQUM7UUFDcEQsSUFBSSxDQUFDLE1BQU0sR0FBRyxNQUFNLENBQUM7UUFDckIsSUFBSSxDQUFDLElBQUksR0FBRyxNQUFNLENBQUMsSUFBSSxJQUFJLE1BQU0sQ0FBQyxFQUFFLENBQUM7UUFDckMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsT0FBTyxDQUFDLE1BQU0sQ0FBQyxTQUFTLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQyxDQUFDLENBQUMsRUFBRSxDQUFDO1FBQ3pFLElBQUksQ0FBQyxRQUFRLEdBQUcsUUFBUSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsQ0FBQyxDQUFDLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDO1FBQ25FLElBQUksQ0FBQyxVQUFVLEdBQUcsTUFBTSxDQUFDLFVBQVUsSUFBSSxJQUFJLENBQUM7UUFFNUMsSUFBSSxDQUFDLFNBQVMsR0FBRyxTQUFTLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsQ0FBQyxNQUFNLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7UUFDdEUsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLGVBQWUsQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLENBQUM7UUFDckQsSUFBSSxDQUFDLFNBQVMsQ0FBQyxTQUFTLENBQUMsUUFBUSxDQUFDLEVBQUUsQ0FBQyxJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEsQ0FBQyxDQUFDO1FBQ2hFLElBQUksQ0FBQyxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxZQUFZLEVBQUUsQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBSSxRQUFRO1FBQ1IsT0FBTyxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQ3JDLENBQUM7SUFFRCxJQUFJLFFBQVEsQ0FBQyxRQUFpQjtRQUMxQixJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsQ0FBQztJQUNsQyxDQUFDO0lBRUQsSUFBSSxnQkFBZ0I7UUFDaEIsT0FBTyxRQUFRLENBQUMsSUFBSSxDQUFDLGFBQWEsQ0FBQyxDQUFDO0lBQ3hDLENBQUM7SUFFRCxNQUFNO1FBQ0YsT0FBTyxTQUFTLENBQUMsSUFBSSxDQUFDLENBQUM7SUFDM0IsQ0FBQztDQUNKO0FBeERtQjtJQUFmLFlBQVksRUFBRTtnRUFBaUQ7QUFDdEM7SUFBekIsWUFBWSxDQUFDLFVBQVUsQ0FBQzswREFBb0I7QUFDN0I7SUFBZixZQUFZLEVBQUU7OERBQStDO0FBQzlDO0lBQWYsWUFBWSxFQUFFO3VEQUFpQjtBQUNoQjtJQUFmLFlBQVksRUFBRTttREFBWTtBQUNYO0lBQWYsWUFBWSxFQUFFO3NEQUFzQjtBQUNyQjtJQUFmLFlBQVksRUFBRTs2REFBNkI7QUFDNUI7SUFBZixZQUFZLEVBQUU7K0RBQStCO0FBQzlCO0lBQWYsWUFBWSxFQUFFO3VEQUF5QztBQUN4QztJQUFmLFlBQVksRUFBRTtxREFBYztBQUViO0lBQWYsWUFBWSxFQUFFOzBEQUF5QztBQUN4QztJQUFmLFlBQVksRUFBRTt5REFBa0M7QUFDakM7SUFBZixZQUFZLEVBQUU7MkRBQTRDIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQmVoYXZpb3JTdWJqZWN0LCBPYnNlcnZhYmxlIH0gZnJvbSBcInJ4anNcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB9IGZyb20gXCIuL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtbGF5b3V0Lm1vZGVsXCI7XG5pbXBvcnQgeyBEeW5hbWljUGF0aGFibGUgfSBmcm9tIFwiLi9taXNjL2R5bmFtaWMtZm9ybS1jb250cm9sLXBhdGgubW9kZWxcIjtcbmltcG9ydCB7IER5bmFtaWNGb3JtQ29udHJvbFJlbGF0aW9uIH0gZnJvbSBcIi4vbWlzYy9keW5hbWljLWZvcm0tY29udHJvbC1yZWxhdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgRHluYW1pY0Zvcm1Ib29rLCBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZyB9IGZyb20gXCIuL21pc2MvZHluYW1pYy1mb3JtLWNvbnRyb2wtdmFsaWRhdGlvbi5tb2RlbFwiO1xuaW1wb3J0IHsgc2VyaWFsaXphYmxlLCBzZXJpYWxpemUgfSBmcm9tIFwiLi4vZGVjb3JhdG9yL3NlcmlhbGl6YWJsZS5kZWNvcmF0b3JcIjtcbmltcG9ydCB7IGlzQm9vbGVhbiwgaXNPYmplY3QsIGlzU3RyaW5nIH0gZnJvbSBcIi4uL3V0aWxzL2NvcmUudXRpbHNcIjtcblxuZXhwb3J0IGludGVyZmFjZSBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbENvbmZpZyB7XG4gICAgYXN5bmNWYWxpZGF0b3JzPzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWc7XG4gICAgZGlzYWJsZWQ/OiBib29sZWFuO1xuICAgIGVycm9yTWVzc2FnZXM/OiBEeW5hbWljVmFsaWRhdG9yc0NvbmZpZztcbiAgICBoaWRkZW4/OiBib29sZWFuO1xuICAgIGlkOiBzdHJpbmc7XG4gICAgbGFiZWw/OiBzdHJpbmc7XG4gICAgbGFiZWxUb29sdGlwPzogc3RyaW5nO1xuICAgIGNvbnRyb2xUb29sdGlwPzogc3RyaW5nO1xuICAgIG5hbWU/OiBzdHJpbmc7XG4gICAgcmVsYXRpb25zPzogRHluYW1pY0Zvcm1Db250cm9sUmVsYXRpb25bXTtcbiAgICB1cGRhdGVPbj86IER5bmFtaWNGb3JtSG9vaztcbiAgICB2YWxpZGF0b3JzPzogRHluYW1pY1ZhbGlkYXRvcnNDb25maWc7XG59XG5cbmV4cG9ydCBhYnN0cmFjdCBjbGFzcyBEeW5hbWljRm9ybUNvbnRyb2xNb2RlbCBpbXBsZW1lbnRzIER5bmFtaWNQYXRoYWJsZSB7XG4gICAgQHNlcmlhbGl6YWJsZSgpIGFzeW5jVmFsaWRhdG9yczogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoXCJkaXNhYmxlZFwiKSBfZGlzYWJsZWQ6IGJvb2xlYW47XG4gICAgQHNlcmlhbGl6YWJsZSgpIGVycm9yTWVzc2FnZXM6IER5bmFtaWNWYWxpZGF0b3JzQ29uZmlnIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgaGlkZGVuOiBib29sZWFuO1xuICAgIEBzZXJpYWxpemFibGUoKSBpZDogc3RyaW5nO1xuICAgIEBzZXJpYWxpemFibGUoKSBsYWJlbDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgbGFiZWxUb29sdGlwOiBzdHJpbmcgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoKSBjb250cm9sVG9vbHRpcDogc3RyaW5nIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgbGF5b3V0OiBEeW5hbWljRm9ybUNvbnRyb2xMYXlvdXQgfCBudWxsO1xuICAgIEBzZXJpYWxpemFibGUoKSBuYW1lOiBzdHJpbmc7XG4gICAgcGFyZW50OiBEeW5hbWljUGF0aGFibGUgfCBudWxsID0gbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgcmVsYXRpb25zOiBEeW5hbWljRm9ybUNvbnRyb2xSZWxhdGlvbltdO1xuICAgIEBzZXJpYWxpemFibGUoKSB1cGRhdGVPbjogRHluYW1pY0Zvcm1Ib29rIHwgbnVsbDtcbiAgICBAc2VyaWFsaXphYmxlKCkgdmFsaWRhdG9yczogRHluYW1pY1ZhbGlkYXRvcnNDb25maWcgfCBudWxsO1xuXG4gICAgcHJpdmF0ZSByZWFkb25seSBkaXNhYmxlZCQ6IEJlaGF2aW9yU3ViamVjdDxib29sZWFuPjtcblxuICAgIHJlYWRvbmx5IGRpc2FibGVkQ2hhbmdlczogT2JzZXJ2YWJsZTxib29sZWFuPjtcblxuICAgIGFic3RyYWN0IHJlYWRvbmx5IHR5cGU6IHN0cmluZztcblxuICAgIHByb3RlY3RlZCBjb25zdHJ1Y3Rvcihjb25maWc6IER5bmFtaWNGb3JtQ29udHJvbE1vZGVsQ29uZmlnLCBsYXlvdXQ6IER5bmFtaWNGb3JtQ29udHJvbExheW91dCB8IG51bGwgPSBudWxsKSB7XG4gICAgICAgIHRoaXMuYXN5bmNWYWxpZGF0b3JzID0gY29uZmlnLmFzeW5jVmFsaWRhdG9ycyA/PyBudWxsO1xuICAgICAgICB0aGlzLmVycm9yTWVzc2FnZXMgPSBjb25maWcuZXJyb3JNZXNzYWdlcyA/PyBudWxsO1xuICAgICAgICB0aGlzLmhpZGRlbiA9IGlzQm9vbGVhbihjb25maWcuaGlkZGVuKSA/IGNvbmZpZy5oaWRkZW4gOiBmYWxzZTtcbiAgICAgICAgdGhpcy5pZCA9IGNvbmZpZy5pZDtcbiAgICAgICAgdGhpcy5sYWJlbCA9IGNvbmZpZy5sYWJlbCA/PyBudWxsO1xuICAgICAgICB0aGlzLmxhYmVsVG9vbHRpcCA9IGNvbmZpZy5sYWJlbFRvb2x0aXAgPz8gbnVsbDtcbiAgICAgICAgdGhpcy5jb250cm9sVG9vbHRpcCA9IGNvbmZpZy5jb250cm9sVG9vbHRpcCA/PyBudWxsO1xuICAgICAgICB0aGlzLmxheW91dCA9IGxheW91dDtcbiAgICAgICAgdGhpcy5uYW1lID0gY29uZmlnLm5hbWUgPz8gY29uZmlnLmlkO1xuICAgICAgICB0aGlzLnJlbGF0aW9ucyA9IEFycmF5LmlzQXJyYXkoY29uZmlnLnJlbGF0aW9ucykgPyBjb25maWcucmVsYXRpb25zIDogW107XG4gICAgICAgIHRoaXMudXBkYXRlT24gPSBpc1N0cmluZyhjb25maWcudXBkYXRlT24pID8gY29uZmlnLnVwZGF0ZU9uIDogbnVsbDtcbiAgICAgICAgdGhpcy52YWxpZGF0b3JzID0gY29uZmlnLnZhbGlkYXRvcnMgPz8gbnVsbDtcblxuICAgICAgICB0aGlzLl9kaXNhYmxlZCA9IGlzQm9vbGVhbihjb25maWcuZGlzYWJsZWQpID8gY29uZmlnLmRpc2FibGVkIDogZmFsc2U7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQkID0gbmV3IEJlaGF2aW9yU3ViamVjdCh0aGlzLl9kaXNhYmxlZCk7XG4gICAgICAgIHRoaXMuZGlzYWJsZWQkLnN1YnNjcmliZShkaXNhYmxlZCA9PiB0aGlzLl9kaXNhYmxlZCA9IGRpc2FibGVkKTtcbiAgICAgICAgdGhpcy5kaXNhYmxlZENoYW5nZXMgPSB0aGlzLmRpc2FibGVkJC5hc09ic2VydmFibGUoKTtcbiAgICB9XG5cbiAgICBnZXQgZGlzYWJsZWQoKTogYm9vbGVhbiB7XG4gICAgICAgIHJldHVybiB0aGlzLmRpc2FibGVkJC5nZXRWYWx1ZSgpO1xuICAgIH1cblxuICAgIHNldCBkaXNhYmxlZChkaXNhYmxlZDogYm9vbGVhbikge1xuICAgICAgICB0aGlzLmRpc2FibGVkJC5uZXh0KGRpc2FibGVkKTtcbiAgICB9XG5cbiAgICBnZXQgaGFzRXJyb3JNZXNzYWdlcygpOiBib29sZWFuIHtcbiAgICAgICAgcmV0dXJuIGlzT2JqZWN0KHRoaXMuZXJyb3JNZXNzYWdlcyk7XG4gICAgfVxuXG4gICAgdG9KU09OKCkge1xuICAgICAgICByZXR1cm4gc2VyaWFsaXplKHRoaXMpO1xuICAgIH1cbn1cbiJdfQ==