@formql/core
Version:
FormQL - A framework for building dynamic forms
100 lines • 12.5 kB
JavaScript
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=