UNPKG

@formql/core

Version:

FormQL - A framework for building dynamic forms

100 lines 12.5 kB
import { __assign, __decorate, __metadata } from "tslib"; import { Component, EventEmitter, Input, Output, ViewChild, ViewContainerRef } from '@angular/core'; import { FormGroup } from '@angular/forms'; import { Subject } from 'rxjs'; import { takeUntil } from 'rxjs/operators'; import { InternalEventType } from '../models/internal-event.model'; import { FormQLMode } from '../models/type.model'; import { StoreService } from '../services/store.service'; var FormQLComponent = /** @class */ (function () { function FormQLComponent(storeService) { this.storeService = storeService; this.mode = FormQLMode.View; this.formLoaded = new EventEmitter(); this.formSaveStart = new EventEmitter(); this.formSaveEnd = new EventEmitter(); this.formError = new EventEmitter(); this.data$ = this.storeService.getData(); this.formState$ = this.storeService.getFormState(); this.componentDestroyed = new Subject(); } FormQLComponent.prototype.ngOnInit = function () { var _this = this; this.data$.pipe(takeUntil(this.componentDestroyed)).subscribe(function (data) { return _this.data = data; }); this.formState$.pipe(takeUntil(this.componentDestroyed)). subscribe(function (formState) { if (formState) { _this.formState = __assign({}, formState); if (formState.form) _this.form = formState.form; } }); this.storeService.getAll(this.formName, this.ids, this.mode); }; FormQLComponent.prototype.resetForm = function (objectId) { this.storeService.reSetForm(InternalEventType.EditingForm, objectId); }; FormQLComponent.prototype.refreshComponent = function (component) { this.storeService.setComponent(component); }; FormQLComponent.prototype.saveForm = function () { this.storeService.saveForm(); }; FormQLComponent.prototype.ngOnDestroy = function () { this.componentDestroyed.next(); this.componentDestroyed.complete(); }; FormQLComponent.componentName = 'FormQLComponent'; __decorate([ Input(), __metadata("design:type", String) ], FormQLComponent.prototype, "formName", void 0); __decorate([ Input(), __metadata("design:type", Array) ], FormQLComponent.prototype, "ids", void 0); __decorate([ Input(), __metadata("design:type", Number) ], FormQLComponent.prototype, "mode", void 0); __decorate([ Input(), __metadata("design:type", FormGroup) ], FormQLComponent.prototype, "reactiveForm", void 0); __decorate([ Input(), __metadata("design:type", Object) ], FormQLComponent.prototype, "customMetadata", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], FormQLComponent.prototype, "formLoaded", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], FormQLComponent.prototype, "formSaveStart", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], FormQLComponent.prototype, "formSaveEnd", void 0); __decorate([ Output(), __metadata("design:type", EventEmitter) ], FormQLComponent.prototype, "formError", void 0); __decorate([ ViewChild('target', { read: ViewContainerRef, static: true }), __metadata("design:type", ViewContainerRef) ], FormQLComponent.prototype, "target", void 0); FormQLComponent = __decorate([ Component({ // tslint:disable-next-line: component-selector selector: 'formql', template: "<div *ngIf=\"error\" class=\"fql-error-message\">\n <h4>{{error?.title}}</h4>\n <span>{{error?.message}}</span>\n </div>\n <formql-layout-loader\n [formState]=\"formState\"\n (formSaveStart)=\"formSaveStart.emit(true)\"\n (formSaveEnd)=\"formSaveEnd.emit(true)\"\n (formError)=\"formError.emit(true)\">\n </formql-layout-loader>", styles: [".fql-bundle-field-input{width:100%;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fql-bundle-checkbox-input{cursor:pointer;box-sizing:border-box;-webkit-box-sizing:border-box;-moz-box-sizing:border-box}.fql-bundle-label-required:after{content:\" *\";color:red}.fql-bundle-field-radio{cursor:pointer}.fql-error-message{text-align:center;padding:20px}.fql-dnd-container-separator{box-shadow:0 -2px 0 #00f}.fql-dnd-container-drop-area{outline:dashed 3px}"] }), __metadata("design:paramtypes", [StoreService]) ], FormQLComponent); return FormQLComponent; }()); export { FormQLComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bmb3JtcWwvY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZm9ybXFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBaUJ6RDtJQTJCRSx5QkFDVSxZQUEwQjtRQUExQixpQkFBWSxHQUFaLFlBQVksQ0FBYztRQXZCM0IsU0FBSSxHQUFlLFVBQVUsQ0FBQyxJQUFJLENBQUM7UUFLbEMsZUFBVSxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3ZELGtCQUFhLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDMUQsZ0JBQVcsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUN4RCxjQUFTLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFRaEUsVUFBSyxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsT0FBTyxFQUFFLENBQUM7UUFDcEMsZUFBVSxHQUFHLElBQUksQ0FBQyxZQUFZLENBQUMsWUFBWSxFQUFFLENBQUM7UUFHdEMsdUJBQWtCLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUl2QyxDQUFDO0lBRUwsa0NBQVEsR0FBUjtRQUFBLGlCQVlDO1FBWEMsSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLFVBQUEsSUFBSSxJQUFJLE9BQUEsS0FBSSxDQUFDLElBQUksR0FBRyxJQUFJLEVBQWhCLENBQWdCLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDcEQsU0FBUyxDQUFDLFVBQUMsU0FBUztZQUNsQixJQUFJLFNBQVMsRUFBRTtnQkFDYixLQUFJLENBQUMsU0FBUyxnQkFBTyxTQUFTLENBQUMsQ0FBQztnQkFFaEMsSUFBSSxTQUFTLENBQUMsSUFBSTtvQkFDaEIsS0FBSSxDQUFDLElBQUksR0FBRyxTQUFTLENBQUMsSUFBSSxDQUFDO2FBQzlCO1FBQ0gsQ0FBQyxDQUFDLENBQUM7UUFDUCxJQUFJLENBQUMsWUFBWSxDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxHQUFHLEVBQUUsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO0lBQy9ELENBQUM7SUFFRCxtQ0FBUyxHQUFULFVBQVUsUUFBZ0I7UUFDeEIsSUFBSSxDQUFDLFlBQVksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsV0FBVyxFQUFFLFFBQVEsQ0FBQyxDQUFDO0lBQ3ZFLENBQUM7SUFFRCwwQ0FBZ0IsR0FBaEIsVUFBaUIsU0FBNkI7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELGtDQUFRLEdBQVI7UUFDRSxJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxxQ0FBVyxHQUFYO1FBQ0UsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0lBM0RNLDZCQUFhLEdBQUcsaUJBQWlCLENBQUM7SUFFaEM7UUFBUixLQUFLLEVBQUU7O3FEQUFrQjtJQUNqQjtRQUFSLEtBQUssRUFBRTtrQ0FBTSxLQUFLO2dEQUFTO0lBQ25CO1FBQVIsS0FBSyxFQUFFOztpREFBb0M7SUFFbkM7UUFBUixLQUFLLEVBQUU7a0NBQWUsU0FBUzt5REFBQztJQUN4QjtRQUFSLEtBQUssRUFBRTs7MkRBQXFCO0lBRW5CO1FBQVQsTUFBTSxFQUFFO2tDQUFhLFlBQVk7dURBQStCO0lBQ3ZEO1FBQVQsTUFBTSxFQUFFO2tDQUFnQixZQUFZOzBEQUErQjtJQUMxRDtRQUFULE1BQU0sRUFBRTtrQ0FBYyxZQUFZO3dEQUErQjtJQUN4RDtRQUFULE1BQU0sRUFBRTtrQ0FBWSxZQUFZO3NEQUErQjtJQUVEO1FBQTlELFNBQVMsQ0FBQyxRQUFRLEVBQUUsRUFBRSxJQUFJLEVBQUUsZ0JBQWdCLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDO2tDQUFTLGdCQUFnQjttREFBQztJQWY3RSxlQUFlO1FBZjNCLFNBQVMsQ0FBQztZQUNULCtDQUErQztZQUMvQyxRQUFRLEVBQUUsUUFBUTtZQUVsQixRQUFRLEVBQUUsMmNBUzBCOztTQUNyQyxDQUFDO3lDQTZCd0IsWUFBWTtPQTVCekIsZUFBZSxDQTZEM0I7SUFBRCxzQkFBQztDQUFBLEFBN0RELElBNkRDO1NBN0RZLGVBQWUiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCwgVmlld0NvbnRhaW5lclJlZiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFN1YmplY3QgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgdGFrZVVudGlsIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5pbXBvcnQgeyBGb3JtQ29tcG9uZW50IH0gZnJvbSAnLi4vbW9kZWxzL2Zvcm0tY29tcG9uZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybUVycm9yLCBGb3JtU3RhdGUsIEZvcm1XaW5kb3cgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS13aW5kb3cubW9kZWwnO1xyXG5pbXBvcnQgeyBJbnRlcm5hbEV2ZW50VHlwZSB9IGZyb20gJy4uL21vZGVscy9pbnRlcm5hbC1ldmVudC5tb2RlbCc7XHJcbmltcG9ydCB7IEZvcm1RTE1vZGUgfSBmcm9tICcuLi9tb2RlbHMvdHlwZS5tb2RlbCc7XHJcbmltcG9ydCB7IFN0b3JlU2VydmljZSB9IGZyb20gJy4uL3NlcnZpY2VzL3N0b3JlLnNlcnZpY2UnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgLy8gdHNsaW50OmRpc2FibGUtbmV4dC1saW5lOiBjb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ2Zvcm1xbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vZm9ybXFsLmNvbXBvbmVudC5zY3NzJ10sXHJcbiAgdGVtcGxhdGU6IGA8ZGl2ICpuZ0lmPVwiZXJyb3JcIiBjbGFzcz1cImZxbC1lcnJvci1tZXNzYWdlXCI+XHJcbiAgICAgICAgICAgICAgICA8aDQ+e3tlcnJvcj8udGl0bGV9fTwvaDQ+XHJcbiAgICAgICAgICAgICAgICA8c3Bhbj57e2Vycm9yPy5tZXNzYWdlfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGZvcm1xbC1sYXlvdXQtbG9hZGVyXHJcbiAgICAgICAgICAgICAgICBbZm9ybVN0YXRlXT1cImZvcm1TdGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAoZm9ybVNhdmVTdGFydCk9XCJmb3JtU2F2ZVN0YXJ0LmVtaXQodHJ1ZSlcIlxyXG4gICAgICAgICAgICAgICAgKGZvcm1TYXZlRW5kKT1cImZvcm1TYXZlRW5kLmVtaXQodHJ1ZSlcIlxyXG4gICAgICAgICAgICAgICAgKGZvcm1FcnJvcik9XCJmb3JtRXJyb3IuZW1pdCh0cnVlKVwiPlxyXG4gICAgICAgICAgICAgIDwvZm9ybXFsLWxheW91dC1sb2FkZXI+YFxyXG59KVxyXG5leHBvcnQgY2xhc3MgRm9ybVFMQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LCBPbkRlc3Ryb3kge1xyXG4gIHN0YXRpYyBjb21wb25lbnROYW1lID0gJ0Zvcm1RTENvbXBvbmVudCc7XHJcblxyXG4gIEBJbnB1dCgpIGZvcm1OYW1lOiBzdHJpbmc7XHJcbiAgQElucHV0KCkgaWRzOiBBcnJheTxzdHJpbmc+O1xyXG4gIEBJbnB1dCgpIG1vZGU6IEZvcm1RTE1vZGUgPSBGb3JtUUxNb2RlLlZpZXc7XHJcblxyXG4gIEBJbnB1dCgpIHJlYWN0aXZlRm9ybTogRm9ybUdyb3VwO1xyXG4gIEBJbnB1dCgpIGN1c3RvbU1ldGFkYXRhOiBhbnk7XHJcblxyXG4gIEBPdXRwdXQoKSBmb3JtTG9hZGVkOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcbiAgQE91dHB1dCgpIGZvcm1TYXZlU3RhcnQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZm9ybVNhdmVFbmQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZm9ybUVycm9yOiBFdmVudEVtaXR0ZXI8Ym9vbGVhbj4gPSBuZXcgRXZlbnRFbWl0dGVyKCk7XHJcblxyXG4gIEBWaWV3Q2hpbGQoJ3RhcmdldCcsIHsgcmVhZDogVmlld0NvbnRhaW5lclJlZiwgc3RhdGljOiB0cnVlIH0pIHRhcmdldDogVmlld0NvbnRhaW5lclJlZjtcclxuXHJcbiAgZGF0YTogYW55O1xyXG4gIGZvcm06IEZvcm1XaW5kb3c7XHJcbiAgZm9ybVN0YXRlOiBGb3JtU3RhdGU7XHJcblxyXG4gIGRhdGEkID0gdGhpcy5zdG9yZVNlcnZpY2UuZ2V0RGF0YSgpO1xyXG4gIGZvcm1TdGF0ZSQgPSB0aGlzLnN0b3JlU2VydmljZS5nZXRGb3JtU3RhdGUoKTtcclxuICBlcnJvcjogRm9ybUVycm9yO1xyXG5cclxuICBwcml2YXRlIGNvbXBvbmVudERlc3Ryb3llZCA9IG5ldyBTdWJqZWN0KCk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBzdG9yZVNlcnZpY2U6IFN0b3JlU2VydmljZVxyXG4gICkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kYXRhJC5waXBlKHRha2VVbnRpbCh0aGlzLmNvbXBvbmVudERlc3Ryb3llZCkpLnN1YnNjcmliZShkYXRhID0+IHRoaXMuZGF0YSA9IGRhdGEpO1xyXG4gICAgdGhpcy5mb3JtU3RhdGUkLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuXHJcbiAgICAgICAgc3Vic2NyaWJlKChmb3JtU3RhdGUpID0+IHtcclxuICAgICAgICAgIGlmIChmb3JtU3RhdGUpIHtcclxuICAgICAgICAgICAgdGhpcy5mb3JtU3RhdGUgPSB7Li4uZm9ybVN0YXRlfTtcclxuXHJcbiAgICAgICAgICAgIGlmIChmb3JtU3RhdGUuZm9ybSlcclxuICAgICAgICAgICAgICB0aGlzLmZvcm0gPSBmb3JtU3RhdGUuZm9ybTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9KTtcclxuICAgIHRoaXMuc3RvcmVTZXJ2aWNlLmdldEFsbCh0aGlzLmZvcm1OYW1lLCB0aGlzLmlkcywgdGhpcy5tb2RlKTtcclxuICB9XHJcblxyXG4gIHJlc2V0Rm9ybShvYmplY3RJZDogc3RyaW5nKSB7XHJcbiAgICB0aGlzLnN0b3JlU2VydmljZS5yZVNldEZvcm0oSW50ZXJuYWxFdmVudFR5cGUuRWRpdGluZ0Zvcm0sIG9iamVjdElkKTtcclxuICB9XHJcblxyXG4gIHJlZnJlc2hDb21wb25lbnQoY29tcG9uZW50OiBGb3JtQ29tcG9uZW50PGFueT4pIHtcclxuICAgIHRoaXMuc3RvcmVTZXJ2aWNlLnNldENvbXBvbmVudChjb21wb25lbnQpO1xyXG4gIH1cclxuXHJcbiAgc2F2ZUZvcm0oKSB7XHJcbiAgICB0aGlzLnN0b3JlU2VydmljZS5zYXZlRm9ybSgpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZC5uZXh0KCk7XHJcbiAgICB0aGlzLmNvbXBvbmVudERlc3Ryb3llZC5jb21wbGV0ZSgpO1xyXG4gIH1cclxufVxyXG4iXX0=