UNPKG

@asoftwareworld/form-builder-pro

Version:

ASW Form Builder Pro helps you with rapid development and designed web forms which includes several controls. The key feature of Form Builder is to make your content attractive and effective. We can customize our control at run time and preview the same b

74 lines 13.6 kB
import { Component, EventEmitter, Input, Output, ViewChild } from '@angular/core'; import { CSSFrameworkEnum } from '@asoftwareworld/form-builder-pro/api'; import { AswApiParams } from './api-params/api-params'; import * as i0 from "@angular/core"; import * as i1 from "@angular/material/button"; import * as i2 from "./api-params/api-params"; import * as i3 from "./my-workspace/my-workspace"; import * as i4 from "@asoftwareworld/form-builder-pro/core"; export class AswCommunicatorApi { aswApiParams; apiResponse = new EventEmitter(); CSSFramework = CSSFrameworkEnum.Material; hasIndexedDB; indexedDB; openIDBrequest; idbStore; pastRequests; constructor() { this.hasIndexedDB = false; this.pastRequests = []; } ngOnInit() { this.openIndexedDB(); } loadRequestHandler(request) { this.aswApiParams.loadWorkspaceRequest(request); } openIndexedDB() { this.openIDBrequest = window.indexedDB.open('savedRequests', 1); this.openIDBrequest.onsuccess = (event) => { this.indexedDB = event.target.result; this.hasIndexedDB = true; this.fetchPastRequests(); }; this.openIDBrequest.onerror = (event) => { this.hasIndexedDB = false; }; this.openIDBrequest.onupgradeneeded = (event) => { this.indexedDB = event.target.result; this.idbStore = this.indexedDB.createObjectStore('myWorkspace', { keyPath: '_id', autoIncrement: true }); }; } fetchPastRequests() { const transaction = this.indexedDB.transaction('myWorkspace', 'readwrite'); const pastRequestsStore = transaction.objectStore('myWorkspace'); pastRequestsStore.getAll().onsuccess = (evt) => { this.pastRequests = evt.target.result; }; } clearPastRequests() { const transaction = this.indexedDB.transaction('myWorkspace', 'readwrite'); const pastRequestsStore = transaction.objectStore('myWorkspace'); pastRequestsStore.clear().onsuccess = (evt) => { this.pastRequests = []; }; } getApiData(data) { this.apiResponse.emit(data); } static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AswCommunicatorApi, deps: [], target: i0.ɵɵFactoryTarget.Component }); static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "18.2.8", type: AswCommunicatorApi, selector: "asw-api-communicator", inputs: { CSSFramework: "CSSFramework" }, outputs: { apiResponse: "apiResponse" }, viewQueries: [{ propertyName: "aswApiParams", first: true, predicate: AswApiParams, descendants: true, static: true }], ngImport: i0, template: "<div class=\"asw-row\">\r\n <div class=\"asw-col-md-8\">\r\n <asw-api-communicator-params \r\n [openIDBrequest]=\"openIDBrequest\" \r\n [indexedDB]=\"indexedDB\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (newRequest)=\"fetchPastRequests()\"\r\n (apiResponse)=\"getApiData($event)\">\r\n </asw-api-communicator-params>\r\n </div>\r\n <div class=\"asw-col-md-4 asw-pt-2\">\r\n <div class=\"asw-sticky-top\">\r\n <asw-my-workspace \r\n [pastRequests]=\"pastRequests\" \r\n [indexedDB]=\"indexedDB\" \r\n (loadRequest)=\"loadRequestHandler($event)\">\r\n </asw-my-workspace>\r\n <button mat-flat-button type=\"button\" class=\"asw-width-100 asw-mt-1\" color=\"warn\" (click)=\"clearPastRequests()\">\r\n {{'FormControl.ClearPastRequests' | aswTranslate}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n", dependencies: [{ kind: "component", type: i1.MatButton, selector: " button[mat-button], button[mat-raised-button], button[mat-flat-button], button[mat-stroked-button] ", exportAs: ["matButton"] }, { kind: "component", type: i2.AswApiParams, selector: "asw-api-communicator-params", inputs: ["openIDBrequest", "indexedDB", "CSSFramework"], outputs: ["newRequest", "apiResponse"] }, { kind: "component", type: i3.AswMyWorkspace, selector: "asw-my-workspace", inputs: ["indexedDB", "pastRequests"], outputs: ["loadRequest"] }, { kind: "pipe", type: i4.AswTranslatePipe, name: "aswTranslate" }] }); } i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "18.2.8", ngImport: i0, type: AswCommunicatorApi, decorators: [{ type: Component, args: [{ selector: 'asw-api-communicator', template: "<div class=\"asw-row\">\r\n <div class=\"asw-col-md-8\">\r\n <asw-api-communicator-params \r\n [openIDBrequest]=\"openIDBrequest\" \r\n [indexedDB]=\"indexedDB\"\r\n [CSSFramework]=\"CSSFramework\"\r\n (newRequest)=\"fetchPastRequests()\"\r\n (apiResponse)=\"getApiData($event)\">\r\n </asw-api-communicator-params>\r\n </div>\r\n <div class=\"asw-col-md-4 asw-pt-2\">\r\n <div class=\"asw-sticky-top\">\r\n <asw-my-workspace \r\n [pastRequests]=\"pastRequests\" \r\n [indexedDB]=\"indexedDB\" \r\n (loadRequest)=\"loadRequestHandler($event)\">\r\n </asw-my-workspace>\r\n <button mat-flat-button type=\"button\" class=\"asw-width-100 asw-mt-1\" color=\"warn\" (click)=\"clearPastRequests()\">\r\n {{'FormControl.ClearPastRequests' | aswTranslate}}\r\n </button>\r\n </div>\r\n </div>\r\n</div>\r\n" }] }], ctorParameters: () => [], propDecorators: { aswApiParams: [{ type: ViewChild, args: [AswApiParams, { static: true }] }], apiResponse: [{ type: Output }], CSSFramework: [{ type: Input }] } }); //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLWNvbW11bmljYXRvci5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uL3NyYy9jb21wb25lbnRzL2NvbW1vbi9hcGktY29tbXVuaWNhdG9yL2FwaS1jb21tdW5pY2F0b3IudHMiLCIuLi8uLi8uLi8uLi9zcmMvY29tcG9uZW50cy9jb21tb24vYXBpLWNvbW11bmljYXRvci9hcGktY29tbXVuaWNhdG9yLmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFVLE1BQU0sRUFBRSxTQUFTLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDMUYsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0NBQXNDLENBQUM7QUFDeEUsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7QUFNdkQsTUFBTSxPQUFPLGtCQUFrQjtJQUNnQixZQUFZLENBQWdCO0lBQzdELFdBQVcsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO0lBQ2xDLFlBQVksR0FBcUIsZ0JBQWdCLENBQUMsUUFBUSxDQUFDO0lBQ3BFLFlBQVksQ0FBVTtJQUN0QixTQUFTLENBQU07SUFDZixjQUFjLENBQU07SUFDcEIsUUFBUSxDQUFNO0lBQ2QsWUFBWSxDQUFNO0lBRWxCO1FBQ0ksSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7UUFDMUIsSUFBSSxDQUFDLFlBQVksR0FBRyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELFFBQVE7UUFDSixJQUFJLENBQUMsYUFBYSxFQUFFLENBQUM7SUFDekIsQ0FBQztJQUVELGtCQUFrQixDQUFDLE9BQVk7UUFDM0IsSUFBSSxDQUFDLFlBQVksQ0FBQyxvQkFBb0IsQ0FBQyxPQUFPLENBQUMsQ0FBQztJQUNwRCxDQUFDO0lBRUQsYUFBYTtRQUNULElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsZUFBZSxFQUFFLENBQUMsQ0FBQyxDQUFDO1FBRWhFLElBQUksQ0FBQyxjQUFjLENBQUMsU0FBUyxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDM0MsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNyQyxJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztZQUV6QixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUM3QixDQUFDLENBQUM7UUFFRixJQUFJLENBQUMsY0FBYyxDQUFDLE9BQU8sR0FBRyxDQUFDLEtBQVUsRUFBRSxFQUFFO1lBQ3pDLElBQUksQ0FBQyxZQUFZLEdBQUcsS0FBSyxDQUFDO1FBQzlCLENBQUMsQ0FBQztRQUVGLElBQUksQ0FBQyxjQUFjLENBQUMsZUFBZSxHQUFHLENBQUMsS0FBVSxFQUFFLEVBQUU7WUFDakQsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUMsTUFBTSxDQUFDLE1BQU0sQ0FBQztZQUNyQyxJQUFJLENBQUMsUUFBUSxHQUFHLElBQUksQ0FBQyxTQUFTLENBQUMsaUJBQWlCLENBQUMsYUFBYSxFQUFFLEVBQUUsT0FBTyxFQUFFLEtBQUssRUFBRSxhQUFhLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztRQUM3RyxDQUFDLENBQUM7SUFDTixDQUFDO0lBRUQsaUJBQWlCO1FBQ2IsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxXQUFXLENBQUMsYUFBYSxFQUFFLFdBQVcsQ0FBQyxDQUFDO1FBRTNFLE1BQU0saUJBQWlCLEdBQUcsV0FBVyxDQUFDLFdBQVcsQ0FBQyxhQUFhLENBQUMsQ0FBQztRQUNqRSxpQkFBaUIsQ0FBQyxNQUFNLEVBQUUsQ0FBQyxTQUFTLEdBQUcsQ0FBQyxHQUFRLEVBQUUsRUFBRTtZQUNoRCxJQUFJLENBQUMsWUFBWSxHQUFHLEdBQUcsQ0FBQyxNQUFNLENBQUMsTUFBTSxDQUFDO1FBQzFDLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxpQkFBaUI7UUFDYixNQUFNLFdBQVcsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLFdBQVcsQ0FBQyxhQUFhLEVBQUUsV0FBVyxDQUFDLENBQUM7UUFFM0UsTUFBTSxpQkFBaUIsR0FBRyxXQUFXLENBQUMsV0FBVyxDQUFDLGFBQWEsQ0FBQyxDQUFDO1FBQ2pFLGlCQUFpQixDQUFDLEtBQUssRUFBRSxDQUFDLFNBQVMsR0FBRyxDQUFDLEdBQVEsRUFBRSxFQUFFO1lBQy9DLElBQUksQ0FBQyxZQUFZLEdBQUcsRUFBRSxDQUFDO1FBQzNCLENBQUMsQ0FBQztJQUNOLENBQUM7SUFFRCxVQUFVLENBQUMsSUFBUztRQUNoQixJQUFJLENBQUMsV0FBVyxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztJQUNoQyxDQUFDO3VHQS9EUSxrQkFBa0I7MkZBQWxCLGtCQUFrQiw2TEFDaEIsWUFBWSw4RENUM0IsdStCQXVCQTs7MkZEZmEsa0JBQWtCO2tCQUo5QixTQUFTOytCQUNJLHNCQUFzQjt3REFJVyxZQUFZO3NCQUF0RCxTQUFTO3VCQUFDLFlBQVksRUFBRSxFQUFFLE1BQU0sRUFBRSxJQUFJLEVBQUU7Z0JBQy9CLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0UsWUFBWTtzQkFBcEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25Jbml0LCBPdXRwdXQsIFZpZXdDaGlsZCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgQ1NTRnJhbWV3b3JrRW51bSB9IGZyb20gJ0Bhc29mdHdhcmV3b3JsZC9mb3JtLWJ1aWxkZXItcHJvL2FwaSc7XG5pbXBvcnQgeyBBc3dBcGlQYXJhbXMgfSBmcm9tICcuL2FwaS1wYXJhbXMvYXBpLXBhcmFtcyc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnYXN3LWFwaS1jb21tdW5pY2F0b3InLFxuICAgIHRlbXBsYXRlVXJsOiAnLi9hcGktY29tbXVuaWNhdG9yLmh0bWwnXG59KVxuZXhwb3J0IGNsYXNzIEFzd0NvbW11bmljYXRvckFwaSBpbXBsZW1lbnRzIE9uSW5pdCB7XG4gICAgQFZpZXdDaGlsZChBc3dBcGlQYXJhbXMsIHsgc3RhdGljOiB0cnVlIH0pIGFzd0FwaVBhcmFtcyE6IEFzd0FwaVBhcmFtcztcbiAgICBAT3V0cHV0KCkgYXBpUmVzcG9uc2UgPSBuZXcgRXZlbnRFbWl0dGVyKCk7XG4gICAgQElucHV0KCkgQ1NTRnJhbWV3b3JrOiBDU1NGcmFtZXdvcmtFbnVtID0gQ1NTRnJhbWV3b3JrRW51bS5NYXRlcmlhbDtcbiAgICBoYXNJbmRleGVkREI6IGJvb2xlYW47XG4gICAgaW5kZXhlZERCOiBhbnk7XG4gICAgb3BlbklEQnJlcXVlc3Q6IGFueTtcbiAgICBpZGJTdG9yZTogYW55O1xuICAgIHBhc3RSZXF1ZXN0czogYW55O1xuXG4gICAgY29uc3RydWN0b3IoKSB7XG4gICAgICAgIHRoaXMuaGFzSW5kZXhlZERCID0gZmFsc2U7XG4gICAgICAgIHRoaXMucGFzdFJlcXVlc3RzID0gW107XG4gICAgfVxuXG4gICAgbmdPbkluaXQoKTogdm9pZCB7XG4gICAgICAgIHRoaXMub3BlbkluZGV4ZWREQigpO1xuICAgIH1cblxuICAgIGxvYWRSZXF1ZXN0SGFuZGxlcihyZXF1ZXN0OiBhbnkpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5hc3dBcGlQYXJhbXMubG9hZFdvcmtzcGFjZVJlcXVlc3QocmVxdWVzdCk7XG4gICAgfVxuXG4gICAgb3BlbkluZGV4ZWREQigpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5vcGVuSURCcmVxdWVzdCA9IHdpbmRvdy5pbmRleGVkREIub3Blbignc2F2ZWRSZXF1ZXN0cycsIDEpO1xuXG4gICAgICAgIHRoaXMub3BlbklEQnJlcXVlc3Qub25zdWNjZXNzID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhlZERCID0gZXZlbnQudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgIHRoaXMuaGFzSW5kZXhlZERCID0gdHJ1ZTtcblxuICAgICAgICAgICAgdGhpcy5mZXRjaFBhc3RSZXF1ZXN0cygpO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMub3BlbklEQnJlcXVlc3Qub25lcnJvciA9IChldmVudDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLmhhc0luZGV4ZWREQiA9IGZhbHNlO1xuICAgICAgICB9O1xuXG4gICAgICAgIHRoaXMub3BlbklEQnJlcXVlc3Qub251cGdyYWRlbmVlZGVkID0gKGV2ZW50OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMuaW5kZXhlZERCID0gZXZlbnQudGFyZ2V0LnJlc3VsdDtcbiAgICAgICAgICAgIHRoaXMuaWRiU3RvcmUgPSB0aGlzLmluZGV4ZWREQi5jcmVhdGVPYmplY3RTdG9yZSgnbXlXb3Jrc3BhY2UnLCB7IGtleVBhdGg6ICdfaWQnLCBhdXRvSW5jcmVtZW50OiB0cnVlIH0pO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGZldGNoUGFzdFJlcXVlc3RzKCk6IHZvaWQge1xuICAgICAgICBjb25zdCB0cmFuc2FjdGlvbiA9IHRoaXMuaW5kZXhlZERCLnRyYW5zYWN0aW9uKCdteVdvcmtzcGFjZScsICdyZWFkd3JpdGUnKTtcblxuICAgICAgICBjb25zdCBwYXN0UmVxdWVzdHNTdG9yZSA9IHRyYW5zYWN0aW9uLm9iamVjdFN0b3JlKCdteVdvcmtzcGFjZScpO1xuICAgICAgICBwYXN0UmVxdWVzdHNTdG9yZS5nZXRBbGwoKS5vbnN1Y2Nlc3MgPSAoZXZ0OiBhbnkpID0+IHtcbiAgICAgICAgICAgIHRoaXMucGFzdFJlcXVlc3RzID0gZXZ0LnRhcmdldC5yZXN1bHQ7XG4gICAgICAgIH07XG4gICAgfVxuXG4gICAgY2xlYXJQYXN0UmVxdWVzdHMoKTogdm9pZCB7XG4gICAgICAgIGNvbnN0IHRyYW5zYWN0aW9uID0gdGhpcy5pbmRleGVkREIudHJhbnNhY3Rpb24oJ215V29ya3NwYWNlJywgJ3JlYWR3cml0ZScpO1xuXG4gICAgICAgIGNvbnN0IHBhc3RSZXF1ZXN0c1N0b3JlID0gdHJhbnNhY3Rpb24ub2JqZWN0U3RvcmUoJ215V29ya3NwYWNlJyk7XG4gICAgICAgIHBhc3RSZXF1ZXN0c1N0b3JlLmNsZWFyKCkub25zdWNjZXNzID0gKGV2dDogYW55KSA9PiB7XG4gICAgICAgICAgICB0aGlzLnBhc3RSZXF1ZXN0cyA9IFtdO1xuICAgICAgICB9O1xuICAgIH1cblxuICAgIGdldEFwaURhdGEoZGF0YTogYW55KTogdm9pZCB7XG4gICAgICAgIHRoaXMuYXBpUmVzcG9uc2UuZW1pdChkYXRhKTtcbiAgICB9XG59XG4iLCI8ZGl2IGNsYXNzPVwiYXN3LXJvd1wiPlxyXG4gICAgPGRpdiBjbGFzcz1cImFzdy1jb2wtbWQtOFwiPlxyXG4gICAgICAgIDxhc3ctYXBpLWNvbW11bmljYXRvci1wYXJhbXMgXHJcbiAgICAgICAgICAgIFtvcGVuSURCcmVxdWVzdF09XCJvcGVuSURCcmVxdWVzdFwiIFxyXG4gICAgICAgICAgICBbaW5kZXhlZERCXT1cImluZGV4ZWREQlwiXHJcbiAgICAgICAgICAgIFtDU1NGcmFtZXdvcmtdPVwiQ1NTRnJhbWV3b3JrXCJcclxuICAgICAgICAgICAgKG5ld1JlcXVlc3QpPVwiZmV0Y2hQYXN0UmVxdWVzdHMoKVwiXHJcbiAgICAgICAgICAgIChhcGlSZXNwb25zZSk9XCJnZXRBcGlEYXRhKCRldmVudClcIj5cclxuICAgICAgICA8L2Fzdy1hcGktY29tbXVuaWNhdG9yLXBhcmFtcz5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImFzdy1jb2wtbWQtNCBhc3ctcHQtMlwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJhc3ctc3RpY2t5LXRvcFwiPlxyXG4gICAgICAgICAgICA8YXN3LW15LXdvcmtzcGFjZSBcclxuICAgICAgICAgICAgICAgIFtwYXN0UmVxdWVzdHNdPVwicGFzdFJlcXVlc3RzXCIgXHJcbiAgICAgICAgICAgICAgICBbaW5kZXhlZERCXT1cImluZGV4ZWREQlwiIFxyXG4gICAgICAgICAgICAgICAgKGxvYWRSZXF1ZXN0KT1cImxvYWRSZXF1ZXN0SGFuZGxlcigkZXZlbnQpXCI+XHJcbiAgICAgICAgICAgIDwvYXN3LW15LXdvcmtzcGFjZT5cclxuICAgICAgICAgICAgPGJ1dHRvbiBtYXQtZmxhdC1idXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYXN3LXdpZHRoLTEwMCBhc3ctbXQtMVwiIGNvbG9yPVwid2FyblwiIChjbGljayk9XCJjbGVhclBhc3RSZXF1ZXN0cygpXCI+XHJcbiAgICAgICAgICAgICAgICB7eydGb3JtQ29udHJvbC5DbGVhclBhc3RSZXF1ZXN0cycgfCBhc3dUcmFuc2xhdGV9fVxyXG4gICAgICAgICAgICA8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19