tango-app-ui-manage-tickets 3.3.0-beta.9 → 3.7.0-beta.1
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.
- package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +853 -0
- package/esm2022/lib/components/group-select/group-select.component.mjs +155 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +108 -0
- package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +4 -3
- package/esm2022/lib/components/tickets/tickets.component.mjs +39 -4
- package/esm2022/lib/services/ticket.service.mjs +58 -1
- package/esm2022/lib/tango-manage-tickets.module.mjs +16 -4
- package/fesm2022/tango-app-ui-manage-tickets.mjs +1227 -34
- package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
- package/lib/components/footfall-dic/footfall-dic.component.d.ts +127 -0
- package/lib/components/group-select/group-select.component.d.ts +33 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +32 -0
- package/lib/components/tickets/tickets.component.d.ts +1 -0
- package/lib/services/ticket.service.d.ts +12 -1
- package/lib/tango-manage-tickets.module.d.ts +8 -5
- package/package.json +1 -1
|
@@ -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.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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"}
|
|
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/reactive-select/reactive-select.component.ts","../../../projects/tango-manage-tickets/src/lib/components/reactive-select/reactive-select.component.html","../../../projects/tango-manage-tickets/src/lib/components/group-select/group-select.component.ts","../../../projects/tango-manage-tickets/src/lib/components/group-select/group-select.component.html","../../../projects/tango-manage-tickets/src/lib/components/footfall-dic/footfall-dic.component.ts","../../../projects/tango-manage-tickets/src/lib/components/footfall-dic/footfall-dic.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\nimport { HttpParams } from '@angular/common/http';\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 footfallDirapiUrl: any;\r\n footfallCDN:any;\r\n trafficApiUrl:any;\r\n dropDownTrigger = new BehaviorSubject<any>(null)\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 this.footfallDirapiUrl= env.footfallDirapiUrl;\r\n this.footfallCDN =env.footfallCDN;\r\n this.trafficApiUrl =env.trafficApiUrl;\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 getTicketSummaryApi(client: any, fromDate: any, toDate: any): Observable<any> {\r\n return this.http.get(`${this.footfallDirapiUrl}/ticket-summary?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}`);\r\n }\r\n\r\n getTicketListApi(client: any, fromDate: any, toDate: any, searchvalue:any, limit:any, offset:any, isExport:any,sortBy:any,sortOrder:any): Observable<any> {\r\n return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`);\r\n }\r\n\r\n getTicketListExportApi(client: any, fromDate: any, toDate: any, searchvalue:any, limit:any, offset:any, isExport:any,sortBy:any,sortOrder:any): Observable<any> {\r\n return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`,{responseType: 'arraybuffer'});\r\n }\r\n\r\n\r\n\r\ngetTicketsApi(store: any, fromDate: any, toDate: any, revopsType: any, status: any, action: any, offset: any, limit: any): Observable<any> {\r\n let params = new HttpParams()\r\n .set('storeId', store)\r\n .set('fromDate', fromDate)\r\n .set('toDate', toDate)\r\n .set('offset', offset)\r\n .set('limit', limit);\r\n if (revopsType) {\r\n params = params.set('revopsType', revopsType);\r\n }\r\n if (status) {\r\n params = params.set('status', status);\r\n }\r\n if (action) {\r\n params = params.set('action', action);\r\n }\r\n return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });\r\n}\r\n\r\ngetTaggedStoresApi(client: any, fromDate: any, toDate: any,searchValue:any, clusters: any): Observable<any> {\r\n let params = new HttpParams()\r\n .set('clientId', client)\r\n .set('fromDate', fromDate)\r\n .set('toDate', toDate); // Add searchValue as an empty string if not provided\r\n // Only add 'clusters' if it's not null, undefined, or an empty array/string\r\n if (searchValue) {\r\n params = params.set('searchValue', searchValue);\r\n }\r\n if (clusters && clusters.length > 0) {\r\n params = params.set('clusters', clusters);\r\n }\r\n return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, { params });\r\n}\r\n\r\n\r\ngetUpdateStatusApi(data:any): Observable<any> {\r\n const url = `${this.footfallDirapiUrl}/update-status`;\r\n return this.http.put(url, data);\r\n}\r\n getclusters(data: any) {\r\n return this.http.post(`${this.trafficApiUrl}/headercluster_v2`, data)\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 = \"Resolved 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 this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit=10;\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 if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\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 if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\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 if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] } 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 if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\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 setpageSize() {\r\n if (this.totalItems < 10) {\r\n return this.totalItems;\r\n } else {\r\n return this.pageSize;\r\n }\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 *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<!-- added config and total downtime as per the prioduct team requirement -->\r\n <th>Configured Ticket Time\r\n </th> \r\n\r\n <th >Total Downtime\r\n </th>\r\n<!-- -->\r\n\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==='infra'\">\r\n{{obj.configuredDownTime?obj.configuredDownTime*60:0 || 0 }} {{obj.configuredDownTime > 1? 'mins' : 'min'}} \r\n </td>\r\n <td *ngIf=\"type==='infra'\"> \r\n{{obj.totalDownTime || 0 }} {{obj.totalDownTime > 1? 'mins' : 'min'}} \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]=\"setpageSize()\" (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 { ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnInit, Output, Provider, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { TicketService } from '../../services/ticket.service';\r\n\r\nconst SELECT_CONTROL_VALUE_ACCESSOR: Provider = {\r\n provide: NG_VALUE_ACCESSOR,\r\n useExisting: forwardRef(() => ReactiveSelectComponent),\r\n multi: true,\r\n};\r\n\r\n@Component({\r\n selector: 'lib-reactive-select',\r\n templateUrl: './reactive-select.component.html',\r\n styleUrl: './reactive-select.component.scss',\r\n providers: [SELECT_CONTROL_VALUE_ACCESSOR]\r\n})\r\nexport class ReactiveSelectComponent implements ControlValueAccessor, OnInit {\r\n\r\n private onTouched: Function;\r\n private onChanged: Function;\r\n @Input() isDisabled: boolean;\r\n @Input() idField: string\r\n @Input() nameField: string\r\n @Input() label: string\r\n @Input() data: any\r\n @Output() itemChange = new EventEmitter()\r\n protected isOpened: boolean = false\r\n protected selected: Record<string, any> | null = null\r\n protected selectedId: string | number\r\n instanceId: string;\r\n\r\n\r\n constructor(private apiService: TicketService, private cd: ChangeDetectorRef) {\r\n\r\n }\r\n\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.apiService.dropDownTrigger.subscribe((e) => {\r\n if (e !== this.instanceId) {\r\n this.isOpened = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n\r\n\r\n writeValue(val: string | number): void {\r\n this.selectedId = val\r\n this.selected = this.data.filter((item: Record<string, any>) => item?.[this.idField] === val)[0]\r\n \r\n }\r\n registerOnChange(fn: any): void {\r\n this.onChanged = fn\r\n \r\n }\r\n registerOnTouched(fn: any): void {\r\n this.onTouched = fn\r\n }\r\n setDisabledState?(isDisabled: boolean): void {\r\n this.isDisabled = isDisabled\r\n\r\n }\r\n\r\n onSelect(item: Record<string, any>) {\r\n this.onTouched()\r\n this.selected = item\r\n this.selectedId = item?.[this.idField]\r\n this.isOpened = false\r\n this.itemChange.next(this.selectedId)\r\n this.onChanged(this.selectedId)\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n // console.log(this.isDisabled)\r\n if (!this.isDisabled) {\r\n const targetElement = event.target as HTMLElement;\r\n if (!this.isComponentClicked(targetElement)) {\r\n this.isOpened = false;\r\n }\r\n }\r\n }\r\n\r\n isComponentClicked(targetElement: HTMLElement): boolean {\r\n const parentElement = targetElement.parentElement;\r\n if (parentElement) {\r\n const clickedOnComponent = parentElement.classList.contains('custom-select');\r\n if (clickedOnComponent) {\r\n return true;\r\n } else {\r\n return this.isComponentClicked(parentElement);\r\n }\r\n }\r\n return false;\r\n }\r\n\r\n openDropdown(){\r\n this.isOpened = !this.isOpened;\r\n this.apiService.dropDownTrigger.next(this.instanceId)\r\n }\r\n\r\n\r\n}\r\n","<div class=\"custom-select\">\r\n <div class=\"form-group\">\r\n <label *ngIf=\"label\" class=\"form-label\">{{label}}</label>\r\n <div class=\"position-relative\">\r\n <div (click)=\"openDropdown()\" [ngClass]=\"isDisabled ? 'disable' : ''\" class=\"form-select dropselect ellipse1\">\r\n {{selected?.[nameField]}}</div>\r\n <div *ngIf=\"isOpened\" class=\"card py-2 w-100 position-absolute end-0 z-1 drop-list\">\r\n <ul class=\"list-unstyled mb-2\">\r\n <li *ngFor=\"let item of data\" (click)=\"onSelect(item)\"\r\n [ngClass]=\"item?.[idField] === selected?.[idField] ? 'active' : ''\"\r\n class=\"text px-5 items cursor-pointer py-4 \">\r\n {{item?.[nameField]}}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectionStrategy, ChangeDetectorRef, Component, EventEmitter, HostListener, Input, OnChanges, OnInit, Output, SimpleChanges } from '@angular/core';\r\nimport { TicketService } from '../../services/ticket.service';\r\n@Component({\r\n selector: 'lib-group-select',\r\n templateUrl: './group-select.component.html',\r\n styleUrl: './group-select.component.scss'\r\n})\r\nexport class GroupSelectComponent implements OnInit, OnChanges {\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\r\n const target = event.target as HTMLElement;\r\n if (!target.closest('.dropdown')) {\r\n this.showDropdown = false;\r\n }\r\n }\r\n \r\n @Input() items: any\r\n @Input() searchField: string\r\n @Input() multi: boolean\r\n @Input() idField: string\r\n @Input() selectedValues: any = []\r\n @Input() disabled: boolean | undefined\r\n @Input() label: string\r\n @Output() selected = new EventEmitter<any>()\r\n filteredValues: any = []\r\n showDropdown: boolean\r\n searchValue: string\r\n instanceId: any;\r\n \r\n \r\n constructor(private cd: ChangeDetectorRef, private authService:TicketService) { }\r\n ngOnInit(): void {\r\n this.instanceId = crypto.randomUUID();\r\n this.authService.dropDownTrigger.subscribe((e)=>{ \r\n if(e !== this.instanceId){ \r\n this.showDropdown = false\r\n this.cd.detectChanges()\r\n }\r\n })\r\n }\r\n \r\n ngOnChanges(changes: SimpleChanges): void {\r\n \r\n if (changes['items'] && this.items?.length) {\r\n this.initializeItems();\r\n }\r\n if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) { \r\n this.updateSelectedValues();\r\n }\r\n }\r\n \r\n initializeItems() {\r\n this.filteredValues = this.items.map((item: any) => ({ ...item }));\r\n this.updateSelectedValues()\r\n }\r\n \r\n updateSelectedValues() { \r\n this.selectedValues?.forEach((selectedItem: any) => {\r\n const item = this.filteredValues?.find((filteredItem: any) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);\r\n if (item) {\r\n item.isSelected = true;\r\n }\r\n });\r\n \r\n }\r\n \r\n openDropdown(event: any) {\r\n this.authService.dropDownTrigger.next(this.instanceId)\r\n event.stopPropagation();\r\n this.showDropdown = !this.showDropdown;\r\n }\r\n \r\n onInput(event: any) {\r\n if (!event.target.value) {\r\n this.filteredValues = [...this.items];\r\n } else {\r\n const searchTerm = event.target.value.toLowerCase();\r\n this.filteredValues = this.items.filter((item: any) =>\r\n item[this.searchField].toLowerCase().includes(searchTerm)\r\n );\r\n }\r\n this.updateSelectedValues();\r\n this.cd.detectChanges();\r\n }\r\n \r\n onSelect(event: any, item: any) { \r\n if (this.multi) {\r\n if (event.currentTarget.checked) {\r\n this.selectedValues.push(item ); \r\n } else {\r\n this.selectedValues = this.selectedValues.filter((elem: any) => elem[this.idField] !== item[this.idField]);\r\n }\r\n } else {\r\n this.selectedValues = [{ ...item }];\r\n this.filteredValues.forEach((element:any) => {\r\n if(element[this.idField] !== item[this.idField]){\r\n element.isSelected = false\r\n }\r\n });\r\n this.showDropdown = false;\r\n }\r\n \r\n const valuesToEmit = this.selectedValues.map((value: any) => {\r\n const selectedItem = { ...value };\r\n delete selectedItem.isSelected;\r\n return selectedItem;\r\n });\r\n \r\n this.cd.detectChanges();\r\n this.emitSelectedValues(valuesToEmit);\r\n \r\n }\r\n \r\n onSelectAll(event: any) {\r\n const selectAll = event.currentTarget.checked;\r\n this.filteredValues.forEach((item: any) => item.isSelected = selectAll);\r\n \r\n if (selectAll) {\r\n this.selectedValues = [...this.filteredValues];\r\n } else {\r\n this.selectedValues = [];\r\n }\r\n \r\n const valuesToEmit = this.selectedValues.map((value: any) => {\r\n const { isSelected, ...selectedItem } = value;\r\n return selectedItem;\r\n });\r\n \r\n this.cd.detectChanges();\r\n this.emitSelectedValues(valuesToEmit);\r\n }\r\n \r\n \r\n emitSelectedValues(values: any[]) {\r\n if (this.multi) {\r\n this.selected.emit(values);\r\n } else {\r\n this.selected.emit(values[0]);\r\n }\r\n }\r\n \r\n checkIfAllSelected() {\r\n return this.filteredValues.every((item: any) => item.isSelected);\r\n }\r\n}\r\n","<div class=\"outer-container\">\r\n <div [ngClass]=\"disabled ? 'disable-input':''\" (click)=\"openDropdown($event)\" class=\"form-select\">\r\n <ng-container *ngIf=\"multi\" >\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\"> <img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[0]?.[searchField]}}</span> \r\n <!-- <span *ngIf=\"selectedValues?.length > 1\" class=\"select-value mx-2\"><img class=\"me-2\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\">{{selectedValues?.[1]?.[searchField]}}</span> -->\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">+{{selectedValues?.length -1}}</span> {{label}} \r\n </ng-container>\r\n <ng-container *ngIf=\"!multi\" >\r\n {{selectedValues?.[0]?.[searchField]}}\r\n </ng-container>\r\n </div>\r\n <div [ngClass]=\"showDropdown ? '' : 'd-none'\" class=\"input-container dropdown\" >\r\n <div class=\"w-100 input-wrapper\">\r\n <input [(ngModel)]=\"searchValue\" placeholder=\"Search\" (input)=\"onInput($event)\" type=\"text\"> \r\n <svg class=\"search-icon\" xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"17\" viewBox=\"0 0 16 17\" fill=\"none\">\r\n <path d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\" stroke=\"#667085\" stroke-width=\"1.3\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg> \r\n </div>\r\n <ul>\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\" >\r\n <input (change)=\"onSelectAll($event)\" [checked]=\"checkIfAllSelected()\" class=\"form-check-input me-3\" type=\"checkbox\"\r\n [id]=\"instanceId\">\r\n <span class=\"form-check-label\" >\r\n Select All\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngFor=\"let item of filteredValues\" [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\" >\r\n <label [for]=\"item[idField] + instanceId\" [ngClass]=\"multi ? '': 'ps-0'\" class=\"form-check\">\r\n <input [ngClass]=\"multi ? '': 'd-none'\" (change)=\"onSelect($event, item)\" [(ngModel)]=\"item.isSelected\" class=\"form-check-input me-3\" type=\"checkbox\" value=\"\"\r\n [id]=\"item[idField] + instanceId\">\r\n <span class=\"form-check-label\" >\r\n {{item[searchField]}}\r\n </span>\r\n </label>\r\n </li>\r\n <li *ngIf=\"!filteredValues?.length\" >\r\n <span class=\"d-flex align-items-center justify-content-center\" >No data found</span>\r\n </li>\r\n </ul> \r\n </div> \r\n \r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit,ElementRef,ViewChild } from '@angular/core';\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\nimport { ExcelService } from '../../services/excel.service';\r\nimport { FormBuilder, FormControl } from '@angular/forms';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\n\r\n@Component({\r\n selector: \"lib-footfall-dic\",\r\n templateUrl: \"./footfall-dic.component.html\",\r\n styleUrl: \"./footfall-dic.component.scss\",\r\n})\r\nexport class FootfallDicComponent implements OnInit,OnDestroy {\r\n searchValue: any;\r\n loading: boolean = false;\r\n noData: boolean = false;\r\n sortedColumn: any='';\r\n sortDirection: any=1;\r\n\r\n footfallView:boolean = true;\r\n headerFilters: any;\r\n footfallList_req: any;\r\n form: any;\r\n selectedRevopsType: FormControl;\r\n revopsTypeArray: any = [\r\n { value: \"\", label: \"All\" },\r\n { value: \"duplicateImages\", label: \"Duplicates\" },\r\n { value: \"employee\", label: \"Employee/Staff\" },\r\n { value: \"houseKeeping\", label: \"House Keeping\" },\r\n ];\r\n type: any = [\r\n { value: \"open\", label: \"Open\" },\r\n { value: \"closed\", label: \"Closed\" },\r\n ];\r\n // selectedStatus: FormControl;\r\n\r\n pendingArray: any = [\r\n { value: \"\", label: \"All\" },\r\n { value: \"pending\", label: \"Pending\" },\r\n { value: \"approved\", label: \"Approved\" },\r\n { value: \"rejected\", label: \"Rejected\" },\r\n ];\r\n actionStatus: FormControl;\r\n filterForm:any;\r\n\r\n ticketData: any = {\r\n ticketName: \"Footfall Directory\",\r\n ticketId: \"TE_INF_F5645G4534A24\",\r\n storeName: \"LKST98 | RK Salai, Mylapore, Chennai, Tamil Nadu, India\",\r\n status: \"Open\",\r\n date: \"04 Sep 2023\",\r\n footfall: {\r\n total: 100,\r\n duplicates: 10,\r\n employee: 2,\r\n houseKeeping: 1,\r\n },\r\n duplicates: [\r\n { url: \"assets/img1.jpg\" },\r\n { url: \"assets/img2.jpg\" },\r\n { url: \"assets/img3.jpg\" },\r\n ],\r\n };\r\n selectedStores: any[] = []; \r\nallSelected: boolean = false;\r\nstores: any[] = []; \r\n private readonly destroy$ = new Subject();\r\n\r\n constructor(\r\n private gs: GlobalStateService,\r\n private ticketService: TicketService,\r\n private cd: ChangeDetectorRef,\r\n private toast: ToastService,private modalService: NgbModal,\r\n private excelservice: ExcelService,private fb: FormBuilder,\r\n ) {}\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n ngOnInit(): void {\r\n this.footfallView = true;\r\n\r\n this.selectedRevopsType = new FormControl('');\r\n this.filterForm = this.fb.group({\r\n selectedStatus: new FormControl('open'),\r\n actionStatus: new FormControl(''),\r\n ClusterList: new FormControl([]),\r\n });\r\n\r\n this.form = this.fb.group({\r\n selectedRevopsType: this.selectedRevopsType,\r\n });\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.footfallList_req = {\r\n client: this.headerFilters.clients.toString(),\r\n fromDate: this.headerFilters?.date?.startDate,\r\n toDate: this.headerFilters?.date?.endDate,\r\n };\r\n this.getTicketSummary();\r\n this.getTicketList();\r\n this.getAllGroups();\r\n \r\n }\r\n },\r\n });\r\n }\r\n getFootfallSummaryData: any;\r\n getTicketSummary() {\r\n this.ticketService\r\n .getTicketSummaryApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res?.data && res?.data?.result) {\r\n this.getFootfallSummaryData = res?.data?.result;\r\n } else {\r\n this.getFootfallSummaryData = [];\r\n }\r\n },\r\n error: (err: any) => {\r\n this.getFootfallSummaryData = [];\r\n },\r\n complete: () => {\r\n this.getFootfallSummaryData.length === 0;\r\n },\r\n });\r\n this.cd.detectChanges();\r\n }\r\n offset = 0;\r\n limit = 10;\r\n isExport:any = false;\r\n footfallListData:any;\r\n totalItems:any;\r\n paginationSizes = [10, 20, 30];\r\n getTicketList(){\r\n this.loading = true;\r\n this.searchValue = this.searchValue?.trim() || '';\r\n this.offset = this.offset || 1;\r\n this.limit = this.limit || 10;\r\n this.isExport = false;\r\n this.ticketService\r\n .getTicketListApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.searchValue,this.limit,\r\n this.offset,this.isExport,this.sortedColumn,this.sortDirection\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.noData = false;\r\n this.loading = false;\r\n this.footfallListData = res?.data?.result;\r\n \r\n this.totalItems = res?.data?.count;\r\n if (this.totalItems < 10) { this.paginationSizes = [this.totalItems] } else { this.paginationSizes = [10, 20, 30] }\r\n } else {\r\n this.noData = true;\r\n this.loading = false;\r\n this.footfallListData =[];\r\n \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 complete: () => {\r\n this.loading = false;\r\n },\r\n });\r\n }\r\n\r\ncurrentPage:any = 1;\r\npageSize:any = 10;\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.getTicketList();\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.getTicketList();\r\n }\r\n\r\n setpageSize() {\r\n if (this.totalItems < 10) {\r\n return this.totalItems;\r\n } else {\r\n return this.pageSize;\r\n }\r\n }\r\n searchData() {\r\n this.currentPage = 1;\r\n this.offset = 1;\r\n this.limit=10;\r\n this.getTicketList();\r\n }\r\n\r\n exportXLSX() {\r\n this.searchValue = this.searchValue?.trim() || '';\r\n this.offset = 1;\r\n this.limit = 10000;\r\n this.isExport = true;\r\n this.ticketService\r\n .getTicketListExportApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.searchValue,this.limit,\r\n this.offset,this.isExport,this.sortedColumn,this.sortDirection\r\n )\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n this.excelservice.saveAsExcelFile(res, 'footfall directory ticket ')\r\n },\r\n error: (err: any) => {\r\n this.toast.getErrorToast('Error exporting data:' + err.error ? err.error : err.message);\r\n }\r\n })\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.getTicketList();\r\n }\r\n storeCount:any;\r\n\r\n searchStoresData(){\r\nthis.getStores();\r\n }\r\n\r\n StoresSearchValue:any='';\r\n getStores(){\r\n this.ticketService.getTaggedStoresApi(\r\n this.footfallList_req.client,\r\n this.footfallList_req.fromDate,\r\n this.footfallList_req.toDate,\r\n this.StoresSearchValue,\r\n this.groups,\r\n ).pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if (res && res.code === 200) {\r\n this.stores = res?.data?.result;\r\n this.storeCount = res.data?.count || 0;\r\n } else {\r\n this.stores = [];\r\n this.storeCount =0;\r\n }\r\n this.cd.detectChanges();\r\n },\r\n error: (err: any) => {\r\n this.stores =[];\r\n this.storeCount =0;\r\n },\r\n complete: () => {},\r\n }); \r\n }\r\ngetTaggedStoresData: any;\r\n\r\n\r\ntypeChange(event: any) {\r\n this.filterForm.get('selectedStatus')?.setValue(event || null);\r\n}\r\n\r\npendingChange(event: any) {\r\n this.filterForm.get('actionStatus')?.setValue(event || null);\r\n}\r\n\r\nRevopsTypeChange(event: any) {\r\n const selectedType = event ?? '';\r\n this.footfalloffset =1;\r\n if( selectedType === '') \r\nthis.footfalllimit = 1;\r\n else\r\n this.footfalllimit = 250;\r\n this.form.get('selectedRevopsType')?.setValue(selectedType);\r\nthis.allSelectValue =false;\r\n // Clear selected lists\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n\r\n // Reset counts\r\n this.employeeACCount = '';\r\n this.houseKeepingACCount = '';\r\n this.duplicateACCount = '';\r\n this.dataStoreView(); \r\n}\r\n\r\n\r\n\r\n footfalloffset=1;\r\n footfalllimit=1;\r\nfootfallTicketsData:any=[];\r\nstoreIdValue:any;\r\n \r\n\r\ndataReset(){\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.form.get('selectedRevopsType')?.setValue('');\r\n this.filterForm.get('selectedStatus')?.setValue('open');\r\n this.filterForm.get('actionStatus')?.setValue('pending');\r\n this.dataStoreView();\r\n}\r\ndataApply() {\r\n this.allSelectValue =false\r\n this.dataStoreView();\r\n}\r\nimageUrl:any;\r\ndataIndexId:any;\r\ndateString:any;\r\n footfallNoData = false;\r\n footfallLoading = true;\r\n private lastSelectedTicket: any = null;\r\n\r\nhasInitialStoreSynced = false;\r\n\r\naddStoreIfNotExists(store: any) {\r\n if (this.hasInitialStoreSynced) return;\r\n\r\n const storeId = store?.storeId;\r\n if (storeId && !this.selectedStores.includes(storeId)) {\r\n this.selectedStores.push(storeId);\r\n }\r\n\r\n this.hasInitialStoreSynced = true;\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n}\r\n\r\ndataStoreView(data?: any) {\r\n this.footfallTicketsData = [];\r\n this.footfallNoData = false;\r\n this.footfallLoading = true;\r\n const ticket = data?._source ? data : this.lastSelectedTicket;\r\n\r\n if (!ticket || !ticket._source) {\r\n this.footfallLoading = false;\r\n this.footfallNoData = true;\r\n this.toast.getErrorToast('No ticket data available');\r\n return;\r\n }\r\n\r\n this.lastSelectedTicket = ticket;\r\nthis.addStoreIfNotExists(ticket._source);\r\n this.dataIndexId = ticket._id || '';\r\n this.dateString = ticket._source.dateString || '';\r\n this.imageUrl = this.ticketService?.footfallCDN;\r\n this.storeIdValue = this.selectedStores; \r\n const revopsType = this.form.get('selectedRevopsType')?.value;\r\n const selectedStatus = this.filterForm.get('selectedStatus')?.value;\r\n const actionStatus = this.filterForm.get('actionStatus')?.value;\r\n\r\n const storeId = this.storeIdValue;\r\n const fromDate = this.footfallList_req.fromDate;\r\n const toDate = this.footfallList_req.toDate;\r\n const offset = this.footfalloffset;\r\n const limit = revopsType ==='' ? this.footfalllimit :this.footfalllimit = 250;\r\n\r\n this.ticketService\r\n .getTicketsApi(storeId, fromDate, toDate, revopsType, selectedStatus, actionStatus, offset, limit)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res: any) => {\r\n if(res && res.code ===200){\r\n if (res?.data?.result?.length === 0) {\r\n this.footfallTicketsData = [];\r\n this.footfallView = true;\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n this.toast.getErrorToast('No data found for the selected filters');\r\n } else {\r\n this.footfallTicketsData = res?.data?.result ?? [];\r\n this.totalItemsFootfall = res?.data?.count;\r\n\r\n this.paginationSizes = this.totalItemsFootfall < 1\r\n ? [this.totalItemsFootfall]\r\n : [1];\r\n\r\n this.footfallView = false;\r\n this.footfallNoData = false;\r\n this.footfallLoading = false;\r\n }\r\n } else {\r\n this.footfallTicketsData = [];\r\n this.footfallView = false;\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n }\r\n },\r\n error: () => {\r\n this.footfallTicketsData = [];\r\n this.footfallView = false;\r\n this.footfallNoData = true;\r\n this.footfallLoading = false;\r\n },\r\n complete: () => {\r\n this.cd.detectChanges();\r\n },\r\n });\r\n}\r\n\r\nisCollapsed = false;\r\n\r\ntoggleSidebar() {\r\n this.isCollapsed = !this.isCollapsed;\r\n}\r\n matchedType: any;\r\n\r\n matchedArray: any = [{ value: \"all\", label: \"matched: All\" }];\r\n onFilterApply() {\r\n this.dataStoreView();\r\n\r\n }\r\npageSizeFootfall:any = 1;\r\nfootfallcurrentPage:any = 1;\r\n onFootfallPageChange(pageOffset: number) {\r\n this.footfallcurrentPage = Number(pageOffset);\r\n this.footfalloffset = Number(pageOffset);\r\n this.footfalllimit =1;\r\n this.dataStoreView();\r\n }\r\n\r\n onFootfallPageSizeChange(pageSize: number) {\r\n this.footfalllimit = Number(pageSize);\r\n this.pageSizeFootfall = Number(pageSize);\r\n this.footfallcurrentPage = 1;\r\n this.footfalloffset = 1;\r\n this.dataStoreView();\r\n }\r\ntotalItemsFootfall:any;\r\n setFootfallpageSize() {\r\n if (this.totalItemsFootfall < 1) {\r\n return this.totalItemsFootfall;\r\n } else {\r\n return this.pageSizeFootfall;\r\n }\r\n }\r\n\r\n\r\n\r\ntoggleStoreSelection(store: any) {\r\n const storeId = store?.storeId;\r\n if (!storeId) return;\r\n\r\n const index = this.selectedStores.indexOf(storeId);\r\n\r\n if (index > -1) {\r\n this.selectedStores.splice(index, 1);\r\n } else {\r\n this.selectedStores.push(storeId);\r\n }\r\n\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n}\r\n\r\n\r\ntoggleSelectAll() {\r\n const visibleStoreIds = this.filteredStores.map((s) => s.storeId);\r\n\r\n if (this.allSelected) {\r\n // Remove only the visible ones\r\n this.selectedStores = this.selectedStores.filter(\r\n id => !visibleStoreIds.includes(id)\r\n );\r\n } else {\r\n // Add only those that are not already selected\r\n const newIds = visibleStoreIds.filter(id => !this.selectedStores.includes(id)\r\n );\r\n this.selectedStores = [...this.selectedStores, ...newIds];\r\n }\r\n\r\n this.allSelected = this.selectedStores.length === this.stores.length;\r\n}\r\n\r\n\r\nisSelected(store: any): boolean {\r\n return this.selectedStores.includes(store.storeId);\r\n}\r\n\r\n\r\n imgtoggleSelectAll() {\r\n this.allSelected = !this.allSelected;\r\n this.ticketData.duplicates.forEach((img: any) => {\r\n img.selected = this.allSelected;\r\n });\r\n }\r\n\r\n selectedImagesList: any[] = [];\r\n\r\n selectedDuplicateImagesList: any[] = [];\r\n selectedHousekeepingImagesList: any[] = [];\r\n selectedEmployeeImagesList: any[] = [];\r\nhouseKeepingACCount:any;\r\nemployeeACCount:any;\r\nduplicateACCount:any;\r\n\r\ncloneWithoutSelected(obj: any) {\r\n const { ...rest } = obj;\r\n return rest;\r\n}\r\n\r\n\r\nallSelectValue = false;\r\n\r\ncloneWithoutSelected1(data: any): any {\r\n const { __parent, ...rest } = data;\r\n return { ...rest };\r\n}\r\n\r\nonImageCheckboxChange1(data: any, category: string, parentOriginal?: any) {\r\n let selectedList: any;\r\n\r\n if (category === 'duplicate') {\r\n parentOriginal = parentOriginal || data.__parent;\r\n\r\n const existingOriginal = this.selectedDuplicateImagesList.find(\r\n (item: any) => item.tempId === parentOriginal?.tempId\r\n );\r\n\r\n if (data.selected) {\r\n if (existingOriginal) {\r\n const alreadyExists = existingOriginal.data?.some(\r\n (dup: any) => dup.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n existingOriginal.data.push(this.cloneWithoutSelected1(data));\r\n }\r\n } else {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: parentOriginal?.tempId,\r\n filePath: parentOriginal?.filePath,\r\n entryTime: parentOriginal?.entryTime,\r\n exitTime: parentOriginal?.exitTime,\r\n timeRange: parentOriginal?.timeRange,\r\n data: [this.cloneWithoutSelected1(data)],\r\n });\r\n }\r\n } else {\r\n if (existingOriginal) {\r\n existingOriginal.data = existingOriginal.data.filter(\r\n (d: any) => d.tempId !== data.tempId\r\n );\r\n\r\n if (existingOriginal.data.length === 0) {\r\n this.selectedDuplicateImagesList = this.selectedDuplicateImagesList.filter(\r\n (o: any) => o.tempId !== parentOriginal?.tempId\r\n );\r\n }\r\n }\r\n }\r\n\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n }\r\n\r\n if (category === 'employee') {\r\n selectedList = this.selectedEmployeeImagesList;\r\n } else if (category === 'housekeeping') {\r\n selectedList = this.selectedHousekeepingImagesList;\r\n }\r\n\r\n if (category !== 'duplicate') {\r\n if (data.selected) {\r\n const alreadyExists = selectedList.some((item: any) => item.tempId === data.tempId);\r\n if (!alreadyExists) {\r\n selectedList.push(data);\r\n }\r\n } else {\r\n const index = selectedList.findIndex((item: any) => item.tempId === data.tempId);\r\n if (index !== -1) {\r\n selectedList.splice(index, 1);\r\n }\r\n }\r\n\r\n this.employeeACCount = this.selectedEmployeeImagesList.length;\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList.length;\r\n }\r\n\r\n // 🔒 Disable other checkboxes if one type is selected\r\n const totalSelected =\r\n this.duplicateACCount + this.employeeACCount + this.houseKeepingACCount;\r\n\r\n if (totalSelected > 0) {\r\n this.checkedValue = false;\r\n } else {\r\n this.checkedValue = true;\r\n }\r\n\r\n this.cd.detectChanges(); // To update the template\r\n this.allSelectValue = this.areAllCheckboxesSelected();\r\n\r\n // console.log('✅ Counts:', {\r\n // duplicateACCount: this.duplicateACCount,\r\n // employeeACCount: this.employeeACCount,\r\n // houseKeepingACCount: this.houseKeepingACCount,\r\n // checkedValue: this.checkedValue,\r\n // });\r\n}\r\n\r\n\r\n\r\nselectAllValue() {\r\n this.allSelectValue = !this.allSelectValue;\r\n this.checkedValue = !this.allSelectValue;\r\n\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n // ✅ Employee\r\n if (Array.isArray(source.employee)) {\r\n source.employee.forEach((img: any) => {\r\n img.selected = this.allSelectValue;\r\n if (this.allSelectValue && !this.selectedEmployeeImagesList.some(e => e.tempId === img.tempId)) {\r\n this.selectedEmployeeImagesList.push(img);\r\n }\r\n });\r\n }\r\n\r\n // ✅ Housekeeping\r\n if (Array.isArray(source.houseKeeping)) {\r\n source.houseKeeping.forEach((emp: any) => {\r\n emp.selected = this.allSelectValue;\r\n if (this.allSelectValue && !this.selectedHousekeepingImagesList.some(e => e.tempId === emp.tempId)) {\r\n this.selectedHousekeepingImagesList.push(emp);\r\n }\r\n });\r\n }\r\n\r\n // ✅ Duplicate\r\n if (Array.isArray(source.duplicateImages)) {\r\n source.duplicateImages.forEach((original: any) => {\r\n if (Array.isArray(original.data)) {\r\n original.data.forEach((dup: any) => {\r\n dup.selected = this.allSelectValue;\r\n dup.__parent = original; // ✅ Needed for uncheck\r\n });\r\n\r\n if (this.allSelectValue && original.data.length > 0) {\r\n const existing = this.selectedDuplicateImagesList.find(\r\n (o: any) => o.tempId === original.tempId\r\n );\r\n\r\n if (!existing) {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: original.tempId,\r\n filePath: original.filePath,\r\n entryTime: original.entryTime,\r\n exitTime: original.exitTime,\r\n timeRange: original.timeRange,\r\n data: original.data.map((d: any) => this.cloneWithoutSelected1(d)),\r\n });\r\n }\r\n }\r\n }\r\n });\r\n }\r\n }\r\n\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList.length;\r\n this.employeeACCount = this.selectedEmployeeImagesList.length;\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n}\r\n\r\n\r\nareAllCheckboxesSelected(): boolean {\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n if (source.employee?.some((img: any) => !img.selected)) return false;\r\n if (source.houseKeeping?.some((img: any) => !img.selected)) return false;\r\n if (source.duplicateImages?.some((original: any) => \r\n original.data?.some((dup: any) => !dup.selected))) return false;\r\n }\r\n return true;\r\n}\r\ncheckedValue =true;\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\n\r\nonImageCheckboxChange(data: any, category: string, parentOriginal?: any) {\r\n let selectedList;\r\n\r\n switch (category) {\r\n case 'duplicate':\r\n // Ensure selectedDuplicateImagesList is an array of ORIGINALS with selected children\r\n const existingOriginal = this.selectedDuplicateImagesList.find(\r\n (item: any) => item.tempId === parentOriginal?.tempId\r\n );\r\n\r\n if (data.selected) {\r\n if (existingOriginal) {\r\n const alreadyExists = existingOriginal.data?.some(\r\n (dup: any) => dup.tempId === data.tempId\r\n );\r\n if (!alreadyExists) {\r\n existingOriginal.data.push(this.cloneWithoutSelected(data)); // ✅ no 'selected' key\r\n }\r\n } else {\r\n this.selectedDuplicateImagesList.push({\r\n tempId: parentOriginal?.tempId,\r\n filePath: parentOriginal?.filePath,\r\n entryTime: parentOriginal?.entryTime,\r\n exitTime: parentOriginal?.exitTime,\r\n timeRange: parentOriginal?.timeRange,\r\n data: [this.cloneWithoutSelected(data)], // ✅\r\n });\r\n }\r\n} else {\r\n // Remove from selected duplicates\r\n if (existingOriginal) {\r\n existingOriginal.data = existingOriginal.data.filter(\r\n (d: any) => d.tempId !== data.tempId\r\n );\r\n\r\n // Remove the whole original if no duplicates are left\r\n if (existingOriginal.data.length === 0) {\r\n this.selectedDuplicateImagesList = this.selectedDuplicateImagesList.filter(\r\n (o: any) => o.tempId !== parentOriginal?.tempId\r\n );\r\n }\r\n }\r\n }\r\n\r\n // Count only from selected duplicates\r\n this.duplicateACCount = this.selectedDuplicateImagesList.reduce(\r\n (sum: number, orig: any) => sum + orig.data.length,\r\n 0\r\n );\r\n return;\r\n\r\n case 'housekeeping':\r\n selectedList = this.selectedHousekeepingImagesList;\r\n break;\r\n\r\n case 'employee':\r\n selectedList = this.selectedEmployeeImagesList;\r\n break;\r\n\r\n default:\r\n return;\r\n }\r\n\r\n // Unchanged logic for employee and housekeeping\r\n selectedList = selectedList || [];\r\n if (data.selected) {\r\n const alreadyExists = Array.isArray(selectedList) && selectedList.some((item: any) => item.tempId === data.tempId);\r\n if (!alreadyExists) {\r\n selectedList.push(data);\r\n }\r\n } else {\r\n const updated = Array.isArray(selectedList) ? selectedList.filter((item: any) => item.tempId !== data.tempId) : [];\r\n\r\n if (category === 'housekeeping') {\r\n this.selectedHousekeepingImagesList = updated;\r\n } else if (category === 'employee') {\r\n this.selectedEmployeeImagesList = updated;\r\n }\r\n }\r\n this.houseKeepingACCount = this.selectedHousekeepingImagesList?.length|| 0\r\n this.employeeACCount = this.selectedEmployeeImagesList.length || 0\r\n}\r\n\r\n\r\ncommentText:any;\r\nsubmitValue(status: string = 'approved', category: string = 'duplicate') {\r\n // Step 1: Validate based on current category\r\n let selectedList;\r\n switch (category) {\r\n case 'duplicate':\r\n selectedList = this.selectedDuplicateImagesList;\r\n break;\r\n case 'housekeeping':\r\n selectedList = this.selectedHousekeepingImagesList;\r\n break;\r\n case 'employee':\r\n selectedList = this.selectedEmployeeImagesList;\r\n break;\r\n default:\r\n return;\r\n }\r\n\r\n if (selectedList.length === 0) {\r\n this.toast.getErrorToast('Please select at least one image');\r\n return;\r\n }\r\n\r\n // Replace selected → isChecked before sending\r\n const transformedList = selectedList.map(item => {\r\n const { selected, ...rest } = item;\r\n return { ...rest, isChecked: true };\r\n });\r\n\r\n // Step 2: Build full payload\r\nconst payload: any[] = [];\r\n\r\nfor (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n const singlePayload: any = {\r\n _id: ticket._id,\r\n comments: this.commentText || '',\r\n dateString: source.dateString || this.dateString,\r\n\r\n employeeStatus: category === 'employee' ? status : 'pending',\r\n houseKeepingStatus: category === 'housekeeping' ? status : 'pending',\r\n duplicateStatus: category === 'duplicate' ? status : 'pending',\r\n };\r\n\r\n if (category === 'employee') {\r\n singlePayload.employee = transformedList;\r\n singlePayload.employeeACCount = this.employeeACCount ? this.employeeACCount : 0;\r\n }\r\n\r\n if (category === 'housekeeping') {\r\n singlePayload.houseKeeping = transformedList;\r\n singlePayload.houseKeepingACCount = this.houseKeepingACCount ? this.houseKeepingACCount : 0;\r\n }\r\n\r\n if (category === 'duplicate') {\r\n singlePayload.duplicateImages = transformedList;\r\n singlePayload.duplicateACCount = this.duplicateACCount ? this.duplicateACCount : 0;\r\n }\r\n\r\n payload.push(singlePayload);\r\n}\r\n\r\n// console.log('Payload to submit:', payload);\r\n// return\r\n // Step 3: Set status based on current category\r\n switch (category) {\r\n case 'duplicate':\r\n payload.forEach(item => item.duplicateStatus = status);\r\n break;\r\n case 'housekeeping':\r\n payload.forEach(item => item.houseKeepingStatus = status);\r\n break;\r\n case 'employee':\r\n payload.forEach(item => item.employeeStatus = status);\r\n break;\r\n }\r\n\r\n // Step 4: Submit the payload\r\n this.ticketService.getUpdateStatusApi({data:payload})\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 || 'Ticket updated successfully');\r\n \r\n this.allSelected = false;\r\n this.allSelectValue =false;\r\n this.dataStoreView();\r\n this.cancel();\r\n } else {\r\n this.toast.getErrorToast('Failed to update ticket');\r\n }\r\n },\r\n error: (err: any) => {\r\n const msg = err.error.error || err.error || err?.error?.message || err.message || 'Unknown error';\r\n this.toast.getErrorToast('Error updating ticket: ' + msg);\r\n \r\n this.allSelected = false;\r\n this.allSelectValue =false;\r\n }\r\n });\r\n}\r\nsearchTerm:any = '';\r\nget filteredStores() {\r\n if (!this.searchTerm?.trim()) return this.stores;\r\n\r\n const term = this.searchTerm.toLowerCase();\r\n return this.stores.filter(store =>\r\n store?.storeName?.toLowerCase().includes(term)\r\n );\r\n}\r\nonImageError(event: any): void {\r\n event.target.src = 'assets/images/fallback-image.png'; // or any default image path\r\n}\r\n backToNavigation(){\r\n this.selectedStores = [];\r\n this.allSelected = false;\r\n this.allSelectValue =false;\r\n this.footfallView =true;\r\n this.getTicketSummary();\r\n this.getTicketList();\r\n }\r\n @ViewChild('zoomPopup') zoomPopup: ElementRef;\r\n popupvalue:any;\r\n popupType:any;\r\n popupOpen(type:any,value:any){\r\n const modalRef = this.modalService.open(this.zoomPopup, { centered: true, size: 'md' });\r\n this.popupType = type;\r\n if(value ==='duplicateImages'){\r\n this.popupvalue = 'duplicate';\r\n } else{\r\n this.popupvalue = value;\r\n }\r\n }\r\ncancel() {\r\n this.modalService.dismissAll();\r\n\r\n\r\n this.allSelected = false;\r\n this.allSelectValue = false;\r\n\r\n // Clear all selected flags from the data\r\n for (const ticket of this.footfallTicketsData) {\r\n const source = ticket._source;\r\n\r\n source.employee?.forEach((img: any) => (img.selected = false));\r\n source.houseKeeping?.forEach((img: any) => (img.selected = false));\r\n source.duplicateImages?.forEach((original: any) => {\r\n original.data?.forEach((dup: any) => (dup.selected = false));\r\n });\r\n }\r\n\r\n // Clear selected lists\r\n this.selectedEmployeeImagesList = [];\r\n this.selectedHousekeepingImagesList = [];\r\n this.selectedDuplicateImagesList = [];\r\n\r\n // Reset counts\r\n this.employeeACCount = '';\r\n this.houseKeepingACCount = '';\r\n this.duplicateACCount = '';\r\n\r\n this.checkedValue = true;\r\n}\r\nClusterList:any=[];\r\n getAllGroups() {\r\n this.ticketService.getclusters({ clientId: this.headerFilters.client, group: [], city: [] }).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.ClusterList = res?.data?.groupData;\r\n this.getStores();\r\n } else {\r\n this.ClusterList = [];\r\n }\r\n }\r\n })\r\n }\r\ngroups: any = [];\r\n ongroupSelect(event: any) {\r\n this.filterForm.get('ClusterList')?.setValue(event)\r\n this.groups = event.map((el: any) => el.groupName)\r\n this.getStores();\r\n }\r\n// isSubmitDisabled(): boolean {\r\n// switch (this.selectedRevopsType?.value) {\r\n// case 'employee':\r\n// return this.employeeACCount === 0;\r\n// case 'houseKeeping':\r\n// return this.houseKeepingACCount === 0;\r\n// case 'duplicate':\r\n// return this.duplicateACCount === 0;\r\n// default:\r\n// return true;\r\n// }\r\n// }\r\n\r\n}\r\n","<div *ngIf=\"footfallView\" class=\"row\">\r\n <div class=\"col-md-3 mb-3\">\r\n <div class=\"card\">\r\n <div class=\"card-header ellipse1 py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.totalTickets !== null ?\r\n getFootfallSummaryData?.totalTickets : '--' }}</h5>\r\n <span class=\"sub-header\">Total tickets</span>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-6 col-xl-9 col-md-6 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.openTickets !== null ?\r\n getFootfallSummaryData?.openTickets : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Open</span>\r\n </div>\r\n <div class=\"col-lg-6 col-xl-3 col-md-6 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.closedTickets !== null ?\r\n getFootfallSummaryData?.closedTickets : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Closed</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-md-9 mb-3\">\r\n <div class=\"card\">\r\n <div class=\"card-header ellipse1 py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.noShopper !== null ?\r\n getFootfallSummaryData?.noShopper : '--' }}</h5>\r\n <div class=\"sub-header\">Non-Shoppers</div>\r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-4 col-xl-5 col-md-4 my-3\">\r\n <h5 class=\"card-title\">{{ getFootfallSummaryData?.duplicateCount !== null ?\r\n getFootfallSummaryData?.duplicateCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Duplicates</span>\r\n </div>\r\n <div class=\"col-lg-4 col-xl-5 col-md-4 my-3 \">\r\n <h5 class=\"card-title \">{{ getFootfallSummaryData?.employeeCount !== null ?\r\n getFootfallSummaryData?.employeeCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header \">Employee/Staff</span>\r\n </div>\r\n <div class=\"col-lg-4 col-xl-2 col-md-4 my-3\">\r\n <h5 class=\"card-title \">{{ getFootfallSummaryData?.houseKeepingCount !== null ?\r\n getFootfallSummaryData?.houseKeepingCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Housekeeping</span>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"footfallView\" 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\">Ticket Info</span>\r\n <span class=\"text-sub mb-2\">Based on {{footfallList_req?.fromDate | date: 'dd MMM, yyyy'}} – {{footfallList_req?.toDate | date: 'dd MMM, yyyy'}} </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)]=\"searchValue\" />\r\n <!-- <lib-filters [dataObject]=\"dataObject\"\r\n (appliedFilters)=\"applyFilters($event)\"></lib-filters> -->\r\n\r\n <button type=\"button\" (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\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body mt-3 py-0 px-0\">\r\n\r\n\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\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodata-title\">No data found</div>\r\n <div class=\"nodata-sub\">There is no result for this Date</div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"!loading && !noData\" class=\"table-responsive\">\r\n <table class=\"table bottom-border text-nowrap \">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('storeName')\">Store Info<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'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th 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'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('dateString')\">Ticket raised on\r\n <svg [ngClass]=\"sortedColumn === 'dateString' && 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 === 'dateString' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('footfallCount')\">Total footfalls\r\n <svg [ngClass]=\"sortedColumn === 'footfallCount' && 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 === 'footfallCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('duplicateCount')\">Duplicates\r\n <svg [ngClass]=\"sortedColumn === 'duplicateCount' && 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 === 'duplicateCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('employeeCount')\">Employee/Staff\r\n <svg [ngClass]=\"sortedColumn === 'employeeCount' && 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 === 'employeeCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('houseKeepingCount')\">Housekeeping\r\n <svg [ngClass]=\"sortedColumn === 'houseKeepingCount' && 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 === 'houseKeepingCount' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n\r\n <th>Revised footfalls\r\n \r\n </th>\r\n <th class=\"cursor-pointer\" (click)=\"onSort('status')\">Status<svg\r\n [ngClass]=\"sortedColumn === 'status' && sortDirection === 1 ? 'rotate' : ''\" width=\"16\"\r\n 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'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <!-- <th >Actions</th> -->\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let ticket of footfallListData\">\r\n <ng-container *ngIf=\"ticket?._source as source\">\r\n <td (click)=\"dataStoreView(ticket)\">\r\n <div class=\"text-primary cursor-pointer\">{{ source.storeName }}</div>\r\n <div class=\"text-gray-500 fs-7 mt-2\">ID : {{ source.storeId }}</div>\r\n </td>\r\n \r\n <td class=\"py-7\">{{ source.ticketId }}</td>\r\n <td class=\"py-7\">{{ source.dateString | date: 'dd MMM, yyyy' }}</td>\r\n <td class=\"py-7\">{{ source.footfallCount }}</td>\r\n <td class=\"py-7\">{{ source.duplicateCount }}</td>\r\n <td class=\"py-7\">{{ source.employeeCount }}</td>\r\n <td class=\"py-7\">{{ source.houseKeepingCount }}</td>\r\n <td class=\"py-7\">\r\n {{ source.footfallCount - (source.houseKeepingCount + source.employeeCount +\r\n source.duplicateCount) }}\r\n </td>\r\n \r\n <td class=\"py-7\">\r\n <span *ngIf=\"source.status === 'open' || source.status === 'closed'\" class=\"badge mx-2\" [ngClass]=\"{\r\n 'badge-light-primary': source.status === 'open',\r\n 'badge-light-default': source.status === 'closed'\r\n }\">\r\n {{ source.status | titlecase }}\r\n </span>\r\n </td>\r\n </ng-container>\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]=\"setpageSize()\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n\r\n</div>\r\n\r\n\r\n<div *ngIf=\"!footfallView\" class=\"card mt-2\">\r\n <form [formGroup]=\"filterForm\">\r\n <div class=\"row my-0\">\r\n <div class=\"col-lg-3 my-3\">\r\n <span class=\"ms-2 cursor-pointer\" (click)=\"backToNavigation()\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"44\" viewBox=\"0 0 56 44\"\r\n fill=\"none\">\r\n <g filter=\"url(#filter0_d_887_4505)\">\r\n <rect x=\"2\" y=\"1\" width=\"52\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"51\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path d=\"M30.5 26L25.5 21L30.5 16\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <filter id=\"filter0_d_887_4505\" x=\"0\" y=\"0\" width=\"56\" height=\"44\" filterUnits=\"userSpaceOnUse\"\r\n color-interpolation-filters=\"sRGB\">\r\n <feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\" />\r\n <feColorMatrix in=\"SourceAlpha\" type=\"matrix\"\r\n values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\" />\r\n <feOffset dy=\"1\" />\r\n <feGaussianBlur stdDeviation=\"1\" />\r\n <feColorMatrix type=\"matrix\"\r\n values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.05 0\" />\r\n <feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_887_4505\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_887_4505\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg></span>\r\n <span class=\"card-title-foot ms-3\">Footfall Directory</span>\r\n </div>\r\n <div class=\"col-md-2 my-3\">\r\n \r\n <lib-reactive-select formControlName=\"selectedStatus\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"type\"\r\n (itemChange)=\"typeChange($event)\"></lib-reactive-select>\r\n \r\n\r\n </div>\r\n <div class=\"col-md-2 my-3\">\r\n \r\n <lib-reactive-select formControlName=\"actionStatus\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"pendingArray\"\r\n (itemChange)=\"pendingChange($event)\"></lib-reactive-select>\r\n \r\n </div>\r\n <div class=\"col-md-3 my-4\" >\r\n <div class=\"select-wrapper\">\r\n <div class=\"placeholder-overlay\" *ngIf=\"!(filterForm.get('ClusterList')?.value?.length)\">\r\n Select cluster\r\n </div>\r\n <lib-group-select [items]=\"ClusterList\" [disabled]=\"false\" [multi]=\"true\"\r\n [searchField]=\"'groupName'\" [idField]=\"'groupName'\" (selected)=\"ongroupSelect($event)\"\r\n [selectedValues]=\"filterForm.get('ClusterList')?.value\">\r\n </lib-group-select>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-2 my-4\">\r\n <div class=\"d-flex me-3\">\r\n <a (click)=\"onFilterApply()\" type=\"submit\" class=\"btn btn-sm btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n </div>\r\n</form>\r\n</div>\r\n<div *ngIf=\"!footfallView\" class=\"row mt-3\">\r\n <div class=\"position-relative\" \r\n [ngClass]=\"isCollapsed ? 'd-none' : 'col-md-3'\" >\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-3 px-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Footfall Directory</span>\r\n <span class=\"text-sub mb-2\">Based on {{footfallList_req.fromDate | date: 'dd MMM, yyyy'}} – {{footfallList_req.toDate | date: 'dd MMM, yyyy'}} </span>\r\n </h3>\r\n </div>\r\n <span class=\"cursor-pointer\" (click)=\"toggleSidebar()\" style=\"position: absolute; top: 15px; right: -25px;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"68\" height=\"68\" viewBox=\"0 0 68 68\" fill=\"none\">\r\n<g filter=\"url(#filter0_dd_778_34282)\">\r\n<rect x=\"12\" width=\"44\" height=\"44\" rx=\"22\" fill=\"white\"/>\r\n<path d=\"M33 27L28 22L33 17M40 27L35 22L40 17\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n</g>\r\n<defs>\r\n<filter id=\"filter0_dd_778_34282\" x=\"0\" y=\"0\" width=\"68\" height=\"68\" filterUnits=\"userSpaceOnUse\" color-interpolation-filters=\"sRGB\">\r\n<feFlood flood-opacity=\"0\" result=\"BackgroundImageFix\"/>\r\n<feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\r\n<feMorphology radius=\"2\" operator=\"erode\" in=\"SourceAlpha\" result=\"effect1_dropShadow_778_34282\"/>\r\n<feOffset dy=\"4\"/>\r\n<feGaussianBlur stdDeviation=\"3\"/>\r\n<feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.03 0\"/>\r\n<feBlend mode=\"normal\" in2=\"BackgroundImageFix\" result=\"effect1_dropShadow_778_34282\"/>\r\n<feColorMatrix in=\"SourceAlpha\" type=\"matrix\" values=\"0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 127 0\" result=\"hardAlpha\"/>\r\n<feMorphology radius=\"4\" operator=\"erode\" in=\"SourceAlpha\" result=\"effect2_dropShadow_778_34282\"/>\r\n<feOffset dy=\"12\"/>\r\n<feGaussianBlur stdDeviation=\"8\"/>\r\n<feColorMatrix type=\"matrix\" values=\"0 0 0 0 0.0627451 0 0 0 0 0.0941176 0 0 0 0 0.156863 0 0 0 0.08 0\"/>\r\n<feBlend mode=\"normal\" in2=\"effect1_dropShadow_778_34282\" result=\"effect2_dropShadow_778_34282\"/>\r\n<feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect2_dropShadow_778_34282\" result=\"shape\"/>\r\n</filter>\r\n</defs>\r\n</svg>\r\n</span>\r\n <div class=\"text-end mt-10\">\r\n <button class=\"btn btn-outline w-25 me-3 btn-resize\" (click)=\"dataReset()\"> Reset </button>\r\n <button class=\"btn btn-primary w-25 me-5 btn-resize\" (click)=\"dataApply()\">Apply</button>\r\n </div>\r\n <div class=\"p-4 w-100 overflow-auto\">\r\n <input\r\n class=\"form-control form-control-sm mb-2 px-2 py-1 w-100\"\r\n type=\"text\"\r\n placeholder=\"Search\"\r\n [(ngModel)]=\"StoresSearchValue\"\r\n (change)=\"searchStoresData()\"\r\n/>\r\n\r\n <div class=\"mb-2 border-selectall\">\r\n <input type=\"checkbox\" [checked]=\"allSelected\" (change)=\"toggleSelectAll()\" />\r\n <label class=\"mt-2 font-semibold ms-2\">Select All {{storeCount}} Stores</label>\r\n </div>\r\n <ul class=\"list-unstyled ps-0\">\r\n <li *ngFor=\"let store of stores\" class=\"mb-5\">\r\n <input type=\"checkbox\" [checked]=\"isSelected(store)\" (change)=\"toggleStoreSelection(store)\" />\r\n {{ store?.storeName }}\r\n </li>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"isCollapsed ? 'col-12' : 'col-md-9'\" >\r\n <div class=\"card\">\r\n\r\n <div class=\"card-header border-0 pt-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"mb-2\">\r\n <input *ngIf=\"!footfallLoading && !footfallNoData\"\r\n type=\"checkbox\"\r\n [checked]=\"allSelectValue\"\r\n (change)=\"selectAllValue()\" />\r\n <label *ngIf=\"!footfallLoading && !footfallNoData\" class=\"mt-2 fs-6 font-semibold ms-2\">\r\n Select All (\r\n {{\r\n houseKeepingACCount > 0\r\n ? houseKeepingACCount\r\n : employeeACCount > 0\r\n ? employeeACCount\r\n : duplicateACCount > 0\r\n ? duplicateACCount\r\n : 0\r\n }}\r\n )\r\n</label>\r\n <!-- -->\r\n</div>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <form class=\"mx-4\" [formGroup]=\"form\">\r\n <lib-reactive-select formControlName=\"selectedRevopsType\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"revopsTypeArray\" (itemChange)=\"RevopsTypeChange($event)\"></lib-reactive-select>\r\n </form>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"my-7 d-flex justify-content-end me-5\" role=\"group\">\r\n <button *ngIf=\"!footfallLoading && !footfallNoData\" [disabled]=\"checkedValue\" class=\"btn btn-outline me-1\" (click)=\"popupOpen('rejected',this.selectedRevopsType.value)\">Reject selection</button>\r\n <button *ngIf=\"!footfallLoading && !footfallNoData\" [disabled]=\"checkedValue\" class=\"btn btn-primary ms-1\" (click)=\"popupOpen('approved',this.selectedRevopsType.value)\">Approve selection</button>\r\n </div>\r\n <section *ngIf=\"selectedRevopsType?.value === ''\">\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"card-body mt-3 py-0\">\r\n\r\n <span class=\"cursor-pointer\" *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\" style=\"position: absolute; top: 15px; left: 0;\">\r\n <svg class=\"mt-2 ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"row mb-6\">\r\n <div class=\"col-2 card-title-label my-2\">Ticket Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.ticketName ? (source.ticketName | titlecase) : '-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Ticket ID</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.ticketId ? source.ticketId:'-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Store Name</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-9 card-title-value my-2\">{{ source.storeName ? source.storeName:'-' }}</div>\r\n <div class=\"col-2 card-title-label my-2\">Status</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-3 my-2\"><span \r\n class=\"badge\" \r\n [ngClass]=\"{\r\n 'badge-light-primary': source.status === 'open',\r\n 'badge-secondary': source.status === 'closed',\r\n 'badge-light-warning': source.status === 'pending',\r\n 'badge-light-danger': source.status === 'rejected'\r\n }\">\r\n {{ source.status ? (source.status | titlecase) : '-' }}\r\n</span></div>\r\n \r\n <div class=\"col-2 card-title-label my-2\">Date</div>\r\n <div class=\"col-1 font-bold my-2\">:</div>\r\n <div class=\"col-3 card-title-value my-2\">{{ source.dateString ? (source.dateString | date: 'dd MMM, yyyy') :'- ' }}</div>\r\n </div>\r\n \r\n <div *ngIf=\"ticket?._source as source\" class=\"border-totalfootfall\">\r\n <div class=\"card-header ellipse1 min-h-45px py-1 px-5\">\r\n <div class=\"my-0\">\r\n <h5 class=\"card-title\">{{ source?.footfallCount !== null ?\r\n source?.footfallCount : '--' }} <span class=\"sub-header ms-2\">Total Footfall</span></h5>\r\n \r\n </div>\r\n </div>\r\n <div class=\"card-body py-2 px-5\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3\">\r\n <h5 class=\"card-title\">{{ source?.duplicateCount !== null ?\r\n source?.duplicateCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Duplicates</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3\">\r\n <h5 class=\"card-title\">{{ source?.employeeCount !== null ?\r\n source?.employeeCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">Employee/Staff</span>\r\n </div>\r\n \r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3\">\r\n <h5 class=\"card-title\">{{ source?.houseKeepingCount !== null ?\r\n source?.houseKeepingCount : '--' }}</h5>\r\n <span class=\"card-title-sub-header\">House Keeping</span>\r\n </div>\r\n <div class=\"col-lg-3 col-xl-3 col-md-3 my-3 vl\">\r\n <h5 class=\"card-title\"> {{ \r\n (source.footfallCount || 0) - \r\n ((source.houseKeepingCount || 0) + \r\n (source.employeeCount || 0) + \r\n (source.duplicateCount || 0)) \r\n }}</h5>\r\n <span class=\"card-title-sub-header\">Actual footfall</span>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n \r\n \r\n <div *ngIf=\"ticket?._source as source\" class=\"my-4\">\r\n <h3 *ngIf=\"source?.duplicateImages?.length\" class=\"text-lg font-semibold mb-2\"> <span class=\"me-2\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"18\" height=\"18\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_730_76157)\">\r\n <path\r\n d=\"M3.75 11.25H3C2.60218 11.25 2.22064 11.092 1.93934 10.8107C1.65804 10.5294 1.5 10.1478 1.5 9.75V3C1.5 2.60218 1.65804 2.22064 1.93934 1.93934C2.22064 1.65804 2.60218 1.5 3 1.5H9.75C10.1478 1.5 10.5294 1.65804 10.8107 1.93934C11.092 2.22064 11.25 2.60218 11.25 3V3.75M8.25 6.75H15C15.8284 6.75 16.5 7.42157 16.5 8.25V15C16.5 15.8284 15.8284 16.5 15 16.5H8.25C7.42157 16.5 6.75 15.8284 6.75 15V8.25C6.75 7.42157 7.42157 6.75 8.25 6.75Z\"\r\n stroke=\"#475467\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_76157\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Duplicates</h3>\r\n \r\n \r\n <div *ngFor=\"let original of source.duplicateImages\" class=\"mb-4\">\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"duplicate-head my-2\">Original image</div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 relative\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n \r\n <img [src]=\"imageUrl + original.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{ original.tempId }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{ original.entryTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"duplicate-head my-2\">Duplicates</div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of original.data\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n <input *ngIf=\"source.status ==='pending'\"\r\n type=\"checkbox\"\r\n [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n(change)=\"onImageCheckboxChange(img, 'duplicate', original)\"\r\n />\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 mb-2 rounded border\" />\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{ img.tempId }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{ img.entryTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"my-7 d-flex justify-content-end\" role=\"group\">\r\n <button [disabled]=\"!duplicateACCount\" class=\"btn btn-outline me-1\" (click)=\"popupOpen('rejected','duplicate')\" >Reject</button>\r\n <button [disabled]=\"!duplicateACCount\" class=\"btn btn-primary ms-1\" (click)=\"popupOpen('approved','duplicate')\">Approve</button>\r\n </div>\r\n \r\n <div *ngIf=\"source?.employee?.length\" class=\"duplicate-head my-2\">Employee/Staff</div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.employee\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n \r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source.status ==='pending'\" type=\"checkbox\" [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'employee')\" />\r\n \r\n \r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 mb-2 rounded border\" />\r\n \r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{img.tempId}}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{img.entryTime}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"source?.employee?.length\" class=\"my-7 d-flex justify-content-end\" role=\"group\">\r\n <button [disabled]=\"!employeeACCount\" class=\"btn btn-outline me-1\" (click)=\"popupOpen('rejected','employee')\" >Reject</button>\r\n <button [disabled]=\"!employeeACCount\" class=\"btn btn-primary ms-1\" (click)=\"popupOpen('approved','employee')\">Approve</button>\r\n </div>\r\n \r\n \r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"duplicate-head my-2\">House Keeping</div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.houseKeeping\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n \r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source.status ==='pending'\" type=\"checkbox\" [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange(img, 'housekeeping')\" />\r\n \r\n \r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 mb-2 rounded border\" />\r\n \r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{img.tempId}}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{img.entryTime}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"my-7 d-flex justify-content-end\" role=\"group\">\r\n <button [disabled]=\"!houseKeepingACCount\" class=\"btn btn-outline me-1\" (click)=\"popupOpen('reject','housekeeping')\" >Reject</button>\r\n <button [disabled]=\"!houseKeepingACCount\" class=\"btn btn-primary ms-1\" (click)=\"popupOpen('approved','housekeeping')\">Approve</button>\r\n </div>\r\n </div>\r\n \r\n </ng-container>\r\n <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSizeFootfall\" [currentPage]=\"footfallcurrentPage\" [totalItems]=\"totalItemsFootfall\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"setFootfallpageSize()\" (pageChange)=\"onFootfallPageChange($event)\"\r\n (pageSizeChange)=\"onFootfallPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n \r\n </div>\r\n \r\n </section>\r\n <div *ngIf=\"footfallLoading\" 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=\"footfallNoData\" class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n \r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column \" style=\"margin: 64px;border-radius: 8px;\r\nbackground: var(--Gray-50, #F9FAFB);\">\r\n <svg class=\"my-5\" xmlns=\"http://www.w3.org/2000/svg\" width=\"94\" height=\"94\" viewBox=\"0 0 94 94\" fill=\"none\">\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" fill=\"#DAF1FF\" />\r\n <rect x=\"7\" y=\"7\" width=\"80\" height=\"80\" rx=\"40\" stroke=\"#EAF8FF\" stroke-width=\"13.3333\" />\r\n <g clip-path=\"url(#clip0_730_75095)\">\r\n <path\r\n d=\"M55.3327 62V58.6667C55.3327 56.8986 54.6303 55.2029 53.3801 53.9526C52.1298 52.7024 50.4341 52 48.666 52H35.3327C33.5646 52 31.8689 52.7024 30.6186 53.9526C29.3684 55.2029 28.666 56.8986 28.666 58.6667V62M65.3327 62V58.6667C65.3316 57.1895 64.8399 55.7546 63.935 54.5872C63.03 53.4198 61.7629 52.5859 60.3327 52.2167M53.666 32.2167C55.1 32.5838 56.3711 33.4178 57.2787 34.5872C58.1864 35.7565 58.6791 37.1947 58.6791 38.675C58.6791 40.1553 58.1864 41.5935 57.2787 42.7628C56.3711 43.9322 55.1 44.7662 53.666 45.1333M48.666 38.6667C48.666 42.3486 45.6812 45.3333 41.9993 45.3333C38.3174 45.3333 35.3327 42.3486 35.3327 38.6667C35.3327 34.9848 38.3174 32 41.9993 32C45.6812 32 48.666 34.9848 48.666 38.6667Z\"\r\n stroke=\"#00A3FF\" stroke-width=\"4\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_730_75095\">\r\n <rect width=\"40\" height=\"40\" fill=\"white\" transform=\"translate(27 27)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <div class=\"nodata-title my-3\">No pending items</div>\r\n <div class=\"nodata-sub mb-3\">Looks like there is no action item required for <span\r\n *ngIf=\"selectedRevopsType?.value==='duplicateImages'\">duplicates</span><span\r\n *ngIf=\"selectedRevopsType?.value==='employee'\">employee/staff</span> <span\r\n *ngIf=\"selectedRevopsType?.value==='houseKeeping'\">houseKeeping</span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <!-- Card Body -->\r\n <div *ngIf=\"selectedRevopsType?.value !== ''\" class=\"card-body mt-3 py-0\">\r\n <span class=\"cursor-pointer\" *ngIf=\"isCollapsed\" (click)=\"toggleSidebar()\" style=\"position: absolute; top: 15px; left: 0;\">\r\n <svg class=\"mt-2 ms-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"32\" height=\"32\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M9.72714 12.6365L13.3635 9.00013L9.72714 5.36377M4.63623 12.6365L8.27259 9.00013L4.63623 5.36377\"\r\n stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <ng-container *ngFor=\"let ticket of footfallTicketsData\">\r\n <div *ngIf=\"ticket?._source as source\" class=\"my-4\">\r\n <div *ngFor=\"let original of source.duplicateImages\" class=\"mb-4\">\r\n <div *ngIf=\"source?.duplicateImages?.length\" class=\"duplicate-head my-2\">Original image</div>\r\n <div class=\"row\">\r\n <!-- ✅ Original Image -->\r\n <div class=\"col-md-3 relative\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3\">\r\n \r\n <img [src]=\"imageUrl + original.filePath\" alt=\"\" class=\"w-100 rounded border\" />\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{ original.tempId }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{ original.entryTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <!-- 🟨 Duplicate Images (for this original) -->\r\n <div class=\"duplicate-head my-2\">Duplicates</div>\r\n <div class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of original.data\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n <input *ngIf=\"source.status ==='pending'\" type=\"checkbox\" [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'duplicate')\" />\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 mb-2 rounded border\" />\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{ img.tempId }}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{ img.entryTime }}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.employee?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.employee\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n \r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source.status ==='pending'\" type=\"checkbox\" [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'employee')\" />\r\n \r\n \r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 mb-2 rounded border\" />\r\n \r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{img.tempId}}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{img.entryTime}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"source?.houseKeeping?.length\" class=\"row\">\r\n <div class=\"col-md-3 position-relative\" *ngFor=\"let img of source.houseKeeping\">\r\n <div class=\"pb-3 img-border border border-1 h-100 rounded-3 position-relative\">\r\n \r\n <!-- Top-right Checkbox -->\r\n <input *ngIf=\"source.status ==='pending'\" type=\"checkbox\" [(ngModel)]=\"img.selected\"\r\n class=\"position-absolute absolute form-check-input\"\r\n (change)=\"onImageCheckboxChange1(img, 'housekeeping')\" />\r\n \r\n \r\n <!-- Image -->\r\n <img [src]=\"imageUrl + img.filePath\" alt=\"\" class=\"w-100 mb-2 rounded border\" />\r\n \r\n <!-- Details -->\r\n <div class=\"desc-title ms-2 mt-2\">Temp ID: {{img.tempId}}</div>\r\n <div class=\"desc-value ms-2\">Entry Time: {{img.entryTime}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <!-- <div *ngIf=\"!footfallLoading && !footfallNoData\" class=\"my-3\">\r\n <lib-pagination [itemsPerPage]=\"pageSizeFootfall\" [currentPage]=\"footfallcurrentPage\"\r\n [totalItems]=\"totalItemsFootfall\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"setFootfallpageSize()\"\r\n (pageChange)=\"onFootfallPageChange($event)\"\r\n (pageSizeChange)=\"onFootfallPageSizeChange($event)\"></lib-pagination>\r\n </div> -->\r\n </div>\r\n </div>\r\n \r\n </div>\r\n</div>\r\n\r\n<ng-template #zoomPopup let-model>\r\n <div class=\"p-4 m-4\">\r\n <div class=\"modal-header border-0 p-0 w-100 flex-column align-items-start\">\r\n \r\n <!-- Heading -->\r\n <h5 class=\"modal-title mb-2\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }} Selected Images\r\n </h5>\r\n\r\n <!-- Description -->\r\n <p class=\"mb-3\">\r\n You're about to {{ popupType === 'approved' ? 'approve' : 'reject' }} the following number of selected images.\r\n </p>\r\n\r\n <!-- Count Box -->\r\n <div class=\"border border-1 rounded p-3 w-50 mb-4\">\r\n <div *ngIf=\"popupvalue === 'employee'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ employeeACCount || '--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'housekeeping'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ houseKeepingACCount || '--' }}\r\n </div>\r\n <div *ngIf=\"popupvalue === 'duplicate'\" class=\"fw-semibold fs-5 mb-2\">\r\n {{ duplicateACCount || '--' }}\r\n </div>\r\n <div class=\"fw-semibold text-muted fs-6 mt-2\">\r\n {{ popupvalue | titlecase }}s\r\n </div>\r\n </div>\r\n\r\n <!-- Action Buttons -->\r\n <div class=\"w-100 d-flex justify-content-end\">\r\n <button class=\"btn btn-outline me-2\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary\" (click)=\"submitValue(popupType, popupvalue)\">\r\n {{ popupType === 'approved' ? 'Approve' : 'Reject' }}\r\n </button>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n</ng-template>\r\n\r\n","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<li class=\"nav-item\" (click)=\"Selectedtabs('footfall')\"><a [routerLink]=\"['/manage/tickets']\" [queryParams]=\"{ type: 'footfall' }\" [ngClass]=\"SelectedTab ==='footfall' ? 'active' :''\"\r\n class=\"nav-link cursor-pointer no-border me-3\">Footfall Directory\r\n </a>\r\n <!-- <span class=\"mx-2 \" [ngClass]=\"SelectedTab ==='footfall' ? 'badge-num-primary' :'badge-num-muted'\">{{ticketAllCount?.matCount ?ticketAllCount?.matCount:0}}</span> -->\r\n </li>\r\n \r\n </ul>\r\n</div>\r\n<lib-footfall-dic *ngIf=\"SelectedTab ==='footfall'\"></lib-footfall-dic>\r\n<lib-tickets *ngIf=\"SelectedTab !=='audit' && SelectedTab !=='footfall'\"></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,ReactiveFormsModule } 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\nimport { FootfallDicComponent } from './components/footfall-dic/footfall-dic.component';\r\nimport { ReactiveSelectComponent } from './components/reactive-select/reactive-select.component';\r\nimport { GroupSelectComponent } from './components/group-select/group-select.component';\r\n@NgModule({\r\n declarations: [\r\n TangoManageTicketsComponent,\r\n TicketsComponent,AddCsmModalComponent, CommentModelComponent, AuditMetricsComponent, \r\n ReTriggerComponent, AuditLogComponent, CountComponent, FootfallDicComponent,\r\n ReactiveSelectComponent,\r\n GroupSelectComponent,\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoManageTicketsRoutingModule,\r\n FormsModule,\r\n ReactiveFormsModule,\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":["i2","i1","i3.TicketService","i2.TicketService","i3","i4","i4.TicketService","i5.ExcelService","i6","i7","i8","i5","i1.TicketService","i3.ExcelService","i8.ReactiveSelectComponent","i9.GroupSelectComponent","i5.TicketsComponent","i6.AuditMetricsComponent","i7.FootfallDicComponent"],"mappings":"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"}
|