tango-app-ui-manage-tickets 3.3.0-beta.8 → 3.3.0-beta.9
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tango-app-ui-manage-tickets.mjs","sources":["../../../projects/tango-manage-tickets/src/lib/services/ticket.service.ts","../../../projects/tango-manage-tickets/src/lib/components/add-csm-modal/add-csm-modal.component.ts","../../../projects/tango-manage-tickets/src/lib/components/add-csm-modal/add-csm-modal.component.html","../../../projects/tango-manage-tickets/src/lib/components/comment-model/comment-model.component.ts","../../../projects/tango-manage-tickets/src/lib/components/comment-model/comment-model.component.html","../../../projects/tango-manage-tickets/src/lib/services/excel.service.ts","../../../projects/tango-manage-tickets/src/lib/components/tickets/tickets.component.ts","../../../projects/tango-manage-tickets/src/lib/components/tickets/tickets.component.html","../../../projects/tango-manage-tickets/src/lib/components/re-trigger/re-trigger.component.ts","../../../projects/tango-manage-tickets/src/lib/components/re-trigger/re-trigger.component.html","../../../projects/tango-manage-tickets/src/lib/components/count/count.component.ts","../../../projects/tango-manage-tickets/src/lib/components/count/count.component.html","../../../projects/tango-manage-tickets/src/lib/components/audit-metrics/audit-metrics.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-metrics/audit-metrics.component.html","../../../projects/tango-manage-tickets/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.ts","../../../projects/tango-manage-tickets/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.html","../../../projects/tango-manage-tickets/src/lib/tango-manage-tickets-routing.module.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-log/audit-log.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-log/audit-log.component.html","../../../projects/tango-manage-tickets/src/lib/tango-manage-tickets.module.ts","../../../projects/tango-manage-tickets/src/public-api.ts","../../../projects/tango-manage-tickets/src/tango-app-ui-manage-tickets.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport {\r\n BehaviorSubject,\r\n Observable,\r\n catchError,\r\n map,\r\n of,\r\n throwError,\r\n} from \"rxjs\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TicketService {\r\n userApiUrl: any;\r\n ticketsApiUrl: any;\r\n auditApiUrl:any;\r\n auditmetricApiUrl:any;\r\n zoneauditApiUrl:any;\r\n\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.subscribe((env) => {\r\n if (env) {\r\n this.userApiUrl = env.userApiUrl;\r\n this.ticketsApiUrl =env.ticketsApiUrl;\r\n this.auditmetricApiUrl = env.auditmetricApiUrl;\r\n this.auditApiUrl = env.auditApiUrl;\r\n this.zoneauditApiUrl = env.zoneauditApiUrl;\r\n }\r\n })\r\n }\r\n\r\n getUserList(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.userApiUrl}/get-list`, params)\r\n }\r\n exportInstallationList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n exportInfraList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n exportMatList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/matTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n getSotresList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/storeFilter`, data)\r\n }\r\n\r\n getInstallationList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/installationTable`, data)\r\n }\r\n\r\n getInfraList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/infraTable`, data)\r\n }\r\n\r\n getAssignTicket(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/assignTicket`, data)\r\n }\r\n getMatList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/matTable`, data)\r\n }\r\n \r\n updateTicketIssue(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/employeeTraning/updatecomment`, data)\r\n }\r\n\r\n getUserActiveList(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.userApiUrl}/list`, params)\r\n }\r\n \r\n getDataMismathList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data)\r\n }\r\n exportDataMismatchList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n\r\n getAllCounts(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/allCounts`, data)\r\n }\r\n getstoreMetrics(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/store-metrics`,data)\r\n }\r\n getstoreMetricsExport(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/store-metrics`,data,{responseType: 'arraybuffer'})\r\n }\r\n getclientList(){\r\n return this.http.get(`${this.auditApiUrl}/clients`)\r\n }\r\n getuserList(){\r\n return this.http.get(`${this.auditApiUrl}/tango-users`)\r\n }\r\n auditretrigger(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/re-trigger`,data)\r\n }\r\n getstoreList(data:any){\r\n return this.http.post(`${this.auditApiUrl}/audit-stores`,data)\r\n }\r\n getAuditImages(data:any){\r\n return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`)\r\n }\r\n ExportAuditImagesasxlsx(data:any){\r\n return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`,{responseType:'arraybuffer'})\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: \"lib-add-csm-modal\",\r\n templateUrl: \"./add-csm-modal.component.html\",\r\n styleUrl: \"./add-csm-modal.component.scss\",\r\n})\r\nexport class AddCsmModalComponent implements OnInit, OnDestroy {\r\n @Input() ticketId: any;\r\n csmUserList: any = [];\r\n csmSelectInput = new FormControl(\"\");\r\n private readonly destroy$ = new Subject();\r\n headerFilters: any;\r\n userList_req: {};\r\n users: any=[];\r\n userList: any=[];\r\n\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n public gs: GlobalStateService,\r\n private service: TicketService,\r\n private toast: ToastService\r\n ) {}\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.userList_req = {\r\n \"userType\": this.users.userType, \"isActive\": true\r\n // clientId: this.headerFilters.client,\r\n // limit: 10000,\r\n // offset: 1,\r\n // userType: this.users.userType,\r\n // FilterByStatus:'isActive'\r\n };\r\n this.getuserlist();\r\n }\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\r\n getuserlist() {\r\n this.service\r\n .getUserActiveList(this.userList_req)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n }\r\n });\r\n }\r\n\r\n assignCsm() {\r\n let obj = {\r\n tickets: this.ticketId,\r\n user: this.csmSelectInput.value,\r\n };\r\n this.service\r\n .getAssignTicket(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(res.message);\r\n this.activeModal.close(\"submit\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(err.error.error ? err.error.error : err.error);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n onCsmSelect(selectedCsm: any) {\r\n this.csmSelectInput.setValue(selectedCsm?._id);\r\n }\r\n cancel() {\r\n this.activeModal.close(\"submit\");\r\n }\r\n}\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M32 37V35C32 33.9391 31.5786 32.9217 30.8284 32.1716C30.0783 31.4214 29.0609 31 28 31H21C19.9391 31 18.9217 31.4214 18.1716 32.1716C17.4214 32.9217 17 33.9391 17 35V37M36 24V30M39 27H33M28.5 23C28.5 25.2091 26.7091 27 24.5 27C22.2909 27 20.5 25.2091 20.5 23C20.5 20.7909 22.2909 19 24.5 19C26.7091 19 28.5 20.7909 28.5 23Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Assign Ticket</a>\r\n <p class=\"text-sub\">Assign the ticket to a particular user</p>\r\n <div class=\"mt-5 w-100\">\r\n <!-- <lib-reactive-select [formControl]=\"csmSelectInput\" [idField]=\"'email'\" [nameField]=\"'userName'\" [data]=\"csmUserList\" ></lib-reactive-select> -->\r\n\r\n <!-- <select [formControl]=\"csmSelectInput\" class=\"form-select border-val my-3\">\r\n <option [value]=\"user.email\" *ngFor=\"let user of csmUserList\">{{user.userName}}</option>\r\n </select> -->\r\n\r\n <lib-select [items]=\"userList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'_id'\"\r\n (selected)=\"onCsmSelect($event)\" ></lib-select>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!csmSelectInput.value\" (click)=\"assignCsm()\">Submit</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'lib-comment-model',\r\n templateUrl: './comment-model.component.html',\r\n styleUrl: './comment-model.component.scss'\r\n})\r\nexport class CommentModelComponent {\r\n @Input() ticketId: any;\r\n comment:any= \"\"\r\n private readonly destroy$ = new Subject();\r\n constructor(private activeModal:NgbActiveModal, private service: TicketService,\r\n private toast: ToastService){\r\n\r\n }\r\n\r\n cancel(){\r\n this.activeModal.close();\r\n }\r\n commentSubmit(){\r\n if(this.comment == ''){\r\n return this.toast.getErrorToast(\"Please Enter Any comment\")\r\n }\r\n let obj = {\r\n \"ticketId\": this.ticketId,\r\n \"primary\": \"\",\r\n \"secondary\": [],\r\n \"comment\": this.comment,\r\n \r\n }\r\n this.service\r\n .updateTicketIssue(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(res.message);\r\n this.activeModal.close(\"submit\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(err.error.error ? err.error.error : err.error);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n \r\n}\r\n\r\n\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Comment</a>\r\n <p class=\"text-sub\">Add comment for the ticket</p>\r\n <div class=\"w-100\">\r\n <label class=\"label my-2\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"comment\" rows=\"4\" type=\"text\"></textarea>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\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\nconst ZIP_TYPE = 'application/zip'\r\nconst ZIP_EXTENSION = '.zip'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExcelService {\r\n\r\n \r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n console.log(buffer, fileName);\r\n \r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n private saveAsTemplate(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 public saveAsZipFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: ZIP_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'Images'+ ZIP_EXTENSION);\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { GlobalStateService } from \"tango-app-ui-global\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { AddCsmModalComponent } from \"../add-csm-modal/add-csm-modal.component\";\r\nimport { TicketService } from \"../../services/ticket.service\";\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { CommentModelComponent } from \"../comment-model/comment-model.component\";\r\n@Component({\r\n selector: \"lib-tickets\",\r\n templateUrl: \"./tickets.component.html\",\r\n styleUrl: \"./tickets.component.scss\",\r\n})\r\nexport class TicketsComponent implements OnInit, OnDestroy {\r\n type = \"Infra\";\r\n searchValue: any = \"\";\r\n selectedTab: any = \"total\";\r\n // paginationVariables\r\n itemsPerPage = 10;\r\n currentPage = 1;\r\n totalItems = 0;\r\n paginationSizes = [10, 20, 30];\r\n pageSize = 10;\r\n private readonly destroy$ = new Subject();\r\n assignTicket: boolean = false;\r\n filterByStores: any = [];\r\n filterByinstalled: any = [];\r\n filterByStatus: any = [];\r\n filterByQueryType: any = [];\r\n issueType: any = [];\r\n sortedColumn: string;\r\n sortDirection: number;\r\n headerFilters: any;\r\n userList_req: any;\r\n userList: any = [];\r\n dataObject: any=[];\r\n storeList: any = [];\r\n statusType: { text: string; id: string }[];\r\n typeName: string;\r\n users: any;\r\n limit: number = 10;\r\n offset: number = 1;\r\n sortBy: any = -1;\r\n sortColumName: any = \"\";\r\n listArray: any = [];\r\n tableListArray: any = [];\r\n loading: boolean = true;\r\n noData: boolean = false;\r\n selectAll: any = false;\r\n assignStores: any = [];\r\n issueTypeList: any=[];\r\n queryTypeList: any=[];\r\n \r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public gs: GlobalStateService,\r\n private modalService: NgbModal,\r\n private service: TicketService,\r\n private excelservice: ExcelService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.route?.queryParams\r\n ?.pipe(takeUntil(this.destroy$))\r\n .subscribe((params) => {\r\n this.type = params.type;\r\n this.filterByStores =[]; this.storeList=[]\r\n this.filterByinstalled=[]; this.statusType =[]\r\n this.filterByStatus =[]; this.userList=[];\r\n this.issueType=[]; this.issueTypeList =[]\r\n this.filterByQueryType =[]; this.queryTypeList=[];\r\n this.dataObject=[]\r\n this.gs.manageRefreshTrigger.next(true)\r\n this.getInitload();\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.userList_req = {\r\n limit: 10000,\r\n offset: 1,\r\n userType: this.users.userType,\r\n };\r\n this.getstoreFilter();\r\n }\r\n },\r\n });\r\n if (this.type === \"installation\") {\r\n this.typeName = \"Installed By\";\r\n this.statusType = [\r\n { text: \"Onboarded\", id: \"onboarded\" },\r\n { text: \"Paired\", id: \"paired\" },\r\n { text: \"Installationfailed\", id: \"installationfailed\" },\r\n { text: \"Deployed\", id: \"deployed\" },\r\n ];\r\n } else {\r\n this.typeName = \"Resloved By\";\r\n \r\n if (this.users.userType === \"tango\" && this.type ==='infra'){ \r\n this.statusType = [\r\n { text: \"Open\", id: \"open\" },\r\n { text: \"In Progress\", id: \"inprogress\" },\r\n { text: \"Refresh Ticket\", id: \"refreshticket\" },\r\n { text: \"Closed\", id: \"closed\" },\r\n ];\r\n }else{\r\n this.statusType = [\r\n { text: \"Open\", id: \"open\" },\r\n { text: \"In Progress\", id: \"inprogress\" },\r\n { text: \"Closed\", id: \"closed\" },\r\n ];\r\n }\r\n this.issueTypeList = [\r\n { text: \"High Count\", id: \"highcount\" },\r\n { text: \"Low Count\", id: \"lowcount\" },\r\n ];\r\n this.queryTypeList = [\r\n { text: \"Internal\", id: \"internal\" },\r\n { text: \"External\", id: \"external\" },\r\n ];\r\n }\r\n });\r\n }\r\n getInitload() {\r\n this.searchValue = \"\";\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.selectedTab = \"total\";\r\n this.loading = true;\r\n this.noData = false;\r\n this.sortedColumn='';\r\n }\r\n getstoreFilter() {\r\n this.service\r\n .getSotresList({ issueType: this.type,clientId:this.headerFilters.clients })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({ \r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.storeList = res?.data?.data;\r\n this.storeList.forEach((element: any) => {\r\n element.text = element.storeId;\r\n element.id = element.storeId;\r\n });\r\n if(this.users.userType === \"tango\"){\r\n this.getuserlist();\r\n } else {\r\n if(this.type ==='installation'){\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Deployed Status\", Issues: this.statusType },\r\n ];\r\n } else if(this.type ==='infra' || this.type ==='dataMismatch'){\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n ]; \r\n }else if(this.type ==='mat' ){\r\n this.dataObject = [\r\n { Description: \"Status\", Issues: this.statusType },\r\n ]; \r\n }\r\n }\r\n this.getTable();\r\n }else{\r\n this.getTable();\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n getuserlist() {\r\n this.service\r\n .getUserList(this.userList_req)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n this.userList?.forEach((element: any) => {\r\n element.text = element.userName;\r\n element.id = element.email;\r\n });\r\n }\r\n \r\n if (this.users.userType === \"tango\" && (this.type ==='installation')) {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Deployed Status\", Issues: this.statusType },\r\n { Description: this.typeName, Issues: this.userList },\r\n ];\r\n } else if (this.users.userType === \"tango\" && this.type ==='infra') {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n { Description: this.typeName, Issues: this.userList },\r\n ];\r\n } else if(this.users.userType === \"tango\" && this.type ==='dataMismatch'){\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Query Type\", Issues: this.queryTypeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n ];\r\n } else if(this.type ==='mat'){\r\n this.dataObject = [\r\n { Description: \"Status\", Issues: this.statusType },\r\n ];\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 searchData() {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit=10;\r\n this.getTable();\r\n }\r\n\r\n onSort(column: string) {\r\n if (this.sortedColumn === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getTable();\r\n }\r\n exportXLSX() {\r\n let obj: Record<string, any> = {\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n offset: this.offset,\r\n limit: this.limit,\r\n filterIssue: this.selectedTab ? this.selectedTab : \"\",\r\n searchValue: this.searchValue ? this.searchValue : \"\",\r\n export: true,\r\n };\r\n if (this.sortedColumn) {\r\n obj.sortColumName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n }\r\n if(this.type === \"installation\" || this.type === \"infra\"){\r\n if (this.filterByStores?.length) {\r\n obj.storeIdFilter = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByinstalled?.length) {\r\n obj.userFilter = this.filterByinstalled ? this.filterByinstalled : [];\r\n }\r\n }else if(this.type ===\"mat\"){\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n } else {\r\n if (this.filterByStores?.length) {\r\n obj.filterByStores = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.filterByStatus = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if(this.filterByQueryType?.length){\r\n obj.filterByQueryType = this.filterByQueryType ? this.filterByQueryType : [];\r\n }\r\n }\r\n if (this.type === \"installation\") {\r\n this.service\r\n .exportInstallationList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'Installation')\r\n\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"infra\") {\r\n this.service\r\n .exportInfraList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n \r\n this.excelservice.saveAsExcelFile(res, 'Infra')\r\n \r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"mat\") {\r\n this.service\r\n .exportMatList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n \r\n this.excelservice.saveAsExcelFile(res, 'Mat')\r\n \r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }else if(this.type==='dataMismatch'){\r\n this.service\r\n .exportDataMismatchList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'Data Mismatch')\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n selectedTabs(type: any) {\r\n if(this.type ==='dataMismatch'){\r\n this.selectedTab = type.name.replace(/\\s+/g, '').toLocaleLowerCase();\r\n this.getTable();\r\n this.transformName(type);\r\n \r\n } else {\r\n this.selectedTab = type.name;\r\n this.getTable();\r\n }\r\n }\r\n transformName(name: string): string {\r\n return name.toLocaleLowerCase().replace(/\\s+/g, '');\r\n \r\n }\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset);\r\n this.offset = Number(pageOffset);\r\n this.getTable();\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize);\r\n this.limit = Number(pageSize);\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.getTable();\r\n }\r\n selectAllStore(event: any) {\r\n this.selectAll = event.target.checked;\r\n this.tableListArray.forEach((obj: any) => (obj.checked = this.selectAll));\r\n // If all checkboxes are checked, assign all ticketIds to assignStores, otherwise clear assignStores\r\n this.assignStores = this.selectAll\r\n ? this.tableListArray.map((obj: any) => obj.ticketId)\r\n : [];\r\n this.assignTicket = this.selectAll; // Update assignTicket based on selectAll state\r\n }\r\n\r\n updateCheck(event: any, ticketId: any) {\r\n const ticket = this.tableListArray.find(\r\n (obj: any) => obj.ticketId === ticketId\r\n );\r\n\r\n if (ticket) {\r\n ticket.checked = event.target.checked;\r\n // If the checkbox is checked, add or remove the corresponding array from the selected arrays\r\n if (event.target.checked) {\r\n this.assignStores.push(ticketId);\r\n } else {\r\n const index = this.assignStores.indexOf(ticketId);\r\n if (index !== -1) {\r\n this.assignStores.splice(index, 1);\r\n }\r\n }\r\n // Update selectAll based on the current state of checkboxes\r\n this.selectAll = this.tableListArray.every((obj: any) => obj.checked);\r\n // Update assignTicket based on whether any individual ticket checkbox is checked\r\n this.assignTicket = this.tableListArray.some((obj: any) => obj.checked);\r\n }\r\n }\r\n\r\n addAssignTicket() {\r\n const modalRef = this.modalService.open(AddCsmModalComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop:\"static\"\r\n });\r\n modalRef.componentInstance.ticketId = this.assignStores;\r\n modalRef.result.then((result) => {\r\n if (result === \"submit\") {\r\n this.searchValue = \"\";\r\n this.assignStores = [];\r\n this.selectAll = false;\r\n this.assignTicket = false;\r\n this.getTable();\r\n }\r\n });\r\n }\r\n\r\n applyFilters(event: any) {\r\n if (event?.length) {\r\n event.forEach((element: any) => {\r\n if (element.Description === \"Store ID\") {\r\n this.filterByStores = element.Issues.map((val: any) => val?.id);\r\n }\r\n if(this.type !=='installation'){\r\n if (element.Description === \"Status\") {\r\n this.filterByStatus = element.Issues.map((val: any) => val?.id);\r\n }\r\n } if(this.type==='installation'){\r\n if (element.Description === \"Deployed Status\") {\r\n this.filterByStatus = element.Issues.map((val: any) => val?.id);\r\n }\r\n }\r\n if (this.users.userType === \"tango\" && (this.type ==='installation' || this.type==='infra')) {\r\n if (element.Description === this.typeName) {\r\n this.filterByinstalled = element.Issues.map((val: any) => val?.id);\r\n }\r\n } else {\r\n this.filterByinstalled = [];\r\n }\r\n if (element.Description === \"Query Type\") {\r\n this.filterByQueryType = element.Issues.map((val: any) => val?.id);\r\n }\r\n // if (element.Description === \"Issue Type\") {\r\n // this.issueType = element.Issues.map((val: any) => val?.id);\r\n // }\r\n });\r\n }\r\n\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit=10;\r\n this.getTable();\r\n }\r\n\r\n getTable() {\r\n this.loading = true;\r\n this.noData = false;\r\n let obj: Record<string, any> = {\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n offset: this.offset,\r\n limit: this.limit,\r\n filterIssue: this.selectedTab ? this.selectedTab : \"\",\r\n searchValue: this.searchValue ? this.searchValue : \"\",\r\n export: false,\r\n };\r\n if (this.sortedColumn) {\r\n if(this.type ==='dataMismatch'){\r\n obj.sortColumnName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n } else {\r\n obj.sortColumName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n }\r\n }\r\n if(this.type === \"installation\" || this.type === \"infra\"){\r\n if (this.filterByStores?.length) {\r\n obj.storeIdFilter = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByinstalled?.length) {\r\n obj.userFilter = this.filterByinstalled ? this.filterByinstalled : [];\r\n }\r\n } else if(this.type === \"mat\"){\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n } else {\r\n if (this.filterByStores?.length) {\r\n obj.filterByStores = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.filterByStatus = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if(this.filterByQueryType?.length){\r\n obj.filterByQueryType = this.filterByQueryType ? this.filterByQueryType : [];\r\n }\r\n }\r\n // console.log(obj)\r\n // return\r\n if (this.type === \"installation\") {\r\n this.service\r\n .getInstallationList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res.data.response;\r\n if(res.data.result.length ===0){\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res.data.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket =false;\r\n this.cd.detectChanges();\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"infra\") {\r\n this.service\r\n .getInfraList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res.data.response;\r\n if(res.data.result.length ===0){\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res.data.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket =false;\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"mat\") {\r\n this.service\r\n .getMatList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res?.data?.response;\r\n this.tableListArray = res?.data?.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n }); } else if(this.type==='dataMismatch'){\r\n this.service\r\n .getDataMismathList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res?.data?.response;\r\n if(res.data.result.length ===0){\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res?.data?.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket =false;\r\n this.cd.detectChanges();\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n }\r\n\r\n routeToStore(storeId: any, clientId: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/infra-ticket'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n routeToMat(storeId: any, clientId: any,clientName:any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/mat'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n commentModal(obj:any){\r\n const modalRef = this.modalService.open(CommentModelComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop:\"static\"\r\n });\r\n modalRef.componentInstance.ticketId = obj.ticketId;\r\n modalRef.result.then((result) => {\r\n })\r\n }\r\n\r\n tickets(type:any,clientId:any,storeId:any,clientName:any){\r\n if(type ==='mat'){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/mat'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n } else {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/infra-ticket'], { \r\n queryParams: { storeId: storeId,type:type }\r\n });\r\n}\r\n }\r\n\r\n clientTickets(clientId:any,storeId:any,clientName:any){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores']);\r\n }\r\n storeTickets(clientId:any,storeId:any,clientName:any){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/cameras'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n userTickets(clientId:any,storeId:any){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/users']);\r\n }\r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span *ngIf=\"type !=='dataMismatch' && type !== 'mat'\" class=\"card-label mb-2\">{{type | titlecase}}</span>\r\n <span *ngIf=\"type ==='dataMismatch'\" class=\"card-label mb-2\">Data Mismatch</span>\r\n <span *ngIf=\"type ==='mat'\" class=\"card-label mb-2\">Employee Mat</span>\r\n\r\n <!-- <span class=\"text-sub mb-2\">Last updated 1 hour ago</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"!assignTicket\" class=\"d-flex\">\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\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" 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\" placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchValue\" />\r\n <lib-filters *ngIf=\"users.userType === 'tango' && userList?.length || users.userType === 'client' && storeList?.length\" [dataObject]=\"dataObject\"\r\n (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <button type=\"button\" *ngIf=\"!noData&&!loading\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n 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\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"assignTicket\" class=\"d-flex\">\r\n <button type=\"button\" (click)=\"addAssignTicket()\"\r\n class=\"btn mx-2 btn-primary rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99984 4.1665V15.8332M4.1665 9.99984H15.8332\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Assign Ticket</span>\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n\r\n\r\n <ul *ngIf=\"!loading && listArray?.length && type !== 'mat' && type !== 'dataMismatch'\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" *ngFor=\"let obj of listArray.slice().reverse()\" (click)=\"selectedTabs(obj)\">\r\n <a [ngClass]=\"{'active': selectedTab === obj.name}\" class=\"nav-link cursor-pointer no-border me-2\">\r\n {{obj.name | titlecase}} <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === obj.name ? 'text-border-priamry' : 'text-border'\">{{obj.count}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <ul *ngIf=\"!loading && listArray?.length && type === 'dataMismatch'\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" *ngFor=\"let obj of listArray.slice().reverse()\" (click)=\"selectedTabs(obj)\">\r\n <a [ngClass]=\"selectedTab === transformName(obj.name) ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n {{obj.name | titlecase}} <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === transformName(obj.name) ? 'text-border-priamry' : 'text-border'\">{{obj.count}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"loading\" class=\"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 *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive mt-5\">\r\n <table class=\"table bottom-border text-nowrap \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" >\r\n \r\n <input *ngIf=\"this.users.userType ==='tango'\"\r\n class=\"form-check-input cursor-pointer me-4\" type=\"checkbox\" [(ngModel)]=\"selectAll\"\r\n (click)=\"selectAllStore($event)\"> <span class=\"cursor-pointer\" (click)=\"onSort('ticketId')\"> Ticket ID <svg\r\n [ngClass]=\"sortedColumn === 'ticketId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'ticketId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> \r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type !=='dataMismatch'\" (click)=\"onSort('issueDate')\"> Created Date\r\n <svg [ngClass]=\"sortedColumn === 'issueDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type =='infra'\" (click)=\"onSort('createdAt')\"> Created Time\r\n <svg [ngClass]=\"sortedColumn === 'createdAt' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type =='infra'\" (click)=\"onSort('issueClosedDate')\"> Closed Time\r\n <svg [ngClass]=\"sortedColumn === 'issueClosedDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueClosedDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('createdAt')\"> Created Date\r\n <svg [ngClass]=\"sortedColumn === 'createdAt' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" ><span (click)=\"onSort('issueDate')\">Issue Date\r\n <svg [ngClass]=\"sortedColumn === 'issueDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"cursor-pointer\" (click)=\"onSort('clientName')\">Brand Name<svg\r\n [ngClass]=\"sortedColumn === 'clientName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"cursor-pointer\" (click)=\"onSort('clientId')\">Brand ID<svg\r\n [ngClass]=\"sortedColumn === 'clientId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'clientId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Name<svg\r\n [ngClass]=\"sortedColumn === 'storeName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeId')\">Store ID<svg\r\n [ngClass]=\"sortedColumn === 'storeId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"this.users.userType ==='tango' && (type ==='infra'||type ==='dataMismatch'||type ==='mat')\" (click)=\"onSort('userName')\">Resloved By<svg [ngClass]=\"sortedColumn === 'userName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'userName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"this.users.userType ==='tango' && type ==='installation'\" (click)=\"onSort('userName')\">Installed By<svg [ngClass]=\"sortedColumn === 'userName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'userName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('issueType')\">Issue Type\r\n <svg [ngClass]=\"sortedColumn === 'issueType' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueType' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('type')\">Query Type\r\n <svg [ngClass]=\"sortedColumn === 'type' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'type' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('reportedFootfall')\">Reported Footfall\r\n <svg [ngClass]=\"sortedColumn === 'reportedFootfall' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'reportedFootfall' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('mappedCount')\">Unique Images\r\n <svg [ngClass]=\"sortedColumn === 'mappedCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'mappedCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('successPercentage')\">Success Percentage\r\n <svg [ngClass]=\"sortedColumn === 'successPercentage' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'successPercentage' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='installation'\" (click)=\"onSort('status')\">Deployed Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type ==='dataMismatch' ||type ==='mat'|| type ==='infra'\" class=\"cursor-pointer\" (click)=\"onSort('status')\">Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type !== 'mat' && type !== 'dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('primaryIssue')\">Primary Issues<svg\r\n [ngClass]=\"sortedColumn === 'primaryIssue' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'primaryIssue' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type !== 'mat' && type !== 'dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('secondaryIssue')\">Secondary Issues<svg\r\n [ngClass]=\"sortedColumn === 'secondaryIssue' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'secondaryIssue' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type!=='installation'\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of tableListArray\">\r\n <td>\r\n <input *ngIf=\"this.users.userType ==='tango'\" class=\"form-check-input cursor-pointer me-4 mt-3\" type=\"checkbox\" [(ngModel)]=\"obj.checked\"\r\n (change)=\"updateCheck($event,obj?.ticketId)\">\r\n <span *ngIf=\"type === 'dataMismatch' || type === 'mat' || type === 'infra'\"\r\n class=\"txt-light-primary cursor-pointer\" (click)=\"tickets(type,obj.clientId,obj.storeId,obj.clientName)\">\r\n {{obj.ticketId}}\r\n </span>\r\n <span *ngIf=\"type === 'installation'\">\r\n {{obj.ticketId}}\r\n </span>\r\n </td>\r\n <td *ngIf=\"type === 'dataMismatch'\">\r\n {{obj?.createdAt |\r\n date: 'dd MMM, yyyy'}}</td>\r\n <td *ngIf=\"type === 'dataMismatch'\">\r\n {{obj?.issueDate |\r\n date: 'dd MMM, yyyy'}}</td>\r\n <td *ngIf=\"type !== 'dataMismatch'\">\r\n {{obj?.createdAt |\r\n date: 'dd MMM, yyyy'}}\r\n </td>\r\n <td *ngIf=\"type == 'infra'\">\r\n {{obj?.createdAt |\r\n date: 'hh:mm a' | uppercase}}\r\n </td>\r\n <td *ngIf=\"type == 'infra'\">\r\n {{obj?.issueClosedDate?(obj?.issueClosedDate |\r\n date: 'hh:mm a' | uppercase):\"--\"}}\r\n </td>\r\n <td *ngIf=\"this.users.userType ==='tango'\">\r\n <div class=\"table-title cursor-pointer\" (click)=\"clientTickets(obj.clientId,obj.storeId,obj.clientName)\">\r\n <span class=\"txt-light-primary\">\r\n {{obj.clientName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"this.users.userType ==='tango'\">{{obj.clientId}}\r\n </td>\r\n <td>\r\n <div class=\"table-title cursor-pointer\" (click)=\"storeTickets(obj.clientId,obj.storeId,obj.clientName)\">\r\n <span class=\"txt-light-primary\">\r\n {{obj.storeName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td>{{obj.storeId}}\r\n </td>\r\n \r\n <td *ngIf=\"this.users.userType ==='tango'\">\r\n <div class=\"table-title cursor-pointer\" >\r\n <span >\r\n {{obj.userName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"type ==='dataMismatch' && obj.issueType ==='lowcount'\" >Low Count</td>\r\n <td *ngIf=\"type ==='dataMismatch' && obj.issueType ==='highcount'\">High Count</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.type ? obj?.type:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.reportedFootfall ? obj?.reportedFootfall:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.mappedCount ? obj?.mappedCount:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.successPercentage ? obj?.successPercentage:'--'}}</td>\r\n <td *ngIf=\"type==='installation'\">\r\n <span *ngIf=\"obj.installationStatus ==='paired' || obj.installationStatus ==='onboarded'\"\r\n class=\"badge badge-light-primary mx-4\">{{obj.installationStatus | titlecase}}</span>\r\n <span *ngIf=\"obj.installationStatus ==='live'\" class=\"badge badge-light-success mx-4\">Live</span>\r\n <span *ngIf=\"obj.installationStatus ==='installationfailed'\"\r\n class=\"badge badge-light-warning mx-4\">Installationfailed</span>\r\n <span *ngIf=\"obj.installationStatus ==='deployed'\"\r\n class=\"badge badge-light-success mx-4 text-capitalize\">deployed</span>\r\n </td>\r\n <td *ngIf=\"type==='infra' || type==='mat' || type==='dataMismatch'\">\r\n <span *ngIf=\"obj.status ==='open'\" class=\"badge badge-light-danger\">Open</span>\r\n <span *ngIf=\"obj.status ==='closed'\" class=\"badge badge-light-success\">Closed</span>\r\n <span *ngIf=\"obj.status ==='inprogress'\" class=\"badge badge-light-primary\">In\r\n Progress</span>\r\n </td>\r\n <td *ngIf=\"type==='installation' || type==='infra'\">\r\n <div>\r\n <span *ngIf=\"obj.primaryIssue !=='-'\">{{obj.primaryIssue ? obj.primaryIssue :'Issue not identified'}}</span>\r\n <span *ngIf=\"obj.primaryIssue ==='-'\">Issue not identified</span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"type==='installation' || type==='infra'\">\r\n <span *ngIf=\"obj.secondaryIssue\">{{obj.secondaryIssue}}</span>\r\n </td>\r\n <td *ngIf=\"type==='infra' || type ==='dataMismatch'\">\r\n <span class=\"mx-2 cursor-pointer\" *ngIf=\"this.users.userType ==='tango'\" (click)=\"commentModal(obj)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M17.6431 12.5C17.6431 12.942 17.4675 13.366 17.1549 13.6785C16.8423 13.9911 16.4184 14.1667 15.9764 14.1667H5.9764L2.64307 17.5V4.16667C2.64307 3.72464 2.81866 3.30072 3.13122 2.98816C3.44378 2.67559 3.86771 2.5 4.30973 2.5H15.9764C16.4184 2.5 16.8423 2.67559 17.1549 2.98816C17.4675 3.30072 17.6431 3.72464 17.6431 4.16667V12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"mx-2 cursor-pointer\" (click)=\"tickets(type,obj.clientId,obj.storeId,obj.clientName)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10640_18061)\">\r\n <path\r\n d=\"M0.976562 10C0.976562 10 4.3099 3.33337 10.1432 3.33337C15.9766 3.33337 19.3099 10 19.3099 10C19.3099 10 15.9766 16.6667 10.1432 16.6667C4.3099 16.6667 0.976562 10 0.976562 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.1432 12.5C11.5239 12.5 12.6432 11.3808 12.6432 10C12.6432 8.61933 11.5239 7.50004 10.1432 7.50004C8.76252 7.50004 7.64323 8.61933 7.64323 10C7.64323 11.3808 8.76252 12.5 10.1432 12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10640_18061\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.143066)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </td>\r\n <td *ngIf=\"type === 'mat'\">\r\n <span class=\"mx-2 cursor-pointer\" (click)=\"routeToMat(obj.storeId,obj.clientId,obj.clientName)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10640_18061)\">\r\n <path\r\n d=\"M0.976562 10C0.976562 10 4.3099 3.33337 10.1432 3.33337C15.9766 3.33337 19.3099 10 19.3099 10C19.3099 10 15.9766 16.6667 10.1432 16.6667C4.3099 16.6667 0.976562 10 0.976562 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.1432 12.5C11.5239 12.5 12.6432 11.3808 12.6432 10C12.6432 8.61933 11.5239 7.50004 10.1432 7.50004C8.76252 7.50004 7.64323 8.61933 7.64323 10C7.64323 11.3808 8.76252 12.5 10.1432 12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10640_18061\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.143066)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span> \r\n \r\n </td>\r\n \r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>","import { Component,HostListener, OnDestroy, OnInit,Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { takeUntil, Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-retrigger',\r\n templateUrl: './re-trigger.component.html',\r\n styleUrl: './re-trigger.component.scss'\r\n})\r\nexport class ReTriggerComponent implements OnInit,OnDestroy {\r\n\r\n dropDown: boolean = false;\r\n loading:boolean = true;\r\n noData:boolean = false;\r\n dropdownItems:any[] = [];\r\n selectedItem: any = 'Audit';\r\n selectedData:any = 'To Queue';\r\n standardData:any = ['To Queue','To User']\r\n Comment:any = '';\r\n userId:any = '';\r\n private readonly destroy$ = new Subject();\r\n @Input() reTrigerData:any;\r\n userList: any = [];\r\n\r\n constructor(public activeModal:NgbActiveModal,private service:TicketService){\r\n\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const\r\n target = event.target as HTMLElement;\r\n if (!target.closest('.dropDown')) {\r\n this.dropDown = false;\r\n }\r\n }\r\n\r\nngOnInit(){\r\n if(this.reTrigerData?.data?.auditType ==='ReAudit'){\r\n this.dropdownItems = ['Audit','ReAudit']\r\n }else if(this.reTrigerData?.data?.auditType ==='Audit'){\r\n this.dropdownItems = ['Audit']\r\n }\r\n this.getuserList();\r\n}\r\n\r\ngetuserList(){\r\n this.service.getuserList().subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n }\r\n },\r\n })\r\n}\r\n\r\nngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n}\r\n\r\nselectRadio(value:any){\r\n this.selectedData = value;\r\n}\r\n\r\nopenDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n}\r\n\r\nselectItem(value: any) {\r\n this.selectedItem = value;\r\n this.dropDown = false;\r\n}\r\n\r\nonReportSelect(event:any){\r\n this.userId = event;\r\n}\r\n\r\ncloseModal(){\r\n let data:any = {\r\n fileDate: this.reTrigerData?.data?.fileDate,\r\n storeId: this.reTrigerData?.data?.storeId,\r\n auditType: this.selectedItem,\r\n zoneName : this.reTrigerData?.data?.zoneName,\r\n triggerType: this.selectedData === 'To Queue' ? 'queue' : 'user',\r\n totalCount: this.selectedItem ==='Audit' ? this.reTrigerData?.data?.beforeCount : this.reTrigerData?.data?.afterCount,\r\n comments: this.Comment,\r\n moduleType : this.reTrigerData?.data?.moduleType\r\n }\r\n this.selectedData === 'To User' ? data.userId = this.userId.userId : ''\r\n this.activeModal.close(data);\r\n}\r\n\r\n}\r\n","<div class=\"card\">\r\n \r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"card-title\">Re-trigger File</div>\r\n <div class=\"text-sub\">Re-trigger the file to a queue or other users</div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"\">\r\n <label class=\"label\">Push Form</label>\r\n <div class=\"position-relative w-100 mt-3 mb-5\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedItem}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedItem === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 cursor-pointer d-flex mb-5\">\r\n <div *ngFor=\"let data of standardData\" (click)=\"selectRadio(data)\" class=\"d-flex align-items-center me-20\">\r\n <input [checked]=\"selectedData === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-3 standard\">{{data}}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedData === 'To User'\" class=\"w-100 mb-5\">\r\n <label for=\"infraDownTime\" class=\"label mb-3\">Select User<span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"userList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'userId'\"\r\n (selected)=\"onReportSelect($event)\" [selectedValues]=\"[userId]\"></lib-select>\r\n </div>\r\n <div>\r\n <label class=\"label mb-3\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"Comment\"></textarea>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"activeModal.dismiss()\">Cancel</button>\r\n <button *ngIf=\"selectedData === 'To User'\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"!userId || !Comment\" (click)=\"closeModal()\">Submit</button>\r\n <button *ngIf=\"selectedData === 'To Queue'\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"!Comment\" (click)=\"closeModal()\">Submit</button>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-count',\r\n templateUrl: './count.component.html',\r\n styleUrl: './count.component.scss'\r\n})\r\nexport class CountComponent implements OnInit,OnDestroy {\r\n\r\n private readonly destroy$ = new Subject();\r\n @Input() data:any;\r\n loading:any = true;\r\n noData:any=false;\r\n auditImages:any;\r\n \r\n constructor(private Service:TicketService,private toast:ToastService,private excel : ExcelService,private cd: ChangeDetectorRef){}\r\n ngOnInit(){\r\n this.getAuditImages();\r\n }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n getAuditImages(){\r\n let params:any = {\r\n fileDate: this.data?.fileDate,\r\n storeId:this.data?.storeId,\r\n imageType:this.data?.imageType,\r\n export : false,\r\n moduleType : this.data?.selectedType,\r\n zoneName: this.data?.zoneName\r\n }\r\n this.Service.getAuditImages(params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res?.code === 200){\r\n this.auditImages = res?.data?.result;\r\n this.loading = false;\r\n this.noData = false;\r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error:(err:any)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n })\r\n \r\n }\r\n \r\n exportTable(){\r\n let params:any = {\r\n fileDate: this.data?.fileDate,\r\n storeId:this.data?.storeId,\r\n imageType:this.data?.imageType,\r\n export : true,\r\n moduleType: this.data?.selectedType,\r\n zoneName: this.data?.zoneName\r\n }\r\n let type = this.data?.type === 'before' ? 'BeforeCount' : 'AfterCount'\r\n this.Service.ExportAuditImagesasxlsx(params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res){\r\n this.excel.saveAsZipFile(res,type)\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.toast.getErrorToast(err?.error)\r\n },\r\n })\r\n \r\n }\r\n \r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title d-grid\">\r\n <div *ngIf=\"data?.type\" class=\"card-label\">{{data?.type | titlecase}} Count - {{data?.storeId}}</div>\r\n <div class=\"text-sub\">{{data?.fileDate | customDateFormat}}</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button *ngIf=\"!noData\" type=\"button\" (click)=\"exportTable()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><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>\r\n <span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let images of auditImages;let i=index\" style=\"padding: 10px;\">\r\n <img class=\"mx-3 my-3 img\" [src]=\"images?.imgPath\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{images?.imgName}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"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 </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\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 </ng-container>\r\n</div>\r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\nimport { ReTriggerComponent } from '../re-trigger/re-trigger.component';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { CountComponent } from '../count/count.component';\r\n\r\n\r\n@Component({\r\n selector: 'lib-audit-metrics',\r\n templateUrl: './audit-metrics.component.html',\r\n styleUrl: './audit-metrics.component.scss'\r\n})\r\nexport class AuditMetricsComponent implements OnInit,OnDestroy {\r\n noData:boolean = false;\r\n loading:boolean = true;\r\n\r\n storesData:any = [];\r\n activity:any = [\r\n {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'},\r\n {type:'Re-Audit',FileDate:'28-10-2023',Time:'03:24 pm',beforeCout:'350',AfterCount:'120'},\r\n {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'}\r\n ]\r\n @ViewChild('activitylog') activitylog:any;\r\n private readonly destroy$ = new Subject();\r\n headerFilter: any;\r\n sortColumName: any = '';\r\n sortBy: any = 1;\r\n filterByClient: any = [];\r\n filterByStatus: any = [];\r\n pagination: any = [10, 20, 30];\r\n searchTerm: any;\r\n limit:any = 10;\r\n offset:any = 1;\r\n selectedValue: string;\r\n dayjs = dayjs;\r\n filterByStore: any = [];\r\n totalCount: any; \r\n selectedTab:any = '';\r\n\r\n dataObject:any = [\r\n { Description: 'Module Type',type:'single', Issues: [{id:'traffic', text: \"Traffic\"},{id:'zone', text: \"Zone\" }]},\r\n { Description: 'Clients', Issues: [] },\r\n { Description: 'Status', Issues: [{id:'closed', text: \"Completed\" }, {id:'inprogress', text: \"Inprogress\" },{id:'drafted', text: \"Draft\" },{id:'assigned', text: \"Assigned\" },{id:'not_assign', text: \"Not Assigened\" },{id:'skipped', text: \"Skip\"},] }\r\n ];\r\n \r\n clientList: any;\r\n selectedType: any = 'traffic';\r\n\r\n constructor(private gs:GlobalStateService,private modalService:NgbModal,private service: TicketService,private toast:ToastService,private excel:ExcelService){\r\n \r\n }\r\n\r\n ngOnInit(){\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if(data!=null){\r\n this.headerFilter = data\r\n this.metricsList();\r\n }\r\n })\r\n }\r\n\r\n metricsList(){\r\n let data:any = {\r\n fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),\r\n toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),\r\n filterByClientId : this.filterByClient,\r\n filterByStoreId : this.filterByStore,\r\n filterByStatus : this.filterByStatus,\r\n filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],\r\n filterByModuleType: [this.selectedType],\r\n searchValue: this.searchTerm,\r\n sortBy: this.sortBy,\r\n limit: this.limit,\r\n offset: this.offset,\r\n isExport: false\r\n };\r\n if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}\r\n this.getclientList();\r\n this.service.getstoreMetrics(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res && res?.code === 200){\r\n this.storesData = res?.data?.result;\r\n this.totalCount = res?.data?.count;\r\n if(!this.storesData?.length){\r\n this.noData = true;\r\n }\r\n if(this.totalCount < 10){\r\n this.pagination = [this.totalCount]\r\n }else{\r\n this.pagination = [10, 20, 30]\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n}\r\n\r\nsetItemsperPage(){\r\n if(this.totalCount < 10){\r\n return this.totalCount;\r\n }else{\r\n return this.limit;\r\n }\r\n}\r\n\r\ngetclientList(){\r\n this.service.getclientList().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res && res?.code ===200){\r\n this.clientList = res?.data?.result;\r\n const issues = this.clientList.map((obj: any) => ({ text: obj.clientName,id:obj.clientId }));\r\n const uniqueIssues:any[] = [];\r\n const Clients = new Set();\r\n issues.forEach((issue:any) => {\r\n if (!Clients.has(issue.text)) {\r\n Clients.add(issue.text);\r\n uniqueIssues.push(issue);\r\n }\r\n });\r\n const filtredObject = (this.dataObject.find((obj: any) => obj.Description === \"Clients\"))\r\n filtredObject.Issues = uniqueIssues;\r\n }\r\n },\r\n error:(err:any) => {\r\n \r\n },\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\r\n receiveData(data:any) {\r\n this.filterByClient = data.find((obj:any) => obj.Description === \"Clients\")?.Issues.map((item: any) => item?.id);\r\n this.filterByStatus = data.find((obj:any) => obj.Description === \"Status\")?.Issues?.map((item: any) => item?.id);\r\n this.selectedType = data.find((obj:any) => obj.Description ==='Module Type')?.Issues?.id;\r\n this.metricsList();\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.pagination.offset = pageOffset;\r\n this.metricsList();\r\n }\r\n \r\n onPageSizeChange(pageSize: any) {\r\n this.pagination.limit = pageSize;\r\n this.pagination.offset = 1;\r\n this.metricsList();\r\n }\r\n\r\n exportXLSX(){\r\n let data:any = {\r\n fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),\r\n toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),\r\n filterByClientId : this.filterByClient,\r\n filterByStoreId : this.filterByStore,\r\n filterByStatus : this.filterByStatus,\r\n filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],\r\n filterByModuleType: [this.selectedType],\r\n searchValue: this.searchTerm,\r\n sortBy: this.sortBy,\r\n limit: 10000,\r\n offset: this.offset,\r\n isExport: true\r\n };\r\n if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}\r\n this.service.getstoreMetricsExport(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res){\r\n this.excel.saveAsExcelFile(res,'AuditMetrics')\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n }\r\n\r\n selectedTabs(data:any){\r\n if(data === 'all'){\r\n this.selectedTab = '';\r\n }else{\r\n this.selectedTab = data;\r\n }\r\n this.limit = 10;\r\n this.offset = 1;\r\n this.metricsList();\r\n }\r\n\r\n searchData(){\r\n this.searchTerm = this.searchTerm;\r\n this.metricsList();\r\n }\r\n\r\n openBeforecount(value:any) {\r\n const modalRef = this.modalService.open(CountComponent,{\r\n centered:true,\r\n size:'xl'\r\n })\r\n modalRef.componentInstance.data ={\r\n type : 'before',\r\n fileDate:value?.fileDate,\r\n storeId: value?.storeId,\r\n selectedType: this.selectedType,\r\n zoneName:value?.zoneName,\r\n imageType: 'BC'\r\n }\r\n}\r\nopenAftercount(value:any){\r\n const modalRef = this.modalService.open(CountComponent,{\r\n centered:true,\r\n size:'xl'\r\n })\r\nmodalRef.componentInstance.data ={\r\n type : 'after',\r\n fileDate:value?.fileDate,\r\n storeId: value?.storeId,\r\n selectedType: this.selectedType,\r\n zoneName:value?.zoneName,\r\n imageType: 'AC'\r\n}\r\n}\r\n\r\nopenView(){\r\n const modalRef = this.modalService.open(this.activitylog)\r\n}\r\n\r\nopenreTrigger(value:any){\r\n const modalRef = this.modalService.open(ReTriggerComponent,{\r\n centered:true,\r\n // size:''\r\n })\r\n modalRef.componentInstance.reTrigerData ={\r\n type : 'after',\r\n data: value,\r\n selectedType : this.selectedType\r\n }\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res) {\r\n this.service.auditretrigger(res).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code === 200){\r\n this.toast.getSuccessToast(res?.data?.result);\r\n this.metricsList();\r\n } \r\n },\r\n error:(err:any)=> {\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n }\r\n } )\r\n}\r\n\r\nstatusBadge(value:any){\r\n let AccountStatus = value;\r\n if(AccountStatus === 'closed'){\r\n return 'badge-light-success'\r\n }else if(AccountStatus === 'assigned' || AccountStatus === 'not Assigned'){\r\n return 'badge-light-warning'\r\n }else{\r\n return 'badge-light-primary'\r\n }\r\n}\r\n\r\nsortData(value:any){\r\n this.sortColumName = value\r\n this.sortBy *= -1;\r\n this.metricsList();\r\n}\r\n\r\n\r\n}","<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Audit Metrics</span>\r\n <!-- <span class=\"text-sub mb-2\">Last updated 1 hour ago</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\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\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" 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\" placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchTerm\" />\r\n \r\n <lib-filters *ngIf=\"clientList\" [dataObject]=\"dataObject\" (appliedFilters)=\"receiveData($event)\"></lib-filters>\r\n\r\n <button type=\"button\" *ngIf=\"!noData&&!loading\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n 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\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" (click)=\"selectedTabs('all')\">\r\n <a [ngClass]=\"selectedTab === '' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n All <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === '' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.totalauditCount ? totalCount?.totalauditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTabs('Audit')\">\r\n <a [ngClass]=\"selectedTab === 'Audit' ? 'active' :''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n Audit <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === 'Audit' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.auditCount ? totalCount?.auditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTabs('ReAudit')\">\r\n <a [ngClass]=\"selectedTab === 'ReAudit' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n Re Audit <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === 'ReAudit' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.reauditCount ? totalCount?.reauditCount : 0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-5\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>File Date</th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('storeName')\">\r\n Store Name\r\n <span\r\n *ngIf=\"sortColumName === 'storeName' && sortBy !== 1 || sortColumName !== 'storeName'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'storeName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('storeId')\">\r\n Store Id\r\n <span\r\n *ngIf=\"sortColumName === 'storeId' && sortBy !== 1 || sortColumName !== 'storeId'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'storeId' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('userName')\">\r\n User Name\r\n <span\r\n *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('userEmail')\">\r\n User Email\r\n <span\r\n *ngIf=\"sortColumName === 'userEmail' && sortBy !== 1 || sortColumName !== 'userEmail'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'userEmail' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th>BC</th>\r\n <th>AC</th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('accuracy')\">\r\n Accuracy\r\n <span\r\n *ngIf=\"sortColumName === 'accuracy' && sortBy !== 1 || sortColumName !== 'accuracy'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'accuracy' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('timeSpent')\">\r\n TimeSpent\r\n <span\r\n *ngIf=\"sortColumName === 'timeSpent' && sortBy !== 1 || sortColumName !== 'timeSpent'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'timeSpent' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th>Audit Type</th>\r\n <th>Status</th>\r\n <th><span>Actions</span></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of storesData\">\r\n <td>\r\n <div>{{ item?.fileDate ? item?.fileDate :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.storeName ? item?.storeName :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{item?.storeId ? item?.storeId : 'NA'}}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.userName ? item?.userName :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.userEmail ? item?.userEmail :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"item?.beforeCount ? 'text-decoration-underline':''\" class=\"text-title text-primary cursor-pointer mb-1\" (click)=\"openBeforecount(item)\">\r\n {{ item?.beforeCount ?? '--' }}</div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"item?.afterCount ? 'text-decoration-underline':''\" class=\"text-title text-primary cursor-pointer mb-1\" (click)=\"openAftercount(item)\">\r\n {{ item?.afterCount ?? '--' }}</div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.accuracy ?? '--' }}</div>\r\n </td>\r\n <td>{{ item?.timeSpent ? item?.timeSpent :'NA'}}</td>\r\n <td><span *ngIf=\"item?.auditType\" [ngClass]=\"item?.auditType === 'Audit' ? 'badge-light-success':'badge-light-warning'\" class=\"badge\">{{ item?.auditType }}</span></td>\r\n <td><span *ngIf=\"item?.status\" [ngClass]=\"statusBadge(item?.status)\" class=\"badge\">{{ item?.status | titlecase}}</span></td>\r\n <td><button class=\"btn btn-default btn-outline\" (click)=\"openView()\">View-Log</button>\r\n <button class=\"btn btn-default btn-outline ms-3\" [disabled]=\"item?.status === 'not_assign' || item?.status === 'assigned'\" (click)=\"openreTrigger(item)\">Re-Trigger</button></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"pagination\" [pageSize]=\"setItemsperPage()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n\r\n <div *ngIf=\"loading\" class=\"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 *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\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\r\n </div>\r\n</div>\r\n\r\n<ng-template #activitylog let-modal>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">Activity Log</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"cursor-pointer\" (click)=\"modal.dismiss()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div> \r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngFor=\"let log of activity\" class=\"d-flex mb-5 ms-5\">\r\n <div\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <!-- <img class=\"msgprofile\"\r\n src=\"./assets/tango/Images/userProfile.svg\"> -->\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span [ngClass]=\"log?.type === 'Audit' ? 'badge-light-success' : 'badge-light-primary'\" class=\"symbol-label badge-light-primary text-symbol\">\r\n <span [ngClass]=\"log?.type === 'Audit' ? 'text-success badge badge-light-success' : 'text-primary badge badge-light-primary'\" class=\"fs-4 fw-normal\">\r\n {{log?.type?.slice(0,1) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"p-0 h-100 mt-1 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"activity-title fw-semibold mt-2 d-flex mb-4\">\r\n <span>{{log?.type}} </span><span class=\"ms-5 list\"><li>Fasila</li></span>\r\n </div>\r\n <div class=\"date-time mb-4\">\r\n {{log?.FileDate}} | {{log?.Time}}\r\n </div>\r\n <div class=\"\"><span class=\"badge badge-light-default fw-semibold\">Before Count : {{log?.beforeCout}}</span>\r\n <span class=\"badge badge-light-default fw-semibold ms-3\">After Count : {{log?.AfterCount}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TicketService } from '../../services/ticket.service';\r\n@Component({\r\n selector: 'lib-tango-manage-tickets',\r\n templateUrl: './tango-manage-tickets.component.html',\r\n styleUrl: './tango-manage-tickets.component.scss'\r\n})\r\nexport class TangoManageTicketsComponent implements OnInit,OnDestroy {\r\n SelectedTab:any='installation'\r\n private readonly destroy$ = new Subject();\r\n headerFilters: any;\r\n ticketAllCount: any;\r\n users: any;\r\n constructor(private pageInfo:PageInfoService,private route: ActivatedRoute,private router:Router,public gs:GlobalStateService,private service:TicketService){\r\n }\r\n\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.route?.queryParams?.pipe(takeUntil(this.destroy$)).subscribe(params => {\r\n if (params.hasOwnProperty('type')) {\r\n const type = params['type'];\r\n this.Selectedtabs(type);\r\n \r\n } else{\r\n this.updateStoreIdQueryParam()\r\n }\r\n });\r\n this.onLoad(); \r\n this.setPageData();\r\n }\r\n\r\n updateStoreIdQueryParam() {\r\n const queryParams = { ...this.route?.snapshot?.queryParams };\r\n // Update storeId in queryParams\r\n queryParams.type = this.SelectedTab.toLocaleLowerCase();\r\n // Navigate to the same route with updated queryParams\r\n this.router.navigate([], { queryParams: queryParams, queryParamsHandling: 'merge' });\r\n }\r\n\r\n setPageData(){\r\n this.pageInfo.setTitle('Tickets')\r\n this.pageInfo.setDescription('Summary of queries raised,addresed & resolved')\r\n let breadcrumbs : any[]=[];\r\n if (this.gs.userAccess.value?.userType === \"tango\") {\r\n breadcrumbs= [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n } else if (this.gs.userAccess.value?.userType === \"client\") {\r\n breadcrumbs= [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n }\r\n this.pageInfo.setBreadcrumbs(breadcrumbs);\r\n }\r\n\r\n \r\n Selectedtabs(value:any){\r\n this.SelectedTab = value;\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\nonLoad(){\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.getAllCount();\r\n }\r\n }\r\n })\r\n}\r\n\r\ngetAllCount(){\r\n let obj ={\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate\r\n }\r\n this.service.getAllCounts(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (res: any) => {\r\n if(res.code ===200){\r\n this.ticketAllCount = res?.data[0];\r\n }\r\n }\r\n })\r\n}\r\n\r\n}\r\n","<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\">\r\n <a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'installation' }\" (click)=\"Selectedtabs('installation')\"\r\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Installation<span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount?ticketAllCount?.installationCount:0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" >\r\n <a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'infra' }\" (click)=\"Selectedtabs('infra')\"\r\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount?ticketAllCount?.infraCount:0}}</span>\r\n </a>\r\n </li> \r\n <li class=\"nav-item\" [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'dataMismatch' }\" (click)=\"Selectedtabs('dataMismatch')\">\r\n <a [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span></a>\r\n </li>\r\n <!-- <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'audit' }\" (click)=\"Selectedtabs('audit')\"><a [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Audit</a>\r\n </li> -->\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'mat' }\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\r\n <span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount ?ticketAllCount?.matCount:0}}</span></a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<lib-tickets *ngIf=\"SelectedTab !=='audit'\"></lib-tickets>\r\n<lib-audit-metrics *ngIf=\"SelectedTab ==='audit'\"></lib-audit-metrics>\r\n<router-outlet></router-outlet>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageTicketsComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageTicketsRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-audit-log',\r\n templateUrl: './audit-log.component.html',\r\n styleUrl: './audit-log.component.scss'\r\n})\r\nexport class AuditLogComponent {\r\n\r\n}\r\n","<p>audit-log works!</p>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoManageTicketsRoutingModule } from './tango-manage-tickets-routing.module';\r\nimport { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';\r\nimport { TicketsComponent } from './components/tickets/tickets.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { AddCsmModalComponent } from './components/add-csm-modal/add-csm-modal.component';\r\nimport { CommentModelComponent } from './components/comment-model/comment-model.component';\r\nimport { AuditMetricsComponent } from './components/audit-metrics/audit-metrics.component';\r\nimport { ReTriggerComponent } from './components/re-trigger/re-trigger.component';\r\nimport { AuditLogComponent } from './components/audit-log/audit-log.component';\r\nimport { CountComponent } from './components/count/count.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoManageTicketsComponent,\r\n TicketsComponent,AddCsmModalComponent, CommentModelComponent, AuditMetricsComponent, ReTriggerComponent, AuditLogComponent, CountComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageTicketsRoutingModule,\r\n FormsModule,\r\n CommonSharedModule\r\n ]\r\n})\r\nexport class TangoManageTicketsModule { }\r\n","/*\r\n * Public API Surface of tango-manage-tickets\r\n */\r\n\r\nexport * from './lib/tango-manage-tickets.module';\r\n\r\nexport * from './lib/components/tango-manage-tickets/tango-manage-tickets.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.TicketService","i2.TicketService","i3","i4","i4.TicketService","i5.ExcelService","i8","i5","i1.TicketService","i2","i3.ExcelService","i5.TicketsComponent","i6.AuditMetricsComponent"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"tango-app-ui-manage-tickets.mjs","sources":["../../../projects/tango-manage-tickets/src/lib/services/ticket.service.ts","../../../projects/tango-manage-tickets/src/lib/components/add-csm-modal/add-csm-modal.component.ts","../../../projects/tango-manage-tickets/src/lib/components/add-csm-modal/add-csm-modal.component.html","../../../projects/tango-manage-tickets/src/lib/components/comment-model/comment-model.component.ts","../../../projects/tango-manage-tickets/src/lib/components/comment-model/comment-model.component.html","../../../projects/tango-manage-tickets/src/lib/services/excel.service.ts","../../../projects/tango-manage-tickets/src/lib/components/tickets/tickets.component.ts","../../../projects/tango-manage-tickets/src/lib/components/tickets/tickets.component.html","../../../projects/tango-manage-tickets/src/lib/components/re-trigger/re-trigger.component.ts","../../../projects/tango-manage-tickets/src/lib/components/re-trigger/re-trigger.component.html","../../../projects/tango-manage-tickets/src/lib/components/count/count.component.ts","../../../projects/tango-manage-tickets/src/lib/components/count/count.component.html","../../../projects/tango-manage-tickets/src/lib/components/audit-metrics/audit-metrics.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-metrics/audit-metrics.component.html","../../../projects/tango-manage-tickets/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.ts","../../../projects/tango-manage-tickets/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.html","../../../projects/tango-manage-tickets/src/lib/tango-manage-tickets-routing.module.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-log/audit-log.component.ts","../../../projects/tango-manage-tickets/src/lib/components/audit-log/audit-log.component.html","../../../projects/tango-manage-tickets/src/lib/tango-manage-tickets.module.ts","../../../projects/tango-manage-tickets/src/public-api.ts","../../../projects/tango-manage-tickets/src/tango-app-ui-manage-tickets.ts"],"sourcesContent":["import { HttpClient } from '@angular/common/http';\r\nimport { Injectable, Optional } from '@angular/core';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport {\r\n BehaviorSubject,\r\n Observable,\r\n catchError,\r\n map,\r\n of,\r\n throwError,\r\n} from \"rxjs\";\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TicketService {\r\n userApiUrl: any;\r\n ticketsApiUrl: any;\r\n auditApiUrl:any;\r\n auditmetricApiUrl:any;\r\n zoneauditApiUrl:any;\r\n\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.subscribe((env) => {\r\n if (env) {\r\n this.userApiUrl = env.userApiUrl;\r\n this.ticketsApiUrl =env.ticketsApiUrl;\r\n this.auditmetricApiUrl = env.auditmetricApiUrl;\r\n this.auditApiUrl = env.auditApiUrl;\r\n this.zoneauditApiUrl = env.zoneauditApiUrl;\r\n }\r\n })\r\n }\r\n\r\n getUserList(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.userApiUrl}/get-list`, params)\r\n }\r\n exportInstallationList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n exportInfraList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n exportMatList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/matTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n getSotresList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/storeFilter`, data)\r\n }\r\n\r\n getInstallationList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/installationTable`, data)\r\n }\r\n\r\n getInfraList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/infraTable`, data)\r\n }\r\n\r\n getAssignTicket(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/assignTicket`, data)\r\n }\r\n getMatList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/matTable`, data)\r\n }\r\n \r\n updateTicketIssue(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/employeeTraning/updatecomment`, data)\r\n }\r\n\r\n getUserActiveList(params: any): Observable<any> {\r\n return this.http.post<any>(`${this.userApiUrl}/list`, params)\r\n }\r\n \r\n getDataMismathList(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data)\r\n }\r\n exportDataMismatchList(data:any){\r\n return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`,data,{responseType: 'arraybuffer'})\r\n }\r\n\r\n getAllCounts(data:any){\r\n return this.http.post<any>(`${this.ticketsApiUrl}/infra/allCounts`, data)\r\n }\r\n getstoreMetrics(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/store-metrics`,data)\r\n }\r\n getstoreMetricsExport(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/store-metrics`,data,{responseType: 'arraybuffer'})\r\n }\r\n getclientList(){\r\n return this.http.get(`${this.auditApiUrl}/clients`)\r\n }\r\n getuserList(){\r\n return this.http.get(`${this.auditApiUrl}/tango-users`)\r\n }\r\n auditretrigger(data:any){\r\n return this.http.post(`${this.auditApiUrl}/metrics/re-trigger`,data)\r\n }\r\n getstoreList(data:any){\r\n return this.http.post(`${this.auditApiUrl}/audit-stores`,data)\r\n }\r\n getAuditImages(data:any){\r\n return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`)\r\n }\r\n ExportAuditImagesasxlsx(data:any){\r\n return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`,{responseType:'arraybuffer'})\r\n }\r\n\r\n}\r\n","import { Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormControl } from '@angular/forms';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n\r\n@Component({\r\n selector: \"lib-add-csm-modal\",\r\n templateUrl: \"./add-csm-modal.component.html\",\r\n styleUrl: \"./add-csm-modal.component.scss\",\r\n})\r\nexport class AddCsmModalComponent implements OnInit, OnDestroy {\r\n @Input() ticketId: any;\r\n csmUserList: any = [];\r\n csmSelectInput = new FormControl(\"\");\r\n private readonly destroy$ = new Subject();\r\n headerFilters: any;\r\n userList_req: {};\r\n users: any=[];\r\n userList: any=[];\r\n\r\n constructor(\r\n private activeModal: NgbActiveModal,\r\n public gs: GlobalStateService,\r\n private service: TicketService,\r\n private toast: ToastService\r\n ) {}\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.userList_req = {\r\n \"userType\": this.users.userType, \"isActive\": true\r\n // clientId: this.headerFilters.client,\r\n // limit: 10000,\r\n // offset: 1,\r\n // userType: this.users.userType,\r\n // FilterByStatus:'isActive'\r\n };\r\n this.getuserlist();\r\n }\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\r\n getuserlist() {\r\n this.service\r\n .getUserActiveList(this.userList_req)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n }\r\n });\r\n }\r\n\r\n assignCsm() {\r\n let obj = {\r\n tickets: this.ticketId,\r\n user: this.csmSelectInput.value,\r\n };\r\n this.service\r\n .getAssignTicket(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(res.message);\r\n this.activeModal.close(\"submit\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(err.error.error ? err.error.error : err.error);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n onCsmSelect(selectedCsm: any) {\r\n this.csmSelectInput.setValue(selectedCsm?._id);\r\n }\r\n cancel() {\r\n this.activeModal.close(\"submit\");\r\n }\r\n}\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M32 37V35C32 33.9391 31.5786 32.9217 30.8284 32.1716C30.0783 31.4214 29.0609 31 28 31H21C19.9391 31 18.9217 31.4214 18.1716 32.1716C17.4214 32.9217 17 33.9391 17 35V37M36 24V30M39 27H33M28.5 23C28.5 25.2091 26.7091 27 24.5 27C22.2909 27 20.5 25.2091 20.5 23C20.5 20.7909 22.2909 19 24.5 19C26.7091 19 28.5 20.7909 28.5 23Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Assign Ticket</a>\r\n <p class=\"text-sub\">Assign the ticket to a particular user</p>\r\n <div class=\"mt-5 w-100\">\r\n <!-- <lib-reactive-select [formControl]=\"csmSelectInput\" [idField]=\"'email'\" [nameField]=\"'userName'\" [data]=\"csmUserList\" ></lib-reactive-select> -->\r\n\r\n <!-- <select [formControl]=\"csmSelectInput\" class=\"form-select border-val my-3\">\r\n <option [value]=\"user.email\" *ngFor=\"let user of csmUserList\">{{user.userName}}</option>\r\n </select> -->\r\n\r\n <lib-select [items]=\"userList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'_id'\"\r\n (selected)=\"onCsmSelect($event)\" ></lib-select>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!csmSelectInput.value\" (click)=\"assignCsm()\">Submit</button>\r\n </div>\r\n \r\n </div>\r\n\r\n </div>\r\n</div>","import { Component, Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n@Component({\r\n selector: 'lib-comment-model',\r\n templateUrl: './comment-model.component.html',\r\n styleUrl: './comment-model.component.scss'\r\n})\r\nexport class CommentModelComponent {\r\n @Input() ticketId: any;\r\n comment:any= \"\"\r\n private readonly destroy$ = new Subject();\r\n constructor(private activeModal:NgbActiveModal, private service: TicketService,\r\n private toast: ToastService){\r\n\r\n }\r\n\r\n cancel(){\r\n this.activeModal.close();\r\n }\r\n commentSubmit(){\r\n if(this.comment == ''){\r\n return this.toast.getErrorToast(\"Please Enter Any comment\")\r\n }\r\n let obj = {\r\n \"ticketId\": this.ticketId,\r\n \"primary\": \"\",\r\n \"secondary\": [],\r\n \"comment\": this.comment,\r\n \r\n }\r\n this.service\r\n .updateTicketIssue(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.toast.getSuccessToast(res.message);\r\n this.activeModal.close(\"submit\");\r\n }\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast(err.error.error ? err.error.error : err.error);\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n \r\n}\r\n\r\n\r\n","<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Comment</a>\r\n <p class=\"text-sub\">Add comment for the ticket</p>\r\n <div class=\"w-100\">\r\n <label class=\"label my-2\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"comment\" rows=\"4\" type=\"text\"></textarea>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Injectable } from '@angular/core';\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\nconst ZIP_TYPE = 'application/zip'\r\nconst ZIP_EXTENSION = '.zip'\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class ExcelService {\r\n\r\n \r\n constructor() { }\r\n\r\n public exportAsExcelFile(json: any[], excelFileName: string): void {\r\n const worksheet: XLSX.WorkSheet = XLSX.utils.json_to_sheet(json);\r\n const workbook: XLSX.WorkBook = { Sheets: { 'data': worksheet }, SheetNames: ['data'] };\r\n const excelBuffer: any = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' });\r\n this.saveAsExcelFile(excelBuffer, excelFileName);\r\n }\r\n\r\n public saveAsExcelFile(buffer: any, fileName: string): void {\r\n console.log(buffer, fileName);\r\n \r\n const data: Blob = new Blob([buffer], {\r\n type: EXCEL_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'list'+ EXCEL_EXTENSION);\r\n }\r\n \r\n private saveAsTemplate(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 public saveAsZipFile(buffer: any, fileName: string): void {\r\n const data: Blob = new Blob([buffer], {\r\n type: ZIP_TYPE\r\n });\r\n FileSaver.saveAs(data, fileName + 'Images'+ ZIP_EXTENSION);\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from \"@angular/core\";\r\nimport { ActivatedRoute, Router } from \"@angular/router\";\r\nimport { GlobalStateService } from \"tango-app-ui-global\";\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { NgbModal } from \"@ng-bootstrap/ng-bootstrap\";\r\nimport { AddCsmModalComponent } from \"../add-csm-modal/add-csm-modal.component\";\r\nimport { TicketService } from \"../../services/ticket.service\";\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { CommentModelComponent } from \"../comment-model/comment-model.component\";\r\n@Component({\r\n selector: \"lib-tickets\",\r\n templateUrl: \"./tickets.component.html\",\r\n styleUrl: \"./tickets.component.scss\",\r\n})\r\nexport class TicketsComponent implements OnInit, OnDestroy {\r\n type = \"Infra\";\r\n searchValue: any = \"\";\r\n selectedTab: any = \"total\";\r\n // paginationVariables\r\n itemsPerPage = 10;\r\n currentPage = 1;\r\n totalItems = 0;\r\n paginationSizes = [10, 20, 30];\r\n pageSize = 10;\r\n private readonly destroy$ = new Subject();\r\n assignTicket: boolean = false;\r\n filterByStores: any = [];\r\n filterByinstalled: any = [];\r\n filterByStatus: any = [];\r\n filterByQueryType: any = [];\r\n issueType: any = [];\r\n sortedColumn: string;\r\n sortDirection: number;\r\n headerFilters: any;\r\n userList_req: any;\r\n userList: any = [];\r\n dataObject: any=[];\r\n storeList: any = [];\r\n statusType: { text: string; id: string }[];\r\n typeName: string;\r\n users: any;\r\n limit: number = 10;\r\n offset: number = 1;\r\n sortBy: any = -1;\r\n sortColumName: any = \"\";\r\n listArray: any = [];\r\n tableListArray: any = [];\r\n loading: boolean = true;\r\n noData: boolean = false;\r\n selectAll: any = false;\r\n assignStores: any = [];\r\n issueTypeList: any=[];\r\n queryTypeList: any=[];\r\n \r\n constructor(\r\n private cd: ChangeDetectorRef,\r\n private router: Router,\r\n private route: ActivatedRoute,\r\n public gs: GlobalStateService,\r\n private modalService: NgbModal,\r\n private service: TicketService,\r\n private excelservice: ExcelService,\r\n ) {}\r\n\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.route?.queryParams\r\n ?.pipe(takeUntil(this.destroy$))\r\n .subscribe((params) => {\r\n this.type = params.type;\r\n this.filterByStores =[]; this.storeList=[]\r\n this.filterByinstalled=[]; this.statusType =[]\r\n this.filterByStatus =[]; this.userList=[];\r\n this.issueType=[]; this.issueTypeList =[]\r\n this.filterByQueryType =[]; this.queryTypeList=[];\r\n this.dataObject=[]\r\n this.gs.manageRefreshTrigger.next(true)\r\n this.getInitload();\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.userList_req = {\r\n limit: 10000,\r\n offset: 1,\r\n userType: this.users.userType,\r\n };\r\n this.getstoreFilter();\r\n }\r\n },\r\n });\r\n if (this.type === \"installation\") {\r\n this.typeName = \"Installed By\";\r\n this.statusType = [\r\n { text: \"Onboarded\", id: \"onboarded\" },\r\n { text: \"Paired\", id: \"paired\" },\r\n { text: \"Installationfailed\", id: \"installationfailed\" },\r\n { text: \"Deployed\", id: \"deployed\" },\r\n ];\r\n } else {\r\n this.typeName = \"Resloved By\";\r\n \r\n if (this.users.userType === \"tango\" && this.type ==='infra'){ \r\n this.statusType = [\r\n { text: \"Open\", id: \"open\" },\r\n { text: \"In Progress\", id: \"inprogress\" },\r\n { text: \"Refresh Ticket\", id: \"refreshticket\" },\r\n { text: \"Closed\", id: \"closed\" },\r\n ];\r\n }else{\r\n this.statusType = [\r\n { text: \"Open\", id: \"open\" },\r\n { text: \"In Progress\", id: \"inprogress\" },\r\n { text: \"Closed\", id: \"closed\" },\r\n ];\r\n }\r\n this.issueTypeList = [\r\n { text: \"High Count\", id: \"highcount\" },\r\n { text: \"Low Count\", id: \"lowcount\" },\r\n ];\r\n this.queryTypeList = [\r\n { text: \"Internal\", id: \"internal\" },\r\n { text: \"External\", id: \"external\" },\r\n ];\r\n }\r\n });\r\n }\r\n getInitload() {\r\n this.searchValue = \"\";\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.selectedTab = \"total\";\r\n this.loading = true;\r\n this.noData = false;\r\n this.sortedColumn='';\r\n }\r\n getstoreFilter() {\r\n this.service\r\n .getSotresList({ issueType: this.type,clientId:this.headerFilters.clients })\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({ \r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.storeList = res?.data?.data;\r\n this.storeList.forEach((element: any) => {\r\n element.text = element.storeId;\r\n element.id = element.storeId;\r\n });\r\n if(this.users.userType === \"tango\"){\r\n this.getuserlist();\r\n } else {\r\n if(this.type ==='installation'){\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Deployed Status\", Issues: this.statusType },\r\n ];\r\n } else if(this.type ==='infra' || this.type ==='dataMismatch'){\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n ]; \r\n }else if(this.type ==='mat' ){\r\n this.dataObject = [\r\n { Description: \"Status\", Issues: this.statusType },\r\n ]; \r\n }\r\n }\r\n this.getTable();\r\n }else{\r\n this.getTable();\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n getuserlist() {\r\n this.service\r\n .getUserList(this.userList_req)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((res: any) => {\r\n if (res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n this.userList?.forEach((element: any) => {\r\n element.text = element.userName;\r\n element.id = element.email;\r\n });\r\n }\r\n \r\n if (this.users.userType === \"tango\" && (this.type ==='installation')) {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Deployed Status\", Issues: this.statusType },\r\n { Description: this.typeName, Issues: this.userList },\r\n ];\r\n } else if (this.users.userType === \"tango\" && this.type ==='infra') {\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n { Description: this.typeName, Issues: this.userList },\r\n ];\r\n } else if(this.users.userType === \"tango\" && this.type ==='dataMismatch'){\r\n this.dataObject = [\r\n { Description: \"Store ID\", Issues: this.storeList },\r\n { Description: \"Query Type\", Issues: this.queryTypeList },\r\n { Description: \"Status\", Issues: this.statusType },\r\n ];\r\n } else if(this.type ==='mat'){\r\n this.dataObject = [\r\n { Description: \"Status\", Issues: this.statusType },\r\n ];\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 searchData() {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit=10;\r\n this.getTable();\r\n }\r\n\r\n onSort(column: string) {\r\n if (this.sortedColumn === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortedColumn = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getTable();\r\n }\r\n exportXLSX() {\r\n let obj: Record<string, any> = {\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n offset: this.offset,\r\n limit: this.limit,\r\n filterIssue: this.selectedTab ? this.selectedTab : \"\",\r\n searchValue: this.searchValue ? this.searchValue : \"\",\r\n export: true,\r\n };\r\n if (this.sortedColumn) {\r\n obj.sortColumName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n }\r\n if(this.type === \"installation\" || this.type === \"infra\"){\r\n if (this.filterByStores?.length) {\r\n obj.storeIdFilter = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByinstalled?.length) {\r\n obj.userFilter = this.filterByinstalled ? this.filterByinstalled : [];\r\n }\r\n }else if(this.type ===\"mat\"){\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n } else {\r\n if (this.filterByStores?.length) {\r\n obj.filterByStores = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.filterByStatus = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if(this.filterByQueryType?.length){\r\n obj.filterByQueryType = this.filterByQueryType ? this.filterByQueryType : [];\r\n }\r\n }\r\n if (this.type === \"installation\") {\r\n this.service\r\n .exportInstallationList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'Installation')\r\n\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"infra\") {\r\n this.service\r\n .exportInfraList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n \r\n this.excelservice.saveAsExcelFile(res, 'Infra')\r\n \r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"mat\") {\r\n this.service\r\n .exportMatList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n \r\n this.excelservice.saveAsExcelFile(res, 'Mat')\r\n \r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }else if(this.type==='dataMismatch'){\r\n this.service\r\n .exportDataMismatchList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'Data Mismatch')\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n\r\n\r\n\r\n }\r\n\r\n selectedTabs(type: any) {\r\n if(this.type ==='dataMismatch'){\r\n this.selectedTab = type.name.replace(/\\s+/g, '').toLocaleLowerCase();\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.getTable();\r\n this.transformName(type);\r\n } else {\r\n this.selectedTab = type.name;\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit = 10;\r\n this.pageSize = 10;\r\n this.getTable();\r\n }\r\n }\r\n transformName(name: string): string {\r\n return name.toLocaleLowerCase().replace(/\\s+/g, '');\r\n \r\n }\r\n onPageChange(pageOffset: number) {\r\n this.currentPage = Number(pageOffset);\r\n this.offset = Number(pageOffset);\r\n this.limit =10;\r\n this.getTable();\r\n }\r\n\r\n onPageSizeChange(pageSize: number) {\r\n this.pageSize = Number(pageSize);\r\n this.limit = Number(pageSize);\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.getTable();\r\n }\r\n selectAllStore(event: any) {\r\n this.selectAll = event.target.checked;\r\n this.tableListArray.forEach((obj: any) => (obj.checked = this.selectAll));\r\n // If all checkboxes are checked, assign all ticketIds to assignStores, otherwise clear assignStores\r\n this.assignStores = this.selectAll\r\n ? this.tableListArray.map((obj: any) => obj.ticketId)\r\n : [];\r\n this.assignTicket = this.selectAll; // Update assignTicket based on selectAll state\r\n }\r\n\r\n updateCheck(event: any, ticketId: any) {\r\n const ticket = this.tableListArray.find(\r\n (obj: any) => obj.ticketId === ticketId\r\n );\r\n\r\n if (ticket) {\r\n ticket.checked = event.target.checked;\r\n // If the checkbox is checked, add or remove the corresponding array from the selected arrays\r\n if (event.target.checked) {\r\n this.assignStores.push(ticketId);\r\n } else {\r\n const index = this.assignStores.indexOf(ticketId);\r\n if (index !== -1) {\r\n this.assignStores.splice(index, 1);\r\n }\r\n }\r\n // Update selectAll based on the current state of checkboxes\r\n this.selectAll = this.tableListArray.every((obj: any) => obj.checked);\r\n // Update assignTicket based on whether any individual ticket checkbox is checked\r\n this.assignTicket = this.tableListArray.some((obj: any) => obj.checked);\r\n }\r\n }\r\n\r\n addAssignTicket() {\r\n const modalRef = this.modalService.open(AddCsmModalComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop:\"static\"\r\n });\r\n modalRef.componentInstance.ticketId = this.assignStores;\r\n modalRef.result.then((result) => {\r\n if (result === \"submit\") {\r\n this.searchValue = \"\";\r\n this.assignStores = [];\r\n this.selectAll = false;\r\n this.assignTicket = false;\r\n this.getTable();\r\n }\r\n });\r\n }\r\n\r\n applyFilters(event: any) {\r\n if (event?.length) {\r\n event.forEach((element: any) => {\r\n if (element.Description === \"Store ID\") {\r\n this.filterByStores = element.Issues.map((val: any) => val?.id);\r\n }\r\n if(this.type !=='installation'){\r\n if (element.Description === \"Status\") {\r\n this.filterByStatus = element.Issues.map((val: any) => val?.id);\r\n }\r\n } if(this.type==='installation'){\r\n if (element.Description === \"Deployed Status\") {\r\n this.filterByStatus = element.Issues.map((val: any) => val?.id);\r\n }\r\n }\r\n if (this.users.userType === \"tango\" && (this.type ==='installation' || this.type==='infra')) {\r\n if (element.Description === this.typeName) {\r\n this.filterByinstalled = element.Issues.map((val: any) => val?.id);\r\n }\r\n } else {\r\n this.filterByinstalled = [];\r\n }\r\n if (element.Description === \"Query Type\") {\r\n this.filterByQueryType = element.Issues.map((val: any) => val?.id);\r\n }\r\n // if (element.Description === \"Issue Type\") {\r\n // this.issueType = element.Issues.map((val: any) => val?.id);\r\n // }\r\n });\r\n }\r\n\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit=10;\r\n this.getTable();\r\n }\r\n\r\n getTable() {\r\n this.loading = true;\r\n this.noData = false;\r\n let obj: Record<string, any> = {\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n offset: this.offset,\r\n limit: this.limit,\r\n filterIssue: this.selectedTab ? this.selectedTab : \"\",\r\n searchValue: this.searchValue ? this.searchValue : \"\",\r\n export: false,\r\n };\r\n if (this.sortedColumn) {\r\n if(this.type ==='dataMismatch'){\r\n obj.sortColumnName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n } else {\r\n obj.sortColumName = this.sortedColumn;\r\n obj.sortBy = this.sortDirection;\r\n }\r\n }\r\n if(this.type === \"installation\" || this.type === \"infra\"){\r\n if (this.filterByStores?.length) {\r\n obj.storeIdFilter = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if (this.filterByinstalled?.length) {\r\n obj.userFilter = this.filterByinstalled ? this.filterByinstalled : [];\r\n }\r\n } else if(this.type === \"mat\"){\r\n if (this.filterByStatus?.length) {\r\n obj.statusFilter = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n } else {\r\n if (this.filterByStores?.length) {\r\n obj.filterByStores = this.filterByStores ? this.filterByStores : [];\r\n } \r\n if (this.filterByStatus?.length) {\r\n obj.filterByStatus = this.filterByStatus ? this.filterByStatus : [];\r\n }\r\n if(this.filterByQueryType?.length){\r\n obj.filterByQueryType = this.filterByQueryType ? this.filterByQueryType : [];\r\n }\r\n }\r\n // console.log(obj)\r\n // return\r\n if (this.type === \"installation\") {\r\n this.service\r\n .getInstallationList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res.data.response;\r\n if(res.data.result.length ===0){\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res.data.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket =false;\r\n this.cd.detectChanges();\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"infra\") {\r\n this.service\r\n .getInfraList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res.data.response;\r\n if(res.data.result.length ===0){\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res.data.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket =false;\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n } else if (this.type === \"mat\") {\r\n this.service\r\n .getMatList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res?.data?.response;\r\n this.tableListArray = res?.data?.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n }); } else if(this.type==='dataMismatch'){\r\n this.service\r\n .getDataMismathList(obj)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.listArray = res?.data?.response;\r\n if(res.data.result.length ===0){\r\n this.loading = false;\r\n this.noData = true;\r\n } else {\r\n this.tableListArray = res?.data?.result;\r\n this.totalItems = res.data?.count;\r\n this.loading = false;\r\n this.noData = false;\r\n this.selectAll = false;\r\n this.assignTicket =false;\r\n this.cd.detectChanges();\r\n }\r\n } else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error: (err: any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.cd.detectChanges();\r\n },\r\n complete: () => {},\r\n });\r\n }\r\n }\r\n\r\n routeToStore(storeId: any, clientId: any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/infra-ticket'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n routeToMat(storeId: any, clientId: any,clientName:any) {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/mat'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n commentModal(obj:any){\r\n const modalRef = this.modalService.open(CommentModelComponent, {\r\n centered: true,\r\n size: \"md\",\r\n scrollable: true,\r\n backdrop:\"static\"\r\n });\r\n modalRef.componentInstance.ticketId = obj.ticketId;\r\n modalRef.result.then((result) => {\r\n })\r\n }\r\n\r\n tickets(type:any,clientId:any,storeId:any,clientName:any){\r\n if(type ==='mat'){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/mat'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n } else {\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/infra-ticket'], { \r\n queryParams: { storeId: storeId,type:type }\r\n });\r\n}\r\n }\r\n\r\n clientTickets(clientId:any,storeId:any,clientName:any){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores']);\r\n }\r\n storeTickets(clientId:any,storeId:any,clientName:any){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n data.clientName = clientName ? clientName:'Stores';\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/stores/cameras'], { \r\n queryParams: { storeId: storeId }\r\n });\r\n }\r\n userTickets(clientId:any,storeId:any){\r\n let data: any = JSON.parse(localStorage.getItem(\"header-filters\") || \"\");\r\n data.store = storeId;\r\n data.client = clientId;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(data));\r\n this.gs.dataRangeValue.next(data);\r\n this.router.navigate(['/manage/users']);\r\n }\r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span *ngIf=\"type !=='dataMismatch' && type !== 'mat'\" class=\"card-label mb-2\">{{type | titlecase}}</span>\r\n <span *ngIf=\"type ==='dataMismatch'\" class=\"card-label mb-2\">Data Mismatch</span>\r\n <span *ngIf=\"type ==='mat'\" class=\"card-label mb-2\">Employee Mat</span>\r\n\r\n <!-- <span class=\"text-sub mb-2\">Last updated 1 hour ago</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div *ngIf=\"!assignTicket\" class=\"d-flex\">\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\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" 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\" placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchValue\" />\r\n <lib-filters *ngIf=\"users.userType === 'tango' && userList?.length || users.userType === 'client' && storeList?.length\" [dataObject]=\"dataObject\"\r\n (appliedFilters)=\"applyFilters($event)\"></lib-filters>\r\n\r\n <button type=\"button\" *ngIf=\"!noData&&!loading\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n 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\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n <div *ngIf=\"assignTicket\" class=\"d-flex\">\r\n <button type=\"button\" (click)=\"addAssignTicket()\"\r\n class=\"btn mx-2 btn-primary rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99984 4.1665V15.8332M4.1665 9.99984H15.8332\" stroke=\"white\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2 text-white\">Assign Ticket</span>\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body\">\r\n\r\n\r\n <ul *ngIf=\"!loading && listArray?.length && type !== 'mat' && type !== 'dataMismatch'\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" *ngFor=\"let obj of listArray.slice().reverse()\" (click)=\"selectedTabs(obj)\">\r\n <a [ngClass]=\"{'active': selectedTab === obj.name}\" class=\"nav-link cursor-pointer no-border me-2\">\r\n {{obj.name | titlecase}} <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === obj.name ? 'text-border-priamry' : 'text-border'\">{{obj.count}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <ul *ngIf=\"!loading && listArray?.length && type === 'dataMismatch'\" class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" *ngFor=\"let obj of listArray.slice().reverse()\" (click)=\"selectedTabs(obj)\">\r\n <a [ngClass]=\"selectedTab === transformName(obj.name) ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n {{obj.name | titlecase}} <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === transformName(obj.name) ? 'text-border-priamry' : 'text-border'\">{{obj.count}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"loading\" class=\"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 *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive mt-5\">\r\n <table class=\"table bottom-border text-nowrap \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" >\r\n \r\n <input *ngIf=\"this.users.userType ==='tango'\"\r\n class=\"form-check-input cursor-pointer me-4\" type=\"checkbox\" [(ngModel)]=\"selectAll\"\r\n (click)=\"selectAllStore($event)\"> <span class=\"cursor-pointer\" (click)=\"onSort('ticketId')\"> Ticket ID <svg\r\n [ngClass]=\"sortedColumn === 'ticketId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'ticketId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span> \r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type !=='dataMismatch'\" (click)=\"onSort('issueDate')\"> Created Date\r\n <svg [ngClass]=\"sortedColumn === 'issueDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='infra'\" (click)=\"onSort('createdAt')\"> Created Time\r\n <svg [ngClass]=\"sortedColumn === 'createdAt' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='infra'\" (click)=\"onSort('issueClosedDate')\"> Closed Time\r\n <svg [ngClass]=\"sortedColumn === 'issueClosedDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueClosedDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('createdAt')\"> Created Date\r\n <svg [ngClass]=\"sortedColumn === 'createdAt' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'createdAt' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" ><span (click)=\"onSort('issueDate')\">Issue Date\r\n <svg [ngClass]=\"sortedColumn === 'issueDate' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueDate' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"cursor-pointer\" (click)=\"onSort('clientName')\">Brand Name<svg\r\n [ngClass]=\"sortedColumn === 'clientName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'clientName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\" class=\"cursor-pointer\" (click)=\"onSort('clientId')\">Brand ID<svg\r\n [ngClass]=\"sortedColumn === 'clientId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'clientId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Name<svg\r\n [ngClass]=\"sortedColumn === 'storeName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeId')\">Store ID<svg\r\n [ngClass]=\"sortedColumn === 'storeId' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'storeId' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"this.users.userType ==='tango' && (type ==='infra'||type ==='dataMismatch'||type ==='mat')\" (click)=\"onSort('userName')\">Resolved By<svg [ngClass]=\"sortedColumn === 'userName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'userName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" *ngIf=\"this.users.userType ==='tango' && type ==='installation'\" (click)=\"onSort('userName')\">Installed By<svg [ngClass]=\"sortedColumn === 'userName' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'userName' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('issueType')\">Issue Type\r\n <svg [ngClass]=\"sortedColumn === 'issueType' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'issueType' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('type')\">Query Type\r\n <svg [ngClass]=\"sortedColumn === 'type' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'type' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('reportedFootfall')\">Reported Footfall\r\n <svg [ngClass]=\"sortedColumn === 'reportedFootfall' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'reportedFootfall' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('mappedCount')\">Unique Images\r\n <svg [ngClass]=\"sortedColumn === 'mappedCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'mappedCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"type ==='dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('successPercentage')\">Success Percentage\r\n <svg [ngClass]=\"sortedColumn === 'successPercentage' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'successPercentage' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" *ngIf=\"type ==='installation'\" (click)=\"onSort('status')\">Deployed Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type ==='dataMismatch' ||type ==='mat'|| type ==='infra'\" class=\"cursor-pointer\" (click)=\"onSort('status')\">Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'status' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type !== 'mat' && type !== 'dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('primaryIssue')\">Primary Issues<svg\r\n [ngClass]=\"sortedColumn === 'primaryIssue' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'primaryIssue' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type !== 'mat' && type !== 'dataMismatch'\" class=\"cursor-pointer\" (click)=\"onSort('secondaryIssue')\">Secondary Issues<svg\r\n [ngClass]=\"sortedColumn === 'secondaryIssue' && sortDirection === 1 ? 'rotate' : ''\"\r\n width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path\r\n d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortedColumn === 'secondaryIssue' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"type!=='installation'\">Actions</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let obj of tableListArray\">\r\n <td>\r\n <input *ngIf=\"this.users.userType ==='tango'\" class=\"form-check-input cursor-pointer me-4 mt-3\" type=\"checkbox\" [(ngModel)]=\"obj.checked\"\r\n (change)=\"updateCheck($event,obj?.ticketId)\">\r\n <span *ngIf=\"type === 'dataMismatch' || type === 'mat' || type === 'infra'\"\r\n class=\"txt-light-primary cursor-pointer\" (click)=\"tickets(type,obj.clientId,obj.storeId,obj.clientName)\">\r\n {{obj.ticketId}}\r\n </span>\r\n <span *ngIf=\"type === 'installation'\">\r\n {{obj.ticketId}}\r\n </span>\r\n </td>\r\n <td *ngIf=\"type === 'dataMismatch'\">\r\n {{obj?.createdAt |\r\n date: 'dd MMM, yyyy'}}</td>\r\n <td *ngIf=\"type === 'dataMismatch'\">\r\n {{obj?.issueDate |\r\n date: 'dd MMM, yyyy'}}</td>\r\n <td *ngIf=\"type !== 'dataMismatch'\">\r\n {{obj?.createdAt |\r\n date: 'dd MMM, yyyy'}}\r\n </td>\r\n <td *ngIf=\"type === 'infra'\">\r\n {{obj?.createdAt |\r\n date: 'hh:mm a' | uppercase}}\r\n </td>\r\n <td *ngIf=\"type === 'infra'\">\r\n {{obj?.issueClosedDate?(obj?.issueClosedDate |\r\n date: 'hh:mm a' | uppercase):\"--\"}}\r\n </td>\r\n <td *ngIf=\"this.users.userType ==='tango'\">\r\n <div class=\"table-title cursor-pointer\" (click)=\"clientTickets(obj.clientId,obj.storeId,obj.clientName)\">\r\n <span class=\"txt-light-primary\">\r\n {{obj.clientName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"this.users.userType ==='tango'\">{{obj.clientId}}\r\n </td>\r\n <td>\r\n <div class=\"table-title cursor-pointer\" (click)=\"storeTickets(obj.clientId,obj.storeId,obj.clientName)\">\r\n <span class=\"txt-light-primary\">\r\n {{obj.storeName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td>{{obj.storeId}}\r\n </td>\r\n \r\n <td *ngIf=\"this.users.userType ==='tango'\">\r\n <div class=\"table-title cursor-pointer\" >\r\n <span >\r\n {{obj.userName}}\r\n </span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"type ==='dataMismatch' && obj.issueType ==='lowcount'\" >Low Count</td>\r\n <td *ngIf=\"type ==='dataMismatch' && obj.issueType ==='highcount'\">High Count</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.type ? obj?.type:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.reportedFootfall ? obj?.reportedFootfall:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.mappedCount ? obj?.mappedCount:'--'}}</td>\r\n <td class=\"text-capitalize\" *ngIf=\"type ==='dataMismatch'\">{{obj?.successPercentage ? obj?.successPercentage:'--'}}</td>\r\n <td *ngIf=\"type==='installation'\">\r\n <span *ngIf=\"obj.installationStatus ==='paired' || obj.installationStatus ==='onboarded'\"\r\n class=\"badge badge-light-primary mx-4\">{{obj.installationStatus | titlecase}}</span>\r\n <span *ngIf=\"obj.installationStatus ==='live'\" class=\"badge badge-light-success mx-4\">Live</span>\r\n <span *ngIf=\"obj.installationStatus ==='installationfailed'\"\r\n class=\"badge badge-light-warning mx-4\">Installationfailed</span>\r\n <span *ngIf=\"obj.installationStatus ==='deployed'\"\r\n class=\"badge badge-light-success mx-4 text-capitalize\">deployed</span>\r\n </td>\r\n <td *ngIf=\"type==='infra' || type==='mat' || type==='dataMismatch'\">\r\n <span *ngIf=\"obj.status ==='open'\" class=\"badge badge-light-danger\">Open</span>\r\n <span *ngIf=\"obj.status ==='closed'\" class=\"badge badge-light-success\">Closed</span>\r\n <span *ngIf=\"obj.status ==='inprogress'\" class=\"badge badge-light-primary\">In\r\n Progress</span>\r\n </td>\r\n <td *ngIf=\"type==='installation' || type==='infra'\">\r\n <div>\r\n <span *ngIf=\"obj.primaryIssue !=='-'\">{{obj.primaryIssue ? obj.primaryIssue :'Issue not identified'}}</span>\r\n <span *ngIf=\"obj.primaryIssue ==='-'\">Issue not identified</span>\r\n </div>\r\n </td>\r\n <td *ngIf=\"type==='installation' || type==='infra'\">\r\n <span *ngIf=\"obj.secondaryIssue\">{{obj.secondaryIssue}}</span>\r\n </td>\r\n <td *ngIf=\"type==='infra' || type ==='dataMismatch'\">\r\n <span class=\"mx-2 cursor-pointer\" *ngIf=\"this.users.userType ==='tango'\" (click)=\"commentModal(obj)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <path\r\n d=\"M17.6431 12.5C17.6431 12.942 17.4675 13.366 17.1549 13.6785C16.8423 13.9911 16.4184 14.1667 15.9764 14.1667H5.9764L2.64307 17.5V4.16667C2.64307 3.72464 2.81866 3.30072 3.13122 2.98816C3.44378 2.67559 3.86771 2.5 4.30973 2.5H15.9764C16.4184 2.5 16.8423 2.67559 17.1549 2.98816C17.4675 3.30072 17.6431 3.72464 17.6431 4.16667V12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n <span class=\"mx-2 cursor-pointer\" (click)=\"tickets(type,obj.clientId,obj.storeId,obj.clientName)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10640_18061)\">\r\n <path\r\n d=\"M0.976562 10C0.976562 10 4.3099 3.33337 10.1432 3.33337C15.9766 3.33337 19.3099 10 19.3099 10C19.3099 10 15.9766 16.6667 10.1432 16.6667C4.3099 16.6667 0.976562 10 0.976562 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.1432 12.5C11.5239 12.5 12.6432 11.3808 12.6432 10C12.6432 8.61933 11.5239 7.50004 10.1432 7.50004C8.76252 7.50004 7.64323 8.61933 7.64323 10C7.64323 11.3808 8.76252 12.5 10.1432 12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10640_18061\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.143066)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </td>\r\n <td *ngIf=\"type === 'mat'\">\r\n <span class=\"mx-2 cursor-pointer\" (click)=\"routeToMat(obj.storeId,obj.clientId,obj.clientName)\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_10640_18061)\">\r\n <path\r\n d=\"M0.976562 10C0.976562 10 4.3099 3.33337 10.1432 3.33337C15.9766 3.33337 19.3099 10 19.3099 10C19.3099 10 15.9766 16.6667 10.1432 16.6667C4.3099 16.6667 0.976562 10 0.976562 10Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M10.1432 12.5C11.5239 12.5 12.6432 11.3808 12.6432 10C12.6432 8.61933 11.5239 7.50004 10.1432 7.50004C8.76252 7.50004 7.64323 8.61933 7.64323 10C7.64323 11.3808 8.76252 12.5 10.1432 12.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_10640_18061\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(0.143066)\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span> \r\n \r\n </td>\r\n \r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n</div>","import { Component,HostListener, OnDestroy, OnInit,Input } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { takeUntil, Subject } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-retrigger',\r\n templateUrl: './re-trigger.component.html',\r\n styleUrl: './re-trigger.component.scss'\r\n})\r\nexport class ReTriggerComponent implements OnInit,OnDestroy {\r\n\r\n dropDown: boolean = false;\r\n loading:boolean = true;\r\n noData:boolean = false;\r\n dropdownItems:any[] = [];\r\n selectedItem: any = 'Audit';\r\n selectedData:any = 'To Queue';\r\n standardData:any = ['To Queue','To User']\r\n Comment:any = '';\r\n userId:any = '';\r\n private readonly destroy$ = new Subject();\r\n @Input() reTrigerData:any;\r\n userList: any = [];\r\n\r\n constructor(public activeModal:NgbActiveModal,private service:TicketService){\r\n\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const\r\n target = event.target as HTMLElement;\r\n if (!target.closest('.dropDown')) {\r\n this.dropDown = false;\r\n }\r\n }\r\n\r\nngOnInit(){\r\n if(this.reTrigerData?.data?.auditType ==='ReAudit'){\r\n this.dropdownItems = ['Audit','ReAudit']\r\n }else if(this.reTrigerData?.data?.auditType ==='Audit'){\r\n this.dropdownItems = ['Audit']\r\n }\r\n this.getuserList();\r\n}\r\n\r\ngetuserList(){\r\n this.service.getuserList().subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code === 200) {\r\n this.userList = res?.data?.result;\r\n }\r\n },\r\n })\r\n}\r\n\r\nngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n}\r\n\r\nselectRadio(value:any){\r\n this.selectedData = value;\r\n}\r\n\r\nopenDropdown(event: MouseEvent) {\r\n event.stopPropagation();\r\n this.dropDown = !this.dropDown;\r\n}\r\n\r\nselectItem(value: any) {\r\n this.selectedItem = value;\r\n this.dropDown = false;\r\n}\r\n\r\nonReportSelect(event:any){\r\n this.userId = event;\r\n}\r\n\r\ncloseModal(){\r\n let data:any = {\r\n fileDate: this.reTrigerData?.data?.fileDate,\r\n storeId: this.reTrigerData?.data?.storeId,\r\n auditType: this.selectedItem,\r\n zoneName : this.reTrigerData?.data?.zoneName,\r\n triggerType: this.selectedData === 'To Queue' ? 'queue' : 'user',\r\n totalCount: this.selectedItem ==='Audit' ? this.reTrigerData?.data?.beforeCount : this.reTrigerData?.data?.afterCount,\r\n comments: this.Comment,\r\n moduleType : this.reTrigerData?.data?.moduleType\r\n }\r\n this.selectedData === 'To User' ? data.userId = this.userId.userId : ''\r\n this.activeModal.close(data);\r\n}\r\n\r\n}\r\n","<div class=\"card\">\r\n \r\n <div class=\"card-header border-0\">\r\n <div class=\"card-title d-grid\">\r\n <div class=\"card-title\">Re-trigger File</div>\r\n <div class=\"text-sub\">Re-trigger the file to a queue or other users</div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"\">\r\n <label class=\"label\">Push Form</label>\r\n <div class=\"position-relative w-100 mt-3 mb-5\">\r\n <button type=\"button\" (click)=\"openDropdown($event)\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between\">\r\n {{selectedItem}}\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDown\" class=\"card py-1 w-100 position-absolute top-50px end-0\">\r\n <ul *ngFor=\"let item of dropdownItems\" class=\"list-unstyled\">\r\n <li [ngClass]=\"selectedItem === item ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\"\r\n (click)=\"selectItem(item)\">{{item}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-5 cursor-pointer d-flex mb-5\">\r\n <div *ngFor=\"let data of standardData\" (click)=\"selectRadio(data)\" class=\"d-flex align-items-center me-20\">\r\n <input [checked]=\"selectedData === data\" type=\"radio\" class=\"radio\">\r\n <span class=\"ms-3 standard\">{{data}}</span>\r\n </div>\r\n </div>\r\n <div *ngIf=\"selectedData === 'To User'\" class=\"w-100 mb-5\">\r\n <label for=\"infraDownTime\" class=\"label mb-3\">Select User<span class=\"alert-required\"></span></label>\r\n <lib-select [items]=\"userList\" [multi]=\"false\" [searchField]=\"'userName'\" [idField]=\"'userId'\"\r\n (selected)=\"onReportSelect($event)\" [selectedValues]=\"[userId]\"></lib-select>\r\n </div>\r\n <div>\r\n <label class=\"label mb-3\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"Comment\"></textarea>\r\n </div>\r\n <div class=\"d-flex mt-5\">\r\n <button class=\"btn btn-outline w-100 me-2\" (click)=\"activeModal.dismiss()\">Cancel</button>\r\n <button *ngIf=\"selectedData === 'To User'\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"!userId || !Comment\" (click)=\"closeModal()\">Submit</button>\r\n <button *ngIf=\"selectedData === 'To Queue'\" class=\"btn btn-primary w-100 ms-2\" [disabled]=\"!Comment\" (click)=\"closeModal()\">Submit</button>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { Subject, takeUntil } from 'rxjs';\r\n\r\n@Component({\r\n selector: 'lib-count',\r\n templateUrl: './count.component.html',\r\n styleUrl: './count.component.scss'\r\n})\r\nexport class CountComponent implements OnInit,OnDestroy {\r\n\r\n private readonly destroy$ = new Subject();\r\n @Input() data:any;\r\n loading:any = true;\r\n noData:any=false;\r\n auditImages:any;\r\n \r\n constructor(private Service:TicketService,private toast:ToastService,private excel : ExcelService,private cd: ChangeDetectorRef){}\r\n ngOnInit(){\r\n this.getAuditImages();\r\n }\r\n \r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n \r\n getAuditImages(){\r\n let params:any = {\r\n fileDate: this.data?.fileDate,\r\n storeId:this.data?.storeId,\r\n imageType:this.data?.imageType,\r\n export : false,\r\n moduleType : this.data?.selectedType,\r\n zoneName: this.data?.zoneName\r\n }\r\n this.Service.getAuditImages(params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res?.code === 200){\r\n this.auditImages = res?.data?.result;\r\n this.loading = false;\r\n this.noData = false;\r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error:(err:any)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n },\r\n })\r\n \r\n }\r\n \r\n exportTable(){\r\n let params:any = {\r\n fileDate: this.data?.fileDate,\r\n storeId:this.data?.storeId,\r\n imageType:this.data?.imageType,\r\n export : true,\r\n moduleType: this.data?.selectedType,\r\n zoneName: this.data?.zoneName\r\n }\r\n let type = this.data?.type === 'before' ? 'BeforeCount' : 'AfterCount'\r\n this.Service.ExportAuditImagesasxlsx(params).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res){\r\n this.excel.saveAsZipFile(res,type)\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.toast.getErrorToast(err?.error)\r\n },\r\n })\r\n \r\n }\r\n \r\n}\r\n","<div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title d-grid\">\r\n <div *ngIf=\"data?.type\" class=\"card-label\">{{data?.type | titlecase}} Count - {{data?.storeId}}</div>\r\n <div class=\"text-sub\">{{data?.fileDate | customDateFormat}}</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button *ngIf=\"!noData\" type=\"button\" (click)=\"exportTable()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><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>\r\n <span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let images of auditImages;let i=index\" style=\"padding: 10px;\">\r\n <img class=\"mx-3 my-3 img\" [src]=\"images?.imgPath\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{images?.imgName}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"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 </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\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 </ng-container>\r\n</div>\r\n\r\n","import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { Subject, takeUntil } from 'rxjs';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport dayjs from \"dayjs\";\r\nimport \"dayjs/locale/en\";\r\nimport utc from \"dayjs/plugin/utc\";\r\nimport timezone from \"dayjs/plugin/timezone\";\r\nimport { ReTriggerComponent } from '../re-trigger/re-trigger.component';\r\nimport { TicketService } from '../../services/ticket.service';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { ExcelService } from '../../services/excel.service';\r\nimport { CountComponent } from '../count/count.component';\r\n\r\n\r\n@Component({\r\n selector: 'lib-audit-metrics',\r\n templateUrl: './audit-metrics.component.html',\r\n styleUrl: './audit-metrics.component.scss'\r\n})\r\nexport class AuditMetricsComponent implements OnInit,OnDestroy {\r\n noData:boolean = false;\r\n loading:boolean = true;\r\n\r\n storesData:any = [];\r\n activity:any = [\r\n {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'},\r\n {type:'Re-Audit',FileDate:'28-10-2023',Time:'03:24 pm',beforeCout:'350',AfterCount:'120'},\r\n {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'}\r\n ]\r\n @ViewChild('activitylog') activitylog:any;\r\n private readonly destroy$ = new Subject();\r\n headerFilter: any;\r\n sortColumName: any = '';\r\n sortBy: any = 1;\r\n filterByClient: any = [];\r\n filterByStatus: any = [];\r\n pagination: any = [10, 20, 30];\r\n searchTerm: any;\r\n limit:any = 10;\r\n offset:any = 1;\r\n selectedValue: string;\r\n dayjs = dayjs;\r\n filterByStore: any = [];\r\n totalCount: any; \r\n selectedTab:any = '';\r\n\r\n dataObject:any = [\r\n { Description: 'Module Type',type:'single', Issues: [{id:'traffic', text: \"Traffic\"},{id:'zone', text: \"Zone\" }]},\r\n { Description: 'Clients', Issues: [] },\r\n { Description: 'Status', Issues: [{id:'closed', text: \"Completed\" }, {id:'inprogress', text: \"Inprogress\" },{id:'drafted', text: \"Draft\" },{id:'assigned', text: \"Assigned\" },{id:'not_assign', text: \"Not Assigened\" },{id:'skipped', text: \"Skip\"},] }\r\n ];\r\n \r\n clientList: any;\r\n selectedType: any = 'traffic';\r\n\r\n constructor(private gs:GlobalStateService,private modalService:NgbModal,private service: TicketService,private toast:ToastService,private excel:ExcelService){\r\n \r\n }\r\n\r\n ngOnInit(){\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {\r\n if(data!=null){\r\n this.headerFilter = data\r\n this.metricsList();\r\n }\r\n })\r\n }\r\n\r\n metricsList(){\r\n let data:any = {\r\n fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),\r\n toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),\r\n filterByClientId : this.filterByClient,\r\n filterByStoreId : this.filterByStore,\r\n filterByStatus : this.filterByStatus,\r\n filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],\r\n filterByModuleType: [this.selectedType],\r\n searchValue: this.searchTerm,\r\n sortBy: this.sortBy,\r\n limit: this.limit,\r\n offset: this.offset,\r\n isExport: false\r\n };\r\n if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}\r\n this.getclientList();\r\n this.service.getstoreMetrics(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res && res?.code === 200){\r\n this.storesData = res?.data?.result;\r\n this.totalCount = res?.data?.count;\r\n if(!this.storesData?.length){\r\n this.noData = true;\r\n }\r\n if(this.totalCount < 10){\r\n this.pagination = [this.totalCount]\r\n }else{\r\n this.pagination = [10, 20, 30]\r\n }\r\n this.loading = false;\r\n this.noData = false;\r\n }else{\r\n this.noData = true;\r\n this.loading = false;\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.noData = true;\r\n this.loading = false;\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n}\r\n\r\nsetItemsperPage(){\r\n if(this.totalCount < 10){\r\n return this.totalCount;\r\n }else{\r\n return this.limit;\r\n }\r\n}\r\n\r\ngetclientList(){\r\n this.service.getclientList().pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res && res?.code ===200){\r\n this.clientList = res?.data?.result;\r\n const issues = this.clientList.map((obj: any) => ({ text: obj.clientName,id:obj.clientId }));\r\n const uniqueIssues:any[] = [];\r\n const Clients = new Set();\r\n issues.forEach((issue:any) => {\r\n if (!Clients.has(issue.text)) {\r\n Clients.add(issue.text);\r\n uniqueIssues.push(issue);\r\n }\r\n });\r\n const filtredObject = (this.dataObject.find((obj: any) => obj.Description === \"Clients\"))\r\n filtredObject.Issues = uniqueIssues;\r\n }\r\n },\r\n error:(err:any) => {\r\n \r\n },\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\r\n receiveData(data:any) {\r\n this.filterByClient = data.find((obj:any) => obj.Description === \"Clients\")?.Issues.map((item: any) => item?.id);\r\n this.filterByStatus = data.find((obj:any) => obj.Description === \"Status\")?.Issues?.map((item: any) => item?.id);\r\n this.selectedType = data.find((obj:any) => obj.Description ==='Module Type')?.Issues?.id;\r\n this.metricsList();\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.pagination.offset = pageOffset;\r\n this.metricsList();\r\n }\r\n \r\n onPageSizeChange(pageSize: any) {\r\n this.pagination.limit = pageSize;\r\n this.pagination.offset = 1;\r\n this.metricsList();\r\n }\r\n\r\n exportXLSX(){\r\n let data:any = {\r\n fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),\r\n toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),\r\n filterByClientId : this.filterByClient,\r\n filterByStoreId : this.filterByStore,\r\n filterByStatus : this.filterByStatus,\r\n filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],\r\n filterByModuleType: [this.selectedType],\r\n searchValue: this.searchTerm,\r\n sortBy: this.sortBy,\r\n limit: 10000,\r\n offset: this.offset,\r\n isExport: true\r\n };\r\n if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}\r\n this.service.getstoreMetricsExport(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any) => {\r\n if(res){\r\n this.excel.saveAsExcelFile(res,'AuditMetrics')\r\n }\r\n },\r\n error:(err:any)=>{\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n }\r\n\r\n selectedTabs(data:any){\r\n if(data === 'all'){\r\n this.selectedTab = '';\r\n }else{\r\n this.selectedTab = data;\r\n }\r\n this.limit = 10;\r\n this.offset = 1;\r\n this.metricsList();\r\n }\r\n\r\n searchData(){\r\n this.searchTerm = this.searchTerm;\r\n this.metricsList();\r\n }\r\n\r\n openBeforecount(value:any) {\r\n const modalRef = this.modalService.open(CountComponent,{\r\n centered:true,\r\n size:'xl'\r\n })\r\n modalRef.componentInstance.data ={\r\n type : 'before',\r\n fileDate:value?.fileDate,\r\n storeId: value?.storeId,\r\n selectedType: this.selectedType,\r\n zoneName:value?.zoneName,\r\n imageType: 'BC'\r\n }\r\n}\r\nopenAftercount(value:any){\r\n const modalRef = this.modalService.open(CountComponent,{\r\n centered:true,\r\n size:'xl'\r\n })\r\nmodalRef.componentInstance.data ={\r\n type : 'after',\r\n fileDate:value?.fileDate,\r\n storeId: value?.storeId,\r\n selectedType: this.selectedType,\r\n zoneName:value?.zoneName,\r\n imageType: 'AC'\r\n}\r\n}\r\n\r\nopenView(){\r\n const modalRef = this.modalService.open(this.activitylog)\r\n}\r\n\r\nopenreTrigger(value:any){\r\n const modalRef = this.modalService.open(ReTriggerComponent,{\r\n centered:true,\r\n // size:''\r\n })\r\n modalRef.componentInstance.reTrigerData ={\r\n type : 'after',\r\n data: value,\r\n selectedType : this.selectedType\r\n }\r\n modalRef.closed.subscribe((res: any) => {\r\n if (res) {\r\n this.service.auditretrigger(res).pipe(takeUntil(this.destroy$)).subscribe({\r\n next:(res:any)=>{\r\n if(res && res.code === 200){\r\n this.toast.getSuccessToast(res?.data?.result);\r\n this.metricsList();\r\n } \r\n },\r\n error:(err:any)=> {\r\n this.toast.getErrorToast(err?.message)\r\n }\r\n })\r\n }\r\n } )\r\n}\r\n\r\nstatusBadge(value:any){\r\n let AccountStatus = value;\r\n if(AccountStatus === 'closed'){\r\n return 'badge-light-success'\r\n }else if(AccountStatus === 'assigned' || AccountStatus === 'not Assigned'){\r\n return 'badge-light-warning'\r\n }else{\r\n return 'badge-light-primary'\r\n }\r\n}\r\n\r\nsortData(value:any){\r\n this.sortColumName = value\r\n this.sortBy *= -1;\r\n this.metricsList();\r\n}\r\n\r\n\r\n}","<div class=\"card\">\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Audit Metrics</span>\r\n <!-- <span class=\"text-sub mb-2\">Last updated 1 hour ago</span> -->\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\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\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\" rx=\"1\"\r\n transform=\"rotate(45 17.0365 15.1223)\" 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\" placeholder=\"Search\" autocomplete=\"off\"\r\n (change)=\"searchData()\" [(ngModel)]=\"searchTerm\" />\r\n \r\n <lib-filters *ngIf=\"clientList\" [dataObject]=\"dataObject\" (appliedFilters)=\"receiveData($event)\"></lib-filters>\r\n\r\n <button type=\"button\" *ngIf=\"!noData&&!loading\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n 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\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n <span class=\"ms-2\">Export</span>\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap horizontal-scroll\">\r\n <li class=\"nav-item\" (click)=\"selectedTabs('all')\">\r\n <a [ngClass]=\"selectedTab === '' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n All <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === '' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.totalauditCount ? totalCount?.totalauditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTabs('Audit')\">\r\n <a [ngClass]=\"selectedTab === 'Audit' ? 'active' :''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n Audit <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === 'Audit' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.auditCount ? totalCount?.auditCount : 0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" (click)=\"selectedTabs('ReAudit')\">\r\n <a [ngClass]=\"selectedTab === 'ReAudit' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-2\">\r\n Re Audit <span class=\"mx-2\"\r\n [ngClass]=\"selectedTab === 'ReAudit' ? 'text-border-priamry' : 'text-border'\">{{totalCount?.reauditCount ? totalCount?.reauditCount : 0}}</span>\r\n </a>\r\n </li>\r\n </ul>\r\n <div *ngIf=\"!loading && !noData\" class=\"mt-5\">\r\n <div class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>File Date</th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('storeName')\">\r\n Store Name\r\n <span\r\n *ngIf=\"sortColumName === 'storeName' && sortBy !== 1 || sortColumName !== 'storeName'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'storeName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('storeId')\">\r\n Store Id\r\n <span\r\n *ngIf=\"sortColumName === 'storeId' && sortBy !== 1 || sortColumName !== 'storeId'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'storeId' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('userName')\">\r\n User Name\r\n <span\r\n *ngIf=\"sortColumName === 'userName' && sortBy !== 1 || sortColumName !== 'userName'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'userName' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('userEmail')\">\r\n User Email\r\n <span\r\n *ngIf=\"sortColumName === 'userEmail' && sortBy !== 1 || sortColumName !== 'userEmail'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'userEmail' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th>BC</th>\r\n <th>AC</th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('accuracy')\">\r\n Accuracy\r\n <span\r\n *ngIf=\"sortColumName === 'accuracy' && sortBy !== 1 || sortColumName !== 'accuracy'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'accuracy' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th><div class=\"cursor-pointer\" (click)=\"sortData('timeSpent')\">\r\n TimeSpent\r\n <span\r\n *ngIf=\"sortColumName === 'timeSpent' && sortBy !== 1 || sortColumName !== 'timeSpent'\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 1.33337V10.6667M6.00016 10.6667L10.6668 6.00004M6.00016 10.6667L1.3335 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span\r\n *ngIf=\"sortColumName === 'timeSpent' && sortBy !== -1\">\r\n <svg width=\"12\" height=\"12\" viewBox=\"0 0 12 12\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M6.00016 10.6667L6.00016 1.33337M6.00016 1.33337L1.3335 6.00004M6.00016 1.33337L10.6668 6.00004\"\r\n stroke=\"#667085\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n \r\n </div></th>\r\n <th>Audit Type</th>\r\n <th>Status</th>\r\n <th><span>Actions</span></th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of storesData\">\r\n <td>\r\n <div>{{ item?.fileDate ? item?.fileDate :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.storeName ? item?.storeName :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{item?.storeId ? item?.storeId : 'NA'}}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.userName ? item?.userName :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div>{{ item?.userEmail ? item?.userEmail :'NA' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"item?.beforeCount ? 'text-decoration-underline':''\" class=\"text-title text-primary cursor-pointer mb-1\" (click)=\"openBeforecount(item)\">\r\n {{ item?.beforeCount ?? '--' }}</div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"item?.afterCount ? 'text-decoration-underline':''\" class=\"text-title text-primary cursor-pointer mb-1\" (click)=\"openAftercount(item)\">\r\n {{ item?.afterCount ?? '--' }}</div>\r\n </div>\r\n </td>\r\n <td>\r\n <div>{{ item?.accuracy ?? '--' }}</div>\r\n </td>\r\n <td>{{ item?.timeSpent ? item?.timeSpent :'NA'}}</td>\r\n <td><span *ngIf=\"item?.auditType\" [ngClass]=\"item?.auditType === 'Audit' ? 'badge-light-success':'badge-light-warning'\" class=\"badge\">{{ item?.auditType }}</span></td>\r\n <td><span *ngIf=\"item?.status\" [ngClass]=\"statusBadge(item?.status)\" class=\"badge\">{{ item?.status | titlecase}}</span></td>\r\n <td><button class=\"btn btn-default btn-outline\" (click)=\"openView()\">View-Log</button>\r\n <button class=\"btn btn-default btn-outline ms-3\" [disabled]=\"item?.status === 'not_assign' || item?.status === 'assigned'\" (click)=\"openreTrigger(item)\">Re-Trigger</button></td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"limit\" [currentPage]=\"offset\" [totalItems]=\"totalCount\"\r\n [paginationSizes]=\"pagination\" [pageSize]=\"setItemsperPage()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n\r\n <div *ngIf=\"loading\" class=\"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 *ngIf=\"noData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\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\r\n </div>\r\n</div>\r\n\r\n<ng-template #activitylog let-modal>\r\n <div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title\">\r\n <span class=\"card-label\">Activity Log</span>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"cursor-pointer\" (click)=\"modal.dismiss()\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg></div> \r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div *ngFor=\"let log of activity\" class=\"d-flex mb-5 ms-5\">\r\n <div\r\n class=\"d-flex flex-column justify-content-center align-items-center pe-3\">\r\n <div class=\"d-flex align-items-centre justify-content-centre\">\r\n <!-- <img class=\"msgprofile\"\r\n src=\"./assets/tango/Images/userProfile.svg\"> -->\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span [ngClass]=\"log?.type === 'Audit' ? 'badge-light-success' : 'badge-light-primary'\" class=\"symbol-label badge-light-primary text-symbol\">\r\n <span [ngClass]=\"log?.type === 'Audit' ? 'text-success badge badge-light-success' : 'text-primary badge badge-light-primary'\" class=\"fs-4 fw-normal\">\r\n {{log?.type?.slice(0,1) | uppercase }}\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"p-0 h-100 mt-1 border border-1 border-gray\" style=\"width:0px\"></div>\r\n </div>\r\n <div class=\"py-3 pt-0\">\r\n <div class=\"activity-title fw-semibold mt-2 d-flex mb-4\">\r\n <span>{{log?.type}} </span><span class=\"ms-5 list\"><li>Fasila</li></span>\r\n </div>\r\n <div class=\"date-time mb-4\">\r\n {{log?.FileDate}} | {{log?.Time}}\r\n </div>\r\n <div class=\"\"><span class=\"badge badge-light-default fw-semibold\">Before Count : {{log?.beforeCout}}</span>\r\n <span class=\"badge badge-light-default fw-semibold ms-3\">After Count : {{log?.AfterCount}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-template>","import { Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\nimport { Subject, takeUntil } from \"rxjs\";\r\nimport { TicketService } from '../../services/ticket.service';\r\n@Component({\r\n selector: 'lib-tango-manage-tickets',\r\n templateUrl: './tango-manage-tickets.component.html',\r\n styleUrl: './tango-manage-tickets.component.scss'\r\n})\r\nexport class TangoManageTicketsComponent implements OnInit,OnDestroy {\r\n SelectedTab:any='installation'\r\n private readonly destroy$ = new Subject();\r\n headerFilters: any;\r\n ticketAllCount: any;\r\n users: any;\r\n constructor(private pageInfo:PageInfoService,private route: ActivatedRoute,private router:Router,public gs:GlobalStateService,private service:TicketService){\r\n }\r\n\r\n ngOnInit(): void {\r\n const userData: any = JSON.parse(localStorage.getItem(\"user-info\") || \"{}\");\r\n this.users = userData;\r\n this.route?.queryParams?.pipe(takeUntil(this.destroy$)).subscribe(params => {\r\n if (params.hasOwnProperty('type')) {\r\n const type = params['type'];\r\n this.Selectedtabs(type);\r\n \r\n } else{\r\n this.updateStoreIdQueryParam()\r\n }\r\n });\r\n this.onLoad(); \r\n this.setPageData();\r\n }\r\n\r\n updateStoreIdQueryParam() {\r\n const queryParams = { ...this.route?.snapshot?.queryParams };\r\n // Update storeId in queryParams\r\n queryParams.type = this.SelectedTab.toLocaleLowerCase();\r\n // Navigate to the same route with updated queryParams\r\n this.router.navigate([], { queryParams: queryParams, queryParamsHandling: 'merge' });\r\n }\r\n\r\n setPageData(){\r\n this.pageInfo.setTitle('Tickets')\r\n this.pageInfo.setDescription('Summary of queries raised,addresed & resolved')\r\n let breadcrumbs : any[]=[];\r\n if (this.gs.userAccess.value?.userType === \"tango\") {\r\n breadcrumbs= [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/brands\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n } else if (this.gs.userAccess.value?.userType === \"client\") {\r\n breadcrumbs= [\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: false,\r\n },\r\n {\r\n title: \"Manage\",\r\n path: \"/manage/summary\",\r\n isActive: false,\r\n isSeparator: true,\r\n },\r\n ];\r\n }\r\n this.pageInfo.setBreadcrumbs(breadcrumbs);\r\n }\r\n\r\n \r\n Selectedtabs(value:any){\r\n this.SelectedTab = value;\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\nonLoad(){\r\n this.gs.dataRangeValue?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.headerFilters = data;\r\n this.getAllCount();\r\n }\r\n }\r\n })\r\n}\r\n\r\ngetAllCount(){\r\n let obj ={\r\n clientId: this.headerFilters?.clients,\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate\r\n }\r\n this.service.getAllCounts(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (res: any) => {\r\n if(res.code ===200){\r\n this.ticketAllCount = res?.data[0];\r\n }\r\n }\r\n })\r\n}\r\n\r\n}\r\n","<div class=\"card mb-5 py-3 px-5\">\r\n <ul class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs border-transparent flex-nowrap\">\r\n <li class=\"nav-item\">\r\n <a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'installation' }\" (click)=\"Selectedtabs('installation')\"\r\n [ngClass]=\"SelectedTab === 'installation' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Installation<span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='installation' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.installationCount?ticketAllCount?.installationCount:0}}</span>\r\n </a>\r\n </li>\r\n <li class=\"nav-item\" >\r\n <a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'infra' }\" (click)=\"Selectedtabs('infra')\"\r\n [ngClass]=\"SelectedTab === 'infra' ? 'active' : ''\" class=\"nav-link cursor-pointer no-border me-3\">\r\n Infra<span class=\"mx-2\" [ngClass]=\"SelectedTab ==='infra' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.infraCount?ticketAllCount?.infraCount:0}}</span>\r\n </a>\r\n </li> \r\n <li class=\"nav-item\" [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'dataMismatch' }\" (click)=\"Selectedtabs('dataMismatch')\">\r\n <a [ngClass]=\"SelectedTab ==='dataMismatch' ? 'active' :''\" class=\"nav-link cursor-pointer me-3\">Data Mismatch\r\n <span class=\"mx-2\" [ngClass]=\"SelectedTab ==='dataMismatch' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.datamismatchCount? ticketAllCount?.datamismatchCount:0}}</span></a>\r\n </li>\r\n <!-- <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'audit' }\" (click)=\"Selectedtabs('audit')\"><a [ngClass]=\"SelectedTab ==='audit' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Audit</a>\r\n </li> -->\r\n <li *ngIf=\"this.users.userType ==='tango'\" class=\"nav-item\" (click)=\"Selectedtabs('mat')\"><a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'mat' }\" [ngClass]=\"SelectedTab ==='mat' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Employee Mat\r\n <span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='mat' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount ?ticketAllCount?.matCount:0}}</span></a>\r\n </li>\r\n </ul>\r\n</div>\r\n\r\n<lib-tickets *ngIf=\"SelectedTab !=='audit'\"></lib-tickets>\r\n<lib-audit-metrics *ngIf=\"SelectedTab ==='audit'\"></lib-audit-metrics>\r\n<router-outlet></router-outlet>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoManageTicketsComponent\r\n }\r\n];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoManageTicketsRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-audit-log',\r\n templateUrl: './audit-log.component.html',\r\n styleUrl: './audit-log.component.scss'\r\n})\r\nexport class AuditLogComponent {\r\n\r\n}\r\n","<p>audit-log works!</p>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\n\r\nimport { TangoManageTicketsRoutingModule } from './tango-manage-tickets-routing.module';\r\nimport { TangoManageTicketsComponent } from './components/tango-manage-tickets/tango-manage-tickets.component';\r\nimport { TicketsComponent } from './components/tickets/tickets.component';\r\nimport { FormsModule } from '@angular/forms';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { AddCsmModalComponent } from './components/add-csm-modal/add-csm-modal.component';\r\nimport { CommentModelComponent } from './components/comment-model/comment-model.component';\r\nimport { AuditMetricsComponent } from './components/audit-metrics/audit-metrics.component';\r\nimport { ReTriggerComponent } from './components/re-trigger/re-trigger.component';\r\nimport { AuditLogComponent } from './components/audit-log/audit-log.component';\r\nimport { CountComponent } from './components/count/count.component';\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoManageTicketsComponent,\r\n TicketsComponent,AddCsmModalComponent, CommentModelComponent, AuditMetricsComponent, ReTriggerComponent, AuditLogComponent, CountComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageTicketsRoutingModule,\r\n FormsModule,\r\n CommonSharedModule\r\n ]\r\n})\r\nexport class TangoManageTicketsModule { }\r\n","/*\r\n * Public API Surface of tango-manage-tickets\r\n */\r\n\r\nexport * from './lib/tango-manage-tickets.module';\r\n\r\nexport * from './lib/components/tango-manage-tickets/tango-manage-tickets.component';\r\n\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i3.TicketService","i2.TicketService","i3","i4","i4.TicketService","i5.ExcelService","i8","i5","i1.TicketService","i2","i3.ExcelService","i5.TicketsComponent","i6.AuditMetricsComponent"],"mappings":"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"}
|