UNPKG

reports-hyper74

Version:

This library was generated with [Angular CLI](https://github.com/angular/angular-cli) version 12.2.0.

569 lines (557 loc) 46.2 kB
import * as i0 from '@angular/core'; import { Injectable, EventEmitter, Component, Input, Output, ViewChild, NgModule } from '@angular/core'; import * as i1 from '@angular/common/http'; import { HttpParams, HttpClientModule } from '@angular/common/http'; import * as XLSX from 'xlsx'; import * as i2 from '@angular/material/tabs'; import { MatTabsModule } from '@angular/material/tabs'; import * as i3 from '@angular/material/grid-list'; import { MatGridListModule } from '@angular/material/grid-list'; import * as i4 from '@angular/material/card'; import { MatCardModule } from '@angular/material/card'; import * as i5 from '@angular/material/button'; import { MatButtonModule } from '@angular/material/button'; import * as i2$1 from '@angular/common'; import { CommonModule, DatePipe } from '@angular/common'; import * as i12 from '@angular/material/input'; import { MatInputModule } from '@angular/material/input'; import * as i6 from '@angular/material/form-field'; import { MatFormFieldModule } from '@angular/material/form-field'; import * as i1$1 from '@angular/router'; import { RouterModule } from '@angular/router'; import * as i4$1 from '@angular/material/icon'; import { MatIconModule } from '@angular/material/icon'; import * as i7 from '@angular/material/datepicker'; import { MatDatepickerModule } from '@angular/material/datepicker'; import * as i8 from '@angular/material/select'; import { MatSelectModule } from '@angular/material/select'; import * as i9 from '@angular/material/core'; import { MatOptionModule } from '@angular/material/core'; import * as i11 from '@angular/forms'; import { FormsModule } from '@angular/forms'; import * as i6$1 from '@angular/material/table'; import { MatTableDataSource, MatTableModule } from '@angular/material/table'; import { jsPDF } from 'jspdf'; import 'jspdf-autotable'; import * as i7$1 from '@angular/material/paginator'; import { MatPaginatorModule } from '@angular/material/paginator'; class ReportsService { constructor(httpClient) { this.httpClient = httpClient; } loadGroups(url) { return this.httpClient.get(url); } listReportsByGroupId(url, groupId) { return this.httpClient.get(`${url}/${groupId}`); } getReportWithFilters(url, reportId) { return this.httpClient.get(`${url}/${reportId}`); } executeReport(url, query) { // console.log('query', query); const params = new HttpParams() .set('pageNum', `${query.pageNum}`) .set('pageSize', `${query.pageSize}`); return this.httpClient.post(`${url}/${query.reportId}`, query.data, { params }); } exportAsExcelFile(json, excelFileName) { const header = json; // columns name const wscols = []; for (let i = 0; i < header.length; i++) { // columns length added wscols.push({ wch: header[i].length + 5 }); } // const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json); const table_elt = document.getElementById("excelDataTable"); console.log('tabke_elt', table_elt); const workbook = XLSX.utils.table_to_book(table_elt); console.log('workBook', workbook); const ws = workbook.Sheets["Sheet1"]; XLSX.utils.sheet_add_aoa(ws, [["Created " + new Date().toISOString()]], { origin: -1 }); ws["!cols"] = wscols; XLSX.writeFile(workbook, excelFileName + ".xlsx"); } } ReportsService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable }); ReportsService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsService, providedIn: 'root' }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsService, decorators: [{ type: Injectable, args: [{ providedIn: 'root' }] }], ctorParameters: function () { return [{ type: i1.HttpClient }]; } }); let breakpoint; function sharedGridLayout(resize, event) { let size; if (resize) { size = event.target.innerWidth; //console.log('event',size) } else { size = window.innerWidth; } switchMethod(size); return breakpoint; } function switchMethod(size) { switch (true) { case (size <= 768): breakpoint = 1; break; case (size >= 768 && size <= 992): breakpoint = 2; break; case (size >= 992): breakpoint = 3; break; } } class ReportsComponent { constructor(reportService) { this.reportService = reportService; this.reportsGroups = []; this.reportsByGroupId = []; this.$subs = []; this.onViewClicked = new EventEmitter(); this.breakpoint = 3; } ngOnInit() { this.loadGroups(); } loadGroups() { const sub1 = this.reportService .loadGroups(this.urlReportGroups) .subscribe((res) => { this.reportsGroups = res; this.$subs.push(sub1); }); } listReportsByGroupId(groupId) { const sub2 = this.reportService .listReportsByGroupId(this.reportGroupByIdUrl, groupId) .subscribe((res2) => { this.reportsByGroupId = res2; }); this.$subs.push(sub2); } onTabChanged(event) { this.listReportsByGroupId(this.reportsGroups[event].id); } viewReportFilterDetails(report) { this.onViewClicked.emit(report); } onResize(event) { this.breakpoint = sharedGridLayout(true, event); // console.log('breakPoint', this.breakpoint); } ngOnDestroy() { this.$subs.forEach((item) => item.unsubscribe()); } } ReportsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsComponent, deps: [{ token: ReportsService }], target: i0.ɵɵFactoryTarget.Component }); ReportsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ReportsComponent, selector: "lib-reports-groups", inputs: { urlReportGroups: "urlReportGroups", reportGroupByIdUrl: "reportGroupByIdUrl" }, outputs: { onViewClicked: "onViewClicked" }, ngImport: i0, template: ` <div class="reportsContainer"> <div class="title"> Marketing Reports </div> <mat-tab-group *ngIf="reportsGroups" (selectedIndexChange)="onTabChanged($event)"> <mat-tab [id]="group.id" *ngFor="let group of reportsGroups;let i=index" label="{{group.name}}" > <mat-grid-list class="space" [cols]="breakpoint" (window:resize)="onResize($event)" rowHeight="200px"> <mat-grid-tile *ngFor="let report of reportsByGroupId"> <mat-card class="example-card"> <mat-card-title class="title">{{ report.name }}</mat-card-title> <mat-card-content> <p>{{ report.descreption }}</p> </mat-card-content> <mat-card-actions> <button mat-button class="viewButton" (click)="viewReportFilterDetails(report)" > View </button> </mat-card-actions> </mat-card> </mat-grid-tile> </mat-grid-list> </mat-tab> </mat-tab-group> </div> `, isInline: true, styles: ["\n .example-card {\n max-width: 350px;\n border-radius: 8px;\n height: 160px;\n overflow: auto;\n width: 93%\n }\n\n .viewButton {\n background: #FF6600;\n color: #ffffff;\n float: right;\n }\n .title{\n font-size: 18px;\n font-weight: 600;\n letter-spacing: 0.34px;\n color: #1B1B1B;\n opacity: 1;\n margin-bottom: 15px;\n }\n .reportsContainer{\n margin: 30px;\n }\n .tabs{\n margin: 45px;\n }\n .space{\n margin-top: 20px;\n }\n "], components: [{ type: i2.MatTabGroup, selector: "mat-tab-group", inputs: ["color", "disableRipple"], exportAs: ["matTabGroup"] }, { type: i2.MatTab, selector: "mat-tab", inputs: ["disabled", "label", "aria-label", "aria-labelledby"], exportAs: ["matTab"] }, { type: i3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsComponent, decorators: [{ type: Component, args: [{ selector: 'lib-reports-groups', template: ` <div class="reportsContainer"> <div class="title"> Marketing Reports </div> <mat-tab-group *ngIf="reportsGroups" (selectedIndexChange)="onTabChanged($event)"> <mat-tab [id]="group.id" *ngFor="let group of reportsGroups;let i=index" label="{{group.name}}" > <mat-grid-list class="space" [cols]="breakpoint" (window:resize)="onResize($event)" rowHeight="200px"> <mat-grid-tile *ngFor="let report of reportsByGroupId"> <mat-card class="example-card"> <mat-card-title class="title">{{ report.name }}</mat-card-title> <mat-card-content> <p>{{ report.descreption }}</p> </mat-card-content> <mat-card-actions> <button mat-button class="viewButton" (click)="viewReportFilterDetails(report)" > View </button> </mat-card-actions> </mat-card> </mat-grid-tile> </mat-grid-list> </mat-tab> </mat-tab-group> </div> `, styles: [ ` .example-card { max-width: 350px; border-radius: 8px; height: 160px; overflow: auto; width: 93% } .viewButton { background: #FF6600; color: #ffffff; float: right; } .title{ font-size: 18px; font-weight: 600; letter-spacing: 0.34px; color: #1B1B1B; opacity: 1; margin-bottom: 15px; } .reportsContainer{ margin: 30px; } .tabs{ margin: 45px; } .space{ margin-top: 20px; } `, ], }] }], ctorParameters: function () { return [{ type: ReportsService }]; }, propDecorators: { urlReportGroups: [{ type: Input }], reportGroupByIdUrl: [{ type: Input }], onViewClicked: [{ type: Output }] } }); class ReportDetailsComponent { constructor(reportService, datepipe) { this.reportService = reportService; this.datepipe = datepipe; this.$subs = []; this.breakpoint = 3; this.onExecuteFired = new EventEmitter(); this.backClicked = new EventEmitter(); } ngOnInit() { this.breakpoint = sharedGridLayout(); this.loadReportFilters(); } onResize(event) { this.breakpoint = sharedGridLayout(true, event); } loadReportFilters() { const sub1 = this.reportService .getReportWithFilters(this.loadReportDetailFilters, this.reportId) .subscribe((res) => { this.reportDetails = res; }); this.$subs.push(sub1); } ngOnDestroy() { this.$subs.forEach((item) => item.unsubscribe()); } validateAndConvertData() { var _a, _b; if (this.reportDetails && this.reportDetails.reportFilters) { for (let i = 0; i < ((_b = (_a = this.reportDetails) === null || _a === void 0 ? void 0 : _a.reportFilters) === null || _b === void 0 ? void 0 : _b.length); i++) { this.reportDetails.reportFilters[i].value = this.reportDetails.reportFilters[i].dataType.toLocaleLowerCase() === 'date' ? this.datepipe.transform(this.reportDetails.reportFilters[i].value, 'yyyy-MM-dd') : this.reportDetails.reportFilters[i].value; } } return true; } execute() { var _a; if ((_a = this.executeForm) === null || _a === void 0 ? void 0 : _a.invalid) { this.executeForm.form.markAllAsTouched(); return; } this.validateAndConvertData(); sessionStorage.setItem('executeForm', JSON.stringify(this.reportDetails.reportFilters)); sessionStorage.setItem('reportName', this.reportDetails.name); this.onExecuteFired.emit({ fired: true }); } onBackClicked() { this.backClicked.emit({ back: true }); } } ReportDetailsComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportDetailsComponent, deps: [{ token: ReportsService }, { token: i2$1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); ReportDetailsComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ReportDetailsComponent, selector: "lib-report-details", inputs: { reportId: "reportId", loadReportDetailFilters: "loadReportDetailFilters" }, outputs: { onExecuteFired: "onExecuteFired", backClicked: "backClicked" }, viewQueries: [{ propertyName: "executeForm", first: true, predicate: ["f"], descendants: true }], ngImport: i0, template: "<mat-card class=\"example-card\">\n <mat-card-title><mat-icon (click)=\"onBackClicked()\" class=\"back-btn\">arrow_back</mat-icon> {{reportDetails?.name}}</mat-card-title>\n <mat-card-subtitle>{{reportDetails?.descreption}}</mat-card-subtitle>\n <mat-card-content *ngIf=\"reportDetails\">\n <form name=\"form\" #f=\"ngForm\" novalidate >\n <mat-grid-list class=\"mt-2\" [cols]=\"breakpoint\" (window:resize)=\"onResize($event)\" rowHeight=\"100px\">\n <mat-grid-tile *ngFor=\"let filter of reportDetails.reportFilters\">\n <mat-form-field class=\"form-field\" appearance=\"outline\" *ngIf=\"filter.dataType.toLowerCase() == 'date' \">\n <mat-label class=\"form-label\">{{filter.name}} </mat-label>\n <input matInput [matDatepicker]=\"picker\" #date=\"ngModel\"\n [name]=\"filter.name\" [(ngModel)]=\"filter.value\" [required]=\"filter.required\">\n <mat-datepicker-toggle matSuffix [for]=\"picker\"></mat-datepicker-toggle>\n <mat-datepicker #picker></mat-datepicker>\n\n </mat-form-field>\n\n <mat-form-field class=\"form-field\" appearance=\"outline\" *ngIf=\"filter.dataType.toLowerCase() == 'text' \">\n <mat-label class=\"form-label\">{{filter.name}} </mat-label>\n <input matInput *ngIf=\"filter.dataType.toLowerCase() == 'text' \" [name]=\"filter.name\"\n [(ngModel)]=\"filter.value\" [required]=\"filter.required\">\n </mat-form-field>\n <mat-form-field class=\"form-field\" appearance=\"outline\" *ngIf=\"filter.dataType.toLowerCase() == 'number' \">\n <mat-label class=\"form-label\">{{filter.name}} </mat-label>\n <input matInput type=\"number\" [name]=\"filter.name\"\n [(ngModel)]=\"filter.value\" [required]=\"filter.required\" >\n </mat-form-field>\n\n <mat-form-field class=\"form-field\" appearance=\"outline\"\n *ngIf=\"filter.dataType.toLowerCase() == 'query' || filter.dataType.toLowerCase() ==='lookup'\">\n <mat-label class=\"form-label\">{{filter.name}} </mat-label>\n <mat-select *ngIf=\"filter.dataType.toLowerCase() == 'query' || filter.dataType.toLowerCase() ==='lookup'\"\n [name]=\"filter.name\" [(ngModel)]=\"filter.value\" [required]=\"filter.required\">\n <mat-option *ngFor=\"let option of filter.lookUps\" [value]=\"option.id\">{{option.name}}</mat-option>\n </mat-select>\n </mat-form-field>\n </mat-grid-tile>\n </mat-grid-list>\n </form>\n <button type=\"submit\" mat-button class=\"viewButton\" (click)=\"execute()\">Execute</button>\n\n </mat-card-content>\n</mat-card>\n", styles: [".example-card{height:100%;width:100%;border-radius:8px}.back-btn{vertical-align:sub;color:#f60;cursor:pointer}.mat-form-field{width:93%}.viewButton{background:#FF6600;color:#fff}\n"], components: [{ type: i4.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i3.MatGridList, selector: "mat-grid-list", inputs: ["cols", "gutterSize", "rowHeight"], exportAs: ["matGridList"] }, { type: i3.MatGridTile, selector: "mat-grid-tile", inputs: ["rowspan", "colspan"], exportAs: ["matGridTile"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "floatLabel", "appearance", "hideRequiredMarker", "hintLabel"], exportAs: ["matFormField"] }, { type: i7.MatDatepickerToggle, selector: "mat-datepicker-toggle", inputs: ["tabIndex", "disabled", "for", "aria-label", "disableRipple"], exportAs: ["matDatepickerToggle"] }, { type: i7.MatDatepicker, selector: "mat-datepicker", exportAs: ["matDatepicker"] }, { type: i8.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i9.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i4.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i4.MatCardSubtitle, selector: "mat-card-subtitle, [mat-card-subtitle], [matCardSubtitle]" }, { type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i4.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i11.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i11.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i11.NgForm, selector: "form:not([ngNoForm]):not([formGroup]),ng-form,[ngForm]", inputs: ["ngFormOptions"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6.MatLabel, selector: "mat-label" }, { type: i12.MatInput, selector: "input[matInput], textarea[matInput], select[matNativeControl], input[matNativeControl], textarea[matNativeControl]", inputs: ["id", "disabled", "required", "type", "value", "readonly", "placeholder", "errorStateMatcher", "aria-describedby"], exportAs: ["matInput"] }, { type: i7.MatDatepickerInput, selector: "input[matDatepicker]", inputs: ["matDatepicker", "min", "max", "matDatepickerFilter"], exportAs: ["matDatepickerInput"] }, { type: i11.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { type: i11.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i11.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }, { type: i11.RequiredValidator, selector: ":not([type=checkbox])[required][formControlName],:not([type=checkbox])[required][formControl],:not([type=checkbox])[required][ngModel]", inputs: ["required"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i11.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportDetailsComponent, decorators: [{ type: Component, args: [{ selector: 'lib-report-details', templateUrl: './report-details.component.html', styleUrls: ['./report-details.component.css'], // encapsulation: ViewEncapsulation.None, }] }], ctorParameters: function () { return [{ type: ReportsService }, { type: i2$1.DatePipe }]; }, propDecorators: { reportId: [{ type: Input }], executeForm: [{ type: ViewChild, args: ['f'] }], loadReportDetailFilters: [{ type: Input }], onExecuteFired: [{ type: Output }], backClicked: [{ type: Output }] } }); class NoDataComponent { constructor() { } ngOnInit() { } } NoDataComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NoDataComponent, deps: [], target: i0.ɵɵFactoryTarget.Component }); NoDataComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: NoDataComponent, selector: "lib-no-data", ngImport: i0, template: "<div class=\"empty-state\">\n <div class=\"empty-state__content\">\n <div class=\"empty-state__icon\">\n <img\n src=\"data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAN0AAACuCAMAAACFrPhHAAAC9FBMVEUAAADn6do3tE7l5ufo6ejl7vLs8fPd6e3woX/o2WoutEz/0Ug1Lj7e3t3s7e0e1VAX1lL/41Hl5eUQykrj5eWm8l+o5Vzs7Ow6NUcM0FAM21dG41Q6OT2O7lz135YEtz8B2Vgm31EJ21jh5OTnw3A4MUTE92IBuEM44lMojErg4OACuUKI7VsBsTM/41Sm81/i4+PF+GLg4+PU82OG7VvW9mFs6Vjq7Oz411rNmoCin6bj4dbz3pP643zR0tHk/KG5uLvn6e7////8/fzp+v/u/P/4/v/z/f/k+f/k5OT/Yhu79mHZ2dmR8Fzc3d3G+GKi8l7r6+yp9F/f39+a8V1/7VpM5VV261n/301Z51b/2ktk6VjA+GHQ+mOw9V+19mCI71v/4lDm5ubi4uFVT2Xw8PDK+WL09PL/wkH/1Un/uz474lP/yUX/WQ3/cltu61n/0EbW1tYA21rU+2QByVJOR1/S09PFxcZfVmkA1FcA4lz/bWD/dlfZ/GX/kSsBrTD9yldEPVX/Z2X/tTv+qzn/9eQ2L0UBwk8Aszr/448Bz1T/4oMAt0L/Ymr/z14r4FH/mTL/iSpJQlr/ojY+OFD/sjL/gSn/rCfqrDba4+b/76v/7KP/6JkEvE3Kysr/oiC4t7f/1Gr/230OnD3BwsL/mSb8w07/2HP942H/yj04MzL5+fm8vLxLw1uJiYn/oiz/uzL7/PHegVYNqEjPz82rqKeRkZH/eCQRn0fuvEN/f3+nsbbf1M3/wTn/bh4uKCn/3kToUj35VmFbylwLskz9hF+R515JPzTttDsVj0J2dHFqaWmf6V+xsK+U0lGgoKDvYEml11KCzE5gwk3/7t5IuUr+5eTo3trYnjfumzTyfi3f32FpVjbyaSP/cnKwur/kh1xl2Fs6u1orsUbb+pLt7Vnu47Qjl0nDlTlfXFvwWFCrhDnv9/Tz78xyx06YdznW+mq53lSCZzfktUOwlEnR5pfgs1hRUFBDmUTTwq79m57P8XpxWfaWAAAAQnRSTlMABAR+/vlX/vMRGeo/imoyY1GkSS1OLYq0hquPb6L5qurl1Ej93IbwwvfhyG7r4ta72pn12q/QxKz72smTYeGxsKmDcPDbAAAXwklEQVR42tyXv4vTUADHk1iVVrT1RwtaWjgPpIhUxZ8gCl6nYI3Wtja29yNNUZAbDjno1tGpw811dLFLBneHwIGTe+cUzOb/4DeNyUvbF70+n5D4uR4luRLeh8/70ROOhOSwcC38H/gmUiqVSuM3+es6/oauQSqdyZdK5VcOnU7n7t3CtWxOirmgNBNI50vllw6uHNjb22u1WrcL2VR8BWfDTufLu7u7y3KgCQrXkvH0w5BTmdLBrisHKHKapt0u5OLn57jl1+BGylHlnoJCVhDipIcW0sW1AyIXUs61azQKuRj5YaAZuB2tXMPheSEZFz1JSF2CW3g5Igdmcs+fX4/H9PTC0cvR5cCLF3HI56y4g1XLQQ5czwmiEGkwK0sHLOXA9nY22vUkIb12lHJgQQ5u2zs716Jcj8itUo7I7Ty5El09WrmjygHIPYmu3t+XA5sR1cOGwliOyMFuM5JrT5Kky+zliNzms2wE9SThEo9ysNuM3rknCRk+5cBNMWJ22FF4yLl2byK2s2DRrfGTe/PmD0tPDEUg8Ex3kbLmmOW2biYZx8lVj8xLnuW2trZ+PzfXz9A5keSqR/ZLDuWeeXLgVui+KYrJe7XXISTWuetB7jzXcmD/TqidcKyWqFHB/asifzupxLUc5Pb3ES/E7oYs3zhHpSfLF/5JOno5drmFeGKAG/X6ukDlal25IAbgY1fitVsSuQHihXCu3w+xe9TvJ7mnS3MvNxjsD+a2zfUThAfV6ukTVK5W350hVzx2UNjlqeVaTeZyA4dbSdHnTI2FezwOe6lMK2cZh3BjK+cKZgWfxwk9gZf7E4Luvfs/Mo905ynlWofTQ2O6xyQHte8Od876PEjoOhn18eM6Hfwl8Dm99/DsAiLDxKSU60xbTc0yNE+usUq5790FVPuk7KP/KNoyFd0u2nrgcjLuLnAqxzAxl+RaltHEvJzCcGrQ+PpkJ1xOpdj1ZJeePOma5hDvC+COrZpmMfBJ2C1yXxBX3DFpu2Vn2nTMUG42N7+6NBrfHJBwO7Qczc60Rz2PUdHEnUlvmdHQ7KrjHmEyVpfiJVf9r5V2zjWNqWVNLU2jrjh0C5OD3nd1RhdDc19oN6p7jGxTNcd1Co63+XFEbrh23nNmrGyXp59zlmG0ghvKvF+4HOzaqoNJQDul7qIo9WJ3bNdxPQ/uKB+7n74oin89CT6DxQ6U6N9QNI3lKBj4du3xkGArQapKGNX5q2EANrtUmf4NBWawY5Bz7NqqOaxsEBLvqgwowUd8MNV2u72qXZpWDnKtQ2tZDvxRDnZt2H3Y8MZWqWzojHYV/xkbn9U2g915upzlnOZaY3nNgVA5zw64dp6h3H/HQLUyE3Of8r7NYpehTkscdY2GZUBtTsz/VjkvBzfg273FMN5+qDggnDO2Wp+Fn7Tby2sTURQGcC3ZmE0KohDFB0F0oSDi4w+YAUG0mmhEkBofRdOKiI6zmaggPggMuhTczFaEkEUZFyO4sR2DQheuVBCEFkEQBDe60I3fnTszJ9Ocm6Tt7XfNTCJd+OPce+50Jp4yKCvQZXHIGGCYl+2x8ny7O7Nx2nNXxmGjypGNZmYa8OqXlxEzq5tS65RPtTezv/KcWaiOlU+3y9VOmrnOHOXoiRj3pTf3niOTWz/GmTY0ROqmpqBTfimK1fG/z7VxKbZwplzNrDf6ZUfi9v95e+fO9TS3k9xP8gT5+vejYWrRIawOrpE8z9useLIqdvMyu4kjMe7t9TsIAYmY4pCZJzp4j6YUOqjyxdL20ijH26z6HgpkA/Y54GS6ZInutuTdJ55uHc3K9aWGSJHhbeZwyGDcjgRHuutShhcVT/D+6tDdwOjRAVRsxFlPPNKxuPLY/OkBVyhvGR2GBGZ1X1uGBh1COvrmUCPJpl7dHh53Brt5uwpaqqNFh4itAB1FpQNO78ozeR1m5fZGXx07LccWOrXa/GztJFyxCSIkvi7BaYCObMBp1tGSG41hts3rNrBrbn72ZLVcbZdrp9uzXGq31Lr7XcWTupkZDbob17I6UEaSWWkFFt9WNjK4KjbyWrnWaddqcx3KHGUcJeR1zMTUp7sGHbfkQk8cmT0hf6YHh5xsz1Y7C6fPnzxPGxxCtxdwUuuQ1dAh0KW4QinBOQHfM5FD/E1ZNBXgehsKLb6+6261dcBRP/Ht6FRYrMPnLQwOQUMBrt8dZ+W6Wx0dbKRDs7QaYjTwsv3ozfY8o9ujvJ3eH3dXWbvV16FZRjD8wStwImiJbKTbuKzb6VztJI10iH5dgrMs20KgC0MYEdoQun0HlveUh6kd21P06ySuEbhChZYiaHhbZHRYeEvHQfflzwdFfsiRZEaXbvLa5CR0MQ418yKdj1OUUVa3YRmVg+7zm+Hy48nMDz06BLoYJ5sJjgGOUahldmddZ+kPQu4ib/l87Qlqp08nuqWMEzg4Bnasky2TmZoXloH79VLmNZtPrz9lUmkZmnTAJfHRVzwUUKYkMFzXXE7lfuOmVXJnDjmORDfJJ05NTMgHVEgOqYjk6ivWwQbd2sJ2y5FDNEsncC3HcVBI2TK5HFg6DrosD4l9ECIRkYC6dPkSKJb02D6AVvS56bJNRfaVIXGwCRrpJC+lEQ6yRFfRpbs6OXn1VckRseTBtwPI7NAPfFc2Fda3l8f9y14/Q5etHZIpXYZHtdMwMw2hQ15FrNC25Pm914QsbDpoKtLGFo/Djf/+PX4lqdsviqzdv5exjWpHOiSy0cxs6ahdqgulznvv+5iTlviEZafijeztwY3/nM5NTPeL2TctEdPQFDOpnStYtg8PEjSFTKYInbJ4i3HnvxnG5UuGOvUj/TJRMVsY9fQh+OUV666SDp0yKiGQaWjZcXtepKPKHf1mmpUj+AcqYtRzl+JQB6Ecga4FXfI5V9eocy3fc1zHhVFiEVp2XNbtXbTmXh4/fvOm6hFpxTBa6YOPegvBx2wqUehnjJUFugdS57qu4/mCGFqRVRhp2SnmJuG6aqeMcflYnJu5usiAB5A5fToMO3DEy40SnWi343k7s/sc1l3lCHd1SE+t4iTl6RfD0KBD3sWgwHYCDyxROxt/QReZyr4JXYI7kehUMczpF0vII8PUqvM9L3AQ2xM7uesqJyZdbu5LcaQzlJl+ga+kDBX82KOV1w426Gyp83zfdr0wEFs5MzG5r/RuJNxQuovDR6sOsd+/9yOZIxdfnnTqzpLgButMqt0wJdShewjdM8+1EdcOQs92IcMHHJiJyVRvw7jEDVG7wbqzmnVPhS6MdI4fShkiTszEZHlHkzt7w9ROyDAASYO3XLTUDuPZ96haXoATJdMxR5KwvBNZHT8Oi9pR1c4mA1k9HfLue1PoAi+jK8a4rInhoXMKHOlUgQ4aFjXVPeRBm87H1HTDqHSUAiQpLF9YP1rctntbgeWtOwjcuVR3mB2mKXRcppho0cEGXehDEzQzuN0JLb8erF2PZXYV+P9FtZN0hwWv92XiAB1HWl3ds2bQdH0/LZ3nh+gpI1IGWBwPuMfb1vDZsO/cuW8mdGCIgWotOuOg0t1I0/VWm84OvGYgZc3Qx27u2SXQRrclMgqvQ/n+t3d/MW1VcRzAGeKmhqmJRjFZ9MHNRI2J2Yt/otH0TqCkISF9MXsEmzKCyUi0+AQYmIxgCDj5M/50DGoNBdkUKKPaockSoATI2IzFYDRZ4iCARCD+efP7O+f0nt7elvZein8Wv/cP0GQdn33PObe0MA48FenOYsEhdlab+EA7MgklcdrUpKZTUtSNXMPUE7Jr9WxNeYho+jyYkTCPvMa7E9OMRPSGznzqobtTKg49fa11naQPyynsDJ1ZntSdqzvX8U7PzJUeJuth/SER2siVyDszIzg/i7kYNw8//8zhg4oS0SnCJ0oTc5F0oi8AJ3YmOA8mbBM72xiY5d5ykeSPoh1Wq3NXHXDQ1dfPzGA41gMm0nP2LEf1j3Bbfz9bVHANTPAzZCUldruiXTO1SybNuyZOw0OSiZ2tqcmtk9xGObU2ObW8to1XulVdMlwhnmxSdtchHfXXrjCZzFnkQzr1s3f6+4HF24eAi59n6JuurehOLpTa1ZPOQneSaD7flG+q/PQAtvIBbKeXfbiNgCnqgMO/6GASHbrrwaqiyYcg9RNrpJ+EGJRnKbjAJ/zpxhLiZfE1M7qx6AKhI9wOGAgk5QOIKGtlGTdTNstLKWdSaM5enEJ3t0dYcTKR1lAabHiP5Qkt7oAmx4lnt2WhMfg4TY5O1iB0p7FCvrk5SbTNcOlp2HBwzUBpeI0Bl5PoFOyEQ6y4ju6iO0dZul0fU111NVrjOvhEsKJkavrS5rCdD06FPgFYVJc8uO7kNqPBJQIZ93HgSvLuOI43l1R3jS0k1yLjs6caOq6amamO4J6LXVEejsnznGcZdGVZ0J8QSSfv7jSy7T11Ciqpi8pEB55ApiTS0d07bKQrcQ5qosTTYd710JUOX92x1J+tBqkfBwYlpZrhHsjQNvekFU+Iq89NltgLK2zAFRZaXe7RImB0m0LdsZx8EysJEkR/TBdEe8FgsBQuOhLrCOd2lxQi9BfGvDTmjKNrXrrNLnUojYJxCV21OuGquU8sl1L3aJGqAw7Ll81VYS+029x4tcARGZtK7LyjnNrenDgdJNz05jYhy4LTm+EBjtpcEbqb8aYU5pnNNepmf5ELBWp1RbG6ZjYyYepR0w+dMLEW6SxxsrssVVeCiJ/YsY2Outw0MnXzDjvXlZ/amlzm3S1Pbg0EoRvAxa5jgNrbmpyKdMdwep8y6hodBQ807QtHRcUO4mt0yFLPZ/PzN4St/ko/4VAcziJ6HPGOqzqE+TjONewfJB5sdOTioB1ep5frVrAwrkxPryz7fCswlZUFw7j4rXVMh7dwQSirpdR9p+uOl+cJeCo4j809JAIsUnTdIeEbvyKC9yFYzNaPJMZRHj6ozXFnFuH8ocCC4KkbJh14w9viceQaXe5o9V+jwsrAW5kSt2xBxnShElD0OPdwgHhuuzM2/MKu7+46ixiXM8yGAMnfe07gdO3F5KDF5naNDoeG/cOCJy97VJ3/9wn2iBK8lWXSLK8EKVRWMLzFH6oQjO2zoSLi6XB+P3gYnMAkyZlmqZvvuTG/eAvXAIg0UVdLHS8mB3MdWFDmAn4/4+VqMmgZ+30VOgp4peGVlfBl0C4HL7OuLtfSLdP0ZAEO7KHVYSc4Ohzu3F9sd1uVVHXzyPXFXzA8r/fPPB2DezbJ05qyyoO5SpbVYhka5rwYXO/qKulEBoIkYwniiblWpBbvE04kNDvrH4yLW3BaBrGAGNHBh/z6B6rrj/Y9QbiUdUVWDEcPhqbgSVzlKunKIym9LAIi2YQQKqkLhRYgisJVRnBKCjYloltkAW/++h9/LC5+C19E+FgGcEZ0llzBC4Anca7ZWei2Y3WsvlYZqM5hF7pAaI4gRnFSV9XcXLX0Cwsr8MZ1jM9bYMHH1xPgjOnAGwJvGDwVVziL/B7yxuo6prmuLowDG2Bsx7YwGwKvlyiGcVJXVbV0g0UUiPxibFRKXW6RFRjJc7KP8izFIeBWZ0uaSsv5JnRh3zLOUG351nBuhU7NGfACgVAlYQzipK6KdN9SWIGLrMBbi4u3qp97kEalKR14gWHBA64oMEu8QsVbChpLsBUq6HxrQbxdmeK6umid4p8NIKPEAS4gccZ0394inWzwxvz1X+epOOBM6fJU3jpG6vrwbAg6l8VZA5fQoSiwtnxTm+Hw5pRvua69rr29/ZzMTcugP0Q8mwWpxN0JnFHdLQqEGuIjhDOjy2M+wfM7Bh1+hnNb8j73qroy6ODrWPaxTIXbL126VAddM9uw38Qjt2HGsyuKR+IM666MUKSRhZ51NqUDjzbwSOcZrVwIQTdkycvV6cDbXJ6amtoiHPnONVPYmb5GKBoGzj/kdo9JnGHd0zOU22qephzJzs42qMsjXR5CRGov4K+s9HjcY6HZOQtudnqDqq69lW+tHeHw0iUR6ESgo0/Qirtw013MDXOccd337yFvUd6lfER5n/LxkYxMEzoOBK830OsZ8niGKgMLwOXqddjhg0pNtE7BZovchd8gDjlT1SJ04Gl9TJdjqjtEnD29QzzsBujK4OJbOwIcJZ6uCjpWQIW4izmHQZxCOgQ6LW7POm7DNtRLmcOtQidSWtsuE42rUgMdRRF3UWwMh2h07xGO8Rhuj92J4ekeo8+sd13qeHNlGt0nl7CzTeiahY4i7mLQIE12l3hkGpx3eXczncz60NjY2Nx53Ji4O+jUxHaHOOkuUJ15nZTJ3o7l5ORkm9XJFI66HLhNq9N2B5UacrVgI52IYh+tcFrM6Fq4DrKPAKJ8EIm8HJjWqRcHVVer6i60t18QWzSuhcLO0JmM1LWRjsalBKq6TGxmdTJv4NDrWi9cAIwfOh2L1CmKYlrXxnUIxiUHqrq9d4fodbWka1d9n1SRC5vUpas7ROokz6xOLCBv0IFdtid1OEinBjoEOJzoX5vv6dYBRzrGM69L0p2IVsdpdLS0qUl3d2nRUVfxNjqtQycSrWPLJJ32qlNoFxs+/C69ujeggyNh1r2tBNPpWsRSmdbuBou+iq9D9qLLS7BBhye+aNK1Ml2d11t2iXSA4cmU5hYox8fH8RnhZEKnOBHx7eNZxXb7Vy3j6Zx3sru8RN15G7q6uvrg++TCxe7u7oZGL+nqmi42NdV4wRxvW+ro6FiqGh83rnNyGGT0iht0beP7MDKxJ+iurKmTpcvbfqGvq7uhoaGxoeaTlrpPCVfT5K1qa5uegA4+wzpF6IArxos2eBUFOuRvm3eOGsA66ehub+rsZrq+xtrmTy+SDryy8bqJ6Q6WFlPdieYIZ2O6tjTq3ji0u66BVwdeX3cX1zU2XmziOvLVTUR0S/jq1Wh3RVG4QptNdke4NOiSrJldEV1XJ3Bc19fXx3UUr9AhBnWIQ4MTuvR2B0TibHQJHSJ1nzJdk1a3/blBG3QaXMU+6NDdicQ6Z6eIVidHptcb0f1suDrFocG5CvepuxNxNzqhvATdwRatOwqc0WhxFVrdu2nSnYAiEXBdVJe0uw0zuuJiiXPZoLsK3Q9/17wD/GbX7vMOOpPVQSebQ3W76+4z/rX5CdKdIES8nR+dXSmMzOkzZnRZGhzXXb0aV3cs04TuBOl2j6Mrhe4eB854ijU46GCDTjfvUB2eDtsXHRaWpPNuQgHOhM4u5hxwMTpEozuyX7r15CPzZxPVKZbBqOaS6bL3S4fyknR31GIqWRyHJNXRtNsXHZLsscqG0xGJM+U4rLw3V5QONv28EwPTnC45Lv8MlafvLqI7WumJn8qYuDUZxXdxIQl0sjtxPTCryxdbzEnenL9bd9PbUOiSFEZxsSQdmWaqI10+6QRHD5S3OxLPO1ad3BLhaI8DlDyuK9DraNahOtO6fL5rTvJG9tGGTqdOu9+kKJFMr5IyAaOc//NqgX7e8QXTlC6fdLtFcNc743cH3Z8eliHPkEwvbalG/rGxgoKCqwWa7j76WF7J062T2ejW6fjAPAqZIPHMxWZsbizVFFC0IxO4TOD2U4d0dscdmd5KxMPzoy5fGstLWh3hzE060h0wosvS6ZoIt/STLl+Yzg+x3VFz9M1hprp7UqyZSZKPDeXF626i4O04KcCu2VJMgaqTuEzgTOmePH7oUKHtUEo5f8gRb1VpKUh7ZHcff3DsSIbZZD55/Px5W8X51HIof6NB111dmmFS995bWC2NjcoDmohVJT/l6EfmeME+5BvSvYvvcMhGA3v4xZUP351vICgvRtf89j7kh9V3Pzp2LCfb8MPmR2Pzwt2G0hWju2cf8tKC/+WXXz98112HE+X++EvkvUW6ZMWkWN2jY7UWW+m0odF5H8+/22gOJU8WYrXLX6qjyzMp6fTUpPk5SldzEb8jzBo/JanErkkhh3AN0Yzp4LtrrzkcrXvlrn8mGJn7lFek7sWMf1kO7Dn3Pt7Yh9e4SPfIgX8qGfsTzN1XGxuP7uz89unFF/9dv0U6PbzMx3cmkc2j92bcecH/2eWb9PkmJ+mZjjsvmRk51N2xO9FGuuzJyTu1uv91/+H8r/sv5z7SZd+husyMIz5fzp1p4+3dl/HvyV/H06x7VvcVEwAAAABJRU5ErkJggg==\"\n alt=\"\">\n </div>\n <div class=\"empty-state__message\">No Data has been added yet.</div>\n </div>\n</div>\n", styles: ["body{background:#ebedf2;font-family:\"Poppins\",sans-serif}.empty-state__message{color:#38a169;font-size:1.5rem;font-weight:500;margin-top:.85rem;text-align:center!important;align-items:center!important}.credit{color:#a2a5b9;font-size:.75rem;text-align:center}a{color:#444}.empty-state__icon{text-align:center}\n"] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: NoDataComponent, decorators: [{ type: Component, args: [{ selector: 'lib-no-data', templateUrl: './no-data.component.html', styleUrls: ['./no-data.component.css'] }] }], ctorParameters: function () { return []; } }); class ExecuteReportComponent { constructor(route, cd, reportService, datePipe) { this.route = route; this.cd = cd; this.reportService = reportService; this.datePipe = datePipe; this.backClicked = new EventEmitter(); this.$subs = []; this.query = { total: 0, pageNum: 0, pageSize: 10, data: null, reportId: null }; this.excel = []; this.reportId = +this.route.snapshot.params['id']; this.query.reportId = this.reportId; const formExecuted = sessionStorage.getItem('executeForm'); this.executeForm = JSON.parse(formExecuted); this.reportName = sessionStorage.getItem('reportName'); this.query.data = this.executeForm; } ngOnInit() { this.query.pageNum = 1; this.loadDataExecuted(); } loadDataExecuted(fileType) { const sub1 = this.reportService .executeReport(this.urlRpt, this.query) .subscribe((res) => { switch (fileType) { case 'excel': // console.log('res.detailsExcel', res.details); this.hiddenListData = new MatTableDataSource(res.details); this.hiddenData = res; this.hiddenDisplayedColumns = res.headers.map((el) => el.property); this.cd.detectChanges(); this.reportService.exportAsExcelFile(this.excel, this.reportName); break; case 'pdf': this.hiddenListData = new MatTableDataSource(res.details); this.hiddenData = res; this.hiddenDisplayedColumns = res.headers.map((el) => el.property); this.cd.detectChanges(); this.pdfPreparing(); break; default: this.data = res; this.list = new MatTableDataSource(res.details); this.query.total = res.totalCount; this.displayedColumns = res.headers.map((el) => el.property); break; } }); this.$subs.push(sub1); } ngOnDestroy() { this.query = { total: 0, pageNum: 0, pageSize: 10, data: null, reportId: null, }; // console.log('query', this.query); this.$subs.forEach((item) => item.unsubscribe()); } getNextPage(e) { this.query.pageNum = e.pageIndex + 1; this.query.pageSize = e.pageSize; this.loadDataExecuted(); } SavePDF() { this.query.pageSize = -1; this.query.pageNum = -1; this.loadDataExecuted('pdf'); } SaveEXCEL() { this.query.pageSize = -1; this.query.pageNum = -1; this.loadDataExecuted('excel'); } pdfPreparing() { const pdfsize = 'a0'; const doc = new jsPDF('l', 'pt', pdfsize); // @ts-ignore doc.autoTable({ html: '#excelDataTable', startY: 60, margin: { horizontal: 7 }, styles: { fontSize: 50, cellWidth: 'wrap', }, columnStyles: { 1: { cellWidth: 'auto' }, }, }); doc.save(this.reportName + '.pdf'); } onBackClicked() { this.backClicked.emit({ back: true }); } check(el, type) { if (type === 'Timestamp') { el = this.datePipe.transform(el, 'yyyy-MM-dd h:mm a'); //yyyy-MM-dd h:mm a } return el; } } ExecuteReportComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ExecuteReportComponent, deps: [{ token: i1$1.ActivatedRoute }, { token: i0.ChangeDetectorRef }, { token: ReportsService }, { token: i2$1.DatePipe }], target: i0.ɵɵFactoryTarget.Component }); ExecuteReportComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "12.2.16", type: ExecuteReportComponent, selector: "lib-execute-report", inputs: { urlRpt: "urlRpt" }, outputs: { backClicked: "backClicked" }, ngImport: i0, template: "<div class=\"mat-elevation-z8\">\n <div class=\"backBtn\">\n <h3><mat-icon (click)=\"onBackClicked()\" class=\"back-btn\">arrow_back</mat-icon> Report Results</h3>\n </div>\n <div class=\"btns\">\n <button *ngIf=\"data?.details.length>0\" type=\"button\" mat-button value=\"PDF\" class=\"btn savePdf\" (click)=\"SavePDF()\">PDF</button>\n &nbsp;\n <button *ngIf=\"data?.details.length>0\" type=\"button\" mat-button value=\"XLS\" class=\"btn savePdf\" (click)=\"SaveEXCEL()\">Excel</button>\n </div>\n\n <table *ngIf=\"data?.details.length>0\" mat-table [dataSource]=\"list\">\n <ng-container *ngFor=\"let el of data.headers\" matColumnDef=\"{{el.property}}\">\n <th mat-header-cell *matHeaderCellDef> {{el.property}} </th>\n <td mat-cell *matCellDef=\"let row\">\n <span>{{row[el.property] ? check(row[el.property],el.type) : \"N/A\"}}</span>\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"displayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: displayedColumns;\"></tr>\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"4\">No data matching</td>\n </tr>\n </table>\n <mat-paginator *ngIf=\"data?.totalCount>0\" [length]=\"query.total\"\n (page)=\"getNextPage($event)\"\n [pageSizeOptions]=\"[10, 25, 100]\">\n </mat-paginator>\n\n\n <table style=\"display: none;width: 100%\" mat-table [dataSource]=\"hiddenListData\" id=\"excelDataTable\">\n <ng-container *ngFor=\"let el of hiddenData?.headers\" matColumnDef=\"{{el.property}}\">\n <th mat-header-cell *matHeaderCellDef> {{el.property}} </th>\n <td mat-cell *matCellDef=\"let row\">\n <span>{{row[el.property] !== undefined ? check(row[el.property],el.type) : \"N/A\"}}</span>\n<!-- <span *ngIf=\"row[el.type]==='Timestamp'\">{{row[el.property] ? (row[el.property]|date:'short') : 'N/A'}}</span>;-->\n </td>\n </ng-container>\n\n <tr mat-header-row *matHeaderRowDef=\"hiddenDisplayedColumns\"></tr>\n <tr mat-row *matRowDef=\"let row; columns: hiddenDisplayedColumns;\"></tr>\n <tr class=\"mat-row\" *matNoDataRow>\n <td class=\"mat-cell\" colspan=\"4\">No data matching</td>\n </tr>\n </table>\n</div>\n\n\n<lib-no-data *ngIf=\"data?.details?.length===0\"></lib-no-data>\n", styles: ["table{width:100%}.savePdf{color:#fff;background-color:#f60;border-color:#f60}.mat-elevation-z8{box-shadow:none;background:#ffffff}.btns{text-align:right;margin-bottom:25px;margin-right:5px}.back-btn{vertical-align:sub;color:#f60;cursor:pointer}h3{font-size:18px;font-weight:600;color:#000}\n"], components: [{ type: i4$1.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }, { type: i6$1.MatTable, selector: "mat-table, table[mat-table]", exportAs: ["matTable"] }, { type: i6$1.MatHeaderRow, selector: "mat-header-row, tr[mat-header-row]", exportAs: ["matHeaderRow"] }, { type: i6$1.MatRow, selector: "mat-row, tr[mat-row]", exportAs: ["matRow"] }, { type: i7$1.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { type: NoDataComponent, selector: "lib-no-data" }], directives: [{ type: i2$1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i2$1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { type: i6$1.MatColumnDef, selector: "[matColumnDef]", inputs: ["sticky", "matColumnDef"] }, { type: i6$1.MatHeaderCellDef, selector: "[matHeaderCellDef]" }, { type: i6$1.MatHeaderCell, selector: "mat-header-cell, th[mat-header-cell]" }, { type: i6$1.MatCellDef, selector: "[matCellDef]" }, { type: i6$1.MatCell, selector: "mat-cell, td[mat-cell]" }, { type: i6$1.MatHeaderRowDef, selector: "[matHeaderRowDef]", inputs: ["matHeaderRowDef", "matHeaderRowDefSticky"] }, { type: i6$1.MatRowDef, selector: "[matRowDef]", inputs: ["matRowDefColumns", "matRowDefWhen"] }, { type: i6$1.MatNoDataRow, selector: "ng-template[matNoDataRow]" }] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ExecuteReportComponent, decorators: [{ type: Component, args: [{ selector: 'lib-execute-report', templateUrl: './execute-report.component.html', styleUrls: ['./execute-report.component.css'], }] }], ctorParameters: function () { return [{ type: i1$1.ActivatedRoute }, { type: i0.ChangeDetectorRef }, { type: ReportsService }, { type: i2$1.DatePipe }]; }, propDecorators: { urlRpt: [{ type: Input }], backClicked: [{ type: Output }] } }); class ReportsModule { } ReportsModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule }); ReportsModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsModule, declarations: [ReportsComponent, ReportDetailsComponent, ExecuteReportComponent, NoDataComponent], imports: [CommonModule, MatInputModule, MatFormFieldModule, MatTabsModule, MatGridListModule, MatCardModule, MatButtonModule, HttpClientModule, RouterModule, MatDatepickerModule, FormsModule, MatSelectModule, MatOptionModule, MatTableModule, MatPaginatorModule, MatIconModule], exports: [ReportsComponent, ReportDetailsComponent, ExecuteReportComponent, NoDataComponent] }); ReportsModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsModule, providers: [DatePipe], imports: [[ CommonModule, MatInputModule, MatFormFieldModule, MatTabsModule, MatGridListModule, MatCardModule, MatButtonModule, HttpClientModule, RouterModule, MatDatepickerModule, FormsModule, MatSelectModule, MatOptionModule, MatTableModule, MatPaginatorModule, MatIconModule ]] }); i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "12.2.16", ngImport: i0, type: ReportsModule, decorators: [{ type: NgModule, args: [{ declarations: [ ReportsComponent, ReportDetailsComponent, ExecuteReportComponent, NoDataComponent ], imports: [ CommonModule, MatInputModule, MatFormFieldModule, MatTabsModule, MatGridListModule, MatCardModule, MatButtonModule, HttpClientModule, RouterModule, MatDatepickerModule, FormsModule, MatSelectModule, MatOptionModule, MatTableModule, MatPaginatorModule, MatIconModule ], exports: [ ReportsComponent, ReportDetailsComponent, ExecuteReportComponent, NoDataComponent ], providers: [DatePipe] }] }] }); /* * Public API Surface of reports */ /** * Generated bundle index. Do not edit. */ export { ExecuteReportComponent, NoDataComponent, ReportDetailsComponent, ReportsComponent, ReportsModule, ReportsService, sharedGridLayout }; //# sourceMappingURL=reports-hyper74.js.map