tango-app-ui-analyse-report 3.7.1-alpha.13 → 3.7.1-alpha.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -12,8 +12,10 @@ export class TangoAnalyseReportComponent {
|
|
|
12
12
|
}
|
|
13
13
|
setPageData() {
|
|
14
14
|
this.pageInfo.setTitle('Reports');
|
|
15
|
-
this.pageInfo.setDescription('Reports')
|
|
15
|
+
// this.pageInfo.setDescription('Reports')
|
|
16
16
|
this.pageInfo.setBreadcrumbs([
|
|
17
|
+
{ title: "Tango Eye", path: "/manage/traffic", isActive: false, isSeparator: false },
|
|
18
|
+
{ title: "", path: "", isActive: false, isSeparator: true },
|
|
17
19
|
{ title: "", path: "", isActive: false, isSeparator: false },
|
|
18
20
|
]);
|
|
19
21
|
}
|
|
@@ -24,4 +26,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImpo
|
|
|
24
26
|
type: Component,
|
|
25
27
|
args: [{ selector: 'lib-tango-analyse-report', template: "<lib-user-report></lib-user-report>" }]
|
|
26
28
|
}], ctorParameters: () => [{ type: i1.PageInfoService }] });
|
|
27
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
29
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGFuZ28tYW5hbHlzZS1yZXBvcnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tYW5hbHlzZS1yZXBvcnQvc3JjL2xpYi9jb21wb25lbnRzL3RhbmdvLWFuYWx5c2UtcmVwb3J0L3RhbmdvLWFuYWx5c2UtcmVwb3J0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLWFuYWx5c2UtcmVwb3J0L3NyYy9saWIvY29tcG9uZW50cy90YW5nby1hbmFseXNlLXJlcG9ydC90YW5nby1hbmFseXNlLXJlcG9ydC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFVLE1BQU0sZUFBZSxDQUFDOzs7O0FBUWxELE1BQU0sT0FBTywyQkFBMkI7SUFFbkI7SUFBbkIsWUFBbUIsUUFBd0I7UUFBeEIsYUFBUSxHQUFSLFFBQVEsQ0FBZ0I7SUFBRyxDQUFDO0lBRS9DLFFBQVE7UUFDTixJQUFJLENBQUMsV0FBVyxFQUFFLENBQUM7SUFDckIsQ0FBQztJQUVBLFdBQVc7UUFDVixJQUFJLENBQUMsUUFBUSxDQUFDLFFBQVEsQ0FBQyxTQUFTLENBQUMsQ0FBQTtRQUNqQywwQ0FBMEM7UUFDMUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxjQUFjLENBQUM7WUFDM0IsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLElBQUksRUFBRSxpQkFBaUIsRUFBRSxRQUFRLEVBQUUsS0FBSyxFQUFFLFdBQVcsRUFBRSxLQUFLLEVBQUU7WUFDcEYsRUFBRSxLQUFLLEVBQUUsRUFBRSxFQUFFLElBQUksRUFBRSxFQUFFLEVBQUUsUUFBUSxFQUFFLEtBQUssRUFBRSxXQUFXLEVBQUUsSUFBSSxFQUFFO1lBQzNELEVBQUUsS0FBSyxFQUFFLEVBQUUsRUFBRSxJQUFJLEVBQUUsRUFBRSxFQUFFLFFBQVEsRUFBRSxLQUFLLEVBQUUsV0FBVyxFQUFFLEtBQUssRUFBRTtTQUM3RCxDQUFDLENBQUM7SUFDTCxDQUFDO3dHQWhCVSwyQkFBMkI7NEZBQTNCLDJCQUEyQixnRUNSeEMscUNBQW1DOzs0RkRRdEIsMkJBQTJCO2tCQUx2QyxTQUFTOytCQUNFLDBCQUEwQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFBhZ2VJbmZvU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdGFuZ28tYW5hbHlzZS1yZXBvcnQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi90YW5nby1hbmFseXNlLXJlcG9ydC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3RhbmdvLWFuYWx5c2UtcmVwb3J0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGFuZ29BbmFseXNlUmVwb3J0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuXHJcbiAgY29uc3RydWN0b3IocHVibGljIHBhZ2VJbmZvOlBhZ2VJbmZvU2VydmljZSkge31cclxuXHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLnNldFBhZ2VEYXRhKCk7XHJcbiAgfVxyXG5cclxuICAgc2V0UGFnZURhdGEoKSB7XHJcbiAgICB0aGlzLnBhZ2VJbmZvLnNldFRpdGxlKCdSZXBvcnRzJylcclxuICAgIC8vIHRoaXMucGFnZUluZm8uc2V0RGVzY3JpcHRpb24oJ1JlcG9ydHMnKVxyXG4gICAgdGhpcy5wYWdlSW5mby5zZXRCcmVhZGNydW1icyhbXHJcbiAgICAgIHsgdGl0bGU6IFwiVGFuZ28gRXllXCIsIHBhdGg6IFwiL21hbmFnZS90cmFmZmljXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IGZhbHNlIH0sXHJcbiAgICAgIHsgdGl0bGU6IFwiXCIsIHBhdGg6IFwiXCIsIGlzQWN0aXZlOiBmYWxzZSwgaXNTZXBhcmF0b3I6IHRydWUgfSxcclxuICAgICAgeyB0aXRsZTogXCJcIiwgcGF0aDogXCJcIiwgaXNBY3RpdmU6IGZhbHNlLCBpc1NlcGFyYXRvcjogZmFsc2UgfSxcclxuICAgIF0pO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGxpYi11c2VyLXJlcG9ydD48L2xpYi11c2VyLXJlcG9ydD4iXX0=
|
|
@@ -611,8 +611,10 @@ class TangoAnalyseReportComponent {
|
|
|
611
611
|
}
|
|
612
612
|
setPageData() {
|
|
613
613
|
this.pageInfo.setTitle('Reports');
|
|
614
|
-
this.pageInfo.setDescription('Reports')
|
|
614
|
+
// this.pageInfo.setDescription('Reports')
|
|
615
615
|
this.pageInfo.setBreadcrumbs([
|
|
616
|
+
{ title: "Tango Eye", path: "/manage/traffic", isActive: false, isSeparator: false },
|
|
617
|
+
{ title: "", path: "", isActive: false, isSeparator: true },
|
|
616
618
|
{ title: "", path: "", isActive: false, isSeparator: false },
|
|
617
619
|
]);
|
|
618
620
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tango-app-ui-analyse-report.mjs","sources":["../../../projects/tango-analyse-report/src/lib/service/analysereport.service.ts","../../../projects/tango-analyse-report/src/lib/components/user-report/user-report.component.ts","../../../projects/tango-analyse-report/src/lib/components/user-report/user-report.component.html","../../../projects/tango-analyse-report/src/lib/components/tango-analyse-report/tango-analyse-report.component.ts","../../../projects/tango-analyse-report/src/lib/components/tango-analyse-report/tango-analyse-report.component.html","../../../projects/tango-analyse-report/src/lib/tango-analyse-report-routing.module.ts","../../../projects/tango-analyse-report/src/lib/components/get-download-report/get-download-report.component.ts","../../../projects/tango-analyse-report/src/lib/components/get-download-report/get-download-report.component.html","../../../projects/tango-analyse-report/src/lib/tango-analyse-report.module.ts","../../../projects/tango-analyse-report/src/public-api.ts","../../../projects/tango-analyse-report/src/tango-app-ui-analyse-report.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, catchError, map, throwError } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n \r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalysereportService {\r\n reportApiUrl:any;\r\n reportAnalysisUrl:any;\r\n trafficApiUrl:any;\r\nclientApiUrl:any;\r\n constructor(private gs: GlobalStateService,private http: HttpClient) {\r\n this.gs.environment.subscribe((env)=>{\r\n if(env){\r\n this.reportApiUrl = env.reportApiUrl\r\n this.reportAnalysisUrl = env.reportAnalysisUrl\r\n this.trafficApiUrl = env.trafficApiUrl;\r\n this.clientApiUrl = env.clientApiUrl;\r\n }\r\n }); \r\n }\r\n\r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n\r\n getClientListTable(data:any) :Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/client-list-table`,data)\r\n }\r\n\r\n generateReport(data:any) :Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/generate-report`,data)\r\n }\r\n\r\n uploadManualReport(data:any) :Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/upload-manual-report`,data)\r\n }\r\n\r\n getReportList(data:any){\r\n return this.http.get(`${this.reportApiUrl}/get-report-list?fileDate=${data?.fileDate}&clientId=${data?.clientId}`)\r\n }\r\n\r\n sentReport(data:any){\r\n return this.http.post(`${this.reportApiUrl}/send-report`,data)\r\n }\r\n\r\n downloadReport(params:any){\r\n return this.http.get(`${this.reportApiUrl}/download-report?filePath=${params}`,{ responseType: 'arraybuffer' })\r\n }\r\n\r\n reportList(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/standardTemplate_v1`,params)\r\n }\r\n\r\n customTemplate(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/customTemplate_v1`,params)\r\n }\r\n\r\n downloadReportList(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/standardTemplate_v1`,params,{ responseType: 'arraybuffer' })\r\n }\r\n\r\n downloadCustomReportList(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/customTemplate_v1`,params,{ responseType: 'arraybuffer' })\r\n }\r\n getCheckTodayReportStatus(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.trafficApiUrl}/checkTodayReportStatus`, params);\r\n }\r\n getBrandDetails(id: any) {\r\n return this.http.get(`${this.clientApiUrl}/client-details/${id}`)\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal, NgbModalModule, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { debounceTime, Subject, takeUntil } from \"rxjs\";\r\nimport { AnalysereportService } from '../../service/analysereport.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-user-report',\r\n templateUrl: './user-report.component.html',\r\n styleUrl: './user-report.component.scss'\r\n})\r\nexport class UserReportComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('confirmationModal') confirmationModal: any;\r\n modalRef: NgbModalRef | undefined;\r\n loading: boolean = true;\r\n noData: boolean = false;\r\n showsidenav: boolean = true;\r\n openCustom: boolean = false;\r\n openAccordian: boolean = false;\r\n customName: any = '';\r\n standardData: any = []\r\n costomButtons: any = ['Metrics', 'Comparision', 'Time Filter']\r\n metricsData: any = []\r\n comparisionData: any = ['WTD', 'MTD', 'None']\r\n filterData: any = ['hour', 'day']\r\n infraTable: any = []\r\n selectedData: any;\r\n custombtn: any = 'Metrics';\r\n metricsArray: any[] = [];\r\n comparisionFilter: string = 'WTD';\r\n filterDataList: string = 'hour';\r\n // sortBy:any = '';\r\n // sortColumName:any = '';\r\n totalCount: any;\r\n // searchValue: any = '';\r\n dynamicData: any = {};\r\n displayedColumns: any = [];\r\n pageSize = 10;\r\n clientData: any = [];\r\n showReportProcessingCard: boolean = true;\r\n yesterdayDate: string = '';\r\n dataProcessedLoading = true;\r\n private readonly destroy$ = new Subject();\r\n constructor(private modalservice: NgbModal, public gs: GlobalStateService, private service: AnalysereportService, private toast: ToastService, private cd: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n headerData: any;\r\n storeArray: any = [];\r\n isFootfallView: any;\r\n ngOnInit(): void {\r\n\r\n\r\n\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$), debounceTime(600))\r\n .subscribe((data: any) => {\r\n if (!data) return;\r\n\r\n this.headerData = data;\r\n\r\n if (\r\n !this.standardData.some(\r\n (t: any) => t.value === this.selectedData?.value\r\n )\r\n ) {\r\n this.selectedData = this.standardData[0];\r\n }\r\n this.service?.getBrandDetails(this.headerData?.client).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.clientData = res?.data;\r\n console.log('clientData', this.clientData);\r\n this.isFootfallView =\r\n this.clientData?.featureConfigs?.isFootfallView ? this.clientData?.featureConfigs?.isFootfallView : false;\r\n const limit =\r\n this.clientData?.featureConfigs?.bouncedLimit?.value ??\r\n this.clientData?.featureConfigs?.bouncedLimitValue ??\r\n '';\r\n\r\n const conv =\r\n this.clientData?.featureConfigs?.conversion?.value ??\r\n this.clientData?.featureConfigs?.conversionValue ??\r\n '';\r\n\r\n const userType = this.gs.userAccess.value?.userType;\r\n const isFootfall = this.isFootfallView;\r\n\r\n if (isFootfall && userType === 'client') {\r\n this.standardData = [{ name: 'Template F', value: 'F' }];\r\n } else {\r\n this.standardData = [\r\n { name: 'Template A', value: 'A' },\r\n { name: 'Template B', value: 'B' },\r\n { name: 'Template C', value: 'C' },\r\n { name: 'Template D', value: 'D' }\r\n ];\r\n\r\n if (isFootfall && userType === 'tango') {\r\n this.standardData = [{ name: 'Template F', value: 'F' }];\r\n }\r\n }\r\n\r\n if (\r\n !this.selectedData ||\r\n !this.standardData.some(\r\n (t: any) => t.value === this.selectedData?.value\r\n )\r\n ) {\r\n this.selectedData = this.standardData[0];\r\n }\r\n\r\n if (data.client === '452') {\r\n this.metricsData = [\r\n { name: `Less than ${limit} mins`, checked: false, value: 'Bounced Count' },\r\n { name: `${limit} - ${conv} mins`, checked: false, value: 'Missed Opportunity Count' },\r\n { name: `More than ${limit} mins`, checked: false, value: 'Engagers Count' },\r\n { name: `More than ${conv} mins Rate`, checked: false, value: 'Conversion Rate' },\r\n { name: 'Age', checked: false, value: 'age' },\r\n { name: 'Gender', checked: false, value: 'gender' },\r\n { name: 'NOB', checked: false, value: 'nob' },\r\n { name: 'Avg Infra Downtime (mins)', checked: false, value: 'Avg Infra Downtime (mins)' }\r\n ];\r\n } else if (isFootfall) {\r\n this.metricsData = [\r\n { name: 'Avg Infra Downtime (mins)', checked: false, value: 'Avg Infra Downtime (mins)' },\r\n { name: 'Open Time', checked: false, value: 'Open Time' },\r\n { name: 'Close Time', checked: false, value: 'Close Time' },\r\n ]\r\n } else {\r\n this.metricsData = [\r\n { name: 'Potential Buyers', checked: false, value: 'Potential Buyers' },\r\n { name: 'Bounced Footfall', checked: false, value: 'Bounced Count' },\r\n { name: 'Missed Opportunity', checked: false, value: 'Missed Opportunity Count' },\r\n { name: 'Engagers Count', checked: false, value: 'Engagers Count' },\r\n { name: 'Conversion', checked: false, value: 'Conversion Rate' },\r\n { name: 'Age', checked: false, value: 'age' },\r\n { name: 'Gender', checked: false, value: 'gender' },\r\n { name: 'NOB', checked: false, value: 'nob' },\r\n { name: 'Avg Infra Downtime (mins)', checked: false, value: 'Avg Infra Downtime (mins)' }\r\n ];\r\n }\r\n\r\n this.storeArray = data.stores\r\n ?.filter((i: any) => i.checked)\r\n .map((i: any) => i.storeId);\r\n\r\n this.checkTodayReportStatus();\r\n\r\n if (data.client === '430') {\r\n const exists = this.standardData.some(\r\n (item: any) => item.value === 'E'\r\n );\r\n if (!exists) {\r\n this.standardData.push({ name: 'Template E', value: 'E' });\r\n }\r\n }\r\n }\r\n\r\n },\r\n error: (error) => {\r\n\r\n }\r\n\r\n })\r\n setTimeout(() => {\r\n this.cd.detectChanges();\r\n this.dynamicData = {\r\n clientId: data.client,\r\n storeId: this.storeArray.length\r\n ? this.storeArray\r\n : data.stores.map((i: any) => i.storeId),\r\n fromDate: data.date.startDate,\r\n toDate: data.date.endDate,\r\n limit: 10,\r\n offset: 0,\r\n templateType: this.selectedData?.value || 'A',\r\n export: false,\r\n search: '',\r\n sort: '',\r\n sortBy: ''\r\n };\r\n\r\n if (!this.openCustom) {\r\n this.getTemplates();\r\n } else {\r\n this.customCreate();\r\n }\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n getDisplayName(column: any, row: any): any {\r\n const client = this.headerData?.client;\r\n const limit = this.clientData?.bouncedLimit?.value ?? this.clientData?.bouncedLimitValue ?? '';\r\n const conv = this.clientData?.conversion?.value ?? this.clientData?.conversionValue ?? '';\r\n if (client === '452') {\r\n const customLabels: any = {\r\n 'Bounced Count': `Less than ${limit} mins`,\r\n 'Engagers Count': `More than ${limit} mins`,\r\n 'Conversion Rate': `More than ${conv} mins Rate`,\r\n 'Missed Opportunity Count': `${limit} - ${conv} mins`,\r\n };\r\n\r\n return customLabels[column] ?? column;\r\n }\r\n\r\n return column;\r\n }\r\n\r\n getTemplates() {\r\n this.infraTable = [];\r\n this.loading = true;\r\n this.service.reportList(this.dynamicData).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.data.templateData?.length) {\r\n this.infraTable = res.data?.templateData;\r\n this.totalCount = res.data?.totalCount;\r\n // this.setPaginationSizes();\r\n // this.pageSize = this.totalCount < 10 ? [this.totalCount] : [10,20,30];\r\n // this.dynamicData.limit = this.totalCount < 10 ? this.totalCount : this.dynamicData.limit;\r\n if (this.headerData.client === '452') {\r\n this.displayedColumns = Object.keys(this.infraTable[0]).filter(\r\n col => col !== 'Potential Buyers'\r\n );\r\n } else {\r\n this.displayedColumns = Object.keys(this.infraTable[0]);\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n }, () => {\r\n this.loading = false;\r\n this.noData = true;\r\n });\r\n }\r\n\r\n sidenav() {\r\n this.showsidenav = !this.showsidenav;\r\n }\r\n selectRadio(data: any) {\r\n this.dynamicData.offset = 0;\r\n this.infraTable = [];\r\n this.selectedData = data;\r\n this.dynamicData.limit = 10;\r\n this.dynamicData.templateType = data.value;\r\n this.dynamicData.search = '';\r\n this.dynamicData.sort = '';\r\n this.dynamicData.sortBy = '';\r\n this.getTemplates();\r\n }\r\n createCustom() {\r\n this.customName = '';\r\n const modalRef = this.modalservice.open(this.confirmationModal, { centered: true });\r\n modalRef.result.then((result) => {\r\n this.openAccordian = !this.openAccordian;\r\n this.openCustom = !this.openCustom;\r\n });\r\n }\r\n customOption(data: any) {\r\n this.custombtn = data;\r\n }\r\n movetoNext() {\r\n if (this.custombtn === 'Metrics') {\r\n this.custombtn = 'Comparision'\r\n } else if (this.custombtn === 'Comparision') {\r\n this.custombtn = 'Time Filter'\r\n }\r\n }\r\n movetoBack() {\r\n if (this.custombtn === 'Comparision') {\r\n this.custombtn = 'Metrics'\r\n } else if (this.custombtn === 'Time Filter') {\r\n this.custombtn = 'Comparision'\r\n }\r\n }\r\n getComparision(data: any) {\r\n this.comparisionFilter = data;\r\n }\r\n getFilter(data: any) {\r\n this.filterDataList = data;\r\n }\r\n customCreate() {\r\n this.infraTable = [];\r\n this.loading = true;\r\n this.selectedData = {};\r\n\r\n let selectField = this.metricsData.filter((item: any) => item.checked).map((item: any) => item.value);\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: this.dynamicData.offset,\r\n export: false,\r\n comparisonFilter: this.comparisionFilter != 'None' ? this.comparisionFilter : '',\r\n timeFilter: this.filterDataList,\r\n seletedFields: selectField,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.customTemplate(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.data?.customTemplate?.length) {\r\n this.infraTable = res.data.customTemplate;\r\n this.totalCount = res.data.totalCount;\r\n // this.setPaginationSizes();\r\n // this.pageSize = this.totalCount < 10 ? [this.totalCount] : [10,20,30];\r\n // this.dynamicData.limit = this.totalCount < 10 ? this.totalCount : this.dynamicData.limit;\r\n if (this.headerData.client === '452') {\r\n this.displayedColumns = Object.keys(this.infraTable[0]).filter(\r\n col => col !== 'Potential Buyers'\r\n );\r\n } else {\r\n this.displayedColumns = Object.keys(this.infraTable[0]);\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n }, () => {\r\n this.loading = false;\r\n this.noData = true;\r\n });\r\n }\r\n\r\n sortData(value: any) {\r\n if (this.dynamicData.sort.toLowerCase() == value.toLowerCase()) {\r\n this.dynamicData.sortBy *= -1;\r\n }\r\n else {\r\n this.dynamicData.sortBy = 1;\r\n }\r\n if (value == 'FootFall Count' && this.openCustom) {\r\n value = 'Footfall Count'\r\n }\r\n this.dynamicData.sort = value;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.getTemplates();\r\n }\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.dynamicData.offset = pageOffset - 1;\r\n // this.dynamicData.limit =10;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.getTemplates();\r\n }\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.dynamicData.limit = Number(pageSize);\r\n // this.pageSize = Number(pageSize);\r\n // console.log('pageSize',this.pageSize);\r\n this.dynamicData.offset = 0;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.getTemplates();\r\n }\r\n }\r\n searchData() {\r\n this.dynamicData.offset = 0;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.infraTable = [];\r\n this.loading = true;\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: this.dynamicData.offset,\r\n templateType: this.selectedData.value,\r\n export: false,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.reportList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.data.templateData?.length) {\r\n this.infraTable = res.data?.templateData;\r\n this.totalCount = res.data.totalCount;\r\n // this.setPaginationSizes();\r\n // this.pageSize = this.totalCount < 10 ? [this.totalCount] : [10,20,30];\r\n // this.dynamicData.limit = this.totalCount < 10 ? this.totalCount : this.dynamicData.limit;\r\n if (this.headerData.client === '452') {\r\n this.displayedColumns = Object.keys(this.infraTable[0]).filter(\r\n col => col !== 'Potential Buyers'\r\n );\r\n } else {\r\n this.displayedColumns = Object.keys(this.infraTable[0]);\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n }, () => {\r\n this.loading = false;\r\n this.noData = true;\r\n });\r\n }\r\n }\r\n paginationSizes: any = [10, 20, 30];\r\n // setPaginationSizes() {\r\n // if (this.totalCount > 10) {\r\n // this.paginationSizes = [10, 20, 30];\r\n // } else {\r\n // this.paginationSizes = [this.totalCount]; // Just one option if less than 10\r\n // }\r\n // this.pageSize = this.paginationSizes[0];\r\n // }\r\n ExportasXlsx() {\r\n if (this.openCustom) {\r\n this.exportCustomTemplate();\r\n }\r\n else {\r\n this.exportTemplates();\r\n }\r\n }\r\n exportTemplates() {\r\n if (this.totalCount > 10000) {\r\n this.toast.getErrorToast('Export limit reached. Only 10,000 records were exported. Try a smaller date range.');\r\n } else {\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: 0,\r\n templateType: this.selectedData.value,\r\n export: true,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.downloadReportList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res) {\r\n // ✅ If more than 10,000 rows, trim and show error\r\n\r\n\r\n this.service.saveAsExcelFile(res, this.selectedData.name);\r\n }\r\n }, (error: any) => {\r\n this.toast.getErrorToast('The export limit cannot exceed 8,000.');\r\n });\r\n }\r\n }\r\n exportCustomTemplate() {\r\n if (this.totalCount > 10000) {\r\n this.toast.getErrorToast('Export limit reached. Only 10,000 records were exported. Try a smaller date range.');\r\n } else {\r\n let selectField = this.metricsData.filter((item: any) => item.checked).map((item: any) => item.value);\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: 0,\r\n export: true,\r\n comparisonFilter: this.comparisionFilter != 'None' ? this.comparisionFilter : '',\r\n timeFilter: this.filterDataList,\r\n seletedFields: selectField,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.downloadCustomReportList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res) {\r\n\r\n this.service.saveAsExcelFile(res, 'customTemplate');\r\n }\r\n }, (error: any) => {\r\n this.toast.getErrorToast('The export limit cannot exceed 8,000.');\r\n });\r\n }\r\n }\r\n reset() {\r\n this.openCustom = false;\r\n this.custombtn = 'Metrics';\r\n this.metricsData.forEach((item: any) => item.checked = false);\r\n this.comparisionFilter = 'WTD';\r\n this.filterDataList = 'hour';\r\n }\r\n resetValues() {\r\n\r\n this.openCustom = !this.openCustom;\r\n this.dynamicData.offset = 0;\r\n this.dynamicData.sort = '';\r\n this.dynamicData.sortBy = '';\r\n this.dynamicData.search = '';\r\n }\r\n checkTodayReportStatus(): void {\r\n this.dataProcessedLoading = true;\r\n const reportParams = {\r\n clientId: this.headerData?.client,\r\n fromDate: this.headerData?.date?.startDate,\r\n toDate: this.headerData?.date?.endDate\r\n };\r\n this.service.getCheckTodayReportStatus(reportParams)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.dataProcessedLoading = false\r\n this.showReportProcessingCard = res?.data?.reportSendStatus === true;\r\n this.yesterdayDate = res?.data?.yesterday || '';\r\n this.cd.detectChanges();\r\n },\r\n\r\n error: (err: any) => {\r\n console.error('Error checking report status:', err);\r\n this.showReportProcessingCard = false;\r\n this.dataProcessedLoading = false\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"row mb-5\">\r\n <div [ngClass]=\"showsidenav ? 'col-sm-3':'d-none'\">\r\n <div class=\"card position-relative h-100\">\r\n <div class=\"card-body p-0 overflow-auto\">\r\n <div ngbAccordion [closeOthers]=\"true\">\r\n <!-- Standard Template Start -->\r\n\r\n <div ngbAccordionItem [collapsed]=\"openAccordian\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton (click)=\"reset()\">\r\n <div class=\"d-grid\">Standard Template</div>\r\n <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody class=\"pt-0 border-0\">\r\n <ng-template class=\"d-flex flex-column justify-content-between\">\r\n <div class=\"card-body h-auto p-0\">\r\n <div class=\"card-label\">\r\n Please select a report to preview \r\n </div>\r\n <div *ngFor=\"let data of standardData\" class=\"mt-5 cursor-pointer\">\r\n <div (click)=\"selectRadio(data)\" class=\"d-flex align-items-center\">\r\n <input [checked]=\"selectedData?.name === data?.name\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-5 standard\">{{data?.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Standard Template End -->\r\n <!-- Custom Template Start -->\r\n <!-- *ngIf=\"!openCustom\" -->\r\n <div *ngIf=\"((gs.userAccess | async)?.userType ==='client') || (gs.userAccess | async)?.userType ==='tango'\" ngbAccordionItem [collapsed]=\"!openCustom\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading pt-0\" ngbAccordionButton (click)=\"resetValues()\">\r\n <div class=\"d-grid\">Custom Template</div>\r\n <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <div class=\"card-body h-100px p-0\">\r\n <div class=\"card-label\">\r\n Please select your data points to add into the reports\r\n </div>\r\n <div class=\"btnheader w-100 p-2 mt-5\">\r\n <span class=\"cursor-pointer px-2\" (click)=\"customOption(button)\" [ngClass]=\"this.custombtn === button ? 'btn ':''\" *ngFor=\"let button of costomButtons\">{{button}}</span>\r\n </div>\r\n <div [ngStyle]=\"{ 'height': infraTable.length ? 'auto' : '100%' }\" class=\"overflow-auto\">\r\n <div *ngIf=\"custombtn === 'Metrics'\">\r\n <div *ngFor=\"let data of metricsData\" class=\"mt-5\">\r\n <div>\r\n <input type=\"checkbox\" class=\"mt-2 cursor-pointer\" [(ngModel)]=\"data.checked\">\r\n <span class=\"ms-5 standard fs-4\">{{data.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"custombtn === 'Comparision'\">\r\n <div *ngFor=\"let data of comparisionData\" class=\"mt-5\">\r\n <div class=\"cursor-pointer d-flex align-items-center\" (click)=\"getComparision(data)\">\r\n <input [checked]=\"comparisionFilter === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-5 standard fs-4\">{{data}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"custombtn === 'Time Filter'\">\r\n <div *ngFor=\"let data of filterData\" class=\"mt-5\">\r\n <div class=\"cursor-pointer d-flex align-items-center\" (click)=\"getFilter(data)\">\r\n <input [checked]=\"filterDataList === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-5 standard fs-4\">{{data === 'hour' ? 'By Hour' : 'By Date'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"openCustom\" class=\"d-flex w-100\" [ngClass]=\"!loading ? 'mt-5':''\">\r\n <button class=\"btn btn-default btn-outline w-50 me-3 mb-3\" [ngClass]=\"custombtn === 'Metrics' ? 'hidden' : ''\"\r\n (click)=\"movetoBack()\">Back</button>\r\n <button *ngIf=\"custombtn !== 'Time Filter'\" (click)=\"movetoNext()\"\r\n class=\"btn btn-default btn-primary w-50 ms-3 mb-3\">Next</button>\r\n <button *ngIf=\"custombtn === 'Time Filter'\" (click)=\"dynamicData.limit = 10;customCreate()\"\r\n class=\"btn btn-default btn-primary w-50 ms-3 mb-3\">View</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <!-- Custom Template End -->\r\n \r\n </div>\r\n\r\n \r\n </div>\r\n <!-- <div class=\"card-footer border-0 mt-5\"> -->\r\n <!-- <button *ngIf=\"!openAccordian\" (click)=\"createCustom()\" class=\"btn btn-primary w-100\">\r\n Create Custom Template\r\n </button> -->\r\n <!-- <div *ngIf=\"openCustom\" class=\"d-flex w-100 mt-5\">\r\n <button class=\"btn btn-default btn-outline w-50 me-3\" [ngClass]=\"custombtn === 'Metrics' ? 'hidden' : ''\" (click)=\"movetoBack()\">Back</button>\r\n <button *ngIf=\"custombtn !== 'Time Filter'\" (click)=\"movetoNext()\" class=\"btn btn-default btn-primary w-50 ms-3\">Next</button>\r\n <button *ngIf=\"custombtn === 'Time Filter'\" (click)=\"customCreate()\" class=\"btn btn-default btn-primary w-50 ms-3\">View</button>\r\n </div> -->\r\n <!-- </div> -->\r\n <div *ngIf=\"showsidenav\" (click)=\"sidenav()\" class=\"backButtonright text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path d=\"M8.27259 12.6363L4.63623 8.99989L8.27259 5.36353M13.3635 12.6363L9.72714 8.99989L13.3635 5.36353\" stroke=\"#101828\" stroke-width=\"1.45455\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"showsidenav ? 'col-sm-9':'col-sm-12'\">\r\n <div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\" class=\"card position-relative min-h-sm-300px min-h-md-400px min-h-xl-550px min-h-lg-500px max-h-auto\">\r\n <div *ngIf=\"!showsidenav\" (click)=\"sidenav()\" class=\"backButtonleft text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\" stroke=\"#101828\" stroke-width=\"1.45455\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">{{selectedData?.name || 'Custom Template'}}</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\"\r\n height=\"2\" rx=\"1\" transform=\"rotate(45 17.0365 15.1223)\"\r\n fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\" (change)=\"searchData()\" [(ngModel)]=\"this.dynamicData.search\" placeholder=\"Search\"\r\n autocomplete=\"off\"/>\r\n </div> \r\n <button class=\"btn btn-default btn-outline me-3\" (click)=\"ExportasXlsx()\" [disabled]=\"!infraTable.length\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> <span class=\"ms-3\">Export</span></button>\r\n <!-- <button class=\"btn btn-default btn-outline\" (click)=\"shareData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10164_5579)\"><path d=\"M18.3332 1.66675L9.1665 10.8334M18.3332 1.66675L12.4998 18.3334L9.1665 10.8334M18.3332 1.66675L1.6665 7.50008L9.1665 10.8334\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g><defs><clipPath id=\"clip0_10164_5579\"><rect width=\"20\" height=\"20\" fill=\"white\"/></clipPath></defs></svg><span *ngIf=\"!showsidenav\" class=\"ms-3\">Share</span>\r\n </button> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body\"> \r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader card d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"!loading && noData\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"card-body my-8 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Report Analysis</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"!loading && !noData && infraTable.length\">\r\n <table class=\"table bottom-border text-nowrap w-100\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of displayedColumns;let i=index\">\r\n <div class=\"cursor-pointer\" (click)=\"sortData(column)\">\r\n <span>{{ getDisplayName(column, infraTable[0]) }}</span>\r\n <span *ngIf=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase()&& this.dynamicData.sortBy !== 1 || this.dynamicData.sort.toLowerCase() !== column.toLowerCase()\" class=\"ms-3\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n [attr.stroke]=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase() ? '#00A3FF' :'#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase() && this.dynamicData.sortBy !== -1\" class=\"ms-3\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n [attr.stroke]=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase() ? '#00A3FF' :'#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of infraTable; let i = index\">\r\n <td *ngFor=\"let key of displayedColumns\">\r\n <span>\r\n {{ key === 'date' ? (data[key] | date: 'dd MMM, YYYY') : (\r\n key.includes('Avg time to Interact') && data[key] === '-1'\r\n ? '0' : (data[key] !== '' && data[key] !== null && data[key] !== undefined\r\n ? data[key] : '--'))\r\n }}\r\n </span>\r\n \r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\"\r\n [currentPage]=\"(dynamicData.offset + 1)\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"dynamicData.limit\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\" *ngIf=\"!loading && !noData && infraTable.length\"></lib-pagination>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"card border-0\">\r\n <div class=\"card-body\">\r\n <img src=\"./assets/tango/Images/custompopup-icon.png\">\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold\">Custom Template Name</span>\r\n <div class=\"mt-3 sub-header fw-semibold\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <label class=\"sub-header\" style=\"color: #344054; font-weight: 400;\" for=\"custom-name\">Template Name</label>\r\n <input type=\"text\" [(ngModel)]=\"customName\" class=\"form-control mt-2\" id=\"custom-Name\">\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary w-50 ms-2\" [disabled]=\"customName === ''\" (click)=\"modal.close()\">Apply</button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>","import { Component, OnInit } from '@angular/core';\r\nimport { PageInfoService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-tango-analyse-report',\r\n templateUrl: './tango-analyse-report.component.html',\r\n styleUrl: './tango-analyse-report.component.scss'\r\n})\r\nexport class TangoAnalyseReportComponent implements OnInit {\r\n\r\n constructor(public pageInfo:PageInfoService) {}\r\n\r\n ngOnInit(): void {\r\n this.setPageData();\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle('Reports')\r\n this.pageInfo.setDescription('Reports')\r\n this.pageInfo.setBreadcrumbs([\r\n { title: \"\", path: \"\", isActive: false, isSeparator: false },\r\n ]);\r\n }\r\n\r\n}\r\n","<lib-user-report></lib-user-report>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoAnalyseReportComponent } from './components/tango-analyse-report/tango-analyse-report.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: TangoAnalyseReportComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoAnalyseReportRoutingModule { }\r\n","import { Component,Input, OnInit } from '@angular/core';\r\nimport { AnalysereportService } from '../../service/analysereport.service';\r\n\r\n@Component({\r\n selector: 'lib-get-download-report',\r\n templateUrl: './get-download-report.component.html',\r\n styleUrl: './get-download-report.component.scss'\r\n})\r\nexport class GetDownloadReportComponent implements OnInit {\r\n @Input() data:any;\r\n activeData: any;\r\n reportList: any;\r\n noData:boolean = false;\r\n\r\nconstructor(private service:AnalysereportService){\r\n\r\n}\r\n\r\nngOnInit(){\r\n this.getReportList();\r\n}\r\n\r\ngetReportList(){\r\n let payload = {\r\n fileDate : this.data?.fileDate,\r\n clientId : this.data?.clientId\r\n }\r\n this.service.getReportList(payload).subscribe({\r\n next:(res:any) => {\r\n if(res && res.code === 200){\r\n this.reportList = res?.data?.result;\r\n }else{\r\n this.noData = true;\r\n }\r\n },\r\n complete:()=>{\r\n \r\n },\r\n error:(err)=>{\r\n this.noData = true;\r\n },\r\n })\r\n}\r\n\r\ndownLoadData(type:any){\r\n this.service.downloadReport(type).subscribe((res)=>{\r\n this.saveFile(res, type.split('/').pop())\r\n })\r\n}\r\n\r\n saveFile(buffer: ArrayBuffer, filename: string) {\r\n const blob = new Blob([buffer], { type: 'application/octet-stream' });\r\n const url = window.URL.createObjectURL(blob);\r\n const anchor = document.createElement('a');\r\n anchor.href = url;\r\n anchor.download = filename;\r\n anchor.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\n}\r\n","<div class=\"card border-0\">\r\n <div class=\"card-header\">\r\n <span class=\"card-title\">Report History</span>\r\n </div>\r\n <div *ngIf=\"!noData\" class=\"card-body\">\r\n <div *ngFor=\"let list of reportList\">\r\n <div class=\"DownloadReport mb-5 cursor-pointer\" (click)=\"downLoadData(list?.Key)\">{{list?.Key.split('/').splice(1).join('/')}}||{{list?.LastModified}}</div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"card-body border-0\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div> \r\n </div>\r\n</div> \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoAnalyseReportRoutingModule } from './tango-analyse-report-routing.module';\r\nimport { TangoAnalyseReportComponent } from './components/tango-analyse-report/tango-analyse-report.component';\r\nimport { UserReportComponent } from './components/user-report/user-report.component';\r\nimport { GetDownloadReportComponent } from './components/get-download-report/get-download-report.component';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoAnalyseReportComponent,\r\n UserReportComponent,\r\n GetDownloadReportComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoAnalyseReportRoutingModule,\r\n CommonSharedModule,\r\n FormsModule,\r\n NgbAccordionModule\r\n ]\r\n})\r\nexport class TangoAnalyseReportModule { }\r\n","/*\r\n * Public API Surface of tango-analyse-report\r\n */\r\n\r\nexport * from './lib/tango-analyse-report.module';\r\nexport * from './lib/components/tango-analyse-report/tango-analyse-report.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.AnalysereportService","i2.UserReportComponent","i1.AnalysereportService"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tango-app-ui-analyse-report.mjs","sources":["../../../projects/tango-analyse-report/src/lib/service/analysereport.service.ts","../../../projects/tango-analyse-report/src/lib/components/user-report/user-report.component.ts","../../../projects/tango-analyse-report/src/lib/components/user-report/user-report.component.html","../../../projects/tango-analyse-report/src/lib/components/tango-analyse-report/tango-analyse-report.component.ts","../../../projects/tango-analyse-report/src/lib/components/tango-analyse-report/tango-analyse-report.component.html","../../../projects/tango-analyse-report/src/lib/tango-analyse-report-routing.module.ts","../../../projects/tango-analyse-report/src/lib/components/get-download-report/get-download-report.component.ts","../../../projects/tango-analyse-report/src/lib/components/get-download-report/get-download-report.component.html","../../../projects/tango-analyse-report/src/lib/tango-analyse-report.module.ts","../../../projects/tango-analyse-report/src/public-api.ts","../../../projects/tango-analyse-report/src/tango-app-ui-analyse-report.ts"],"sourcesContent":["import { Injectable } from '@angular/core';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Observable, catchError, map, throwError } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n \r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class AnalysereportService {\r\n reportApiUrl:any;\r\n reportAnalysisUrl:any;\r\n trafficApiUrl:any;\r\nclientApiUrl:any;\r\n constructor(private gs: GlobalStateService,private http: HttpClient) {\r\n this.gs.environment.subscribe((env)=>{\r\n if(env){\r\n this.reportApiUrl = env.reportApiUrl\r\n this.reportAnalysisUrl = env.reportAnalysisUrl\r\n this.trafficApiUrl = env.trafficApiUrl;\r\n this.clientApiUrl = env.clientApiUrl;\r\n }\r\n }); \r\n }\r\n\r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + EXCEL_EXTENSION);\r\n }\r\n\r\n getClientListTable(data:any) :Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/client-list-table`,data)\r\n }\r\n\r\n generateReport(data:any) :Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/generate-report`,data)\r\n }\r\n\r\n uploadManualReport(data:any) :Observable<any>{\r\n return this.http.post(`${this.reportApiUrl}/upload-manual-report`,data)\r\n }\r\n\r\n getReportList(data:any){\r\n return this.http.get(`${this.reportApiUrl}/get-report-list?fileDate=${data?.fileDate}&clientId=${data?.clientId}`)\r\n }\r\n\r\n sentReport(data:any){\r\n return this.http.post(`${this.reportApiUrl}/send-report`,data)\r\n }\r\n\r\n downloadReport(params:any){\r\n return this.http.get(`${this.reportApiUrl}/download-report?filePath=${params}`,{ responseType: 'arraybuffer' })\r\n }\r\n\r\n reportList(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/standardTemplate_v1`,params)\r\n }\r\n\r\n customTemplate(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/customTemplate_v1`,params)\r\n }\r\n\r\n downloadReportList(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/standardTemplate_v1`,params,{ responseType: 'arraybuffer' })\r\n }\r\n\r\n downloadCustomReportList(params:any){\r\n return this.http.post(`${this.reportAnalysisUrl}/customTemplate_v1`,params,{ responseType: 'arraybuffer' })\r\n }\r\n getCheckTodayReportStatus(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.trafficApiUrl}/checkTodayReportStatus`, params);\r\n }\r\n getBrandDetails(id: any) {\r\n return this.http.get(`${this.clientApiUrl}/client-details/${id}`)\r\n }\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbActiveModal, NgbModal, NgbModalModule, NgbModalRef } from '@ng-bootstrap/ng-bootstrap';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { debounceTime, Subject, takeUntil } from \"rxjs\";\r\nimport { AnalysereportService } from '../../service/analysereport.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: 'lib-user-report',\r\n templateUrl: './user-report.component.html',\r\n styleUrl: './user-report.component.scss'\r\n})\r\nexport class UserReportComponent implements OnInit, OnDestroy {\r\n\r\n @ViewChild('confirmationModal') confirmationModal: any;\r\n modalRef: NgbModalRef | undefined;\r\n loading: boolean = true;\r\n noData: boolean = false;\r\n showsidenav: boolean = true;\r\n openCustom: boolean = false;\r\n openAccordian: boolean = false;\r\n customName: any = '';\r\n standardData: any = []\r\n costomButtons: any = ['Metrics', 'Comparision', 'Time Filter']\r\n metricsData: any = []\r\n comparisionData: any = ['WTD', 'MTD', 'None']\r\n filterData: any = ['hour', 'day']\r\n infraTable: any = []\r\n selectedData: any;\r\n custombtn: any = 'Metrics';\r\n metricsArray: any[] = [];\r\n comparisionFilter: string = 'WTD';\r\n filterDataList: string = 'hour';\r\n // sortBy:any = '';\r\n // sortColumName:any = '';\r\n totalCount: any;\r\n // searchValue: any = '';\r\n dynamicData: any = {};\r\n displayedColumns: any = [];\r\n pageSize = 10;\r\n clientData: any = [];\r\n showReportProcessingCard: boolean = true;\r\n yesterdayDate: string = '';\r\n dataProcessedLoading = true;\r\n private readonly destroy$ = new Subject();\r\n constructor(private modalservice: NgbModal, public gs: GlobalStateService, private service: AnalysereportService, private toast: ToastService, private cd: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n headerData: any;\r\n storeArray: any = [];\r\n isFootfallView: any;\r\n ngOnInit(): void {\r\n\r\n\r\n\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$), debounceTime(600))\r\n .subscribe((data: any) => {\r\n if (!data) return;\r\n\r\n this.headerData = data;\r\n\r\n if (\r\n !this.standardData.some(\r\n (t: any) => t.value === this.selectedData?.value\r\n )\r\n ) {\r\n this.selectedData = this.standardData[0];\r\n }\r\n this.service?.getBrandDetails(this.headerData?.client).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.clientData = res?.data;\r\n console.log('clientData', this.clientData);\r\n this.isFootfallView =\r\n this.clientData?.featureConfigs?.isFootfallView ? this.clientData?.featureConfigs?.isFootfallView : false;\r\n const limit =\r\n this.clientData?.featureConfigs?.bouncedLimit?.value ??\r\n this.clientData?.featureConfigs?.bouncedLimitValue ??\r\n '';\r\n\r\n const conv =\r\n this.clientData?.featureConfigs?.conversion?.value ??\r\n this.clientData?.featureConfigs?.conversionValue ??\r\n '';\r\n\r\n const userType = this.gs.userAccess.value?.userType;\r\n const isFootfall = this.isFootfallView;\r\n\r\n if (isFootfall && userType === 'client') {\r\n this.standardData = [{ name: 'Template F', value: 'F' }];\r\n } else {\r\n this.standardData = [\r\n { name: 'Template A', value: 'A' },\r\n { name: 'Template B', value: 'B' },\r\n { name: 'Template C', value: 'C' },\r\n { name: 'Template D', value: 'D' }\r\n ];\r\n\r\n if (isFootfall && userType === 'tango') {\r\n this.standardData = [{ name: 'Template F', value: 'F' }];\r\n }\r\n }\r\n\r\n if (\r\n !this.selectedData ||\r\n !this.standardData.some(\r\n (t: any) => t.value === this.selectedData?.value\r\n )\r\n ) {\r\n this.selectedData = this.standardData[0];\r\n }\r\n\r\n if (data.client === '452') {\r\n this.metricsData = [\r\n { name: `Less than ${limit} mins`, checked: false, value: 'Bounced Count' },\r\n { name: `${limit} - ${conv} mins`, checked: false, value: 'Missed Opportunity Count' },\r\n { name: `More than ${limit} mins`, checked: false, value: 'Engagers Count' },\r\n { name: `More than ${conv} mins Rate`, checked: false, value: 'Conversion Rate' },\r\n { name: 'Age', checked: false, value: 'age' },\r\n { name: 'Gender', checked: false, value: 'gender' },\r\n { name: 'NOB', checked: false, value: 'nob' },\r\n { name: 'Avg Infra Downtime (mins)', checked: false, value: 'Avg Infra Downtime (mins)' }\r\n ];\r\n } else if (isFootfall) {\r\n this.metricsData = [\r\n { name: 'Avg Infra Downtime (mins)', checked: false, value: 'Avg Infra Downtime (mins)' },\r\n { name: 'Open Time', checked: false, value: 'Open Time' },\r\n { name: 'Close Time', checked: false, value: 'Close Time' },\r\n ]\r\n } else {\r\n this.metricsData = [\r\n { name: 'Potential Buyers', checked: false, value: 'Potential Buyers' },\r\n { name: 'Bounced Footfall', checked: false, value: 'Bounced Count' },\r\n { name: 'Missed Opportunity', checked: false, value: 'Missed Opportunity Count' },\r\n { name: 'Engagers Count', checked: false, value: 'Engagers Count' },\r\n { name: 'Conversion', checked: false, value: 'Conversion Rate' },\r\n { name: 'Age', checked: false, value: 'age' },\r\n { name: 'Gender', checked: false, value: 'gender' },\r\n { name: 'NOB', checked: false, value: 'nob' },\r\n { name: 'Avg Infra Downtime (mins)', checked: false, value: 'Avg Infra Downtime (mins)' }\r\n ];\r\n }\r\n\r\n this.storeArray = data.stores\r\n ?.filter((i: any) => i.checked)\r\n .map((i: any) => i.storeId);\r\n\r\n this.checkTodayReportStatus();\r\n\r\n if (data.client === '430') {\r\n const exists = this.standardData.some(\r\n (item: any) => item.value === 'E'\r\n );\r\n if (!exists) {\r\n this.standardData.push({ name: 'Template E', value: 'E' });\r\n }\r\n }\r\n }\r\n\r\n },\r\n error: (error) => {\r\n\r\n }\r\n\r\n })\r\n setTimeout(() => {\r\n this.cd.detectChanges();\r\n this.dynamicData = {\r\n clientId: data.client,\r\n storeId: this.storeArray.length\r\n ? this.storeArray\r\n : data.stores.map((i: any) => i.storeId),\r\n fromDate: data.date.startDate,\r\n toDate: data.date.endDate,\r\n limit: 10,\r\n offset: 0,\r\n templateType: this.selectedData?.value || 'A',\r\n export: false,\r\n search: '',\r\n sort: '',\r\n sortBy: ''\r\n };\r\n\r\n if (!this.openCustom) {\r\n this.getTemplates();\r\n } else {\r\n this.customCreate();\r\n }\r\n }, 500);\r\n });\r\n }\r\n\r\n\r\n getDisplayName(column: any, row: any): any {\r\n const client = this.headerData?.client;\r\n const limit = this.clientData?.bouncedLimit?.value ?? this.clientData?.bouncedLimitValue ?? '';\r\n const conv = this.clientData?.conversion?.value ?? this.clientData?.conversionValue ?? '';\r\n if (client === '452') {\r\n const customLabels: any = {\r\n 'Bounced Count': `Less than ${limit} mins`,\r\n 'Engagers Count': `More than ${limit} mins`,\r\n 'Conversion Rate': `More than ${conv} mins Rate`,\r\n 'Missed Opportunity Count': `${limit} - ${conv} mins`,\r\n };\r\n\r\n return customLabels[column] ?? column;\r\n }\r\n\r\n return column;\r\n }\r\n\r\n getTemplates() {\r\n this.infraTable = [];\r\n this.loading = true;\r\n this.service.reportList(this.dynamicData).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.data.templateData?.length) {\r\n this.infraTable = res.data?.templateData;\r\n this.totalCount = res.data?.totalCount;\r\n // this.setPaginationSizes();\r\n // this.pageSize = this.totalCount < 10 ? [this.totalCount] : [10,20,30];\r\n // this.dynamicData.limit = this.totalCount < 10 ? this.totalCount : this.dynamicData.limit;\r\n if (this.headerData.client === '452') {\r\n this.displayedColumns = Object.keys(this.infraTable[0]).filter(\r\n col => col !== 'Potential Buyers'\r\n );\r\n } else {\r\n this.displayedColumns = Object.keys(this.infraTable[0]);\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n }, () => {\r\n this.loading = false;\r\n this.noData = true;\r\n });\r\n }\r\n\r\n sidenav() {\r\n this.showsidenav = !this.showsidenav;\r\n }\r\n selectRadio(data: any) {\r\n this.dynamicData.offset = 0;\r\n this.infraTable = [];\r\n this.selectedData = data;\r\n this.dynamicData.limit = 10;\r\n this.dynamicData.templateType = data.value;\r\n this.dynamicData.search = '';\r\n this.dynamicData.sort = '';\r\n this.dynamicData.sortBy = '';\r\n this.getTemplates();\r\n }\r\n createCustom() {\r\n this.customName = '';\r\n const modalRef = this.modalservice.open(this.confirmationModal, { centered: true });\r\n modalRef.result.then((result) => {\r\n this.openAccordian = !this.openAccordian;\r\n this.openCustom = !this.openCustom;\r\n });\r\n }\r\n customOption(data: any) {\r\n this.custombtn = data;\r\n }\r\n movetoNext() {\r\n if (this.custombtn === 'Metrics') {\r\n this.custombtn = 'Comparision'\r\n } else if (this.custombtn === 'Comparision') {\r\n this.custombtn = 'Time Filter'\r\n }\r\n }\r\n movetoBack() {\r\n if (this.custombtn === 'Comparision') {\r\n this.custombtn = 'Metrics'\r\n } else if (this.custombtn === 'Time Filter') {\r\n this.custombtn = 'Comparision'\r\n }\r\n }\r\n getComparision(data: any) {\r\n this.comparisionFilter = data;\r\n }\r\n getFilter(data: any) {\r\n this.filterDataList = data;\r\n }\r\n customCreate() {\r\n this.infraTable = [];\r\n this.loading = true;\r\n this.selectedData = {};\r\n\r\n let selectField = this.metricsData.filter((item: any) => item.checked).map((item: any) => item.value);\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: this.dynamicData.offset,\r\n export: false,\r\n comparisonFilter: this.comparisionFilter != 'None' ? this.comparisionFilter : '',\r\n timeFilter: this.filterDataList,\r\n seletedFields: selectField,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.customTemplate(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.data?.customTemplate?.length) {\r\n this.infraTable = res.data.customTemplate;\r\n this.totalCount = res.data.totalCount;\r\n // this.setPaginationSizes();\r\n // this.pageSize = this.totalCount < 10 ? [this.totalCount] : [10,20,30];\r\n // this.dynamicData.limit = this.totalCount < 10 ? this.totalCount : this.dynamicData.limit;\r\n if (this.headerData.client === '452') {\r\n this.displayedColumns = Object.keys(this.infraTable[0]).filter(\r\n col => col !== 'Potential Buyers'\r\n );\r\n } else {\r\n this.displayedColumns = Object.keys(this.infraTable[0]);\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n }, () => {\r\n this.loading = false;\r\n this.noData = true;\r\n });\r\n }\r\n\r\n sortData(value: any) {\r\n if (this.dynamicData.sort.toLowerCase() == value.toLowerCase()) {\r\n this.dynamicData.sortBy *= -1;\r\n }\r\n else {\r\n this.dynamicData.sortBy = 1;\r\n }\r\n if (value == 'FootFall Count' && this.openCustom) {\r\n value = 'Footfall Count'\r\n }\r\n this.dynamicData.sort = value;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.getTemplates();\r\n }\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.dynamicData.offset = pageOffset - 1;\r\n // this.dynamicData.limit =10;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.getTemplates();\r\n }\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.dynamicData.limit = Number(pageSize);\r\n // this.pageSize = Number(pageSize);\r\n // console.log('pageSize',this.pageSize);\r\n this.dynamicData.offset = 0;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.getTemplates();\r\n }\r\n }\r\n searchData() {\r\n this.dynamicData.offset = 0;\r\n if (this.openCustom) {\r\n this.customCreate();\r\n }\r\n else {\r\n this.infraTable = [];\r\n this.loading = true;\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: this.dynamicData.offset,\r\n templateType: this.selectedData.value,\r\n export: false,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.reportList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res && res.data.templateData?.length) {\r\n this.infraTable = res.data?.templateData;\r\n this.totalCount = res.data.totalCount;\r\n // this.setPaginationSizes();\r\n // this.pageSize = this.totalCount < 10 ? [this.totalCount] : [10,20,30];\r\n // this.dynamicData.limit = this.totalCount < 10 ? this.totalCount : this.dynamicData.limit;\r\n if (this.headerData.client === '452') {\r\n this.displayedColumns = Object.keys(this.infraTable[0]).filter(\r\n col => col !== 'Potential Buyers'\r\n );\r\n } else {\r\n this.displayedColumns = Object.keys(this.infraTable[0]);\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n }, () => {\r\n this.loading = false;\r\n this.noData = true;\r\n });\r\n }\r\n }\r\n paginationSizes: any = [10, 20, 30];\r\n // setPaginationSizes() {\r\n // if (this.totalCount > 10) {\r\n // this.paginationSizes = [10, 20, 30];\r\n // } else {\r\n // this.paginationSizes = [this.totalCount]; // Just one option if less than 10\r\n // }\r\n // this.pageSize = this.paginationSizes[0];\r\n // }\r\n ExportasXlsx() {\r\n if (this.openCustom) {\r\n this.exportCustomTemplate();\r\n }\r\n else {\r\n this.exportTemplates();\r\n }\r\n }\r\n exportTemplates() {\r\n if (this.totalCount > 10000) {\r\n this.toast.getErrorToast('Export limit reached. Only 10,000 records were exported. Try a smaller date range.');\r\n } else {\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: 0,\r\n templateType: this.selectedData.value,\r\n export: true,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.downloadReportList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res) {\r\n // ✅ If more than 10,000 rows, trim and show error\r\n\r\n\r\n this.service.saveAsExcelFile(res, this.selectedData.name);\r\n }\r\n }, (error: any) => {\r\n this.toast.getErrorToast('The export limit cannot exceed 8,000.');\r\n });\r\n }\r\n }\r\n exportCustomTemplate() {\r\n if (this.totalCount > 10000) {\r\n this.toast.getErrorToast('Export limit reached. Only 10,000 records were exported. Try a smaller date range.');\r\n } else {\r\n let selectField = this.metricsData.filter((item: any) => item.checked).map((item: any) => item.value);\r\n let data = {\r\n clientId: this.dynamicData.clientId,\r\n storeId: this.dynamicData.storeId,\r\n fromDate: this.dynamicData.fromDate,\r\n toDate: this.dynamicData.toDate,\r\n limit: this.dynamicData.limit,\r\n offset: 0,\r\n export: true,\r\n comparisonFilter: this.comparisionFilter != 'None' ? this.comparisionFilter : '',\r\n timeFilter: this.filterDataList,\r\n seletedFields: selectField,\r\n search: this.dynamicData.search,\r\n sort: this.dynamicData.sort,\r\n sortBy: this.dynamicData.sortBy\r\n }\r\n this.service.downloadCustomReportList(data).pipe(takeUntil(this.destroy$)).subscribe((res: any) => {\r\n if (res) {\r\n\r\n this.service.saveAsExcelFile(res, 'customTemplate');\r\n }\r\n }, (error: any) => {\r\n this.toast.getErrorToast('The export limit cannot exceed 8,000.');\r\n });\r\n }\r\n }\r\n reset() {\r\n this.openCustom = false;\r\n this.custombtn = 'Metrics';\r\n this.metricsData.forEach((item: any) => item.checked = false);\r\n this.comparisionFilter = 'WTD';\r\n this.filterDataList = 'hour';\r\n }\r\n resetValues() {\r\n\r\n this.openCustom = !this.openCustom;\r\n this.dynamicData.offset = 0;\r\n this.dynamicData.sort = '';\r\n this.dynamicData.sortBy = '';\r\n this.dynamicData.search = '';\r\n }\r\n checkTodayReportStatus(): void {\r\n this.dataProcessedLoading = true;\r\n const reportParams = {\r\n clientId: this.headerData?.client,\r\n fromDate: this.headerData?.date?.startDate,\r\n toDate: this.headerData?.date?.endDate\r\n };\r\n this.service.getCheckTodayReportStatus(reportParams)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.dataProcessedLoading = false\r\n this.showReportProcessingCard = res?.data?.reportSendStatus === true;\r\n this.yesterdayDate = res?.data?.yesterday || '';\r\n this.cd.detectChanges();\r\n },\r\n\r\n error: (err: any) => {\r\n console.error('Error checking report status:', err);\r\n this.showReportProcessingCard = false;\r\n this.dataProcessedLoading = false\r\n this.cd.detectChanges();\r\n }\r\n });\r\n }\r\n}\r\n","<div class=\"row mb-5\">\r\n <div [ngClass]=\"showsidenav ? 'col-sm-3':'d-none'\">\r\n <div class=\"card position-relative h-100\">\r\n <div class=\"card-body p-0 overflow-auto\">\r\n <div ngbAccordion [closeOthers]=\"true\">\r\n <!-- Standard Template Start -->\r\n\r\n <div ngbAccordionItem [collapsed]=\"openAccordian\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading\" ngbAccordionButton (click)=\"reset()\">\r\n <div class=\"d-grid\">Standard Template</div>\r\n <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody class=\"pt-0 border-0\">\r\n <ng-template class=\"d-flex flex-column justify-content-between\">\r\n <div class=\"card-body h-auto p-0\">\r\n <div class=\"card-label\">\r\n Please select a report to preview \r\n </div>\r\n <div *ngFor=\"let data of standardData\" class=\"mt-5 cursor-pointer\">\r\n <div (click)=\"selectRadio(data)\" class=\"d-flex align-items-center\">\r\n <input [checked]=\"selectedData?.name === data?.name\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-5 standard\">{{data?.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Standard Template End -->\r\n <!-- Custom Template Start -->\r\n <!-- *ngIf=\"!openCustom\" -->\r\n <div *ngIf=\"((gs.userAccess | async)?.userType ==='client') || (gs.userAccess | async)?.userType ==='tango'\" ngbAccordionItem [collapsed]=\"!openCustom\">\r\n <div class=\"d-flex\" ngbAccordionHeader>\r\n <button class=\"mainheading pt-0\" ngbAccordionButton (click)=\"resetValues()\">\r\n <div class=\"d-grid\">Custom Template</div>\r\n <div class=\"divider\"></div>\r\n </button>\r\n </div>\r\n <div ngbAccordionCollapse>\r\n <div ngbAccordionBody>\r\n <ng-template>\r\n <div class=\"card-body h-100px p-0\">\r\n <div class=\"card-label\">\r\n Please select your data points to add into the reports\r\n </div>\r\n <div class=\"btnheader w-100 p-2 mt-5\">\r\n <span class=\"cursor-pointer px-2\" (click)=\"customOption(button)\" [ngClass]=\"this.custombtn === button ? 'btn ':''\" *ngFor=\"let button of costomButtons\">{{button}}</span>\r\n </div>\r\n <div [ngStyle]=\"{ 'height': infraTable.length ? 'auto' : '100%' }\" class=\"overflow-auto\">\r\n <div *ngIf=\"custombtn === 'Metrics'\">\r\n <div *ngFor=\"let data of metricsData\" class=\"mt-5\">\r\n <div>\r\n <input type=\"checkbox\" class=\"mt-2 cursor-pointer\" [(ngModel)]=\"data.checked\">\r\n <span class=\"ms-5 standard fs-4\">{{data.name}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"custombtn === 'Comparision'\">\r\n <div *ngFor=\"let data of comparisionData\" class=\"mt-5\">\r\n <div class=\"cursor-pointer d-flex align-items-center\" (click)=\"getComparision(data)\">\r\n <input [checked]=\"comparisionFilter === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-5 standard fs-4\">{{data}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"custombtn === 'Time Filter'\">\r\n <div *ngFor=\"let data of filterData\" class=\"mt-5\">\r\n <div class=\"cursor-pointer d-flex align-items-center\" (click)=\"getFilter(data)\">\r\n <input [checked]=\"filterDataList === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-5 standard fs-4\">{{data === 'hour' ? 'By Hour' : 'By Date'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"openCustom\" class=\"d-flex w-100\" [ngClass]=\"!loading ? 'mt-5':''\">\r\n <button class=\"btn btn-default btn-outline w-50 me-3 mb-3\" [ngClass]=\"custombtn === 'Metrics' ? 'hidden' : ''\"\r\n (click)=\"movetoBack()\">Back</button>\r\n <button *ngIf=\"custombtn !== 'Time Filter'\" (click)=\"movetoNext()\"\r\n class=\"btn btn-default btn-primary w-50 ms-3 mb-3\">Next</button>\r\n <button *ngIf=\"custombtn === 'Time Filter'\" (click)=\"dynamicData.limit = 10;customCreate()\"\r\n class=\"btn btn-default btn-primary w-50 ms-3 mb-3\">View</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <!-- Custom Template End -->\r\n \r\n </div>\r\n\r\n \r\n </div>\r\n <!-- <div class=\"card-footer border-0 mt-5\"> -->\r\n <!-- <button *ngIf=\"!openAccordian\" (click)=\"createCustom()\" class=\"btn btn-primary w-100\">\r\n Create Custom Template\r\n </button> -->\r\n <!-- <div *ngIf=\"openCustom\" class=\"d-flex w-100 mt-5\">\r\n <button class=\"btn btn-default btn-outline w-50 me-3\" [ngClass]=\"custombtn === 'Metrics' ? 'hidden' : ''\" (click)=\"movetoBack()\">Back</button>\r\n <button *ngIf=\"custombtn !== 'Time Filter'\" (click)=\"movetoNext()\" class=\"btn btn-default btn-primary w-50 ms-3\">Next</button>\r\n <button *ngIf=\"custombtn === 'Time Filter'\" (click)=\"customCreate()\" class=\"btn btn-default btn-primary w-50 ms-3\">View</button>\r\n </div> -->\r\n <!-- </div> -->\r\n <div *ngIf=\"showsidenav\" (click)=\"sidenav()\" class=\"backButtonright text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path d=\"M8.27259 12.6363L4.63623 8.99989L8.27259 5.36353M13.3635 12.6363L9.72714 8.99989L13.3635 5.36353\" stroke=\"#101828\" stroke-width=\"1.45455\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"showsidenav ? 'col-sm-9':'col-sm-12'\">\r\n <div *ngIf=\"!showReportProcessingCard && !dataProcessedLoading\" class=\"card position-relative min-h-sm-300px min-h-md-400px min-h-xl-550px min-h-lg-500px max-h-auto\">\r\n <div *ngIf=\"!showsidenav\" (click)=\"sidenav()\" class=\"backButtonleft text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\" stroke=\"#101828\" stroke-width=\"1.45455\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">{{selectedData?.name || 'Custom Template'}}</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\"\r\n height=\"2\" rx=\"1\" transform=\"rotate(45 17.0365 15.1223)\"\r\n fill=\"currentColor\"></rect>\r\n <path\r\n d=\"M11 19C6.55556 19 3 15.4444 3 11C3 6.55556 6.55556 3 11 3C15.4444 3 19 6.55556 19 11C19 15.4444 15.4444 19 11 19ZM11 5C7.53333 5 5 7.53333 5 11C5 14.4667 7.53333 17 11 17C14.4667 17 17 14.4667 17 11C17 7.53333 14.4667 5 11 5Z\"\r\n fill=\"currentColor\"></path>\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control ps-14 me-2\" (change)=\"searchData()\" [(ngModel)]=\"this.dynamicData.search\" placeholder=\"Search\"\r\n autocomplete=\"off\"/>\r\n </div> \r\n <button class=\"btn btn-default btn-outline me-3\" (click)=\"ExportasXlsx()\" [disabled]=\"!infraTable.length\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> <span class=\"ms-3\">Export</span></button>\r\n <!-- <button class=\"btn btn-default btn-outline\" (click)=\"shareData()\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10164_5579)\"><path d=\"M18.3332 1.66675L9.1665 10.8334M18.3332 1.66675L12.4998 18.3334L9.1665 10.8334M18.3332 1.66675L1.6665 7.50008L9.1665 10.8334\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </g><defs><clipPath id=\"clip0_10164_5579\"><rect width=\"20\" height=\"20\" fill=\"white\"/></clipPath></defs></svg><span *ngIf=\"!showsidenav\" class=\"ms-3\">Share</span>\r\n </button> -->\r\n </div>\r\n </div>\r\n <div class=\"card-body\"> \r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader card d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <div class=\"row\" *ngIf=\"!loading && noData\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"card-body my-8 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Report Analysis</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"table-responsive\" *ngIf=\"!loading && !noData && infraTable.length\">\r\n <table class=\"table bottom-border text-nowrap w-100\">\r\n <thead>\r\n <tr>\r\n <th *ngFor=\"let column of displayedColumns;let i=index\">\r\n <div class=\"cursor-pointer\" (click)=\"sortData(column)\">\r\n <span>{{ getDisplayName(column, infraTable[0]) }}</span>\r\n <span *ngIf=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase()&& this.dynamicData.sortBy !== 1 || this.dynamicData.sort.toLowerCase() !== column.toLowerCase()\" class=\"ms-3\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n [attr.stroke]=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase() ? '#00A3FF' :'#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span *ngIf=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase() && this.dynamicData.sortBy !== -1\" class=\"ms-3\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n [attr.stroke]=\"this.dynamicData.sort.toLowerCase() === column.toLowerCase() ? '#00A3FF' :'#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of infraTable; let i = index\">\r\n <td *ngFor=\"let key of displayedColumns\">\r\n <span>\r\n {{ key === 'date' ? (data[key] | date: 'dd MMM, YYYY') : (\r\n key.includes('Avg time to Interact') && data[key] === '-1'\r\n ? '0' : (data[key] !== '' && data[key] !== null && data[key] !== undefined\r\n ? data[key] : '--'))\r\n }}\r\n </span>\r\n \r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n \r\n </div>\r\n <div class=\"card-footer border-0\">\r\n <lib-pagination [itemsPerPage]=\"dynamicData.limit\"\r\n [currentPage]=\"(dynamicData.offset + 1)\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"dynamicData.limit\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\" *ngIf=\"!loading && !noData && infraTable.length\"></lib-pagination>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"showReportProcessingCard && !dataProcessedLoading\" class=\"row px-3\"> \r\n <div class=\"card dataprocessed pb-0 px-0 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"dataprocessedgif\" src=\"./assets/tango/Icons/data_analyse_gif.gif\" alt=\"\">\r\n <div class=\"dataprocessed-title\">Data being Processed</div>\r\n <div class=\"dataprocessed-sub\">Data for the selected date {{ yesterdayDate }}, is currently being processed and will be available shortly.</div>\r\n <div class=\"dataprocessed-sub\"> If you wish to view data for other dates, Remove {{ yesterdayDate }} from your selection or choose a different date range.</div> \r\n </div>\r\n \r\n </div>\r\n <div *ngIf=\"dataProcessedLoading\" class=\"card row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n</div>\r\n\r\n<ng-template #confirmationModal let-modal>\r\n <div class=\"card border-0\">\r\n <div class=\"card-body\">\r\n <img src=\"./assets/tango/Images/custompopup-icon.png\">\r\n <div class=\" mt-5\">\r\n <span class=\"header fw-bold\">Custom Template Name</span>\r\n <div class=\"mt-3 sub-header fw-semibold\">Are you sure you want to delete the user globally?</div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <label class=\"sub-header\" style=\"color: #344054; font-weight: 400;\" for=\"custom-name\">Template Name</label>\r\n <input type=\"text\" [(ngModel)]=\"customName\" class=\"form-control mt-2\" id=\"custom-Name\">\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"modal.dismiss()\">Cancel</button>\r\n <button type=\"button\" class=\"btn btn-primary w-50 ms-2\" [disabled]=\"customName === ''\" (click)=\"modal.close()\">Apply</button>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>","import { Component, OnInit } from '@angular/core';\r\nimport { PageInfoService } from 'tango-app-ui-global';\r\n\r\n@Component({\r\n selector: 'lib-tango-analyse-report',\r\n templateUrl: './tango-analyse-report.component.html',\r\n styleUrl: './tango-analyse-report.component.scss'\r\n})\r\nexport class TangoAnalyseReportComponent implements OnInit {\r\n\r\n constructor(public pageInfo:PageInfoService) {}\r\n\r\n ngOnInit(): void {\r\n this.setPageData();\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle('Reports')\r\n // this.pageInfo.setDescription('Reports')\r\n this.pageInfo.setBreadcrumbs([\r\n { title: \"Tango Eye\", path: \"/manage/traffic\", isActive: false, isSeparator: false },\r\n { title: \"\", path: \"\", isActive: false, isSeparator: true },\r\n { title: \"\", path: \"\", isActive: false, isSeparator: false },\r\n ]);\r\n }\r\n\r\n}\r\n","<lib-user-report></lib-user-report>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoAnalyseReportComponent } from './components/tango-analyse-report/tango-analyse-report.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path: '',\r\n component: TangoAnalyseReportComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoAnalyseReportRoutingModule { }\r\n","import { Component,Input, OnInit } from '@angular/core';\r\nimport { AnalysereportService } from '../../service/analysereport.service';\r\n\r\n@Component({\r\n selector: 'lib-get-download-report',\r\n templateUrl: './get-download-report.component.html',\r\n styleUrl: './get-download-report.component.scss'\r\n})\r\nexport class GetDownloadReportComponent implements OnInit {\r\n @Input() data:any;\r\n activeData: any;\r\n reportList: any;\r\n noData:boolean = false;\r\n\r\nconstructor(private service:AnalysereportService){\r\n\r\n}\r\n\r\nngOnInit(){\r\n this.getReportList();\r\n}\r\n\r\ngetReportList(){\r\n let payload = {\r\n fileDate : this.data?.fileDate,\r\n clientId : this.data?.clientId\r\n }\r\n this.service.getReportList(payload).subscribe({\r\n next:(res:any) => {\r\n if(res && res.code === 200){\r\n this.reportList = res?.data?.result;\r\n }else{\r\n this.noData = true;\r\n }\r\n },\r\n complete:()=>{\r\n \r\n },\r\n error:(err)=>{\r\n this.noData = true;\r\n },\r\n })\r\n}\r\n\r\ndownLoadData(type:any){\r\n this.service.downloadReport(type).subscribe((res)=>{\r\n this.saveFile(res, type.split('/').pop())\r\n })\r\n}\r\n\r\n saveFile(buffer: ArrayBuffer, filename: string) {\r\n const blob = new Blob([buffer], { type: 'application/octet-stream' });\r\n const url = window.URL.createObjectURL(blob);\r\n const anchor = document.createElement('a');\r\n anchor.href = url;\r\n anchor.download = filename;\r\n anchor.click();\r\n window.URL.revokeObjectURL(url);\r\n}\r\n\r\n}\r\n","<div class=\"card border-0\">\r\n <div class=\"card-header\">\r\n <span class=\"card-title\">Report History</span>\r\n </div>\r\n <div *ngIf=\"!noData\" class=\"card-body\">\r\n <div *ngFor=\"let list of reportList\">\r\n <div class=\"DownloadReport mb-5 cursor-pointer\" (click)=\"downLoadData(list?.Key)\">{{list?.Key.split('/').splice(1).join('/')}}||{{list?.LastModified}}</div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"noData\" class=\"card-body border-0\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div> \r\n </div>\r\n</div> \r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoAnalyseReportRoutingModule } from './tango-analyse-report-routing.module';\r\nimport { TangoAnalyseReportComponent } from './components/tango-analyse-report/tango-analyse-report.component';\r\nimport { UserReportComponent } from './components/user-report/user-report.component';\r\nimport { GetDownloadReportComponent } from './components/get-download-report/get-download-report.component';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { NgbAccordionModule } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoAnalyseReportComponent,\r\n UserReportComponent,\r\n GetDownloadReportComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoAnalyseReportRoutingModule,\r\n CommonSharedModule,\r\n FormsModule,\r\n NgbAccordionModule\r\n ]\r\n})\r\nexport class TangoAnalyseReportModule { }\r\n","/*\r\n * Public API Surface of tango-analyse-report\r\n */\r\n\r\nexport * from './lib/tango-analyse-report.module';\r\nexport * from './lib/components/tango-analyse-report/tango-analyse-report.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3.AnalysereportService","i2.UserReportComponent","i1.AnalysereportService"],"mappings":"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"}
|