@recursyve/forms-frontend
Version:
47 lines • 6.64 kB
JavaScript
import * as tslib_1 from "tslib";
import { Component, EventEmitter, Input, Output, ViewEncapsulation } from "@angular/core";
import { isNullOrUndefined } from "./utils/is-null-or-undefined.util";
let RecursyveFormComponent = class RecursyveFormComponent {
constructor() {
this.editable = false;
this.onFormResultChange = new EventEmitter();
}
ngOnInit() {
if (isNullOrUndefined(this.formResult.value)) {
this.formResult.value = {};
}
for (const subViewConfig of this.formDescriptor.viewConfigs) {
if (isNullOrUndefined(this.formResult.value[subViewConfig.keyName])) {
this.onModelChange(subViewConfig.keyName, {});
}
}
}
onModelChange(key, model) {
if (this.formResult && this.formResult.value) {
this.formResult.value[key] = model;
this.onFormResultChange.emit(this.formResult);
}
}
};
tslib_1.__decorate([
Input()
], RecursyveFormComponent.prototype, "editable", void 0);
tslib_1.__decorate([
Input()
], RecursyveFormComponent.prototype, "formResult", void 0);
tslib_1.__decorate([
Input()
], RecursyveFormComponent.prototype, "formDescriptor", void 0);
tslib_1.__decorate([
Output()
], RecursyveFormComponent.prototype, "onFormResultChange", void 0);
RecursyveFormComponent = tslib_1.__decorate([
Component({
encapsulation: ViewEncapsulation.None,
selector: "recursyve-form",
template: "<ng-container *ngIf=\"formDescriptor && formResult\">\n <div class=\"form-container\">\n <div display [displayConfig]=\"formDescriptor.displayConfig\" [isFlexGroup]=\"true\">\n <ng-container *ngFor=\"let subViewConfig of formDescriptor?.viewConfigs\">\n <div display [displayConfig]=\"subViewConfig.displayConfig\" [isFlexGroupItem]=\"true\">\n <form-view\n [config]=\"subViewConfig\"\n [model]=\"formResult.value[subViewConfig.keyName]\"\n [editable]=\"editable\"\n [depth]=\"0\"\n (onValueChange)=\"onModelChange($event.key, $event.viewModel)\"\n ></form-view>\n </div>\n </ng-container>\n </div>\n </div>\n</ng-container>\n",
styles: [".form-container mat-form-field .mat-form-field-infix{border:none!important}.form-container .text-justify{text-align:justify}.form-container .fullWidth{width:100%}.form-container .fullHeight{height:100%}.form-container .form-view{width:100%}.form-container .form-view-title{margin-bottom:16px;width:100%}.form-container .form-view-title h4{margin:0}.form-container .form-view-content{width:100%}.form-container .m-0{margin:0}"]
})
], RecursyveFormComponent);
export { RecursyveFormComponent };
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmVjdXJzeXZlLWZvcm0uY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6Im5nOi8vQHJlY3Vyc3l2ZS9mb3Jtcy1mcm9udGVuZC8iLCJzb3VyY2VzIjpbInNyYy9yZWN1cnN5dmUtZm9ybS5jb21wb25lbnQudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IjtBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBVSxNQUFNLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJbEcsT0FBTyxFQUFFLGlCQUFpQixFQUFFLE1BQU0sbUNBQW1DLENBQUM7QUFRdEUsSUFBYSxzQkFBc0IsR0FBbkMsTUFBYSxzQkFBc0I7SUFObkM7UUFRVyxhQUFRLEdBQUcsS0FBSyxDQUFDO1FBTWpCLHVCQUFrQixHQUFHLElBQUksWUFBWSxFQUFjLENBQUM7SUFvQi9ELENBQUM7SUFsQlUsUUFBUTtRQUNYLElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsRUFBRTtZQUMxQyxJQUFJLENBQUMsVUFBVSxDQUFDLEtBQUssR0FBRyxFQUFFLENBQUM7U0FDOUI7UUFFRCxLQUFLLE1BQU0sYUFBYSxJQUFJLElBQUksQ0FBQyxjQUFjLENBQUMsV0FBVyxFQUFFO1lBQ3pELElBQUksaUJBQWlCLENBQUMsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLE9BQU8sQ0FBQyxDQUFDLEVBQUU7Z0JBQ2pFLElBQUksQ0FBQyxhQUFhLENBQUMsYUFBYSxDQUFDLE9BQU8sRUFBRSxFQUFFLENBQUMsQ0FBQzthQUNqRDtTQUNKO0lBQ0wsQ0FBQztJQUVNLGFBQWEsQ0FBQyxHQUFXLEVBQUUsS0FBZ0I7UUFDOUMsSUFBSSxJQUFJLENBQUMsVUFBVSxJQUFJLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxFQUFFO1lBQzFDLElBQUksQ0FBQyxVQUFVLENBQUMsS0FBSyxDQUFDLEdBQUcsQ0FBQyxHQUFHLEtBQUssQ0FBQztZQUNuQyxJQUFJLENBQUMsa0JBQWtCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQztTQUNqRDtJQUNMLENBQUM7Q0FDSixDQUFBO0FBMUJHO0lBREMsS0FBSyxFQUFFO3dEQUNnQjtBQUV4QjtJQURDLEtBQUssRUFBRTswREFDc0I7QUFFOUI7SUFEQyxLQUFLLEVBQUU7OERBQzhCO0FBRXRDO0lBREMsTUFBTSxFQUFFO2tFQUNrRDtBQVJsRCxzQkFBc0I7SUFObEMsU0FBUyxDQUFDO1FBQ1AsYUFBYSxFQUFFLGlCQUFpQixDQUFDLElBQUk7UUFDckMsUUFBUSxFQUFFLGdCQUFnQjtRQUUxQiwrMUJBQTJDOztLQUM5QyxDQUFDO0dBQ1csc0JBQXNCLENBNEJsQztTQTVCWSxzQkFBc0IiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XG5pbXBvcnQgeyBGb3JtRGVzY3JpcHRvciB9IGZyb20gXCIuL2ludGVyZmFjZXMvZm9ybS1kZXNjcmlwdG9yLmludGVyZmFjZVwiO1xuaW1wb3J0IHsgRm9ybVJlc3VsdCB9IGZyb20gXCIuL2ludGVyZmFjZXMvZm9ybS1yZXN1bHQuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBWaWV3TW9kZWwgfSBmcm9tIFwiLi9pbnRlcmZhY2VzL3ZpZXctbW9kZWwuaW50ZXJmYWNlXCI7XG5pbXBvcnQgeyBpc051bGxPclVuZGVmaW5lZCB9IGZyb20gXCIuL3V0aWxzL2lzLW51bGwtb3ItdW5kZWZpbmVkLnV0aWxcIjtcblxuQENvbXBvbmVudCh7XG4gICAgZW5jYXBzdWxhdGlvbjogVmlld0VuY2Fwc3VsYXRpb24uTm9uZSxcbiAgICBzZWxlY3RvcjogXCJyZWN1cnN5dmUtZm9ybVwiLFxuICAgIHN0eWxlVXJsczogW1wicmVjdXJzeXZlLWZvcm0uc3R5bGUuc2Nzc1wiXSxcbiAgICB0ZW1wbGF0ZVVybDogXCJyZWN1cnN5dmUtZm9ybS50ZW1wbGF0ZS5odG1sXCJcbn0pXG5leHBvcnQgY2xhc3MgUmVjdXJzeXZlRm9ybUNvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQElucHV0KClcbiAgICBwdWJsaWMgZWRpdGFibGUgPSBmYWxzZTtcbiAgICBASW5wdXQoKVxuICAgIHB1YmxpYyBmb3JtUmVzdWx0OiBGb3JtUmVzdWx0O1xuICAgIEBJbnB1dCgpXG4gICAgcHVibGljIGZvcm1EZXNjcmlwdG9yOiBGb3JtRGVzY3JpcHRvcjtcbiAgICBAT3V0cHV0KClcbiAgICBwdWJsaWMgb25Gb3JtUmVzdWx0Q2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxGb3JtUmVzdWx0PigpO1xuXG4gICAgcHVibGljIG5nT25Jbml0KCk6IHZvaWQge1xuICAgICAgICBpZiAoaXNOdWxsT3JVbmRlZmluZWQodGhpcy5mb3JtUmVzdWx0LnZhbHVlKSkge1xuICAgICAgICAgICAgdGhpcy5mb3JtUmVzdWx0LnZhbHVlID0ge307XG4gICAgICAgIH1cblxuICAgICAgICBmb3IgKGNvbnN0IHN1YlZpZXdDb25maWcgb2YgdGhpcy5mb3JtRGVzY3JpcHRvci52aWV3Q29uZmlncykge1xuICAgICAgICAgICAgaWYgKGlzTnVsbE9yVW5kZWZpbmVkKHRoaXMuZm9ybVJlc3VsdC52YWx1ZVtzdWJWaWV3Q29uZmlnLmtleU5hbWVdKSkge1xuICAgICAgICAgICAgICAgIHRoaXMub25Nb2RlbENoYW5nZShzdWJWaWV3Q29uZmlnLmtleU5hbWUsIHt9KTtcbiAgICAgICAgICAgIH1cbiAgICAgICAgfVxuICAgIH1cblxuICAgIHB1YmxpYyBvbk1vZGVsQ2hhbmdlKGtleTogc3RyaW5nLCBtb2RlbDogVmlld01vZGVsKSB7XG4gICAgICAgIGlmICh0aGlzLmZvcm1SZXN1bHQgJiYgdGhpcy5mb3JtUmVzdWx0LnZhbHVlKSB7XG4gICAgICAgICAgICB0aGlzLmZvcm1SZXN1bHQudmFsdWVba2V5XSA9IG1vZGVsO1xuICAgICAgICAgICAgdGhpcy5vbkZvcm1SZXN1bHRDaGFuZ2UuZW1pdCh0aGlzLmZvcm1SZXN1bHQpO1xuICAgICAgICB9XG4gICAgfVxufVxuIl19