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
JavaScript
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,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\"\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 \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