UNPKG

@formql/core

Version:

FormQL - A framework for building dynamic forms

107 lines 12 kB
import { __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'; let FormQLComponent = class FormQLComponent { constructor(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(); } ngOnInit() { this.data$.pipe(takeUntil(this.componentDestroyed)).subscribe(data => this.data = data); this.formState$.pipe(takeUntil(this.componentDestroyed)). subscribe((formState) => { if (formState) { this.formState = Object.assign({}, formState); if (formState.form) this.form = formState.form; } }); this.storeService.getAll(this.formName, this.ids, this.mode); } resetForm(objectId) { this.storeService.reSetForm(InternalEventType.EditingForm, objectId); } refreshComponent(component) { this.storeService.setComponent(component); } saveForm() { this.storeService.saveForm(); } ngOnDestroy() { 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"> <h4>{{error?.title}}</h4> <span>{{error?.message}}</span> </div> <formql-layout-loader [formState]="formState" (formSaveStart)="formSaveStart.emit(true)" (formSaveEnd)="formSaveEnd.emit(true)" (formError)="formError.emit(true)"> </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); export { FormQLComponent }; //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZm9ybXFsLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiJuZzovL0Bmb3JtcWwvY29yZS8iLCJzb3VyY2VzIjpbImNvbXBvbmVudHMvZm9ybXFsLmNvbXBvbmVudC50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiO0FBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFxQixNQUFNLEVBQUUsU0FBUyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3ZILE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUMzQyxPQUFPLEVBQUUsT0FBTyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQy9CLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxnQkFBZ0IsQ0FBQztBQUczQyxPQUFPLEVBQUUsaUJBQWlCLEVBQUUsTUFBTSxnQ0FBZ0MsQ0FBQztBQUNuRSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDbEQsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLDJCQUEyQixDQUFDO0FBaUJ6RCxJQUFhLGVBQWUsR0FBNUIsTUFBYSxlQUFlO0lBMkIxQixZQUNVLFlBQTBCO1FBQTFCLGlCQUFZLEdBQVosWUFBWSxDQUFjO1FBdkIzQixTQUFJLEdBQWUsVUFBVSxDQUFDLElBQUksQ0FBQztRQUtsQyxlQUFVLEdBQTBCLElBQUksWUFBWSxFQUFFLENBQUM7UUFDdkQsa0JBQWEsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQUMxRCxnQkFBVyxHQUEwQixJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hELGNBQVMsR0FBMEIsSUFBSSxZQUFZLEVBQUUsQ0FBQztRQVFoRSxVQUFLLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxPQUFPLEVBQUUsQ0FBQztRQUNwQyxlQUFVLEdBQUcsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLEVBQUUsQ0FBQztRQUd0Qyx1QkFBa0IsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBSXZDLENBQUM7SUFFTCxRQUFRO1FBQ04sSUFBSSxDQUFDLEtBQUssQ0FBQyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxFQUFFLENBQUMsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsQ0FBQztRQUN4RixJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLGtCQUFrQixDQUFDLENBQUM7WUFDcEQsU0FBUyxDQUFDLENBQUMsU0FBUyxFQUFFLEVBQUU7WUFDdEIsSUFBSSxTQUFTLEVBQUU7Z0JBQ2IsSUFBSSxDQUFDLFNBQVMscUJBQU8sU0FBUyxDQUFDLENBQUM7Z0JBRWhDLElBQUksU0FBUyxDQUFDLElBQUk7b0JBQ2hCLElBQUksQ0FBQyxJQUFJLEdBQUcsU0FBUyxDQUFDLElBQUksQ0FBQzthQUM5QjtRQUNILENBQUMsQ0FBQyxDQUFDO1FBQ1AsSUFBSSxDQUFDLFlBQVksQ0FBQyxNQUFNLENBQUMsSUFBSSxDQUFDLFFBQVEsRUFBRSxJQUFJLENBQUMsR0FBRyxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUMvRCxDQUFDO0lBRUQsU0FBUyxDQUFDLFFBQWdCO1FBQ3hCLElBQUksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLGlCQUFpQixDQUFDLFdBQVcsRUFBRSxRQUFRLENBQUMsQ0FBQztJQUN2RSxDQUFDO0lBRUQsZ0JBQWdCLENBQUMsU0FBNkI7UUFDNUMsSUFBSSxDQUFDLFlBQVksQ0FBQyxZQUFZLENBQUMsU0FBUyxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVELFFBQVE7UUFDTixJQUFJLENBQUMsWUFBWSxDQUFDLFFBQVEsRUFBRSxDQUFDO0lBQy9CLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxDQUFDLGtCQUFrQixDQUFDLElBQUksRUFBRSxDQUFDO1FBQy9CLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxRQUFRLEVBQUUsQ0FBQztJQUNyQyxDQUFDO0NBQ0YsQ0FBQTtBQTVEUSw2QkFBYSxHQUFHLGlCQUFpQixDQUFDO0FBRWhDO0lBQVIsS0FBSyxFQUFFOztpREFBa0I7QUFDakI7SUFBUixLQUFLLEVBQUU7OEJBQU0sS0FBSzs0Q0FBUztBQUNuQjtJQUFSLEtBQUssRUFBRTs7NkNBQW9DO0FBRW5DO0lBQVIsS0FBSyxFQUFFOzhCQUFlLFNBQVM7cURBQUM7QUFDeEI7SUFBUixLQUFLLEVBQUU7O3VEQUFxQjtBQUVuQjtJQUFULE1BQU0sRUFBRTs4QkFBYSxZQUFZO21EQUErQjtBQUN2RDtJQUFULE1BQU0sRUFBRTs4QkFBZ0IsWUFBWTtzREFBK0I7QUFDMUQ7SUFBVCxNQUFNLEVBQUU7OEJBQWMsWUFBWTtvREFBK0I7QUFDeEQ7SUFBVCxNQUFNLEVBQUU7OEJBQVksWUFBWTtrREFBK0I7QUFFRDtJQUE5RCxTQUFTLENBQUMsUUFBUSxFQUFFLEVBQUUsSUFBSSxFQUFFLGdCQUFnQixFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUUsQ0FBQzs4QkFBUyxnQkFBZ0I7K0NBQUM7QUFmN0UsZUFBZTtJQWYzQixTQUFTLENBQUM7UUFDVCwrQ0FBK0M7UUFDL0MsUUFBUSxFQUFFLFFBQVE7UUFFbEIsUUFBUSxFQUFFOzs7Ozs7Ozs7c0NBUzBCOztLQUNyQyxDQUFDO3FDQTZCd0IsWUFBWTtHQTVCekIsZUFBZSxDQTZEM0I7U0E3RFksZUFBZSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCwgVmlld0NoaWxkLCBWaWV3Q29udGFpbmVyUmVmIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgU3ViamVjdCB9IGZyb20gJ3J4anMnO1xyXG5pbXBvcnQgeyB0YWtlVW50aWwgfSBmcm9tICdyeGpzL29wZXJhdG9ycyc7XHJcbmltcG9ydCB7IEZvcm1Db21wb25lbnQgfSBmcm9tICcuLi9tb2RlbHMvZm9ybS1jb21wb25lbnQubW9kZWwnO1xyXG5pbXBvcnQgeyBGb3JtRXJyb3IsIEZvcm1TdGF0ZSwgRm9ybVdpbmRvdyB9IGZyb20gJy4uL21vZGVscy9mb3JtLXdpbmRvdy5tb2RlbCc7XHJcbmltcG9ydCB7IEludGVybmFsRXZlbnRUeXBlIH0gZnJvbSAnLi4vbW9kZWxzL2ludGVybmFsLWV2ZW50Lm1vZGVsJztcclxuaW1wb3J0IHsgRm9ybVFMTW9kZSB9IGZyb20gJy4uL21vZGVscy90eXBlLm1vZGVsJztcclxuaW1wb3J0IHsgU3RvcmVTZXJ2aWNlIH0gZnJvbSAnLi4vc2VydmljZXMvc3RvcmUuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAvLyB0c2xpbnQ6ZGlzYWJsZS1uZXh0LWxpbmU6IGNvbXBvbmVudC1zZWxlY3RvclxyXG4gIHNlbGVjdG9yOiAnZm9ybXFsJyxcclxuICBzdHlsZVVybHM6IFsnLi9mb3JtcWwuY29tcG9uZW50LnNjc3MnXSxcclxuICB0ZW1wbGF0ZTogYDxkaXYgKm5nSWY9XCJlcnJvclwiIGNsYXNzPVwiZnFsLWVycm9yLW1lc3NhZ2VcIj5cclxuICAgICAgICAgICAgICAgIDxoND57e2Vycm9yPy50aXRsZX19PC9oND5cclxuICAgICAgICAgICAgICAgIDxzcGFuPnt7ZXJyb3I/Lm1lc3NhZ2V9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICA8Zm9ybXFsLWxheW91dC1sb2FkZXJcclxuICAgICAgICAgICAgICAgIFtmb3JtU3RhdGVdPVwiZm9ybVN0YXRlXCJcclxuICAgICAgICAgICAgICAgIChmb3JtU2F2ZVN0YXJ0KT1cImZvcm1TYXZlU3RhcnQuZW1pdCh0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAoZm9ybVNhdmVFbmQpPVwiZm9ybVNhdmVFbmQuZW1pdCh0cnVlKVwiXHJcbiAgICAgICAgICAgICAgICAoZm9ybUVycm9yKT1cImZvcm1FcnJvci5lbWl0KHRydWUpXCI+XHJcbiAgICAgICAgICAgICAgPC9mb3JtcWwtbGF5b3V0LWxvYWRlcj5gXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBGb3JtUUxDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsIE9uRGVzdHJveSB7XHJcbiAgc3RhdGljIGNvbXBvbmVudE5hbWUgPSAnRm9ybVFMQ29tcG9uZW50JztcclxuXHJcbiAgQElucHV0KCkgZm9ybU5hbWU6IHN0cmluZztcclxuICBASW5wdXQoKSBpZHM6IEFycmF5PHN0cmluZz47XHJcbiAgQElucHV0KCkgbW9kZTogRm9ybVFMTW9kZSA9IEZvcm1RTE1vZGUuVmlldztcclxuXHJcbiAgQElucHV0KCkgcmVhY3RpdmVGb3JtOiBGb3JtR3JvdXA7XHJcbiAgQElucHV0KCkgY3VzdG9tTWV0YWRhdGE6IGFueTtcclxuXHJcbiAgQE91dHB1dCgpIGZvcm1Mb2FkZWQ6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuICBAT3V0cHV0KCkgZm9ybVNhdmVTdGFydDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtU2F2ZUVuZDogRXZlbnRFbWl0dGVyPGJvb2xlYW4+ID0gbmV3IEV2ZW50RW1pdHRlcigpO1xyXG4gIEBPdXRwdXQoKSBmb3JtRXJyb3I6IEV2ZW50RW1pdHRlcjxib29sZWFuPiA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcclxuXHJcbiAgQFZpZXdDaGlsZCgndGFyZ2V0JywgeyByZWFkOiBWaWV3Q29udGFpbmVyUmVmLCBzdGF0aWM6IHRydWUgfSkgdGFyZ2V0OiBWaWV3Q29udGFpbmVyUmVmO1xyXG5cclxuICBkYXRhOiBhbnk7XHJcbiAgZm9ybTogRm9ybVdpbmRvdztcclxuICBmb3JtU3RhdGU6IEZvcm1TdGF0ZTtcclxuXHJcbiAgZGF0YSQgPSB0aGlzLnN0b3JlU2VydmljZS5nZXREYXRhKCk7XHJcbiAgZm9ybVN0YXRlJCA9IHRoaXMuc3RvcmVTZXJ2aWNlLmdldEZvcm1TdGF0ZSgpO1xyXG4gIGVycm9yOiBGb3JtRXJyb3I7XHJcblxyXG4gIHByaXZhdGUgY29tcG9uZW50RGVzdHJveWVkID0gbmV3IFN1YmplY3QoKTtcclxuXHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICBwcml2YXRlIHN0b3JlU2VydmljZTogU3RvcmVTZXJ2aWNlXHJcbiAgKSB7IH1cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmRhdGEkLnBpcGUodGFrZVVudGlsKHRoaXMuY29tcG9uZW50RGVzdHJveWVkKSkuc3Vic2NyaWJlKGRhdGEgPT4gdGhpcy5kYXRhID0gZGF0YSk7XHJcbiAgICB0aGlzLmZvcm1TdGF0ZSQucGlwZSh0YWtlVW50aWwodGhpcy5jb21wb25lbnREZXN0cm95ZWQpKS5cclxuICAgICAgICBzdWJzY3JpYmUoKGZvcm1TdGF0ZSkgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm1TdGF0ZSkge1xyXG4gICAgICAgICAgICB0aGlzLmZvcm1TdGF0ZSA9IHsuLi5mb3JtU3RhdGV9O1xyXG5cclxuICAgICAgICAgICAgaWYgKGZvcm1TdGF0ZS5mb3JtKVxyXG4gICAgICAgICAgICAgIHRoaXMuZm9ybSA9IGZvcm1TdGF0ZS5mb3JtO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0pO1xyXG4gICAgdGhpcy5zdG9yZVNlcnZpY2UuZ2V0QWxsKHRoaXMuZm9ybU5hbWUsIHRoaXMuaWRzLCB0aGlzLm1vZGUpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXRGb3JtKG9iamVjdElkOiBzdHJpbmcpIHtcclxuICAgIHRoaXMuc3RvcmVTZXJ2aWNlLnJlU2V0Rm9ybShJbnRlcm5hbEV2ZW50VHlwZS5FZGl0aW5nRm9ybSwgb2JqZWN0SWQpO1xyXG4gIH1cclxuXHJcbiAgcmVmcmVzaENvbXBvbmVudChjb21wb25lbnQ6IEZvcm1Db21wb25lbnQ8YW55Pikge1xyXG4gICAgdGhpcy5zdG9yZVNlcnZpY2Uuc2V0Q29tcG9uZW50KGNvbXBvbmVudCk7XHJcbiAgfVxyXG5cclxuICBzYXZlRm9ybSgpIHtcclxuICAgIHRoaXMuc3RvcmVTZXJ2aWNlLnNhdmVGb3JtKCk7XHJcbiAgfVxyXG5cclxuICBuZ09uRGVzdHJveSgpIHtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLm5leHQoKTtcclxuICAgIHRoaXMuY29tcG9uZW50RGVzdHJveWVkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG59XHJcbiJdfQ==