tango-app-ui-analyse-trax 3.0.0-dev → 3.3.1-alpha.0
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/add-checklist/add-checklist.component.mjs +1389 -0
- package/esm2022/lib/components/checklist/checklist.component.mjs +235 -0
- package/esm2022/lib/components/checklist-configure/checklist-configure.component.mjs +1809 -0
- package/esm2022/lib/components/dashboard/dashboard.component.mjs +515 -0
- package/esm2022/lib/components/dashboard-info/dashboard-info.component.mjs +503 -0
- package/esm2022/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.mjs +169 -0
- package/esm2022/lib/components/flags/flags.component.mjs +188 -0
- package/esm2022/lib/components/flags/flags.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/flags-info.component.mjs +257 -0
- package/esm2022/lib/components/flags-info/flags-info.interface.mjs +2 -0
- package/esm2022/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.mjs +71 -0
- package/esm2022/lib/components/gallery/gallery.component.mjs +280 -0
- package/esm2022/lib/components/managechecklist/managechecklist.component.mjs +11 -0
- package/esm2022/lib/components/pagination/pagination.component.mjs +62 -0
- package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +101 -0
- package/esm2022/lib/components/reports/reports.component.mjs +204 -0
- package/esm2022/lib/components/reports/reports.interface.mjs +2 -0
- package/esm2022/lib/components/tango-analyse-trax/tango-analyse-trax.component.mjs +27 -6
- package/esm2022/lib/components/trax-store/trax-store.component.mjs +144 -0
- package/esm2022/lib/components/traxpopup/traxpopup.component.mjs +64 -0
- package/esm2022/lib/services/trax.service.mjs +200 -0
- package/esm2022/lib/tango-analyse-trax-routing.module.mjs +62 -6
- package/esm2022/lib/tango-analyse-trax.module.mjs +82 -9
- package/fesm2022/tango-app-ui-analyse-trax.mjs +6211 -24
- package/fesm2022/tango-app-ui-analyse-trax.mjs.map +1 -1
- package/lib/components/add-checklist/add-checklist.component.d.ts +91 -0
- package/lib/components/checklist/checklist.component.d.ts +38 -0
- package/lib/components/checklist-configure/checklist-configure.component.d.ts +162 -0
- package/lib/components/dashboard/dashboard.component.d.ts +62 -0
- package/lib/components/dashboard-info/dashboard-info.component.d.ts +92 -0
- package/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.d.ts +39 -0
- package/lib/components/flags/flags.component.d.ts +40 -0
- package/lib/components/flags/flags.interface.d.ts +61 -0
- package/lib/components/flags-info/flags-info.component.d.ts +50 -0
- package/lib/components/flags-info/flags-info.interface.d.ts +207 -0
- package/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.d.ts +13 -0
- package/lib/components/gallery/gallery.component.d.ts +64 -0
- package/lib/components/managechecklist/managechecklist.component.d.ts +5 -0
- package/lib/components/pagination/pagination.component.d.ts +16 -0
- package/lib/components/reactive-select/reactive-select.component.d.ts +31 -0
- package/lib/components/reports/reports.component.d.ts +43 -0
- package/lib/components/reports/reports.interface.d.ts +44 -0
- package/lib/components/tango-analyse-trax/tango-analyse-trax.component.d.ts +10 -1
- package/lib/components/trax-store/trax-store.component.d.ts +43 -0
- package/lib/components/traxpopup/traxpopup.component.d.ts +22 -0
- package/lib/services/trax.service.d.ts +65 -0
- package/lib/tango-analyse-trax.module.d.ts +23 -3
- package/package.json +1 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tango-app-ui-analyse-trax.mjs","sources":["../../../projects/tango-analyse-trax/src/lib/tango-analyse-trax-routing.module.ts","../../../projects/tango-analyse-trax/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.ts","../../../projects/tango-analyse-trax/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.html","../../../projects/tango-analyse-trax/src/lib/tango-analyse-trax.module.ts","../../../projects/tango-analyse-trax/src/public-api.ts","../../../projects/tango-analyse-trax/src/tango-app-ui-analyse-trax.ts"],"sourcesContent":["import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\n\r\nconst routes: Routes = [];\r\n\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoAnalyseTraxRoutingModule { }\r\n","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-tango-analyse-trax',\r\n templateUrl: './tango-analyse-trax.component.html',\r\n styleUrl: './tango-analyse-trax.component.scss'\r\n})\r\nexport class TangoAnalyseTraxComponent {\r\n\r\n}\r\n","<p>tango-analyse-trax works!</p>\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TangoAnalyseTraxRoutingModule } from './tango-analyse-trax-routing.module';\r\nimport { TangoAnalyseTraxComponent } from './components/tango-analyse-trax/tango-analyse-trax.component';\r\n\r\n\r\n\r\n@NgModule({\r\n declarations: [\n TangoAnalyseTraxComponent\n ],\r\n imports: [\r\n CommonModule,\r\n TangoAnalyseTraxRoutingModule\r\n ]\r\n})\r\nexport class TangoAnalyseTraxModule { }\r\n","/*\r\n * Public API Surface of tango-analyse-trax\r\n */\r\n\r\nexport * from './lib/tango-analyse-trax.module';\r\nexport * from './lib/components/tango-analyse-trax/tango-analyse-trax.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":[],"mappings":";;;;;;AAGA,MAAM,MAAM,GAAW,EAAE,CAAC;MAMb,6BAA6B,CAAA;wGAA7B,6BAA6B,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;AAA7B,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,6BAA6B,wCAF9B,YAAY,CAAA,EAAA,CAAA,CAAA;yGAEX,6BAA6B,EAAA,OAAA,EAAA,CAH9B,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,EAC7B,YAAY,CAAA,EAAA,CAAA,CAAA;;4FAEX,6BAA6B,EAAA,UAAA,EAAA,CAAA;kBAJzC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;oBACR,OAAO,EAAE,CAAC,YAAY,CAAC,QAAQ,CAAC,MAAM,CAAC,CAAC;oBACxC,OAAO,EAAE,CAAC,YAAY,CAAC;AACxB,iBAAA,CAAA;;;MCDY,yBAAyB,CAAA;wGAAzB,yBAAyB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,SAAA,EAAA,CAAA,CAAA;AAAzB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,oBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,IAAA,EAAA,yBAAyB,8DCPtC,sCACA,EAAA,MAAA,EAAA,CAAA,EAAA,CAAA,EAAA,CAAA,CAAA;;4FDMa,yBAAyB,EAAA,UAAA,EAAA,CAAA;kBALrC,SAAS;+BACE,wBAAwB,EAAA,QAAA,EAAA,sCAAA,EAAA,CAAA;;;MEavB,sBAAsB,CAAA;wGAAtB,sBAAsB,EAAA,IAAA,EAAA,EAAA,EAAA,MAAA,EAAA,EAAA,CAAA,eAAA,CAAA,QAAA,EAAA,CAAA,CAAA;yGAAtB,sBAAsB,EAAA,YAAA,EAAA,CAP/B,yBAAyB,CAAA,EAAA,OAAA,EAAA,CAGzB,YAAY;YACZ,6BAA6B,CAAA,EAAA,CAAA,CAAA;AAGpB,IAAA,OAAA,IAAA,GAAA,EAAA,CAAA,mBAAA,CAAA,EAAA,UAAA,EAAA,QAAA,EAAA,OAAA,EAAA,SAAA,EAAA,QAAA,EAAA,EAAA,EAAA,IAAA,EAAA,sBAAsB,YAJ/B,YAAY;YACZ,6BAA6B,CAAA,EAAA,CAAA,CAAA;;4FAGpB,sBAAsB,EAAA,UAAA,EAAA,CAAA;kBATlC,QAAQ;AAAC,YAAA,IAAA,EAAA,CAAA;AACR,oBAAA,YAAY,EAAE;wBACZ,yBAAyB;AAC1B,qBAAA;AACD,oBAAA,OAAO,EAAE;wBACP,YAAY;wBACZ,6BAA6B;AAC9B,qBAAA;AACF,iBAAA,CAAA;;;ACfD;;AAEG;;ACFH;;AAEG;;;;"}
|
|
1
|
+
{"version":3,"file":"tango-app-ui-analyse-trax.mjs","sources":["../../../projects/tango-analyse-trax/src/lib/components/traxpopup/traxpopup.component.ts","../../../projects/tango-analyse-trax/src/lib/components/traxpopup/traxpopup.component.html","../../../projects/tango-analyse-trax/src/lib/services/trax.service.ts","../../../projects/tango-analyse-trax/src/lib/components/checklist/checklist.component.ts","../../../projects/tango-analyse-trax/src/lib/components/checklist/checklist.component.html","../../../projects/tango-analyse-trax/src/lib/components/add-checklist/add-checklist.component.ts","../../../projects/tango-analyse-trax/src/lib/components/add-checklist/add-checklist.component.html","../../../projects/tango-analyse-trax/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.ts","../../../projects/tango-analyse-trax/src/lib/components/tango-analyse-trax/tango-analyse-trax.component.html","../../../projects/tango-analyse-trax/src/lib/components/trax-store/trax-store.component.ts","../../../projects/tango-analyse-trax/src/lib/components/trax-store/trax-store.component.html","../../../projects/tango-analyse-trax/src/lib/components/checklist-configure/checklist-configure.component.ts","../../../projects/tango-analyse-trax/src/lib/components/checklist-configure/checklist-configure.component.html","../../../projects/tango-analyse-trax/src/lib/components/reactive-select/reactive-select.component.ts","../../../projects/tango-analyse-trax/src/lib/components/reactive-select/reactive-select.component.html","../../../projects/tango-analyse-trax/src/lib/components/pagination/pagination.component.ts","../../../projects/tango-analyse-trax/src/lib/components/pagination/pagination.component.html","../../../projects/tango-analyse-trax/src/lib/components/gallery/gallery.component.ts","../../../projects/tango-analyse-trax/src/lib/components/gallery/gallery.component.html","../../../projects/tango-analyse-trax/src/lib/components/dashboard/dashboard.component.ts","../../../projects/tango-analyse-trax/src/lib/components/dashboard/dashboard.component.html","../../../projects/tango-analyse-trax/src/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.ts","../../../projects/tango-analyse-trax/src/lib/components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component.html","../../../projects/tango-analyse-trax/src/lib/components/dashboard-info/dashboard-info.component.ts","../../../projects/tango-analyse-trax/src/lib/components/dashboard-info/dashboard-info.component.html","../../../projects/tango-analyse-trax/src/lib/components/flags/flags.component.ts","../../../projects/tango-analyse-trax/src/lib/components/flags/flags.component.html","../../../projects/tango-analyse-trax/src/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.ts","../../../projects/tango-analyse-trax/src/lib/components/flags-info/unattended-pie-chart/unattended-pie-chart.component.html","../../../projects/tango-analyse-trax/src/lib/components/flags-info/flags-info.component.ts","../../../projects/tango-analyse-trax/src/lib/components/flags-info/flags-info.component.html","../../../projects/tango-analyse-trax/src/lib/components/reports/reports.component.ts","../../../projects/tango-analyse-trax/src/lib/components/reports/reports.component.html","../../../projects/tango-analyse-trax/src/lib/components/managechecklist/managechecklist.component.ts","../../../projects/tango-analyse-trax/src/lib/components/managechecklist/managechecklist.component.html","../../../projects/tango-analyse-trax/src/lib/tango-analyse-trax-routing.module.ts","../../../projects/tango-analyse-trax/src/lib/tango-analyse-trax.module.ts","../../../projects/tango-analyse-trax/src/public-api.ts","../../../projects/tango-analyse-trax/src/tango-app-ui-analyse-trax.ts"],"sourcesContent":["import { Component, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { DomSanitizer, SafeHtml } from '@angular/platform-browser';\r\n\r\n@Component({\r\n selector: 'lib-traxpopup',\r\n templateUrl: './traxpopup.component.html',\r\n styleUrl: './traxpopup.component.scss'\r\n})\r\nexport class TraxpopupComponent implements OnInit {\r\n requestText: string = '';\r\n @Input() data:any;\r\n constructor( public dialogRef: NgbActiveModal,private sanitizer: DomSanitizer) { }\r\n\r\n ngOnInit(): void {\r\n if(this.data?.user) {\r\n this.data.user.forEach((item:any) =>{\r\n item.invite = true\r\n })\r\n }\r\n this.data.imagesrc = this.sanitizer.bypassSecurityTrustHtml(this.data.imagesrc);\r\n }\r\n closepopup(){\r\n this.dialogRef.close();\r\n }\r\n deletepopup(){\r\n this.dialogRef.close('delete');\r\n }\r\n duplicatepopup(){\r\n this.dialogRef.close('duplicate');\r\n}\r\n confirmpopup() {\r\n let res: any = \r\n (this.data.resType && this.data.resType == 'custom') ? \r\n {status: 'confirm',data: {requestText: this.requestText}} : \r\n 'confirm';\r\n this.dialogRef.close(res);\r\n }\r\n confirmStorepopup() {\r\n this.dialogRef.close('confirmStore');\r\n }\r\n skipEntries() {\r\n this.dialogRef.close('skip');\r\n }\r\n invitepopup() {\r\n let data = {\r\n message:'confirm',\r\n user: this.data.user\r\n }\r\n this.dialogRef.close(data)\r\n }\r\n updateCheck(event:any,index:any) {\r\n this.data.user[index].invite = event.target.checked;\r\n }\r\n}\r\n","\r\n<div class=\"text-start p-9\">\r\n <div [innerHTML]=\"data.imagesrc\"></div>\r\n <div class=\"customtitle mt-4\">\r\n {{data.title}}\r\n </div>\r\n <div class=\"content mt-4\" [innerHtml]=\"data.content\">\r\n </div>\r\n <div class=\"error mt-5 p-5 pt-0 h-auto mh-200px overflow-scroll\" *ngIf=\"data?.error\">\r\n <div class=\"mt-5\" *ngFor=\"let error of data?.error;let i =index\">\r\n <span>{{i + 1}}.) {{error}}</span>\r\n </div>\r\n </div>\r\n <div class=\"subtitle storesubtitle mb-4\">\r\n {{data.subtitle}}\r\n </div>\r\n <div class=\"subtitle storesubtitle mb-3\" *ngIf=\"data?.location?.length\">\r\n <div class=\"content mb-2\">Location is required on below stores</div>\r\n {{data.location}}\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Invite'\" class=\"content\" [ngClass]=\"data.user.length > 4 ? 'addScroll' : ''\">\r\n <div class=\"d-flex align-items-center position-relative mb-5\" *ngFor=\"let user of data.user;let i= index\">\r\n <div class=\"form-check form-check-custom form-check-solid mx-2 me-4\">\r\n <input class=\"form-check-input\" type=\"checkbox\" value=\"\" [checked]=\"user.invite\"\r\n (change)=\"updateCheck($event,i)\">\r\n </div>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">\r\n {{user.userName.slice(0,2)}} </span>\r\n </div>\r\n <div>\r\n <a class=\"invitemain\">{{user.userName}}</a>\r\n <div class=\"invitesub\">\r\n {{user.userEmail}}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"data.input1\" class=\"mt-5\">\r\n <label *ngIf=\"data.inputlabel2\" for=\"inputmodel\" class=\"label\">{{data.inputlabel1}}</label><br>\r\n <input class=\"inputlabel\" id=\"inputmodel\" placeholder=\"{{data.placeholder1}}\" type=\"{{data.inputtype1}}\"\r\n disabled>\r\n </div>\r\n <div *ngIf=\"data.input2\" class=\"mt-5\">\r\n <label *ngIf=\"data.inputlabel2\" for=\"inputmodel\" class=\"label\">{{data.inputlabel2}}</label>\r\n <input class=\"inputlabel\" id=\"inputmodel\" placeholder=\"{{data.placeholder2}}\" [(ngModel)]=\"requestText\"\r\n type=\"{{data.inputtype2}}\">\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'delete'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\" (click)=\"deletepopup()\">Delete</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'duplicate'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"duplicatepopup()\">Duplicate</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'draft'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"confirmpopup()\">Save As\r\n Draft</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Request'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Request</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'confirm'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Confirm</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Reinitiate'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Reinitiate</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Remove'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"confirmpopup()\">Remove</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Reupload'\" class=\"d-flex text-center justify-content-between mt-5\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\"\r\n (click)=\"confirmpopup()\">Reupload</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Invite'\" class=\"d-flex text-center justify-content-between mt-8\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"skipEntries()\">Skip New Entries</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"invitepopup()\">Invite\r\n Selected</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'Addstore'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"skipEntries()\">Skip New Entries</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-primary\" (click)=\"confirmStorepopup()\">Add\r\n Store</button>\r\n </div>\r\n <div *ngIf=\"data.buttontype === 'error'\" class=\"d-flex text-center justify-content-between\">\r\n <button class=\"btn min-width-popup btn-outline\" (click)=\"closepopup()\">Cancel</button>\r\n <button class=\"btn min-width-popup btn-outline active btn-active-danger\"\r\n (click)=\"dialogRef.close('reupload')\">Reupload</button>\r\n </div>\r\n</div>","import { HttpClient, HttpErrorResponse } from '@angular/common/http';\r\nimport { Injectable, OnDestroy, } from '@angular/core';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { BehaviorSubject, Observable, Subject, takeUntil, catchError, map,throwError, of } from 'rxjs';\r\nimport * as FileSaver from 'file-saver';\r\nimport * as XLSX from 'xlsx';\r\n\r\nconst EXCEL_TYPE = 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet;charset=UTF-8';\r\nconst EXCEL_EXTENSION = '.xlsx';\r\n\r\n@Injectable({\r\n providedIn: 'root'\r\n})\r\nexport class TraxService implements OnDestroy {\r\n traxUrl:any;\r\n storeUrl:any;\r\n galleryApiUrl:any\r\n dropDownTrigger = new BehaviorSubject<any>(null)\r\n\r\n private reloadDataSubject = new BehaviorSubject<boolean>(false);\r\n reloadData$ = this.reloadDataSubject.asObservable();\r\n\r\n constructor(private http: HttpClient, private gs: GlobalStateService) {\r\n this.gs.environment.pipe(takeUntil(this.destroy$)).subscribe((env) => {\r\n if (env) {\r\n this.traxUrl = env.traxUrl;\r\n this.storeUrl = env.storeApiUrl\r\n this.galleryApiUrl = env.galleryApiUrl\r\n\r\n\r\n }\r\n });\r\n }\r\n\r\n triggerReload() {\r\n this.reloadDataSubject.next(true);\r\n }\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 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 public 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 private readonly destroy$ = new Subject();\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next(true);\r\n this.destroy$.complete();\r\n }\r\n\r\n getSummaryTableData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/zoneSummaryTable_v2`, data)\r\n }\r\n getchecklist( data:any):Observable<any>{\r\n return this.http.post(`${this.galleryApiUrl}/getchecklist`, data)\r\n }\r\n getSummaryTableExport( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/zoneSummaryTable_v2`, data, {responseType: 'arraybuffer'})\r\n }\r\n\r\n checklist(obj:any) {\r\n return this.http.get(`${this.traxUrl}/checklist?limit=${obj.limit}&offset=${obj.offset}&sortColumnName=${obj.sortColumn}&search=${obj.search}&sortBy=${obj.sortBy}&clientId=${obj.clientId}`)\r\n }\r\n\r\n imageupload(users:any) {\r\n return this.http.post(`${this.traxUrl}/upload`,users)\r\n }\r\n\r\n validateUser(users:any) {\r\n return this.http.post(`${this.traxUrl}/validateUser`,users)\r\n }\r\n\r\n getupdatechecklist(id:any,data:any) {\r\n return this.http.put(`${this.traxUrl}/checklist/update/${id}`,data)\r\n }\r\n\r\n createchecklist(data:any) {\r\n return this.http.post(`${this.traxUrl}/checklist/create`, data )\r\n }\r\n\r\n configUpdate(obj:any) {\r\n return this.http.post(`${this.traxUrl}/checklistConfigure`,obj)\r\n }\r\n\r\n getconfig(obj:any) {\r\n let key = Object.keys(obj)[0];\r\n let value = obj[Object.keys(obj)[0]];\r\n return this.http.get(`${this.traxUrl}/getConfigDetails?${key}=${value}`)\r\n }\r\n\r\n runAIInsert(data: any) {\r\n return this.http.post(`${this.traxUrl}/runAIInsert`, data)\r\n }\r\n\r\n duplicatechecklist(id: string) {\r\n return this.http.get(`${this.traxUrl}/duplicateChecklist/${id}`)\r\n }\r\n\r\n getUserDetails(obj:any) {\r\n return this.http.get(`${this.traxUrl}/userDetails/${obj.id}?offset=${obj.offset}&limit=${obj.limit}&search=${obj.search}`)\r\n }\r\n\r\n getStoreList(data:any) {\r\n return this.http.post(`${this.storeUrl}/storeInfraList`,data)\r\n }\r\n\r\n deleteChecklist(id: string,) {\r\n return this.http.delete(`${this.traxUrl}/deleteChecklist/${id}`)\r\n }\r\n\r\n publish(id: string, data: any) {\r\n return this.http.put(`${this.traxUrl}/publish/${id}`, data)\r\n }\r\n getStores(req: any): Observable<any> {\r\n return this.http\r\n .get<any>(`${this.storeUrl}/get-stores`, { params: req })\r\n }\r\n\r\n getChecklists(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.traxUrl}/dashboard/checklistDropdown`, data)\r\n }\r\n viewChecklists(data: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.galleryApiUrl}/viewchecklist`, data)\r\n }\r\n\r\n overallFlagMetrics(body: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.traxUrl}/flag/flagCardsV1`, body)\r\n }\r\n\r\n overallFlagMetricsComparison(body: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.traxUrl}/flag/flagComparisonCardsV1`, body)\r\n }\r\n\r\n flagsTable(body: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.traxUrl}/flag/flagTablesV1`, body)\r\n }\r\n\r\n exportFlagsTable(body: any): Observable<any> {\r\n return this.http.post(`${this.traxUrl}/flag/checklist-flags-table`, body, {responseType: 'arraybuffer'})\r\n }\r\n\r\n getOverallCardsData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/overallCards`, data)\r\n }\r\n getChecklistPerformanceData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/checklistPerformance`, data)\r\n }\r\n getChecklistPerformanceDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/checklistPerformance`, data, {responseType: 'arraybuffer'})\r\n }\r\n getStorePerformanceData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/storePerformance`, data)\r\n }\r\n getStorePerformanceDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/storePerformance`, data, {responseType: 'arraybuffer'})\r\n }\r\n getUserPerformanceData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/userPerformance`, data)\r\n }\r\n getUserPerformanceDataExport( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/userPerformance`, data, {responseType: 'arraybuffer'})\r\n }\r\n getChecklistDropdownData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/flag/flagChecklistDropDown`, data)\r\n }\r\n getChecklistDropdownDashboardData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/checklistDropdown`, data)\r\n }\r\n getInfoCardsData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/infoCards`, data)\r\n }\r\n\r\n checklistFlagTable(body: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.traxUrl}/flag/flagChecklistTable`, body)\r\n }\r\n\r\n reportTable(body: any): Observable<any> {\r\n return this.http\r\n .post<any>(`${this.traxUrl}/dashboard/reportChecklistData`, body)\r\n }\r\n\r\n flagCardValues(body:any){\r\n return this.http\r\n .post<any>(`${this.traxUrl}/flag/flagChecklistCards`, body)\r\n }\r\n\r\n flagCardTerend(body:any){\r\n return this.http\r\n .post<any>(`${this.traxUrl}/flag/flagChecklistComparisonCards`, body)\r\n }\r\n\r\n getChecklistInfoData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/checklistInfo`, data)\r\n }\r\n getUserlistDropdownData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/userlistDropdown`, data)\r\n }\r\n getMonthlyPeformanceData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/monthlyGraph`, data)\r\n }\r\n getInfoComparisonCardsData( data:any):Observable<any>{\r\n return this.http.post(`${this.traxUrl}/dashboard/infoComparisonCards`, data)\r\n }\r\n\r\n}\r\n","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { GlobalStateService, PageInfoService } from 'tango-app-ui-global';\r\n// import { TraxService } from '../../services/trax.service';\r\nimport {Subject, takeUntil} from 'rxjs';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { Router } from '@angular/router';\r\nimport { TraxpopupComponent } from '../traxpopup/traxpopup.component';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TraxService } from '../../services/trax.service';\r\n\r\n@Component({\r\n selector: 'lib-checklist',\r\n templateUrl: './checklist.component.html',\r\n styleUrl: './checklist.component.scss'\r\n})\r\nexport class ChecklistComponent implements OnInit,OnDestroy {\r\n loading:boolean = true;\r\n noData:boolean = false;\r\n pageSize:number=10;\r\n totalItems:number;\r\n paginationSizes:any = [];\r\n checklistData:any = [];\r\n private detach = new Subject();\r\n private readonly destroy$ = new Subject();\r\n dynamicData:any = {\r\n clientId:'',\r\n startDate:'',\r\n endDate:'',\r\n limit:10,\r\n offset:0,\r\n sortColumn:'',\r\n sortBy:'',\r\n search:''\r\n };\r\n\r\n constructor(private pageInfo:PageInfoService,private traxService:TraxService,private gs:GlobalStateService,private toast:ToastService,private route:Router,private dialog:NgbModal,private cd:ChangeDetectorRef ) {}\r\n\r\n ngOnInit(): void {\r\n this.setPageData();\r\n this.gs.dataRangeValue.pipe(takeUntil(this.detach)).subscribe({\r\n next: (data: any) => {\r\n if (data) {\r\n this.dynamicData.clientId = data.client;\r\n this.dynamicData.startDate = data.date.startDate;\r\n this.dynamicData.endDate = data.date.endDate;\r\n this.getCheckList()\r\n }\r\n },\r\n });\r\n }\r\n\r\n ngOnDestroy(): void {\r\n this.detach.next(true);\r\n this.detach.complete();\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle(\"Tango Trax\");\r\n this.pageInfo.setDescription(\"Automate or create checklists to improve operational efficiency\");\r\n this.pageInfo.setBreadcrumbs([\r\n { title: \"\", path: \"/manage\", isActive: false, isSeparator: false },\r\n ]);\r\n }\r\n\r\n getCheckList() {\r\n this.loading = true;\r\n this.traxService.checklist(this.dynamicData).pipe(takeUntil(this.destroy$))?.subscribe({\r\n next:(res:any) => {\r\n if(res && res.code == 200 && res.data.result.length) {\r\n this.noData = false;\r\n this.loading = false;\r\n this.checklistData = res.data.result;\r\n this.totalItems = res.data.count;\r\n if(this.totalItems < 10) {\r\n this.paginationSizes = [this.totalItems];\r\n }\r\n else {\r\n this.paginationSizes = [10,20,30];\r\n }\r\n this.pageSize = this.checklistData.length\r\n }\r\n else {\r\n this.loading = false;\r\n this.noData = true;\r\n }\r\n },\r\n error:(error:any) => {\r\n this.loading = false;\r\n this.noData = true;\r\n this.toast.getErrorToast(error.error.error);\r\n }\r\n\r\n });\r\n }\r\n\r\n onSort(column:any) {\r\n if (this.dynamicData.sortColumn == column) {\r\n this.dynamicData.sortBy = this.dynamicData.sortBy == 1 ? -1 : 1;\r\n }\r\n else {\r\n this.dynamicData.sortColumn = column;\r\n this.dynamicData.sortBy = 1;\r\n }\r\n this.getCheckList();\r\n }\r\n\r\n onPageChange(event:any) {\r\n this.dynamicData.offset = event;\r\n this.getCheckList();\r\n }\r\n\r\n onPageSizeChange(event:any) {\r\n this.dynamicData.limit = event;\r\n this.getCheckList();\r\n }\r\n\r\n redirect(data:any,details:any) {\r\n if(data == 'edit') {\r\n this.route.navigateByUrl(`/manage/trax/createChecklist?checklistId=${details}`)\r\n }\r\n else if(data == 'setting') {\r\n this.route.navigateByUrl(`/manage/trax/configure?checkListId=${details}`)\r\n }\r\n else if(data == 'duplicate') {\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\"><rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#DAF1FF\"/><g clip-path=\"url(#clip0_5545_6743)\"><path d=\"M13.333 20.0007H12.6663C12.3127 20.0007 11.9736 19.8602 11.7235 19.6101C11.4735 19.3601 11.333 19.0209 11.333 18.6673V12.6673C11.333 12.3137 11.4735 11.9746 11.7235 11.7245C11.9736 11.4745 12.3127 11.334 12.6663 11.334H18.6663C19.02 11.334 19.3591 11.4745 19.6092 11.7245C19.8592 11.9746 19.9997 12.3137 19.9997 12.6673V13.334M17.333 16.0007H23.333C24.0694 16.0007 24.6663 16.5976 24.6663 17.334V23.334C24.6663 24.0704 24.0694 24.6673 23.333 24.6673H17.333C16.5966 24.6673 15.9997 24.0704 15.9997 23.334V17.334C15.9997 16.5976 16.5966 16.0007 17.333 16.0007Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/></g><rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" stroke=\"#EAF8FF\" stroke-width=\"4\"/><defs><clipPath id=\"clip0_5545_6743\"><rect width=\"16\" height=\"16\" fill=\"white\" transform=\"translate(10 10)\"/></clipPath></defs></svg>',\r\n title: `Duplicate '${details.checkListName} Section'?`,\r\n content: `Are you sure you want to duplicate <b>'${details.checkListName}'?</b> This action cannot be undone.`,\r\n buttontype: 'duplicate'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {centered:true,size:'md'});\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => { \r\n if (res == 'duplicate') {\r\n this.traxService.duplicatechecklist(details._id).pipe(takeUntil(this.destroy$))?.subscribe({\r\n next:(res:any) => {\r\n if(res && res.code == 200) {\r\n this.getCheckList();\r\n this.toast.getSuccessToast(`${details.checkListName} has been duplicated.`);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n else {\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"36\" height=\"36\" viewBox=\"0 0 36 36\" fill=\"none\"><rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" fill=\"#FEE4E2\"/><path d=\"M12 14.0007H13.3333M13.3333 14.0007H24M13.3333 14.0007V23.334C13.3333 23.6876 13.4738 24.0267 13.7239 24.2768C13.9739 24.5268 14.313 24.6673 14.6667 24.6673H21.3333C21.687 24.6673 22.0261 24.5268 22.2761 24.2768C22.5262 24.0267 22.6667 23.6876 22.6667 23.334V14.0007H13.3333ZM15.3333 14.0007V12.6673C15.3333 12.3137 15.4738 11.9746 15.7239 11.7245C15.9739 11.4745 16.313 11.334 16.6667 11.334H19.3333C19.687 11.334 20.0261 11.4745 20.2761 11.7245C20.5262 11.9746 20.6667 12.3137 20.6667 12.6673V14.0007M16.6667 17.334V21.334M19.3333 17.334V21.334\" stroke=\"#D92D20\" stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"2\" y=\"2\" width=\"32\" height=\"32\" rx=\"16\" stroke=\"#FEF3F2\" stroke-width=\"4\"/></svg>',\r\n title: `Delete '${details.checkListName} Section'?`,\r\n content: `Are you sure you want to delete <b>'${details.checkListName}'?</b> This action cannot be undone.`,\r\n buttontype: 'delete'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {centered:true,size:'md'});\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => { \r\n if (res == 'delete') {\r\n this.traxService.deleteChecklist(details._id).pipe(takeUntil(this.destroy$))?.subscribe({\r\n next:(res:any) => {\r\n if(res && res.code == 200) {\r\n this.getCheckList();\r\n this.toast.getSuccessToast(`${details.checkListName} has been Deleted.`);\r\n }\r\n }\r\n });\r\n }\r\n });\r\n }\r\n }\r\n\r\n publish(event:any,data:any,i:number) {\r\n let popupcontent;\r\n let htmlContent:any;\r\n if(event.target.checked) {\r\n popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#D1FADF\"/><path d=\"M38 27.0818V28.0018C37.9988 30.1582 37.3005 32.2565 36.0093 33.9836C34.7182 35.7108 32.9033 36.9743 30.8354 37.5857C28.7674 38.1971 26.5573 38.1237 24.5345 37.3764C22.5117 36.6291 20.7847 35.2479 19.611 33.4389C18.4373 31.6299 17.8798 29.4899 18.0217 27.3381C18.1636 25.1864 18.9972 23.1381 20.3983 21.4989C21.7994 19.8596 23.6928 18.7172 25.7962 18.242C27.8996 17.7667 30.1003 17.9842 32.07 18.8618M38 20.0018L28 30.0118L25 27.0118\" stroke=\"#039855\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#ECFDF3\" stroke-width=\"8\"/></svg>',\r\n title: `'${data.checkListName}' checklist published\r\n ?`,\r\n content: `This checklist has been published. Any changes made will reflect from the next occurrence.`,\r\n buttontype: 'confirm'\r\n }\r\n htmlContent= `${data.checkListName} has been published</div>`;\r\n }\r\n else {\r\n popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>',\r\n title: `Are you sure you want to unpublish ‘${data.checkListName}’ checklist?`,\r\n content: `This checklist has already published. Any changes made will reflect from the next occurrence.`,\r\n buttontype: 'confirm'\r\n }\r\n htmlContent= `${data.checkListName} has been unpublished`;\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md' \r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => {\r\n if (res == 'confirm') {\r\n this.traxService.publish(data._id, {\r\n publish: event.target.checked\r\n }).subscribe((result:any) =>{\r\n if(result && result.code == 200) {\r\n event.target.checked = true;\r\n this.getCheckList();\r\n }\r\n else {\r\n event.target.checked = false;\r\n }\r\n })\r\n } \r\n else {\r\n event.target.checked = false;\r\n this.cd.detectChanges();\r\n } \r\n })\r\n }\r\n\r\n\r\n search() {\r\n this.dynamicData.offset = 0;\r\n this.dynamicData.limit = 10;\r\n this.dynamicData.sortColumn = '';\r\n this.dynamicData.sortBy = '';\r\n this.getCheckList();\r\n }\r\n\r\n}\r\n","<div class=\"card p-5 mb-10\">\r\n <div class=\"card-title mt-3\">\r\n <h1 class=\" my-0 checklistTitle\">\r\n Manage Your Checklist\r\n </h1>\r\n <div class=\"mt-1 checklistHead\">You can create and manage your checklist here</div>\r\n </div>\r\n <div class=\"row me-16 mt-10\">\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Create your own \r\n <span>\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=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <a class=\"d-block\" data-fslightbox=\"lightbox-hot-sales\"\r\n routerLink=\"/manage/trax/createChecklist\">\r\n <div>\r\n <img src=\"./assets/tango/Images/newChecklist.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Create New Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure Predefined Checklist\r\n <span>\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=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/predefined.svg\" class=\"w-100 borderClass\"/>\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of templates</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"mb-2 checklistHead\">\r\n Configure your Predefined AI checklist\r\n <span>\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=\"M7.5763 7.50033C7.77222 6.94338 8.15893 6.47375 8.66793 6.1746C9.17693 5.87546 9.77538 5.76611 10.3573 5.86592C10.9392 5.96573 11.467 6.26826 11.8472 6.71993C12.2274 7.1716 12.4355 7.74326 12.4346 8.33366C12.4346 10.0003 9.93464 10.8337 9.93464 10.8337M10.0013 14.167H10.0096M18.3346 10.0003C18.3346 14.6027 14.6037 18.3337 10.0013 18.3337C5.39893 18.3337 1.66797 14.6027 1.66797 10.0003C1.66797 5.39795 5.39893 1.66699 10.0013 1.66699C14.6037 1.66699 18.3346 5.39795 18.3346 10.0003Z\"\r\n stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"card card-flush rounded rounded-4\">\r\n <div class=\" text-center\">\r\n <!-- href=\"/sop/Configure?type=mobileusagedetection\" -->\r\n <a class=\"d-block w-100\" data-fslightbox=\"lightbox-hot-sales\"\r\n >\r\n <div>\r\n <img src=\"./assets/tango/Images/aichecklist.svg\" class=\"w-100 borderClass\" />\r\n </div>\r\n </a>\r\n <div class=\"d-flex align-items-end flex-stack mt-8 mb-8\">\r\n <div class=\"text-start mx-6\">\r\n <span class=\"checklistText\">Choose from a library of AI Checklists</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n<div class=\"card\">\r\n <div class=\"row mt-8\">\r\n <div class=\"col-lg-12\" *ngIf=\"noData\">\r\n <div class=\"card-body text-center\">\r\n <img src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\" class=\"startchecklist\">\r\n <div class=\"checklist_text fw-semibold mt-6 checkStart\">Start by creating a checklist</div>\r\n <div class=\"checklist_span mt-1 checklistHead\">Any checklist created will live here.</div>\r\n </div>\r\n <div data-kt-subscription-table-toolbar=\"base\" class=\"d-flex justify-content-center\">\r\n <a href=\"https://tangoeye.ai/\" class=\"btn-outline btn-outline btn btn-light upload mx-3 px-16 checkStart\"><span\r\n class=\"uploadtext\">How To\r\n Create?</span></a>\r\n\r\n <a routerLink=\"/manage/trax/createChecklist\" type=\"button\" tabindex=\"0\"\r\n class=\"btn btn-primary px-16 mx-2 ng-star-inserted checkStart\" style=\"white-space: nowrap;\"><span\r\n class=\"svg-icon svg-icon-2\"><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=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Create New</span></a>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 mt-3\">\r\n <div class=\"card-header border-0 pt-3 mb-5\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"title-text mb-2\">Checklist Info</span>\r\n <span class=\"text-sub mb-2\">Based on 06 Jan, 2022– 13 Jan, 2022</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\"\r\n 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\"\r\n class=\"form-control ps-14 me-2\" autocomplete=\"off\" placeholder=\"Search\" [(ngModel)]=\"dynamicData.search\" (change)=\"search()\"/>\r\n\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" type=\"button\" \r\n class=\"btn btn-primary 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=\"M10.0013 4.16699V15.8337M4.16797 10.0003H15.8346\" stroke=\"white\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Create Checklist</span> </a>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\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 && !loading\" calss=\"card-body\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('checkListName')\">Checklist <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'checkListName' && dynamicData.sortBy === 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]=\"dynamicData.sortColumn === 'checkListName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('createdByName')\">Checklist Owner <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'createdByName' && dynamicData.sortBy === 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]=\"dynamicData.sortColumn === 'createdByName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <!-- <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('coverage')\">Coverage <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeId' && dynamicData.sortBy === 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]=\"dynamicData.sortColumn === 'storeId' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th> -->\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('storeCount')\">Assigned To <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'storeCount' && dynamicData.sortBy === 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]=\"dynamicData.sortColumn === 'storeCount' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('status')\">Status <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'status' && dynamicData.sortBy === 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]=\"dynamicData.sortColumn === 'status' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\">Actions</span>\r\n </th>\r\n <th class=\"cursor-pointer\">\r\n <span class=\"cursor-pointer\" (click)=\"onSort('publish')\">Publish <svg\r\n [ngClass]=\"dynamicData.sortColumn === 'publish' && dynamicData.sortBy === 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]=\"dynamicData.sortColumn === 'publish' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of checklistData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td class=\"text-primary text-capitalize text-decoration-underline cursor-pointer\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">{{data.checkListChar.toUpperCase()}}</span>\r\n </div>\r\n {{data.checkListName}}\r\n </td>\r\n <td>{{data.createdByName}}</td>\r\n <td >{{data.storeCount}}</td>\r\n <td><span class=\"badge\" [ngClass]=\"data.publish ? 'badge-light-success' : 'badge-light-primary'\">{{(data.publish ? 'Published' :'draft') | titlecase}}</span></td>\r\n <td>\r\n <span class=\"me-6\" [ngClass]=\"!data?.publish ? 'cursor-pointer' : ''\" (click)=\"!data?.publish ? redirect('edit',data._id) : ''\">\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=\"M0.832031 9.99967C0.832031 9.99967 4.16536 3.33301 9.9987 3.33301C15.832 3.33301 19.1654 9.99967 19.1654 9.99967C19.1654 9.99967 15.832 16.6663 9.9987 16.6663C4.16536 16.6663 0.832031 9.99967 0.832031 9.99967Z\"\r\n [attr.stroke]=\"!data.publish ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n [attr.stroke]=\"!data.publish ? '#667085' : '#D0D5DD'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"me-6 cursor-pointer\" (click)=\"redirect('setting',data._id)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20261)\">\r\n <path\r\n d=\"M9.9987 12.4997C11.3794 12.4997 12.4987 11.3804 12.4987 9.99967C12.4987 8.61896 11.3794 7.49967 9.9987 7.49967C8.61799 7.49967 7.4987 8.61896 7.4987 9.99967C7.4987 11.3804 8.61799 12.4997 9.9987 12.4997Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n <path\r\n d=\"M16.1654 12.4997C16.0544 12.751 16.0213 13.0298 16.0704 13.3002C16.1194 13.5705 16.2482 13.8199 16.4404 14.0163L16.4904 14.0663C16.6453 14.2211 16.7683 14.4049 16.8521 14.6073C16.936 14.8096 16.9792 15.0265 16.9792 15.2455C16.9792 15.4645 16.936 15.6814 16.8521 15.8837C16.7683 16.0861 16.6453 16.2699 16.4904 16.4247C16.3356 16.5796 16.1518 16.7026 15.9494 16.7864C15.7471 16.8703 15.5302 16.9135 15.3112 16.9135C15.0922 16.9135 14.8753 16.8703 14.673 16.7864C14.4706 16.7026 14.2868 16.5796 14.132 16.4247L14.082 16.3747C13.8856 16.1826 13.6362 16.0537 13.3659 16.0047C13.0955 15.9557 12.8167 15.9887 12.5654 16.0997C12.3189 16.2053 12.1087 16.3807 11.9606 16.6043C11.8126 16.8279 11.7331 17.0899 11.732 17.358V17.4997C11.732 17.9417 11.5564 18.3656 11.2439 18.6782C10.9313 18.9907 10.5074 19.1663 10.0654 19.1663C9.62334 19.1663 9.19941 18.9907 8.88685 18.6782C8.57429 18.3656 8.3987 17.9417 8.3987 17.4997V17.4247C8.39225 17.1488 8.30296 16.8813 8.14246 16.6569C7.98195 16.4325 7.75764 16.2616 7.4987 16.1663C7.24735 16.0554 6.96854 16.0223 6.69821 16.0713C6.42788 16.1204 6.17843 16.2492 5.98203 16.4413L5.93203 16.4913C5.77724 16.6463 5.59343 16.7692 5.3911 16.8531C5.18877 16.937 4.97189 16.9802 4.75286 16.9802C4.53384 16.9802 4.31696 16.937 4.11463 16.8531C3.9123 16.7692 3.72849 16.6463 3.5737 16.4913C3.41874 16.3366 3.29581 16.1527 3.21193 15.9504C3.12806 15.7481 3.08489 15.5312 3.08489 15.3122C3.08489 15.0931 3.12806 14.8763 3.21193 14.6739C3.29581 14.4716 3.41874 14.2878 3.5737 14.133L3.6237 14.083C3.81581 13.8866 3.94469 13.6372 3.9937 13.3668C4.04272 13.0965 4.00963 12.8177 3.8987 12.5663C3.79306 12.3199 3.61766 12.1097 3.39409 11.9616C3.17051 11.8135 2.90852 11.7341 2.64036 11.733H2.4987C2.05667 11.733 1.63275 11.5574 1.32019 11.2449C1.00763 10.9323 0.832031 10.5084 0.832031 10.0663C0.832031 9.62431 1.00763 9.20039 1.32019 8.88783C1.63275 8.57527 2.05667 8.39967 2.4987 8.39967H2.5737C2.84953 8.39322 3.11703 8.30394 3.34145 8.14343C3.56586 7.98293 3.73679 7.75862 3.83203 7.49967C3.94296 7.24833 3.97605 6.96951 3.92703 6.69918C3.87802 6.42885 3.74914 6.17941 3.55703 5.98301L3.50703 5.93301C3.35207 5.77822 3.22914 5.5944 3.14526 5.39207C3.06139 5.18974 3.01822 4.97287 3.01822 4.75384C3.01822 4.53481 3.06139 4.31794 3.14526 4.11561C3.22914 3.91328 3.35207 3.72946 3.50703 3.57467C3.66182 3.41971 3.84563 3.29678 4.04796 3.21291C4.25029 3.12903 4.46717 3.08586 4.6862 3.08586C4.90522 3.08586 5.1221 3.12903 5.32443 3.21291C5.52676 3.29678 5.71058 3.41971 5.86536 3.57467L5.91536 3.62467C6.11176 3.81679 6.36121 3.94566 6.63154 3.99468C6.90187 4.04369 7.18068 4.0106 7.43203 3.89967H7.4987C7.74517 3.79404 7.95538 3.61864 8.10344 3.39506C8.2515 3.17149 8.33096 2.9095 8.33203 2.64134V2.49967C8.33203 2.05765 8.50763 1.63372 8.82019 1.32116C9.13275 1.0086 9.55667 0.833008 9.9987 0.833008C10.4407 0.833008 10.8646 1.0086 11.1772 1.32116C11.4898 1.63372 11.6654 2.05765 11.6654 2.49967V2.57467C11.6664 2.84283 11.7459 3.10482 11.894 3.3284C12.042 3.55197 12.2522 3.72737 12.4987 3.83301C12.75 3.94394 13.0289 3.97703 13.2992 3.92801C13.5695 3.879 13.819 3.75012 14.0154 3.55801L14.0654 3.50801C14.2202 3.35305 14.404 3.23012 14.6063 3.14624C14.8086 3.06237 15.0255 3.0192 15.2445 3.0192C15.4636 3.0192 15.6804 3.06237 15.8828 3.14624C16.0851 3.23012 16.2689 3.35305 16.4237 3.50801C16.5787 3.6628 16.7016 3.84661 16.7855 4.04894C16.8693 4.25127 16.9125 4.46815 16.9125 4.68717C16.9125 4.9062 16.8693 5.12308 16.7855 5.32541C16.7016 5.52774 16.5787 5.71155 16.4237 5.86634L16.3737 5.91634C16.1816 6.11274 16.0527 6.36219 16.0037 6.63252C15.9547 6.90285 15.9878 7.18166 16.0987 7.43301V7.49967C16.2043 7.74615 16.3797 7.95635 16.6033 8.10442C16.8269 8.25248 17.0889 8.33194 17.357 8.33301H17.4987C17.9407 8.33301 18.3646 8.5086 18.6772 8.82116C18.9898 9.13372 19.1654 9.55765 19.1654 9.99967C19.1654 10.4417 18.9898 10.8656 18.6772 11.1782C18.3646 11.4907 17.9407 11.6663 17.4987 11.6663H17.4237C17.1555 11.6674 16.8936 11.7469 16.67 11.8949C16.4464 12.043 16.271 12.2532 16.1654 12.4997Z\"\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_2254_20261\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span class=\"cursor-pointer\" (click)=\"redirect('duplicate',data)\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2254_20265)\">\r\n <path\r\n d=\"M4.16797 12.5003H3.33464C2.89261 12.5003 2.46868 12.3247 2.15612 12.0122C1.84356 11.6996 1.66797 11.2757 1.66797 10.8337V3.33366C1.66797 2.89163 1.84356 2.46771 2.15612 2.15515C2.46868 1.84259 2.89261 1.66699 3.33464 1.66699H10.8346C11.2767 1.66699 11.7006 1.84259 12.0131 2.15515C12.3257 2.46771 12.5013 2.89163 12.5013 3.33366V4.16699M9.16797 7.50033H16.668C17.5884 7.50033 18.3346 8.24652 18.3346 9.16699V16.667C18.3346 17.5875 17.5884 18.3337 16.668 18.3337H9.16797C8.24749 18.3337 7.5013 17.5875 7.5013 16.667V9.16699C7.5013 8.24652 8.24749 7.50033 9.16797 7.50033Z\"\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_2254_20265\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <span (click)=\"!data.publish ? redirect('delete',data) : ''\" [ngClass]=\"!data?.publish ? 'cursor-pointer' : ''\">\r\n <svg width=\"40\" height=\"41\" viewBox=\"0 0 40 41\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <g clip-path=\"url(#clip0_3162_10414)\">\r\n <path\r\n d=\"M12.5 15.0228H14.1667M14.1667 15.0228H27.5M14.1667 15.0228V26.6895C14.1667 27.1315 14.3423 27.5554 14.6548 27.868C14.9674 28.1805 15.3913 28.3561 15.8333 28.3561H24.1667C24.6087 28.3561 25.0326 28.1805 25.3452 27.868C25.6577 27.5554 25.8333 27.1315 25.8333 26.6895V15.0228H14.1667ZM16.6667 15.0228V13.3561C16.6667 12.9141 16.8423 12.4902 17.1548 12.1776C17.4674 11.865 17.8913 11.6895 18.3333 11.6895H21.6667C22.1087 11.6895 22.5326 11.865 22.8452 12.1776C23.1577 12.4902 23.3333 12.9141 23.3333 13.3561V15.0228M18.3333 19.1895V24.1895M21.6667 19.1895V24.1895\"\r\n [attr.stroke]=\"data.publish ? '#D0D5DD' :'#667085'\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3162_10414\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" transform=\"translate(10 10.0234)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </td>\r\n <td>\r\n <span class=\"form-check form-switch\">\r\n <input type=\"checkbox\" role=\"switch\" id=\"support\" class=\"form-check-input mt-3 cursor-pointer\" (change)=\"publish($event, data,i)\" [checked]=\"data?.publish\" [disabled]=\"!data?.storeCount\">\r\n </span>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"pageSize\" [currentPage]=\"dynamicData.offset\" [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 { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { FormGroup, FormControl, Validators, FormArray, FormBuilder, Form } from '@angular/forms';\r\nimport { PageInfoService } from 'tango-app-ui-global';\r\nimport { CdkDragDrop, moveItemInArray, transferArrayItem } from '@angular/cdk/drag-drop';\r\nimport { timer } from 'rxjs';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { TraxpopupComponent } from '../traxpopup/traxpopup.component';\r\nimport { ActivatedRoute,Router } from '@angular/router';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { TraxService } from '../../services/trax.service';\r\n\r\n@Component({\r\n selector: 'lib-add-checklist',\r\n templateUrl: './add-checklist.component.html',\r\n styleUrl: './add-checklist.component.scss'\r\n})\r\nexport class AddChecklistComponent implements OnInit {\r\n @ViewChild('formRef') formRef: ElementRef;\r\n\r\n ChecklistForm!: FormGroup;\r\n show: number = 0;\r\n sectionIndex: number = 0;\r\n getobject: any;\r\n editvalue: any;\r\n isDisabled: boolean = true;\r\n nosection:boolean = false;\r\n showvalue: string;\r\n refImgQIdx: number = 0;\r\n checklistLoading: boolean = false;\r\n popupCount:number = 0;\r\n \r\n constructor(private pageInfo:PageInfoService,private fb: FormBuilder,private changedetector:ChangeDetectorRef,private dialog:NgbModal,private route:ActivatedRoute,private toast:ToastService,private router:Router,private sopService:TraxService) {\r\n this.route.queryParams.subscribe((params: any) => {\r\n this.editvalue = params.checklistId\r\n if (params.checklistId) {\r\n this.showvalue = 'edit';\r\n } else {\r\n this.showvalue = 'add'\r\n }\r\n if (this.showvalue == 'edit' || params.type) {\r\n let obj: any = {};\r\n if (params.checklistId) {\r\n obj.checkListId = params.checklistId\r\n } else {\r\n obj.type = params.type;\r\n }\r\n this.checklistLoading = true;\r\n this.sopService.getconfig(obj)\r\n .subscribe((res: any) => {\r\n if(res) {\r\n if(res.code == 200) {\r\n this.getobject = res.data.checkListDetails;\r\n this.formChecklistQuestions();\r\n } else {\r\n this.checklistLoading = false;\r\n }\r\n } else {\r\n this.checklistLoading = false;\r\n }\r\n },(error) => {\r\n this.checklistLoading = false;\r\n });\r\n } else {\r\n this.initChecklist();\r\n }\r\n }); \r\n }\r\n \r\n ngOnInit(): void {\r\n this.initChecklist();\r\n this.setPageData();\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle(\"Trax\");\r\n this.pageInfo.setDescription(\"Automate or create checklists to improve operational efficiency\");\r\n this.pageInfo.setBreadcrumbs([\r\n { title: \"Analyze\", path: \"/Analyze\", isActive: false, isSeparator: false },\r\n { title: \"Analyze\", path: \"/Analyze\", isActive: false, isSeparator: true },\r\n { title: \"Manage\", path: \"/manage\", isActive: false, isSeparator: false },\r\n { title: \"Manage\", path: \"/manage\", isActive: false, isSeparator: true },\r\n ]);\r\n }\r\n \r\n updateInputValue(sectionIndex: number,sectionName: string): void {\r\n if (sectionName.trim() === '') {\r\n this.getSectionFormControl(sectionIndex,'name')?.setValue(`Section ${sectionIndex+1}`);\r\n }\r\n }\r\n scrollToQuestion(sectionIndex: number, questionIndex: number): void {\r\n const questionId = `q-${sectionIndex}-${questionIndex}`;\r\n setTimeout(() => {\r\n const questionElement = this.formRef.nativeElement.querySelector(`#${questionId}`);\r\n \r\n if (questionElement) {\r\n questionElement.scrollIntoView({ block: 'center', behavior: 'smooth' });\r\n }\r\n }, 100);\r\n }\r\n\r\n formChecklistQuestions() { \r\n let sectionsarray: any = [];\r\n let sections: any[] = [];\r\n sectionsarray = this.getobject.sections\r\n \r\n sectionsarray.forEach((i: any,sectionIndex: number) => {\r\n let questions: any[] = [];\r\n i.questions.forEach((j: any,questionIndex: number) => {\r\n let answer: any[] = [];\r\n j.answers?.forEach((k: any,answerIndex: number) => {\r\n answer.push(\r\n this.fb.group({\r\n ...(!['image','descriptiveImage','multipleImage'].includes(j?.answerType) && j?.answerType != 'video'? { 'answer': this.fb.control(k?.answer, [Validators.required]) } : {}),\r\n 'answeroptionNumber': this.fb.control(answerIndex),\r\n ...(!['image','descriptiveImage','multipleImage'].includes(j?.answerType) && j?.answerType != 'video'? { 'sopFlag': this.fb.control(k?.sopFlag ? k?.sopFlag : false, [Validators.required]) } : {}),\r\n ...(!['image','descriptiveImage','multipleImage'].includes(j?.answerType) && j?.answerType != 'video'? { 'validation': this.fb.control(k?.validation, [Validators.required]) } : {}),\r\n ...(!['image','descriptiveImage','multipleImage'].includes(j?.answerType) && j?.answerType != 'video'? { 'validationType': this.fb.control(k?.validationType, this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\", \"Capture Video\"])) } : {}),\r\n ...(['image','descriptiveImage','multipleImage'].includes(j?.answerType) ? { 'referenceImage': this.fb.control(k?.referenceImage) } : {}),\r\n ...((['image','descriptiveImage','multipleImage'].includes(j?.answerType) || j?.answerType == 'video') ? { 'allowUploadfromGallery': this.fb.control(j?.allowUploadfromGallery ? true : false) } : {}),\r\n ...(['image','descriptiveImage','multipleImage'].includes(j?.answerType) ? { 'runAI': this.fb.control((j?.runAI) ? j?.runAI : false) } : {}),\r\n ...(['multiplechoicesingle','yes/no'].includes(j?.answerType) ? { 'showLinked': this.fb.control((k?.showLinked) ? k?.showLinked : false) } : {}),\r\n ...(['multiplechoicesingle','yes/no'].includes(j?.answerType) ? { 'linkedQuestion': this.fb.control((k?.linkedQuestion) ? k?.linkedQuestion : 0) } : {}),\r\n ...(!['descriptive','image', 'descriptiveImage','multipleImage','date'].includes(j?.answerType) ? { 'referenceImage': this.fb.control(k?.referenceImage) } : {}),\r\n ...((!['descriptive','image', 'descriptiveImage','video','multipleImage','date'].includes(j?.answerType)) ? { 'allowUploadfromGallery': this.fb.control(k?.allowUploadfromGallery ? true : false) } : {}),\r\n ...(!['descriptive','image', 'descriptiveImage','multipleImage','date'].includes(j?.answerType) ? { 'runAI': this.fb.control((k?.runAI) ? k?.runAI : false) } : {}),\r\n ...(!['date'].includes(j?.answerType) ? { 'descriptivetype':this.fb.control(k.descriptivetype) } : {}),\r\n }));\r\n });\r\n questions.push(\r\n this.fb.group({\r\n \"qno\": this.fb.control(questionIndex+1),\r\n 'qname': this.fb.control(j?.qname, [Validators.required]),\r\n 'answerType': this.fb.control(j?.answerType, this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\", \"image\", \"video\",\"descriptiveImage\",\"multipleImage\",'date'])),\r\n ...(!['descriptive','date'].includes(j?.answerType)) ? { 'answers': (['image','descriptiveImage', 'video','multipleImage'].includes(j?.answerType)) ? answer[0] : this.fb.array(answer) } : {},\r\n 'runAI': this.fb.control((['image','descriptiveImage',\"multipleImage\"].includes(j?.answerType)) ? (j?.runAI) ? true : false : false, [Validators.required]),\r\n 'allowUploadfromGallery': this.fb.control((['image','descriptiveImage','video','multipleImage'].includes(j?.answerType)) ? (j?.allowUploadfromGallery) ? true : false : false, [Validators.required]),\r\n 'runAIDescription': this.fb.control((['image','descriptiveImage','multipleImage'].includes(j?.answerType)) ? (j?.runAIDescription) : ''),\r\n 'linkType': this.fb.control(j?.linkType),\r\n 'questionReferenceImage':this.fb.control(j.questionReferenceImage),\r\n 'descriptivetype':this.fb.control(j.descriptivetype),\r\n })\r\n );\r\n answer = [];\r\n });\r\n\r\n sections.push(\r\n this.fb.group({\r\n \"name\": this.fb.control(i?.name, [Validators.required, Validators.minLength(1)]),\r\n \"sectionNumber\": this.fb.control(sectionIndex+1),\r\n \"questions\": this.fb.array(questions)\r\n }));\r\n questions = [];\r\n });\r\n\r\n this.ChecklistForm = this.fb.group({\r\n 'checklistName': this.fb.control(this.getobject.checkListName, [Validators.required]),\r\n 'checklistDescription': this.fb.control(this.getobject.checkListDescription),\r\n 'sections': this.fb.array(sections)\r\n }); \r\n this.ChecklistForm.updateValueAndValidity();\r\n this.checklistLoading = false;\r\n }\r\n\r\n initChecklist() {\r\n // console.log(moment().tz('Asia/Singapore').format('DD-MM-YYYY hh:mm A'),'test')\r\n this.ChecklistForm = this.fb.group({\r\n 'checklistName': this.fb.control('', [Validators.required]),\r\n 'checklistDescription': this.fb.control(''),\r\n 'sections': this.fb.array([\r\n this.fb.group({\r\n \"name\": this.fb.control('Section 1', [Validators.required,Validators.minLength(1)]),\r\n \"sectionNumber\": this.fb.control(1, [Validators.required]),\r\n \"questions\": this.fb.array([\r\n this.fb.group({\r\n \"qno\": this.fb.control(1, [Validators.required]),\r\n 'qname': this.fb.control('', [Validators.required]),\r\n 'answerType': this.fb.control('descriptive',\r\n this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\",'multipleImage','date'])),\r\n 'runAI': this.fb.control(false, [Validators.required]),\r\n 'runAIDescription': this.fb.control(''),\r\n 'allowUploadfromGallery': this.fb.control(false, [Validators.required]),\r\n 'linkType': this.fb.control(false, [Validators.required]),\r\n 'questionReferenceImage':this.fb.control(''),\r\n 'descriptivetype':this.fb.control('text'),\r\n })\r\n ])\r\n })\r\n ])\r\n });\r\n this.checklistLoading = false;\r\n }\r\n\r\n allowedValuesValidator(allowedValues: string[]) {\r\n return (control: any) => {\r\n const value = control.value;\r\n if (value && allowedValues.indexOf(value) === -1) {\r\n return { invalidValue: true };\r\n }\r\n return null;\r\n };\r\n }\r\n\r\n addNewSection() {\r\n let sections = this.ChecklistForm.get('sections') as FormArray;\r\n let sectionLength = sections.length;\r\n (this.ChecklistForm.get('sections') as FormArray).push(\r\n this.fb.group({\r\n \"name\": this.fb.control(`Section ${sectionLength + 1}`, [Validators.required,Validators.minLength(1)]),\r\n \"sectionNumber\": this.fb.control(sectionLength + 1, [Validators.required]),\r\n \"questions\": this.fb.array([\r\n this.fb.group({\r\n \"qno\": this.fb.control(1, [Validators.required]),\r\n 'qname': this.fb.control('', [Validators.required]),\r\n 'answerType': this.fb.control('descriptive',\r\n this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\",'multipleImage','date'])),\r\n 'runAI': this.fb.control(false, [Validators.required]),\r\n 'runAIDescription': this.fb.control(''),\r\n 'allowUploadfromGallery': this.fb.control(false, [Validators.required]),\r\n 'linkType': this.fb.control(false, [Validators.required]),\r\n 'questionReferenceImage':this.fb.control(''),\r\n 'descriptivetype':this.fb.control('text'),\r\n \r\n })\r\n ])\r\n })\r\n );\r\n if(sectionLength == 0) {\r\n this.show = -1;\r\n }\r\n this.accordian(sectionLength);\r\n this.swalToast('New section added!');\r\n }\r\n\r\n removeSection(sectionIndex: number) {\r\n (this.ChecklistForm.get('sections') as FormArray).removeAt(sectionIndex);\r\n }\r\n\r\n dragDrop(sectionIndex: any, event: CdkDragDrop<any[]>) {\r\n if (event.previousContainer === event.container) {\r\n moveItemInArray(event.container.data, event.previousIndex, event.currentIndex);\r\n // this.updatelinkedQuestionNo(sectionIndex,event.previousIndex,event.currentIndex)\r\n this.updateQuestionQnos(sectionIndex);\r\n } else {\r\n transferArrayItem(\r\n event.previousContainer.data,\r\n event.container.data,\r\n event.previousIndex,\r\n event.currentIndex\r\n );\r\n }\r\n }\r\n\r\n updatelinkedQuestionNo(secIdx:number,prevIdx:number,qnIdx:number) {\r\n let questions = (this.getSectionFormArray().at(secIdx).get('questions') as FormArray);\r\n for(let i=0;i<questions.length-1;i++) {\r\n let answers = ((questions.at(i) as FormGroup).get('answers') as FormArray);\r\n for(let j=0;j<answers?.length -1;j++) {\r\n let linked = (answers.at(j) as FormGroup).get('showLinked')?.value;\r\n if(linked) {\r\n let linkedNo = (answers.at(j) as FormGroup).get('linkedQuestion')?.value;\r\n if(linkedNo == prevIdx + 1) {\r\n (answers.at(j) as FormGroup).get('linkedQuestion')?.setValue(qnIdx + 1);\r\n }\r\n else if(linkedNo <= qnIdx + 1) {\r\n (answers.at(j) as FormGroup).get('linkedQuestion')?.setValue(linkedNo - 1);\r\n }\r\n\r\n }\r\n\r\n }\r\n }\r\n\r\n }\r\n\r\n answerTypeSelection(sectionIndex: any, questionIndex: any, event: any,ansIndex:number = -1,linkQuestionIndex:number = -1) {\r\n let selectvalue: string = event.target.value;\r\n ((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup).get('questionReferenceImage')?.setValue('');\r\n if(!['descriptive','multipleImage'].includes(selectvalue)) {\r\n ((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup).get('descriptivetype')?.setValue('');\r\n }\r\n else {\r\n ((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup).get('descriptivetype')?.setValue('text');\r\n }\r\n if (event.target.value == 'yes/no' || event.target.value == 'multiplechoicesingle') {\r\n this.setAnswerAsFormArray(sectionIndex, questionIndex,selectvalue,ansIndex,linkQuestionIndex);\r\n } else if (event.target.value == 'descriptive') {\r\n } else if (event.target.value == 'descriptiveImage') {\r\n this.setAnswerAsFormGroup(sectionIndex, questionIndex, selectvalue,ansIndex,linkQuestionIndex);\r\n } else if (event.target.value == 'multiplechoicemultiple') {\r\n this.setAnswerAsFormArray(sectionIndex, questionIndex,selectvalue,ansIndex,linkQuestionIndex);\r\n } else if (event.target.value == 'image') {\r\n this.setAnswerAsFormGroup(sectionIndex, questionIndex, 'image',ansIndex,linkQuestionIndex);\r\n } else if (event.target.value == 'video') {\r\n this.setAnswerAsFormGroup(sectionIndex, questionIndex, 'video',ansIndex,linkQuestionIndex);\r\n }else if (event.target.value == 'multipleImage') {\r\n this.setAnswerAsFormGroup(sectionIndex, questionIndex, 'multipleImage',ansIndex,linkQuestionIndex);\r\n }else if (event.target.value == 'date') {}\r\n this.removedNestedQuestion(sectionIndex,questionIndex);\r\n }\r\n\r\n updateValidationType(event:any,section:number,question:number,answer:number) {\r\n if(event.target.value == 'Descriptive Answer') {\r\n ((((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(section) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(question) as FormGroup).get('answers') as FormArray).at(answer) as FormGroup).get('descriptivetype')?.setValue('text');\r\n }\r\n ((((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(section) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(question) as FormGroup).get('answers') as FormArray).at(answer) as FormGroup).get('allowUploadfromGallery')?.setValue(false);\r\n }\r\n\r\n setAnswerAsFormArray(sectionIndex: number, questionIndex: number,selectvalue: string,ansIndex:number,linkQuestionIndex:number) {\r\n let question = ((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup);\r\n \r\n if(ansIndex != -1) {\r\n question = (((((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup)\r\n .get('answers') as FormArray)\r\n .at(ansIndex) as FormGroup)\r\n .get('linkQuestionAnswers') as FormArray)\r\n .at(linkQuestionIndex) as FormGroup\r\n }\r\n\r\n if (selectvalue == 'yes/no') {\r\n question.setControl('answers',\r\n this.fb.array([\r\n this.fb.group({\r\n 'answer': this.fb.control('Yes', [Validators.required]),\r\n 'answeroptionNumber': this.fb.control(1),\r\n 'sopFlag': this.fb.control(false, [Validators.required]),\r\n // 'linkQuestion':this.fb.control(false,[Validators.required]),\r\n // 'answerInputStyle': this.fb.control('radio',[Validators.required]),\r\n 'validation': this.fb.control(false, [Validators.required]),\r\n 'validationType': this.fb.control('Capture Image', this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\",\"Capture Video\"])),\r\n 'linkedQuestion':this.fb.control(0, [Validators.required]),\r\n 'showLinked':this.fb.control(false, [Validators.required]),\r\n 'referenceImage': this.fb.control(''),\r\n 'runAI': this.fb.control(false),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n 'descriptivetype':this.fb.control('')\r\n }),\r\n this.fb.group({\r\n 'answer': this.fb.control('No', [Validators.required]),\r\n 'answeroptionNumber': this.fb.control(2),\r\n 'sopFlag': this.fb.control(false, [Validators.required]),\r\n // 'linkQuestion':this.fb.control(false,[Validators.required]),\r\n // 'linkQuestionAnswers':this.fb.group({\r\n // \"qno\": this.fb.control(1, [Validators.required]),\r\n // 'qname': this.fb.control('', [Validators.required]),\r\n // 'answerType': this.fb.control('descriptive',\r\n // this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\"])),\r\n // // 'answers': this.fb.array([\r\n // // this.fb.group({\r\n // // 'answer': this.fb.control('', [Validators.required]),\r\n // // 'answeroptionNumber': this.fb.control(1),\r\n // // 'sopFlag': this.fb.control(false, [Validators.required]),\r\n // // // 'answerInputStyle':'descriptive',\r\n // // 'validation': this.fb.control(false, [Validators.required]),\r\n // // 'validationType': this.fb.control('Capture Image', this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\",\"Capture Video\"])),\r\n // // 'referenceImage': this.fb.control('referenceImage'),\r\n // // 'allowUploadfromGallery': this.fb.control(false),\r\n // // })\r\n // // ]), \r\n // 'runAI': this.fb.control(false, [Validators.required]),\r\n // 'runAIDescription': this.fb.control(''),\r\n // 'allowUploadfromGallery': this.fb.control(false, [Validators.required]),\r\n // }),\r\n // 'answerInputStyle': this.fb.control('radio',[Validators.required]),\r\n 'validation': this.fb.control(false, [Validators.required]),\r\n 'validationType': this.fb.control('Capture Image', this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\",\"Capture Video\"])),\r\n 'linkedQuestion':this.fb.control(0, [Validators.required]),\r\n 'showLinked':this.fb.control(false, [Validators.required]),\r\n 'referenceImage': this.fb.control(''),\r\n 'runAI': this.fb.control(false),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n 'descriptivetype':this.fb.control('')\r\n })\r\n ])\r\n );\r\n } else {\r\n question.setControl('answers',\r\n this.fb.array([\r\n this.fb.group({\r\n 'answer': this.fb.control('', [Validators.required]),\r\n 'answeroptionNumber': this.fb.control(1),\r\n 'sopFlag': this.fb.control(false, [Validators.required]),\r\n // ...(selectvalue=='multiplechoicesingle' ? {'linkQuestion':this.fb.control(true,[Validators.required])} : {}),\r\n // 'answerInputStyle': this.fb.control(question.get('answerType')?.value,[Validators.required]),\r\n 'validation': this.fb.control(false, [Validators.required]),\r\n 'validationType': this.fb.control('Capture Image', this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\",\"Capture Video\"])),\r\n ...(selectvalue == 'multiplechoicesingle' ? {\"linkedQuestion\":this.fb.control(0, [Validators.required]),'showLinked':this.fb.control(false, [Validators.required])} : {}),\r\n 'referenceImage': this.fb.control(''),\r\n 'runAI': this.fb.control(false),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n 'descriptivetype':this.fb.control('')\r\n }),\r\n this.fb.group({\r\n 'answer': this.fb.control('', [Validators.required]),\r\n 'answeroptionNumber': this.fb.control(1),\r\n 'sopFlag': this.fb.control(false, [Validators.required]),\r\n // ...(selectvalue=='multiplechoicesingle' ? {'linkQuestion':this.fb.control(true,[Validators.required])} : {}),\r\n // 'answerInputStyle': this.fb.control(question.get('answerType')?.value,[Validators.required]),\r\n 'validation': this.fb.control(false, [Validators.required]),\r\n 'validationType': this.fb.control('Capture Image', this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\",\"Capture Video\"])),\r\n ...(selectvalue == 'multiplechoicesingle' ? {\"linkedQuestion\":this.fb.control(0, [Validators.required]),'showLinked':this.fb.control(false, [Validators.required])} : {}),\r\n 'referenceImage': this.fb.control(''),\r\n 'runAI': this.fb.control(false),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n 'descriptivetype':this.fb.control('')\r\n })\r\n ]),\r\n );\r\n }\r\n this.ChecklistForm.updateValueAndValidity();\r\n }\r\n\r\n setAnswerAsFormGroup(sectionIndex: number, questionIndex: number, answerType: string,ansIndex:number = -1,linkQuestionIndex:number = -1) {\r\n if (['image', 'descriptiveImage','multipleImage'].includes(answerType)) {\r\n if(ansIndex == -1) {\r\n ((((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray).at(questionIndex) as FormGroup)\r\n .setControl('answers', \r\n this.fb.group({\r\n 'referenceImage': this.fb.control(''),\r\n 'runAI': this.fb.control(false),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n ...(answerType == 'multipleImage' ? {'descriptivetype':this.fb.control('text')}:{})\r\n // 'answerInputStyle': this.fb.control(answerType, [Validators.required]),\r\n }));\r\n }\r\n else {\r\n ((((((((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray).at(questionIndex) as FormGroup)\r\n .get('answers') as FormArray).at(ansIndex) as FormGroup)\r\n .get('linkQuestionAnswers') as FormArray).at(linkQuestionIndex) as FormGroup)\r\n .setControl('answers', \r\n this.fb.group({\r\n 'referenceImage': this.fb.control(''),\r\n 'runAI': this.fb.control(false),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n ...(answerType == 'multipleImage' ? {'descriptivetype':this.fb.control('text')}:{})\r\n // 'answerInputStyle': this.fb.control(answerType, [Validators.required]),\r\n }));\r\n }\r\n } else {\r\n let question = ((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup)\r\n\r\n if(ansIndex != -1) {\r\n question = ((((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup)\r\n .get('answers') as FormArray)\r\n .at(ansIndex) as FormGroup)\r\n }\r\n\r\n question.setControl('answers', this.fb.group({\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n // 'answerInputStyle': this.fb.control(answerType, [Validators.required]),\r\n })\r\n )\r\n }\r\n this.ChecklistForm.updateValueAndValidity();\r\n }\r\n\r\n loadImageFromDevice(secIdx: number,qIdx: number,event: any,ansIdx:number=-1,ctrlName:string = '') {\r\n if (event.target.files != undefined && event.target.files.length) {\r\n }\r\n let formData = new FormData();\r\n let file: File = event.target.files[0];\r\n formData.append('file', file, file.name);\r\n this.sopService.imageupload(formData).subscribe((res: any) => {\r\n // console.log(res,'res');\r\n if(ctrlName)\r\n this.getAnswerFormGroup_FormControl(secIdx,qIdx,'questionReferenceImage')?.setValue(res.data.imgUrl);\r\n else\r\n this.getAnswerFormGroup_FormControl(secIdx,qIdx,'referenceImage',ansIdx)?.setValue(res.data.imgUrl);\r\n \r\n this.ChecklistForm.updateValueAndValidity();\r\n this.changedetector.detectChanges(); \r\n })\r\n }\r\n\r\n clearReferenceImage(secIdx: number,qIdx: number,ansIdx:number=-1) {\r\n this.getAnswerFormGroup_FormControl(secIdx,qIdx,'referenceImage',ansIdx)?.setValue('');\r\n this.getAnswerFormGroup_FormControl(secIdx,qIdx,'runAI',ansIdx)?.setValue(false);\r\n this.getAnswerFormGroup_FormControl(secIdx,qIdx,'questionReferenceImage')?.setValue('');\r\n }\r\n\r\n getvalidation(sectionIndex: any, questionIndex: any, addmoreqnIndex: any, event: any) {\r\n ((((((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup).get('questions') as FormArray).at(questionIndex) as FormGroup).get('answers') as FormArray).at(addmoreqnIndex) as FormGroup).get('validation')?.setValue(event.target.checked);\r\n }\r\n\r\n addNewQuestion(sectionIndex: number) {\r\n if (this.sectionIndex > -1) {\r\n if (!(((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup).get('questions'))) {\r\n ((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup).setControl('questions', this.fb.array([]));\r\n }\r\n let questions = (((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup).get('questions') as FormArray);\r\n let questionsLength = questions.length;\r\n questions.push(this.fb.group({\r\n \"qno\": this.fb.control(questionsLength + 1,),\r\n 'qname': this.fb.control('', [Validators.required]),\r\n 'answerType': this.fb.control('descriptive',\r\n this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\",'multipleImage','date'])),\r\n 'runAI': this.fb.control(false, [Validators.required]),\r\n 'runAIDescription': this.fb.control(''),\r\n 'allowUploadfromGallery': this.fb.control(false, [Validators.required]),\r\n 'linkType': this.fb.control(false, [Validators.required]),\r\n 'questionReferenceImage':this.fb.control(''),\r\n 'descriptivetype':this.fb.control('text'),\r\n })); \r\n this.changedetector.detectChanges();\r\n this.swalToast('New question added!');\r\n setTimeout(()=> {\r\n this.scrollToQuestion(sectionIndex,questionsLength);\r\n },100);\r\n }\r\n }\r\n\r\n deleteQuestion(sectionIndex: any, questionIndex: any) {\r\n let question = this.getQuestionFormControl(sectionIndex, questionIndex, 'qname')?.value || '';\r\n let qno = this.getQuestionFormControl(sectionIndex, questionIndex, 'qno')?.value;\r\n question = question ? question : `Question ${this.getQuestionFormControl(sectionIndex, questionIndex, 'qno')?.value || ''}`;\r\n question = question.length > 20 ? question.slice(0,20) + '...' : question;\r\n const dialogRef = this.dialog.open(TraxpopupComponent,{centered: true, size: 'md'});\r\n dialogRef.componentInstance.data = {\r\n imagesrc: `<span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/><path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/></svg></span>`,\r\n title: `Delete '${question}'?`,\r\n content: `Are you sure you want to delete <b>'${question}'</b>? This action cannot be undone.`,\r\n buttontype: 'delete'\r\n }\r\n dialogRef.result.then((res) => {\r\n if (res == 'delete') {\r\n let linkedQuestion:any = (((this.getSectionFormArray().at(sectionIndex).get('questions') as FormArray).at(questionIndex) as FormGroup).get('answers') as FormArray);\r\n let type:any = ((this.getSectionFormArray().at(sectionIndex).get('questions') as FormArray).at(questionIndex) as FormGroup).get('answerType')?.value;\r\n if(!['descriptive','image', 'descriptiveImage','multipleImage','video'].includes(type)) {\r\n for(let i=0;i<linkedQuestion?.length;i++) {\r\n let linkedQn = ((linkedQuestion.at(i) as FormGroup).get('linkedQuestion')?.value);\r\n if(linkedQn) {\r\n let no = linkedQn -1;\r\n ((this.getSectionFormArray().at(sectionIndex).get('questions') as FormArray).at(no) as FormGroup).get('linkType')?.setValue(false);\r\n if(linkedQn && parseInt(linkedQn) > questionIndex) {\r\n this.subtractQuestionno(sectionIndex,linkedQn-1)\r\n }\r\n }\r\n }\r\n }\r\n (this.getSectionFormControl(sectionIndex, 'questions') as FormArray).removeAt(questionIndex);\r\n this.removedNestedQuestion(sectionIndex,qno);\r\n this.updateQuestionQnos(sectionIndex);\r\n this.swalToast(`${question} has been deleted!`);\r\n this.changedetector.detectChanges();\r\n }\r\n });\r\n\r\n }\r\n\r\n subtractQuestionno(sectionIndex:number,questionIndex:any) {\r\n let linkedQuestionAnswers = (((this.getSectionFormArray().at(sectionIndex).get('questions') as FormArray).at(questionIndex) as FormGroup).get('answers') as FormArray);\r\n for(let j=0;j<linkedQuestionAnswers?.length;j++) {\r\n let linkedQn = ((linkedQuestionAnswers.at(j) as FormGroup).get('linkedQuestion')?.value);\r\n if(linkedQn && parseInt(linkedQn) > questionIndex) {\r\n ((linkedQuestionAnswers.at(j) as FormGroup).get('linkedQuestion'))?.setValue(linkedQn - 1);\r\n this.subtractQuestionno(sectionIndex,linkedQn-1);\r\n }\r\n }\r\n }\r\n\r\n raiseflag(sectionIndex: number, questionIndex: number, ansIdx: number,value: boolean,linkIndex:number = -1,linkAnsIndex:number = -1) {\r\n let question = ((((this.ChecklistForm.get('sections') as FormArray)?.at(sectionIndex) as FormGroup).get('questions') as FormArray).at(questionIndex) as FormGroup);\r\n if(value == true) {\r\n let answers = (question.get('answers') as FormArray).value;\r\n if(linkIndex == -1) {\r\n if(answers.filter((x:any)=> x.sopFlag == true).length == (answers.length -1)) {\r\n ((question.get('answers') as FormArray).at(ansIdx) as FormGroup).addControl('showSOPFlagError',this.fb.control(true));\r\n timer(5000).subscribe(() => {\r\n ((question.get('answers') as FormArray).at(ansIdx) as FormGroup).removeControl('showSOPFlagError');\r\n });\r\n return;\r\n }\r\n }\r\n else {\r\n let answers = ((question.get('answers') as FormArray).at(ansIdx) as FormGroup);\r\n let linkQuestion = ((answers.get('linkQuestionAnswers') as FormArray).at(linkIndex) as FormGroup);\r\n let linkAnswers = (linkQuestion.get('answers') as FormArray).value\r\n if(linkAnswers.filter((x:any)=> x.sopFlag == true).length == (linkAnswers.length -1)) {\r\n ((linkQuestion.get('answers') as FormArray).at(linkAnsIndex) as FormGroup).addControl('showSOPFlagError',this.fb.control(true));\r\n timer(5000).subscribe(() => {\r\n ((linkQuestion.get('answers') as FormArray).at(linkAnsIndex) as FormGroup).removeControl('showSOPFlagError');\r\n });\r\n return;\r\n }\r\n }\r\n }\r\n if(linkIndex == -1)\r\n ((((question.get('answers') as FormArray)?.at(ansIdx) as FormGroup)?.get('sopFlag') as FormControl))?.setValue(value); \r\n else {\r\n let answers = ((question.get('answers') as FormArray).at(ansIdx) as FormGroup);\r\n let linkQuestion = ((answers.get('linkQuestionAnswers') as FormArray).at(linkIndex) as FormGroup);\r\n ((((linkQuestion.get('answers') as FormArray)?.at(linkAnsIndex) as FormGroup)?.get('sopFlag') as FormControl))?.setValue(value);\r\n }\r\n }\r\n\r\n addNestedQuestion(sectionIndex: number, questionIndex: number, ansIdx: number,value: boolean,linkedQuestionIndex:number=-1,linkedAnswer:number = -1) {\r\n let answer = (((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex) as FormGroup)\r\n .get('answers') as FormArray)\r\n .at(ansIdx) as FormGroup\r\n\r\n \r\n \r\n if(!answer?.get('linkQuestionAnswers')?.value.length) {\r\n answer.setControl('linkQuestionAnswers',\r\n this.fb.array([\r\n this.fb.group({\r\n \"qno\": this.fb.control(1),\r\n 'qname': this.fb.control('', [Validators.required]),\r\n 'answerType': this.fb.control('descriptive',\r\n this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\",'multipleImage','date'])),\r\n 'runAI': this.fb.control(false, [Validators.required]),\r\n 'runAIDescription': this.fb.control(''),\r\n 'allowUploadfromGallery': this.fb.control(false, [Validators.required]),\r\n 'questionReferenceImage':this.fb.control(''),\r\n 'descriptivetype':this.fb.control('text'),\r\n })\r\n ])\r\n )\r\n }\r\n else {\r\n let nestedQuestion = answer.get('linkQuestionAnswers') as FormArray\r\n nestedQuestion.push(this.fb.group({\r\n \"qno\": this.fb.control(1),\r\n 'qname': this.fb.control('', [Validators.required]),\r\n 'answerType': this.fb.control('descriptive',\r\n this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\",'multipleImage','date'])),\r\n 'runAI': this.fb.control(false, [Validators.required]),\r\n 'runAIDescription': this.fb.control(''),\r\n 'allowUploadfromGallery': this.fb.control(false, [Validators.required]),\r\n 'questionReferenceImage':this.fb.control(''),\r\n 'descriptivetype':this.fb.control('text'),\r\n }));\r\n }\r\n this.ChecklistForm.updateValueAndValidity();\r\n }\r\n \r\n accordian(index: any) {\r\n if (this.show == index) {\r\n this.show = -1;\r\n this.sectionIndex = -1;\r\n } else {\r\n this.show = index;\r\n this.sectionIndex = index;\r\n }\r\n }\r\n\r\n deleteSection(sectionIndex: any) {\r\n let section = ((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex) as FormGroup);\r\n let sectionLength:any = \" \" + (section.get('questions') as FormArray).length;\r\n let sectionName:string = section.get('name')?.value;\r\n sectionName = sectionName.length > 20 ? (sectionName.slice(0, 20) + \"...\") : sectionName;\r\n let question_text = ''\r\n if (sectionLength == 1)\r\n question_text = 'Question'\r\n else\r\n question_text = 'Questions'\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEE4E2\"/><path d=\"M28 24V28M28 32H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\" stroke=\"#D92D20\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FEF3F2\" stroke-width=\"8\"/></svg>`,\r\n title: `Delete '${sectionName} Section'?`,\r\n content: `Are you sure you want to delete' <b>'${sectionName}'</b>? with <b>${sectionLength} ${question_text}</b> This action cannot be undone.`,\r\n buttontype: 'delete'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent,{centered: true, size: 'md'});\r\n dialogRef.componentInstance.data = popupcontent\r\n dialogRef.result.then((res) => {\r\n if (res == 'delete') {\r\n (this.ChecklistForm.get('sections') as FormArray).removeAt(sectionIndex)\r\n this.changedetector.detectChanges();\r\n }\r\n });\r\n }\r\n\r\n AddMoreAns(sectionindex: any, questionIndex: any,type:string) {\r\n let ansoption =\r\n ((((this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionindex) as FormGroup)\r\n .get('questions') as FormArray)\r\n .at(questionIndex)\r\n .get('answers') as FormArray);\r\n let ansoptionLength = ansoption.length;\r\n if (ansoptionLength <= 29) {\r\n ansoption.push(\r\n this.fb.group({\r\n 'answer': this.fb.control(``, [Validators.required]),\r\n 'answeroptionNumber': this.fb.control(ansoptionLength + 1),\r\n 'sopFlag': this.fb.control(false, [Validators.required]),\r\n 'validation': this.fb.control(false, [Validators.required]),\r\n 'validationType': this.fb.control('Capture Image', this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\",\"Capture Video\"])),\r\n 'referenceImage': this.fb.control(''),\r\n 'allowUploadfromGallery': this.fb.control(false),\r\n ...(type == 'multiplechoicesingle' ? {\"linkedQuestion\":this.fb.control(0, [Validators.required]),'showLinked':this.fb.control(false, [Validators.required])} : {}),\r\n 'runAI': this.fb.control(false),\r\n 'descriptivetype':this.fb.control(''),\r\n ...(type == 'multipleImage' ? {'descriptivetype':this.fb.control('text')}:{})\r\n })\r\n );\r\n }\r\n }\r\n\r\n deleteAnswer(sectionIndex: number, questionIndex: number, addmoreqnIndex: number,ansIndex:number = -1) {\r\n if(ansIndex != -1) {\r\n this.getFormArrayQuestionsAnswer(sectionIndex, questionIndex, 'answers',ansIndex).removeAt(addmoreqnIndex); \r\n }\r\n else {\r\n this.getFormArrayQuestionsAnswer(sectionIndex, questionIndex, 'answers',ansIndex).removeAt(addmoreqnIndex); \r\n }\r\n this.ChecklistForm.updateValueAndValidity();\r\n }\r\n\r\n cloneQuestion(sectionindex: any, questionindex: any) {\r\n let cloneQuestion = ((this.getSectionFormControl(sectionindex, 'questions') as FormArray).at(questionindex) as FormGroup).value;\r\n let question: any;\r\n let answer: any;\r\n if (cloneQuestion.answers) {\r\n if (Array.isArray(cloneQuestion.answers) && cloneQuestion.answers.length) {\r\n answer = [];\r\n cloneQuestion.answers.forEach((k: any) => {\r\n answer.push(\r\n this.fb.group({\r\n ...(!['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) && cloneQuestion?.answerType != 'video' ? { 'answer': this.fb.control(k?.answer, [Validators.required]) } : {}),\r\n ...(!['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) && cloneQuestion?.answerType != 'video' ? { 'answeroptionNumber': this.fb.control(k?.answeroptionNumber + 1) } : {}),\r\n ...(!['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) && cloneQuestion?.answerType != 'video' ? { 'sopFlag': this.fb.control(k?.sopFlag ? k?.sopFlag : false, [Validators.required]) } : {}),\r\n ...(!['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) && cloneQuestion?.answerType != 'video' ? { 'validation': this.fb.control(k?.validation, [Validators.required]) } : {}),\r\n ...(!['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) && cloneQuestion?.answerType != 'video' ? { 'validationType': this.fb.control(k?.validationType, this.allowedValuesValidator([\"Capture Image\", \"Descriptive Answer\", \"Capture Video\"])) } : {}),\r\n ...(!['descriptive','image', 'descriptiveImage','multipleImage','date'].includes(cloneQuestion?.answerType) ? { 'referenceImage': this.fb.control(k?.referenceImage) } : {}),\r\n ...((!['descriptive','image', 'descriptiveImage','multipleImage','date'].includes(cloneQuestion?.answerType)) ? { 'allowUploadfromGallery': this.fb.control(k?.allowUploadfromGallery == true ? true : false) } : {}),\r\n ...(!['descriptive','image', 'descriptiveImage','multipleImage','date'].includes(cloneQuestion?.answerType) ? { 'runAI': this.fb.control(k?.runAI ? k?.runAI : false) } : {}),\r\n ...(['multiplechoicesingle','yes/no'].includes(cloneQuestion?.answerType) ? { 'showLinked': false } : {}),\r\n ...(['multiplechoicesingle','yes/no'].includes(cloneQuestion?.answerType) ? { 'linkedQuestion': 0 } : {}),\r\n ...(['multiplechoicesingle','yes/no'].includes(cloneQuestion?.answerType) ? { 'linkedQuestion': 0 } : {}),\r\n descriptivetype:this.fb.control(k?.descriptivetype)\r\n\r\n }));\r\n });\r\n } else if(typeof cloneQuestion.answers === 'object' && cloneQuestion.answers !== null) {\r\n answer = this.fb.group({ \r\n ...(['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) ? { 'referenceImage': this.fb.control(cloneQuestion?.answers?.referenceImage) } : {}),\r\n ...((['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) || cloneQuestion?.answerType == 'video') ? { 'allowUploadfromGallery': this.fb.control(cloneQuestion?.answers?.allowUploadfromGallery == true ? true : false) } : {}),\r\n ...(['image', 'descriptiveImage','multipleImage'].includes(cloneQuestion?.answerType) ? { 'runAI': this.fb.control(cloneQuestion?.answers?.runAI ? cloneQuestion?.answers?.runAI : false) } : {}),\r\n ...(['multipleImage'].includes(cloneQuestion?.answerType) ? { descriptivetype:this.fb.control(cloneQuestion?.answers?.descriptivetype) } : {}),\r\n });\r\n }\r\n }\r\n question = this.fb.group({\r\n \"qno\": this.fb.control(cloneQuestion?.qno+1),\r\n 'qname': this.fb.control(cloneQuestion?.qname, [Validators.required]),\r\n 'answerType': this.fb.control(cloneQuestion?.answerType, this.allowedValuesValidator([\"descriptive\", \"yes/no\", \"multiplechoicesingle\", \"multiplechoicemultiple\",\"descriptiveImage\", \"image\", \"video\",'multipleImage','date'])),\r\n ...(!['descriptive','date'].includes(cloneQuestion?.answerType) ? { 'answers': (['image','descriptiveImage', 'video','multipleImage'].includes(cloneQuestion?.answerType)) ? answer : this.fb.array(answer) } : {}),\r\n 'runAI': this.fb.control(cloneQuestion?.runAI, [Validators.required]),\r\n 'runAIDescription': this.fb.control(cloneQuestion?.runAIDescription),\r\n 'allowUploadfromGallery': this.fb.control(cloneQuestion?.allowUploadfromGallery),\r\n 'linkType': this.fb.control(false),\r\n 'descriptivetype':this.fb.control(cloneQuestion?.descriptivetype),\r\n 'questionReferenceImage':this.fb.control(cloneQuestion?.questionReferenceImage)\r\n\r\n });\r\n // this.updateClonedlinkedQuestionNo(sectionindex, cloneQuestion?.qno);\r\n (this.getSectionFormControl(sectionindex, 'questions') as FormArray).insert(cloneQuestion?.qno,question);\r\n this.ChecklistForm.updateValueAndValidity();\r\n this.updateQuestionQnos(sectionindex);\r\n this.swalToast(`Question ${cloneQuestion?.qno} has been duplicated!`);\r\n this.changedetector.detectChanges();\r\n }\r\n\r\n updateClonedlinkedQuestionNo(secIdx:number,qidx:number) {\r\n let questions = (this.getSectionFormArray().at(secIdx).get('questions') as FormArray);\r\n for (let i = 0; i < questions.length; i++) {\r\n let answers = (questions.at(i) as FormGroup)?.get('answers') as FormArray;\r\n if(answers) {\r\n for(let j=0;j<answers.length;j++) {\r\n let linked = (answers.at(j) as FormGroup)?.get('showLinked')?.value;\r\n if(linked) {\r\n let questionNo = (answers.at(j) as FormGroup)?.get('linkedQuestion')?.value;\r\n if(questionNo > qidx) {\r\n (answers.at(j) as FormGroup)?.get('linkedQuestion')?.setValue(questionNo + 1);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n\r\n saveChecklistQuestions(type: string) {\r\n let checklist = this.ChecklistForm.value;\r\n if(!this.ChecklistForm.get('checklistName')?.valid) {\r\n let err: string = 'Please enter checklist name!';\r\n this.swalToast(err,'error');\r\n return;\r\n } \r\n // console.log(this.ChecklistForm);\r\n // return;\r\n \r\n if (!this.ChecklistForm.valid) {\r\n this.markFormControlsAsTouched(this.ChecklistForm,0);\r\n this.scrollToErrors(this.ChecklistForm.get('sections') as FormArray);\r\n return;\r\n }\r\n let sections = checklist.sections;\r\n if(type == 'saveAsDraft') {\r\n checklist.submitType = 'save';\r\n } else {\r\n checklist.submitType = 'configure';\r\n }\r\n if(!sections.length) {\r\n let err: string = 'Please add atleast one section!';\r\n this.swalToast(err,'error');\r\n return;\r\n }\r\n for (let i = 0; i < sections.length; i++) {\r\n if(type == 'configure' && !sections[i].questions.length) {\r\n let err: string = 'Please add atleast one question in section!';\r\n this.swalToast(err,'error');\r\n return;\r\n }\r\n for (let j = 0; j < sections[i].questions.length; j++) {\r\n let ansType = sections[i].questions[j].answerType;\r\n if(ansType != 'descriptive') {\r\n delete sections[i].questions[j].descriptivetype;\r\n }\r\n if ([\"multiplechoicemultiple\"].includes(ansType)) {\r\n for (let k = 0; k < sections[i].questions[j].answers.length; k++) {\r\n sections[i].questions[j].answers[k]['showLinked'] = false;\r\n sections[i].questions[j].answers[k]['linkedQuestion'] = 0;\r\n }\r\n sections[i].questions[j].allowUploadfromGallery = false;\r\n } else {\r\n if (typeof sections[i].questions[j].answers === 'object' &&\r\n sections[i].questions[j].answers !== null &&\r\n !Array.isArray(sections[i].questions[j].answers) || ['descriptive','date'].includes(ansType)) {\r\n let item = {\r\n \"answer\": \"\",\r\n \"answeroptionNumber\": 1,\r\n \"sopFlag\": false,\r\n \"validation\": false,\r\n \"validationType\": \"\",\r\n \"validationAnswer\": \"\",\r\n \"referenceImage\": sections[i].questions[j].answers?.referenceImage ? sections[i].questions[j].answers?.referenceImage : \"\",\r\n \"showLinked\":false,\r\n \"linkedQuestion\":0,\r\n ...(ansType == 'multipleImage' ? {'descriptivetype':sections[i].questions[j].answers?.descriptivetype}:{})\r\n };\r\n sections[i].questions[j].allowUploadfromGallery = sections[i].questions[j].answers?.allowUploadfromGallery ? sections[i].questions[j].answers?.allowUploadfromGallery : false;\r\n if(ansType == 'multipleImage') {\r\n sections[i].questions[j].descriptivetype = sections[i].questions[j].answers?.descriptivetype ? sections[i].questions[j].answers?.descriptivetype : 'text';\r\n sections[i].questions[j].questionReferenceImage = sections[i].questions[j].answers?.referenceImage ? sections[i].questions[j].answers?.referenceImage : '';\r\n }\r\n sections[i].questions[j].answers = [item];\r\n }\r\n }\r\n }\r\n }\r\n checklist.sections = sections;\r\n checklist.checklistName =checklist.checklistName.charAt(0).toUpperCase() + checklist.checklistName.slice(1);\r\n this.sopService.createchecklist(checklist).subscribe((res: any) => {\r\n if(res) {\r\n if (res?.code == 200) {\r\n if(type=='configure') {\r\n this.router.navigateByUrl(`/manage/trax/configure?checkListId=${res.data.checklistId}`); \r\n } else {\r\n this.router.navigateByUrl('/manage/trax/checklist');\r\n }\r\n } else {\r\n this.swalToast('Unable to create checklist!','error');\r\n }\r\n } else {\r\n this.swalToast('Unable to create checklist!','error');\r\n }\r\n },(error: any) => {\r\n if(error.code== 400) {\r\n let err = error?.error?.message;\r\n this.swalToast(err,'error');\r\n } else {\r\n this.swalToast('Unable to create checklist!Server Error!','error');\r\n }\r\n }\r\n )\r\n }\r\n\r\n saveAsDraftPop(type: string) {\r\n this.popupCount = this.popupCount + 1;\r\n const dialogRef = this.dialog.open(TraxpopupComponent,{centered: true, size: 'md'});\r\n dialogRef.componentInstance.data = {\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>`,\r\n title:`Unsaved changes`,\r\n content:`Do you want to save as draft?`,\r\n buttontype:'draft'\r\n }\r\n dialogRef.result.then((res)=>{\r\n if(!res) {\r\n this.popupCount = 0;\r\n }\r\n if(res) {\r\n if(type == 'create') {\r\n this.saveChecklistQuestions('saveAsDraft');\r\n } else {\r\n this.updateChecklistQuestions('saveAsDraft');\r\n }\r\n }\r\n });\r\n }\r\n\r\n updateChecklistQuestions(type: string) {\r\n let sectionsarray: any = [];\r\n let checklist: any;\r\n \r\n if(!this.ChecklistForm.get('checklistName')?.valid) {\r\n let err: string = 'Please enter checklist name!';\r\n this.swalToast(err,'error');\r\n return;\r\n } \r\n \r\n // console.log(this.ChecklistForm);\r\n // return;\r\n checklist = this.ChecklistForm.value;\r\n if (!this.ChecklistForm.valid) {\r\n this.markFormControlsAsTouched(this.ChecklistForm,0);\r\n this.scrollToErrors(this.ChecklistForm.get('sections') as FormArray);\r\n return;\r\n }\r\n sectionsarray = checklist.sections;\r\n if(!this.ChecklistForm.get('checklistName')?.valid) {\r\n let err: string = 'Please enter checklist name!';\r\n this.swalToast(err,'error');\r\n return;\r\n }\r\n if(type == 'saveAsDraft') {\r\n checklist.submitType = 'save';\r\n } else {\r\n checklist.submitType = 'configure';\r\n }\r\n if(!sectionsarray.length) {\r\n let err: string = 'Please add atleast one section!';\r\n this.swalToast(err,'error');\r\n return;\r\n }\r\n for (let i = 0; i < sectionsarray.length; i++) {\r\n if(type == 'configure' && !sectionsarray[i].questions.length) {\r\n let err: string = 'Please add atleast one question in section!';\r\n this.swalToast(err,'error');\r\n return;\r\n }\r\n for (let j = 0; j < sectionsarray[i].questions.length; j++) {\r\n if(sectionsarray[i].questions[j].answerType != 'descriptive') {\r\n delete sectionsarray[i].questions[j].descriptivetype;\r\n }\r\n if ([\"multiplechoicemultiple\"].includes(sectionsarray[i].questions[j].answerType)) {\r\n for (let k = 0; k < sectionsarray[i].questions[j].answers.length; k++) {\r\n // sectionsarray[i].questions[j].answers[k]['answerInputStyle'] = sectionsarray[i].questions[j].answerType;\r\n // sectionsarray[i].questions[j].answers[k]['referenceImage'] = \"\";\r\n // sectionsarray[i].questions[j].answers[k]['allowUploadfromGallery'] = false;\r\n // sectionsarray[i].questions[j].answers[k]['validationAnswer'] = \"\"; \r\n // sectionsarray[i].questions[j].answers[k]['runAI'] = false;\r\n sectionsarray[i].questions[j].answers[k]['showLinked'] = false;\r\n sectionsarray[i].questions[j].answers[k]['linkedQuestion'] = 0;\r\n }\r\n sectionsarray[i].questions[j].allowUploadfromGallery = false;\r\n } else {\r\n if (typeof sectionsarray[i].questions[j].answers === 'object' &&\r\n sectionsarray[i].questions[j].answers !== null &&\r\n !Array.isArray(sectionsarray[i].questions[j].answers) || ['descriptive','date'].includes(sectionsarray[i].questions[j].answerType)) {\r\n let item = {\r\n \"answer\": \"\",\r\n \"answeroptionNumber\": 1,\r\n \"sopFlag\": false,\r\n \"validation\": false,\r\n \"validationAnswer\": \"\",\r\n \"validationType\": \"\",\r\n \"referenceImage\": sectionsarray[i].questions[j].answers?.referenceImage ? sectionsarray[i].questions[j].answers?.referenceImage : \"\",\r\n \"showLinked\":false,\r\n \"linkedQuestion\":0,\r\n ...(sectionsarray[i].questions[j].answerType == 'multipleImage' ? {'descriptivetype':sectionsarray[i].questions[j].answers?.descriptivetype}:{})\r\n // \"allowUploadfromGallery\": sectionsarray[i].questions[j].answers?.allowUploadfromGallery ? sectionsarray[i].questions[j].answers?.allowUploadfromGallery : false,\r\n // \"answerInputStyle\": sectionsarray[i].questions[j].answers?.answerInputStyle ? sectionsarray[i].questions[j].answers?.answerInputStyle : \"\",\r\n // \"runAI\": sectionsarray[i].questions[j].answers.runAI ? sectionsarray[i].questions[j].answers.runAI : false,\r\n };\r\n sectionsarray[i].questions[j].allowUploadfromGallery = sectionsarray[i].questions[j].answers?.allowUploadfromGallery ? sectionsarray[i].questions[j].answers?.allowUploadfromGallery : false;\r\n if(sectionsarray[i].questions[j].answerType == 'multipleImage') {\r\n sectionsarray[i].questions[j].descriptivetype = sectionsarray[i].questions[j].answers?.descriptivetype ? sectionsarray[i].questions[j].answers?.descriptivetype : 'text';\r\n }\r\n sectionsarray[i].questions[j].answers = [item];\r\n }\r\n }\r\n }\r\n }\r\n checklist.sections = sectionsarray;\r\n this.sopService.getupdatechecklist(this.editvalue, checklist).subscribe((res: any) => {\r\n if(res) {\r\n if (res?.code == 200) {\r\n if(type=='configure') {\r\n this.router.navigateByUrl(`/manage/trax/configure?checkListId=${res.data.checklistId}`);\r\n } else {\r\n this.router.navigateByUrl('/manage/trax/checklist');\r\n }\r\n } else {\r\n this.swalToast('Unable to update checklist!','error');\r\n }\r\n } else {\r\n this.swalToast('Unable to update checklist!','error');\r\n }\r\n }, (error) => {\r\n if (error.code == 403) {\r\n this.router.navigate(['/error403'])\r\n }\r\n if(error.code== 400) {\r\n let err = error?.error?.message;\r\n this.swalToast(err);\r\n } else {\r\n this.swalToast('Unable to create checklist!Server Error!','error');\r\n }\r\n });\r\n }\r\n\r\n markFormControlsAsTouched(control: FormGroup | FormArray,sectionIndex?: number) {\r\n control.markAsTouched();\r\n\r\n if (control instanceof FormGroup) {\r\n for (const controlName in control.controls) {\r\n this.markFormControlsAsTouched(control.get(controlName) as FormGroup);\r\n }\r\n } else if (control instanceof FormArray) {\r\n control.controls.forEach(formControl => {\r\n this.markFormControlsAsTouched(formControl as FormGroup);\r\n });\r\n }\r\n }\r\n\r\n scrollToErrors(sections: FormArray) {\r\n for(let i=0;i<sections.length;i++) {\r\n let section = sections.at(i) as FormGroup;\r\n if (section.invalid) {\r\n let questions = section.get('questions') as FormArray;\r\n for(let j=0;j<questions.length;j++) {\r\n let question = questions.at(j) as FormGroup;\r\n console.log(question,'question');\r\n \r\n if (question.invalid) {\r\n this.show = i;\r\n this.scrollToQuestion(i, j);\r\n this.swalToast('Please fill out all the fields!','error');\r\n return;\r\n }\r\n }\r\n return;\r\n }\r\n }\r\n }\r\n\r\n swalToast(err: string,type?:string,icon?: string) {\r\n if(type == 'error') {\r\n this.toast.getErrorToast(err);\r\n }\r\n else {\r\n this.toast.getSuccessToast(err);\r\n }\r\n // Swal.fire({\r\n // toast: true,\r\n // ...( icon ? { iconHtml: icon } : {}),\r\n // // titleText: `Checklist Form Error`,\r\n // html: `<div class=\"row \">\r\n // <div class=\"col-12 mt-2\">\r\n // <div class=\"toasttitile\">${err}</div>\r\n // </div>\r\n \r\n // </div>`,\r\n // position: 'bottom',\r\n // showConfirmButton: false,\r\n // showCloseButton: true,\r\n // timer: 6000,\r\n // timerProgressBar: true,\r\n // didOpen: (toast) => {\r\n // toast.addEventListener('mouseenter', Swal.stopTimer)\r\n // toast.addEventListener('mouseleave', Swal.resumeTimer)\r\n // $(\"#kt_create_account_form_account_type_personal\")?.val('');\r\n // this.changedetector.detectChanges();\r\n // }\r\n // });\r\n }\r\n\r\n RunAI(sIdx:number,qIdx: number,ansIdx:number=-1) {\r\n let dialogRef: any;\r\n let question: any = this.getQuestionFormControl(sIdx,qIdx,'qname')?.value;\r\n if(this.getAnswerFormGroup_FormControl(sIdx,qIdx,'runAI',ansIdx)?.value == false) {\r\n if(!question || !this.ChecklistForm.get('checklistName')?.value) {\r\n let err: string = !question ? 'Please enter question to continue!' : 'Please enter Checklist Name to continue!';\r\n this.swalToast(err,'error'); \r\n this.runAIOff(sIdx, qIdx,false,ansIdx);\r\n return;\r\n } else {\r\n const dialogRef = this.dialog.open(TraxpopupComponent,{centered: true, size: 'md'});\r\n dialogRef.componentInstance.data = {\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#D1FADF\"/><path d=\"M23.3564 19.3525C24.1748 18.7327 25.1738 18.3985 26.2004 18.4009C26.5549 18.393 26.9057 18.4746 27.2204 18.6382C27.535 18.8018 27.8033 19.0421 28.0004 19.3369C28.1975 19.0421 28.4658 18.8018 28.7804 18.6382C29.095 18.4746 29.4459 18.393 29.8004 18.4009C30.827 18.3985 31.826 18.7327 32.6444 19.3525C33.2744 19.8421 33.7604 20.5201 33.932 21.3397C34.3256 21.3697 34.6856 21.5329 34.988 21.7789C35.4464 22.1509 35.78 22.7089 35.99 23.2993C36.3188 24.2173 36.4076 25.3873 36.0668 26.3833C36.1532 26.4241 36.2384 26.4721 36.3212 26.5273C36.6512 26.7469 36.902 27.0613 37.0868 27.4321C37.4504 28.1581 37.6004 29.1709 37.6004 30.4009C37.6004 31.7701 37.0784 32.6893 36.416 33.2569C36.0497 33.571 35.6174 33.7986 35.1512 33.9229C35.0312 34.5925 34.6952 35.3677 34.1684 36.0253C33.4844 36.8833 32.4236 37.6009 31.0004 37.6009C29.8724 37.6009 28.9748 36.9769 28.3916 36.3649C28.2522 36.2188 28.1215 36.0645 28.0004 35.9029C27.8793 36.0645 27.7486 36.2188 27.6092 36.3649C27.026 36.9769 26.1296 37.6009 25.0004 37.6009C23.5772 37.6009 22.5176 36.8833 21.8324 36.0253C21.3401 35.414 21.0029 34.6927 20.8496 33.9229C20.3834 33.7986 19.9511 33.571 19.5848 33.2569C18.9224 32.6893 18.4004 31.7689 18.4004 30.4009C18.4004 29.1709 18.5516 28.1569 18.914 27.4321C19.0857 27.0685 19.3497 26.7561 19.6796 26.5261C19.7606 26.4725 19.8457 26.4251 19.934 26.3845C19.5932 25.3861 19.682 24.2173 20.0108 23.2993C20.2208 22.7089 20.5544 22.1509 21.0128 21.7789C21.3152 21.5329 21.6752 21.3709 22.0688 21.3397C22.2416 20.5201 22.7264 19.8421 23.3564 19.3525ZM27.4004 21.4009V21.3889L27.398 21.3289C27.3803 21.0161 27.3181 20.7074 27.2132 20.4121C27.1385 20.1892 27.0113 19.9876 26.8424 19.8241C26.6651 19.6698 26.4352 19.5898 26.2004 19.6009C25.4407 19.5983 24.7009 19.8435 24.0932 20.2993C23.5364 20.7325 23.2004 21.3193 23.2004 22.0009C23.2003 22.0959 23.1777 22.1896 23.1343 22.2741C23.091 22.3587 23.0282 22.4318 22.9511 22.4873C22.874 22.5428 22.7848 22.5793 22.6909 22.5936C22.5969 22.6079 22.5009 22.5997 22.4108 22.5697C22.1852 22.4953 21.9836 22.5373 21.7688 22.7101C21.5336 22.9021 21.3044 23.2429 21.14 23.7025C20.8052 24.6409 20.84 25.7773 21.2996 26.4685C21.3652 26.567 21.4003 26.6826 21.4004 26.8009H22.3004C23.0165 26.8009 23.7032 27.0854 24.2096 27.5917C24.7159 28.0981 25.0004 28.7848 25.0004 29.5009V29.9029C25.4007 30.0445 25.7381 30.323 25.953 30.6892C26.1678 31.0555 26.2463 31.4859 26.1745 31.9044C26.1027 32.3229 25.8852 32.7025 25.5606 32.9762C25.2359 33.2499 24.825 33.4 24.4004 33.4C23.9758 33.4 23.5648 33.2499 23.2402 32.9762C22.9156 32.7025 22.6981 32.3229 22.6263 31.9044C22.5545 31.4859 22.633 31.0555 22.8478 30.6892C23.0627 30.323 23.4001 30.0445 23.8004 29.9029V29.5009C23.8004 28.6729 23.1284 28.0009 22.3004 28.0009H20.2004C20.1287 28.0008 20.0575 27.9878 19.9904 27.9625L19.9868 27.9697C19.7492 28.4437 19.6004 29.2309 19.6004 30.4009C19.6004 31.4317 19.9784 32.0125 20.366 32.3449C20.7824 32.7025 21.2444 32.8009 21.4004 32.8009C21.5595 32.8009 21.7121 32.8641 21.8247 32.9767C21.9372 33.0892 22.0004 33.2418 22.0004 33.4009C22.0004 33.8425 22.2404 34.6141 22.7684 35.2765C23.2832 35.9185 24.0236 36.4009 25.0004 36.4009C25.6724 36.4009 26.2748 36.0253 26.7404 35.5369C26.9696 35.2969 27.1484 35.0485 27.2648 34.8445C27.3178 34.7541 27.3631 34.6593 27.4004 34.5613V25.0009H26.0984C25.9569 25.4012 25.6783 25.7387 25.3121 25.9535C24.9459 26.1683 24.5154 26.2468 24.097 26.175C23.6785 26.1032 23.2988 25.8858 23.0251 25.5611C22.7514 25.2365 22.6013 24.8255 22.6013 24.4009C22.6013 23.9763 22.7514 23.5654 23.0251 23.2407C23.2988 22.9161 23.6785 22.6986 24.097 22.6268C24.5154 22.555 24.9459 22.6335 25.3121 22.8483C25.6783 23.0632 25.9569 23.4006 26.0984 23.8009H27.4004V21.4009ZM28.6004 33.3997V34.5601C28.6377 34.6581 28.683 34.7528 28.736 34.8433C28.8536 35.0473 29.0312 35.2957 29.2592 35.5357C29.726 36.0241 30.3296 36.3997 31.0004 36.3997C31.9772 36.3997 32.7176 35.9173 33.2324 35.2753C33.7604 34.6129 34.0004 33.8413 34.0004 33.3997C34.0004 33.2406 34.0636 33.088 34.1761 32.9755C34.2886 32.8629 34.4413 32.7997 34.6004 32.7997C34.7564 32.7997 35.2184 32.7013 35.6348 32.3437C36.0224 32.0113 36.4004 31.4305 36.4004 30.3997C36.4004 29.2297 36.2504 28.4437 36.014 27.9685C35.9349 27.7916 35.8108 27.6385 35.654 27.5245C35.5189 27.4381 35.3606 27.395 35.2004 27.4009C35.0919 27.4009 34.9854 27.3714 34.8923 27.3156C34.7992 27.2598 34.723 27.1798 34.6717 27.0841C34.6205 26.9884 34.5962 26.8807 34.6014 26.7723C34.6066 26.6638 34.6411 26.5589 34.7012 26.4685C35.162 25.7773 35.1956 24.6409 34.8608 23.7025C34.6964 23.2429 34.4672 22.9009 34.232 22.7101C34.0172 22.5373 33.8156 22.4941 33.59 22.5697C33.4998 22.5997 33.4038 22.6079 33.3099 22.5936C33.216 22.5793 33.1268 22.5428 33.0497 22.4873C32.9726 22.4318 32.9098 22.3587 32.8664 22.2741C32.8231 22.1896 32.8005 22.0959 32.8004 22.0009C32.8004 21.3193 32.4644 20.7325 31.9064 20.2993C31.299 19.8438 30.5596 19.5986 29.8004 19.6009C29.5656 19.5898 29.3356 19.6698 29.1584 19.8241C28.9889 19.9874 28.8613 20.1891 28.7864 20.4121C28.6721 20.7256 28.6093 21.0554 28.6004 21.3889V32.2009H29.5004C30.3284 32.2009 31.0004 31.5289 31.0004 30.7009V28.4989C30.6001 28.3574 30.2627 28.0789 30.0478 27.7126C29.833 27.3464 29.7545 26.916 29.8263 26.4975C29.8981 26.079 30.1156 25.6993 30.4402 25.4257C30.7648 25.152 31.1758 25.0019 31.6004 25.0019C32.025 25.0019 32.4359 25.152 32.7606 25.4257C33.0852 25.6993 33.3027 26.079 33.3745 26.4975C33.4463 26.916 33.3678 27.3464 33.153 27.7126C32.9381 28.0789 32.6007 28.3574 32.2004 28.4989V30.7009C32.2004 31.417 31.9159 32.1038 31.4096 32.6101C30.9032 33.1165 30.2165 33.4009 29.5004 33.4009H28.6004V33.3997ZM23.8004 24.4009C23.8004 24.5601 23.8636 24.7127 23.9761 24.8252C24.0886 24.9377 24.2413 25.0009 24.4004 25.0009C24.5595 25.0009 24.7121 24.9377 24.8247 24.8252C24.9372 24.7127 25.0004 24.5601 25.0004 24.4009C25.0004 24.2418 24.9372 24.0892 24.8247 23.9767C24.7121 23.8641 24.5595 23.8009 24.4004 23.8009C24.2413 23.8009 24.0886 23.8641 23.9761 23.9767C23.8636 24.0892 23.8004 24.2418 23.8004 24.4009ZM31.6004 27.4009C31.7595 27.4009 31.9121 27.3377 32.0247 27.2252C32.1372 27.1127 32.2004 26.9601 32.2004 26.8009C32.2004 26.6418 32.1372 26.4892 32.0247 26.3767C31.9121 26.2641 31.7595 26.2009 31.6004 26.2009C31.4413 26.2009 31.2886 26.2641 31.1761 26.3767C31.0636 26.4892 31.0004 26.6418 31.0004 26.8009C31.0004 26.9601 31.0636 27.1127 31.1761 27.2252C31.2886 27.3377 31.4413 27.4009 31.6004 27.4009ZM24.4004 31.0009C24.2413 31.0009 24.0886 31.0641 23.9761 31.1767C23.8636 31.2892 23.8004 31.4418 23.8004 31.6009C23.8004 31.7601 23.8636 31.9127 23.9761 32.0252C24.0886 32.1377 24.2413 32.2009 24.4004 32.2009C24.5595 32.2009 24.7121 32.1377 24.8247 32.0252C24.9372 31.9127 25.0004 31.7601 25.0004 31.6009C25.0004 31.4418 24.9372 31.2892 24.8247 31.1767C24.7121 31.0641 24.5595 31.0009 24.4004 31.0009Z\" fill=\"#039855\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#ECFDF3\" stroke-width=\"8\"/></svg>`,\r\n title: `Run AI on image uploaded`,\r\n content: `Use the power of AI to compare and detect anomalies between uploaded and reference image.`,\r\n inputlabel1: 'Question',\r\n inputtype1: 'text',\r\n input1: 'true',\r\n inputlabel2: 'Specify your request',\r\n inputtype2: 'text',\r\n resType: 'custom',\r\n input2: 'true',\r\n placeholder1: question,\r\n placeholder2: 'Please compare the uploaded images a..',\r\n buttontype: 'Request'\r\n }\r\n dialogRef.result.then((res: any) => {\r\n if (res && res.status == 'confirm') {\r\n let req: any = {\r\n checklistName: this.ChecklistForm.get('checklistName')?.value,\r\n questionName: question,\r\n runAIDescription: res.data.requestText,\r\n answerType: \"image\",\r\n referenceImage: this.getAnswerFormGroup_FormControl(sIdx, qIdx, 'referenceImage',ansIdx)?.value || ''\r\n }\r\n this.sopService.runAIInsert(req).subscribe((apires: any) => {\r\n if (apires) {\r\n if (apires.code == 200) {\r\n this.getAnswerFormGroup_FormControl(sIdx, qIdx, 'runAI',ansIdx)?.patchValue(true);\r\n this.getQuestionFormControl(sIdx, qIdx, 'runAI',ansIdx)?.patchValue(true);\r\n this.getQuestionFormControl(sIdx, qIdx, 'runAIDescription',ansIdx)?.patchValue(res.data.requestText);\r\n this.swalToast(\r\n `<span style=\"padding-right: 36px;\">${apires.data.message}</span>\r\n <a \r\n href=\"/support/view-tickets\" \r\n target=\"_blank\" \r\n style=\"color: var(--primary-700, #009BF3);font-family: Roboto;font-size: 15px;font-weight: 700;text-decoration: underline;cursor: pointer;\">\r\n View Ticket\r\n </a>`,\r\n `<img src=\"../../../../assets/Icons/sop-runai-tosticon.svg\" />`\r\n );\r\n } else {\r\n this.runAIOff(sIdx, qIdx,true,ansIdx);\r\n }\r\n } else {\r\n this.runAIOff(sIdx, qIdx,true,ansIdx);\r\n }\r\n }, (error) => {\r\n this.runAIOff(sIdx, qIdx,true,ansIdx);\r\n });\r\n } else {\r\n this.runAIOff(sIdx, qIdx,false,ansIdx);\r\n }\r\n });\r\n }\r\n } else {\r\n const dialogRef = this.dialog.open(TraxpopupComponent,{centered: true, size: 'md'});\r\n dialogRef.componentInstance.data = {\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#D1FADF\"/><path d=\"M23.3564 19.3525C24.1748 18.7327 25.1738 18.3985 26.2004 18.4009C26.5549 18.393 26.9057 18.4746 27.2204 18.6382C27.535 18.8018 27.8033 19.0421 28.0004 19.3369C28.1975 19.0421 28.4658 18.8018 28.7804 18.6382C29.095 18.4746 29.4459 18.393 29.8004 18.4009C30.827 18.3985 31.826 18.7327 32.6444 19.3525C33.2744 19.8421 33.7604 20.5201 33.932 21.3397C34.3256 21.3697 34.6856 21.5329 34.988 21.7789C35.4464 22.1509 35.78 22.7089 35.99 23.2993C36.3188 24.2173 36.4076 25.3873 36.0668 26.3833C36.1532 26.4241 36.2384 26.4721 36.3212 26.5273C36.6512 26.7469 36.902 27.0613 37.0868 27.4321C37.4504 28.1581 37.6004 29.1709 37.6004 30.4009C37.6004 31.7701 37.0784 32.6893 36.416 33.2569C36.0497 33.571 35.6174 33.7986 35.1512 33.9229C35.0312 34.5925 34.6952 35.3677 34.1684 36.0253C33.4844 36.8833 32.4236 37.6009 31.0004 37.6009C29.8724 37.6009 28.9748 36.9769 28.3916 36.3649C28.2522 36.2188 28.1215 36.0645 28.0004 35.9029C27.8793 36.0645 27.7486 36.2188 27.6092 36.3649C27.026 36.9769 26.1296 37.6009 25.0004 37.6009C23.5772 37.6009 22.5176 36.8833 21.8324 36.0253C21.3401 35.414 21.0029 34.6927 20.8496 33.9229C20.3834 33.7986 19.9511 33.571 19.5848 33.2569C18.9224 32.6893 18.4004 31.7689 18.4004 30.4009C18.4004 29.1709 18.5516 28.1569 18.914 27.4321C19.0857 27.0685 19.3497 26.7561 19.6796 26.5261C19.7606 26.4725 19.8457 26.4251 19.934 26.3845C19.5932 25.3861 19.682 24.2173 20.0108 23.2993C20.2208 22.7089 20.5544 22.1509 21.0128 21.7789C21.3152 21.5329 21.6752 21.3709 22.0688 21.3397C22.2416 20.5201 22.7264 19.8421 23.3564 19.3525ZM27.4004 21.4009V21.3889L27.398 21.3289C27.3803 21.0161 27.3181 20.7074 27.2132 20.4121C27.1385 20.1892 27.0113 19.9876 26.8424 19.8241C26.6651 19.6698 26.4352 19.5898 26.2004 19.6009C25.4407 19.5983 24.7009 19.8435 24.0932 20.2993C23.5364 20.7325 23.2004 21.3193 23.2004 22.0009C23.2003 22.0959 23.1777 22.1896 23.1343 22.2741C23.091 22.3587 23.0282 22.4318 22.9511 22.4873C22.874 22.5428 22.7848 22.5793 22.6909 22.5936C22.5969 22.6079 22.5009 22.5997 22.4108 22.5697C22.1852 22.4953 21.9836 22.5373 21.7688 22.7101C21.5336 22.9021 21.3044 23.2429 21.14 23.7025C20.8052 24.6409 20.84 25.7773 21.2996 26.4685C21.3652 26.567 21.4003 26.6826 21.4004 26.8009H22.3004C23.0165 26.8009 23.7032 27.0854 24.2096 27.5917C24.7159 28.0981 25.0004 28.7848 25.0004 29.5009V29.9029C25.4007 30.0445 25.7381 30.323 25.953 30.6892C26.1678 31.0555 26.2463 31.4859 26.1745 31.9044C26.1027 32.3229 25.8852 32.7025 25.5606 32.9762C25.2359 33.2499 24.825 33.4 24.4004 33.4C23.9758 33.4 23.5648 33.2499 23.2402 32.9762C22.9156 32.7025 22.6981 32.3229 22.6263 31.9044C22.5545 31.4859 22.633 31.0555 22.8478 30.6892C23.0627 30.323 23.4001 30.0445 23.8004 29.9029V29.5009C23.8004 28.6729 23.1284 28.0009 22.3004 28.0009H20.2004C20.1287 28.0008 20.0575 27.9878 19.9904 27.9625L19.9868 27.9697C19.7492 28.4437 19.6004 29.2309 19.6004 30.4009C19.6004 31.4317 19.9784 32.0125 20.366 32.3449C20.7824 32.7025 21.2444 32.8009 21.4004 32.8009C21.5595 32.8009 21.7121 32.8641 21.8247 32.9767C21.9372 33.0892 22.0004 33.2418 22.0004 33.4009C22.0004 33.8425 22.2404 34.6141 22.7684 35.2765C23.2832 35.9185 24.0236 36.4009 25.0004 36.4009C25.6724 36.4009 26.2748 36.0253 26.7404 35.5369C26.9696 35.2969 27.1484 35.0485 27.2648 34.8445C27.3178 34.7541 27.3631 34.6593 27.4004 34.5613V25.0009H26.0984C25.9569 25.4012 25.6783 25.7387 25.3121 25.9535C24.9459 26.1683 24.5154 26.2468 24.097 26.175C23.6785 26.1032 23.2988 25.8858 23.0251 25.5611C22.7514 25.2365 22.6013 24.8255 22.6013 24.4009C22.6013 23.9763 22.7514 23.5654 23.0251 23.2407C23.2988 22.9161 23.6785 22.6986 24.097 22.6268C24.5154 22.555 24.9459 22.6335 25.3121 22.8483C25.6783 23.0632 25.9569 23.4006 26.0984 23.8009H27.4004V21.4009ZM28.6004 33.3997V34.5601C28.6377 34.6581 28.683 34.7528 28.736 34.8433C28.8536 35.0473 29.0312 35.2957 29.2592 35.5357C29.726 36.0241 30.3296 36.3997 31.0004 36.3997C31.9772 36.3997 32.7176 35.9173 33.2324 35.2753C33.7604 34.6129 34.0004 33.8413 34.0004 33.3997C34.0004 33.2406 34.0636 33.088 34.1761 32.9755C34.2886 32.8629 34.4413 32.7997 34.6004 32.7997C34.7564 32.7997 35.2184 32.7013 35.6348 32.3437C36.0224 32.0113 36.4004 31.4305 36.4004 30.3997C36.4004 29.2297 36.2504 28.4437 36.014 27.9685C35.9349 27.7916 35.8108 27.6385 35.654 27.5245C35.5189 27.4381 35.3606 27.395 35.2004 27.4009C35.0919 27.4009 34.9854 27.3714 34.8923 27.3156C34.7992 27.2598 34.723 27.1798 34.6717 27.0841C34.6205 26.9884 34.5962 26.8807 34.6014 26.7723C34.6066 26.6638 34.6411 26.5589 34.7012 26.4685C35.162 25.7773 35.1956 24.6409 34.8608 23.7025C34.6964 23.2429 34.4672 22.9009 34.232 22.7101C34.0172 22.5373 33.8156 22.4941 33.59 22.5697C33.4998 22.5997 33.4038 22.6079 33.3099 22.5936C33.216 22.5793 33.1268 22.5428 33.0497 22.4873C32.9726 22.4318 32.9098 22.3587 32.8664 22.2741C32.8231 22.1896 32.8005 22.0959 32.8004 22.0009C32.8004 21.3193 32.4644 20.7325 31.9064 20.2993C31.299 19.8438 30.5596 19.5986 29.8004 19.6009C29.5656 19.5898 29.3356 19.6698 29.1584 19.8241C28.9889 19.9874 28.8613 20.1891 28.7864 20.4121C28.6721 20.7256 28.6093 21.0554 28.6004 21.3889V32.2009H29.5004C30.3284 32.2009 31.0004 31.5289 31.0004 30.7009V28.4989C30.6001 28.3574 30.2627 28.0789 30.0478 27.7126C29.833 27.3464 29.7545 26.916 29.8263 26.4975C29.8981 26.079 30.1156 25.6993 30.4402 25.4257C30.7648 25.152 31.1758 25.0019 31.6004 25.0019C32.025 25.0019 32.4359 25.152 32.7606 25.4257C33.0852 25.6993 33.3027 26.079 33.3745 26.4975C33.4463 26.916 33.3678 27.3464 33.153 27.7126C32.9381 28.0789 32.6007 28.3574 32.2004 28.4989V30.7009C32.2004 31.417 31.9159 32.1038 31.4096 32.6101C30.9032 33.1165 30.2165 33.4009 29.5004 33.4009H28.6004V33.3997ZM23.8004 24.4009C23.8004 24.5601 23.8636 24.7127 23.9761 24.8252C24.0886 24.9377 24.2413 25.0009 24.4004 25.0009C24.5595 25.0009 24.7121 24.9377 24.8247 24.8252C24.9372 24.7127 25.0004 24.5601 25.0004 24.4009C25.0004 24.2418 24.9372 24.0892 24.8247 23.9767C24.7121 23.8641 24.5595 23.8009 24.4004 23.8009C24.2413 23.8009 24.0886 23.8641 23.9761 23.9767C23.8636 24.0892 23.8004 24.2418 23.8004 24.4009ZM31.6004 27.4009C31.7595 27.4009 31.9121 27.3377 32.0247 27.2252C32.1372 27.1127 32.2004 26.9601 32.2004 26.8009C32.2004 26.6418 32.1372 26.4892 32.0247 26.3767C31.9121 26.2641 31.7595 26.2009 31.6004 26.2009C31.4413 26.2009 31.2886 26.2641 31.1761 26.3767C31.0636 26.4892 31.0004 26.6418 31.0004 26.8009C31.0004 26.9601 31.0636 27.1127 31.1761 27.2252C31.2886 27.3377 31.4413 27.4009 31.6004 27.4009ZM24.4004 31.0009C24.2413 31.0009 24.0886 31.0641 23.9761 31.1767C23.8636 31.2892 23.8004 31.4418 23.8004 31.6009C23.8004 31.7601 23.8636 31.9127 23.9761 32.0252C24.0886 32.1377 24.2413 32.2009 24.4004 32.2009C24.5595 32.2009 24.7121 32.1377 24.8247 32.0252C24.9372 31.9127 25.0004 31.7601 25.0004 31.6009C25.0004 31.4418 24.9372 31.2892 24.8247 31.1767C24.7121 31.0641 24.5595 31.0009 24.4004 31.0009Z\" fill=\"#039855\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#ECFDF3\" stroke-width=\"8\"/></svg>`,\r\n title: `Don't run AI on image uploaded`,\r\n content: `Do you wish to not run AI in the image?`,\r\n buttontype: 'confirm'\r\n }\r\n dialogRef.result.then((res: any) => {\r\n if (res) {\r\n this.runAIOff(sIdx,qIdx,false,ansIdx);\r\n } else {\r\n this.getAnswerFormGroup_FormControl(sIdx, qIdx, 'runAI')?.patchValue(true);\r\n this.getQuestionFormControl(sIdx, qIdx, 'runAI')?.patchValue(true);\r\n }\r\n });\r\n }\r\n }\r\n\r\n runAIOff(sIdx: number, qIdx: number, showError?: boolean,ansIdx:number=-1) {\r\n const answerFormGroup = this.getAnswerFormGroup_FormControl(sIdx, qIdx, 'runAI',ansIdx);\r\n if (answerFormGroup) {\r\n answerFormGroup.patchValue(false);\r\n }\r\n \r\n const questionControl = this.getQuestionFormControl(sIdx, qIdx, 'runAI',ansIdx);\r\n if (questionControl) {\r\n questionControl.patchValue(false);\r\n }\r\n \r\n // console.log(questionControl);\r\n \r\n const descriptionControl = this.getQuestionFormControl(sIdx, qIdx, 'runAIDescription',ansIdx);\r\n if (descriptionControl) {\r\n descriptionControl.patchValue('');\r\n }\r\n \r\n if (showError) {\r\n this.swalToast('Unable to process runAI request! Try again after some time!','error');\r\n }\r\n }\r\n \r\n\r\n getSectionFormArray() {\r\n return (this.ChecklistForm.get('sections') as FormArray);\r\n }\r\n\r\n getFormControl(formControl: string) {\r\n return (this.ChecklistForm.get(formControl) as FormControl);\r\n }\r\n\r\n getSectionFormControl(sectionIndex: number, formControlName: string) {\r\n return (\r\n (this.ChecklistForm.get('sections') as FormArray)\r\n .at(sectionIndex) as FormGroup)\r\n .get(formControlName);\r\n }\r\n\r\n getQuestionFormControl(sectionIndex: number, questionIndex: number, formControlName: string,ansIdx:number = -1) {\r\n const sections = this.ChecklistForm.get('sections') as FormArray | null;\r\n if (!sections) return null;\r\n \r\n const section = sections.at(sectionIndex) as FormGroup | null;\r\n if (!section) return null;\r\n \r\n const questions = section.get('questions') as FormArray | null;\r\n if (!questions) return null;\r\n \r\n let question = questions.at(questionIndex) as FormGroup | null;\r\n if (!question) return null;\r\n\r\n if(ansIdx != -1) {\r\n let answerList = question.get('answers') as FormArray | null;\r\n if(!answerList) return null;\r\n question = answerList.at(ansIdx) as FormGroup | null;\r\n if(!question) return null;\r\n }\r\n \r\n const control = question.get(formControlName) as FormControl | null;\r\n return control;\r\n }\r\n \r\n\r\n getFormArrayQuestions(sectionIndex: number) {\r\n return ((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex).get('questions') as FormArray);\r\n }\r\n\r\n // individual question\r\n getQuestionsFormGroup(sectionIndex: number, questionIndex: number) {\r\n return (((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex).get('questions') as FormArray).at(questionIndex) as FormGroup);\r\n }\r\n\r\n getFormArrayQuestionsAnswer(sectionIndex: number, questionIndex: number, formArrayName: string,ansIndex:number = -1,linkquestionIndex:number = -1) {\r\n let section = ((this.ChecklistForm.get('sections') as FormArray)?.at(sectionIndex) as FormGroup);\r\n let questions = ((section.get('questions') as FormArray)?.at(questionIndex) as FormGroup);\r\n if(ansIndex == -1) {\r\n return (questions.get(formArrayName) as FormArray);\r\n }\r\n else {\r\n let answers = ((questions.get('answers') as FormArray)?.at(ansIndex) as FormGroup);\r\n let linkedIndex = ((answers.get('linkQuestionAnswers') as FormArray).at(linkquestionIndex) as FormGroup);\r\n return (linkedIndex.get('answers') as FormArray)\r\n }\r\n }\r\n\r\n getFormArrayLinkedQuestions(sectionIndex: number, questionIndex: number,answerIndex:number) {\r\n let section = ((this.ChecklistForm.get('sections') as FormArray)?.at(sectionIndex) as FormGroup);\r\n let questions = ((section.get('questions') as FormArray)?.at(questionIndex) as FormGroup);\r\n let answer = (questions.get('answers') as FormArray)?.at(answerIndex) as FormGroup;\r\n return (answer.get('linkQuestionAnswers') as FormArray)\r\n }\r\n\r\n getQuestionsFormArrayValues(sectionIndex: number): any[] {\r\n return ((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex).get('questions') as FormArray).getRawValue() || [];\r\n }\r\n\r\n // onKeydown(event: any) {\r\n // if (event.key === \"Enter\") {\r\n // this.addvalue = false;\r\n // }\r\n // }\r\n\r\n getAnswerFormGroup_FormControl(sectionIndex: number, questionIndex: number, formControlName: string,ansIdx:number= -1) {\r\n const sections = this.ChecklistForm.get('sections') as FormArray | null;\r\n if (!sections) return null;\r\n \r\n const section = sections.at(sectionIndex) as FormGroup | null;\r\n if (!section) return null;\r\n \r\n const questions = section.get('questions') as FormArray | null;\r\n if (!questions) return null;\r\n \r\n const question = questions.at(questionIndex) as FormGroup | null;\r\n if (!question) return null;\r\n\r\n if(formControlName == 'questionReferenceImage') {\r\n const control = question.get(formControlName) as FormControl | null;\r\n return control;\r\n }\r\n else {\r\n let answers = question.get('answers') as FormGroup | null;\r\n if (!answers) return null;\r\n \r\n if(ansIdx != -1) {\r\n \r\n let answerList = question.get('answers') as FormArray | null;\r\n if(!answerList) return null;\r\n answers = answerList.at(ansIdx) as FormGroup | null;\r\n if (!answers) return null;\r\n }\r\n \r\n const control = answers.get(formControlName) as FormControl | null;\r\n \r\n return control;\r\n }\r\n \r\n }\r\n\r\n removedNestedQuestion(sectionindex: number,qno:any) {\r\n let questions = (this.getSectionFormArray().at(sectionindex).get('questions') as FormArray);\r\n for (let i = 0; i < questions.length; i++) {\r\n let answers = (questions.at(i) as FormGroup)?.get('answers') as FormArray;\r\n if(answers) {\r\n for(let j=0;j<answers.length;j++) {\r\n let linked = (answers.at(j) as FormGroup)?.get('showLinked')?.value;\r\n if(linked) {\r\n let questionNo = (answers.at(j) as FormGroup)?.get('linkedQuestion')?.value;\r\n if(questionNo == qno) {\r\n (answers.at(j) as FormGroup)?.get('linkedQuestion')?.setValue(0);\r\n (answers.at(j) as FormGroup)?.get('showLinked')?.setValue(false);\r\n }\r\n }\r\n }\r\n }\r\n }\r\n }\r\n \r\n\r\n updateQuestionQnos(sectionindex: number) {\r\n let questions = (this.getSectionFormArray().at(sectionindex).get('questions') as FormArray);\r\n for (let i = 0; i < questions.length; i++) {\r\n (questions.at(i) as FormGroup)?.get('qno')?.setValue(i+1);\r\n }\r\n this.ChecklistForm.updateValueAndValidity();\r\n }\r\n\r\n getQuestionsAnswerFormGroup(sectionIndex: number, questionIndex: number,ansIndex:number) {\r\n return (((((this.ChecklistForm.get('sections') as FormArray).at(sectionIndex).get('questions') as FormArray).at(questionIndex) as FormGroup).get('answers') as FormArray).at(ansIndex) as FormGroup);\r\n }\r\n\r\n setActiveQuestion(secIdx: number, questionIndex: number, activestatus: number,answerIndex:number = -1) {\r\n if(activestatus == 1) {\r\n if(answerIndex != -1) {\r\n this.getQuestionsAnswerFormGroup(secIdx,questionIndex,answerIndex).addControl('active',this.fb.control(true));\r\n }\r\n this.getQuestionsFormGroup(secIdx,questionIndex).addControl('active',this.fb.control(true));\r\n } else {\r\n if(answerIndex != -1) {\r\n this.getQuestionsAnswerFormGroup(secIdx,questionIndex,answerIndex).removeControl('active');\r\n }\r\n this.getQuestionsFormGroup(secIdx,questionIndex).removeControl('active');\r\n }\r\n }\r\n\r\n allowAddAnswer(answers: any[]) {\r\n return answers.length < 30;\r\n }\r\n\r\n getQuestionList(secIdx:number,qntIdx:number,ansIdx:number) {\r\n // for(let answer of question?.answers) {\r\n // if((answer.linkedQuestion && answer.linkedQuestion == `${question.qno}` && question.qno == (qntIdx+1)) || (!answer.linkedQuestion.length && question.qno != (qntIdx+1))) {\r\n // questionList.push(question.qno)\r\n // }\r\n // }\r\n let questionDetails = ((this.ChecklistForm.get('sections') as FormArray).at(secIdx).get('questions') as FormArray).getRawValue() || [];\r\n \r\n let questionList:any = [];\r\n let linkedQuestions:any = [];\r\n if(questionDetails.length) {\r\n for(let question of questionDetails) {\r\n if(question.answers) {\r\n if(['video','image','descriptiveImage','multipleImage'].includes(question.answerType)) {\r\n question.answers = [question.answers];\r\n }\r\n for(let [index,answer] of question.answers.entries()) {\r\n if(answer?.linkedQuestion) {\r\n linkedQuestions.push({\r\n qno:question.qno,\r\n ansIdx:index,\r\n linkedQuestion:parseInt(answer.linkedQuestion)\r\n })\r\n }\r\n }\r\n }\r\n }\r\n // questionDetails = questionDetails.filter((item:any) => item.qno != (qntIdx+1));\r\n for(let question of questionDetails) {\r\n if(question?.answers) {\r\n let findExists = linkedQuestions.find((item:any) => item.qno == question.qno && item.ansIdx == ansIdx && item.qno == (qntIdx+1));\r\n let checkLinked = linkedQuestions.find((item:any) => item.linkedQuestion == question.qno);\r\n if(!checkLinked && !findExists && question.qno != (qntIdx+1) && !questionList.includes(question.qno)) {\r\n questionList.push(question.qno);\r\n }\r\n if(findExists && !questionList.includes(findExists.linkedQuestion) ) {\r\n questionList.push(findExists.linkedQuestion);\r\n }\r\n }\r\n else {\r\n let findExists = linkedQuestions.find((item:any) => item.linkedQuestion == question.qno);\r\n if(!findExists && question.qno != (qntIdx+1) && !questionList.includes(question.qno)) {\r\n questionList.push(question.qno);\r\n }\r\n }\r\n }\r\n \r\n return questionList;\r\n }\r\n }\r\n\r\n updateLinked(secIdx:number,qnIdx:number,ansIdx:number) {\r\n let linkValue = ((((((this.ChecklistForm.get('sections') as FormArray).at(secIdx) as FormGroup).get('questions') as FormArray).at(qnIdx) as FormGroup).get('answers') as FormArray).at(ansIdx) as FormGroup).get('showLinked')?.value;\r\n if(linkValue) {\r\n ((((((this.ChecklistForm.get('sections') as FormArray).at(secIdx) as FormGroup).get('questions') as FormArray).at(qnIdx) as FormGroup).get('answers') as FormArray).at(ansIdx) as FormGroup).get('linkedQuestion')?.setValue(0);\r\n }\r\n\r\n if(!linkValue) {\r\n ((((((this.ChecklistForm.get('sections') as FormArray).at(secIdx) as FormGroup).get('questions') as FormArray).at(qnIdx) as FormGroup).get('answers') as FormArray).at(ansIdx) as FormGroup).get('validation')?.setValue(false);\r\n this.clearReferenceImage(secIdx,qnIdx,ansIdx);\r\n }\r\n\r\n ((((((this.ChecklistForm.get('sections') as FormArray).at(secIdx) as FormGroup).get('questions') as FormArray).at(qnIdx) as FormGroup).get('answers') as FormArray).at(ansIdx) as FormGroup).get('showLinked')?.setValue(!linkValue)\r\n }\r\n\r\n updateQuestionType(secIdx:number,event:any) {\r\n if(event.target.value) {\r\n let index = parseInt(event.target.value) - 1;\r\n (((this.ChecklistForm.get('sections') as FormArray).at(secIdx).get('questions') as FormArray).at(index) as FormGroup).get('linkType')?.setValue(true);\r\n }\r\n }\r\n}\r\n","<div class=\"card\">\r\n <ng-container [formGroup]=\"ChecklistForm\">\r\n <div class=\"card-header border-0 pt-3 pb-3\">\r\n <h3 class=\"card-title align-items-start flex-column w-85\">\r\n <div class=\"editablecontent mb-4\"><input type=\"text\" class=\"checklist plain-input\" #checklistName placeholder=\"Enter Checklist Name\" formControlName=\"checklistName\"></div>\r\n <div class=\"editablecontent\"><input type=\"text\" class=\"checklistDescription plain-input\" #checklistDescription placeholder=\"Enter Checklist Description\" formControlName=\"checklistDescription\"></div>\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 <button type=\"button\" class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\" *ngIf=\"showvalue === 'add'\" (click)=\"saveChecklistQuestions('configure')\"><span class=\"ms-2\">Configure</span> </button>\r\n \r\n <button type=\"button\" class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\" *ngIf=\"showvalue === 'add'\" (click)=\"saveAsDraftPop('create')\"><span class=\"ms-2\">Save as Draft</span> </button>\r\n \r\n <button type=\"button\" class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\" *ngIf=\"showvalue === 'edit'\" (click)=\"updateChecklistQuestions('configure')\"><span class=\"ms-2\">Configure</span> </button>\r\n <button type=\"button\" class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\" *ngIf=\"showvalue === 'edit'\" (click)=\"saveAsDraftPop('update')\"><span class=\"ms-2\">Save as Draft</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n<div class=\"row\" *ngIf=\"!checklistLoading\">\r\n <div class=\"col-lg-3 mt-2\">\r\n <ng-container [formGroup]=\"ChecklistForm\">\r\n <div class=\"section-left card px-7 py-7\">\r\n <div class=\"fs-18px fw-600 text-left mb-3 concise-checklistname\">\r\n {{getFormControl('checklistName').value ? getFormControl('checklistName').value : 'ChecklistName'}}\r\n </div>\r\n <div class=\"left-panel-container\" formArrayName=\"sections\">\r\n <div *ngFor=\"let section of getSectionFormArray().controls;let i=index;\">\r\n <ng-container [formGroupName]=\"i\">\r\n <div class=\"d-flex section align-items-center justify-content-between\">\r\n <div class=\"fs-18px fw-bold editablecontent-left\">{{\r\n getSectionFormControl(i,'name')?.value === '' ? \"Section \" : ''}}{{\r\n getSectionFormControl(i,'name')?.value ? getSectionFormControl(i,'name')?.value\r\n : getSectionFormControl(i,'sectionNumber')?.value}}</div>\r\n <hr class=\"mx-2\">\r\n <svg (click)=\"deleteSection(i)\" xmlns=\"http://www.w3.org/2000/svg\" width=\"35\"\r\n height=\"35\" viewBox=\"0 0 18 18\" matTooltip=\"Delete section\"\r\n matTooltipPosition=\"above\" matTooltipClass=\"custom-test\" fill=\"none\">\r\n <path\r\n d=\"M2.25 4.5H3.75M3.75 4.5H15.75M3.75 4.5V15C3.75 15.3978 3.90804 15.7794 4.18934 16.0607C4.47064 16.342 4.85218 16.5 5.25 16.5H12.75C13.1478 16.5 13.5294 16.342 13.8107 16.0607C14.092 15.7794 14.25 15.3978 14.25 15V4.5H3.75ZM6 4.5V3C6 2.60218 6.15804 2.22064 6.43934 1.93934C6.72064 1.65804 7.10218 1.5 7.5 1.5H10.5C10.8978 1.5 11.2794 1.65804 11.5607 1.93934C11.842 2.22064 12 2.60218 12 3V4.5M7.5 8.25V12.75M10.5 8.25V12.75\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg (click)=\"accordian(i)\" [ngClass]=\"{'rotate' : show !== i}\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"35\" height=\"35\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <ng-container *ngIf=\"show===i\">\r\n <div cdkDropList (cdkDropListDropped)=\"dragDrop(i,$event)\"\r\n [cdkDropListData]=\"getFormArrayQuestions(i).controls\" class=\"question-left\">\r\n <ng-container formArrayName=\"questions\">\r\n <div *ngFor=\"let question of getFormArrayQuestions(i).controls;let j=index;\"\r\n class=\"my-2\"\r\n [ngClass]=\"question.get('active')?.value === true ? 'active-question' : 'q-btn'\"\r\n cdkDrag (mouseenter)=\"setActiveQuestion(i,j,1)\"\r\n (click)=\"scrollToQuestion(i,j);\"\r\n (mouseleave)=\"setActiveQuestion(i,j,-1)\">\r\n <ng-container [formGroupName]=\"j\">\r\n <div class=\"concise-question\">\r\n {{getQuestionFormControl(i,j,'qname')?.value ? '' : \"Question\"}}{{ getQuestionFormControl(i,j,'qname')?.value ?\r\n getQuestionFormControl(i,j,'qname')?.value :\r\n getQuestionFormControl(i,j,'qno')?.value }}\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"col-lg-9 mt-2\">\r\n <form [formGroup]=\"ChecklistForm\" #formRef>\r\n <div class=\"card px-7\">\r\n <!-- <div class=\"checklist-card py-5\">\r\n <input type=\"text\" class=\"mt-2\" style=\"text-transform: capitalize;\"\r\n placeholder=\"Enter checklist name here\" formControlName=\"checklistName\">\r\n <input type=\"text\" class=\"mt-4\" placeholder=\"Enter checklist description here\"\r\n formControlName=\"checklistDescription\">\r\n </div> -->\r\n <ng-container formArrayName=\"sections\" >\r\n <div class=\"sectionArea mt-5\" *ngFor=\"let section of getSectionFormArray().controls;let i=index;\">\r\n <ng-container [formGroupName]=\"i\">\r\n <div class=\"section d-flex align-items-center justify-content-between\">\r\n\r\n <div class=\"fs-18px fw-bold editablecontent\"><input type=\"text\" class=\"plain-input\"\r\n #sectionName (change)=\"updateInputValue(i,sectionName.value)\"\r\n formControlName=\"name\"></div>\r\n <hr>\r\n <svg class=\"ml-5\" (click)=\"deleteSection(i)\" xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" matTooltip=\"Delete section\" matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\" viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path\r\n d=\"M2.25 4.5H3.75M3.75 4.5H15.75M3.75 4.5V15C3.75 15.3978 3.90804 15.7794 4.18934 16.0607C4.47064 16.342 4.85218 16.5 5.25 16.5H12.75C13.1478 16.5 13.5294 16.342 13.8107 16.0607C14.092 15.7794 14.25 15.3978 14.25 15V4.5H3.75ZM6 4.5V3C6 2.60218 6.15804 2.22064 6.43934 1.93934C6.72064 1.65804 7.10218 1.5 7.5 1.5H10.5C10.8978 1.5 11.2794 1.65804 11.5607 1.93934C11.842 2.22064 12 2.60218 12 3V4.5M7.5 8.25V12.75M10.5 8.25V12.75\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg (click)=\"accordian(i)\" [ngClass]=\"{'rotate' : show !== i}\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div class=\"questionsArea\" *ngIf=\"show === i\">\r\n <ng-container formArrayName=\"questions\">\r\n <div class=\"Question-sec mt-5\"\r\n *ngFor=\"let question of getFormArrayQuestions(i).controls;let j = index;\"\r\n (mouseenter)=\"setActiveQuestion(i,j,1)\"\r\n (mouseleave)=\"setActiveQuestion(i,j,-1)\">\r\n <ng-container [formGroupName]=\"j\">\r\n <span class=\"fs-18px fw-bolder editablecontent questiontitle\"\r\n style=\"cursor: default;\"> Question {{j+1}}</span>\r\n\r\n <div class=\"checklist-card pb-5\">\r\n <textarea class=\"form-control form-control-solid\" rows=\"1\"\r\n type=\"text\" class=\"mt-0\" [id]=\"'q-' + i + '-' + j\"\r\n placeholder=\"Enter question here\"\r\n formControlName=\"qname\"></textarea>\r\n <ng-container\r\n *ngIf=\"question.get('qname')?.invalid && question.get('qname')?.touched\">\r\n <p style=\"color: red;\"\r\n *ngIf=\"question.get('qname')?.hasError('required')\">*\r\n Question is required.</p>\r\n </ng-container>\r\n </div>\r\n\r\n <div class=\"row\"\r\n *ngIf=\"!['descriptiveImage','image','multipleImage'].includes(question.get('answerType')?.value)\">\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'questionReferenceImage')?.value\"\r\n class=\"ref_img_cont mb-4 mt-5\">\r\n <img [src]=\"getAnswerFormGroup_FormControl(i,j,'questionReferenceImage')?.value\"\r\n width=\"100%\" height=\"300px\" class=\"auto-adjust\"\r\n alt=\"Tango Eye\" />\r\n <div class=\"ref_del_icon\" (click)=\"clearReferenceImage(i,j);\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168\"\r\n stroke=\"#B42318\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mb-3\">\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'questionReferenceImage')?.value\"\r\n class=\"col-lg-3 btn btn-light-primary mt-2\">\r\n <input class=\"d-none\" [id]=\"'fileupload_'+i+j\" type=\"file\"\r\n name=\"answerFile\" accept=\"image/png, image/jpeg\"\r\n (change)=\"loadImageFromDevice(i,refImgQIdx,$event,-1,'questionReferenceImage')\">\r\n <label [for]=\"'fileupload_'+i+j\" (click)=\"refImgQIdx=j;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-2\"\r\n width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_4082_3122)\">\r\n <path\r\n d=\"M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4082_3122\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\"\r\n transform=\"translate(0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>Reupload Image</label>\r\n </div>\r\n <div *ngIf=\"!getAnswerFormGroup_FormControl(i,j,'questionReferenceImage')?.value\"\r\n class=\"col-lg-3 btn add-ref-btn btn-light-primary my-2\">\r\n <input class=\"d-none\" [id]=\"'fileupload_'+i+j\" type=\"file\"\r\n name=\"file\" accept=\"image/png, image/jpeg\"\r\n (change)=\"loadImageFromDevice(i,refImgQIdx,$event,-1,'questionReferenceImage')\">\r\n <label class=\"pointer\" [for]=\"'fileupload_'+i+j\"\r\n (click)=\"refImgQIdx=j;\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10 4.16797V15.8346M4.16669 10.0013H15.8334\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>Add Reference Image </label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"checklist-card pb-5\">\r\n <select class=\"mt-5\" name=\"selectoption\"\r\n (change)=\"answerTypeSelection(i,j,$event)\"\r\n formControlName=\"answerType\">\r\n <option name=\"descriptive\" value=\"descriptive\">Descriptive\r\n Answer</option>\r\n <option name=\"yes/no\" value=\"yes/no\">A/B Question</option>\r\n <option name=\"multiplechoicesingle\"\r\n value=\"multiplechoicesingle\">Multiple Choice Question -\r\n Single Answer</option>\r\n <option name=\"multiplechoicemultiple\"\r\n value=\"multiplechoicemultiple\">Multiple Choice Question -\r\n Multiple Answer</option>\r\n <option name=\"descriptiveImage\" value=\"descriptiveImage\">Capture\r\n Image with Description</option>\r\n <option name=\"image\" value=\"image\">Capture Image as answer\r\n </option>\r\n <option name=\"video\" value=\"video\">Capture video as answer\r\n </option>\r\n <option name=\"multipleImage\" value=\"multipleImage\">Capture\r\n Multiple Image</option>\r\n <option name=\"date\" value=\"date\">Date - DD/MM/YYYY</option>\r\n </select>\r\n\r\n </div>\r\n <div class=\"col-lg-3 mx-4 d-flex mt-3\" *ngIf=\"['descriptive'].includes(question.get('answerType')?.value)\">\r\n <div class=\"form-check\" >\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" value=\"text\" [name]=\"'descriptivetype'\" [id]=\"'inlineRadio' + j\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Text</label>\r\n </div>\r\n <div class=\"form-check ms-5\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" value=\"number\" [name]=\"'descriptivetype'\" [id]=\"'inlineRadio' + j\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Number</label>\r\n </div>\r\n </div>\r\n <ng-container\r\n *ngIf=\"question.get('answerType')?.value === 'yes/no' || question.get('answerType')?.value === 'multiplechoicesingle' || question.get('answerType')?.value === 'multiplechoicemultiple'\">\r\n <div class=\"fs-18px fw-bolder\" style=\"cursor: default;\">Answer\r\n Options</div>\r\n <ng-container formArrayName=\"answers\">\r\n <ng-container\r\n *ngFor=\"let answer of getFormArrayQuestionsAnswer(i,j,'answers')?.controls;let k = index;\">\r\n <div class=\"row\" [formGroupName]=\"k\">\r\n <ng-container *ngIf=\"!answer.get('isdeleted')?.value\">\r\n <div class=\"col-lg-6 Answer1\">\r\n <div class=\"checklist-card pb-0 mt-5\">\r\n <input type=\"text\" class=\"mt-0\"\r\n placeholder=\"Enter answer here\"\r\n formControlName=\"answer\">\r\n <span class=\"vl\"></span>\r\n <ng-container\r\n *ngIf=\"question.get('answerType')?.value === 'yes/no' || question.get('answerType')?.value === 'multiplechoicesingle'\"\r\n ngDefaultControl>\r\n <span class=\"vl2\"></span>\r\n <svg class=\"imgAdd\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\"\r\n (click)=\"updateLinked(i,j,k)\">\r\n <path\r\n d=\"M9.99999 4.16602V15.8327M4.16666 9.99935H15.8333\"\r\n stroke=\"#344054\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"answer.get('answer')?.invalid && answer.get('answer')?.touched\">\r\n <p style=\"color: red;\"\r\n *ngIf=\"answer.get('answer')?.hasError('required')\">\r\n * Answer is required.</p>\r\n </ng-container>\r\n <p style=\"color: red;\"\r\n *ngIf=\"answer.get('showSOPFlagError')?.value === true\">\r\n Every answer can’t be a flag.</p>\r\n\r\n <ng-container formControlName=\"sopFlag\"\r\n ngDefaultControl>\r\n\r\n <svg (click)=\"raiseflag(i,j,k,true)\"\r\n matTooltip=\"Raise a flag if this answer is selected\"\r\n matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\"\r\n *ngIf=\"answer.get('sopFlag')?.value === false\"\r\n class=\"kiwi\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\">\r\n <path\r\n d=\"M2.66669 10.0007C2.66669 10.0007 3.33335 9.33398 5.33335 9.33398C7.33335 9.33398 8.66669 10.6673 10.6667 10.6673C12.6667 10.6673 13.3334 10.0007 13.3334 10.0007V2.00065C13.3334 2.00065 12.6667 2.66732 10.6667 2.66732C8.66669 2.66732 7.33335 1.33398 5.33335 1.33398C3.33335 1.33398 2.66669 2.00065 2.66669 2.00065V10.0007ZM2.66669 10.0007V14.6673\"\r\n stroke=\"#D0D5DD\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n\r\n <svg (click)=\"raiseflag(i,j,k,false)\"\r\n matTooltip=\"Raise a flag if this answer is selected\"\r\n matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\"\r\n *ngIf=\"answer.get('sopFlag')?.value === true\"\r\n class=\"active-flag\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\">\r\n <path\r\n d=\"M2.66669 10.0007C2.66669 10.0007 3.33335 9.33398 5.33335 9.33398C7.33335 9.33398 8.66669 10.6673 10.6667 10.6673C12.6667 10.6673 13.3334 10.0007 13.3334 10.0007V2.00065C13.3334 2.00065 12.6667 2.66732 10.6667 2.66732C8.66669 2.66732 7.33335 1.33398 5.33335 1.33398C3.33335 1.33398 2.66669 2.00065 2.66669 2.00065V10.0007ZM2.66669 10.0007V14.6673\"\r\n stroke=\"#D0D5DD\"\r\n stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </ng-container>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\"\r\n *ngIf=\"!answer.get('showLinked')?.value\">\r\n <div class=\"d-flex justify-content-between\">\r\n <div class=\"d-flex answervalidation\">\r\n <input class=\"mt-7\" type=\"checkbox\"\r\n style=\"width:16px;height:16px;cursor: pointer;\"\r\n value=\"1\"\r\n (change)=\"getvalidation(i,j,k,$event)\"\r\n formControlName=\"validation\">\r\n <div class=\"chackbox pt-4 mt-2 mx-2\"\r\n style=\"cursor: default;\">\r\n <h3>Validate response</h3>\r\n <p class=\"mb-0\">Trigger an action\r\n for each response to validate it\r\n </p>\r\n </div>\r\n </div>\r\n <svg *ngIf=\"question.get('answerType')?.value !== 'yes/no'\"\r\n (click)=\"deleteAnswer(i,j,k)\"\r\n class=\"mt-8\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n matTooltip=\"Delete answer\"\r\n matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M15 5L5 15M5 5L15 15\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n\r\n </div>\r\n <!-- *ngIf=\"moreqn.validation\" -->\r\n <div *ngIf=\"answer.get('validation')?.value\"\r\n class=\"row\">\r\n <div class=\"col-lg-3 pt-7 fs-4 fw-400 mt-1\">\r\n If the response is this, then\r\n </div>\r\n <div class=\"col-lg-3\">\r\n <select class=\"mt-5 mx-1\"\r\n formControlName=\"validationType\"\r\n (change)=\"updateValidationType($event,i,j,k)\">\r\n <option>Descriptive Answer</option>\r\n <option>Capture Image</option>\r\n <option>Capture Video</option>\r\n </select>\r\n </div>\r\n <div class=\"col-lg-3 mx-4 d-flex pt-8\" *ngIf=\"answer.get('validationType')?.value === 'Descriptive Answer'\">\r\n <div class=\"form-check\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" id=\"inlineRadio1\"\r\n value=\"text\" [name]=\"'descriptivetype'\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Text</label>\r\n </div>\r\n <div class=\"form-check ms-5\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" id=\"inlineRadio1\"\r\n value=\"number\" [name]=\"'descriptivetype'\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Number</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\"\r\n *ngIf=\"answer.get('showLinked')?.value\">\r\n <div class=\"col-lg-3 pt-7 fs-4 fw-400 mt-1\">\r\n Linked Question\r\n </div>\r\n <div class=\"col-lg-9\">\r\n <select [id]=\"i+'-'+k\" [name]=\"i+'-'+k\"\r\n class=\"mt-5\"\r\n formControlName=\"linkedQuestion\"\r\n (change)=\"updateQuestionType(i,$event)\">\r\n <option value=\"\">Select Question\r\n </option>\r\n <option\r\n *ngFor=\"let option of getQuestionList(i,j,k)\"\r\n [value]=\"option\">Question {{option}}\r\n </option>\r\n </select>\r\n </div>\r\n </div>\r\n <div class=\"row\"\r\n *ngIf=\"answer.get('validation')?.value && answer.get('validationType')?.value === 'Capture Image'\">\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'referenceImage',k)?.value\"\r\n class=\"ref_img_cont mb-4 mt-5\">\r\n <img [src]=\"getAnswerFormGroup_FormControl(i,j,'referenceImage',k)?.value\"\r\n width=\"100%\" height=\"300px\"\r\n class=\"auto-adjust\" alt=\"Tango Eye\" />\r\n <div class=\"ref_del_icon\"\r\n (click)=\"clearReferenceImage(i,j,k);\">\r\n <svg width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168\"\r\n stroke=\"#B42318\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mb-3\">\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'referenceImage',k)?.value\"\r\n class=\"col-lg-3 btn btn-light-primary mt-2\">\r\n <input class=\"d-none\"\r\n [id]=\"'fileupload_'+i+j+k\"\r\n type=\"file\" name=\"answerFile\"\r\n accept=\"image/png, image/jpeg\"\r\n (change)=\"loadImageFromDevice(i,refImgQIdx,$event,k)\">\r\n <label [for]=\"'fileupload_'+i+j+k\"\r\n (click)=\"refImgQIdx=j;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"mx-2\" width=\"21\"\r\n height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <g\r\n clip-path=\"url(#clip0_4082_3122)\">\r\n <path\r\n d=\"M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019\"\r\n stroke=\"#009BF3\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath\r\n id=\"clip0_4082_3122\">\r\n <rect width=\"20\"\r\n height=\"20\"\r\n fill=\"white\"\r\n transform=\"translate(0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>Reupload Image</label>\r\n </div>\r\n <div *ngIf=\"!getAnswerFormGroup_FormControl(i,j,'referenceImage',k)?.value\"\r\n class=\"col-lg-3 btn add-ref-btn btn-light-primary my-2\">\r\n <input class=\"d-none\"\r\n [id]=\"'fileupload_'+i+j+k\"\r\n type=\"file\" name=\"file\"\r\n accept=\"image/png, image/jpeg\"\r\n (change)=\"loadImageFromDevice(i,refImgQIdx,$event,k)\">\r\n <label class=\"pointer\"\r\n [for]=\"'fileupload_'+i+j+k\"\r\n (click)=\"refImgQIdx=j;\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10 4.16797V15.8346M4.16669 10.0013H15.8334\"\r\n stroke=\"#009BF3\"\r\n stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>Add Reference Image </label>\r\n </div>\r\n <div\r\n class=\"col-lg-4 form-check form-switch mx-2 btn-sec mt-6 text-left align-items-center\">\r\n <input\r\n class=\"form-check-input mx-0 pointer\"\r\n type=\"checkbox\" name=\"toc\" value=\"1\"\r\n ngDefaultControl\r\n formControlName=\"allowUploadfromGallery\">\r\n <label class=\"form-check-label pointer\"\r\n for=\"flexSwitchCheckDefault\"></label>\r\n Allow upload from gallery\r\n </div>\r\n <div class=\"col-lg-2\"></div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n\r\n <ng-container class=\"row\"\r\n *ngIf=\"(question.get('answerType')?.value === 'multiplechoicemultiple' || \r\n question.get('answerType')?.value === 'multiplechoicesingle') && \r\n allowAddAnswer(question.get('answers')?.value)\">\r\n <div (click)=\"AddMoreAns(i,j,question.get('answerType')?.value)\"\r\n class=\"btn col-lg-12 btn-light-primary my-3\">\r\n Add More Answer</div>\r\n </ng-container>\r\n\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Image -->\r\n <ng-container\r\n *ngIf=\"['image','descriptiveImage','multipleImage'].includes(question.get('answerType')?.value)\"\r\n class=\"row\">\r\n <ng-container formGroupName=\"answers\">\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value\"\r\n class=\"ref_img_cont mb-4\">\r\n <img [src]=\"getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value\"\r\n width=\"100%\" height=\"300px\" class=\"auto-adjust\"\r\n alt=\"Tango Eye\" />\r\n <div class=\"ref_del_icon\"\r\n (click)=\"clearReferenceImage(i,j);\">\r\n <svg width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <path\r\n d=\"M2.5 5.0013H4.16667M4.16667 5.0013H17.5M4.16667 5.0013V16.668C4.16667 17.11 4.34226 17.5339 4.65482 17.8465C4.96738 18.159 5.39131 18.3346 5.83333 18.3346H14.1667C14.6087 18.3346 15.0326 18.159 15.3452 17.8465C15.6577 17.5339 15.8333 17.11 15.8333 16.668V5.0013H4.16667ZM6.66667 5.0013V3.33464C6.66667 2.89261 6.84226 2.46868 7.15482 2.15612C7.46738 1.84356 7.89131 1.66797 8.33333 1.66797H11.6667C12.1087 1.66797 12.5326 1.84356 12.8452 2.15612C13.1577 2.46868 13.3333 2.89261 13.3333 3.33464V5.0013M8.33333 9.16797V14.168M11.6667 9.16797V14.168\"\r\n stroke=\"#B42318\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n <div class=\"d-flex mb-3\">\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value\"\r\n class=\"col-lg-3 btn btn-light-primary mt-2\">\r\n <input class=\"d-none\" id=\"fileupload\" type=\"file\"\r\n name=\"file\" accept=\"image/png, image/jpeg\"\r\n (change)=\"loadImageFromDevice(i,refImgQIdx,$event)\">\r\n <label for=\"fileupload\" (click)=\"refImgQIdx=j;\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mx-2\"\r\n width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_4082_3122)\">\r\n <path\r\n d=\"M19.6667 3.33527V8.33527M19.6667 8.33527H14.6667M19.6667 8.33527L15.8 4.70193C14.9044 3.80586 13.7964 3.15127 12.5793 2.79925C11.3623 2.44722 10.0759 2.40923 8.84025 2.68882C7.60456 2.96841 6.45984 3.55646 5.5129 4.39812C4.56595 5.23977 3.84765 6.30759 3.42501 7.50193M1.33334 16.6686V11.6686M1.33334 11.6686H6.33334M1.33334 11.6686L5.20001 15.3019C6.09563 16.198 7.20365 16.8526 8.42068 17.2046C9.63771 17.5567 10.9241 17.5946 12.1598 17.3151C13.3955 17.0355 14.5402 16.4474 15.4871 15.6058C16.4341 14.7641 17.1524 13.6963 17.575 12.5019\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_4082_3122\">\r\n <rect width=\"20\" height=\"20\"\r\n fill=\"white\"\r\n transform=\"translate(0.5)\" />\r\n </clipPath>\r\n </defs>\r\n </svg>Reupload Image</label>\r\n </div>\r\n <div *ngIf=\"!getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value\"\r\n class=\"col-lg-3 btn add-ref-btn btn-light-primary my-2\">\r\n <input class=\"d-none\" id=\"fileupload\" type=\"file\"\r\n name=\"file\" accept=\"image/png, image/jpeg\"\r\n (change)=\"loadImageFromDevice(i,refImgQIdx,$event)\">\r\n <label class=\"pointer\" for=\"fileupload\"\r\n (click)=\"refImgQIdx=j;\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\"\r\n height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M10 4.16797V15.8346M4.16669 10.0013H15.8334\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>Add Reference Image </label>\r\n </div>\r\n <div\r\n class=\"col-lg-4 form-check form-switch mx-2 btn-sec mt-6 text-left align-items-center\">\r\n <input class=\"form-check-input mx-0 pointer\"\r\n type=\"checkbox\" name=\"toc\" value=\"1\"\r\n ngDefaultControl\r\n formControlName=\"allowUploadfromGallery\">\r\n <label class=\"form-check-label pointer\"\r\n for=\"flexSwitchCheckDefault\"></label>\r\n Allow upload from gallery\r\n </div>\r\n <div\r\n [ngClass]=\"(['multipleImage'].includes(question.get('answerType')?.value) && getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value === '') ? 'col-lg-4 mt-6' : ['image'].includes(question.get('answerType')?.value) ? 'col-lg-2' : ''\">\r\n <div class=\"d-flex\" *ngIf=\"(['multipleImage'].includes(question.get('answerType')?.value) && getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value === '')\">\r\n <div class=\"form-check\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" id=\"inlineRadio1\"\r\n value=\"text\" [name]=\"'descriptivetype'\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Text</label>\r\n </div>\r\n <div class=\"form-check ms-5\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" id=\"inlineRadio1\"\r\n value=\"number\" [name]=\"'descriptivetype'\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Number</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"getAnswerFormGroup_FormControl(i,j,'referenceImage')?.value && ['image','multipleImage'].includes(question.get('answerType')?.value)\"\r\n [ngClass]=\"question.get('answerType')?.value === 'multipleImage' ? 'col-lg-5 d-flex mt-6' : 'col-lg-3 d-flex justify-content-center align-items-center mt-2'\">\r\n <div class=\"d-flex\" *ngIf=\"question.get('answerType')?.value === 'multipleImage'\">\r\n <div class=\"form-check\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" id=\"inlineRadio1\"\r\n value=\"text\" [name]=\"'descriptivetype'\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Text</label>\r\n </div>\r\n <div class=\"form-check ms-5\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" id=\"inlineRadio1\"\r\n value=\"number\" [name]=\"'descriptivetype'\">\r\n <label class=\"cursor-pointer dscriptiveType\" for=\"inlineRadio1\">Number</label>\r\n </div>\r\n </div>\r\n <h3 class=\"fs16-600 px-12\"> Run AI ✨</h3>\r\n <div class=\"form-check form-switch align-items-center btn-sec ml-5\"\r\n (click)=\"RunAI(i,j)\">\r\n <input class=\"form-check-input\" type=\"checkbox\"\r\n formControlName=\"runAI\" name=\"toc\" value=\"1\">\r\n <label class=\"form-check-label\"\r\n for=\"flexSwitchCheckDefault\"></label>\r\n </div>\r\n <svg [ngClass]=\"question.get('answerType')?.value === 'multipleImage' ? 'mt-1' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\"\r\n height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\"\r\n matTooltip=\"Enable AI where you want tango to identify, track and alert instances.\"\r\n matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\">\r\n <g clip-path=\"url(#clip0_2301_100038)\">\r\n <path\r\n d=\"M7.99967 10.6654V7.9987M7.99967 5.33203H8.00634M14.6663 7.9987C14.6663 11.6806 11.6816 14.6654 7.99967 14.6654C4.31778 14.6654 1.33301 11.6806 1.33301 7.9987C1.33301 4.3168 4.31778 1.33203 7.99967 1.33203C11.6816 1.33203 14.6663 4.3168 14.6663 7.9987Z\"\r\n stroke=\"#98A2B3\" stroke-width=\"2\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2301_100038\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <!-- Video -->\r\n <ng-container *ngIf=\"question.get('answerType')?.value === 'video'\"\r\n class=\"row\">\r\n <ng-container formGroupName=\"answers\">\r\n <div\r\n class=\" col-lg-4 form-check form-switch text-left align-items-center btn-sec mt-2\">\r\n <input class=\"form-check-input mx-0 pointer\" type=\"checkbox\"\r\n name=\"toc\" value=\"1\" ngDefaultControl\r\n formControlName=\"allowUploadfromGallery\">\r\n <label class=\"form-check-label pointer\"\r\n for=\"flexSwitchCheckDefault\"></label>\r\n Allow upload from gallery\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n\r\n <div class=\"d-flex justify-content-end py-2\">\r\n <div class=\"pt-1\">\r\n <svg (click)=\"cloneQuestion(i,j)\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n matTooltip=\"Duplicate\" matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_3385_10578)\">\r\n <path\r\n d=\"M4.16663 12.4993H3.33329C2.89127 12.4993 2.46734 12.3238 2.15478 12.0112C1.84222 11.6986 1.66663 11.2747 1.66663 10.8327V3.33268C1.66663 2.89065 1.84222 2.46673 2.15478 2.15417C2.46734 1.84161 2.89127 1.66602 3.33329 1.66602H10.8333C11.2753 1.66602 11.6992 1.84161 12.0118 2.15417C12.3244 2.46673 12.5 2.89065 12.5 3.33268V4.16602M9.16663 7.49935H16.6666C17.5871 7.49935 18.3333 8.24554 18.3333 9.16602V16.666C18.3333 17.5865 17.5871 18.3327 16.6666 18.3327H9.16663C8.24615 18.3327 7.49996 17.5865 7.49996 16.666V9.16602C7.49996 8.24554 8.24615 7.49935 9.16663 7.49935Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3385_10578\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n <svg (click)=\"deleteQuestion(i,j)\"\r\n style=\"margin-left: 24px !important;\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n matTooltip=\"Delete question\" matTooltipPosition=\"above\"\r\n matTooltipClass=\"custom-test\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M2.5 4.99935H4.16667M4.16667 4.99935H17.5M4.16667 4.99935V16.666C4.16667 17.108 4.34226 17.532 4.65482 17.8445C4.96738 18.1571 5.39131 18.3327 5.83333 18.3327H14.1667C14.6087 18.3327 15.0326 18.1571 15.3452 17.8445C15.6577 17.532 15.8333 17.108 15.8333 16.666V4.99935H4.16667ZM6.66667 4.99935V3.33268C6.66667 2.89065 6.84226 2.46673 7.15482 2.15417C7.46738 1.84161 7.89131 1.66602 8.33333 1.66602H11.6667C12.1087 1.66602 12.5326 1.84161 12.8452 2.15417C13.1577 2.46673 13.3333 2.89065 13.3333 3.33268V4.99935M8.33333 9.16602V14.166M11.6667 9.16602V14.166\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n </div>\r\n </ng-container>\r\n <div>\r\n <div class=\"row mx-0\">\r\n <div class=\"col-lg-6 px-0\" *ngIf=\"ChecklistForm.get('sections')\">\r\n <div class=\"checklist-card py-7 text-center\">\r\n <div (click)=\"addNewQuestion(sectionIndex)\"\r\n [attr.disabled]=\"isDisabled ? 'disabled' : null\" class=\"mt-2 btn-sec pointer\">\r\n <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=\"M9.99999 4.16602V15.8327M4.16666 9.99935H15.8333\" stroke=\"#344054\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> Add New Question</div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6 pl-5\">\r\n <div class=\"checklist-card py-7 text-center\">\r\n <div (click)=\"addNewSection()\" class=\"mt-2 px-0 btn-sec pointer\"> <svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M9.99999 4.16602V15.8327M4.16666 9.99935H15.8333\" stroke=\"#344054\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg> Add New Section</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </form>\r\n </div>\r\n</div>","import { Component, OnInit } from '@angular/core';\r\nimport { Router } from '@angular/router';\r\nimport { PageInfoService } from \"tango-app-ui-global\";\r\n\r\n@Component({\r\n selector: 'lib-tango-analyse-trax',\r\n templateUrl: './tango-analyse-trax.component.html',\r\n styleUrl: './tango-analyse-trax.component.scss'\r\n})\r\nexport class TangoAnalyseTraxComponent implements OnInit{\r\n url:any ;\r\n\r\n constructor(private router:Router,private pageInfo:PageInfoService){\r\n this.url = this.router.url.split('/');\r\n console.log(this.url,'url');\r\n \r\n }\r\n\r\n ngOnInit(): void {\r\n this.setPageData();\r\n }\r\n\r\n setPageData() {\r\n this.pageInfo.setTitle(\"Tango Trax\");\r\n this.pageInfo.setDescription(\"Automate or create checklists to improve operational efficiency\");\r\n this.pageInfo.setBreadcrumbs([\r\n { title: \"\", path: \"/manage\", isActive: false, isSeparator: false },\r\n ]);\r\n }\r\n\r\n}\r\n","<p>tango-analyse-trax works!</p>\r\n","import { AfterViewInit, ChangeDetectorRef, Component, HostListener, Input, OnInit } from '@angular/core';\r\nimport { NgbActiveModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport {Subject, takeUntil} from 'rxjs';\r\nimport { TraxService } from '../../services/trax.service';\r\n\r\n@Component({\r\n selector: 'lib-trax-store',\r\n templateUrl: './trax-store.component.html',\r\n styleUrl: './trax-store.component.scss'\r\n})\r\nexport class TraxStoreComponent implements OnInit,AfterViewInit {\r\n @Input() data:any;\r\n @Input() client:any = \"11\";\r\n storeList:any = [];\r\n store:[];\r\n selectedStore:any = {};\r\n showDropDown:boolean= false;\r\n searchStore:any;\r\n multiSelectSettings = {\r\n idField: 'id',\r\n textField: 'name',\r\n itemsShowLimit: 1,\r\n allowSearchFilter: true,\r\n singleSelection\t:true\r\n };\r\n userName:string = ''\r\n userEmail:string = ''\r\n private detach = new Subject();\r\n private readonly destroy$ = new Subject();\r\n\r\n\r\n @HostListener(\"document:click\", [\"$event\"])\r\n clickOutside(event: MouseEvent): void {\r\n const clickedInside = (event.target as HTMLElement).closest(\r\n \".dropdown-close\"\r\n );\r\n if (!clickedInside) {\r\n this.closeDropDown();\r\n }\r\n }\r\n\r\n constructor(private changedetector:ChangeDetectorRef,private SopService:TraxService,private dialogRef:NgbActiveModal,private toast:ToastService,private gs:GlobalStateService) { }\r\n\r\n ngAfterViewInit(): void {\r\n let data = {\r\n \"clientId\": [this.client],\r\n \"offset\": 1,\r\n \"limit\": 10000,\r\n \"sortColumName\": \"storeId\",\r\n \"sortBy\": -1,\r\n \"searchValue\": \"\",\r\n \"export\": false,\r\n \"status\": [\r\n \"Live\",\r\n \"onboarded\",\r\n \"deployed\",\r\n \"paired\",\r\n \"installationfailed\",\r\n \"Infra Issue\"\r\n ]\r\n }\r\n this.SopService.getStoreList(data).subscribe((res: any) => {\r\n console.log(res.data.result);\r\n \r\n if(res && res.code == 200 && res.data.result.length) {\r\n let stores:any = [];\r\n res.data.result.forEach((item:any) => {\r\n stores.push({\r\n name:item.storeName\r\n })\r\n })\r\n this.storeList = this.store = stores;\r\n \r\n }\r\n else {\r\n this.storeList = [];\r\n }\r\n });\r\n }\r\n\r\n ngOnInit(): void {\r\n }\r\n\r\n toggleDropDown() {\r\n this.showDropDown = true;\r\n }\r\n\r\n selectStore(event:any) {\r\n\r\n }\r\n\r\n filterSearch() {\r\n if(this.searchStore.trim().length) {\r\n this.storeList = this.store.filter((item:any) => item.name.toLowerCase().includes(this.searchStore.toLowerCase()))\r\n }\r\n else {\r\n this.storeList = [...this.store]\r\n }\r\n }\r\n\r\n updateSelectedStore(index:number){\r\n this.selectedStore = this.storeList[index];\r\n this.closeDropDown();\r\n }\r\n\r\n closeDropDown() {\r\n this.showDropDown = false;\r\n }\r\n\r\n updatedStore() {\r\n if(!this.selectedStore.name) {\r\n this.toast.getErrorToast('Please Select a Store');\r\n return false;\r\n }\r\n if(!this.userName.trim()) {\r\n this.toast.getErrorToast('User Name is Required');\r\n return false;\r\n }\r\n if(!this.userEmail.trim()) {\r\n this.toast.getErrorToast('User Email is Required');\r\n return false;\r\n }\r\n if(!this.userEmail.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)) {\r\n this.toast.getErrorToast('Invalid Email Format');\r\n return false;\r\n }\r\n\r\n let userData = [{\r\n storeName: this.selectedStore?.name,\r\n userName: this?.userName?.trim(),\r\n userEmail: this?.userEmail?.toLowerCase()?.trim(),\r\n userPhone: '',\r\n checkFlag: true,\r\n city:''\r\n }]\r\n\r\n this.dialogRef.close(userData);\r\n }\r\n\r\n}\r\n","<div class=\"storePopupcontent p-5\">\r\n <div class=\"mb-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\">\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=\"M28 21V35M21 28H35\" stroke=\"#009BF3\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <span class=\"popuptitle\">Add Stores</span>\r\n <p class=\"popupsubtitle mt-3\">Finish configuring your store by providing the details below.</p>\r\n <div class=\"pt-3 position-relative\" (clickOutside)=\"closeDropDown()\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Select Store</label>\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div class=\"d-flex align-items-center position-relative w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M2.68015 5.8038L2.6269 5.88697C2.06886 6.87402 2.66469 8.12144 3.7363 8.26454C3.83339 8.27641 3.92373 8.28269 4.012 8.28269C4.59015 8.28269 5.10132 8.03467 5.45759 7.64794L6.01093 7.04732L6.56238 7.64967C6.91432 8.03409 7.42433 8.28269 8.00639 8.28269C8.58583 8.28269 9.09877 8.03374 9.45039 7.64967L10.0036 7.04543L10.5568 7.64967C10.9084 8.03374 11.4213 8.28269 12.0008 8.28269C12.5802 8.28269 13.0932 8.03374 13.4448 7.64967L13.998 7.04543L14.5511 7.64967C14.9028 8.03374 15.4157 8.28269 15.9952 8.28269C16.0805 8.28269 16.1736 8.2764 16.27 8.26464C17.3652 8.11532 17.963 6.80105 17.3243 5.8043C17.3242 5.80425 17.3242 5.80419 17.3242 5.80413L15.566 3.06272L15.566 3.06272L15.5651 3.06125C15.5499 3.03742 15.5124 3.01186 15.4652 3.01186H4.53581C4.48866 3.01186 4.45117 3.03742 4.43597 3.06125L4.43535 3.06222L2.68015 5.8038ZM15.6516 10.7371V13.869V14.619H14.9016H5.09943H4.34943V13.869V10.7375C4.2392 10.7457 4.12768 10.75 4.01507 10.75C3.97276 10.75 3.93074 10.7493 3.889 10.7481V13.869V15.8035C3.889 16.4469 4.4229 16.9881 5.09943 16.9881H14.9016C15.5781 16.9881 16.112 16.4469 16.112 15.8035V13.869V10.7483C16.0722 10.7494 16.0322 10.75 15.9921 10.75C15.8777 10.75 15.7641 10.7456 15.6516 10.7371Z\"\r\n stroke=\"#667085\" stroke-width=\"1.5\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control dropdown-input ps-14\" [ngModel]=\"selectedStore?.name\"\r\n (click)=\"toggleDropDown()\" readonly placeholder=\"Select Store...\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\" *ngIf=\"showDropDown\">\r\n <input type=\"text\" class=\"form-control mb-2 dropdown-search mx-3 formSeach\"\r\n placeholder=\"Search Store...\" [(ngModel)]=\"searchStore\" (ngModelChange)=\"filterSearch()\" />\r\n <div [class]=\"storeList?.length > 5 ? 'h-200px overflow-auto' : 'h-auto'\">\r\n <div class=\"dropdown-item form-check custom-dropdown-item\"\r\n *ngFor=\"let store of storeList;let i= index\" (click)=\"updateSelectedStore(i)\">\r\n <label class=\"form-check-label\" [for]=\"store.name\">\r\n {{ store.name }}\r\n </label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"storetext mt-2\">Store that I’m looking for isn’t available,<a class=\"text-primary\"\r\n href=\"/store/list\"><u>Onboard Stores</u></a></div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assign To</label>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px fw-bold inputname\" placeholder=\"User Name\"\r\n [(ngModel)]=\"userName\">\r\n </div>\r\n\r\n <div class=\"pt-5\">\r\n <label for=\"inputmodel\" class=\"label pb-2\">Assignee Mail ID</label>\r\n <div class=\"d-flex align-items-center position-relatives w-100\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\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=\"M18.3334 4.99999C18.3334 4.08333 17.5834 3.33333 16.6667 3.33333H3.33341C2.41675 3.33333 1.66675 4.08333 1.66675 4.99999M18.3334 4.99999V15C18.3334 15.9167 17.5834 16.6667 16.6667 16.6667H3.33341C2.41675 16.6667 1.66675 15.9167 1.66675 15V4.99999M18.3334 4.99999L10.0001 10.8333L1.66675 4.99999\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\" class=\"form-control form-control-solid w-430px ps-14 fw-bold inputname\"\r\n placeholder=\"User Email\" [(ngModel)]=\"userEmail\">\r\n </div>\r\n </div>\r\n <div class=\"mt-6\">\r\n <button class=\"btn btn-primary w-100\" (click)=\"updatedStore()\">\r\n Add Store\r\n </button>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, ElementRef, OnInit, ViewChild } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { NgbModal } from '@ng-bootstrap/ng-bootstrap';\r\nimport dayjs from 'dayjs';\r\nimport { TraxpopupComponent } from '../traxpopup/traxpopup.component';\r\nimport { TraxStoreComponent } from '../trax-store/trax-store.component';\r\nimport * as XLSX from 'xlsx';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { TraxService } from '../../services/trax.service';\r\n\r\n@Component({\r\n selector: 'lib-checklist-configure',\r\n templateUrl: './checklist-configure.component.html',\r\n styleUrl: './checklist-configure.component.scss'\r\n})\r\nexport class ChecklistConfigureComponent implements OnInit {\r\n @ViewChild('file') fileInput!: ElementRef;\r\n @ViewChild('file1') fileInput1!: ElementRef;\r\n dayjs:any = dayjs;\r\n timeconfig: any = \"Repeating\";\r\n everymonth: any = \"thirdofeverymonth\";\r\n particularweek: any = \"week\";\r\n Onetime: boolean = false\r\n Repeating: boolean = true;\r\n firstofevrymonth: boolean = false;\r\n thirdofeverymonth: boolean = true;\r\n selectText: string = 'Select All'\r\n selectstoreText: string = 'Select All'\r\n\r\n scheduleFilter: string = 'day';\r\n livetickets: boolean = false;\r\n // separatorKeysCodes: number[] = [ENTER, COMMA];\r\n\r\n // email = new FormControl('');\r\n // emailId: string[] = [];\r\n // alertId: string[] = [];\r\n // alert = new FormControl('');\r\n // filteredEmail: Observable<string[]>;\r\n // filteredAlert: Observable<string[]>;\r\n // allemailId: string[] = [];\r\n // allalertId: string[] = [];\r\n visible = true;\r\n selectable = true;\r\n removable = true;\r\n addOnBlur = true;\r\n global_all_userlist: any\r\n saveddata: any;\r\n storeopenandclosedetection: boolean\r\n allow_user: boolean;\r\n allow_store_location: boolean;\r\n type: string = 'custom';\r\n id: any;\r\n obj: any;\r\n configData: any;\r\n // report_format: any = 'DAY'\r\n // type: any\r\n scheduleStartTime: any;\r\n scheduleEndTime: any;\r\n usage_exceeds: any;\r\n tableData: any = [];\r\n tableLoading: any = false;\r\n tableDisplayedColumns: any = [\"name\", \"role\", \"email\"]\r\n pageValue: any = [];\r\n offset: number = 0;\r\n recordsTotal: any = 0;\r\n size: any = 5;\r\n offsetvalue: number = 0;\r\n pageDisplay: any = [];\r\n nextbtn: boolean = true;\r\n backbtn: boolean = true;\r\n currentValue: any = 1;\r\n tableFilter: any = '';\r\n pageStart: any = 0;\r\n pageEnd: any = 0;\r\n recordsCount: any;\r\n paginationSize = [5, 10, 15,20];\r\n userData: any = [];\r\n excelUserData: any = [];\r\n showImage: boolean = true;\r\n monthDay: any;\r\n show: number = 0;\r\n popUpTitle: any;\r\n showIntro: boolean = true;\r\n searchUser: any;\r\n addUserForm: boolean;\r\n sopStores: any = [];\r\n selectAll: boolean = false;\r\n errormsg: boolean = false;\r\n startTime: any;\r\n endTime: any;\r\n checklistId: any;\r\n reupload: boolean = false;\r\n selectAllUser: boolean = false;\r\n removeUsers:any = [];\r\n selectedDays: any[] = [];\r\n showRangeValue:boolean = false;\r\n submittedDates: number[] = [];\r\n monthDate:string='';\r\n specific:boolean = false;\r\n\r\n report_formats: any = [\r\n { id: 'DAY', name: 'Day' },\r\n { id: 'WEEK', name: 'Week' },\r\n { id: 'MONTH', name: 'Month' },\r\n ]\r\n date: any;\r\n sections: any = [];\r\n MonthweekNumber: string;\r\n popupCount: number = 0;\r\n emailList: any = [];\r\n validTime:boolean = true;\r\n rangeStart:any;\r\n rangeEnd:any;\r\n disabledQuestion:boolean = false;\r\n showconfig: boolean = true;\r\n repeatType:string='';\r\n // swalErrorMessage: any;\r\n showDropDown:boolean= false;\r\n selectedDate: any= [];\r\n dates: number[] = Array.from({ length: 31 }, (_, i) => i + 1); // Array from 1 to 31\r\n selectedDateList:any = [];\r\n refreshPicker:boolean = false\r\n zones: any;\r\n\r\n constructor( private changedetector: ChangeDetectorRef, private router: ActivatedRoute, private route: Router,private dialog:NgbModal,private SopService:TraxService,private toast:ToastService) {}\r\n\r\n ngOnInit(): void {\r\n this.router.queryParams.subscribe(params => {\r\n if (typeof params.type == 'undefined') {\r\n this.obj = {\r\n checkListId: params.checkListId\r\n }\r\n this.type = 'custom'\r\n this.disabledQuestion = params.disabledQuestion;\r\n }\r\n else {\r\n this.obj = {\r\n type: params.type\r\n }\r\n this.type = params.type\r\n }\r\n \r\n })\r\n\r\n // this.SopService.getuserlist().subscribe((res: any) => {\r\n // if (res && res.code == 200) {\r\n // this.global_all_userlist = res.data\r\n // this.allemailId = res.data.map((ele: any) => { return { name: ele.name, email: ele.email } })\r\n // }\r\n // this.filteredEmail = this.email.valueChanges.pipe(\r\n // startWith(null),\r\n // map((email: any | null) => (email ? this._filterEmail(email) : this.allemailId.slice())),\r\n // );\r\n // })\r\n\r\n // this.SopService.getzonelist().subscribe(res => {\r\n // if (res && res.code == 200) {\r\n // this.global_all_zonelist = res.data\r\n // this.allzones = res.data.map((ele: any) => { return ele.zone })\r\n // }\r\n // this.filteredzones = this.zone.valueChanges.pipe(\r\n // startWith(null),\r\n // map((zone: string | null) => (zone ? this._filter(zone) : this.allzones.slice())),\r\n // );\r\n // })\r\n this.GetConfig();\r\n }\r\n\r\n GetConfig() {\r\n this.SopService.getconfig(this.obj).subscribe((res:any) => {\r\n if (res && res.code == 200) {\r\n if (res.data.checkListDetails.checkListType) {\r\n this.checklistId = res.data.checkListDetails._id;\r\n this.type = res.data.checkListDetails.checkListType;\r\n this.report_formats = res.data?.checkListDetails?.scheduleRepeatedType;\r\n this.allow_user = res.data?.checkListDetails?.allowedOverTime || false;\r\n this.allow_store_location = res.data?.checkListDetails?.allowedStoreLocation || false;\r\n this.usage_exceeds = res.data?.checkListDetails?.alert?.usageExceeds\r\n this.configData = res.data;\r\n this.removeUsers = res.data?.checkListDetails?.removedUsers || [];\r\n // console.log('config',this.configData)\r\n this.zones = this.configData?.checkListDetails?.detectionArea || [];\r\n if (this.configData?.checkListDetails?.alert?.alertsTo.length) {\r\n // this.allemailId.forEach((user: any) => {\r\n // if (this.configData?.checkListDetails?.alert?.alertsTo.includes(user.email)) {\r\n // this.emailId.push(user.name);\r\n // }\r\n // })\r\n this.emailList = this.configData?.checkListDetails?.alert?.alertsTo;\r\n }\r\n this.configData.checkListDetails.scheduleStartTime = this.configData?.checkListDetails?.scheduleStartTime ? this.configData?.checkListDetails?.scheduleStartTime : this.configData?.openTime;\r\n this.configData.checkListDetails.scheduleEndTime = this.configData?.checkListDetails?.scheduleEndTime ? this.configData?.checkListDetails?.scheduleEndTime : this.configData?.closeTime;\r\n this.sections = this.configData.checkListDetails.sections;\r\n this.selectedDays = this.configData?.checkListDetails?.scheduleWeekDays || [];\r\n\r\n if(this.configData.checkListDetails.schedule != 'onetime') {\r\n this.showRangeValue = this.configData.checkListDetails?.configStartDate != '' && this.configData.checkListDetails?.configStartDate != null ? true : false;\r\n if(this.configData.checkListDetails?.configStartDate != '' && this.configData.checkListDetails?.configStartDate != null) {\r\n this.configData.checkListDetails.configStartDate = this.dayjs(this.configData.checkListDetails?.configStartDate).format('YYYY-MM-DD'); \r\n }\r\n // console.log('getConfig',this.configData.checkListDetails?.configEndDate)\r\n if(this.configData.checkListDetails?.configEndDate != '' && this.configData.checkListDetails?.configEndDate != null) {\r\n this.configData.checkListDetails.configEndDate = this.dayjs(this.configData.checkListDetails?.configEndDate).format('YYYY-MM-DD');\r\n }\r\n\r\n }\r\n\r\n // if (this.configData.checkListDetails.scheduleStartTime) {\r\n\r\n // this.configData.checkListDetails.scheduleStartTime = this.configData.checkListDetails.scheduleStartTime.split(' ').length > 2 ? this.configData.checkListDetails.scheduleStartTime.split(' ')[1] + ' ' + this.configData.checkListDetails.scheduleStartTime.split(' ')[2] : this.configData.checkListDetails.scheduleStartTime;\r\n // }\r\n\r\n this.endTime = this.configData.checkListDetails?.scheduleEndTime ? this.dayjs(this.configData.checkListDetails?.scheduleEndTime, 'hh:mm A').format('HH:mm') : '22:00';\r\n this.startTime = this.configData.checkListDetails?.scheduleStartTime ? this.dayjs(this.configData.checkListDetails?.scheduleStartTime, 'hh:mm A').format('HH:mm') : '10:00';\r\n this.repeatType = this.configData.checkListDetails?.schedule == 'daily' ? 'Day' : ['weekly','weekday'].includes(this.configData.checkListDetails?.schedule) ? 'Week' : 'Month';\r\n // if (this.storeId.length == this.allstoreId.length) {\r\n // this.selectstoreText = 'Unselect All';\r\n // }\r\n if (this.configData.checkListDetails?.schedule == 'monthly' && this.configData.checkListDetails?.scheduleRepeatedMonthSetup == 'date') {\r\n if(this.configData.checkListDetails?.scheduleRepeatedMonthWeek.split(' ')?.length > 1) {\r\n this.monthDate = this.configData.checkListDetails?.scheduleRepeatedMonthWeek.split(' ')[0];\r\n this.monthDay = this.configData.checkListDetails?.scheduleRepeatedMonthWeek.split(' ')[1];\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = '';\r\n }\r\n }\r\n else {\r\n this.monthDate = '';\r\n this.monthDay = '';\r\n }\r\n if (this.configData.checkListDetails?.schedule == 'monthly' && this.configData.checkListDetails?.scheduleRepeatedMonthSetup == 'specific') {\r\n this.submittedDates = this.configData.checkListDetails?.specificDate || [];\r\n }\r\n\r\n if(this.configData.checkListDetails?.schedule == 'range' && this.configData.checkListDetails.specificDate.length) {\r\n this.specific = true;\r\n this.selectedDateList = this.configData.checkListDetails.specificDate;\r\n }\r\n\r\n if(this.configData.checkListDetails.schedule != 'range' && (this.configData.checkListDetails?.configEndDate == '' || this.configData.checkListDetails?.configEndDate == null)) {\r\n this.refreshPicker = true; \r\n }\r\n // console.log(this.selectedDateList,'list');\r\n \r\n this.userDetails();\r\n\r\n\r\n }\r\n }\r\n }, (error) => {\r\n if (error.code == 403) {\r\n // this.router.navigate(['/error403'])\r\n }\r\n });\r\n }\r\n\r\n accordian(index: any) {\r\n if (this.show == index) {\r\n this.show = -1;\r\n } else {\r\n this.show = index;\r\n\r\n }\r\n }\r\n configaccordian(): void {\r\n this.showconfig = !this.showconfig;\r\n }\r\n Checklist() {\r\n // this.mobileusagedetection = true;\r\n // this.storeopenandclosedetection = false;\r\n }\r\n omit_special_char(event: any) {\r\n var k;\r\n k = event.charCode; // k = event.keyCode; (Both can be used)\r\n return (k == 8 || k == 32 || (k >= 48 && k <= 57));\r\n\r\n }\r\n\r\n validateLimit(event: any) {\r\n if (event.target.value < 15) {\r\n event.target.value = '';\r\n this.errormsg = true;\r\n this.configData.checkListDetails.alert.usageExceeds = '';\r\n this.changedetector.detectChanges();\r\n }\r\n else\r\n this.errormsg = false;\r\n\r\n }\r\n\r\n changetype(val: number) {\r\n }\r\n\r\n onFileUpload(event: any) {\r\n this.currentValue = 1;\r\n this.reupload = false;\r\n this.userData = this.excelUserData = [];\r\n let data: any;\r\n const target: DataTransfer = <DataTransfer>(event.target);\r\n let isExcelFile = !!target.files[0].name.match(/(.xls|.xlsx)/);\r\n let error:any = [];\r\n\r\n if (isExcelFile) {\r\n const reader: FileReader = new FileReader();\r\n reader.readAsBinaryString(target.files[0]);\r\n reader.onload = (e: any) => {\r\n const bstr: string = e.target.result;\r\n const wb: XLSX.WorkBook = XLSX.read(bstr, { type: 'binary' });\r\n const wsname: string = wb.SheetNames[0];\r\n const ws: XLSX.WorkSheet = wb.Sheets[wsname];\r\n data = XLSX.utils.sheet_to_json(ws);\r\n\r\n console.log(data);\r\n \r\n\r\n if(!data.length) {\r\n this.toast.getErrorToast('Please Upload a Valid file.')\r\n return;\r\n }\r\n \r\n \r\n let validateData = data.find((item:any) => {\r\n return item?.storeName?.trim() == '' || item?.store_id?.trim() == '' || item?.userEmail?.trim() == '' || item?.userName?.trim() == ''\r\n }\r\n );\r\n \r\n if (typeof validateData != 'undefined') {\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n this.toast.getErrorToast('Please Upload a Valid file.')\r\n return;\r\n }\r\n data.forEach((element: any,index:any) => {\r\n if (element?.userEmail) {\r\n element.userEmail = element?.userEmail.replace(/\\s/g,'');\r\n }\r\n if ((element.storeName && element.storeName.trim() == '') || element.storeName == null) {\r\n error.push(`Invalid Store Name - A${index+2}`)\r\n }\r\n if ((element.userEmail && element.userEmail.trim() == '') || element.userEmail == null) {\r\n error.push(`Invalid userEmail - B${index+2}`)\r\n }\r\n if ((element.userName && element.userName.trim() == '') || element.userName == null) {\r\n error.push(`Invalid User Name - C${index+2}`)\r\n }\r\n if (element?.userEmail && !element.userEmail.match(/^[a-zA-Z0-9._-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$/)) {\r\n error.push(`Invalid userEmail - B${index+2}`)\r\n }\r\n let checkUserIndex = this.userData.findIndex((item: any) => item.userEmail == element.userEmail);\r\n if (checkUserIndex != -1 && (this.userData[checkUserIndex]?.userName != null && element?.userName != null && this.userData[checkUserIndex]?.userName?.trim().length && element?.userName?.trim().length && this.userData[checkUserIndex]?.userName?.trim().toLowerCase() != element?.userName?.trim().toLowerCase())) {\r\n error.push(`Same Email with Different users - B${index+2},B${checkUserIndex + 2}`);\r\n }\r\n this.userData.push({\r\n storeName: element?.storeName,\r\n userName: element?.userName?.trim(),\r\n userEmail: element?.userEmail?.toLowerCase()?.trim(),\r\n userPhone: element?.userPhone,\r\n checkFlag: element?.check ? element.check : false,\r\n city: element?.city\r\n })\r\n })\r\n console.log(this.userData,'data');\r\n \r\n // console.log(storeNotExists);\r\n // console.log(userNotExists);\r\n \r\n if (error.length) {\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>`,\r\n title: `Invalid details!`,\r\n content: `Please provide correct and complete store information.`,\r\n buttontype: 'error',\r\n error:error\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => {\r\n if(res != 'reupload') {\r\n return false;\r\n }\r\n else {\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n this.reupload = true;\r\n this.changedetector.detectChanges();\r\n let ele = document.getElementById('kt_account_team_size_select_2');\r\n ele?.click();\r\n return false;\r\n }\r\n });\r\n return;\r\n // this.toast.getErrorToast(error.join(' '));\r\n }\r\n this.validateUserDetails(false);\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n };\r\n }\r\n else {\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n this.toast.getErrorToast('Please Upload a Excel file');\r\n }\r\n }\r\n\r\n validateUserDetails(del?:any) {\r\n let params = {\r\n id: this.checklistId,\r\n assignedUsers: this.userData,\r\n uploadUser: true,\r\n type: this.obj?.type && ['mobileusagedetection','storeopenandclose'].includes(this.obj.type) ? this.obj.type : '',\r\n ...(del) ? {delete:false} : {} \r\n }\r\n this.SopService.validateUser(params).subscribe((res: any) => {\r\n let validate:Boolean = true;\r\n if (res && res.code == 200) {\r\n this.configData.uploadUser = true;\r\n if (res?.data?.ExistsEmail?.length) {\r\n this.toast.getErrorToast(res?.data?.ExistsEmail.join(', ') + ' ' + res?.data?.message);\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n else if (res?.data?.id) {\r\n this.configData.checkListDetails._id = res.data.id;\r\n this.checklistId = res.data.id;\r\n this.configData.checkListDetails.assignedUsers = [];\r\n this.configData.uploadUser = true;\r\n this.userDetails();\r\n this.changedetector.detectChanges();\r\n }\r\n else {\r\n if (res?.data?.domain.length) {\r\n let email = res?.data?.domain.map((item:any) => item.email)\r\n // +' '+'<a href=\"profile/domains\">Add domain</a>'\r\n this.toast.getErrorToast(email.join(', ') + ' ' + 'Domain is not Exists.');\r\n return;\r\n }\r\n else if (res?.data?.user?.length && res?.data?.store?.length) {\r\n validate = false;\r\n let popupcontent;\r\n let store: any = [];\r\n let location: any = [];\r\n store = res.data.store.filter((item: any) => {\r\n return item.message == '';\r\n });\r\n\r\n location = res.data.store.filter((item: any) => {\r\n return item.message != '';\r\n });\r\n\r\n store = store.map((item: any) => item.store);\r\n location = location.map((item: any) => item.store);\r\n if (store.length) {\r\n popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>',\r\n title: `New Store found in uploaded file`,\r\n content: `This CSV contains a new store. Add new stores in the Store Management under Manage menu.`,\r\n buttontype: 'Addstore',\r\n subtitle: store.join(', '),\r\n location: location.join()\r\n }\r\n }\r\n else {\r\n if (location.length) {\r\n let userDataCopy = [...this.userData];\r\n let store_id: any = [];\r\n location.forEach((item: any) => {\r\n let details = userDataCopy.find((store: any) => item == store.storeName);\r\n if (details.city == undefined || details.city == '') {\r\n store_id.push(item);\r\n }\r\n })\r\n if (store_id.length) {\r\n this.toast.getErrorToast(`City is required on this stores ${store_id.join()}`);\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n else {\r\n this.configData.uploadUser = true;\r\n this.uploadUser(del);\r\n }\r\n }\r\n }\r\n if (popupcontent) {\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((result) => {\r\n if (result == 'confirmStore') {\r\n this.route.navigateByUrl(`manage/store`)\r\n }\r\n validate = true;\r\n if (result == 'skip') {\r\n if (location.length) {\r\n let store_id: any = [];\r\n location.forEach((item: any) => {\r\n let details = this.userData.find((store: any) => item == store.storeName);\r\n if (details.city == undefined || details.city == '') {\r\n store_id.push(item);\r\n }\r\n })\r\n if (store_id.length) {\r\n this.toast.getErrorToast(`City is required on this stores ${store_id.join()}`)\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n }\r\n let userDataCopy = [...this.userData];\r\n this.userData = [];\r\n userDataCopy.forEach((item: any) => {\r\n if (!store.includes(item.storeName)) {\r\n this.userData.push(item);\r\n }\r\n })\r\n\r\n if (!this.userData.length) {\r\n this.toast.getErrorToast('Please Enter valid Details')\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n let userDetails = this.userData.map((item: any) => item.userEmail);\r\n let user = [...res.data.user];\r\n res.data.user = [];\r\n user.forEach((item: any) => {\r\n if (userDetails.includes(item.userEmail)) {\r\n res.data.user.push(item);\r\n }\r\n })\r\n if (res.data.user.length) {\r\n popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>',\r\n title: `Invite new users added in CSV`,\r\n content: `This CSV contains new users. Invite users by sending mail to them`,\r\n buttontype: 'Invite',\r\n user: res.data.user\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((result) => {\r\n if (result?.message == 'confirm' || result == 'skip') {\r\n if (result == 'skip') {\r\n userDataCopy = [...this.userData];\r\n this.userData = [];\r\n userDataCopy.forEach((item: any) => {\r\n if (!userDetails.includes(item.userEmail)) {\r\n this.userData.push(item);\r\n }\r\n })\r\n }\r\n else {\r\n result?.user.forEach((item: any) => {\r\n let index = this.userData.findIndex((user: any) => {\r\n return user.userEmail == item.userEmail\r\n })\r\n if (!item.invite) {\r\n this.userData.splice(index, 1)\r\n }\r\n\r\n })\r\n for(let item of res.data.user) {\r\n if (item?.message) {\r\n this.toast.getErrorToast(`${item.userEmail} - ${item.message}`)\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n validate = false;\r\n return;\r\n }\r\n }\r\n }\r\n if (!this.userData.length) {\r\n this.toast.getErrorToast(`Please Enter valid Details`)\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n if (validate) {\r\n this.configData.uploadUser = true;\r\n this.uploadUser(del);\r\n }\r\n }\r\n });\r\n }\r\n\r\n else {\r\n this.configData.uploadUser = true;\r\n this.uploadUser(del);\r\n }\r\n\r\n }\r\n });\r\n }\r\n }\r\n else if (res?.data?.user?.length || res?.data?.store?.length) {\r\n validate = false;\r\n let popupcontent;\r\n let store: any = [];\r\n let location: any = [];\r\n if (res?.data?.user?.length) {\r\n popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>',\r\n title: `Invite new users added in CSV`,\r\n content: `This CSV contains new users. Invite users by sending mail to them`,\r\n buttontype: 'Invite',\r\n user: res.data.user\r\n }\r\n }\r\n else {\r\n store = res.data.store.filter((item: any) => {\r\n return item.message == '';\r\n });\r\n\r\n location = res.data.store.filter((item: any) => {\r\n return item.message != '';\r\n });\r\n\r\n store = store.map((item: any) => item.store);\r\n location = location.map((item: any) => item.store);\r\n if (store.length) {\r\n popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>',\r\n title: `New Store found in uploaded file`,\r\n content: `This CSV contains a new store. Add new stores in the Store Management under Manage menu.`,\r\n buttontype: 'Addstore',\r\n subtitle: store.join(', '),\r\n location: location.join()\r\n }\r\n }\r\n else {\r\n if (location.length) {\r\n let userDataCopy = [...this.userData];\r\n let store_id: any = [];\r\n location.forEach((item: any) => {\r\n let details = userDataCopy.find((store: any) => item == store.storeName);\r\n if (details.city == undefined || details.city == '') {\r\n store_id.push(item);\r\n }\r\n })\r\n if (store_id.length) {\r\n this.toast.getErrorToast(`City is required on this stores ${store_id.join()}`);\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n else {\r\n this.configData.uploadUser = true;\r\n this.uploadUser(del);\r\n }\r\n }\r\n }\r\n }\r\n if (popupcontent) {\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((result) => {\r\n if (result == 'confirmStore') {\r\n this.route.navigateByUrl(`manage/stores`)\r\n }\r\n if (result?.message == 'confirm' || result == 'skip') {\r\n validate = true;\r\n if (result == 'skip') {\r\n let userDataCopy = [...this.userData];\r\n this.userData = [];\r\n if (res?.data?.user?.length) {\r\n let userDetails = res.data.user.map((item: any) => item.userEmail)\r\n userDataCopy.forEach((item: any) => {\r\n if (!userDetails.includes(item.userEmail)) {\r\n this.userData.push(item);\r\n }\r\n })\r\n }\r\n\r\n if (location.length) {\r\n let store_id: any = [];\r\n location.forEach((item: any) => {\r\n let details = userDataCopy.find((store: any) => item == store.storeName);\r\n if (details.city == undefined || details.city == '') {\r\n store_id.push(item);\r\n }\r\n })\r\n if (store_id.length) {\r\n this.toast.getErrorToast(`City is required on this stores ${store_id.join()}`);\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n }\r\n\r\n if (res?.data?.store?.length) {\r\n userDataCopy.forEach((item: any) => {\r\n if (!store.includes(item.storeName)) {\r\n this.userData.push(item);\r\n }\r\n })\r\n }\r\n }\r\n else {\r\n result?.user.forEach((item: any) => {\r\n let index = this.userData.findIndex((user: any) => {\r\n return user.userEmail == item.userEmail\r\n })\r\n if (!item.invite) {\r\n this.userData.splice(index, 1)\r\n }\r\n\r\n })\r\n for(let item of res.data.user) {\r\n if (item?.message) {\r\n this.toast.getErrorToast(`${item.userEmail} - ${item.message}`)\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n validate = false;\r\n return;\r\n }\r\n }\r\n }\r\n if (validate) {\r\n if (!this.userData.length) {\r\n this.toast.getErrorToast('Please Enter valid Details');\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n return;\r\n }\r\n this.configData.uploadUser = true;\r\n this.uploadUser(del);\r\n }\r\n }\r\n });\r\n }\r\n }\r\n else {\r\n this.configData.uploadUser = true;\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n this.uploadUser(del);\r\n }\r\n }\r\n\r\n }\r\n },(error) => {\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n this.toast.getErrorToast(error.error)\r\n });\r\n }\r\n\r\n uploadUser(del?:any) {\r\n let data = {\r\n id: this.checklistId,\r\n assignedUsers: this.userData,\r\n uploadUser: true,\r\n addUser: true,\r\n type: this.obj?.type && ['mobileusagedetection', 'storeopenandclose'].includes(this.obj.type) ? this.obj.type : '',\r\n ...(del) ? {delete:false} : {}\r\n }\r\n this.SopService.validateUser(data).subscribe((response: any) => {\r\n if (response && response.code == 200) {\r\n this.configData.checkListDetails._id = response.data.id;\r\n this.checklistId = response.data.id;\r\n this.configData.checkListDetails.assignedUsers = [];\r\n this.userDetails();\r\n this.changedetector.detectChanges();\r\n }\r\n\r\n });\r\n }\r\n\r\n userDetails() {\r\n this.tableLoading = true;\r\n let params = {\r\n limit: this.size,\r\n offset: 0,\r\n search: this.tableFilter,\r\n id: this.checklistId\r\n }\r\n this.SopService.getUserDetails(params).subscribe((res: any) => {\r\n this.tableLoading = false;\r\n let count = 0;\r\n if (res == null) {\r\n this.showImage = true;\r\n if (this.tableFilter.length)\r\n this.showImage = false;\r\n this.tableData = [];\r\n }\r\n if (res && res.code == 200) {\r\n this.showImage = false;\r\n this.tableData = res.data.users;\r\n this.recordsCount = this.tableData.length;\r\n this.recordsTotal = res.data.count;\r\n if(this.recordsTotal < 5) {\r\n this.paginationSize = [this.recordsTotal];\r\n }\r\n else {\r\n this.paginationSize = [5,10,15,20];\r\n }\r\n this.tableData.forEach((item:any) =>{\r\n if(item.checkFlag && !this.configData.checkListDetails.assignedUsers.includes(item.id) && !this.removeUsers.includes(item.id))\r\n this.configData.checkListDetails.assignedUsers.push(item.id);\r\n\r\n if (this.configData.checkListDetails.assignedUsers.includes(item.id)) {\r\n count +=1;\r\n }\r\n if(!item.checkFlag && !this.removeUsers.includes(item.id))\r\n this.removeUsers.push(item.id);\r\n })\r\n\r\n if (count == this.recordsCount) {\r\n this.selectAll = true;\r\n }\r\n else {\r\n this.selectAll = false\r\n }\r\n \r\n }\r\n })\r\n }\r\n\r\n downloadTemplate() {\r\n let params = {\r\n limit: 10000,\r\n offset: 0,\r\n id: this.checklistId,\r\n search: this.tableFilter\r\n }\r\n this.SopService.getUserDetails(params).subscribe((res:any) => {\r\n let excelData: any = [];\r\n if (res == null) {\r\n excelData.push({\r\n storeName: '',\r\n userEmail: '',\r\n userName: '',\r\n userPhone: '',\r\n city:''\r\n })\r\n }\r\n if (res && res.code == 200) {\r\n res.data.users.forEach((item: any) => {\r\n excelData.push({\r\n storeName: item.storeName,\r\n userEmail: item.userEmail,\r\n userName: item.userName,\r\n userPhone: item.userPhone,\r\n city:item.city\r\n })\r\n })\r\n }\r\n this.SopService.exportAsExcelFile(excelData, 'CheckList_userList_');\r\n });\r\n }\r\n\r\n onPageChange(event: any) {\r\n this.tableLoading = true;\r\n this.currentValue = event;\r\n this.tableLoading = true;\r\n let params = {\r\n limit: this.size,\r\n offset: event - 1,\r\n search: this.tableFilter,\r\n id: this.checklistId\r\n }\r\n this.SopService.getUserDetails(params).subscribe((res: any) => {\r\n if (res == null) {\r\n this.showImage = true;\r\n if (this.tableFilter.length) {\r\n this.showImage = false;\r\n }\r\n this.tableData = [];\r\n }\r\n if (res && res.code == 200) {\r\n this.showImage = false;\r\n this.tableData = res.data.users;\r\n let count=0;\r\n this.tableData.forEach((item: any) => {\r\n if (item.checkFlag && !this.configData.checkListDetails.assignedUsers.includes(item.id) && !this.removeUsers.includes(item.id))\r\n this.configData.checkListDetails.assignedUsers.push(item.id)\r\n\r\n if (this.configData.checkListDetails.assignedUsers.includes(item.id)) {\r\n count +=1;\r\n }\r\n })\r\n this.recordsCount = this.tableData.length;\r\n this.recordsTotal = res.data.count;\r\n if (count == this.recordsCount) {\r\n this.selectAll = true;\r\n }\r\n else {\r\n this.selectAll = false\r\n }\r\n }\r\n })\r\n this.changedetector.detectChanges();\r\n }\r\n\r\n onPageSizeChange(event: any) {\r\n this.tableLoading = true;\r\n this.currentValue = event;\r\n this.tableLoading = true;\r\n let params = {\r\n limit: this.size,\r\n offset: 0,\r\n search: this.tableFilter,\r\n id: this.checklistId\r\n }\r\n this.SopService.getUserDetails(params).subscribe((res: any) => {\r\n this.tableLoading = false;\r\n if (res == null) {\r\n this.showImage = true;\r\n if (this.tableFilter.length)\r\n this.showImage = false;\r\n this.tableData = [];\r\n }\r\n if (res && res.code == 200) {\r\n this.showImage = false;\r\n this.tableData = res.data.users;\r\n this.tableData.forEach((item: any) => {\r\n if (item.checkFlag && !this.configData.checkListDetails.assignedUsers.includes(item.id) && !this.removeUsers.includes(item.id))\r\n this.configData.checkListDetails.assignedUsers.push(item.id)\r\n })\r\n this.recordsCount = this.tableData.length;\r\n this.recordsTotal = res.data.count;\r\n }\r\n })\r\n }\r\n searchTableData() {\r\n this.currentValue = 1;\r\n this.tableLoading = true;\r\n let params = {\r\n offset: 0,\r\n limit: this.size,\r\n search: this.tableFilter,\r\n id: this.checklistId\r\n }\r\n if (this.tableFilter.length) {\r\n this.SopService.getUserDetails(params).subscribe((res: any) => {\r\n this.tableLoading = false;\r\n if (res == null) {\r\n this.showImage = true;\r\n if (this.tableFilter.length)\r\n this.showImage = false;\r\n this.tableData = [];\r\n }\r\n if (res && res.code == 200) {\r\n this.showImage = false;\r\n this.tableData = res.data.users;\r\n this.recordsCount = this.tableData.length;\r\n this.recordsTotal = res.data.count;\r\n let count = 0 ;\r\n this.tableData.forEach((item:any) =>{\r\n if(item.checkFlag && !this.configData.checkListDetails.assignedUsers.includes(item.id) && !this.removeUsers.includes(item.id))\r\n this.configData.checkListDetails.assignedUsers.push(item.id);\r\n \r\n if (this.configData.checkListDetails.assignedUsers.includes(item.id)) {\r\n count +=1;\r\n }\r\n })\r\n if (count == this.recordsCount) {\r\n this.selectAll = true;\r\n }\r\n else {\r\n this.selectAll = false\r\n }\r\n }\r\n })\r\n }\r\n else {\r\n this.userDetails();\r\n }\r\n }\r\n updateFlag(event: any, index: any, element: any) {\r\n \r\n element.checkFlag = event.target.checked\r\n if (event.target.checked) {\r\n let index = this.removeUsers.findIndex((item: any) => item == element.id);\r\n this.removeUsers.splice(index, 1);\r\n this.configData.checkListDetails.assignedUsers.push(element.id)\r\n }\r\n if (!event.target.checked) {\r\n this.removeUsers.push(element.id);\r\n let index = this.configData.checkListDetails.assignedUsers.findIndex((item: any) => item == element.id);\r\n this.configData.checkListDetails.assignedUsers.splice(index, 1);\r\n }\r\n this.tableData[index].checkFlag = event.target.checked;\r\n this.changedetector.detectChanges();\r\n if(this.configData.checkListDetails.assignedUsers.length != this.recordsTotal) {\r\n this.selectAll = false;\r\n }\r\n\r\n }\r\n checkAll(event: any) {\r\n // this.configData.checkListDetails.assignedUsers = [];\r\n if (event.target.checked) {\r\n this.tableData.forEach((item: any) => {\r\n item.checkFlag = true\r\n let index = this.removeUsers.findIndex((element: any) => element == item.id);\r\n this.removeUsers.splice(index, 1);\r\n if(!this.configData.checkListDetails.assignedUsers.includes(item.id))\r\n this.configData.checkListDetails.assignedUsers.push(item.id)\r\n });\r\n }\r\n else {\r\n this.tableData.forEach((item: any) => {\r\n item.checkFlag = false;\r\n this.removeUsers.push(item.id)\r\n let index = this.configData.checkListDetails.assignedUsers.findIndex((id:any) => id == item.id);\r\n this.configData.checkListDetails.assignedUsers.splice(index,1);\r\n });\r\n }\r\n\r\n this.changedetector.detectChanges();\r\n }\r\n // dateRangeStart(event :any) {\r\n // this.rangeStart = this.dayjs(event.start).format('YYYY-MM-DD')\r\n // this.validateTime();\r\n // }\r\n dateSpecific(event:any) {\r\n if(this.configData.checkListDetails?.schedule == 'range' && event?.selectedList) {\r\n this.selectedDateList = event.selectedList;\r\n this.selectedDateList = this.selectedDateList.filter((date:any) => date >= this.configData.checkListDetails.configStartDate && date <= this.configData.checkListDetails.configEndDate);\r\n }\r\n }\r\n dateRangeStart(event :any) {\r\n if(this.configData.checkListDetails?.schedule == 'onetime')\r\n this.configData.checkListDetails.scheduleDate = this.dayjs(event.start).format('YYYY-MM-DD')\r\n else {\r\n this.configData.checkListDetails.configStartDate = this.dayjs(event.start).format('YYYY-MM-DD')\r\n }\r\n this.selectedDateList = this.selectedDateList.filter((date:any) => date >= this.configData.checkListDetails.configStartDate);\r\n this.validateTime();\r\n }\r\n \r\n dateRangeEnd(event:any) {\r\n this.configData.checkListDetails.configEndDate = this.dayjs(event.end).format('YYYY-MM-DD')\r\n this.refreshPicker = false;\r\n this.selectedDateList = this.selectedDateList.filter((date:any) => date <= this.configData.checkListDetails.configEndDate);\r\n this.validateTime();\r\n }\r\n dateChanged(event: any) {\r\n this.date = this.dayjs(event.start);\r\n this.monthDate = parseInt(this.date.format('DD')) == 1 ? parseInt(this.date.format('DD')) + 'st' : parseInt(this.date.format('DD')) == 2 ? parseInt(this.date.format('DD')) + 'nd' : parseInt(this.date.format('DD')) == 3 ? parseInt(this.date.format('DD')) + 'rd' : parseInt(this.date.format('DD')) + 'th';\r\n this.monthDay = this.date.format('dddd');\r\n this.configData.checkListDetails.scheduleDate = this.dayjs(event.start).format('YYYY-MM-DD');\r\n\r\n let weekNumber = getWeekNumber(this.date);\r\n this.MonthweekNumber = weekNumber == 1 ? weekNumber + 'st' : weekNumber == 2 ? weekNumber + 'nd' : weekNumber == 3 ? weekNumber + 'rd' : weekNumber + 'th';\r\n this.setMonthDate(this.configData.checkListDetails.scheduleRepeatedMonthSetup);\r\n }\r\n // setDay(day: any) {\r\n // this.configData.checkListDetails.scheduleRepeatedDay = day;\r\n // }\r\n setDay(day:string){\r\n if (this.selectedDays.includes(day)) {\r\n this.selectedDays = this.selectedDays.filter(selectedDay => selectedDay !== day);\r\n } else {\r\n this.selectedDays.push(day);\r\n }\r\n }\r\n setMonthDate(data: any) {\r\n if (data == 'date') {\r\n this.configData.checkListDetails.scheduleRepeatedDay = [this.monthDate];\r\n this.selectedDays = [this.monthDate]; \r\n }\r\n else {\r\n this.configData.checkListDetails.scheduleRepeatedDay = [this.monthDay];\r\n this.selectedDays = [this.monthDay]; \r\n let weekNumber = getWeekNumber(this.date);\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = weekNumber == 1 ? weekNumber + 'st' : weekNumber == 2 ? weekNumber + 'nd' : weekNumber == 3 ? weekNumber + 'rd' : weekNumber + 'th';\r\n }\r\n this.configData.checkListDetails.scheduleRepeatedMonthSetup = data;\r\n\r\n }\r\n setDate(event: any) {\r\n this.configData.checkListDetails.scheduleDate = event.start;\r\n }\r\n publish() {\r\n if(['weekly','weekday'].includes(this.configData.checkListDetails.schedule) && this.selectedDays.length == 0){\r\n this.toast.getErrorToast('Please select atleast 1 day to proceed');\r\n return false;\r\n }\r\n if(!this.validTime) {\r\n this.toast.getErrorToast('Invalid Schedule End Time');\r\n return false;\r\n }\r\n if(!this.showRangeValue) {\r\n this.configData.checkListDetails.configStartDate =''; \r\n this.configData.checkListDetails.configEndDate =''; \r\n }\r\n if(this.configData.checkListDetails.schedule != 'onetime') {\r\n this.configData.checkListDetails.scheduleDate =''; \r\n }\r\n if(this.configData.checkListDetails.schedule == 'monthly' && this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'date') {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = this.monthDate +' '+this.monthDay;\r\n }\r\n if(this.configData.checkListDetails.schedule == 'monthly' && this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'specific') {\r\n if(this.submittedDates.length)\r\n this.configData.checkListDetails.specificDate = this.submittedDates;\r\n else {\r\n this.toast.getErrorToast('Please select atleast 1 date to proceed');\r\n return false;\r\n }\r\n }\r\n if(this.configData.checkListDetails.schedule == 'range' && this.selectedDateList.length) {\r\n this.configData.checkListDetails.specificDate = this.selectedDateList;\r\n }\r\n let popupcontent = {\r\n displayprop: false,\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#D1FADF\"/><path d=\"M38 27.0818V28.0018C37.9988 30.1582 37.3005 32.2565 36.0093 33.9836C34.7182 35.7108 32.9033 36.9743 30.8354 37.5857C28.7674 38.1971 26.5573 38.1237 24.5345 37.3764C22.5117 36.6291 20.7847 35.2479 19.611 33.4389C18.4373 31.6299 17.8798 29.4899 18.0217 27.3381C18.1636 25.1864 18.9972 23.1381 20.3983 21.4989C21.7994 19.8596 23.6928 18.7172 25.7962 18.242C27.8996 17.7667 30.1003 17.9842 32.07 18.8618M38 20.0018L28 30.0118L25 27.0118\" stroke=\"#039855\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#ECFDF3\" stroke-width=\"8\"/></svg>`,\r\n title: `${this.configData.checkListDetails.checkListName} checklist published\r\n ?`,\r\n content: `This checklist has been published. Any changes made will reflect from the next occurrence.`,\r\n buttontype: 'confirm'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {centered: true, size: 'md'});\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => {\r\n if (res == 'confirm') {\r\n if (this.type == 'mobileusagedetection' || this.type == 'storeopenandclose') {\r\n // if (this.type == 'mobileusagedetection') {\r\n // this.configData.checkListDetails.detectionArea = this.zones;\r\n // }\r\n if (this.type == 'storeopenandclose') {\r\n this.configData.checkListDetails.scheduleStartTime = this.configData.openTime;\r\n this.configData.checkListDetails.scheduleEndTime = this.configData.closeTime;\r\n }\r\n this.configData.checkListDetails.alert.alertsTo = this.emailList;\r\n }\r\n this.configData.checkListDetails.publish = true;\r\n this.configData.submitType = 'publish';\r\n this.configData.removedUsers = this.removeUsers;\r\n this.configData.checkListDetails.scheduleWeekDays = this.selectedDays;\r\n this.configData.updateConfigure = this.disabledQuestion ? true : false;\r\n\r\n this.SopService.configUpdate(this.configData).subscribe((res: any) => {\r\n if (res) {\r\n if (res && res.code == 200) {\r\n this.toast.getSuccessToast(`${this.configData.checkListDetails.checkListName} checklist published.`);\r\n this.route.navigate(['/manage/trax/checklist']);\r\n } else {\r\n this.toast.getErrorToast('Please Assign a User!');\r\n }\r\n } else {\r\n this.toast.getErrorToast('Please Assign a User!');\r\n }\r\n }, (error: any) => {\r\n if (error.code == 400) {\r\n let err = error?.error?.message;\r\n this.toast.getErrorToast(err);\r\n } else {\r\n this.toast.getErrorToast('Please Assign a User!Server Error!');\r\n }\r\n\r\n })\r\n }\r\n });\r\n }\r\n\r\n selectstore(element: any) {\r\n const dialogRef = this.dialog.open(TraxStoreComponent, {\r\n centered:true,size:'md'\r\n });\r\n\r\n dialogRef.componentInstance.data = element;\r\n\r\n dialogRef.result.then((data: any) => {\r\n // console.log(data);\r\n if (data && data.msg == 'confirm') {\r\n if (data.stores.length) {\r\n let sop = data.stores;\r\n let id = element.id;\r\n // this.SopService.assignSopStore(sop, id).subscribe((res: any) => {\r\n // if (res && res.code == 200) {\r\n // element.sop_stores = data.stores;\r\n // this.changedetector.detectChanges();\r\n // }\r\n // }, (error: any) => {\r\n\r\n // })\r\n }\r\n }\r\n })\r\n }\r\n newstore() {\r\n this.route.navigate([\"/store/list\"], { queryParams: { checklistid: JSON.stringify(this.obj) } });\r\n }\r\n inviteuser() {\r\n this.route.navigate([\"/control-panel/assign-role\"], { queryParams: { checklistid: JSON.stringify(this.obj) } });\r\n }\r\n\r\n updateDay() {\r\n return this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'day' ? this.dayjs().format('DD') : '';\r\n }\r\n\r\n updateValue(event:any) {\r\n if(event.target.value.length != 0) {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = event.target.value < 9 ? '0'+event.target.value : event.target.value;\r\n }\r\n else {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = this.dayjs().format('DD');\r\n }\r\n this.changedetector.detectChanges();\r\n }\r\n\r\n validate(event:any) { \r\n if(!isNaN(event.target.value)) {\r\n if(event.target.value[0] == 3 && event.target.value[1] > 1) {\r\n event.target.value = 3;\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = 3;\r\n }\r\n if(event.target.value[0] > 3 && event.target.value[1] >= 0) {\r\n event.target.value = event.target.value[0];\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = event.target.value[0];\r\n }\r\n if(event.target.value[0] < 1) {\r\n event.target.value = '';\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = '';\r\n }\r\n }\r\n else {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = '';\r\n event.target.value = '';\r\n }\r\n\r\n }\r\n\r\n savedraft() {\r\n if(!this.validTime) {\r\n this.toast.getErrorToast('Invalid Schedule End Time');\r\n return false;\r\n }\r\n let startDateWithTime, endDateWithTime;\r\n if(!this.showRangeValue) {\r\n this.configData.checkListDetails.configStartDate =''; \r\n this.configData.checkListDetails.configEndDate =''; \r\n }\r\n if(this.configData.checkListDetails.schedule != 'onetime') {\r\n this.configData.checkListDetails.scheduleDate =''; \r\n }\r\n if(this.configData.checkListDetails.schedule == 'monthly' && this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'date') {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = this.monthDate +' '+this.monthDay;\r\n }\r\n if(this.configData.checkListDetails.schedule == 'monthly' && this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'specific') {\r\n if(this.submittedDates.length)\r\n this.configData.checkListDetails.specificDate = this.submittedDates;\r\n }\r\n \r\n if(this.configData.checkListDetails.schedule == 'range' && this.selectedDateList.length) {\r\n this.configData.checkListDetails.specificDate = this.selectedDateList;\r\n }\r\n // if (this.configData.checkListDetails.scheduleRepeatedType == 'range') {\r\n // let start = this.configData.checkListDetails.scheduleStartTime.split(' ');\r\n // let end = this.configData.checkListDetails.scheduleEndTime.split(' ');\r\n // startDateWithTime = start.length > 2 ? start[1] + ' ' + start[2] : this.configData.checkListDetails.scheduleStartTime;\r\n // endDateWithTime = end.length > 2 ? end[1] + ' ' + end[2] : this.configData.checkListDetails.scheduleEndTime;\r\n // this.configData.checkListDetails.scheduleStartTime = this.dayjs(this.rangeStart).format('YYYY-MM-DD') + ' ' + startDateWithTime;\r\n // this.configData.checkListDetails.scheduleEndTime = this.dayjs(this.rangeEnd).format('YYYY-MM-DD') + ' ' + endDateWithTime;\r\n \r\n // if (this.configData.checkListDetails.scheduleStartTime > this.configData.checkListDetails.scheduleEndTime) {\r\n // this.configData.checkListDetails.scheduleStartTime = startDateWithTime;\r\n // this.configData.checkListDetails.scheduleEndTime = endDateWithTime;\r\n // this.toast.getErrorToast('End time must be greater than start time');\r\n // return false;\r\n // }\r\n // }\r\n \r\n this.popupCount = this.popupCount + 1;\r\n this.configData.submitType = 'save';\r\n this.configData.checkListDetails.publish = false;\r\n this.configData.removedUsers = this.removeUsers;\r\n this.configData.checkListDetails.scheduleWeekDays = this.selectedDays;\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: '<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>',\r\n title: `Unsaved changes`,\r\n content: `Do you want to save as draft?`,\r\n buttontype: 'draft'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => {\r\n if (this.type == 'mobileusagedetection' || this.type == 'storeopenandclose') {\r\n if (this.type == 'mobileusagedetection') {\r\n this.configData.checkListDetails.detectionArea = this.zones;\r\n }\r\n if (this.type == 'storeopenandclose') {\r\n this.configData.checkListDetails.scheduleStartTime = this.configData.openTime;\r\n this.configData.checkListDetails.scheduleEndTime = this.configData.closeTime;\r\n }\r\n // this.configData.checkListDetails.assignedUsers = this.sopStores;\r\n this.configData.checkListDetails.alert.alertsTo = this.emailList;\r\n }\r\n\r\n if (!res) {\r\n this.popupCount = 0;\r\n }\r\n if (res == 'confirm') {\r\n this.SopService.configUpdate(this.configData).subscribe((result: any) => {\r\n if (result && result.code == 200) {\r\n this.toast.getSuccessToast('Draft has been saved successfully.');\r\n this.route.navigate(['/manage/trax/checklist']);\r\n }\r\n })\r\n }\r\n })\r\n\r\n }\r\n\r\n Reupload() {\r\n if(this.fileInput) {\r\n this.fileInput.nativeElement.value = '';\r\n }\r\n if(this.fileInput1) {\r\n this.fileInput1.nativeElement.value = '';\r\n }\r\n this.popupCount = this.popupCount + 1;\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>`,\r\n title: `Reupload CSV`,\r\n content: `Are you sure you want to replace existing data by uploading new file? Your existing data will get replaced with the new one.`,\r\n buttontype: 'Reupload'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md',\r\n });\r\n dialogRef.componentInstance.data = popupcontent\r\n dialogRef.result.then((res) => {\r\n\r\n if (res == 'confirm') {\r\n this.reupload = true;\r\n this.changedetector.detectChanges();\r\n let ele = document.getElementById('kt_account_team_size_select_2');\r\n ele?.click();\r\n }\r\n })\r\n\r\n }\r\n invitenewuser() {\r\n this.popupCount = this.popupCount + 1;\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>`,\r\n title: `Invite new users added in CSV`,\r\n content: `This CSV contains new users. Invite users by sending mail to them. <br>`,\r\n buttontype: 'Invite'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => {\r\n\r\n if (res == 'confirm') {\r\n // this.SopService.configUpdate(this.configData).subscribe((result: any) => {\r\n // // console.log(result);\r\n\r\n // if (result && result.code == 200) {\r\n // Swal.fire({\r\n // toast: true,\r\n // iconHtml: '<img src=\"../../../../assets/Icons/checklist-unpublished-icon.svg\">',\r\n // // titleText: `Email sent succesfully`,\r\n // html: `<div class=\"row\">\r\n // <div class=\"col-12 mt-2\">\r\n // <h4>CSV has been Reuploaded successfully.</h4>\r\n // </div>\r\n // </div>`,\r\n // position: 'bottom',\r\n // showConfirmButton: false,\r\n // showCloseButton: true,\r\n // timer: 6000,\r\n // timerProgressBar: true,\r\n // didOpen: (toast) => {\r\n // toast.addEventListener('mouseenter', Swal.stopTimer)\r\n // toast.addEventListener('mouseleave', Swal.resumeTimer)\r\n // $(\"#kt_create_account_form_account_type_personal\").val('')\r\n // this.changedetector.detectChanges();\r\n // }\r\n\r\n // })\r\n\r\n // // this.route.navigate(['/sop/Checklists']);\r\n\r\n // }\r\n // })\r\n }\r\n })\r\n\r\n }\r\n Addstore() {\r\n this.popupCount = this.popupCount + 1;\r\n const popupcontent = {\r\n displayprop: false,\r\n imagesrc: `<svg xmlns=\"http://www.w3.org/2000/svg\" width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\"><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#FEF0C7\"/><path d=\"M27.9998 24.0012V28.0012M27.9998 32.0012H28.0098M26.2898 18.8612L17.8198 33.0012C17.6451 33.3036 17.5527 33.6465 17.5518 33.9957C17.5508 34.3449 17.6413 34.6883 17.8142 34.9917C17.9871 35.2951 18.2365 35.5479 18.5375 35.725C18.8385 35.9021 19.1806 35.9973 19.5298 36.0012H36.4698C36.819 35.9973 37.1611 35.9021 37.4621 35.725C37.7631 35.5479 38.0124 35.2951 38.1854 34.9917C38.3583 34.6883 38.4488 34.3449 38.4478 33.9957C38.4468 33.6465 38.3544 33.3036 38.1798 33.0012L29.7098 18.8612C29.5315 18.5673 29.2805 18.3243 28.981 18.1557C28.6814 17.987 28.3435 17.8984 27.9998 17.8984C27.656 17.8984 27.3181 17.987 27.0186 18.1557C26.7191 18.3243 26.468 18.5673 26.2898 18.8612Z\" stroke=\"#DC6803\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/><rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#FFFAEB\" stroke-width=\"8\"/></svg>`,\r\n title: `Invite new users added in CSV`,\r\n content: `This CSV contains new users. Invite users by sending mail to them. <br>`,\r\n subtitle: 'LKST009, ST3045',\r\n buttontype: 'Addstore'\r\n }\r\n const dialogRef = this.dialog.open(TraxpopupComponent, {\r\n centered:true,size:'md'\r\n });\r\n dialogRef.componentInstance.data = popupcontent;\r\n dialogRef.result.then((res) => {\r\n\r\n if (res == 'confirm') {\r\n // this.SopService.configUpdate(this.configData).subscribe((result: any) => {\r\n // // console.log(result);\r\n\r\n // if (result && result.code == 200) {\r\n // Swal.fire({\r\n // toast: true,\r\n // iconHtml: '<img src=\"../../../../assets/Icons/checklist-unpublished-icon.svg\">',\r\n // // titleText: `Email sent succesfully`,\r\n // html: `<div class=\"row\">\r\n // <div class=\"col-12 mt-2\">\r\n // <h4>CSV has been Reuploaded successfully.</h4>\r\n // </div>\r\n // </div>`,\r\n // position: 'bottom',\r\n // showConfirmButton: false,\r\n // showCloseButton: true,\r\n // timer: 6000,\r\n // timerProgressBar: true,\r\n // didOpen: (toast) => {\r\n // toast.addEventListener('mouseenter', Swal.stopTimer)\r\n // toast.addEventListener('mouseleave', Swal.resumeTimer)\r\n // $(\"#kt_create_account_form_account_type_personal\").val('')\r\n // this.changedetector.detectChanges();\r\n // }\r\n\r\n // })\r\n\r\n // // this.route.navigate(['/sop/Checklists']);\r\n\r\n // }\r\n // })\r\n }\r\n })\r\n\r\n }\r\n // addUser() {\r\n // this.addUserForm = !this.addUserForm;\r\n // }\r\n\r\n\r\n // createuserPopup(type: string, record: any = null): void {\r\n // if (type == 'view') {\r\n // this.popUpTitle = \"View User Details\";\r\n // } else if (type == 'edit') {\r\n // this.popUpTitle = \"Edit User Details\";\r\n // } else {\r\n // this.popUpTitle = \"Enter New User Details\";\r\n // // this.popUpTitle = \"Enter New User Details\";\r\n // }\r\n // let data = {\r\n // record: record,\r\n // type: type,\r\n // title: this.popUpTitle\r\n // }\r\n\r\n // const dialogRef_createUser = this.dialog.open(UploadSingleUserComponent, {\r\n // panelClass: 'custom-modalbox',\r\n // data: data\r\n // });\r\n\r\n // dialogRef_createUser.afterClosed().subscribe((res: any) => {\r\n // this.showIntro = false;\r\n // if (!record && res && res.data.code == 200) {\r\n // Swal.fire({\r\n // icon: 'success',\r\n // text: 'The user invite has been sent successfully to the user and added to the platform!',\r\n // confirmButtonText: 'OK',\r\n // allowOutsideClick: false,\r\n // heightAuto: false\r\n // }).then((result) => {\r\n // if (result.isConfirmed) {\r\n // this.searchUser = ''\r\n // this.addUserForm = false;\r\n // this.currentValue = 1;\r\n // // this.loadRecords(0, this.size)\r\n // }\r\n // })\r\n // } else if (res && res.data.code == 200) {\r\n // Swal.fire({\r\n // icon: 'success',\r\n // text: 'User Updated Successfully!',\r\n // heightAuto: false\r\n // });\r\n // this.searchUser = ''\r\n // this.addUserForm = false;\r\n // this.currentValue = 1;\r\n // // this.loadRecords(0, this.size)\r\n // }\r\n // })\r\n // } \r\n\r\n\r\n // createuserPopup() {\r\n // const dialogRef = this.dialog.open(UploadSingleUserComponent, {\r\n // panelClass: 'custom-modalbox'\r\n\r\n // });\r\n // dialogRef.afterClosed()\r\n // .subscribe((res: any) => {\r\n\r\n // })\r\n // }\r\n\r\n // transferFormData() {\r\n // this.SopService.sopData.asObservable()\r\n // }\r\n saveandredirect(id: any) {\r\n if (this.type == 'mobileusagedetection' || this.type == 'storeopenandclose') {\r\n if (this.type == 'mobileusagedetection') {\r\n this.configData.checkListDetails.detectionArea = this.zones;\r\n }\r\n if (this.type == 'storeopenandclose') {\r\n this.configData.checkListDetails.scheduleStartTime = this.configData.openTime;\r\n this.configData.checkListDetails.scheduleEndTime = this.configData.closeTime;\r\n }\r\n this.configData.checkListDetails.alert.alertsTo = this.emailList;\r\n }\r\n this.configData.submitType = 'save';\r\n this.configData.removedUsers = this.removeUsers;\r\n \r\n let startDateWithTime, endDateWithTime;\r\n if(!this.showRangeValue) {\r\n this.configData.checkListDetails.configStartDate =''; \r\n this.configData.checkListDetails.configEndDate =''; \r\n }\r\n if(this.configData.checkListDetails.schedule != 'onetime') {\r\n this.configData.checkListDetails.scheduleDate =''; \r\n }\r\n \r\n if(this.configData.checkListDetails.schedule == 'monthly' && this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'date') {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = this.monthDate +' '+ this.monthDay;\r\n }\r\n if(this.configData.checkListDetails.schedule == 'monthly' && this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'specific') {\r\n if(this.submittedDates.length)\r\n this.configData.checkListDetails.specificDate = this.submittedDates;\r\n }\r\n if(this.configData.checkListDetails.schedule == 'range' && this.selectedDateList.length) {\r\n this.configData.checkListDetails.specificDate = this.selectedDateList;\r\n }\r\n // if (this.configData.checkListDetails.scheduleRepeatedType == 'range') { \r\n // let start = this.configData.checkListDetails.scheduleStartTime.split(' ');\r\n // let end = this.configData.checkListDetails.scheduleEndTime.split(' ');\r\n // startDateWithTime = start.length > 2 ? start[1] + ' ' + start[2] : this.configData.checkListDetails.scheduleStartTime;\r\n // endDateWithTime = end.length > 2 ? end[1] + ' ' + end[2] : this.configData.checkListDetails.scheduleEndTime;\r\n // this.configData.checkListDetails.scheduleStartTime = this.dayjs(this.rangeStart).format('YYYY-MM-DD') + ' ' + startDateWithTime;\r\n // this.configData.checkListDetails.scheduleEndTime = this.dayjs(this.rangeEnd).format('YYYY-MM-DD') + ' ' + endDateWithTime;\r\n \r\n // if (this.configData.checkListDetails.scheduleStartTime > this.configData.checkListDetails.scheduleEndTime) {\r\n // this.configData.checkListDetails.scheduleStartTime = startDateWithTime;\r\n // this.configData.checkListDetails.scheduleEndTime = endDateWithTime;\r\n // this.toast.getErrorToast('End time must be greater than start time');\r\n // return false;\r\n // }\r\n // }\r\n\r\n\r\n this.SopService.configUpdate(this.configData).subscribe((result: any) => {\r\n if (result && result.code == 200) {\r\n this.route.navigate([\"/manage/trax/createChecklist\"], { queryParams: { checklistId: id } });\r\n }\r\n })\r\n }\r\n validateTime() {\r\n let startTime = this.dayjs(this.startTime, 'HH:mm')\r\n let endTime = this.dayjs(this.endTime, 'HH:mm')\r\n if ( this.showRangeValue) {\r\n if(this.configData.checkListDetails?.configStartDate != '' && this.configData.checkListDetails?.configStartDate != null && this.configData.checkListDetails.configEndDate != '' && this.configData.checkListDetails.configEndDate != null) {\r\n if(this.configData.checkListDetails?.configStartDate == this.configData.checkListDetails?.configEndDate) {\r\n if (startTime > endTime) {\r\n this.validTime = false;\r\n this.toast.getErrorToast('Invalid Schedule End Time');\r\n return false;\r\n }\r\n else {\r\n this.validTime = true;\r\n return true;\r\n }\r\n }\r\n else if(this.configData.checkListDetails.configStartDate > this.configData.checkListDetails.configEndDate) {\r\n this.validTime = false;\r\n this.toast.getErrorToast('Invalid Schedule End Date');\r\n return false;\r\n }\r\n else {\r\n this.validTime = true;\r\n return true;\r\n }\r\n }\r\n else {\r\n this.validTime = true;\r\n return true;\r\n }\r\n }\r\n else if ( startTime > endTime) {\r\n this.validTime = false;\r\n this.toast.getErrorToast('Invalid Schedule End Time');\r\n return false;\r\n }\r\n else {\r\n this.validTime = true;\r\n return true;\r\n }\r\n }\r\n updateTime(data: any) {\r\n // console.log(this.validateTime());\r\n \r\n if(this.validateTime()) {\r\n if (data == 'start') {\r\n this.configData.checkListDetails.scheduleStartTime = this.dayjs(this.startTime, 'HH:mm').format('hh:mm A')\r\n }\r\n else {\r\n this.configData.checkListDetails.scheduleEndTime = this.dayjs(this.endTime, 'HH:mm').format('hh:mm A');\r\n }\r\n }\r\n this.changedetector.detectChanges();\r\n \r\n }\r\n updateSchedule(event:any) {\r\n this.configData.checkListDetails.scheduleRepeatedMonthSetup = '';\r\n this.configData.checkListDetails.scheduleRepeatedDay = '01';\r\n this.selectedDays = [];\r\n this.submittedDates = [];\r\n this.selectedDate = [];\r\n this.selectedDateList = [];\r\n this.specific = false;\r\n this.monthDate = '';\r\n this.monthDay = '';\r\n this.showRangeValue = event.target.value == 'range' ? true : false;\r\n if(event.target.value == 'range') {\r\n this.refreshPicker = false;\r\n this.configData.checkListDetails.configStartDate = this.configData.checkListDetails?.configStartDate || this.dayjs().format('YYYY-MM-DD');\r\n this.configData.checkListDetails.configEndDate = this.configData.checkListDetails?.configEndDate || this.dayjs().add(1,'day').format('YYYY-MM-DD');\r\n }else {\r\n this.configData.checkListDetails.configStartDate = '';\r\n this.configData.checkListDetails.configEndDate = this.dayjs().add(1,'day').format('YYYY-MM-DD');\r\n this.refreshPicker = false;\r\n }\r\n if(event.target.value == 'weekday') {\r\n this.selectedDays = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday'];\r\n }\r\n if(event.target.value == 'weekly') {\r\n let todayDate = this.dayjs().format('dddd');\r\n this.selectedDays = [todayDate];\r\n }\r\n if(event.target.value == 'monthly') {\r\n this.configData.checkListDetails.scheduleRepeatedMonthSetup = 'day';\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = this.dayjs().format('DD');\r\n }\r\n if(['daily','onetime'].includes(event.target.value) || (event.target.value == 'monthly' && ['day','date'].includes(this.configData.checkListDetails.scheduleRepeatedMonthSetup)) ) {\r\n this.configData.checkListDetails.allowOnce = false;\r\n }\r\n this.repeatType = this.configData.checkListDetails?.schedule == 'daily' ? 'Day' : ['weekly','weekday'].includes(this.configData.checkListDetails?.schedule) ? 'Week' : this.configData.checkListDetails?.schedule == 'monthly' ? 'Month' : '';\r\n this.changedetector.detectChanges();\r\n this.validateTime();\r\n }\r\n // updateDate(event:any) {\r\n\r\n // this.configData.checkListDetails.scheduleDate = this.dayjs().format('YYYY-MM-DD');\r\n // this.rangeStart = this.dayjs().format('YYYY-MM-DD');\r\n // this.rangeEnd = this.dayjs().add(1,'days').format('YYYY-MM-DD');\r\n // }\r\n \r\n navigateToControlCenter() {\r\n this.route.navigate(['/controlcenter/templateview'],{ queryParams: { source: 'cc' } });\r\n }\r\n\r\n addStoreComponent() {\r\n const dialogRef = this.dialog.open(TraxStoreComponent, {\r\n centered:true,size:'md' \r\n });\r\n dialogRef.componentInstance.data = {\r\n checklistId: this.checklistId,\r\n obj:this.obj\r\n };\r\n dialogRef.result.then((res) => {\r\n if(res) {\r\n this.userData = res;\r\n this.validateUserDetails(true)\r\n }\r\n });\r\n }\r\n toggleDropDown() {\r\n // this.showDropDown = true;\r\n this.showDropDown = !this.showDropDown;\r\n }\r\n selectDate(date: number) {\r\n if (this.selectedDate.includes(date)) {\r\n this.selectedDate = this.selectedDate.filter((day:any) => day !== date);\r\n } else {\r\n if(!this.selectedDate.includes(date)) {\r\n this.selectedDate.push(date);\r\n }\r\n }\r\n }\r\n submitDate() {\r\n this.submittedDates = [...this.selectedDate];\r\n }\r\n\r\n removeBadge(date: number) {\r\n this.submittedDates = this.submittedDates.filter(d => d !== date);\r\n this.selectedDate = this.selectedDate.filter((d:any) => d !== date);\r\n }\r\n getDateWithSuffix(date: number): string {\r\n if (date == 1 || date == 31 || date == 21) {\r\n return date + 'st';\r\n } else if (date == 2 || date == 22) {\r\n return date + 'nd';\r\n } else if (date == 3 || date == 23) {\r\n return date + 'rd';\r\n } else {\r\n return date + 'th';\r\n }\r\n }\r\n\r\n closeDropDown() {\r\n this.showDropDown = false;\r\n }\r\n\r\n updateMonth(type:any) {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = '';\r\n this.submittedDates = [];\r\n this.selectedDate = [];\r\n this.configData.checkListDetails.specificDate = [];\r\n this.configData.checkListDetails.scheduleRepeatedMonthSetup = type;\r\n this.monthDate = ''\r\n this.monthDay = ''\r\n this.selectedDateList = [];\r\n this.configData.checkListDetails.allowOnce = false;\r\n if(this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'date') {\r\n let dateWeek = getWeekNumber(this.dayjs());\r\n this.monthDate = dateWeek.toString();\r\n this.monthDay = this.dayjs().format('dddd'); \r\n }\r\n if(this.configData.checkListDetails.scheduleRepeatedMonthSetup == 'day') {\r\n this.configData.checkListDetails.scheduleRepeatedMonthWeek = this.dayjs().format('DD');\r\n }\r\n }\r\n\r\n updateRepeatDay() {\r\n let value = this.configData.checkListDetails.scheduleRepeatedDay;\r\n this.configData.checkListDetails.scheduleRepeatedDay = value == \"00\" || value == '' ? '01' : value;\r\n }\r\n\r\n updateMonthValue() {\r\n let dateValue = ''\r\n if(this.monthDate == '1') {\r\n dateValue = 'First'\r\n }\r\n if(this.monthDate == '2') {\r\n dateValue = 'Second'\r\n }\r\n if(this.monthDate == '3') {\r\n dateValue = 'Third'\r\n }\r\n if(this.monthDate == '4') {\r\n dateValue = 'Fourth'\r\n }\r\n if(this.monthDate == '5') {\r\n dateValue = 'Last'\r\n }\r\n return ('on the ' + dateValue +' '+this.monthDay)\r\n }\r\n\r\n updateSpecificValue() {\r\n let value:any = [];\r\n this.submittedDates.forEach((item:any) => {\r\n item = (item == 1 || item == 31 || item == 21) ? item +' st' : (item == 2 || item == 22) ? item +' nd' : (item == 3 || item == 23 )? item + 'rd' : item +' th';\r\n value.push(item )\r\n })\r\n return value;\r\n }\r\n\r\n removeDate(date:any) {\r\n this.selectedDateList = this.selectedDateList.filter((ele:any) => ele != date);\r\n }\r\n\r\n updateSceduleDate() {\r\n // console.log('this.configData?.checkListDetails?.configEndDate',this.configData?.checkListDetails?.configEndDate)\r\n if(this.configData?.checkListDetails?.configEndDate != '' && this.configData?.checkListDetails?.configEndDate != null) {\r\n return this.configData?.checkListDetails?.configEndDate;\r\n }\r\n else {\r\n return '';\r\n }\r\n }\r\n\r\n updateDateValue(event:any) {\r\n if(event.target.checked) {\r\n this.configData.checkListDetails.configStartDate = this.configData.checkListDetails?.configStartDate || this.dayjs().format('YYYY-MM-DD');\r\n this.configData.checkListDetails.configEndDate = '';\r\n }\r\n else {\r\n this.configData.checkListDetails.configStartDate = '';\r\n this.configData.checkListDetails.configEndDate = '';\r\n }\r\n if(this.configData.checkListDetails.schedule != 'range') {\r\n this.refreshPicker = true;\r\n }\r\n // this.onDatepickerRefresh(); \r\n this.changedetector.detectChanges();\r\n }\r\n\r\n updateSpecific(event:any) {\r\n if(!event.target.checked) {\r\n this.selectedDateList = [];\r\n }\r\n }\r\n\r\n onDatepickerRefresh(){\r\n this.configData.checkListDetails.configEndDate = '';\r\n\r\n this.refreshPicker = true\r\n\r\n setTimeout(() => {\r\n this.refreshPicker = false\r\n }, 100);\r\n\r\n\r\n }\r\n}\r\n\r\nfunction getWeekNumber(date: any) {\r\n let input = date.clone().day() + 1;\r\n let differToNextWeek = 7 - input;\r\n let nextWeekStart = date.date() + differToNextWeek;\r\n return Math.ceil(nextWeekStart / 7);\r\n\r\n}","<div class=\"card\">\r\n <ng-container>\r\n <div class=\"card-header border-0 pt-3 pb-3\">\r\n <h3 class=\"card-title align-items-start flex-column w-85\">\r\n <div class=\"editablecontent mb-4\"><input type=\"text\" class=\"checklist plain-input\"\r\n placeholder=\"Enter Checklist Name\" [value]=\"configData?.checkListDetails?.checkListName\" readonly></div>\r\n <div class=\"editablecontent\"><input type=\"text\" class=\"checklistDescription plain-input\"\r\n #checklistDescription placeholder=\"Enter Checklist Description\"\r\n [value]=\"configData?.checkListDetails?.checkListDescription\" readonly></div>\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 <button type=\"button\"\r\n class=\"btn btn-primary mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"\r\n (click)=\"publish()\"><span class=\"ms-2\">Publish</span> </button>\r\n\r\n <button type=\"button\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"\r\n (click)=\"savedraft()\"><span class=\"ms-2\">Save as Draft</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n<div class=\"row checkconfigcont mt-2\" *ngIf=\"configData\">\r\n <div class=\"col-xl-3 leftcard\">\r\n <div class=\"card px-7 py-7\">\r\n <div class=\"section-leftheading1\">{{configData?.checkListDetails?.checkListName}}</div>\r\n <div *ngIf=\"obj.checkListId\" class=\"section-left\">\r\n <div *ngFor=\"let section of sections; let i=index;\">\r\n <div class=\"d-flex align-items-center justify-content-between mt-4\">\r\n <div class=\"fs-4 fw-bold section\">{{section.name}}</div>\r\n <hr class=\"mx-2\">\r\n <svg (click)=\"accordian(i)\" [ngClass]=\"{'rotate' : show !== i}\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"35\" height=\"35\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"show===i\" class=\"question-left\">\r\n <div cdkDropList [cdkDropListData]=\"section.questions\">\r\n\r\n <div *ngFor=\"let question of section.questions;let j=index;\" class=\"my-2 q-btn\" cdkDrag>\r\n\r\n <div class=\"editablecontent\">\r\n {{question.qname}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <h3 class=\"card-title align-items-start flex-column \">\r\n <div class=\"card-label section-leftheading1 mt-6\">Schedule</div>\r\n\r\n <div *ngIf=\"type === 'mobileusagedetection' || type === 'storeopenandclose'\" class=\"mt-4 mx-2 sub\"><span\r\n class=\" mx-4\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n fill=\"none\">\r\n <path\r\n d=\"M12 6V12L16 14M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"mt-2\">{{configData.checkListDetails.scheduleStartTime}} to\r\n {{configData.checkListDetails.scheduleEndTime}}</span>\r\n </div>\r\n\r\n\r\n\r\n <div *ngIf=\"['custom','uniformdetection'].includes(type)\">\r\n <div class=\"mt-4 mx-2 sub\"><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"23\" height=\"23\"\r\n viewBox=\"0 0 23 23\" fill=\"none\">\r\n <path\r\n d=\"M8.41448 4.52303C8.69518 4.80371 8.69518 5.2588 8.41448 5.53948L5.53948 8.41448C5.2588 8.69518 4.80371 8.69518 4.52303 8.41448L3.08553 6.97698C2.80482 6.6963 2.80482 6.24121 3.08553 5.96053C3.36621 5.67982 3.8213 5.67982 4.10198 5.96053L5.03125 6.88978L7.39803 4.52303C7.67871 4.24232 8.1338 4.24232 8.41448 4.52303Z\"\r\n fill=\"#667085\" />\r\n <path\r\n d=\"M8.41448 11.7105C8.69518 11.9912 8.69518 12.4463 8.41448 12.727L5.53948 15.602C5.2588 15.8826 4.80371 15.8826 4.52303 15.602L3.08553 14.1645C2.80482 13.8838 2.80482 13.4287 3.08553 13.1479C3.36621 12.8673 3.8213 12.8673 4.10198 13.1479L5.03125 14.0773L7.39803 11.7105C7.67871 11.4299 8.1338 11.4299 8.41448 11.7105Z\"\r\n fill=\"#667085\" />\r\n <path\r\n d=\"M10.0625 6.46875C10.0625 6.0718 10.3844 5.75 10.7812 5.75H15.0938C15.4906 5.75 15.8125 6.0718 15.8125 6.46875C15.8125 6.8657 15.4906 7.1875 15.0938 7.1875H10.7812C10.3844 7.1875 10.0625 6.8657 10.0625 6.46875Z\"\r\n fill=\"#667085\" />\r\n <path\r\n d=\"M3.59375 0C1.60898 0 0 1.60898 0 3.59375V16.5312C0 18.516 1.60898 20.125 3.59375 20.125H9.48708C9.25429 19.6696 9.06436 19.1886 8.92261 18.6875H3.59375C2.40288 18.6875 1.4375 17.7221 1.4375 16.5312V3.59375C1.4375 2.40288 2.40288 1.4375 3.59375 1.4375H16.5312C17.7221 1.4375 18.6875 2.40288 18.6875 3.59375V8.92261C19.1886 9.06436 19.6696 9.25429 20.125 9.48708V3.59375C20.125 1.60898 18.516 0 16.5312 0H3.59375Z\"\r\n fill=\"#667085\" />\r\n <path\r\n d=\"M16.5313 23C20.1039 23 23 20.1039 23 16.5313C23 12.9586 20.1039 10.0625 16.5313 10.0625C12.9586 10.0625 10.0625 12.9586 10.0625 16.5313C10.0625 20.1039 12.9586 23 16.5313 23ZM16.5313 12.9375C16.9281 12.9375 17.25 13.2594 17.25 13.6563V15.8125H19.4063C19.8031 15.8125 20.125 16.1344 20.125 16.5313C20.125 16.9281 19.8031 17.25 19.4063 17.25H17.25V19.4063C17.25 19.8031 16.9281 20.125 16.5313 20.125C16.1344 20.125 15.8125 19.8031 15.8125 19.4063V17.25H13.6563C13.2594 17.25 12.9375 16.9281 12.9375 16.5313C12.9375 16.1344 13.2594 15.8125 13.6563 15.8125H15.8125V13.6563C15.8125 13.2594 16.1344 12.9375 16.5313 12.9375Z\"\r\n fill=\"#667085\" />\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\">{{configData?.checkListDetails?.schedule === 'onetime' ?\r\n 'One-time' : (configData?.checkListDetails?.schedule | titlecase)}}\r\n </span></div>\r\n\r\n <div class=\"mt-4 mx-2 sub\"><span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M12 6V12L16 14M22 12C22 17.5228 17.5228 22 12 22C6.47715 22 2 17.5228 2 12C2 6.47715 6.47715 2 12 2C17.5228 2 22 6.47715 22 12Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"mt-2 ms-2\">{{configData?.checkListDetails?.scheduleStartTime ?\r\n configData?.checkListDetails?.scheduleStartTime.substr(-8) : configData?.openTime}} to\r\n {{configData?.checkListDetails?.scheduleEndTime ?\r\n configData?.checkListDetails?.scheduleEndTime.substr(-8) : configData?.closeTime}}</span>\r\n </div>\r\n\r\n <div class=\"mt-4 mx-2 sub\" *ngIf=\"showRangeValue\"><span><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path\r\n d=\"M16 2V6M8 2V6M3 10H21M5 4H19C20.1046 4 21 4.89543 21 6V20C21 21.1046 20.1046 22 19 22H5C3.89543 22 3 21.1046 3 20V6C3 4.89543 3.89543 4 5 4Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></span><span\r\n class=\"mt-2 ms-2\"><span>{{configData?.checkListDetails?.configStartDate}}</span><span\r\n *ngIf=\"configData?.checkListDetails?.configEndDate !== '' && configData?.checkListDetails?.configEndDate !== null\">\r\n to {{configData?.checkListDetails?.configEndDate}}</span></span></div>\r\n\r\n <div class=\"col-lg-10 editques\" *ngIf=\"['custom'].includes(type) && !disabledQuestion\">\r\n <a (click)=\"saveandredirect(obj.checkListId)\"\r\n class=\"btn-outline btn-outline-dashed btn btn-light upload\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"21\" height=\"20\" viewBox=\"0 0 21 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M14.6666 2.5009C14.8855 2.28203 15.1453 2.10842 15.4313 1.98996C15.7173 1.87151 16.0238 1.81055 16.3333 1.81055C16.6428 1.81055 16.9493 1.87151 17.2353 1.98996C17.5213 2.10842 17.7811 2.28203 18 2.5009C18.2188 2.71977 18.3924 2.97961 18.5109 3.26558C18.6294 3.55154 18.6903 3.85804 18.6903 4.16757C18.6903 4.4771 18.6294 4.7836 18.5109 5.06956C18.3924 5.35553 18.2188 5.61537 18 5.83424L6.74996 17.0842L2.16663 18.3342L3.41663 13.7509L14.6666 2.5009Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"uploadtext\">Edit Questions</span></a>\r\n\r\n </div>\r\n </div>\r\n </h3>\r\n <div *ngIf=\"type === 'mobileusagedetection'\">\r\n <div class=\"card-label section-leftheading1\">Alerts</div>\r\n <div class=\"mt-6 mx-4 sub\">Email</div>\r\n </div>\r\n <!-- <h3 *ngIf=\"type === 'mobileusagedetection'\" class=\"card-title align-items-start flex-column emailalert1\">\r\n <div class=\"mt-4 mx-2 sub\" *ngFor=\"let alert of emailId\"><span class=\" mx-4\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label alerttext bg-light-primary text-primary me-2\">\r\n {{alert.slice(0,2).toUpperCase()}}</span>\r\n </div>\r\n </span><span class=\"mt-2\">{{alert}}</span></div>\r\n </h3> -->\r\n <div *ngIf=\"type === 'mobileusagedetection'\" class=\"mx-4 mt-4 sub\">if usage exceeds\r\n {{configData?.checkListDetails?.alert?.usageExceeds}}\r\n events\r\n </div>\r\n <div *ngIf=\"type === 'storeopenandclose'\">\r\n <div class=\"card-label section-leftheading1\">Alerts</div>\r\n <div class=\"mt-4 mx-4 sub\">Send email everyday to</div>\r\n </div>\r\n <!-- <h3 *ngIf=\"type === 'storeopenandclose'\" class=\"card-title emailalert align-items-start flex-column \">\r\n <div class=\"mt-6 mx-2 sub\" *ngFor=\"let alert of emailId\"><span class=\" mx-4\">\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label alerttext bg-light-primary text-primary me-2\">\r\n {{alert.slice(0,2).toUpperCase()}}</span>\r\n </div>\r\n </span><span class=\"mt-2\">{{alert}}</span></div>\r\n </h3> -->\r\n\r\n <h3 *ngIf=\"type === 'mobileusagedetection'\" class=\"card-title align-items-start flex-column \">\r\n <div class=\"card-label section-leftheading1 mt-4\">Detection Areas</div>\r\n\r\n <div class=\"mt-4 mx-2 sub\"><span *ngFor=\"let zone of configData?.checkListDetails?.detectionArea\"\r\n class=\"badge mx-2 mt-4 badge-light checklistlabel fs-base\">\r\n <i class=\"ki-duotone ki-arrow-up checklisttext\"></i>\r\n {{zone}}\r\n </span></div>\r\n </h3>\r\n\r\n\r\n </div>\r\n </div>\r\n <div class=\"col-xl-9\">\r\n <div class=\"card card-flush h-xl-100\">\r\n <div class=\"card-body px-7\">\r\n <div>\r\n <div>\r\n <h2 class=\"section-leftheading\">Schedule<span\r\n class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1874_66195)\">\r\n <path\r\n d=\"M8.00016 10.6673V8.00065M8.00016 5.33398H8.00683M14.6668 8.00065C14.6668 11.6826 11.6821 14.6673 8.00016 14.6673C4.31826 14.6673 1.3335 11.6826 1.3335 8.00065C1.3335 4.31875 4.31826 1.33398 8.00016 1.33398C11.6821 1.33398 14.6668 4.31875 14.6668 8.00065Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1874_66195\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span></h2>\r\n <div class=\"row\" *ngIf=\"type === 'mobileusagedetection'\">\r\n <div class=\"col-md-4 d-flex\">\r\n <span class=\"sub mt-2 mx-4\">From</span> \r\n <input class=\"form-control form-control-solid flatpickr-input w-200px\"\r\n (change)=\"updateTime('start')\" [(ngModel)]=\"startTime\"\r\n placeholder=\"Set store open time\" name=\"due_date\" type=\"time\">\r\n <!-- {{(checkListDetails?.scheduleStartTime | slice:0:30) + (checkListDetails.scheduleStartTime.length > 30 ? \"...\": \"\")}} -->\r\n </div>\r\n <div class=\"col-md-4 d-flex\">\r\n <span class=\"sub mt-3 mx-4\">To</span> \r\n <input class=\"form-control form-control-solid flatpickr-input w-200px\"\r\n (change)=\"updateTime('end')\" [(ngModel)]=\"endTime\" placeholder=\"Set store open time\"\r\n name=\"due_date\" type=\"time\">\r\n </div>\r\n <div class=\"separator mt-8\"></div>\r\n\r\n </div>\r\n <div *ngIf=\"['custom','uniformdetection'].includes(type)\">\r\n <div class=\"col-md-12 mt-6 mb-1\">\r\n <div class=\"row\">\r\n <div class=\"col-md-2 mt-3\">\r\n <span class=\"mx-6 sub\">For</span>\r\n </div>\r\n <div class=\"col-md-3 dropdown\">\r\n <select aria-hidden=\"true\"\r\n class=\"form-select form-select-lg select2-hidden-accessible ng-pristine ng-valid ng-touched\"\r\n [(ngModel)]=\"configData.checkListDetails.schedule\"\r\n (change)=\"updateSchedule($event)\">\r\n <option value=\"onetime\">Does Not Repeat</option>\r\n <option value=\"weekday\"> Every Weekday (Mon - Fri)</option>\r\n <option value=\"daily\">Daily</option>\r\n <option value=\"weekly\">Weekly</option>\r\n <option value=\"monthly\">Monthly</option>\r\n <option value=\"range\">Custom Range</option>\r\n </select>\r\n </div>\r\n <!-- <mat-radio-group class=\"d-flex mx-5 schedule\">\r\n <mat-radio-button (click)=\"selectType('Repeating')\" ngDefaultControl\r\n [checked]=\"configData?.checkListDetails?.schedule == 'repeat'\" value=\"repeat\"\r\n [ngClass]=\"configData?.checkListDetails?.schedule == 'repeat' ? 'active-template active':''\"\r\n [(ngModel)]=\"configData.checkListDetails.schedule\">\r\n <a data-kt-menu-trigger=\"click\" data-kt-menu-attach=\"parent\"\r\n data-kt-menu-placement=\"right-start\">Repeating</a>\r\n </mat-radio-button>\r\n \r\n\r\n <mat-radio-button class=\"mx-12\" (click)=\"selectType('Onetime')\" ngDefaultControl\r\n [checked]=\"configData?.checkListDetails?.schedule == 'onetime'\"\r\n [ngClass]=\"configData?.checkListDetails?.schedule == 'onetime' ? 'active-template active':''\"\r\n value=\"onetime\" [(ngModel)]=\"configData.checkListDetails.schedule\">\r\n <a data-kt-menu-trigger=\"click\" data-kt-menu-attach=\"parent\"\r\n data-kt-menu-placement=\"right-start\">One-time </a>\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <div class=\"col-md-3 mt-3\" *ngIf=\"configData?.checkListDetails?.schedule == 'repeat'\">\r\n <span class=\"mx-6 sub\">Repeats every</span>\r\n </div>\r\n <div class=\"col-md-3 dropdown\" *ngIf=\"configData?.checkListDetails?.schedule == 'repeat'\">\r\n <select aria-hidden=\"true\"\r\n class=\"form-select form-select-lg select2-hidden-accessible ng-pristine ng-valid ng-touched\"\r\n [(ngModel)]=\"configData.checkListDetails.scheduleRepeatedType\" (change)=\"updateDate()\">\r\n <option value=\"daily\" >\r\n Day\r\n </option>\r\n <option value=\"weekly\" > Week\r\n </option>\r\n <option value=\"monthly\" >\r\n Month</option>\r\n <option value=\"range\" >\r\n Range</option>\r\n <option value=\"weekly\" > Week</option>\r\n <option value=\"monthly\" >Month</option>\r\n\r\n </select>\r\n </div> -->\r\n <!-- <div class=\"col-md-3 mb-2 mt-4\">\r\n <span class=\"mx-6 sub\">Once On</span>\r\n </div> -->\r\n <!-- <div class=\"col-md-3 dropdown mt-0\">\r\n <div id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <app-date-range-picker name=\"app-range-picker\" type=\"single\" id=\"dateclass\" [scheduleDate]=\"configData?.checkListDetails?.scheduleDate\" (change)=\"setDate($event)\">\r\n </app-date-range-picker>\r\n </div>\r\n\r\n </div> -->\r\n <!-- <div class=\"col-md-2 d-flex\"></div> -->\r\n <div class=\"col-md-2 d-flex\">\r\n <span class=\"sub mt-3 mx-2\">At</span> \r\n <input class=\"form-control form-control-solid flatpickr-input w-200px\"\r\n (change)=\"updateTime('start')\" [(ngModel)]=\"startTime\"\r\n placeholder=\"Set store open time\" name=\"due_date\" type=\"time\">\r\n <!-- {{(checkListDetails?.scheduleStartTime | slice:0:30) + (checkListDetails.scheduleStartTime.length > 30 ? \"...\": \"\")}} -->\r\n </div>\r\n <div class=\"col-md-2 d-flex\">\r\n <span class=\"sub mt-3 ms-5\">Ends</span> \r\n <input class=\"form-control form-control-solid flatpickr-input w-200px\"\r\n (change)=\"updateTime('end')\" [(ngModel)]=\"endTime\"\r\n placeholder=\"Set store open time\" name=\"due_date\" type=\"time\">\r\n </div>\r\n </div>\r\n <!-- *ngIf=\"particularweek == 'week'\" -->\r\n <!-- <div class=\"row mt-2\"\r\n *ngIf=\"configData.checkListDetails.schedule == 'weekly'\">\r\n\r\n <ul class=\"nav nav-pills d-flex flex-nowrap pt-5\" role=\"tablist\">\r\n <span class=\"nav-item me-2 mx-9 sub\">On</span> \r\n <ng-container *ngFor=\"let day of ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\">\r\n <li class=\"nav-item me-1\" role=\"presentation\" (click)=\"setDay(day)\">\r\n <a class=\"nav-link btn weekstyle d-flex flex-column flex-center rounded-pill min-w-45px me-2 py-4 px-3 \"\r\n [ngClass]=\"selectedDays.includes(day) ? 'active btn-active-primary' : ''\"\r\n data-bs-toggle=\"tab\" aria-selected=\"false\" tabindex=\"-1\" role=\"tab\">\r\n <span class=\"pillstyle\">{{ day[0] }}</span>\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul> \r\n </div> -->\r\n <!-- *ngIf=\"particularweek == 'month'\" -->\r\n <!-- <div class=\"row col-lg-12 mt-5 mx-1\"\r\n *ngIf=\"configData?.checkListDetails?.schedule == 'repeat' && configData.checkListDetails.scheduleRepeatedType == 'monthly'\">\r\n <div class=\"col-md-3 d-flex\">\r\n <span class=\"sub mt-3 mx-2\">On</span> \r\n <div id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <app-date-range-picker name=\"app-range-picker\" type=\"single\" id=\"dateclass\"\r\n (change)=\"dateChanged($event)\" [scheduleDate]=\"configData?.checkListDetails?.scheduleDate\">\r\n </app-date-range-picker>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 mt-3 d-flex\">\r\n <mat-radio-group class=\"d-flex mx-2 schedule\">\r\n <mat-radio-button class=\"p-1\" (click)=\"setMonthDate('date')\" ngDefaultControl\r\n [checked]=\"configData?.checkListDetails?.scheduleRepeatedMonthSetup == 'date'\"\r\n value=\"Repeating\">\r\n <a data-kt-menu-trigger=\"click\" data-kt-menu-attach=\"parent\"\r\n data-kt-menu-placement=\"right-start\"\r\n >{{monthDate}} of every\r\n month</a>\r\n </mat-radio-button>\r\n \r\n\r\n <mat-radio-button class=\"p-1\" (click)=\"setMonthDate('day')\" ngDefaultControl\r\n [checked]=\"configData?.checkListDetails?.scheduleRepeatedMonthSetup == 'day'\">\r\n <a data-kt-menu-trigger=\"click\" data-kt-menu-attach=\"parent\"\r\n data-kt-menu-placement=\"right-start\"\r\n >{{MonthweekNumber}}\r\n {{monthDay}} of every month </a>\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"configData?.checkListDetails?.schedule == 'repeat' && configData.checkListDetails.scheduleRepeatedType == 'range'\">\r\n <div class=\"row col-lg-12 d-flex mt-5 mx-1\"> \r\n <div class=\"col-md-2 d-flex\">\r\n <span class=\"sub mt-3 mx-2\">Starts from</span>\r\n </div>\r\n <div class=\"col-md-3 px-0 pe-3\" id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <app-date-range-picker name=\"app-range-picker-start\" type=\"single\" id=\"dateclass\"\r\n (change)=\"dateRangeStart($event)\" [scheduleDate]=\"rangeStart\">\r\n </app-date-range-picker>\r\n </div>\r\n <div class=\"col-md-3 d-flex\">\r\n <span class=\"sub mt-3 mx-2\">At</span> \r\n <input class=\"form-control form-control-solid flatpickr-input w-200px\" (change) =\"updateTime('start')\"\r\n [(ngModel)]=\"startTime\"\r\n placeholder=\"Set store open time\" name=\"due_date\" type=\"time\">\r\n {{(checkListDetails?.scheduleStartTime | slice:0:30) + (checkListDetails.scheduleStartTime.length > 30 ? \"...\": \"\")}}\r\n </div>\r\n </div>\r\n <div class=\"row col-lg-12 d-flex mt-5 mx-1\">\r\n <div class=\"col-md-2 d-flex\">\r\n <span class=\"sub mt-3 mx-2\">Ends on</span>\r\n </div>\r\n <div class=\"col-md-3 px-0 pe-3\" id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <app-date-range-picker name=\"app-range-picker-end\" type=\"single\" id=\"dateclass\"\r\n (change)=\"dateRangeEnd($event)\" [scheduleDate]=\"rangeEnd\" [scheduleEndDate]=\"rangeStart\">\r\n </app-date-range-picker>\r\n </div>\r\n <div class=\"col-md-3 d-flex\">\r\n <span class=\"sub mt-3 mx-2\">At</span> \r\n <input class=\"form-control form-control-solid flatpickr-input w-200px\" (change) =\"updateTime('end')\"\r\n [(ngModel)]=\"endTime\"\r\n placeholder=\"Set store open time\" name=\"due_date\" type=\"time\">\r\n </div>\r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n <!-- Checklist config starts -->\r\n <div class=\"justify-content-between mt-4\">\r\n <div class=\"config-heading\">Checklist Configuration</div>\r\n <div *ngIf=\"configData.checkListDetails.schedule === 'onetime'\">\r\n <div class=\"row col-lg-12 d-flex mt-5\">\r\n <div class=\"col-md-2 d-flex\">\r\n <span class=\"sub mt-3\">Once On</span>\r\n </div>\r\n <div class=\"col-md-3 px-4 pe-3\" id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <!-- <app-date-range-picker name=\"app-range-picker-start\" type=\"single\"\r\n id=\"dateclass1\" (change)=\"dateRangeStart($event)\"\r\n [scheduleDate]=\"configData.checkListDetails.scheduleDate\">\r\n </app-date-range-picker> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"configData.checkListDetails.schedule !== 'onetime'\">\r\n <div class=\"form-check form-switch mt-6\">\r\n <input type=\"checkbox\" id=\"rangeDate\"\r\n class=\"form-check-input ng-valid ng-dirty ng-touched\"\r\n [(ngModel)]=\"showRangeValue\"\r\n [disabled]=\"configData.checkListDetails?.schedule === 'range'\"\r\n (change)=\"updateDateValue($event)\">\r\n <label for=\"rangeDate\" class=\"form-check-label checklisttext ms-2\">Set defined\r\n date range</label>\r\n </div>\r\n <div class=\"row col-lg-12 d-flex mt-5\" *ngIf=\"showRangeValue\">\r\n <div class=\"col-md-2 d-flex\">\r\n <span class=\"sub mt-3\">Starts from</span>\r\n </div>\r\n <div class=\"col-md-3 px-4 pe-3\" id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <!-- <app-date-range-picker name=\"app-range-picker-start\" type=\"single\"\r\n id=\"dateclass2\" (change)=\"dateRangeStart($event)\"\r\n [scheduleDate]=\"configData.checkListDetails.configStartDate\">\r\n </app-date-range-picker> -->\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 mt-8 ng-star-inserted\">\r\n <div class=\"row\" *ngIf=\"configData.checkListDetails.schedule !== 'range'\">\r\n <div class=\"col-md-2 mt-2\">\r\n <span class=\"sub\">Repeats every</span>\r\n </div>\r\n <div class=\"col-lg-6 d-flex\">\r\n <div class=\"fv-row mb-5 fv-plugins-icon-container d-flex flex-column\">\r\n <input type=\"text\" autocomplete=\"off\" required=\"\"\r\n class=\"form-control form-control-solid w-100px ng-pristine ng-invalid ng-touched\"\r\n [(ngModel)]=\"configData.checkListDetails.scheduleRepeatedDay\"\r\n maxlength=\"2\" min=\"1\" (change)=\"updateRepeatDay()\">\r\n </div>\r\n <div\r\n class=\"fv-row mb-5 mx-2 fv-plugins-icon-container d-flex flex-column\">\r\n <input type=\"text\" autocomplete=\"off\"\r\n class=\"form-control form-control-solid w-100px ng-pristine ng-invalid ng-touched\"\r\n [(ngModel)]=\"repeatType\" readonly>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"configData.checkListDetails.schedule === 'monthly'\">\r\n <div class=\"col-md-12 ng-star-inserted\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2\">\r\n\r\n </div>\r\n <div class=\"col-lg-6 d-flex\">\r\n <div class=\"mt-3\">\r\n <div class=\"form-check\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" value=\"day\" [checked]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup === 'day'\" (change)=\"updateMonth('day')\">\r\n <label class=\"cursor-pointer\" for=\"inlineRadio1\">On Day</label>\r\n </div>\r\n <!-- <mat-radio-button value=\"option1\" class=\"checklisttext\"\r\n name=\"monthRadio\"\r\n [checked]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup === 'day'\"\r\n (change)=\"updateMonth('day')\">On Day</mat-radio-button> -->\r\n </div>\r\n <div\r\n class=\"fv-row mb-5 ps-18 fv-plugins-icon-container d-flex flex-column\">\r\n <input type=\"text\" autocomplete=\"off\"\r\n class=\"form-control form-control-solid w-100px\"\r\n [ngClass]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup !== 'day' ? 'disabled' : ''\"\r\n [(ngModel)]=\"configData.checkListDetails.scheduleRepeatedMonthWeek\"\r\n (change)=\"updateValue($event)\"\r\n [disabled]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup !== 'day'\"\r\n maxLength=\"2\" (input)=\"validate($event)\">\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 ng-star-inserted\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2\">\r\n\r\n </div>\r\n <div class=\"col-lg-2 mt-3\">\r\n <div class=\"form-check\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" value=\"day\"\r\n [checked]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup === 'date'\" (change)=\"updateMonth('date')\">\r\n <label class=\"cursor-pointer\" for=\"inlineRadio1\">On the</label>\r\n </div>\r\n <!-- <mat-radio-button value=\"option1\" class=\"checklisttext\"\r\n name=\"monthRadio\"\r\n [checked]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup === 'date'\"\r\n (change)=\"updateMonth('date')\">On the</mat-radio-button> -->\r\n </div>\r\n <div class=\"col-lg-6 d-flex dropdown\">\r\n <div\r\n class=\"fv-row mb-5 ps-20 fv-plugins-icon-container d-flex flex-column\">\r\n <select\r\n class=\"form-select form-select-lg select2-hidden-accessible ng-pristine ng-valid ng-touched\"\r\n [(ngModel)]=\"monthDate\"\r\n [disabled]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup !== 'date'\">\r\n <option value=\"1\"> First </option>\r\n <option value=\"2\"> Second </option>\r\n <option value=\"3\"> Third</option>\r\n <option value=\"4\"> Fourth</option>\r\n <option value=\"5\"> Last</option>\r\n </select>\r\n </div>\r\n <div\r\n class=\"fv-row mb-5 mx-2 fv-plugins-icon-container d-flex flex-column\">\r\n <select\r\n class=\"form-select form-select-lg select2-hidden-accessible ng-pristine ng-valid ng-touched\"\r\n [(ngModel)]=\"monthDay\"\r\n [disabled]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup !== 'date'\">\r\n <option value=\"Sunday\"> Sunday </option>\r\n <option value=\"Monday\"> Monday </option>\r\n <option value=\"Tuesday\"> Tuesday</option>\r\n <option value=\"Wednesday\"> Wednesday</option>\r\n <option value=\"Thursday\"> Thursday</option>\r\n <option value=\"Friday\">Friday</option>\r\n <option value=\"Saturday\"> Saturday</option>\r\n\r\n </select>\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 ng-star-inserted\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2\">\r\n </div>\r\n <div class=\"col-lg-6 d-flex\">\r\n <div class=\"form-check\">\r\n <input formControlName=\"descriptivetype\" class=\"form-check-input cursor-pointer\" type=\"radio\" value=\"day\"\r\n [checked]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup === 'specific'\" (change)=\"updateMonth('specific')\">\r\n <label class=\"cursor-pointer\" for=\"inlineRadio1\">On Specific Dates</label>\r\n </div>\r\n <!-- <mat-radio-group class=\"d-flex mt-3\">\r\n <mat-radio-button\r\n [checked]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup === 'specific'\"\r\n value=\"option1\" class=\"checklisttext\" name=\"specific\"\r\n (change)=\"updateMonth('specific')\">On Specific\r\n Dates</mat-radio-button>\r\n <mat-radio-button value=\"option2\">Option 2</mat-radio-button>\r\n </mat-radio-group> -->\r\n <div class=\"px-4 pe-3 position-relative\"\r\n (clickOutside)=\"closeDropDown()\">\r\n <div class=\"dropdown-close\">\r\n <div class=\"w-100\">\r\n <div\r\n class=\"d-flex align-items-center position-relative w-100\">\r\n <span\r\n class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#667085\" stroke-width=\"1.66667\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input type=\"text\"\r\n class=\"form-control dropdown-input ps-14\"\r\n (click)=\"toggleDropDown()\" readonly\r\n placeholder=\"Select Dates\"\r\n [disabled]=\"configData.checkListDetails?.scheduleRepeatedMonthSetup !== 'specific'\" />\r\n </div>\r\n </div>\r\n <div class=\"dropdown-menu custom-dropdown-menu w-100\"\r\n *ngIf=\"showDropDown\">\r\n <div class=\"calendar-container\">\r\n <div class=\"content\">\r\n <div class=\"dates\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"row d-flex\">\r\n <!-- Loop through dates -->\r\n <div class=\"col-2 mb-2\"\r\n *ngFor=\"let date of dates\">\r\n <li class=\"nav-item me-1\"\r\n role=\"presentation\"\r\n (click)=\"selectDate(date)\">\r\n <a class=\"nav-link btn weekstyledate d-flex flex-column flex-center rounded-pill min-w-35px py-2 px-3 \"\r\n [ngClass]=\"selectedDate.includes(date) ? 'active btn-active-primary' : ''\"\r\n data-bs-toggle=\"tab\"\r\n aria-selected=\"false\"\r\n tabindex=\"-1\"\r\n role=\"tab\">\r\n <span\r\n class=\"pillstyle\">{{\r\n date }}</span>\r\n </a>\r\n </li>\r\n <!-- <div class=\"p-2 text-center\">{{ date }}</div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"button ms-2\"\r\n (click)=\"submitDate();showDropDown= false;\">\r\n <button\r\n class=\"btn btn-primary btn-block w-100\">\r\n Submit\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2\">\r\n </div>\r\n <div class=\"col-lg-6 py-3 badge-specificdate\">\r\n <div class=\"d-flex mt-3 flex-wrap\">\r\n <span *ngFor=\"let date of submittedDates\"\r\n class=\"badge badge-pill badge-light checklisttext me-4\">\r\n {{ getDateWithSuffix(date) }}\r\n <span (click)=\"removeBadge(date)\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\"\r\n height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 ng-star-inserted\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2\">\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div\r\n *ngIf=\"['weekday','weekly'].includes(configData.checkListDetails.schedule)\">\r\n <ul class=\"nav nav-pills d-flex flex-nowrap\" role=\"tablist\">\r\n\r\n <ng-container\r\n *ngFor=\"let day of ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday']\">\r\n <li class=\"nav-item me-1\" role=\"presentation\"\r\n (click)=\"(configData.checkListDetails.schedule === 'weekly' || (configData.checkListDetails.schedule === 'weekday' && !['Sunday','Saturday'].includes(day))) ? setDay(day) : ''\">\r\n <a class=\"nav-link btn weekstyle d-flex flex-column flex-center rounded-pill min-w-45px me-2 py-4 px-3\"\r\n [ngClass]=\"(configData.checkListDetails.schedule === 'weekday' && ['Sunday','Saturday'].includes(day)) ? 'cursor-default' : selectedDays.includes(day) ? 'active btn-active-primary' : ''\"\r\n data-bs-toggle=\"tab\" aria-selected=\"false\" tabindex=\"-1\"\r\n role=\"tab\">\r\n <span class=\"pillstyle\">{{ day[0] }}</span>\r\n </a>\r\n </li>\r\n </ng-container>\r\n </ul>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"configData.checkListDetails.schedule === 'range'\">\r\n <div class=\"col-md-12 ng-star-inserted\">\r\n <div class=\"row\">\r\n\r\n <div class=\"col-lg-6 d-flex\">\r\n <div class=\"form-check form-switch mt-6\">\r\n <input type=\"checkbox\" id=\"flexSwitchCheckDefault\"\r\n class=\"form-check-input ng-valid ng-dirty ng-touched\"\r\n [(ngModel)]=\"specific\" (change)=\"updateSpecific($event)\">\r\n <label for=\"flexSwitchCheckDefault\"\r\n class=\"form-check-label checklisttext ms-2\">On Specific\r\n Dates</label>\r\n </div>\r\n\r\n <div class=\"px-4 pe-3\" id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <!-- <app-date-range-picker name=\"app-range-picker-specific\"\r\n type=\"single\" id=\"dateclass3\" (change)=\"dateSpecific($event)\"\r\n [selectedList]=\"selectedDateList\"\r\n [scheduleDate]=\"configData.checkListDetails.configStartDate\"\r\n [scheduleStartDate]=\"configData.checkListDetails.configStartDate\"\r\n [random]=true [disabled]=\"!specific\"\r\n [endDate]=\"configData.checkListDetails.configEndDate\">\r\n </app-date-range-picker> -->\r\n </div>\r\n </div>\r\n <div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-2\">\r\n </div>\r\n <div class=\"col-lg-6 py-3 badge-specificdate\">\r\n <div class=\"d-flex mt-3 ms-10 flex-wrap\">\r\n <span *ngFor=\"let date of selectedDateList\"\r\n class=\"badge badge-pill badge-light checklisttext me-4\">\r\n {{ date }}\r\n <span (click)=\"removeDate(date)\" class=\"cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\"\r\n height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\">\r\n <path d=\"M9 3L3 9M3 3L9 9\" stroke=\"#667085\"\r\n stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 mt-4 ng-star-inserted\"\r\n [hidden]=\"!showRangeValue || configData.checkListDetails.schedule === 'onetime'\">\r\n <div class=\"row\">\r\n <div class=\"col-md-2 mt-2\">\r\n <span class=\"sub\">Ends On</span>\r\n </div>\r\n <div class=\"col-lg-6 d-flex\">\r\n <div class=\"pe-3\" id=\"dateclass\" data-kt-daterangepicker=\"true\"\r\n data-kt-daterangepicker-opens=\"left\">\r\n <!-- <app-date-range-picker name=\"app-range-picker-end\" type=\"single\"\r\n id=\"dateclass4\" (change)=\"dateRangeEnd($event)\"\r\n [scheduleDate]=\"updateSceduleDate()\" [resetPicker]=\"refreshPicker\"\r\n [scheduleEndDate]=\"configData.checkListDetails.configStartDate\">\r\n </app-date-range-picker> -->\r\n <!-- <app-date-range-picker name=\"app-range-picker-end\" type=\"single\" id=\"dateclass4\"\r\n (change)=\"dateRangeEnd($event)\" [scheduleDate]=\"configData.checkListDetails.configEndDate\" [showEmpty]=\"true\" *ngIf=\"configData.checkListDetails.configEndDate == '' || configData.checkListDetails.configEndDate == null\">\r\n </app-date-range-picker> -->\r\n </div>\r\n <div class=\"mt-5 remove cursor-pointer\" (click)=\"onDatepickerRefresh()\"\r\n *ngIf=\"configData.checkListDetails.configEndDate !== '' && configData.checkListDetails.configEndDate !== null && configData.checkListDetails.schedule !=='range'\">\r\n Remove\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"my-3 user\" *ngIf=\"configData.checkListDetails?.schedule === 'onetime'\">Occurs on\r\n the day {{configData.checkListDetails?.scheduleDate | date:'dd MMM YYYY'}}</div>\r\n <div class=\"my-3 user\"\r\n *ngIf=\"['weekday','weekly'].includes(configData.checkListDetails?.schedule)\">Occurs\r\n every {{(configData.checkListDetails?.scheduleRepeatedDay?.length &&\r\n configData.checkListDetails?.scheduleRepeatedDay !=='01') ?\r\n configData.checkListDetails?.scheduleRepeatedDay : ''}} week<span\r\n *ngIf=\"configData.checkListDetails?.scheduleRepeatedDay !== 01\">s</span> on\r\n {{selectedDays.toString()}}<span *ngIf=\"showRangeValue\"> starting\r\n {{configData.checkListDetails?.configStartDate | date:'dd MMM YYYY'}} <span *ngIf=\"configData.checkListDetails?.configEndDate\">until{{configData.checkListDetails?.configEndDate | date:'dd MMM YYYY'}}</span></span></div>\r\n <div class=\"my-3 user\" *ngIf=\"configData.checkListDetails?.schedule === 'daily'\">Occurs every\r\n {{(configData.checkListDetails?.scheduleRepeatedDay?.length &&\r\n configData.checkListDetails?.scheduleRepeatedDay !== '01') ?\r\n configData.checkListDetails?.scheduleRepeatedDay : ''}} day<span\r\n *ngIf=\"configData.checkListDetails?.scheduleRepeatedDay !== 01\">s</span><span\r\n *ngIf=\"showRangeValue\"> starting {{configData.checkListDetails?.configStartDate |\r\n date:'dd MMM YYYY'}} <span *ngIf=\"configData.checkListDetails?.configEndDate \">until{{configData.checkListDetails?.configEndDate | date:'dd MMM YYYY'}}</span></span></div>\r\n <div class=\"my-3 user\" *ngIf=\"configData.checkListDetails?.schedule === 'monthly'\">Occurs\r\n every\r\n {{(configData.checkListDetails?.scheduleRepeatedDay?.length &&\r\n configData.checkListDetails?.scheduleRepeatedDay !== '01') ?\r\n configData.checkListDetails?.scheduleRepeatedDay : ''}} month<span *ngIf=\"configData.checkListDetails?.scheduleRepeatedDay !== 01\">s</span>{{(configData.checkListDetails?.scheduleRepeatedMonthSetup === 'day') ? ('on day ' + configData.checkListDetails.scheduleRepeatedMonthWeek) : configData.checkListDetails?.scheduleRepeatedMonthSetup === 'date' ? updateMonthValue():\r\n updateSpecificValue()}}<span *ngIf=\"showRangeValue\"> starting {{configData.checkListDetails?.configStartDate | date:'dd MMM YYYY'}} <span\r\n *ngIf=\"configData.checkListDetails?.configEndDate\">until\r\n {{configData.checkListDetails?.configEndDate | date:'dd MMM YYYY'}}</span></span></div>\r\n <div class=\"my-3 user\" *ngIf=\"configData.checkListDetails?.schedule === 'range'\">Occurs every\r\n {{configData.checkListDetails?.scheduleWeekDays?.toString()}} <span\r\n *ngIf=\"showRangeValue\"> starting {{configData.checkListDetails?.configStartDate |\r\n date:'dd MMM YYYY'}} <span *ngIf=\"configData.checkListDetails?.configEndDate\">until\r\n {{configData.checkListDetails?.configEndDate | date:'dd MMM YYYY'}}</span></span></div>\r\n\r\n\r\n </div>\r\n <!-- Checklist config ends -->\r\n\r\n\r\n <!-- Response config starts -->\r\n <div class=\"section-left\">\r\n <div>\r\n <div class=\"d-flex align-items-center justify-content-between mt-4\">\r\n <div class=\"config-heading\">Response Configuration</div>\r\n <hr class=\"mx-2\">\r\n <svg class=\"cursor-pointer\" (click)=\"configaccordian()\"\r\n [ngClass]=\"{'rotate' : showconfig}\" xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"35\" height=\"35\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"showconfig\">\r\n <div cdkDropList>\r\n <!-- [cdkDropListData]=\"section.questions\" -->\r\n <div cdkDrag>\r\n <div class=\"col-lg-12\"\r\n [ngClass]=\"['onetime','daily'].includes(configData?.checkListDetails.schedule) || (configData?.checkListDetails.schedule === 'monthly' && configData?.checkListDetails.scheduleRepeatedMonthSetup !=='specific') ? 'bg-color-disabled' : ''\">\r\n <div *ngIf=\"['custom','uniformdetection'].includes(type)\"\r\n class=\"fv-row checklistturnoff mt-4 fv-plugins-icon-containe\">\r\n <div class=\"form-check form-switch\">\r\n <input class=\"form-check-input mt-3\"\r\n [checked]=\"configData?.checkListDetails?.allowOnce ? true : false\"\r\n [(ngModel)]=\"configData.checkListDetails.allowOnce\"\r\n [ngModelOptions]=\"{standalone: true}\" type=\"checkbox\"\r\n id=\"oneTime\"\r\n [disabled]=\"['onetime','daily'].includes(configData?.checkListDetails.schedule) || (configData?.checkListDetails.schedule === 'monthly' && configData?.checkListDetails.scheduleRepeatedMonthSetup !=='specific')\">\r\n <label class=\"form-check-label sub ms-2\" for=\"oneTime\">Only one\r\n time\r\n </label><br>\r\n <label class=\"form-check-label subtext ms-2\" for=\"oneTime\">By\r\n enabling this, the response can be captured only once for\r\n this checklist <span *ngIf=\"showRangeValue\">from\r\n {{configData.checkListDetails.configStartDate}} <span\r\n *ngIf=\"configData.checkListDetails.configEndDate\">to\r\n {{configData.checkListDetails.configEndDate}}.</span></span></label>\r\n </div>\r\n </div>\r\n <div class=\"fv-row checklistturnoff mt-4 fv-plugins-icon-containe\">\r\n <div>\r\n <div class=\"form-check form-switch\">\r\n <input class=\"form-check-input mt-3\"\r\n [checked]=\" configData?.checkListDetails?.allowedOverTime ? true : false\"\r\n [(ngModel)]=\"configData.checkListDetails.allowedOverTime\"\r\n [ngModelOptions]=\"{standalone: true}\" type=\"checkbox\"\r\n id=\"fillResponse\">\r\n <label class=\"form-check-label sub ms-2\"\r\n for=\"fillResponse\">Fill response after configure\r\n time.</label>\r\n <label class=\"form-check-label subtext ms-2\"\r\n for=\"fillResponse\">By enabling, the user can fill the\r\n checklist even after the above configured\r\n end-time.</label>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"['custom','uniformdetection'].includes(type)\"\r\n class=\"fv-row checklistturnoff mt-4 fv-plugins-icon-containe\">\r\n <div class=\"form-check form-switch\">\r\n <input class=\"form-check-input mt-3\"\r\n [checked]=\"configData?.checkListDetails?.allowedStoreLocation ? true : false\"\r\n [(ngModel)]=\"configData.checkListDetails.allowedStoreLocation\"\r\n [ngModelOptions]=\"{standalone: true}\" type=\"checkbox\"\r\n id=\"geoFencing\">\r\n <label class=\"form-check-label sub ms-2\" for=\"geoFencing\">Geo\r\n fencing\r\n </label><br>\r\n <label class=\"form-check-label subtext ms-2\" for=\"geoFencing\">By\r\n enabling, the checklist can be filled by the user only when\r\n inside the store.</label>\r\n </div>\r\n </div>\r\n <div *ngIf=\"['custom','uniformdetection'].includes(type)\"\r\n class=\"fv-row checklistturnoff mt-4 fv-plugins-icon-containe\">\r\n <div class=\"form-check form-switch\">\r\n <input class=\"form-check-input mt-3\"\r\n [checked]=\"configData?.checkListDetails?.allowedMultiSubmit ? true : false\"\r\n [(ngModel)]=\"configData.checkListDetails.allowedMultiSubmit\"\r\n [ngModelOptions]=\"{standalone: true}\" type=\"checkbox\"\r\n id=\"allowedMultiSubmitSwitch\">\r\n <label class=\"form-check-label sub ms-2\"\r\n for=\"allowedMultiSubmitSwitch\">Allow multiple\r\n responses</label><br>\r\n <label class=\"form-check-label subtext ms-2\"\r\n for=\"allowedMultiSubmitSwitch\">By enabling, the checklist\r\n can be filled multiple times in a day</label>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"separator mt-8\"></div>\r\n </div>\r\n <!-- Response config ends -->\r\n\r\n <div *ngIf=\"type === 'storeopenandclose'\" class=\"mt-6 mx-4 sub\">Store opens at <span\r\n class=\"fw-600\"><u>{{configData?.openTime}}</u></span> and closes\r\n at <span class=\"fw-600\"><u>{{configData?.closeTime}}</u></span>, everyday. <div\r\n class=\"separator mt-8\"></div>\r\n\r\n </div>\r\n <h2 *ngIf=\"type === 'mobileusagedetection' || type === 'storeopenandclose'\"\r\n class=\"section-leftheading mt-8\">Alerts<span\r\n class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1874_66195)\">\r\n <path\r\n d=\"M8.00016 10.6673V8.00065M8.00016 5.33398H8.00683M14.6668 8.00065C14.6668 11.6826 11.6821 14.6673 8.00016 14.6673C4.31826 14.6673 1.3335 11.6826 1.3335 8.00065C1.3335 4.31875 4.31826 1.33398 8.00016 1.33398C11.6821 1.33398 14.6668 4.31875 14.6668 8.00065Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1874_66195\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><span class=\"badge badgetext badge-light-warning mx-4 badgeColor\"><i\r\n class=\"ki-duotone ki-arrow-up fs-5 text-success ms-n1\"><span\r\n class=\"path1 badgeText\"></span><span class=\"path2 \"></span></i>Coming\r\n Soon</span></h2>\r\n <div *ngIf=\"type === 'mobileusagedetection'\" class=\"col-md-12 mt-8\">\r\n <div class=\"row mt-4\">\r\n <div class=\"col-md-3 mt-2 \">\r\n <span class=\"mx-4 sub\">If usage exceeds</span>\r\n </div>\r\n <div class=\"col-lg-1 mx-3\">\r\n <div class=\"fv-row mb-5 fv-plugins-icon-container flex flex-column\">\r\n\r\n <input class=\"form-control form-control-solid w-55px\"\r\n [(ngModel)]=\"configData?.checkListDetails.alert.usageExceeds\" type=\"text\"\r\n (keypress)=\"omit_special_char($event)\" autocomplete=\"off\" required\r\n minlength=\"2\" maxlength=\"3\" (blur)=\"validateLimit($event)\" />\r\n <span class=\"text-danger usageerror\" *ngIf=\"errormsg\">Please enter event count\r\n between 15 to 999</span>\r\n </div>\r\n </div>\r\n <div class=\"col-md-2 mt-2\">\r\n <span class=\"sub\">events</span>\r\n </div>\r\n <!-- <div class=\"col-md-3 mx-3\">\r\n <input class=\"form-control form-control-solid ps-12 flatpickr-input\"\r\n placeholder=\"Set store open time\" name=\"due_date\" type=\"time\">\r\n </div> -->\r\n </div>\r\n <!-- <div class=\"mx-4 mt-4 sub\">You can check the detections in <a\r\n href=\"/controlroom/across-stores\" class=\"text-active-primary\">\r\n Control Centre</a></div> -->\r\n </div>\r\n <div *ngIf=\"type === 'mobileusagedetection' || type === 'storeopenandclose'\"\r\n class=\"row ng-star-inserted\">\r\n <div class=\"col-lg-3\">\r\n <div class=\"d-flex align-items-center my-5\">\r\n <div class=\"flex-grow-1\">\r\n <div class=\"sub mx-4\">Send Alert to </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n <div class=\"col-lg-9\">\r\n <div class=\"fv-row fv-plugins-icon-container\">\r\n <!-- <form>\r\n <mat-form-field class=\"example-chip-list\" appearance=\"fill\">\r\n <mat-chip-list #chipGrid aria-label=\"Email selection\"\r\n [ngClass]=\"emailId.length > 4 ? 'matChip-store' : ''\">\r\n <mat-chip *ngFor=\"let email of emailId\" [removable]=\"true\"\r\n (removed)=\"removeEmail(email)\" style=\" margin-left: 15px;\">\r\n <div class=\"symbol symbol-25px symbol-circle\">\r\n <span\r\n class=\"symbol-label alerttext bg-light-primary text-primary me-2\">\r\n {{email.slice(0,2).toUpperCase()}}</span>\r\n </div>{{email}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input #emailInput [formControl]=\"email\" class=\"input\"\r\n [matChipInputFor]=\"chipGrid\" [matAutocomplete]=\"auto\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n tabindex=\"-1\" />\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selectedEmail($event)\" class=\"matWidth\">\r\n <mat-option *ngFor=\"let user of filteredEmail | async\"\r\n [value]=\"user.email\" [disabled]=\"emailId.includes(user.name)\">\r\n {{user.name}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form> -->\r\n </div>\r\n </div>\r\n\r\n </div>\r\n <div *ngIf=\"type === 'storeopenandclose'\">\r\n <div class=\"mx-4 subopen\">Late Open & Early close - it is still open till the configured\r\n time.</div>\r\n </div>\r\n <div *ngIf=\"type === 'mobileusagedetection' || type === 'storeopenandclose'\"\r\n class=\"mx-4 mt-2 detectiontext\">You can check the detections in <a\r\n (click)=\"navigateToControlCenter()\" class=\" text-active-primary\"><u> Control Centre</u>\r\n </a>\r\n <div class=\"separator mt-8\"></div>\r\n </div>\r\n\r\n <div *ngIf=\"type === 'mobileusagedetection'\">\r\n <h2 class=\"section-leftheading mt-8\">Detection Areas<span\r\n class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1874_66195)\">\r\n <path\r\n d=\"M8.00016 10.6673V8.00065M8.00016 5.33398H8.00683M14.6668 8.00065C14.6668 11.6826 11.6821 14.6673 8.00016 14.6673C4.31826 14.6673 1.3335 11.6826 1.3335 8.00065C1.3335 4.31875 4.31826 1.33398 8.00016 1.33398C11.6821 1.33398 14.6668 4.31875 14.6668 8.00065Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1874_66195\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span><span class=\"badge badgetext badge-light-warning mx-4 badgeColor\"><i\r\n class=\"ki-duotone ki-arrow-up fs-5 text-success ms-n1\"><span\r\n class=\"path1\"></span><span class=\"path2 \"></span></i>Coming Soon</span></h2>\r\n\r\n <div class=\"row ng-star-inserted\">\r\n <div class=\"col-lg-4\">\r\n <div class=\"d-flex align-items-center my-4\">\r\n <div class=\"flex-grow-1\">\r\n <div class=\"sub mx-4\"> Detect mobile usage except </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"col-lg-8\">\r\n <!-- <div class=\"fv-row fv-plugins-icon-container\">\r\n <form>\r\n <mat-form-field class=\"example-chip-list\" appearance=\"fill\">\r\n <mat-chip-list #chipGrid aria-label=\"Zone selection\"\r\n [ngClass]=\"zones.length > 4 ? 'matChip-store' : ''\">\r\n <mat-chip *ngFor=\"let zone of zones\" (removed)=\"remove(zone)\"\r\n style=\" margin-left: 15px;\">\r\n {{zone}}\r\n <button matChipRemove>\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n <input #zoneInput [formControl]=\"zone\" class=\"input\"\r\n [matChipInputFor]=\"chipGrid\" [matAutocomplete]=\"auto\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n tabindex=\"-1\" />\r\n </mat-chip-list>\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selected($event)\" class=\"matWidth\">\r\n <mat-option *ngFor=\"let zone of filteredzones | async\"\r\n [value]=\"zone\" [disabled]=\"zones.includes(zone)\">\r\n {{zone}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n </div> -->\r\n </div>\r\n\r\n </div>\r\n <div class=\"mx-4 detectiontext\">View Tagged Zones From <a\r\n (click)=\"navigateToControlCenter()\" class=\"text-active-primary\"><u>Control\r\n Centre</u></a></div>\r\n <div class=\"separator mt-8\"></div>\r\n\r\n </div>\r\n <!-- <div *ngIf=\"type == 'mobileusagedetection' || type == 'storeopenandclose'\"\r\n class=\"card-header border-0 pt-6\">\r\n <div class=\"card-title\">\r\n <div class=\"card-title align-items-start flex-column \"><span\r\n class=\"section-leftheading\">Add Store to Detect<span mat-raised-button\r\n #tooltip=\"matTooltip\" matTooltipClass=\"test\" matTooltipPosition=\"right\"\r\n class=\"mat-tooltip-trigger svg-icon svg-icon-primary svg-icon-1x\"\r\n matTooltipClass=\"custom-test\" matTooltip=\"Add the list of stores for which the policy needs to be set\" ng-reflect-message=\"Window Shopper\"\r\n aria-describedby=\"cdk-describedby-message-5\" class=\"mx-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_1874_66195)\">\r\n <path\r\n d=\"M8.00016 10.6673V8.00065M8.00016 5.33398H8.00683M14.6668 8.00065C14.6668 11.6826 11.6821 14.6673 8.00016 14.6673C4.31826 14.6673 1.3335 11.6826 1.3335 8.00065C1.3335 4.31875 4.31826 1.33398 8.00016 1.33398C11.6821 1.33398 14.6668 4.31875 14.6668 8.00065Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1874_66195\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"card-toolbar\" *ngIf=\"allstoreId.length\">\r\n <div class=\"d-flex me-3\" timeconfig data-kt-user-table-toolbar=\"base\"\r\n class=\"d-flex justify-content-end\">\r\n <button timeconfig type=\"button\" data-bs-toggle=\"modal\" (click)=\"newstore()\"\r\n data-bs-target=\"#kt_modal_add_user\" routerlinkactive=\"router-link-active\"\r\n class=\"btn btn-primary\" ng-reflect-router-link-active=\"router-link-active\"><span\r\n timeconfig class=\"svg-icon svg-icon-2\"></span> Add New Store</button>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-lg-9\" *ngIf=\"allstoreId.length\">\r\n <div class=\"fv-row fv-plugins-icon-container\">\r\n <form>\r\n <mat-form-field class=\"example-chip-list storechip\" appearance=\"fill\">\r\n <mat-chip-list #chipGrid aria-label=\"Store selection\" [ngClass]=\"storeId.length > 4 ? 'matChip-store' : ''\">\r\n <mat-chip *ngFor=\"let store of storeId\" [removable]=\"true\"\r\n (removed)=\"removeStore(store)\" style=\" margin-left: 15px;\">\r\n <div class=\"symbol symbol-25px symbol-circle\">\r\n <span class=\"symbol-label alerttext bg-light-primary text-primary me-2\">\r\n {{store.slice(0,2).toUpperCase()}}</span>\r\n </div>{{store}}\r\n <button matChipRemove attr.aria-label=\"'removeStore ' + store\">\r\n <mat-icon>cancel</mat-icon>\r\n </button>\r\n </mat-chip>\r\n </mat-chip-list>\r\n <input #storeInput [formControl]=\"store\" class=\"input\"\r\n [matChipInputFor]=\"chipGrid\" [matAutocomplete]=\"auto\"\r\n [matChipInputSeparatorKeyCodes]=\"separatorKeysCodes\"\r\n tabindex=\"-1\" />\r\n <mat-autocomplete #auto=\"matAutocomplete\"\r\n (optionSelected)=\"selectedStore($event)\" class=\"matWidth\">\r\n <mat-option value=\"select\">\r\n {{selectstoreText}}\r\n </mat-option>\r\n <mat-option *ngFor=\"let store of filteredStore | async\" [value]=\"store.store_id\"\r\n [disabled]=\"storeId.includes(store.storeName)\">\r\n {{store.storeName}}\r\n </mat-option>\r\n </mat-autocomplete>\r\n </mat-form-field>\r\n </form>\r\n </div>\r\n </div>\r\n </div> -->\r\n\r\n\r\n\r\n\r\n </div>\r\n </div>\r\n <!--start Assign Template -->\r\n <div>\r\n <!-- <div class=\"separator mt-8\"></div> -->\r\n <div *ngIf=\"!tableData.length && !tableFilter.length && showImage\">\r\n <!-- *ngIf=\"['custom','uniformdetection'].includes(type) && !tableData.length\" -->\r\n <h2 class=\"section-leftheading mt-8\">Assign<span\r\n class=\"mx-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1874_66195)\">\r\n <path\r\n d=\"M8.00016 10.6673V8.00065M8.00016 5.33398H8.00683M14.6668 8.00065C14.6668 11.6826 11.6821 14.6673 8.00016 14.6673C4.31826 14.6673 1.3335 11.6826 1.3335 8.00065C1.3335 4.31875 4.31826 1.33398 8.00016 1.33398C11.6821 1.33398 14.6668 4.31875 14.6668 8.00065Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1874_66195\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span></h2>\r\n\r\n <div class=\"row mb-6\">\r\n <!-- *ngIf=\"['custom','uniformdetection'].includes(type) && !tableData.length\" -->\r\n <div class=\"col-lg-12 assignpadding mb-10\">\r\n <div class=\"row\">\r\n <div class=\"uploadpadding\">\r\n <span class=\"mx-14\"><svg class=\"mx-20 mt-12\" width=\"56\" height=\"56\"\r\n 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=\"#D1FADF\" />\r\n <path\r\n d=\"M25.09 25C25.3251 24.3317 25.7892 23.7681 26.4 23.4091C27.0108 23.0502 27.7289 22.9189 28.4272 23.0387C29.1255 23.1585 29.7588 23.5215 30.2151 24.0635C30.6713 24.6055 30.9211 25.2915 30.92 26C30.92 28 27.92 29 27.92 29M28 33H28.01M38 28C38 33.5228 33.5228 38 28 38C22.4772 38 18 33.5228 18 28C18 22.4772 22.4772 18 28 18C33.5228 18 38 22.4772 38 28Z\"\r\n stroke=\"#039855\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#ECFDF3\"\r\n stroke-width=\"8\" />\r\n </svg>\r\n </span>\r\n <h5 class=\"section-leftheading mt-6 mx-10\">Upload to assign users</h5>\r\n <ul class=\"subtext mx-4\">\r\n <li>Click “Download Template”</li>\r\n <li> Add your data to the template file</li>\r\n <li> Upload it below to assign users</li>\r\n </ul>\r\n </div>\r\n <div class=\"col-lg-2\">\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <button #upload (click)=\"file.click()\" class=\"btn btn-primary reupload\">\r\n <span class=\"svg-icon svg-icon-primary \">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" class=\"mb-2 mx-1\" width=\"21\"\r\n height=\"20\" viewBox=\"0 0 19 19\" fill=\"none\">\r\n <path\r\n d=\"M18 12.5V15.8333C18 16.2754 17.8244 16.6993 17.5118 17.0118C17.1993 17.3244 16.7754 17.5 16.3333 17.5H4.66667C4.22464 17.5 3.80072 17.3244 3.48816 17.0118C3.17559 16.6993 3 16.2754 3 15.8333V12.5M14.6667 6.66667L10.5 2.5M10.5 2.5L6.33333 6.66667M10.5 2.5V12.5\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <!-- <label for=\"kt_account_team_size_select_1\">-->\r\n <span class=\"reuploadtext\">\r\n Upload Template\r\n </span>\r\n <!--</label> -->\r\n </button>\r\n <input style=\"visibility: hidden;\" type=\"file\" #file\r\n id=\"kt_account_team_size_select_1\" (change)=\"onFileUpload($event)\" />\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <button class=\"btn-light-primary download\" (click)=\"downloadTemplate()\"><span\r\n class=\"svg-icon svg-icon-primary\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" class=\"mb-1\" width=\"21\"\r\n 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.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span><span class=\"downloadtext\">Download Template</span></button>\r\n </div>\r\n <div class=\"col-lg-2\">\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"col-lg-2\">\r\n </div>\r\n </div>\r\n\r\n\r\n\r\n </div>\r\n <!-- <a (click)=\"inviteuser()\"\r\n class=\"btn btn-light-primary addstore\"><span\r\n class=\"svg-icon svg-icon-primary\">\r\n </span>Add User</a> -->\r\n\r\n <!-- (click)=\"store(add)\" -->\r\n <!-- <div class=\"col-lg-12\"\r\n *ngIf=\"type == 'mobileusagedetection' || type == 'storeopenandclose'\">\r\n <h5 class=\"section-leftheading mt-6 mx-20\">How to add store</h5>\r\n <ul class=\"subtext\">\r\n <li>Click on ‘Add Store’ button below\r\n </li>\r\n <li>Follow the instruction on the Add Store page</li>\r\n </ul>\r\n <a (click)=\"newstore()\" class=\"btn btn-light-primary addstore\"><span\r\n class=\"svg-icon svg-icon-primary \">\r\n </span>Add Store</a>\r\n </div> -->\r\n\r\n <div class=\"card\" *ngIf=\"tableData.length || tableFilter.length || !showImage\">\r\n <div class=\"card-header border-0 pt-6\" *ngIf=\"!showImage || tableData.length\">\r\n <div class=\"card-title\">\r\n <div class=\"card-title align-items-start flex-column \"><span\r\n class=\"section-leftheading\">Assign<span class=\"mx-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_1874_66195)\">\r\n <path\r\n d=\"M8.00016 10.6673V8.00065M8.00016 5.33398H8.00683M14.6668 8.00065C14.6668 11.6826 11.6821 14.6673 8.00016 14.6673C4.31826 14.6673 1.3335 11.6826 1.3335 8.00065C1.3335 4.31875 4.31826 1.33398 8.00016 1.33398C11.6821 1.33398 14.6668 4.31875 14.6668 8.00065Z\"\r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_1874_66195\">\r\n <rect width=\"16\" height=\"16\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>\r\n </span>\r\n <!-- <span class=\"subtitle mt-2\">Select stores to assign the checklist</span> -->\r\n </div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex align-items-center position-relative my-1 me-2\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-6\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\"\r\n rx=\"1\" transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\">\r\n </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\" data-kt-subscription-table-filter=\"search\"\r\n (change)=\"searchTableData()\" [(ngModel)]=\"tableFilter\"\r\n class=\"form-control form-control-solid w-400px ps-14 mx-1 me-4\"\r\n placeholder=\"Search by Store name\">\r\n <div class=\"d-flex justify-content-end\" data-kt-subscription-table-toolbar=\"base\">\r\n <a (click)=\"addStoreComponent()\" type=\"button\"\r\n class=\"btn btn-primary createbuttons px-4 ng-star-inserted\"\r\n style=\"white-space: nowrap;\" tabindex=\"0\"><span\r\n class=\"svg-icon svg-icon-2\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M10.0001 4.16602V15.8327M4.16675 9.99935H15.8334\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span><span class=\"create\">Add Store</span></a>\r\n </div>\r\n </div>\r\n <!-- <div timeconfig data-kt-user-table-toolbar=\"base\" class=\"d-flex justify-content-end\">\r\n <button timeconfig type=\"button\" data-bs-toggle=\"modal\" (click)=\"inviteuser()\"\r\n data-bs-target=\"#kt_modal_add_user\" routerlinkactive=\"router-link-active\"\r\n class=\"btn btn-primary\" ng-reflect-router-link-active=\"router-link-active\"><span\r\n timeconfig class=\"svg-icon svg-icon-2\"><svg timeconfig\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect timeconfig opacity=\"0.5\" x=\"11.364\" y=\"20.364\" width=\"16\"\r\n height=\"2\" rx=\"1\" transform=\"rotate(-90 11.364 20.364)\"\r\n fill=\"black\"></rect>\r\n <rect timeconfig x=\"4.36396\" y=\"11.364\" width=\"16\" height=\"2\" rx=\"1\"\r\n fill=\"black\"></rect>\r\n </svg></span> Invite User </button>\r\n </div> -->\r\n\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-2\">\r\n <div class=\"col-lg-12\" *ngIf=\"!tableData.length && !showImage\">\r\n <div class=\"card-body my-8 d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src\" src=\"./assets/tango/Icons/Nodata1.svg\" alt=\"\">\r\n <div class=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for users</div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body-sop pt-0 mx-4\" *ngIf=\"tableData.length\">\r\n <div class=\"row\" *ngIf=\"tableLoading\"\r\n style=\"padding: 20px;display: flex;justify-content: center;align-items: center;\">\r\n <div class=\"loader\">\r\n <svg viewBox=\"0 0 120 120\" version=\"1.1\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <circle class=\"load one\" cx=\"60\" cy=\"60\" r=\"40\" />\r\n <circle class=\"load two\" cx=\"60\" cy=\"60\" r=\"40\" />\r\n <circle class=\"load three\" cx=\"60\" cy=\"60\" r=\"40\" />\r\n <g>\r\n <circle class=\"point one\" cx=\"45\" cy=\"70\" r=\"5\" />\r\n <circle class=\"point two\" cx=\"60\" cy=\"70\" r=\"5\" />\r\n <circle class=\"point three\" cx=\"75\" cy=\"70\" r=\"5\" />\r\n </g>\r\n </svg>\r\n </div>\r\n <h5 class=\"text-gray-600 fw-bolder text-center\">Loading Data...</h5>\r\n </div>\r\n <!-- [hidden]=\"!tableData.length\" -->\r\n <div class=\"sopTable table-responsive\" *ngIf=\"tableData.length && !tableLoading\">\r\n <div class=\"table-responsive\">\r\n <table class=\"w-100 table bottom-border text-nowrap\">\r\n <thead>\r\n <tr>\r\n <th>\r\n <span><input class=\"form-check-input h-14px w-14px\" type=\"checkbox\" name=\"flag\" (change)=\"checkAll($event)\"\r\n [(ngModel)]=\"selectAll\"> <span class=\"form-check-label mx-4\" >StoreName</span></span>\r\n </th>\r\n <th>\r\n <span>Assigned To</span>\r\n </th>\r\n <th>\r\n <span >Email </span>\r\n </th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let data of tableData;let i=index\">\r\n <!-- (click)=\"storeView(obj)\" -->\r\n <td>\r\n <input class=\"form-check-input h-14px w-14px userFlag\" type=\"checkbox\" name=\"flag\"\r\n (change)=\"updateFlag($event,i,data)\"\r\n [checked]=\"configData?.checkListDetails?.assignedUsers.includes(data?.id)\" /><span class=\"form-check-label mx-4\">{{data.userName}}</span>\r\n </td>\r\n <td>{{data.storeName}}</td>\r\n <td>{{data.userEmail}}</td>\r\n </tbody>\r\n </table>\r\n </div>\r\n <lib-pagination [itemsPerPage]=\"recordsCount\" [currentPage]=\"currentValue\" [totalItems]=\"recordsTotal\"\r\n [paginationSizes]=\"paginationSize\" [pageSize]=\"recordsCount\" (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n <!-- <table mat-table [dataSource]=\"tableData\" class=\"border-gray-300\">\r\n <ng-container matColumnDef=\"name\">\r\n <th mat-header-cell *matHeaderCellDef style=\"min-width: 300px !important;\">\r\n <label\r\n class=\"form-check form-check-custom form-check-solid custom-checkbox me-10\">\r\n <input class=\"form-check-input h-14px w-14px\" type=\"checkbox\"\r\n name=\"flag\" (change)=\"checkAll($event)\" [(ngModel)]=\"selectAll\">\r\n <span class=\"form-check-label headeralign \">Store Name</span>\r\n </label>\r\n </th>\r\n <td mat-cell *matCellDef=\"let i=index;let element;\">\r\n <label\r\n class=\"form-check form-check-custom custom-checkbox form-check-solid me-10\">\r\n <input class=\"form-check-input h-14px w-14px userFlag\" type=\"checkbox\"\r\n name=\"flag\" (change)=\"updateFlag($event,i,element)\"\r\n [checked]=\"configData?.checkListDetails?.assignedUsers.includes(element.id)\" />\r\n <span\r\n class=\"form-check-label spocName tabsub mx-4\">{{element?.storeName}}</span>\r\n </label>\r\n </td>\r\n </ng-container>\r\n <ng-container matColumnDef=\"role\">\r\n <th mat-header-cell *matHeaderCellDef class=\"headeralign \"\r\n style=\"min-width: 130px !important;\">Assign To\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"><span\r\n class=\"tabsub\">{{element?.userName}}</span></td>\r\n </ng-container>\r\n\r\n <ng-container matColumnDef=\"email\">\r\n <th mat-header-cell *matHeaderCellDef class=\"headeralign\"\r\n style=\"min-width: 250px !important;\">Email\r\n </th>\r\n <td mat-cell *matCellDef=\"let element\"><span\r\n class=\"tabsub \">{{element?.userEmail}}</span></td>\r\n </ng-container>\r\n\r\n <tr mat-header-row *matHeaderRowDef=\"tableDisplayedColumns\"></tr>\r\n <tr mat-row *matRowDef=\"let row; columns: tableDisplayedColumns\"></tr>\r\n </table> -->\r\n </div>\r\n <br>\r\n </div>\r\n\r\n\r\n\r\n <div class=\"col-lg-12\">\r\n <div class=\"row mt-6 assignpadding\">\r\n <div class=\"col-lg-2\">\r\n\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <!-- (click)=\"Reupload()\" -->\r\n <!-- (click)=\"invitenewuser()\" -->\r\n <!-- (click)=\"Addstore()\" -->\r\n <button (click)=\"Reupload()\" class=\"btn btn-primary reupload\"\r\n *ngIf=\"!reupload\"><span class=\"svg-icon svg-icon-primary \"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" class=\"mb-2 mx-1\" width=\"21\"\r\n height=\"20\" viewBox=\"0 0 19 19\" fill=\"none\">\r\n <path\r\n d=\"M18 12.5V15.8333C18 16.2754 17.8244 16.6993 17.5118 17.0118C17.1993 17.3244 16.7754 17.5 16.3333 17.5H4.66667C4.22464 17.5 3.80072 17.3244 3.48816 17.0118C3.17559 16.6993 3 16.2754 3 15.8333V12.5M14.6667 6.66667L10.5 2.5M10.5 2.5L6.33333 6.66667M10.5 2.5V12.5\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <span class=\"reuploadtext\" *ngIf=\"!reupload\">Reupload Template</span>\r\n </button>\r\n <button (click)=\"file1.click()\" class=\"btn btn-primary reupload\" *ngIf=\"reupload\"\r\n id=\"reupload\">\r\n <span class=\"svg-icon svg-icon-primary \"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"mb-2 mx-1\" width=\"21\" height=\"20\" viewBox=\"0 0 19 19\"\r\n fill=\"none\">\r\n <path\r\n d=\"M18 12.5V15.8333C18 16.2754 17.8244 16.6993 17.5118 17.0118C17.1993 17.3244 16.7754 17.5 16.3333 17.5H4.66667C4.22464 17.5 3.80072 17.3244 3.48816 17.0118C3.17559 16.6993 3 16.2754 3 15.8333V12.5M14.6667 6.66667L10.5 2.5M10.5 2.5L6.33333 6.66667M10.5 2.5V12.5\"\r\n stroke=\"white\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <!-- <label for=\"kt_account_team_size_select_2\">-->\r\n <span class=\"reuploadtext\">\r\n Reupload Template\r\n </span>\r\n <!-- </label> -->\r\n </button>\r\n <input style=\"visibility: hidden;\" #file1 type=\"file\" id=\"kt_account_team_size_select_2\"\r\n (change)=\"onFileUpload($event)\" />\r\n </div>\r\n <div class=\"col-lg-4\">\r\n <button class=\"btn-light-primary download\" (click)=\"downloadTemplate()\"><span\r\n class=\"svg-icon svg-icon-primary\"><svg xmlns=\"http://www.w3.org/2000/svg\"\r\n class=\"mb-1\" width=\"21\" 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.5M5.83333 8.33333L10 12.5M10 12.5L14.1667 8.33333M10 12.5V2.5\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span><span class=\"downloadtext\">Download This CSV</span></button>\r\n </div>\r\n <div class=\"col-lg-2\">\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n\r\n <div class=\"row footer1 mt-10 mx-5\">\r\n <div class=\"text-dark\">\r\n <span class=\"text-dark footertext me-1\">Need help?</span>\r\n <a href=\"https://tangoeye.ai/\" target=\"_blank\" class=\"text-primary footertext text-hover-primary\"><u>Watch\r\n The Video Tutorial</u>\r\n </a>\r\n </div>\r\n </div>\r\n\r\n</div>","import { ChangeDetectorRef, Component, HostListener, Input, OnInit, Provider, forwardRef } from '@angular/core';\r\nimport { ControlValueAccessor, NG_VALUE_ACCESSOR } from '@angular/forms';\r\nimport { TraxService } from '../../services/trax.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 protected isDisabled: boolean;\r\n @Input() idField: string\r\n @Input() nameField: string\r\n @Input() label: string\r\n @Input() data: any\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: TraxService, 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.onChanged(this.selectedId)\r\n }\r\n\r\n @HostListener('document:click', ['$event'])\r\n onClick(event: MouseEvent) {\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\">\r\n {{selected?.[nameField].length > 30 ? selected?.[nameField].slice(0, 30) + '...': 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 { Component, Input, Output, EventEmitter, OnInit, OnChanges } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-pagination-v2',\r\n templateUrl: './pagination.component.html',\r\n styleUrl: './pagination.component.scss'\r\n})\r\n\r\nexport class PaginationComponent implements OnChanges {\r\n @Input() totalItems: number = 0; // Total number of items\r\n @Input() itemsPerPage: number = 10; // Items per page\r\n @Input() currentPage: number = 1; // Current active page\r\n @Output() pageChanged: EventEmitter<number> = new EventEmitter<number>(); // Emit page change\r\n\r\n totalPages: number = 0; // Total number of pages\r\n maxVisiblePages = 5; // Number of visible pages at once\r\n visiblePages: any[] = []; // Pages to display in the pagination component\r\n\r\n ngOnChanges(): void {\r\n this.totalPages = Math.ceil(this.totalItems / this.itemsPerPage);\r\n this.visiblePages = this.getVisiblePages();\r\n }\r\n\r\n selectPage(page: number) {\r\n if (page >= 1 && page <= this.totalPages) {\r\n this.pageChanged.emit(page); // Emit the selected page to the parent component\r\n }\r\n }\r\n\r\n // Pagination logic with ellipses\r\n getVisiblePages(): any[] {\r\n const pages = [];\r\n const maxVisible = this.maxVisiblePages;\r\n\r\n if (this.totalPages <= maxVisible) {\r\n // If total pages are less than or equal to max visible, show all pages\r\n for (let i = 1; i <= this.totalPages; i++) {\r\n pages.push(i);\r\n }\r\n } else {\r\n if (this.currentPage <= 2) {\r\n // Near the start\r\n pages.push(1, 2, 3, '...', this.totalPages);\r\n } else if (this.currentPage >= this.totalPages - 1) {\r\n // Near the end\r\n pages.push(1, '...', this.totalPages - 2, this.totalPages - 1, this.totalPages);\r\n } else {\r\n // Middle pages with ellipses\r\n pages.push(1, '...', this.currentPage - 1, this.currentPage, this.currentPage + 1, '...', this.totalPages);\r\n }\r\n }\r\n return pages;\r\n }\r\n}\r\n","<nav>\r\n <ul class=\"pagination justify-content-center\">\r\n <!-- Previous Button -->\r\n <li class=\"page-item\" [class.disabled]=\"currentPage === 1\">\r\n <a class=\"page-link\" (click)=\"selectPage(currentPage - 1)\" aria-label=\"Previous\">\r\n <span aria-hidden=\"true\">«</span>\r\n </a>\r\n </li>\r\n \r\n <!-- Page Numbers with Ellipses -->\r\n <li *ngFor=\"let page of visiblePages\" class=\"page-item\" \r\n [class.active]=\"page === currentPage\" \r\n [class.disabled]=\"page === '...'\">\r\n <a class=\"page-link\" *ngIf=\"page !== '...'; else ellipsis\" (click)=\"selectPage(page)\">\r\n {{ page }}\r\n </a>\r\n <ng-template #ellipsis><span class=\"page-link\">...</span></ng-template>\r\n </li>\r\n \r\n <!-- Next Button -->\r\n <li class=\"page-item\" [class.disabled]=\"currentPage === totalPages\">\r\n <a class=\"page-link\" (click)=\"selectPage(currentPage + 1)\" aria-label=\"Next\">\r\n <span aria-hidden=\"true\">»</span>\r\n </a>\r\n </li>\r\n </ul>\r\n </nav>\r\n ","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { FormBuilder, FormGroup } from '@angular/forms';\r\nimport dayjs, { Dayjs } from \"dayjs\";\r\nimport utc from 'dayjs/plugin/utc';\r\ndayjs.extend(utc);\r\nimport { TimePeriod } from 'ngx-daterangepicker-material/daterangepicker.component';\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { TraxService } from '../../services/trax.service';\r\nimport { Subject, debounceTime, distinctUntilChanged, filter, takeUntil } from \"rxjs\";\r\n\r\n@Component({\r\n selector: 'lib-gallery',\r\n templateUrl: './gallery.component.html',\r\n styleUrl: './gallery.component.scss'\r\n})\r\nexport class GalleryComponent implements OnInit, OnDestroy {\r\n dayjs = dayjs\r\n selectedDateRange: any = {};\r\n isCustomDate = (m: dayjs.Dayjs) => {\r\n const isValidDate = m > this.dayjs();\r\n return isValidDate ? 'invalid-date' : false;\r\n }\r\n galleryForm: FormGroup\r\n type: any = [{ value: 'checklist', label: 'Checklist' },\r\n // {value:'task', label:'Task'}\r\n ]\r\n checklists: any = [{ sourceCheckList_id: 'storeopenandclose', checkListName: 'Store open and close' },\r\n { sourceCheckList_id: 'mobileusagedetection', checkListName: 'Mobile usage detection' },\r\n { sourceCheckList_id: 'eyetest', checkListName: 'Eye Test' }]\r\n answerType = [\r\n { label: 'All Answer Type', value: 'all' },\r\n { label: 'Descriptive Answer', value: 'descriptive' },\r\n { label: 'A/B Question', value: 'yes/no' },\r\n { label: 'Multiple Choice Question - Single Answer', value: 'multiplechoicesingle' },\r\n { label: 'Multiple Choice Question - Multiple Answer', value: 'multiplechoicemultiple' },\r\n { label: 'Capture Image as answer', value: 'image' },\r\n { label: 'Capture video as answer', value: 'video' },\r\n { label: 'Capture Multiple Image', value: 'multipleImage' },\r\n { label: 'Date As Answer', value: 'date' }\r\n ]\r\n headerFilters: any;\r\n storeList: any[] = []\r\n private destroy$ = new Subject();\r\n checklistData: any = {}\r\n stores: any;\r\n items: any;\r\n paginatedItems: any;\r\n itemsPerPage = 10;\r\n currentPage = 1;\r\n totalItems = 0;\r\n viewChecklistsData: any;\r\n loading:boolean =true;\r\n noData:boolean =false;\r\n viewloading:boolean =true;\r\n viewnoData:boolean =false;\r\n constructor(private fb: FormBuilder, private gs: GlobalStateService, private traxService: TraxService, private cd: ChangeDetectorRef) {\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 ngOnInit(): void {\r\n this.createForm();\r\n this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (data: any) => {\r\n if (data?.client) {\r\n this.headerFilters = data;\r\n\r\n this.stores = this.headerFilters.stores\r\n this.galleryForm.get('storeList')?.setValue(this.stores)\r\n\r\n this.selectedDateRange.endDate = this.dayjs(this.headerFilters?.date?.endDate).utc().format(\"DD-MM-YYYY\");\r\n this.getAllStores();\r\n this.getAllCheckLists()\r\n this.getChecklistQA();\r\n }\r\n\r\n },\r\n });\r\n\r\n }\r\n onStartDateChange(event: any) {\r\n if (this.dayjs(event.startDate).isValid()) {\r\n this.isCustomDate = (m: dayjs.Dayjs) => {\r\n const isValidDate =\r\n m > this.dayjs() || m > this.dayjs(event.startDate.add(90, \"days\"));\r\n return isValidDate ? \"invalid-date\" : false;\r\n };\r\n }\r\n }\r\n createForm() {\r\n\r\n this.galleryForm = this.fb.group({\r\n fromDate: [this.dayjs().subtract(1, 'day').format('YYYY-MM-DD')],\r\n toDate: [this.dayjs().format('YYYY-MM-DD')],\r\n type: ['checklist'],\r\n checklistType: ['storeopenandclose'],\r\n storeList: [this.stores],\r\n answerType: ['all'],\r\n viewFlaggedOnly: [false]\r\n })\r\n }\r\n\r\n datechange(event: TimePeriod) {\r\n if (!event.endDate || !event.startDate) {\r\n return\r\n }\r\n\r\n this.galleryForm.get('fromDate')?.setValue(event.startDate.format('YYYY-MM-DD'))\r\n this.galleryForm.get('toDate')?.setValue(event.endDate.format('YYYY-MM-DD'))\r\n }\r\n\r\n getAllStores() {\r\n this.traxService.getStores({ clientId: this.headerFilters.client }).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.storeList = res.data.result;\r\n } else {\r\n this.storeList = [];\r\n }\r\n },\r\n error: () => {\r\n this.storeList = [];\r\n },\r\n });\r\n }\r\n\r\n getAllCheckLists() {\r\n let stores = this.stores.map((data:any)=>data.storeId)\r\n const payload = {\r\n fromDate: this.galleryForm.get('fromDate')?.value,\r\n toDate: this.galleryForm.get('toDate')?.value,\r\n storeId:stores,\r\n \"clientId\": \"11\"\r\n }\r\n this.traxService.getChecklists(payload).subscribe({\r\n next: (res: any) => {\r\n if (res && res.code == 200) {\r\n this.checklists = [...this.checklists,...res.data.checklistData];\r\n console.log(this.checklists)\r\n setTimeout(() => {\r\n this.galleryForm.get('checklistType')?.setValue(this.checklists[0]?.checkListName)\r\n this.cd.detectChanges()\r\n }, 0);\r\n } else {\r\n this.checklists = [];\r\n }\r\n\r\n },\r\n error: () => {\r\n this.checklists = [];\r\n },\r\n });\r\n }\r\n\r\n onStoreChecklistType(data:any){\r\n console.log(data)\r\n\r\n }\r\n\r\n onStoreSelect(event: any) {\r\n this.galleryForm.get('storeList')?.setValue(event)\r\n\r\n }\r\n select = 'openandclose'\r\n onSubmit() {\r\n if (this.galleryForm.value.checklistType === 'storeopenandclose') {\r\n this.select = 'openandclose'\r\n\r\n } else if (this.galleryForm.value.checklistType === 'mobileusagedetection') {\r\n this.select = 'mobileusage';\r\n this.paginateItems();\r\n } else {\r\n this.select = this.galleryForm.value.type==='checklist'?\"custom\":\"\";\r\n // this.paginateItems();\r\n }\r\n console.log(this.select)\r\n this.getChecklistQA();\r\n }\r\n\r\n show: number = 0;\r\n accordian(index: any) {\r\n if (this.show == index) {\r\n this.show = -1;\r\n } else {\r\n this.show = index;\r\n\r\n }\r\n }\r\n // API Number: 1 (Checklist Questions)\r\n\r\n getChecklistQA() {\r\n this.loading =true;\r\n this.noData =false\r\n this.viewloading =true;\r\n this.viewnoData =false\r\n let stores = this.galleryForm.value.storeList.map((data: any) => data.storeId)\r\n console.log(this.galleryForm.value.checklistType)\r\n let obj = {\r\n \"ChecklistDate\": this.galleryForm.value.fromDate,\r\n \"ChecklistType\": this.galleryForm.value.type==='checklist'?\"custom\":\"\", // [\"checklist\", \"task\"]\r\n \"checklistName\": this.galleryForm.value.checklistType,\r\n \"storeId\": stores,\r\n \"answerType\": this.galleryForm.value.answerType, //[\"descriptive\",\"yes/no\",\"multiplechoicesingle\",\"multiplechoicemultiple\",\"image\",\"video\",\"descriptiveImage\",\"multipleImage\"]\r\n \"viewFlag\": this.galleryForm.value.viewFlaggedOnly //[true, false]\r\n }\r\n\r\n\r\n this.traxService.getchecklist(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (res: any) => {\r\n if (res&&res.code === 200) {\r\n this.checklistData = res?.data;\r\n console.log(this.checklistData.checklistQuestions[0])\r\n this.viewloading =false;\r\n this.viewnoData =false;\r\n this.viewChecklists(\"all\",\"all\")\r\n }else{\r\n this.checklistData = [];\r\n this.viewChecklistsData = [];\r\n this.loading =false;\r\n this.noData =true;\r\n this.viewloading =false;\r\n this.viewnoData=true;\r\n }\r\n }\r\n })\r\n\r\n\r\n \r\n }\r\n viewChecklists(sectionName:any,questionName:any){\r\n this.loading =true;\r\n this.noData =false\r\n console.log(sectionName,questionName)\r\n let stores = this.galleryForm.value.storeList.map((data: any) => data.storeId)\r\n console.log(this.galleryForm.value.checklistType)\r\n let obj = {\r\n \"ChecklistDate\": this.galleryForm.value.fromDate,\r\n \"ChecklistType\": this.galleryForm.value.type==='checklist'?\"custom\":\"\", // [\"checklist\", \"task\"]\r\n \"checklistName\": this.galleryForm.value.checklistType,\r\n \"storeId\": stores,\r\n \"answerType\": this.galleryForm.value.answerType, //[\"descriptive\",\"yes/no\",\"multiplechoicesingle\",\"multiplechoicemultiple\",\"image\",\"video\",\"descriptiveImage\",\"multipleImage\"]\r\n \"sectionName\": sectionName,\r\n \"qname\":questionName\r\n }\r\n\r\n\r\n this.traxService.viewChecklists(obj)?.pipe(takeUntil(this.destroy$))?.subscribe({\r\n next: (res: any) => {\r\n if (res&&res.code === 200) {\r\n this.viewChecklistsData = res.data;\r\n this.loading =false;\r\n this.noData =false\r\n }else{\r\n this.viewChecklistsData = []\r\n this.loading =false;\r\n this.noData =true\r\n }\r\n }\r\n })\r\n }\r\n exportXLSX() {\r\n\r\n }\r\n\r\n taskCreate() { }\r\n\r\n redo() { }\r\n\r\n showsidenav: boolean = true;\r\n sidenav() {\r\n this.showsidenav = !this.showsidenav;\r\n }\r\n\r\n onPageChange(page: number) {\r\n this.currentPage = page;\r\n this.updatePaginatedItems();\r\n }\r\n\r\n paginateItems(): void {\r\n this.items = 1;\r\n this.totalItems = this.items;\r\n this.updatePaginatedItems();\r\n }\r\n\r\n updatePaginatedItems() {\r\n const startIndex = (this.currentPage - 1) * this.itemsPerPage;\r\n const endIndex = startIndex + this.itemsPerPage;\r\n this.paginatedItems = this.items.slice(startIndex, endIndex);\r\n }\r\n}\r\n","<div class=\"gallery-card\">\r\n <div class=\"header mb-4\">Gallery</div>\r\n\r\n <form [formGroup]=\"galleryForm\">\r\n <div class=\"row\">\r\n <div class=\"col-md-11\">\r\n <div class=\"row\">\r\n <div class=\"col-md-2 mb-3\">\r\n <div class=\"position-relative\">\r\n <span style=\"top: 20%;\" class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 100px !important;\"\r\n type=\"text\" matInput ngxDaterangepickerMd [singleDatePicker]=\"true\" [drops]=\"'down'\"\r\n [opens]=\"'right'\" [alwaysShowCalendars]=\"false\" [keepCalendarOpeningWithRange]=\"true\"\r\n [showCancel]=\"false\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\"\r\n [ngModelOptions]=\"{standalone: true}\" (startDateChanged)=\"onStartDateChange($event)\"\r\n [isCustomDate]=\"isCustomDate\" [autoApply]=\"true\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"type\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"type\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"checklistType\" [idField]=\"'checkListName'\"\r\n [nameField]=\"'checkListName'\" [data]=\"checklists\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-select [items]=\"storeList\" [disabled]=\"false\" [multi]=\"true\" [searchField]=\"'storeName'\"\r\n [idField]=\"'storeId'\" (selected)=\"onStoreSelect($event)\"\r\n [selectedValues]=\"galleryForm.get('storeList')?.value\"></lib-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <lib-reactive-select formControlName=\"answerType\" [idField]=\"'value'\" [nameField]=\"'label'\"\r\n [data]=\"answerType\"></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-2 mb-4\">\r\n <div class=\"h-100 d-flex align-items-center\">\r\n <div class=\"mb-3\">\r\n <span class=\"d-flex align-items-center\">\r\n <input formControlName=\"viewFlaggedOnly\" change type=\"checkbox\"\r\n class=\"form-check-input cursor-pointer mt-1 me-4\" id=\"viewFlaggedOnly\">\r\n <label class=\"checkbox-label\" for=\"viewFlaggedOnly\">View flagged only</label> </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-1\">\r\n <div class=\"d-flex justify-content-center\">\r\n <a (click)=\"onSubmit()\" type=\"submit\" class=\"btn btn-primary px-4 \"><span>Apply</span></a>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </form>\r\n</div>\r\n<div class=\"row my-5\">\r\n <div [ngClass]=\"showsidenav ? 'col-md-4':'d-none'\">\r\n <div class=\"card position-relative h-100\">\r\n <div class=\"card-body p-5\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">{{this.galleryForm.value.checklistType}}</div>\r\n <div class=\"checklist-text\">Now that we’ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div *ngIf=\"viewloading\" 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=\"viewnoData\" 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/Nodata1.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n <section *ngIf=\"!viewnoData && !viewloading\">\r\n <div class=\"view-all my-6\" style=\"cursor: pointer;\" (click)=\"viewChecklists('all','all')\" >\r\n View All Answers\r\n </div>\r\n <div class=\"mx-2\" *ngFor=\"let section of checklistData.checklistQuestions; let i=index;\">\r\n <div class=\"d-flex align-items-center justify-content-between mt-4\" style=\"cursor: pointer;\" (click)=\"viewChecklists(section.sectionName,'all')\">\r\n <div class=\"fs-4 fw-bold section\">{{section.sectionName}}</div>\r\n <hr class=\"mx-2\">\r\n <svg (click)=\"accordian(i)\" class=\"cursor-pointer\" [ngClass]=\"{'rotate' : show !== i}\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"25\" height=\"25\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n <div *ngIf=\"show===i\" class=\"question-left\">\r\n <div cdkDropList [cdkDropListData]=\"section.questions\">\r\n\r\n <div *ngFor=\"let question of section.questions;let j=index;\" class=\"my-2 q-btn\" cdkDrag>\r\n\r\n <div class=\"editablecontent\" style=\"cursor: pointer;\" (click)=\"viewChecklists(section.sectionName,question?.qname)\">\r\n {{question.qno}} . {{question.qname}}\r\n </div>\r\n\r\n </div>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </section>\r\n </div>\r\n\r\n <div class=\"card-body p-5\" *ngIf=\"select ==='mobileusage'\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">Mobile Usage Detection</div>\r\n <div class=\"checklist-text\">Now that we’ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div class=\"view-all my-6\">\r\n All Detections\r\n </div>\r\n </div>\r\n\r\n <div class=\"card-body p-5\" *ngIf=\"select ==='eyetest'\">\r\n <div class=\"checklist-left\">\r\n <div class=\"checklist-title\">Eye Test</div>\r\n <div class=\"checklist-text\">Now that we’ve covered the fundamentals of what a retail opening\r\n procedure</div>\r\n </div>\r\n <div class=\"view-all my-6\">\r\n All Detections\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"showsidenav\" (click)=\"sidenav()\" class=\"backButtonright text-center pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <path d=\"M11 17L6 12L11 7M18 17L13 12L18 7\" stroke=\"#101828\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </div>\r\n </div>\r\n </div>\r\n <div [ngClass]=\"showsidenav ? 'col-md-8':'col-md-12'\">\r\n <div class=\"card position-relative h-100\">\r\n <div *ngIf=\"!showsidenav\" (click)=\"sidenav()\" class=\"backButtonleft mt-10 pt-1 cursor-pointer\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" 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 </div>\r\n <div class=\"card-header\" *ngIf=\"select ==='openandclose' || select ==='mobileusage' || select ==='eyetest'\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n\r\n </h3>\r\n\r\n <!-- Switch toggle -->\r\n <div class=\"card-toolbar\">\r\n <div class=\"col-md-12 text-end\">\r\n <button type=\"button\" (click)=\"exportXLSX()\"\r\n class=\"btn btn-light-primary1 mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n 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=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div *ngIf=\"this.select==='custom'\">\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/Nodata1.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div> \r\n <section *ngIf=\"!loading && !noData\" >\r\n <div *ngFor=\"let checklist of viewChecklistsData?.checklistAnswers\">\r\n <div class=\"text-center\">\r\n <img class=\"mt-5 mb-3 text-center\" src=\"assets/tango/Images/checklist-logo-img.svg\">\r\n </div>\r\n\r\n <div class=\"row px-10 mt-5\">\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Store Name:</h3>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <p class=\"uni-subtitle\">{{checklist?.storeProfile?.storeName}} |\r\n {{checklist?.storeProfile?.state}} {{checklist?.storeProfile?.Country}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Checklist Name:</h3>\r\n </div>\r\n <div class=\"col-md-9\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.checklistName}}</p>\r\n </div>\r\n\r\n <ng-container>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">State & Country :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.storeProfile?.state}}\r\n {{checklist?.storeProfile?.Country}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Duration :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.duration}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">No. of Questions :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.noofQuestions}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Date :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.date}}</p>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <h3 class=\"uni-title\">Submitted By :</h3>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <p class=\"uni-subtitle\">{{checklist?.checklistInfo?.submittedBy}}</p>\r\n </div>\r\n <div class=\"col-md-2\">\r\n <h3 class=\"uni-title\">Time :</h3>\r\n </div>\r\n <div class=\"col-md-3\">\r\n <p class=\"uni-subtitle\"> {{checklist?.checklistInfo?.time}}</p>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n\r\n\r\n <div class=\"row px-10 mt-5\">\r\n\r\n <div class=\"qa-bodrer my-3\" *ngFor=\"let questionlist of checklist.questionAnswer\">\r\n <div *ngFor=\"let question of questionlist.questions\">\r\n <ul>\r\n <li class=\"qa-heading\">{{question?.qno}}. {{question?.qname}}\r\n </li>\r\n\r\n\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='descriptive'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n </div>\r\n </div>\r\n\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='yes/no'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n <div *ngIf=\"item.validation\">\r\n <!-- <img src=\"{{item}}\"> -->\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"Partially my-3\" *ngIf=\"question?.answerType==='multiplechoicesingle'\">\r\n <div *ngFor=\"let item of question.userAnswer\">\r\n <span>{{item.answer}}</span>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='image'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='video'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Video</div>\r\n \r\n <video controls autoplay class=\"recap-img p-3\"src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\">\r\n </video>\r\n </div>\r\n </div>\r\n <div class=\"row\" *ngIf=\"question?.answerType==='multipleImage'\">\r\n <div class=\"col-md-6\" *ngIf=\"question.questionReferenceImage!=''\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{question.questionReferenceImage}}\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\"*ngFor=\"let item of question.userAnswer\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"https://dmrltd65ozcq0.cloudfront.net/{{item.answer}}\" alt=\"\">\r\n </div>\r\n </div>\r\n <!-- <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"redo()\"\r\n class=\"btn btn-outline btn-default btn-outline-default mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_2951_9176)\">\r\n <path\r\n d=\"M19.1693 3.33331V8.33332M19.1693 8.33332H14.1693M19.1693 8.33332L15.3026 4.69998C14.407 3.80391 13.299 3.14932 12.0819 2.79729C10.8649 2.44527 9.57853 2.40727 8.34284 2.68686C7.10716 2.96645 5.96244 3.55451 5.01549 4.39616C4.06855 5.23782 3.35024 6.30564 2.9276 7.49998M0.835938 16.6666V11.6666M0.835938 11.6666H5.83594M0.835938 11.6666L4.7026 15.3C5.59823 16.1961 6.70625 16.8506 7.92328 17.2027C9.14031 17.5547 10.4267 17.5927 11.6624 17.3131C12.898 17.0335 14.0428 16.4455 14.9897 15.6038C15.9367 14.7621 16.655 13.6943 17.0776 12.5\"\r\n stroke=\"#344054\" stroke-width=\"2\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2951_9176\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg><span class=\"ms-2\">Redo</span> </button>\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div> -->\r\n </ul>\r\n </div>\r\n\r\n </div>\r\n <!-- <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 2. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n \r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 3. Is the Facade Coweb/dust/mat free and well maintained?\r\n </li>\r\n <div class=\"Partially my-3\">Yes</div>\r\n <div class=\"task-remarks my-3\">Remarks : Wire Hanging</div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 4. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n <div class=\"Partially text-danger my-3\">Partially Agreed</div>\r\n <div class=\"task-remarks my-3\">Remarks : Wire Hanging</div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div>\r\n \r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n 5. Facade, Digital elements are intact?(Wire, Screen)\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-6\">\r\n <div class=\"title-ref my-3\">Reference Image</div>\r\n <img class=\"img-logo\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"title-ref my-3\">Uploaded Image</div>\r\n <img class=\"img-logo\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n <div class=\"text-end mt-5\">\r\n <button type=\"button\" (click)=\"taskCreate()\"\r\n class=\"btn btn-light-primary1 btn-outline-primary mx-2 rounded-3 text-nowrap border-val\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.6693 1.66675H5.0026C4.56058 1.66675 4.13665 1.84234 3.82409 2.1549C3.51153 2.46746 3.33594 2.89139 3.33594 3.33341V16.6667C3.33594 17.1088 3.51153 17.5327 3.82409 17.8453C4.13665 18.1578 4.56058 18.3334 5.0026 18.3334H15.0026C15.4446 18.3334 15.8686 18.1578 16.1811 17.8453C16.4937 17.5327 16.6693 17.1088 16.6693 16.6667V6.66675M11.6693 1.66675L16.6693 6.66675M11.6693 1.66675V6.66675H16.6693M10.0026 15.0001V10.0001M7.5026 12.5001H12.5026\"\r\n stroke=\"#009BF3\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg><span class=\"ms-2\">Task</span> </button>\r\n </div>\r\n </ul>\r\n </div> -->\r\n\r\n\r\n </div>\r\n </div>\r\n </section> \r\n </div>\r\n <div class=\"row px-10 my-5\" *ngIf=\"select ==='mobileusage'\">\r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n LKST001\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-12 my-2\">\r\n\r\n <img class=\"w-100 h-450px\" src=\"assets/tango/Images/unsplash_checklist.svg\" alt=\"\">\r\n </div>\r\n\r\n </div>\r\n\r\n </ul>\r\n </div>\r\n <div class=\"container my-4\">\r\n <lib-pagination-v2 [totalItems]=\"totalItems\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" (pageChanged)=\"onPageChange($event)\">\r\n </lib-pagination-v2>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row px-10 my-5\" *ngIf=\"select ==='eyetest'\">\r\n <div class=\"qa-bodrer my-3\">\r\n <ul>\r\n <li class=\"qa-heading\">\r\n LKST001\r\n </li>\r\n <div class=\"row\">\r\n <div class=\"col-md-12\">\r\n\r\n <video controls autoplay class=\"recap-img p-3\"\r\n src=\"https://tangoeye.ai/wp-content/uploads/videos/tango-main-video.mp4\">\r\n </video>\r\n </div>\r\n\r\n </div>\r\n\r\n </ul>\r\n </div>\r\n\r\n <div class=\"container my-4\">\r\n\r\n <lib-pagination-v2 [totalItems]=\"totalItems\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" (pageChanged)=\"onPageChange($event)\">\r\n </lib-pagination-v2>\r\n </div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subject, debounceTime, distinctUntilChanged, filter, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { TraxService } from '../../services/trax.service';\r\n\r\n@Component({\r\n selector: 'lib-dashboard',\r\n templateUrl: './dashboard.component.html',\r\n styleUrl: './dashboard.component.scss'\r\n})\r\nexport class DashboardComponent implements OnDestroy, OnInit {\r\n receivedData: string = \"checklist\";\r\n private detach = new Subject();\r\n private destroy$ = new Subject<void>();\r\n isExport: boolean = false;\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes:any[] = [];\r\n pageSize = 10\r\n sortColumName: string = '';\r\n sortBy: any = '';\r\n sortDirection: any = '';\r\n searchInput: any =\"\";\r\n checklistPerformance: any[] = [];\r\n storePerformanceData: any[] = [];\r\n userPerformanceData: any[] = [];\r\n searchDisabled: boolean = false;\r\n invoiceList: any[] = [];\r\n checklistLoading: boolean = true;\r\n checklistNoData: boolean = false;\r\n storePerformanceLoading: boolean = true;\r\n storePerformanceNoData: boolean = false;\r\n userPerformanceLoading: boolean = true;\r\n userPerformanceNoData: boolean = true;\r\n headerData: any;\r\n cardDataLoading: boolean = true;\r\n cardNoData: boolean = false;\r\n overallCardsData: any = {};\r\n currentTab: string = 'checklistPerformance';\r\n searchValue: string;\r\n limit: number;\r\n offset: number;\r\n constructor(private route: ActivatedRoute, private router: Router,public gs: GlobalStateService,private changeDetector: ChangeDetectorRef,private toast: ToastService,\r\n private TraxService: TraxService,\r\n ) { }\r\n ngOnDestroy(): void {\r\n this.detach.next(true);\r\n this.detach.complete();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$), debounceTime(300))\r\n .subscribe((data: any) => {\r\n \r\n \r\n this.headerData = data;\r\n console.log(\"headerData\", this.headerData);\r\n\r\n this.getOverallCardsData();\r\n this.route?.queryParams\r\n ?.pipe(takeUntil(this.detach))\r\n .subscribe((params) => {\r\n console.log(params.type);\r\n \r\n \r\n // if (params.type === \"checklist\") {\r\n // this.receivedData = \"checklist\";\r\n // this.getChecklistPerformanceData();\r\n // } else\r\n if (params.type === \"store\") {\r\n this.receivedData = \"store\";\r\n this.getStorePerformanceData();\r\n } else if (params.type === \"user\"){\r\n this.receivedData = \"user\";\r\n this.getUserPerformanceData();\r\n }\r\n else {\r\n this.receivedData = \"checklist\";\r\n this.getChecklistPerformanceData();\r\n }\r\n })\r\n // this.getChecklistPerformanceData();\r\n})\r\n \r\n \r\n\r\n }\r\n\r\n // Selecttabs(tab: string) {\r\n // // Navigate and update the queryParams dynamically\r\n // this.router.navigate([], {\r\n // relativeTo: this.route,\r\n // queryParams: { type: tab }, \r\n // queryParamsHandling: 'merge', \r\n // });\r\n // }\r\n\r\n Selecttabs(tab: string) {\r\n this.currentTab = tab;\r\n this.sortColumName = \"\",\r\n this.sortDirection = \"\",\r\n this.searchValue = \"\",\r\n this.limit = 10, \r\n this.offset= 1,\r\n this.pageSize = 10\r\n\r\n this.router.navigate([], {\r\n relativeTo: this.route,\r\n queryParams: { type: tab }, \r\n queryParamsHandling: 'merge', \r\n })\r\n switch (tab) {\r\n case 'checklistPerformance':\r\n this.getChecklistPerformanceData();\r\n break;\r\n case 'storePerformance':\r\n this.getStorePerformanceData();\r\n break;\r\n case 'userPerformance':\r\n this.getUserPerformanceData();\r\n break;\r\n // case 'exportPerformance':\r\n // this.onExport(); // Call export API\r\n // break;\r\n default:\r\n console.error('Invalid tab selected');\r\n }\r\n }\r\n \r\n\r\n getOverallCardsData(): void {\r\n this.cardDataLoading = true;\r\n this.cardNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId:this.headerData.client,\r\n };\r\n\r\n this.TraxService.getOverallCardsData(requestData).pipe(takeUntil(this.destroy$)).subscribe((response: any) => {\r\n this.cardDataLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.overallCardsData = response.data?.overallCards || {}; \r\n this.cardDataLoading = false;\r\n this.cardNoData = false;\r\n } else {\r\n this.overallCardsData = []\r\n this.cardDataLoading = false;\r\n this.cardNoData = true;\r\n }\r\n },\r\n error => {\r\n this.overallCardsData = []\r\n this.cardDataLoading = false;\r\n this.cardNoData = true;\r\n this.changeDetector.detectChanges()\r\n }\r\n );\r\n }\r\n\r\n getChecklistPerformanceData(): void {\r\n this.searchDisabled = true;\r\n this.checklistLoading = true;\r\n this.checklistNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId:this.headerData.client,\r\n limit: this.itemsPerPage, \r\n offset: this.currentPage - 1,\r\n sortBy: this.sortDirection,\r\n sortColumnName: this.sortColumName,\r\n searchValue: this.searchInput,\r\n // search: this.searchInput,\r\n // sort: this.sortColumName,\r\n // sortBy: this.sortDirection,\r\n // limit: this.itemsPerPage,\r\n // offset: this.currentPage -1,\r\n export: false,\r\n\r\n };\r\n\r\n this.TraxService.getChecklistPerformanceData(requestData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((response: any) => {\r\n this.checklistLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.checklistPerformance = response.data.checklistPerformance || [];\r\n this.totalItems = response.data.totalCount\r\n this.setPaginationSizes()\r\n this.checklistLoading = false;\r\n this.checklistNoData = false;\r\n this.searchDisabled = false;\r\n } else {\r\n this.checklistPerformance = [];\r\n this.checklistLoading = false;\r\n this.checklistNoData = true;\r\n this.searchDisabled = true;\r\n if (this.searchInput?.length) {\r\n this.searchDisabled = true\r\n }\r\n this.checklistPerformance = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n }, error => {\r\n this.checklistPerformance = []\r\n this.changeDetector.detectChanges()\r\n });\r\n }\r\n getStorePerformanceData(): void {\r\n this.searchDisabled = true;\r\n this.storePerformanceLoading = true;\r\n this.storePerformanceNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId: this.headerData.client,\r\n limit: this.itemsPerPage,\r\n offset: this.currentPage - 1,\r\n sortBy: this.sortDirection,\r\n sortColumnName: this.sortColumName,\r\n searchValue: this.searchInput,\r\n };\r\n this.TraxService.getStorePerformanceData(requestData).subscribe({\r\n next: (response: any) => {\r\n this.storePerformanceLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.storePerformanceData = response.data.storePerformance || [];\r\n this.totalItems = response.data.totalCount;\r\n // this.storePerformanceLoading = false;\r\n this.setPaginationSizes()\r\n this.storePerformanceLoading = false;\r\n this.storePerformanceNoData = false;\r\n this.searchDisabled = false;\r\n } else {\r\n this.storePerformanceData = [];\r\n // this.totalItems = 0;\r\n this.storePerformanceLoading = false;\r\n this.storePerformanceNoData = true;\r\n this.searchDisabled = true;\r\n if (this.searchInput?.length) {\r\n this.searchDisabled = true\r\n }\r\n this.storePerformanceData = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n },\r\n error: () => {\r\n this.storePerformanceData = [];\r\n this.changeDetector.detectChanges()\r\n // this.storePerformanceLoading = false;\r\n }\r\n });\r\n }\r\n getUserPerformanceData(): void {\r\n this.searchDisabled = true;\r\n this.userPerformanceLoading = true;\r\n this.userPerformanceNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId: this.headerData.client,\r\n limit: this.itemsPerPage,\r\n offset: this.currentPage - 1,\r\n sortBy: this.sortDirection,\r\n sortColumnName: this.sortColumName,\r\n searchValue: this.searchInput,\r\n };\r\n \r\n this.TraxService.getUserPerformanceData(requestData).subscribe({\r\n next: (response: any) => {\r\n this.userPerformanceLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.userPerformanceData = response.data.userPerformance || [];\r\n this.totalItems = response.data.totalCount;\r\n this.setPaginationSizes()\r\n this.userPerformanceLoading = false; \r\n this.userPerformanceNoData = false;\r\n this.searchDisabled = false;\r\n } else {\r\n this.userPerformanceData = [];\r\n this.userPerformanceLoading = false; \r\n this.userPerformanceNoData = true;\r\n this.searchDisabled = true;\r\n if (this.searchInput?.length) {\r\n this.searchDisabled = true\r\n }\r\n this.userPerformanceData = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n },\r\n error: () => {\r\n this.userPerformanceData = [];\r\n this.changeDetector.detectChanges()\r\n }\r\n });\r\n }\r\n \r\n\r\n onExport(): void {\r\n this.currentPage = 0;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n // storeId: [\"11-253\", \"11-511\",\"11-1176\"],\r\n clientId:this.headerData.client,\r\n limit: 10000, \r\n offset: this.currentPage,\r\n sortBy: this.sortDirection,\r\n sortColumnName: this.sortColumName,\r\n searchValue: this.searchInput,\r\n export: true\r\n // search: this.searchInput,\r\n // sort: this.sortColumName,\r\n // sortBy: this.sortDirection,\r\n // limit: 10000,\r\n // offset: this.currentPage,\r\n \r\n };\r\n switch (this.receivedData) {\r\n case 'checklist':\r\n this.TraxService.getChecklistPerformanceDataExport(requestData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.TraxService.saveAsExcelFile(res, 'ChecklistPerformanceTable');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n });\r\n // this.getChecklistPerformanceData();\r\n break;\r\n case 'store':\r\n this.TraxService.getStorePerformanceDataExport(requestData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.TraxService.saveAsExcelFile(res, 'StorePerformanceTable');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n });\r\n // this.getStorePerformanceData();\r\n break;\r\n case 'user':\r\n\r\n this.TraxService.getUserPerformanceDataExport(requestData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.TraxService.saveAsExcelFile(res, 'UserPerformanceTable');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n });\r\n // this.getUserPerformanceData();\r\n break;\r\n // case 'exportPerformance':\r\n // this.onExport(); // Call export API\r\n // break;\r\n default:\r\n console.error('Invalid tab selected');\r\n }\r\n\r\n \r\n\r\n \r\n }\r\n searchField(): void {\r\n this.headerData.searchValue = this.searchInput;\r\n this.headerData.export = false;\r\n this.currentPage = 1;\r\n this.pageSize=10;\r\n switch (this.receivedData) {\r\n case 'checklist':\r\n this.getChecklistPerformanceData();\r\n break;\r\n case 'store':\r\n this.getStorePerformanceData();\r\n break;\r\n case 'user':\r\n this.getUserPerformanceData();\r\n break;\r\n // case 'exportPerformance':\r\n // this.onExport(); // Call export API\r\n // break;\r\n default:\r\n console.error('Invalid tab selected');\r\n }\r\n // this.getChecklistPerformanceData();\r\n }\r\n sortData(column: string): void {\r\n if (this.sortColumName === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumName = column;\r\n this.sortDirection = 1;\r\n }\r\n switch (this.receivedData) {\r\n case 'checklist':\r\n this.getChecklistPerformanceData();\r\n break;\r\n case 'store':\r\n this.getStorePerformanceData();\r\n break;\r\n case 'user':\r\n this.getUserPerformanceData();\r\n break;\r\n // case 'exportPerformance':\r\n // this.onExport(); // Call export API\r\n // break;\r\n default:\r\n console.error('Invalid tab selected');\r\n }\r\n }\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.itemsPerPage = pageSize;\r\n this.pageSize = pageSize;\r\n this.changeDetector.detectChanges();\r\n switch (this.receivedData) {\r\n case 'checklist':\r\n this.getChecklistPerformanceData();\r\n break;\r\n case 'store':\r\n this.getStorePerformanceData();\r\n break;\r\n case 'user':\r\n this.getUserPerformanceData();\r\n break;\r\n // case 'exportPerformance':\r\n // this.onExport(); // Call export API\r\n // break;\r\n default:\r\n console.error('Invalid tab selected');\r\n }\r\n // this.getChecklistPerformanceData()\r\n }\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = pageOffset\r\n switch (this.receivedData) {\r\n case 'checklist':\r\n this.getChecklistPerformanceData();\r\n break;\r\n case 'store':\r\n this.getStorePerformanceData();\r\n break;\r\n case 'user':\r\n this.getUserPerformanceData();\r\n break;\r\n // case 'exportPerformance':\r\n // this.onExport(); // Call export API\r\n // break;\r\n default:\r\n console.error('Invalid tab selected');\r\n }\r\n // this.getChecklistPerformanceData()\r\n }\r\n setPaginationSizes() {\r\n if (this.totalItems > 10) {\r\n this.paginationSizes = [10, 20, 30];\r\n } else {\r\n this.paginationSizes = [this.totalItems];\r\n this.pageSize = this.totalItems; // Just one option if less than 10\r\n }\r\n \r\n }\r\n}\r\n","<div class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-2 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">\r\n {{ overallCardsData.activeUnique ? overallCardsData.activeUnique.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n </span>\r\n <span class=\"cardtext\">Active Checklists</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"cardsubcount my-2\">\r\n {{ overallCardsData.totalInstances?.count ? overallCardsData.totalInstances.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n </div>\r\n <div class=\"cardtext\">Checklist Instances</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-5 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">\r\n {{ overallCardsData.notSubmittedInstances?.count ? overallCardsData.notSubmittedInstances.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n </span>\r\n <span class=\"cardtext\">Not Submitted Checklists</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"row h-100px py-3 px-3\">\r\n <div class=\"col-md-6\">\r\n <div class=\"cardsubcount my-2\">\r\n {{ overallCardsData.notSubmittedInstances?.open ? overallCardsData.notSubmittedInstances.open.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n </div>\r\n <div class=\"cardtext\">Open Checklists</div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"cardsubcount my-2\">\r\n {{ overallCardsData.notSubmittedInstances?.inprogress ? overallCardsData.notSubmittedInstances.inprogress.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n </div>\r\n <div class=\"cardtext\">In Progress Checklists</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n <div class=\"col-5 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">\r\n {{ overallCardsData.completedInstances?.count ? overallCardsData.completedInstances.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n </span>\r\n <span class=\"cardtext\">Submitted Checklists</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"row h-100px py-3 px-3\">\r\n <div class=\"col-md-4\">\r\n <div class=\"cardsubcount my-2\">\r\n {{ overallCardsData.completionScore?.count ? overallCardsData.completionScore.count : '--' }}%\r\n </div>\r\n <div class=\"cardtext\">Completion Score</div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"cardsubcount my-2\">\r\n {{ overallCardsData.complianceRate?.count ? overallCardsData.complianceRate.count : '--' }}%\r\n </div>\r\n <div class=\"cardtext\">Compliance Score</div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"cardsubcount my-2\">\r\n {{ overallCardsData.flags?.count ? overallCardsData.flags.count : '--' }}\r\n </div>\r\n <div class=\"cardtext\">Total Flags</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n</div>\r\n\r\n<div class=\"col-md-12 mt-4 card\">\r\n <div class=\"row\">\r\n <div class=\"d-flex overflow-auto p-7\">\r\n <ul\r\n class=\"nav nav-stretch nav-line-tabs1 nav-line-tabs-2x justify-content-center align-items-center border-transparent flex-nowrap\">\r\n <li class=\"nav-item cursor-pointer\" (click)=\"Selecttabs('checklist')\"\r\n [routerLink]=\"['/manage/trax/dashboard']\" [queryParams]=\"{ type: 'Checklist' }\">\r\n <a [ngClass]=\"receivedData === 'checklist'?'btn activebtn':''\" class=\"fw-semibold nav-link me-6\">\r\n Checklist Performance\r\n </a>\r\n </li>\r\n <li class=\"nav-item cursor-pointer\" (click)=\"Selecttabs('store')\" [routerLink]=\"['/manage/trax/store']\"\r\n [queryParams]=\"{ type: 'store' }\">\r\n <a [ngClass]=\"receivedData === 'store' || receivedData === 'Group Details Value'? 'btn activebtn':''\"\r\n class=\"nav-link me-6\">Store Performance\r\n </a>\r\n </li>\r\n <li class=\"nav-item cursor-pointer\" (click)=\"Selecttabs('user')\" [routerLink]=\"['/manage/trax/user']\"\r\n [queryParams]=\"{ type: 'user' }\">\r\n <a [ngClass]=\"receivedData === 'user' || receivedData === 'Group Details Value'? 'btn activebtn':''\"\r\n class=\"nav-link me-6\">User Performance\r\n </a>\r\n </li>\r\n </ul>\r\n </div>\r\n <div *ngIf=\"receivedData === 'checklist'\" class=\"col-lg-12\">\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\">Checklist Info</span>\r\n <span class=\"text-sub mb-2\"> Based on {{ headerData?.date?.startDate | date: 'MMM d' }} - {{\r\n headerData?.date?.endDate | date: 'MMM d, y' }}\r\n </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 footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n 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\">\r\n </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 <!-- [disabled]=\"searchDisabled\" -->\r\n <input [(ngModel)]=\"searchInput\" type=\"text\" class=\"form-control ps-14 ms-4 footfallsearch\"\r\n placeholder=\"Search by checklist\" autocomplete=\"off\" (keyup.enter)=\"searchField()\" />\r\n <button type=\"button\" (click)=\"onExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\"\r\n [disabled]=\"!checklistPerformance.length\">\r\n <!-- Export Icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n 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\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg>\r\n <span class=\"ms-2\"></span> Export\r\n </button>\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" type=\"button\" class=\"btn btn-primary ms-4 rounded-3 text-nowrap ng-star-inserted\"\r\n tabindex=\"0\"><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=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg><span class=\"ms-2 text-white\">Create Checklist</span></a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive\">\r\n <!-- *ngIf=\"!checklistLoading && !checklistNoData\" -->\r\n <table *ngIf=\"!checklistLoading && !checklistNoData\" class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Checklist Name</th>\r\n <th>Scheduled</th>\r\n <!-- <th>Coverage</th> -->\r\n <th class=\"cursor-pointer\" (click)=\"sortData('storeCount')\">Assigned To<svg\r\n [ngClass]=\"sortColumName === 'storeCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'storeCount' ? '#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)=\"sortData('submittedChecklist')\">Submitted<svg\r\n [ngClass]=\"sortColumName === 'submittedChecklist' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'submittedChecklist' ? '#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)=\"sortData('flaggedChecklist')\">Flags<svg\r\n [ngClass]=\"sortColumName === 'flaggedChecklist' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'flaggedChecklist' ? '#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)=\"sortData('checkListType')\">Tasks<svg\r\n [ngClass]=\"sortColumName === 'checkListType' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M8.00016 3.33337V12.6667M8.00016 12.6667L12.6668 8.00004M8.00016 12.6667L3.3335 8.00004\"\r\n [attr.stroke]=\"sortColumName === 'checkListType' ? '#00A3FF' : '#667085'\" stroke-width=\"1.33333\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th> -->\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let store of checklistPerformance\">\r\n <td>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">\r\n {{ store.checkListChar || '--' }}\r\n </span>\r\n </div>\r\n <span [routerLink]=\"['/manage/trax/info']\" [queryParams]=\"{ checklist: store.sourceCheckList_id, type: 'Checklist' }\" class=\"table-title-primary cursor-pointer\">{{ store.checkListName || '--' }}</span>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{ store.scheduleRepeatedType || '--' }}</div>\r\n </td>\r\n <!-- <td class=\"table-title-primary\">{{ store.checkListType || '--' }}</td> -->\r\n <td>\r\n <div class=\"table-title\">{{ store.storeCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title-primary\">{{ store.submittedChecklist?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title-primary\">{{ store.flaggedChecklist?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</div>\r\n </td>\r\n <!-- <td>\r\n <div class=\"table-title-primary\">{{ store.checkListType || '--' }}</div>\r\n </td> -->\r\n <td>\r\n <a class=\"cursor-pointer\" [routerLink]=\"['/manage/trax/info']\" [queryParams]=\"{ checklist: store.sourceCheckList_id, type: 'Checklist' }\" class=\"table-title\"><span>\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=\"M0.832031 9.99992C0.832031 9.99992 4.16536 3.33325 9.9987 3.33325C15.832 3.33325 19.1654 9.99992 19.1654 9.99992C19.1654 9.99992 15.832 16.6666 9.9987 16.6666C4.16536 16.6666 0.832031 9.99992 0.832031 9.99992Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.9987 12.4999C11.3794 12.4999 12.4987 11.3806 12.4987 9.99992C12.4987 8.61921 11.3794 7.49992 9.9987 7.49992C8.61799 7.49992 7.4987 8.61921 7.4987 9.99992C7.4987 11.3806 8.61799 12.4999 9.9987 12.4999Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span></a>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n \r\n <ng-container *ngIf=\"checklistLoading\">\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=\"checklistNoData && !checklistLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div\r\n 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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!checklistLoading && !checklistNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"receivedData === 'store'\" class=\"col-lg-12\">\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\">Stores Info</span>\r\n <span class=\"text-sub mb-2\"> Based on {{ headerData?.date?.startDate | date: 'MMM d' }} - {{\r\n headerData?.date?.endDate | date: 'MMM d, y' }}\r\n </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 footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n 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\">\r\n </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 <!-- [disabled]=\"searchDisabled\" -->\r\n <input [(ngModel)]=\"searchInput\" type=\"text\" class=\"form-control ps-14 ms-4 footfallsearch\"\r\n placeholder=\"Search by checklist\" autocomplete=\"off\" (keyup.enter)=\"searchField()\" />\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" type=\"button\" class=\"btn btn-primary ms-4 rounded-3 text-nowrap ng-star-inserted\"\r\n tabindex=\"0\"><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=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg><span class=\"ms-2 text-white\">Create Checklist</span></a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive\">\r\n <!-- *ngIf=\"!checklistLoading && !checklistNoData\" -->\r\n <table *ngIf=\"!storePerformanceLoading && !storePerformanceNoData\" class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('storeName')\">Store Name<svg\r\n [ngClass]=\"sortColumName === 'storeName' && 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]=\"sortColumName === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th>Store Spoc</th>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('checkListCount')\">Checklist\r\n Assigned<svg\r\n [ngClass]=\"sortColumName === 'checkListCount' && 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]=\"sortColumName === 'checkListCount' ? '#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)=\"sortData('flaggedCount')\">Flags<svg\r\n [ngClass]=\"sortColumName === 'flaggedCount' && 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]=\"sortColumName === 'flaggedCount' ? '#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)=\"sortData('completion')\">Completion % <svg\r\n [ngClass]=\"sortColumName === 'completion' && 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]=\"sortColumName === 'completion' ? '#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)=\"sortData('compliance')\">Compliance %<svg\r\n [ngClass]=\"sortColumName === 'compliance' && 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]=\"sortColumName === 'compliance' ? '#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)=\"sortData('performance')\">Performance<svg\r\n [ngClass]=\"sortColumName === 'performance' && 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]=\"sortColumName === 'performance' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of storePerformanceData\">\r\n <td>\r\n <a [routerLink]=\"['/manage/trax/info']\" [queryParams]=\"{ store_id: item._id, type: 'store' }\" class=\"table-title-primary\">{{ item.storeName }}</a>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{ item.userEmail }}</div>\r\n </td>\r\n <td class=\"table-title\">{{ item.checkListCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</td>\r\n <td class=\"table-title\">{{ item.flaggedCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</td>\r\n <td>\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-2 \">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" class=\"bg-primary rounded h-5px\" [ngStyle]=\"{ width: item.completion + '%' }\"></div>\r\n </div>\r\n <div class=\"text-end\"><span class=\"my-1 mx-1 text-end\">{{ item.completion || '--' }}%</span></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-2 \">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" class=\"bg-primary rounded h-5px\" [ngStyle]=\"{ width: item.compliance + '%' }\"></div>\r\n </div>\r\n <div class=\"text-end\"><span class=\"my-1 mx-1 text-end\">{{ item.compliance || '--' }}%</span></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-2 \">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\" class=\"bg-primary rounded h-5px\" [ngStyle]=\"{ width: item.performance + '%' }\"></div>\r\n </div>\r\n <div class=\"text-end\"><span class=\"my-1 mx-1 text-end\">{{ item.performance || '--' }}%</span></div>\r\n </div>\r\n </td>\r\n <td>\r\n <a class=\"cursor-pointer\" [routerLink]=\"['/manage/trax/info']\" [queryParams]=\"{ store_id: item._id, type: 'store' }\" class=\"table-title\"><span>\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=\"M0.832031 9.99992C0.832031 9.99992 4.16536 3.33325 9.9987 3.33325C15.832 3.33325 19.1654 9.99992 19.1654 9.99992C19.1654 9.99992 15.832 16.6666 9.9987 16.6666C4.16536 16.6666 0.832031 9.99992 0.832031 9.99992Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.9987 12.4999C11.3794 12.4999 12.4987 11.3806 12.4987 9.99992C12.4987 8.61921 11.3794 7.49992 9.9987 7.49992C8.61799 7.49992 7.4987 8.61921 7.4987 9.99992C7.4987 11.3806 8.61799 12.4999 9.9987 12.4999Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span></a>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ng-container *ngIf=\"storePerformanceLoading\">\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=\"storePerformanceNoData && !storePerformanceLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div\r\n 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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!storePerformanceLoading && !storePerformanceNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div *ngIf=\"receivedData === 'user'\" class=\"col-lg-12\">\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\">User Info</span>\r\n <span class=\"text-sub mb-2\"> Based on {{ headerData?.date?.startDate | date: 'MMM d' }} - {{\r\n headerData?.date?.endDate | date: 'MMM d, y' }}\r\n </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 footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n 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\">\r\n </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 <!-- [disabled]=\"searchDisabled\" -->\r\n <input [(ngModel)]=\"searchInput\" type=\"text\" class=\"form-control ps-14 ms-4 footfallsearch\"\r\n placeholder=\"Search by checklist\" autocomplete=\"off\" (keyup.enter)=\"searchField()\" />\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" type=\"button\" class=\"btn btn-primary ms-4 rounded-3 text-nowrap ng-star-inserted\"\r\n tabindex=\"0\"><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=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg><span class=\"ms-2 text-white\">Create Checklist</span></a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive\">\r\n <table *ngIf=\"!userPerformanceLoading && !userPerformanceNoData\" class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('userName')\">User Name<svg\r\n [ngClass]=\"sortColumName === 'userName' && 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]=\"sortColumName === 'userName' ? '#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)=\"sortData('userEmail')\">Email<svg\r\n [ngClass]=\"sortColumName === 'userEmail' && 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]=\"sortColumName === 'userEmail' ? '#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)=\"sortData('checkListCount')\">Checklist\r\n Assigned<svg\r\n [ngClass]=\"sortColumName === 'checkListCount' && 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]=\"sortColumName === 'checkListCount' ? '#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)=\"sortData('flaggedCount')\">Flags<svg\r\n [ngClass]=\"sortColumName === 'flaggedCount' && 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]=\"sortColumName === 'flaggedCount' ? '#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)=\"sortData('completion')\">Completion % <svg\r\n [ngClass]=\"sortColumName === 'completion' && 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]=\"sortColumName === 'completion' ? '#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)=\"sortData('compliance')\">Compliance %<svg\r\n [ngClass]=\"sortColumName === 'compliance' && 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]=\"sortColumName === 'compliance' ? '#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)=\"sortData('performance')\">Performance<svg\r\n [ngClass]=\"sortColumName === 'performance' && 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]=\"sortColumName === 'performance' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let user of userPerformanceData\">\r\n <td>\r\n <a [routerLink]=\"['/manage/trax/info']\" [queryParams]=\"{ userEmail: user.userEmail, type: 'user'}\" class=\"table-title-primary\">{{ user.userName }}</a>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{ user.userEmail }}</div>\r\n </td>\r\n <td class=\"table-title\">{{ user.checkListCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</td>\r\n <td>\r\n <div class=\"table-title\">{{ user.flaggedCount?.toLocaleString('en-US', { minimumFractionDigits: 0 }) || '--' }}</div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-2\">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\"\r\n class=\"bg-primary rounded h-5px\" [ngStyle]=\"{ width: user.completion + '%' }\">\r\n </div>\r\n </div>\r\n <div class=\"text-end\"><span class=\"my-1 mx-1 text-end\">{{ user.completion || '--' }}%</span></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-2\">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\"\r\n class=\"bg-primary rounded h-5px\" [ngStyle]=\"{ width: user.compliance + '%' }\">\r\n </div>\r\n </div>\r\n <div class=\"text-end\"><span class=\"my-1 mx-1 text-end\">{{ user.compliance || '--' }}%</span></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-2\">\r\n <div role=\"progressbar\" aria-valuemin=\"0\" aria-valuemax=\"100\"\r\n class=\"bg-primary rounded h-5px\" [ngStyle]=\"{ width: user.performance + '%' }\">\r\n </div>\r\n </div>\r\n <div class=\"text-end\"><span class=\"my-1 mx-1 text-end\">{{ user.performance || '--' }}%</span></div>\r\n </div>\r\n </td>\r\n \r\n <td>\r\n <a class=\"cursor-pointer\" [routerLink]=\"['/manage/trax/info']\" [queryParams]=\"{ userEmail: user.userEmail, type: 'user'}\" class=\"table-title\"><span>\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=\"M0.832031 9.99992C0.832031 9.99992 4.16536 3.33325 9.9987 3.33325C15.832 3.33325 19.1654 9.99992 19.1654 9.99992C19.1654 9.99992 15.832 16.6666 9.9987 16.6666C4.16536 16.6666 0.832031 9.99992 0.832031 9.99992Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n <path d=\"M9.9987 12.4999C11.3794 12.4999 12.4987 11.3806 12.4987 9.99992C12.4987 8.61921 11.3794 7.49992 9.9987 7.49992C8.61799 7.49992 7.4987 8.61921 7.4987 9.99992C7.4987 11.3806 8.61799 12.4999 9.9987 12.4999Z\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span></a>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ng-container *ngIf=\"userPerformanceLoading\">\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=\"userPerformanceNoData && !userPerformanceLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div\r\n 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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!userPerformanceLoading && !userPerformanceNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, Input, OnChanges, OnDestroy, OnInit, SimpleChanges } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subject, debounceTime, distinctUntilChanged, filter, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\nimport { TraxService } from '../../../services/trax.service';\r\n;\r\n\r\n@Component({\r\n selector: 'lib-monthlyperformance-datepicker',\r\n templateUrl: './monthlyperformance-datepicker.component.html',\r\n styleUrl: './monthlyperformance-datepicker.component.scss'\r\n})\r\nexport class MonthlyperformanceDatepickerComponent implements OnChanges{\r\n currentYear: number = new Date().getFullYear();\r\n currentMonth: number = new Date().getMonth();\r\n dayNames: string[] = ['Mo', 'Tu', 'We', 'Th', 'Fr', 'Sa', 'Su'];\r\n monthNames: string[] = ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];\r\n headerData: any;\r\n\r\n performanceData: any[] = []; // This will store the performance data from the API response\r\n private detach = new Subject();\r\n private destroy$ = new Subject<void>();\r\n receivedData: string = \"Checklist\";\r\n selectedvalue: any;\r\n monthlyPeformanceLoading: boolean = true;\r\n monthlyPeformanceNoData: boolean = false;\r\n @Input() monthlyperformce: string;\r\n\r\n\r\n constructor(private route: ActivatedRoute, private router: Router,public gs: GlobalStateService,private changeDetector: ChangeDetectorRef,private toast: ToastService,\r\n private TraxService: TraxService,\r\n ) { }\r\n ngOnDestroy(): void {\r\n this.detach.next(true);\r\n this.detach.complete();\r\n }\r\n\r\n ngOnChanges(changes: SimpleChanges): void {\r\n this.getMonthlyPeformanceData();\r\n }\r\n\r\n ngOnInit(): void {\r\n this.route?.queryParams\r\n?.pipe(takeUntil(this.detach))\r\n.subscribe((params) => {\r\n if (params.type === 'Checklist') {\r\n this.selectedvalue = params.checklist\r\n this.receivedData = 'Checklist';\r\n // this.infoCardsData = params.checklistData ? JSON.parse(params.checklistData) : null;\r\n } else if (params.type === 'store') {\r\n this.selectedvalue = params.store_id\r\n this.receivedData = 'Store';\r\n } else if (params.type === 'user') {\r\n this.selectedvalue = params.userEmail\r\n this.receivedData = 'User';\r\n }\r\n});\r\n\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$), debounceTime(300))\r\n .subscribe((data: any) => {\r\n this.headerData = data;\r\n if (this.receivedData === 'Checklist') {\r\n this.getMonthlyPeformanceData();\r\n } else if (this.receivedData === 'User') {\r\n this.getMonthlyPeformanceData();\r\n } else {\r\n }\r\n\r\n \r\n\r\n\r\n // this.performanceData = [\r\n // { \"date\": 1, \"colorClass\": \"primary900\" },\r\n // { \"date\": 3, \"colorClass\": \"blue33B5FF\" },\r\n // { \"date\": 6, \"colorClass\": \"redF04438\" },\r\n // { \"date\": 7, \"colorClass\": \"lightBlue6BCAFF\" },\r\n // { \"date\": 8, \"colorClass\": \"blue33B5FF\" },\r\n // { \"date\": 9, \"colorClass\": \"primary900\" },\r\n // { \"date\": 12, \"colorClass\": \"primary900\" },\r\n // { \"date\": 14, \"colorClass\": \"orangeF79009\" },\r\n // { \"date\": 15, \"colorClass\": \"blue33B5FF\" },\r\n // { \"date\": 18, \"colorClass\": \"redF04438\" }\r\n // ];\r\n \r\n\r\n})\r\n \r\n \r\n\r\n }\r\n\r\n getMonthlyPeformanceData(): void { \r\n this.monthlyPeformanceLoading = true;\r\n this.monthlyPeformanceNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId: this.headerData.client,\r\n groupByType: this.receivedData,\r\n groupByValue: this.monthlyperformce,\r\n };\r\n\r\n this.TraxService.getMonthlyPeformanceData(requestData).pipe(takeUntil(this.destroy$)).subscribe((response: any) => {\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.performanceData = response.data?.monthlyChartData || [];\r\n this.monthlyPeformanceLoading = false;\r\n this.monthlyPeformanceNoData = false;\r\n this.changeDetector.detectChanges();\r\n } else {\r\n this.performanceData = []\r\n this.monthlyPeformanceLoading = false;\r\n this.monthlyPeformanceNoData = true;\r\n }\r\n },\r\n error => {\r\n this.performanceData = []\r\n this.monthlyPeformanceLoading = false;\r\n this.monthlyPeformanceNoData = true;\r\n this.changeDetector.detectChanges();\r\n });\r\n }\r\n\r\n getDaysInMonth(): number[] {\r\n const daysInMonth = new Date(this.currentYear, this.currentMonth + 1, 0).getDate();\r\n return Array.from({ length: daysInMonth }, (_, i) => i + 1);\r\n }\r\n\r\n // Get empty days to align the first day of the month with the correct day of the week\r\n getEmptyDays(): number[] {\r\n const firstDayOfMonth = new Date(this.currentYear, this.currentMonth, 1).getDay();\r\n return Array(firstDayOfMonth === 0 ? 6 : firstDayOfMonth - 1).fill(0);\r\n }\r\n\r\n // Get the class name for a given day based on the performance data\r\n getDayClass(day: number): string {\r\n const predefinedDay = this.performanceData.find(d => d.date === day);\r\n return predefinedDay ? predefinedDay.colorClass : '';\r\n }\r\n\r\n // Navigate to the previous month\r\n previousMonth(): void {\r\n if (this.currentMonth === 0) {\r\n this.currentMonth = 11;\r\n this.currentYear--;\r\n } else {\r\n this.currentMonth--;\r\n }\r\n }\r\n\r\n // Navigate to the next month\r\n nextMonth(): void {\r\n if (this.currentMonth === 11) {\r\n this.currentMonth = 0;\r\n this.currentYear++;\r\n } else {\r\n this.currentMonth++;\r\n }\r\n }\r\n\r\n}\r\n","<div class=\"calendar-container\">\r\n <div class=\"performanceheading\">Monthly Performance</div>\r\n <div *ngIf=\"!monthlyPeformanceLoading && !monthlyPeformanceNoData\" class=\"calendar\">\r\n <div class=\"calendar-header my-3\">\r\n <span class=\"cursor-pointer\" (click)=\"previousMonth()\">\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=\"M12.5 15L7.5 10L12.5 5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <span>{{ monthNames[currentMonth] }} {{ currentYear }}</span>\r\n <span class=\"cursor-pointer\" (click)=\"nextMonth()\">\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=\"M7.5 15L12.5 10L7.5 5\" stroke=\"#667085\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n </div>\r\n <div class=\"calendar-body my-4\">\r\n <div class=\"day-names\">\r\n <div *ngFor=\"let day of dayNames\">{{ day }}</div>\r\n </div>\r\n <div class=\"calendar-days\">\r\n <!-- Empty days to align the start of the month -->\r\n <div *ngFor=\"let _ of getEmptyDays()\" class=\"empty-day\"></div>\r\n <!-- Calendar days with dynamic color assignment via CSS classes -->\r\n <div *ngFor=\"let day of getDaysInMonth()\" [ngClass]=\"getDayClass(day)\" class=\"calendar-day\">\r\n {{ day }}\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <ng-container *ngIf=\"monthlyPeformanceLoading\">\r\n <div class=\"row loader my-6 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=\"monthlyPeformanceNoData && !monthlyPeformanceLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Monthly Performance\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</ng-container>\r\n</div>\r\n","import { ChangeDetectorRef, Component, Input, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute, Router } from '@angular/router';\r\nimport { Subject, debounceTime, distinctUntilChanged, filter, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { ToastService } from 'tango-app-ui-shared';\r\n// import { TraxService } from '../services/trax.service';\r\nimport { FormBuilder, FormControl, FormGroup } from '@angular/forms';\r\nimport { TraxService } from '../../services/trax.service';\r\nimport dayjs from 'dayjs';\r\n\r\n\r\n\r\n@Component({\r\n selector: 'lib-dashboard-info',\r\n templateUrl: './dashboard-info.component.html',\r\n styleUrl: './dashboard-info.component.scss'\r\n})\r\n\r\nexport class DashboardInfoComponent implements OnDestroy, OnInit {\r\n dayjs = dayjs;\r\n private detach = new Subject();\r\n private destroy$ = new Subject<void>();\r\n isExport: boolean = false;\r\n itemsPerPage = 10\r\n currentPage = 1\r\n totalItems = 0\r\n paginationSizes:any[] = [];\r\n pageSize = 10\r\n sortColumName: string = '';\r\n sortBy: any = '';\r\n sortDirection: any = '';\r\n searchInput: any =\"\";\r\n infoChecklistData: any[] = [];\r\n checklistDropdown: any[] = [];\r\n userlistDropdown:any[] = [];\r\n searchDisabled: boolean = false;\r\n invoiceList: any[] = [];\r\n checklistLoading: boolean = true;\r\n checklistNoData: boolean = false;\r\n headerData: any;\r\n receivedData: string = \"Checklist\";\r\n form: FormGroup;\r\n selectControl: FormControl;\r\n checklistselectControl: FormControl;\r\n userlistselectControl:FormControl;\r\n selectedlistselectControl:FormControl;\r\n \r\n selectedUser: any;\r\n selectedUserType: string ;\r\n selectedSourceUserId: string;\r\n\r\n selectedStatus: any;\r\n selectedStatusType: string ;\r\n selectedSourceStatusId: string;\r\n // datasets: Array<{ value: string, label: string }> = [\r\n // { value: 'Open', label: 'Open' },\r\n // { value: 'Inprogress', label: 'Inprogress' },\r\n // { value: 'Delayed', label: 'Delayed' },\r\n // { value: 'Submitted', label: 'Submitted' },\r\n // { value: 'ReDo', label: 'ReDo' },\r\n // ];\r\n \r\n checklistdatasets: Array<{ value: string, label: string }> = [];\r\n infoCardDataLoading: boolean = true;\r\n infoCardNoData: boolean = false;\r\n infoCardsData: any = {};\r\n // infoChecklistData: any = {};\r\n selectedChecklist: any;\r\n selectedChecklistType: string ;\r\n selectedSourceCheckListId: string;\r\n selectDropdown: any[] = [];\r\n selectedvalue: any;\r\n statusselectControl = [\r\n { _id: 'open', label: 'Open' },\r\n { _id: 'inprogress', label: 'In Progress' },\r\n { _id: 'submit', label: 'Submitted' },\r\n ];\r\n timeFlag: any;\r\n date:any;\r\n infoComparisonCardsData: any = {};\r\n\r\n\r\n constructor(private route: ActivatedRoute, private router: Router,public gs: GlobalStateService,private changeDetector: ChangeDetectorRef,private toast: ToastService,\r\n private TraxService: TraxService,private fb: FormBuilder,\r\n ) { }\r\n ngOnDestroy(): void {\r\n this.detach.next(true);\r\n this.detach.complete();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.date = this.dayjs().format('YYYY-MM-DD');\r\n \r\n this.checklistselectControl = new FormControl('');\r\n this.form = this.fb.group({\r\n checklistselectControl: this.checklistselectControl\r\n });\r\n this.checklistselectControl.valueChanges.subscribe((value: any) => {\r\n this.onValueChangeChecklist(value);\r\n });\r\n\r\n\r\n this.userlistselectControl = new FormControl('');\r\n this.form = this.fb.group({\r\n userlistselectControl: this.userlistselectControl\r\n });\r\n this.userlistselectControl.valueChanges.subscribe((value: any) => {\r\n this.onValueChangeUserChecklist(value);\r\n });\r\n\r\n this.selectedlistselectControl = new FormControl('open');\r\n this.form = this.fb.group({\r\n selectedlistselectControl: this.selectedlistselectControl\r\n });\r\n this.selectedlistselectControl.valueChanges.subscribe((value: any) => {\r\n this.onValueChangeStatusSelect(value);\r\n });\r\n // this.form.get(this.statusselectControl)?.valueChanges.subscribe((selectedStatus) => {\r\n // this.onValueChangeStatusSelect(selectedStatus);\r\n // });\r\n\r\n \r\nthis.route?.queryParams\r\n?.pipe(takeUntil(this.detach))\r\n.subscribe((params) => {\r\n if (params.type === 'Checklist') {\r\n this.selectedvalue = params.checklist\r\n this.receivedData = 'Checklist';\r\n this.infoCardsData = params.checklistData ? JSON.parse(params.checklistData) : null;\r\n } else if (params.type === 'store') {\r\n this.selectedvalue = params.store_id\r\n this.receivedData = 'Store';\r\n } else if (params.type === 'user') {\r\n this.selectedvalue = params.userEmail\r\n this.receivedData = 'User';\r\n }\r\n});\r\n\r\n \r\nthis.gs.dataRangeValue\r\n.pipe(takeUntil(this.destroy$), debounceTime(300))\r\n.subscribe((data: any) => {\r\n this.headerData = data;\r\n if (this.receivedData === 'Checklist') {\r\n\r\n this.getchecklistDropdown();\r\n } else if (this.receivedData === 'User') {\r\n this.getUserlistDropdown();\r\n } else {\r\n\r\n this.getInfoCardsData();\r\n this.getInfoComparisonCardsData()\r\n this.getChecklistInfoData();\r\n }\r\n \r\n // this.getChecklistInfoData();\r\n})\r\n\r\n }\r\n\r\n getUserlistDropdown(): void {\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId:this.headerData.client,\r\n };\r\n \r\n this.TraxService.getUserlistDropdownData(requestData).pipe(takeUntil(this.destroy$)).subscribe(\r\n (response: any) => {\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n // Access the checklistData array from the response\r\n this.userlistDropdown = response.data?.userData || [];\r\n this.selectedUser = this.userlistDropdown.find(item => item.userEmail === this.selectedvalue);\r\n if (this.selectedUser) {\r\n setTimeout(() => {\r\n this.userlistselectControl.setValue(this.selectedUser.userEmail);\r\n }, 100);\r\n \r\n } \r\n else if (this.userlistDropdown.length > 0) {\r\n this.userlistselectControl.setValue(this.userlistDropdown[0].userEmail);\r\n this.selectedUser = this.userlistDropdown[0];\r\n }\r\n } else {\r\n this.userlistDropdown = [];\r\n }\r\n this.changeDetector.detectChanges();\r\n },\r\n error => {\r\n this.userlistDropdown = [];\r\n this.changeDetector.detectChanges(); \r\n }\r\n );\r\n }\r\n getchecklistDropdown(): void {\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n clientId:this.headerData.client,\r\n };\r\n \r\n this.TraxService.getChecklistDropdownDashboardData(requestData).pipe(takeUntil(this.destroy$)).subscribe(\r\n (response: any) => {\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n // Access the checklistData array from the response\r\n this.checklistDropdown = response.data?.checklistData || [];\r\n this.selectedChecklist = this.checklistDropdown.find(item => item.checkListName === this.selectedvalue);\r\n console.log(\"this.selectedChecklist\", this.selectedChecklist);\r\n \r\n if (this.selectedChecklist) {\r\n this.checklistselectControl.setValue(this.selectedChecklist.sourceCheckList_id);\r\n this.selectedChecklistType = this.selectedChecklist.checkListType; \r\n this.selectedvalue = this.selectedChecklist.sourceCheckList_id;\r\n this.changeDetector.detectChanges();\r\n } \r\n else if (this.checklistDropdown.length > 0) {\r\n this.checklistselectControl.setValue(this.checklistDropdown[0].sourceCheckList_id);\r\n this.selectedChecklist = this.checklistDropdown[0];\r\n }\r\n } else {\r\n this.checklistDropdown = [];\r\n }\r\n },\r\n error => {\r\n this.checklistDropdown = [];\r\n this.changeDetector.detectChanges(); \r\n }\r\n );\r\n }\r\n\r\n getInfoCardsData(): void {\r\n this.infoChecklistData = []\r\n console.log(\"fie\");\r\n \r\n this.infoCardDataLoading = true;\r\n this.infoCardNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId:this.headerData.client,\r\n groupByType: this.receivedData,\r\n groupByValue: this.selectedvalue,\r\n };\r\n\r\n this.TraxService.getInfoCardsData(requestData).pipe(takeUntil(this.destroy$)).subscribe((response: any) => {\r\n this.infoCardDataLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.infoCardsData = response.data?.overallCards || {}; \r\n console.log(\"infoCardsData12\", this.infoCardsData);\r\n \r\n this.infoCardDataLoading = false;\r\n this.infoCardNoData = false;\r\n } else {\r\n this.infoCardsData = []\r\n this.infoCardDataLoading = false;\r\n this.infoCardNoData = true;\r\n }\r\n },\r\n error => {\r\n this.infoCardsData = []\r\n this.infoCardDataLoading = false;\r\n this.infoCardNoData = true;\r\n this.changeDetector.detectChanges()\r\n }\r\n );\r\n }\r\n\r\n getInfoComparisonCardsData(): void {\r\n this.infoComparisonCardsData = []\r\n this.infoCardDataLoading = true;\r\n this.infoCardNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n clientId:this.headerData.client,\r\n groupByType: this.receivedData,\r\n groupByValue: this.selectedvalue,\r\n };\r\n\r\n this.TraxService.getInfoComparisonCardsData(requestData).pipe(takeUntil(this.destroy$)).subscribe((response: any) => {\r\n this.infoCardDataLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n this.infoComparisonCardsData = response.data?.overallComparisonCards || {}; \r\n console.log(\"overallComparisonCards\", this.infoComparisonCardsData);\r\n \r\n this.infoCardDataLoading = false;\r\n this.infoCardNoData = false;\r\n } else {\r\n this.infoComparisonCardsData = []\r\n this.infoCardDataLoading = false;\r\n this.infoCardNoData = true;\r\n }\r\n },\r\n error => {\r\n this.infoComparisonCardsData = []\r\n this.infoCardDataLoading = false;\r\n this.infoCardNoData = true;\r\n this.changeDetector.detectChanges()\r\n }\r\n );\r\n }\r\n\r\n \r\n\r\n getChecklistInfoData(): void {\r\n\r\n this.searchDisabled = true;\r\n this.checklistLoading = true;\r\n this.checklistNoData = true;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n // storeId: [\"11-253\", \"11-511\",\"11-1176\"],\r\n storeId: [\r\n \"11-1743\",\r\n \"11-178\",\r\n \"11-1413\",\r\n \"11-1833\",\r\n \"11-67\",\r\n \"11-709\"\r\n ],\r\n // storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n clientId:this.headerData.client,\r\n limit: this.itemsPerPage, \r\n offset: this.currentPage - 1,\r\n sortBy: this.sortDirection,\r\n sortColumnName: this.sortColumName,\r\n searchValue: this.searchInput,\r\n groupByType: this.receivedData,\r\n groupByValue: this.selectedvalue,\r\n export: false,\r\n checklistStatus: this.selectedlistselectControl.value,\r\n };\r\n\r\n this.TraxService.getChecklistInfoData(requestData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((response: any) => {\r\n this.checklistLoading = false;\r\n if (response?.code === 200 && response?.status === \"success\") {\r\n \r\n this.infoChecklistData = response.data.checklistInfo;\r\n // this.statusselectControl = [...new Set(this.infoChecklistData.map(item => item.checklistStatus))]; \r\n // this.onValueChangeStatusSelect(value);\r\n // this.infoChecklistData = response.data.checklistInfo.checklistStatus;\r\n this.totalItems = response.data.totalCount\r\n this.setPaginationSizes()\r\n this.checklistLoading = false;\r\n this.checklistNoData = false;\r\n this.searchDisabled = false;\r\n this.timeFlag = response.data.timeFlag;\r\n } else {\r\n this.checklistLoading = false;\r\n this.checklistNoData = true;\r\n this.searchDisabled = true;\r\n if (this.searchInput?.length) {\r\n this.searchDisabled = true\r\n }\r\n this.infoChecklistData = []\r\n this.totalItems = 0\r\n this.changeDetector.detectChanges()\r\n }\r\n }, error => {\r\n this.infoChecklistData = []\r\n this.changeDetector.detectChanges()\r\n });\r\n }\r\n onExport(): void {\r\n this.currentPage = 0;\r\n const requestData = {\r\n fromDate: this.headerData.date.startDate,\r\n toDate: this.headerData.date.endDate,\r\n storeId: this.headerData.stores.filter((store:any) => store.checked).map((store:any) => store.storeId),\r\n // storeId: [\"11-253\", \"11-511\",\"11-1176\"],\r\n clientId:this.headerData.client,\r\n // valueType: \"sum\",\r\n search: this.searchInput,\r\n sort: this.sortColumName,\r\n sortBy: this.sortDirection,\r\n limit: 10000,\r\n offset: this.currentPage,\r\n export: true\r\n };\r\n\r\n this.TraxService.getSummaryTableExport(requestData)\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe({\r\n next: (res) => {\r\n this.TraxService.saveAsExcelFile(res, 'ZoneSummaryTable');\r\n },\r\n error: (e) => {\r\n this.toast.getErrorToast('Something went Wrong..')\r\n }\r\n });\r\n }\r\n searchField(): void {\r\n this.headerData.search = this.searchInput;\r\n this.headerData.export = false;\r\n this.currentPage = 1;\r\n this.pageSize=10;\r\n this.getChecklistInfoData();\r\n }\r\n sortData(column: string): void {\r\n if (this.sortColumName === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumName = column;\r\n this.sortDirection = 1;\r\n }\r\n this.changeDetector.detectChanges();\r\n this.getChecklistInfoData();\r\n }\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.itemsPerPage = pageSize;\r\n this.pageSize = pageSize;\r\n this.changeDetector.detectChanges();\r\n this.getChecklistInfoData()\r\n }\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = pageOffset\r\n this.getChecklistInfoData()\r\n }\r\n setPaginationSizes() {\r\n if (this.totalItems > 10) {\r\n this.paginationSizes = [10, 20, 30];\r\n } else {\r\n this.paginationSizes = [this.totalItems]; \r\n this.pageSize = this.totalItems;// Just one option if less than 10\r\n }\r\n \r\n }\r\n\r\n onValueChangeChecklist(event: any): void {\r\n console.log(\"event\", event);\r\n \r\n this.selectedChecklist = this.checklistDropdown.find(item => item._id === event);\r\n console.log(\"this.selectedChecklist\", this.selectedChecklist);\r\n \r\n if (this.selectedChecklist) {\r\n this.selectedChecklistType = this.selectedChecklist.checkListType; \r\n this.selectedSourceCheckListId = this.selectedChecklist.sourceCheckList_id;\r\n \r\n this.changeDetector.detectChanges();\r\n this.getInfoCardsData();\r\n this.getInfoComparisonCardsData();\r\n this.getChecklistInfoData();\r\n\r\n }\r\n // this.getCustomerJourney();\r\n }\r\n onValueChangeUserChecklist(event: any): void {\r\n this.selectedUser = this.userlistDropdown.find(item => item.userEmail === event);\r\n if (this.selectedUser) {\r\n this.changeDetector.detectChanges();\r\n this.getInfoCardsData();\r\n this.getInfoComparisonCardsData();\r\n this.getChecklistInfoData();\r\n }\r\n // this.selectedUser = selectedUser;\r\n }\r\n\r\n trimText(text: string): string {\r\n return text.length > 10 ? text.slice(0, 10) + '...' : text;\r\n }\r\n \r\n onValueChangeStatusSelect(event: any): void {\r\n this.selectedStatus = this.statusselectControl.find(item => item._id === event);\r\n if (this.selectedStatus) {\r\n this.changeDetector.detectChanges();\r\n // this.getInfoCardsData();\r\n this.getChecklistInfoData();\r\n } // Fetch data based on selected status\r\n }\r\n\r\n storeView(data:any){\r\n const datavalue: any = JSON.parse(\r\n localStorage.getItem(\"header-filters\") || \"{}\"\r\n );\r\n const matchedStores = datavalue.stores.filter((store: any) => store.checked && store.storeId === data);\r\n // Update the balance stores (those not in the matched stores) to set their checked property to false\r\n datavalue.stores.forEach((store: any) => {\r\n if (!matchedStores.some((matchedStore:any) => matchedStore.storeId === store.storeId)) {\r\n store.checked = false;\r\n }\r\n });\r\n datavalue.store = data;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(datavalue));\r\n this.changeDetector.detectChanges()\r\n this.gs.dataRangeValue.next(datavalue)\r\n this.gs.manageRefreshTrigger.next(true);\r\n }\r\n\r\n reinitiate() {\r\n this.toast.getSuccessToast(`Reiniated Sent successfully.`); \r\n }\r\n sendalert() {\r\n this.toast.getSuccessToast(`Alert Sent successfully.`); \r\n }\r\n \r\n }\r\n","<div *ngIf=\"receivedData === 'Checklist'\" class=\"card mb-5\">\r\n <div class=\"card-body pt-2 pb-1\">\r\n <div class=\"d-flex flex-column\">\r\n <div *ngIf=\"selectedChecklist\" class=\"d-flex flex-wrap my-2 pe-2\">\r\n <a href=\"/manage/trax/dashboard\" class=\"d-flex align-items-center me-3 cursor-pointer\">\r\n <span><svg width=\"44\" height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_987_30898)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M27.8346 21.0001H16.168M16.168 21.0001L22.0013 26.8334M16.168 21.0001L22.0013 15.1667\"\r\n 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_987_30898\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" 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\"\r\n result=\"effect1_dropShadow_987_30898\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_987_30898\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </a>\r\n\r\n <form class=\"mt-1 me-3 borderless-select\" [formGroup]=\"form\">\r\n <lib-reactive-select [formControl]=\"checklistselectControl\" [idField]=\"'_id'\"\r\n [nameField]=\"'checkListName'\" [data]=\"checklistDropdown\" class=\"w-100 \"\r\n style=\"border: none !important; box-shadow: none !important;\"\r\n (valueChange)=\"onValueChangeChecklist($event)\">\r\n <ng-template let-item>\r\n <div class=\"d-flex justify-content-between align-items-center no-border-custom-select\">\r\n <span>{{ item.checkListName }}</span>\r\n <span class=\"d-flex align-items-center\">\r\n <!-- <span class=\"status-text\">Status</span> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </lib-reactive-select>\r\n </form>\r\n <div class=\"checklist-details d-flex flex-wrap mt-3\">\r\n <div class=\"d-flex align-items-center grey-badge me-3 my-3\">\r\n {{ selectedChecklist?.checkListName }}\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center text-success me-3 my-3\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\" viewBox=\"0 0 8 8\"\r\n fill=\"none\">\r\n <circle cx=\"4\" cy=\"4\" r=\"3\" fill=\"#12B76A\"></circle>\r\n </svg> Created by {{ selectedChecklist?.createdByName }}</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center me-3 checklisttext\">\r\n <span><svg class=\"mx-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path\r\n d=\"M12 3H13.5C13.8978 3 14.2794 3.15804 14.5607 3.43934C14.842 3.72064 15 4.10218 15 4.5V15C15 15.3978 14.842 15.7794 14.5607 16.0607C14.2794 16.342 13.8978 16.5 13.5 16.5H4.5C4.10218 16.5 3.72064 16.342 3.43934 16.0607C3.15804 15.7794 3 15.3978 3 15V4.5C3 4.10218 3.15804 3.72064 3.43934 3.43934C3.72064 3.15804 4.10218 3 4.5 3H6M6.75 1.5H11.25C11.6642 1.5 12 1.83579 12 2.25V3.75C12 4.16421 11.6642 4.5 11.25 4.5H6.75C6.33579 4.5 6 4.16421 6 3.75V2.25C6 1.83579 6.33579 1.5 6.75 1.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{ selectedChecklist?.storeCount?.toLocaleString('en-US', { minimumFractionDigits: 0\r\n }) || '--' }} Stores</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center me-3 checklisttext\">\r\n <span><svg class=\"mx-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <path\r\n d=\"M12 1.5V4.5M6 1.5V4.5M2.25 7.5H15.75M3.75 3H14.25C15.0784 3 15.75 3.67157 15.75 4.5V15C15.75 15.8284 15.0784 16.5 14.25 16.5H3.75C2.92157 16.5 2.25 15.8284 2.25 15V4.5C2.25 3.67157 2.92157 3 3.75 3Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg> {{ selectedChecklist?.scheduleRepeatedType || 'No repeat' }}</span>\r\n </div>\r\n\r\n <div class=\"d-flex align-items-center me-3 checklisttext\">\r\n <span><svg class=\"mx-2\" xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_987_30895)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_987_30895\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg> {{ selectedChecklist?.scheduleStartTime?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--' }} - {{\r\n selectedChecklist?.scheduleEndTime?.toLocaleString('en-US', { minimumFractionDigits: 0 }) ||\r\n '--' }}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Info-->\r\n </div>\r\n </div>\r\n</div>\r\n<div *ngIf=\"receivedData === 'User'\" class=\"card mb-5\">\r\n <div class=\"card-body pt-2 pb-1\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex flex-wrap my-2 pe-2\">\r\n <a href=\"/manage/trax/dashboard\" class=\"d-flex align-items-center me-3 cursor-pointer\">\r\n <span><svg width=\"44\" height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_987_30898)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M27.8346 21.0001H16.168M16.168 21.0001L22.0013 26.8334M16.168 21.0001L22.0013 15.1667\"\r\n 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_987_30898\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" 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\"\r\n result=\"effect1_dropShadow_987_30898\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_987_30898\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </a>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2 mt-2\">\r\n {{ selectedUser?.userNameChar }}\r\n </span>\r\n </div>\r\n\r\n <form class=\"mt-1 me-3 borderless-select\" [formGroup]=\"form\">\r\n\r\n <lib-reactive-select [formControl]=\"userlistselectControl\" [idField]=\"'userEmail'\"\r\n [nameField]=\"'userName'\" [data]=\"userlistDropdown\" class=\"w-100\"\r\n style=\"border: none !important; box-shadow: none !important;\"\r\n (valueChange)=\"onValueChangeUserChecklist($event)\">\r\n <ng-template let-item>\r\n <div class=\"d-flex justify-content-between align-items-center no-border-custom-select\">\r\n <span>{{ item.userName }}</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\"\r\n fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </lib-reactive-select>\r\n </form>\r\n\r\n <div *ngIf=\"selectedUser?.role\" class=\"checklist-details d-flex flex-wrap mt-3\">\r\n <div class=\"d-flex align-items-center grey-badge me-3 my-3\">\r\n {{ selectedUser?.role }}\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Info-->\r\n </div>\r\n </div>\r\n</div>\r\n\r\n<div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-9\">\r\n <div *ngIf=\"[receivedData === 'Checklist' || receivedData === 'User']\" class=\"row\">\r\n <div class=\"col-4\">\r\n <div class=\"totalinfocard\">\r\n <div class=\"headingcard\">\r\n Total instances\r\n </div>\r\n <div class=\"infocount mb-6\">{{ infoCardsData?.totalInstances?.count ?\r\n infoCardsData?.totalInstances?.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.totalInstances?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n \r\n <span class=\"mt-2 ms-2\">\r\n <span class=\"percent-value\">{{ infoComparisonCardsData?.totalInstances?.comparisonData ?\r\n infoComparisonCardsData?.totalInstances?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span>\r\n <span class=\"week-font\"> vs last week</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"totalinfocard\">\r\n <div class=\"headingcard\">\r\n Completed instances\r\n </div>\r\n <div class=\"infocount mb-6\">{{ infoCardsData?.completedInstances?.count ?\r\n infoCardsData?.completedInstances?.count.toLocaleString('en-US', { minimumFractionDigits: 0\r\n }) : '--' }}\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.completedInstances?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\">\r\n <span class=\"percent-value\">{{ infoComparisonCardsData?.completedInstances?.comparisonData ?\r\n infoComparisonCardsData?.completedInstances?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span>\r\n <span class=\"week-font\"> vs last week</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"totalinfocard\">\r\n <div class=\"headingcard\">\r\n Flags\r\n </div>\r\n <div class=\"infocount mb-6\">{{ infoCardsData?.flags?.count ?\r\n infoCardsData?.flags?.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--' }}\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.flags?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\">\r\n <span class=\"percent-value\">{{ infoComparisonCardsData?.flags?.comparisonData ?\r\n infoComparisonCardsData?.flags?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span>\r\n <span class=\"week-font\"> vs last week</span>\r\n </span>\r\n </div>\r\n <!-- <div class=\"avgcount\">Avg Flag Rate : {{ infoCardsData.flags.count ? '50%' : 'N/A' }}</div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"receivedData === 'Checklist'\" class=\"row my-3\">\r\n <div class=\"col-6\">\r\n <div class=\"subinfocard\">\r\n <div class=\"headingcard\">\r\n Completion Score\r\n </div>\r\n <div class=\"infocount\">{{ infoCardsData?.completionScore?.count?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--'}} %\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.completionScore?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\">\r\n <span class=\"percent-value\">{{ infoComparisonCardsData?.completionScore?.comparisonData ?\r\n infoComparisonCardsData?.completionScore?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span>\r\n <span class=\"week-font\"> vs last week</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"subinfocard\">\r\n <div class=\"headingcard\">\r\n Compliance Rate\r\n </div>\r\n <div class=\"infocount\">{{ infoCardsData?.complianceRate?.count?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--' }} %\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.complianceRate?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\">\r\n <span class=\"percent-value\">{{ infoComparisonCardsData?.complianceRate?.comparisonData ?\r\n infoComparisonCardsData?.complianceRate?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span>\r\n <span class=\"week-font\"> vs last week</span>\r\n </span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"receivedData === 'User'\" class=\"row my-3\">\r\n <div class=\"col-6\">\r\n <div class=\"totalinfocard\">\r\n <div class=\"headingcard\">\r\n Completion Score\r\n </div>\r\n <div class=\"infocount mb-6\">{{ infoCardsData?.completionScore?.count?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--'}} %\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.completionScore?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\"><span class=\"percent-value\">{{ infoComparisonCardsData?.completionScore?.comparisonData ?\r\n infoComparisonCardsData?.completionScore?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"col-6\">\r\n <div class=\"totalinfocard\">\r\n <div class=\"headingcard\">\r\n Compliance Rate\r\n </div>\r\n <div class=\"infocount mb-6\">{{ infoCardsData?.complianceRate?.count?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--' }} %\r\n <div>\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.complianceRate?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\"><span class=\"percent-value\">{{ infoComparisonCardsData?.complianceRate?.comparisonData ?\r\n infoComparisonCardsData?.complianceRate?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <!-- <div class=\"col-4\">\r\n <div class=\"totalinfocard\">\r\n <div class=\"headingcard\">\r\n Assigned Tasks\r\n </div>\r\n <div class=\"infocount\"><u>6</u>\r\n <div><span class=\"mt-2\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\"\r\n height=\"12\" viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg></span><span class=\"mt-2 ms-2\"><span class=\"percent-value\">13%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n <div class=\"actiondownload\">View All </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div> -->\r\n </div>\r\n\r\n <!-- <ng-container *ngIf=\"infoCardDataLoading\">\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=\"infoCardNoData && !infoCardDataLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container> -->\r\n\r\n </div>\r\n \r\n \r\n <div *ngIf=\"receivedData === 'Checklist' || receivedData === 'User'\" class=\"col-3\">\r\n <lib-monthlyperformance-datepicker [monthlyperformce]=\"selectedSourceCheckListId\"></lib-monthlyperformance-datepicker>\r\n </div>\r\n\r\n </div>\r\n</div>\r\n\r\n<div *ngIf=\"receivedData === 'Store'\" class=\"row mb-3 d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-2 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{ infoCardsData?.activeUnique ?\r\n infoCardsData?.activeUnique.toLocaleString('en-US', { minimumFractionDigits: 0 }) : '--'\r\n }}</span>\r\n <span class=\"cardtext\">Active Checklists</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"cardsubcount my-2\">{{ infoCardsData?.totalInstances?.count ?\r\n infoCardsData?.totalInstances?.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--' }}</div>\r\n <div class=\"cardtext\">Checklist Instances</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-5 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{ infoCardsData?.notSubmittedInstances?.count ?\r\n infoCardsData?.notSubmittedInstances?.count.toLocaleString('en-US', { minimumFractionDigits: 0\r\n }) : '--' }}</span>\r\n <span class=\"cardtext\">Not Submitted Checklists</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"row h-100px py-3 px-3\">\r\n <div class=\"col-md-6\">\r\n <div class=\"cardsubcount my-2\">{{ infoCardsData?.notSubmittedInstances?.open ?\r\n infoCardsData?.notSubmittedInstances?.open.toLocaleString('en-US', { minimumFractionDigits:\r\n 0 }) : '--' }}</div>\r\n <div class=\"cardtext\">Open Checklists</div>\r\n </div>\r\n <div class=\"col-md-6\">\r\n <div class=\"cardsubcount my-2\">{{ infoCardsData?.notSubmittedInstances?.inprogress ?\r\n infoCardsData?.notSubmittedInstances?.inprogress.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) : '--' }}</div>\r\n <div class=\"cardtext\">In Progress Checklists</div>\r\n </div>\r\n <!-- <div class=\"col-md-4\">\r\n <div class=\"cardsubcount my-2\">{{ infoCardsData?.notSubmittedInstances?.delay ?\r\n infoCardsData?.notSubmittedInstances?.delay.toLocaleString('en-US', { minimumFractionDigits:\r\n 0 }) : '--' }}</div>\r\n <div class=\"cardtext\">Delay in Submission</div>\r\n </div> -->\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-5 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardcount\">{{ infoCardsData?.completedInstances?.count ?\r\n infoCardsData?.completedInstances?.count.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--' }}</span>\r\n <span class=\"cardtext\">Submitted Checklists</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"row h-100px py-3 px-3\">\r\n <div class=\"col-md-4\">\r\n <div class=\"cardsubcount my-2\">{{ infoCardsData?.completionScore?.count ?\r\n infoCardsData?.completionScore?.count.toLocaleString('en-US', { minimumFractionDigits: 0 })\r\n : '--' }}</div>\r\n <div class=\"cardtext\">Completion Score</div>\r\n <div class=\"mt-2\">\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.completionScore?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\"><span class=\"percent-value\">{{ infoComparisonCardsData?.completionScore?.comparisonData ?\r\n infoComparisonCardsData?.completionScore?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div class=\"cardsubcount my-2\">{{ infoCardsData?.complianceRate?.count ?\r\n infoCardsData?.complianceRate?.count.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) : '--' }}</div>\r\n <div class=\"cardtext\">Compliance Score</div>\r\n <div class=\"mt-2\">\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.complianceRate?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\"><span class=\"percent-value\">{{ infoComparisonCardsData?.complianceRate?.comparisonData ?\r\n infoComparisonCardsData?.complianceRate?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n <div class=\"col-md-4\">\r\n <div [routerLink]=\"['/manage/trax/flags']\" class=\"cardsubcount my-2 cursor-pointer\"><u>{{ infoCardsData?.flags?.count ?\r\n infoCardsData?.flags?.count.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) : '--' }}</u></div>\r\n <div class=\"cardtext\">Total Flags</div>\r\n <div class=\"mt-2\">\r\n <span class=\"mt-2\" *ngIf=\"infoComparisonCardsData?.flags?.ComparisonFlag; else showArrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"12\" height=\"12\"\r\n viewBox=\"0 0 12 12\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_3216_118)\">\r\n <path d=\"M11.5 3L6.75 7.75L4.25 5.25L0.5 9M11.5 3H8.5M11.5 3V6\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_3216_118\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n <ng-template #showArrow2>\r\n <span class=\"arrow2\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" \r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\"></rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </ng-template>\r\n <span class=\"mt-2 ms-2\"><span class=\"percent-value\">{{ infoComparisonCardsData?.flags?.comparisonData ?\r\n infoComparisonCardsData?.flags?.comparisonData.toLocaleString('en-US', { minimumFractionDigits: 0 }) :\r\n '--'}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n\r\n\r\n<div class=\"row\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"card\">\r\n <div class=\"col-lg-12\">\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\">{{receivedData}} Info</span>\r\n <span class=\"text-sub mb-2\"> Based on {{ headerData?.date?.startDate | date: 'MMM d' }} - {{\r\n headerData?.date?.endDate | date: 'MMM d, y' }}\r\n </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div *ngIf=\"receivedData === 'Checklist' || receivedData === 'User'\">\r\n <form class=\"mt-1\" [formGroup]=\"form\">\r\n\r\n <lib-reactive-select [formControl]=\"selectedlistselectControl\" [idField]=\"'_id'\"\r\n [nameField]=\"'label'\" [data]=\"statusselectControl\" class=\"w-200px\"\r\n (valueChange)=\"onValueChangeStatusSelect($event)\">\r\n <ng-template let-item>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span>{{ item.label }}</span>\r\n <span class=\"d-flex align-items-center\">\r\n <!-- <span class=\"status-text\">Status</span> -->\r\n <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=\"#344054\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </lib-reactive-select>\r\n </form>\r\n </div>\r\n <div class=\"d-flex align-items-center position-relative\">\r\n <span class=\"svg-icon footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n 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\">\r\n </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 <!-- [disabled]=\"searchDisabled\" -->\r\n <input [(ngModel)]=\"searchInput\" type=\"text\"\r\n class=\"form-control ps-14 ms-4 footfallsearch\" placeholder=\"Search by checklist\"\r\n autocomplete=\"off\" (keyup.enter)=\"searchField()\" />\r\n </div>\r\n <a [routerLink]=\"['/manage/trax/createChecklist']\" *ngIf=\"receivedData === 'Store'\"\r\n type=\"button\" class=\"btn btn-primary ms-4 rounded-3 text-nowrap ng-star-inserted\"\r\n tabindex=\"0\"><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=\"M10.0001 4.16663V15.8333M4.16675 9.99996H15.8334\" stroke=\"white\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"></path>\r\n </svg><span class=\"ms-2 text-white\">Create Checklist</span></a>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"table-responsive\">\r\n\r\n <table *ngIf=\"!checklistLoading && !checklistNoData\" class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th *ngIf=\"receivedData === 'Checklist' || receivedData === 'User' \"\r\n class=\"cursor-pointer\" (click)=\"sortData('date_string')\">Date\r\n <svg [ngClass]=\"sortColumName === 'date_string' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'date_string' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"receivedData === 'Store' || receivedData === 'User'\"\r\n class=\"cursor-pointer\" (click)=\"sortData('checkListName')\">CheckList Name\r\n <svg [ngClass]=\"sortColumName === 'checkListName' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'date_string' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"receivedData === 'User'\" class=\"cursor-pointer\"\r\n (click)=\"sortData('storeName')\">Store Name\r\n <svg [ngClass]=\"sortColumName === 'storeName' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'storeName' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th *ngIf=\"receivedData !== 'User'\">Submitted By</th>\r\n <th>Checklist Owner</th>\r\n <th>Status</th>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('submitTime_string')\">Submitted On\r\n <svg [ngClass]=\"sortColumName === 'submitTime_string' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'submittedby' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </th>\r\n <th>Flags</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let item of infoChecklistData\">\r\n <td *ngIf=\"receivedData === 'Checklist' || receivedData === 'User' \">\r\n <div class=\"table-title\">{{ item.date_string }}</div>\r\n </td>\r\n <td *ngIf=\"receivedData === 'Store' || receivedData === 'User'\">\r\n <div (click)=\"storeView(item.storeId)\" class=\"table-title-primary\">{{\r\n item.checkListName }}</div>\r\n </td>\r\n\r\n <td *ngIf=\"receivedData === 'User'\">\r\n <div class=\"table-title\">{{ item.storeName }}</div>\r\n </td>\r\n <td *ngIf=\"receivedData !== 'User'\">\r\n <div class=\"table-title\">{{ item.userEmail }}</div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{ item.createdByName }}</div>\r\n </td>\r\n <td class=\"table-title\">\r\n <span [ngClass]=\"{\r\n 'badge badge-light-success': item.checklistStatus === 'submit',\r\n 'badge badge-light-warning': item.checklistStatus === 'inprogress',\r\n 'badge badge-light-primary': item.checklistStatus === 'open',\r\n 'badge badge-light-danger': item.checklistStatus === 'delayed'\r\n }\">{{ item.checklistStatus | titlecase }}</span>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{ item.submitTime_string?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--' }}</div>\r\n </td>\r\n\r\n <td class=\"table-title\">{{ item.flaggedChecklist?.toLocaleString('en-US', {\r\n minimumFractionDigits: 0 }) || '--' }}</td>\r\n <td>\r\n <div class=\"table-title d-flex\">\r\n <ng-container *ngIf=\"item.checklistStatus === 'submit'\">\r\n <span class=\"actionview me-4\">View</span>\r\n <span class=\"actiondownload\">Download</span>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"item.checklistStatus === 'inprogress' && item.timeFlag > 0 && date !== item.date_string\">\r\n <span [ngClass]=\"date !== item.date_string ? 'diasbled': ''\"\r\n (click)=\"date !== item.date_string ? 'reinitiate()': ''\"\r\n class=\"actiondownload diasbled\">Reinitiate</span>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"item.checklistStatus !== 'submit' && item.timeFlag <= 0 && date !== item.date_string\">\r\n <div [ngClass]=\"date !== item.date_string ? 'diasbled': ''\"\r\n (click)=\"date !== item.date_string ? 'sendalert()': '' \"\r\n class=\"actionalert diasbled\">Send Alert</div>\r\n </ng-container>\r\n </div>\r\n </td>\r\n </tr>\r\n </tbody>\r\n </table>\r\n <ng-container *ngIf=\"checklistLoading\">\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=\"checklistNoData && !checklistLoading\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n <div *ngIf=\"!checklistLoading && !checklistNoData\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { Subject, debounceTime, BehaviorSubject, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { TraxService } from '../../services/trax.service';\r\nimport { Router } from '@angular/router';\r\nimport { HeaderFilter, FlagsTableData, IFlagCards, IFlagComparisonCards } from './flags.interface';\r\n\r\n\r\n@Component({\r\n selector: 'lib-flags',\r\n templateUrl: './flags.component.html',\r\n styleUrl: './flags.component.scss'\r\n})\r\nexport class FlagsComponent implements OnInit, OnDestroy {\r\n private destroy$ = new Subject<void>();\r\n itemsPerPage = 10\r\n currentPage = 0\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n sortColumName = '';\r\n sortDirection = 1;\r\n headerData: HeaderFilter | null | undefined;;\r\n flagsTableApiState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n flagsTableData: FlagsTableData[] = []\r\n cardMetricsApiState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n cardMetricsData: IFlagCards | null | undefined\r\n cardMetricsComparisonData: IFlagComparisonCards | null | undefined\r\n\r\n\r\n constructor(public gs: GlobalStateService, private changeDetector: ChangeDetectorRef, private traxService: TraxService, private router: Router) { }\r\n\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$))\r\n .pipe(debounceTime(1000))\r\n .subscribe((data: any) => {\r\n if (data?.client) {\r\n this.headerData = data;\r\n if (this.headerData?.stores?.length) {\r\n this.headerData.stores = this.headerData.stores.filter((data: any) => data?.checked)\r\n }\r\n this.getChecklistFlagMetrics()\r\n this.getChecklistFlagMetricsComparison()\r\n this.getFlagsTable()\r\n }\r\n\r\n })\r\n }\r\n\r\n getChecklistFlagMetrics(): void {\r\n this.cardMetricsApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n }\r\n\r\n\r\n this.traxService.overallFlagMetrics(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.cardMetricsApiState.next('loaded')\r\n if (res?.data) {\r\n this.cardMetricsData = res.data\r\n } else {\r\n this.cardMetricsData = null\r\n }\r\n },\r\n error: (e) => {\r\n console.log(e);\r\n\r\n }\r\n })\r\n }\r\n\r\n getChecklistFlagMetricsComparison(): void {\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n }\r\n\r\n\r\n this.traxService.overallFlagMetricsComparison(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n if (res?.data) {\r\n this.cardMetricsComparisonData = res.data\r\n } else {\r\n this.cardMetricsComparisonData = null\r\n }\r\n },\r\n error: (e) => {\r\n console.log(e);\r\n\r\n }\r\n })\r\n }\r\n\r\n getFlagsTable(): void {\r\n this.flagsTableApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"limit\": this.pageSize,\r\n \"offset\": this.currentPage > 0 ? this.currentPage - 1 : 0,\r\n \"sortColumnName\": this.sortColumName,\r\n \"sortBy\": this.sortDirection,\r\n \"searchValue\":\"\",\r\n }\r\n\r\n\r\n this.traxService.flagsTable(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.flagsTableApiState.next('loaded')\r\n if (res?.data?.totalCount) {\r\n this.totalItems = res.data.totalCount\r\n } else {\r\n this.totalItems = 0\r\n }\r\n if (res?.data?.checklistPerformance) {\r\n this.flagsTableData = res.data.checklistPerformance\r\n } else {\r\n this.flagsTableData = []\r\n }\r\n },\r\n error: (e) => {\r\n this.flagsTableApiState.next('loaded')\r\n\r\n }\r\n })\r\n }\r\n\r\n onFlagsTableExport(): void {\r\n this.flagsTableApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"stores\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"startDate\": this.headerData?.date.startDate,\r\n \"endDate\": this.headerData?.date.endDate,\r\n \"limit\": this.pageSize,\r\n \"offset\": this.currentPage,\r\n \"sortColumn\": this.sortColumName,\r\n \"sortBy\": this.sortDirection,\r\n \"isExport\": true\r\n }\r\n\r\n\r\n this.traxService.exportFlagsTable(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.flagsTableApiState.next('loaded')\r\n this.traxService.saveAsExcelFile(res, 'flag')\r\n }\r\n })\r\n }\r\n\r\n\r\n\r\n sortData(column: string): void {\r\n if (this.sortColumName === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumName = column;\r\n this.sortDirection = 1;\r\n }\r\n this.changeDetector.detectChanges();\r\n this.getFlagsTable();\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.itemsPerPage = pageSize;\r\n this.pageSize = pageSize;\r\n this.changeDetector.detectChanges();\r\n this.getFlagsTable()\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = pageOffset\r\n this.getFlagsTable()\r\n }\r\n\r\n viewInDetail(checklistId: string | undefined ) {\r\n if(!checklistId){\r\n return\r\n }\r\n this.router.navigateByUrl(`/manage/trax/flagsinfo?id=${checklistId}`)\r\n }\r\n\r\n\r\n}\r\n","<div class=\"col-md-12\">\r\n <div class=\"row\">\r\n <div class=\"col-12 px-2\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <ng-container *ngIf=\"(cardMetricsApiState | async) === 'loaded'\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <div class=\"card-title d-flex align-items-start flex-column\">\r\n <div class=\"d-flex\">\r\n <div class=\"cardcount\">{{cardMetricsData?.flagCards?.totalFlag ? cardMetricsData?.flagCards?.totalFlag :\r\n '--'}}\r\n </div>\r\n <div class=\"cardtext mx-3 mt-3\">Total Flags</div>\r\n </div>\r\n\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"row h-100px py-3 px-3\">\r\n <div class=\"col-md-4 flagcard\">\r\n <div class=\"cardsubcount ms-12 my-2\">{{(cardMetricsData?.flagCards?.questionFlag?.count === 0 ||\r\n cardMetricsData?.flagCards?.questionFlag?.count) ?\r\n cardMetricsData?.flagCards?.questionFlag?.count : '--'}}</div>\r\n <div class=\"cardtext ms-5\">Question Flags</div>\r\n <div *ngIf=\"cardMetricsComparisonData?.flagComparisonCards?.questionComparisonFlag?.comparisonData\" class=\"mt-2\"><span class=\"mt-2\">\r\n <svg *ngIf=\"cardMetricsComparisonData?.flagComparisonCards?.questionComparisonFlag?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!cardMetricsComparisonData?.flagComparisonCards?.questionComparisonFlag?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{cardMetricsComparisonData?.flagComparisonCards?.questionComparisonFlag?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n <div class=\"col-md-4 flagcard\">\r\n <div class=\"cardsubcount mx-10 my-2\">{{(cardMetricsData?.flagCards?.delayInSubmission?.count === 0 ||\r\n cardMetricsData?.flagCards?.delayInSubmission?.count) ? cardMetricsData?.flagCards?.delayInSubmission?.count\r\n : '--'}}</div>\r\n <div class=\"cardtext\">Delay In Submission</div>\r\n <div *ngIf=\"cardMetricsComparisonData?.flagComparisonCards?.delayInSubmissionComparisonFlag?.comparisonData\" class=\"mt-2\"><span class=\"mt-2\">\r\n <svg *ngIf=\"cardMetricsComparisonData?.flagComparisonCards?.delayInSubmissionComparisonFlag?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!cardMetricsComparisonData?.flagComparisonCards?.delayInSubmissionComparisonFlag?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{cardMetricsComparisonData?.flagComparisonCards?.delayInSubmissionComparisonFlag?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n <div class=\"col-md-4 flagcard\">\r\n <div class=\"cardsubcount mx-12 my-2\">{{(cardMetricsData?.flagCards?.detectionFlag?.count === 0 ||\r\n cardMetricsData?.flagCards?.detectionFlag?.count) ?\r\n cardMetricsData?.flagCards?.detectionFlag?.count : '--'}}</div>\r\n <div class=\"cardtext ms-4\">Detection Flags</div>\r\n <div *ngIf=\"cardMetricsComparisonData?.flagComparisonCards?.detectionComparisonFlag?.comparisonData\" class=\"mt-2\"><span class=\"mt-2\">\r\n <svg *ngIf=\"cardMetricsComparisonData?.flagComparisonCards?.detectionComparisonFlag?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!cardMetricsComparisonData?.flagComparisonCards?.detectionComparisonFlag?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{cardMetricsComparisonData?.flagComparisonCards?.detectionComparisonFlag?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(cardMetricsApiState | async) === 'loading' || (cardMetricsApiState | async) === 'initial'\">\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\r\n\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row mt-3\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"card\">\r\n <div class=\"card-header border-0 pt-4 px-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2 me-3\">Checklist Flags <span *ngIf=\"totalItems\" class=\"badge badge-light-primary \">{{totalItems}}\r\n total</span></span>\r\n <span class=\"text-sub mb-2\"> Based on {{ headerData?.date?.startDate | date: 'MMM d' }} - {{\r\n headerData?.date?.endDate | date: 'MMM d, y' }}\r\n </span>\r\n </h3>\r\n <div class=\"card-toolbar\">\r\n <div class=\"d-flex\">\r\n <div class=\"mx-3\">\r\n <!-- <lib-reactive-select [formControl]=\"selectControl\" [idField]=\"'value'\"\r\n [nameField]=\"'label'\" [data]=\"datasets\" class=\"w-100\"\r\n (valueChange)=\"onValueChange($event)\">\r\n <ng-template let-item>\r\n <div class=\"d-flex justify-content-between align-items-center\">\r\n <span>{{ item.label }}</span>\r\n <span class=\"d-flex align-items-center\">\r\n <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=\"#344054\"\r\n stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </lib-reactive-select> -->\r\n </div>\r\n <button *ngIf=\"flagsTableData?.length\" [disabled]=\"(flagsTableApiState | async) === 'loading'\" type=\"button\" (click)=\"onFlagsTableExport()\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader me-4\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n 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\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg>\r\n <span class=\"ms-2\"></span> Export\r\n </button>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded'\" >\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th>Checklist Name</th>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('checkListType')\">Flag Type<svg\r\n [ngClass]=\"sortColumName === 'checkListType' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'checkListType' ? '#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)=\"sortData('assignedStores')\">Assigned Stores<svg\r\n [ngClass]=\"sortColumName === 'assignedStores' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'assignedStores' ? '#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)=\"sortData('flaggedStores')\">Flagged Stores<svg\r\n [ngClass]=\"sortColumName === 'flaggedStores' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'flaggedStores' ? '#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)=\"sortData('flagCount')\">Flagged<svg\r\n [ngClass]=\"sortColumName === 'flagCount' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'flagCount' ? '#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)=\"sortData('Compliance')\">Compliance %<svg\r\n [ngClass]=\"sortColumName === 'Compliance' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Compliance' ? '#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 <!-- *ngFor=\"let store of checklistPerformance\" -->\r\n <tr *ngFor=\"let data of flagsTableData\">\r\n <td>\r\n <div>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">\r\n {{data?.checkListChar }} </span>\r\n </div><span (click)=\"viewInDetail(data?.sourceCheckList_id)\"\r\n class=\"table-title-primary cursor-pointer\">{{data?.checkListName ? data?.checkListName : '--'}}</span> <span *ngIf=\"data?.checkListType !== 'custom'\"\r\n class=\"mx-2\">✨</span>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{data?.checkListType ? data?.checkListType : '--'}}</div>\r\n </td>\r\n <td class=\"table-title\">{{(data?.assignedStores || data?.assignedStores === 0) ? data?.assignedStores : '--'}}</td>\r\n <td class=\"table-title\">{{(data?.flaggedStores || data?.flaggedStores === 0) ? data?.flaggedStores : '--'}}</td>\r\n <td class=\"table-title-primary\"> <span class=\"cursor-pointer\" (click)=\"viewInDetail(data?.sourceCheckList_id)\">{{(data?.flagCount || data?.flagCount === 0) ? data?.flagCount : '--'}} </span> \r\n <span class=\"badge badge-light-default mx-3\" *ngIf=\"data?.checkListType === 'custom'\" >Questions</span>\r\n <span class=\"badge badge-light-default mx-3\" *ngIf=\"data?.checkListType !== 'custom'\">Detections</span>\r\n </td>\r\n <td class=\"table-title\">\r\n <div class=\"d-flex\">\r\n <div class=\"h-5px w-100 bg-light mt-4\">\r\n <div role=\"progressbar\" aria-valuemin=\"20\" aria-valuemax=\"100\"\r\n class=\"bg-primary rounded h-5px \"\r\n [style.width]=\"data?.complianceRate + '%'\"> </div>\r\n </div>\r\n <div class=\"text-end table-title\"><span class=\"my-1 mx-1 text-end\">\r\n {{data?.complianceRate}}%</span></div>\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">\r\n <div (click)=\"viewInDetail(data?.sourceCheckList_id)\" class=\"table-title-primary\">View</div>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && flagsTableData?.length\">\r\n <lib-pagination [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div> \r\n </ng-container>\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loading' || (flagsTableApiState | async) === 'initial'\">\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 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=\"(flagsTableApiState | async) === 'loaded' && !flagsTableData?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\r\n <div\r\n 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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container> \r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { Component, OnInit, OnDestroy, NgZone, Input } from '@angular/core';\r\nimport * as am5 from \"@amcharts/amcharts5\";\r\nimport * as am5percent from \"@amcharts/amcharts5/percent\";\r\nimport am5themes_Animated from \"@amcharts/amcharts5/themes/Animated\";\r\n\r\n@Component({\r\n selector: 'lib-unattended-pie-chart',\r\n templateUrl: './unattended-pie-chart.component.html',\r\n styleUrl: './unattended-pie-chart.component.scss'\r\n})\r\n\r\nexport class UnattendedPieChartComponent implements OnInit, OnDestroy {\r\n @Input() chartData:any\r\n @Input() chartId:any\r\n private root!: am5.Root;\r\n \r\n\r\n constructor(private zone: NgZone) {}\r\n\r\n ngOnInit() {\r\n setTimeout(() => {\r\n this.zone.runOutsideAngular(() => { \r\n // Create root element\r\n this.root = am5.Root.new(this.chartId);\r\n this.root.setThemes([am5themes_Animated.new(this.root)]);\r\n // Create chart\r\n let chart = this.root.container.children.push(am5percent.PieChart.new(this.root, {\r\n layout: this.root.verticalLayout,\r\n innerRadius: am5.percent(50)\r\n }));\r\n let series = chart.series.push(am5percent.PieSeries.new(this.root, {\r\n valueField: \"value\",\r\n categoryField: \"category\",\r\n alignLabels: false\r\n }));\r\n \r\n series.labels.template.setAll({\r\n forceHidden: true // This hides the labels\r\n });\r\n \r\n series.slices.template.set(\"tooltipText\", \"{value} ({valuePercent.formatNumber('#.0')}%)\");\r\n \r\n // Configure labels\r\n // series.labels.template.setAll({\r\n // textType: \"circular\",\r\n // centerX: 0,\r\n // centerY: 0\r\n // });\r\n \r\n // Set data\r\n series.data.setAll(this.chartData);\r\n \r\n // Create legend\r\n let legend = chart.children.push(am5.Legend.new(this.root, {\r\n centerX: am5.percent(50),\r\n x: am5.percent(50),\r\n marginTop: 15,\r\n marginBottom: 15\r\n }));\r\n \r\n legend.data.setAll(series.dataItems);\r\n \r\n // Play initial series animation\r\n series.appear(1000, 100);\r\n \r\n \r\n \r\n });\r\n }, 0);\r\n \r\n }\r\n\r\n ngOnDestroy() {\r\n this.zone.runOutsideAngular(() => { \r\n this.root.dispose();\r\n });\r\n }\r\n}\r\n","<div [id]=\"chartId\" class=\"chartdiv\"></div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, Subject, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { FormControl } from '@angular/forms';\r\nimport { TraxService } from '../../services/trax.service';\r\nimport { Location } from '@angular/common';\r\nimport { Checklist, ChecklistFlagList, FlagCardTrends, FlagCardValues, HeaderFilter } from './flags-info.interface';\r\n\r\n\r\n@Component({\r\n selector: 'lib-flags-info',\r\n templateUrl: './flags-info.component.html',\r\n styleUrl: './flags-info.component.scss'\r\n})\r\nexport class FlagsInfoComponent implements OnDestroy, OnInit {\r\n private destroy$ = new Subject<void>();\r\n itemsPerPage = 10\r\n currentPage = 0\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n sortColumName: string = '';\r\n sortDirection: number = 1;\r\n headerData: HeaderFilter | null | undefined;\r\n checklistSelectControl: FormControl = new FormControl('');\r\n searchInput: FormControl = new FormControl('');\r\n checkLists: Checklist[] = [];\r\n checkListsApiState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n currentChecklist: Checklist | null | undefined\r\n checklistFlagList: ChecklistFlagList | null | undefined\r\n flagsTableApiState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n flagCardValues: FlagCardValues | null | undefined\r\n flagsCardValuesState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n flagCardTrends: FlagCardTrends | null | undefined\r\n unattendedSummaryChartNumber:number = 1\r\n\r\n\r\n constructor(private route: ActivatedRoute, public gs: GlobalStateService, private traxService: TraxService, private location: Location, private cd:ChangeDetectorRef) {\r\n this.checklistSelectControl.valueChanges.subscribe((val: string) => {\r\n if (val) {\r\n this.currentChecklist = this.checkLists?.filter((item: Checklist) => item.sourceCheckList_id === val)[0] \r\n this.getFlagsTable()\r\n this.getCardValues()\r\n this.getCardTrends()\r\n }\r\n })\r\n\r\n this.searchInput.valueChanges.pipe(takeUntil(this.destroy$)).pipe(debounceTime(1000), distinctUntilChanged()).subscribe((val) => {\r\n if (val === null || val === undefined) {\r\n return\r\n }\r\n this.getFlagsTable()\r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$))\r\n .pipe(debounceTime(1000))\r\n .subscribe((data: any) => {\r\n if (data?.client) { \r\n console.log(data);\r\n \r\n this.headerData = data;\r\n if (this.headerData?.stores?.length) {\r\n this.headerData.stores = this.headerData.stores.filter((data: any) => data?.checked)\r\n }\r\n\r\n this.getChecklists()\r\n }\r\n\r\n })\r\n\r\n this.route.queryParams\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((params) => {\r\n if (params?.id) {\r\n this.checklistSelectControl.setValue(params?.id, { emitEvent: false })\r\n }\r\n });\r\n }\r\n\r\n getChecklists(): void {\r\n this.checkListsApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n }\r\n\r\n\r\n this.traxService.getChecklistDropdownData(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => { \r\n this.checkListsApiState.next('loaded')\r\n if (res?.data?.checklistDropdownData) {\r\n this.checkLists = res.data.checklistDropdownData \r\n this.currentChecklist = this.checkLists?.filter((item: Checklist) => item.sourceCheckList_id === this.checklistSelectControl.value)[0]\r\n // this.currentChecklist.checkListType = 'storeopenandclose'\r\n // this.currentChecklist.checkListType = 'mobileusagedetection'\r\n // this.currentChecklist.checkListType = 'uniformdetection'\r\n // this.currentChecklist.checkListType = 'customerunattended'\r\n // this.currentChecklist.checkListType = 'staffleftinthemiddle'\r\n // this.currentChecklist.checkListType = 'custom'\r\n if (!this.currentChecklist) {\r\n this.currentChecklist = this.checkLists[0]\r\n }\r\n setTimeout(() => {\r\n this.checklistSelectControl.setValue(this.currentChecklist?.sourceCheckList_id)\r\n }, 1000);\r\n } else {\r\n this.checkLists = []\r\n this.checklistFlagList = null\r\n this.checklistSelectControl.setValue('', { emitEvent: false })\r\n }\r\n },\r\n error: (e) => {\r\n console.log(e);\r\n\r\n }\r\n })\r\n }\r\n\r\n getFlagsTable(): void {\r\n this.flagsTableApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"limit\": this.pageSize,\r\n \"offset\": this.currentPage > 0 ? this.currentPage - 1 : 0,\r\n \"sortColumnName\": this.sortColumName,\r\n \"sortBy\": this.sortDirection,\r\n \"checklistType\": this.currentChecklist?.checkListType,\r\n \"sourceCheckList_id\": this.currentChecklist?.sourceCheckList_id,\r\n \"search\": this.searchInput.value,\r\n \"sort\": this.sortColumName,\r\n\r\n }\r\n\r\n\r\n this.traxService.checklistFlagTable(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.flagsTableApiState.next('loaded')\r\n if (res?.data?.totalCount) {\r\n this.totalItems = res.data.totalCount\r\n } else {\r\n this.totalItems = 0\r\n }\r\n if (res?.data) {\r\n this.checklistFlagList = res.data\r\n } else {\r\n this.checklistFlagList = null\r\n } \r\n },\r\n error: (e) => {\r\n this.flagsTableApiState.next('loaded')\r\n\r\n }\r\n })\r\n }\r\n\r\n getCardValues(): void {\r\n this.flagsCardValuesState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"checklistType\": this.currentChecklist?.checkListType,\r\n \"sourceCheckList_id\": this.currentChecklist?.sourceCheckList_id,\r\n \"checklistName\": this.currentChecklist?.checklistName\r\n }\r\n\r\n\r\n this.traxService.flagCardValues(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.flagsCardValuesState.next('loaded')\r\n if (res?.data) {\r\n this.flagCardValues = res.data \r\n } else {\r\n this.flagCardValues = null\r\n }\r\n },\r\n error: (e) => {\r\n console.log(e);\r\n\r\n }\r\n })\r\n }\r\n\r\n getCardTrends(): void {\r\n // this.flagsTableApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"checklistType\": this.currentChecklist?.checkListType,\r\n \"sourceCheckList_id\": this.currentChecklist?.sourceCheckList_id,\r\n \"checklistName\": this.currentChecklist?.checklistName\r\n }\r\n\r\n\r\n this.traxService.flagCardTerend(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n // this.flagsTableApiState.next('loaded')\r\n if (res?.data) {\r\n this.flagCardTrends = res.data\r\n } else {\r\n this.flagCardTrends = null\r\n }\r\n },\r\n error: (e) => {\r\n console.log(e);\r\n\r\n }\r\n })\r\n }\r\n\r\n sortData(column: string): void {\r\n if (this.sortColumName === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumName = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getFlagsTable()\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.itemsPerPage = pageSize;\r\n this.pageSize = pageSize;\r\n this.getFlagsTable()\r\n\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = pageOffset\r\n this.getFlagsTable()\r\n }\r\n\r\n onBack() {\r\n this.location.back()\r\n }\r\n\r\n storeView(data:any){\r\n const datavalue: any = JSON.parse(\r\n localStorage.getItem(\"header-filters\") || \"{}\"\r\n );\r\n const matchedStores = datavalue.stores.filter((store: any) => store.checked && store.storeId === data);\r\n datavalue.stores.forEach((store: any) => {\r\n if (!matchedStores.some((matchedStore:any) => matchedStore.storeId === store.storeId)) {\r\n store.checked = false;\r\n }\r\n });\r\n datavalue.store = data;\r\n localStorage.setItem(\"header-filters\", JSON.stringify(datavalue));\r\n this.cd.detectChanges()\r\n this.gs.dataRangeValue.next(datavalue)\r\n this.gs.manageRefreshTrigger.next(true);\r\n }\r\n\r\n\r\n \r\n}\r\n","<div class=\"row\">\r\n <!-- header start -->\r\n <div class=\"col-md-12 mb-6 mt-4\">\r\n\r\n <ng-container *ngIf=\"(checkListsApiState | async) === 'loaded'\" >\r\n <div class=\"d-flex align-items-center justify-content-between header-card\">\r\n <div class=\"d-flex align-items-center\">\r\n <form class=\"mt-1 me-3 borderless-select\">\r\n <lib-reactive-select [formControl]=\"checklistSelectControl\" [idField]=\"'sourceCheckList_id'\"\r\n [nameField]=\"'checklistName'\" [data]=\"checkLists\" class=\"w-100 \"\r\n style=\"border: none !important; box-shadow: none !important;\">\r\n <ng-template let-item>\r\n <div\r\n class=\"d-flex justify-content-between align-items-center no-border-custom-select\">\r\n <span>{{ item.label }}</span>\r\n <span class=\"d-flex align-items-center\">\r\n <!-- <span class=\"status-text\">Status</span> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </lib-reactive-select>\r\n </form>\r\n <div *ngIf=\"currentChecklist?.checkListType !== 'custom'\"\r\n class=\"d-flex align-items-center grey-badge me-3 my-3\">\r\n AI Manager\r\n </div>\r\n <div *ngIf=\"currentChecklist?.publish\" class=\"d-flex align-items-center text-success me-3 my-3\">\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"8\" height=\"8\" viewBox=\"0 0 8 8\"\r\n fill=\"none\">\r\n <circle cx=\"4\" cy=\"4\" r=\"3\" fill=\"#12B76A\" />\r\n </svg> Active</span>\r\n </div>\r\n <div class=\"d-flex align-items-center me-3 checklisttext\"><span><svg\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=\"M13.3307 14V12.6667C13.3307 11.9594 13.0498 11.2811 12.5497 10.781C12.0496 10.281 11.3713 10 10.6641 10H5.33073C4.62349 10 3.94521 10.281 3.44511 10.781C2.94501 11.2811 2.66406 11.9594 2.66406 12.6667V14M10.6641 4.66667C10.6641 6.13943 9.47015 7.33333 7.9974 7.33333C6.52464 7.33333 5.33073 6.13943 5.33073 4.66667C5.33073 3.19391 6.52464 2 7.9974 2C9.47015 2 10.6641 3.19391 10.6641 4.66667Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>{{currentChecklist?.createdByName}}</span>\r\n </div>\r\n <div class=\"d-flex align-items-center me-3 checklisttext\"><span><svg class=\"mx-2\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"\r\n fill=\"none\">\r\n <path\r\n d=\"M12 3H13.5C13.8978 3 14.2794 3.15804 14.5607 3.43934C14.842 3.72064 15 4.10218 15 4.5V15C15 15.3978 14.842 15.7794 14.5607 16.0607C14.2794 16.342 13.8978 16.5 13.5 16.5H4.5C4.10218 16.5 3.72064 16.342 3.43934 16.0607C3.15804 15.7794 3 15.3978 3 15V4.5C3 4.10218 3.15804 3.72064 3.43934 3.43934C3.72064 3.15804 4.10218 3 4.5 3H6M6.75 1.5H11.25C11.6642 1.5 12 1.83579 12 2.25V3.75C12 4.16421 11.6642 4.5 11.25 4.5H6.75C6.33579 4.5 6 4.16421 6 3.75V2.25C6 1.83579 6.33579 1.5 6.75 1.5Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>{{currentChecklist?.storeCount}} Stores</span>\r\n </div>\r\n <div class=\"d-flex align-items-center me-3 checklisttext\"><span><svg class=\"mx-2\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"\r\n fill=\"none\">\r\n <path\r\n d=\"M12 1.5V4.5M6 1.5V4.5M2.25 7.5H15.75M3.75 3H14.25C15.0784 3 15.75 3.67157 15.75 4.5V15C15.75 15.8284 15.0784 16.5 14.25 16.5H3.75C2.92157 16.5 2.25 15.8284 2.25 15V4.5C2.25 3.67157 2.92157 3 3.75 3Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>Repeats {{currentChecklist?.scheduleRepeatedType}}</span>\r\n </div>\r\n <div class=\"d-flex align-items-center me-3 checklisttext\"><span><svg class=\"mx-2\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\" viewBox=\"0 0 18 18\"\r\n fill=\"none\">\r\n <g clip-path=\"url(#clip0_987_30895)\">\r\n <path\r\n d=\"M9 4.5V9L12 10.5M16.5 9C16.5 13.1421 13.1421 16.5 9 16.5C4.85786 16.5 1.5 13.1421 1.5 9C1.5 4.85786 4.85786 1.5 9 1.5C13.1421 1.5 16.5 4.85786 16.5 9Z\"\r\n stroke=\"#667085\" stroke-width=\"1.4\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_987_30895\">\r\n <rect width=\"18\" height=\"18\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>{{currentChecklist?.scheduleStartTime}} -\r\n {{currentChecklist?.scheduleEndTime}}</span>\r\n </div>\r\n </div>\r\n <div class=\"d-flex align-items-center\">\r\n <div class=\"d-flex\">\r\n <div class=\"\">\r\n <a (click)=\"onBack()\" class=\"table-title-primary text-end cursor-pointer\"> <- Back</a>\r\n </div>\r\n </div>\r\n </div> \r\n\r\n \r\n \r\n </div> \r\n </ng-container>\r\n \r\n \r\n <ng-container *ngIf=\"(checkListsApiState | async) === 'loading' || (checkListsApiState | async) === 'initial'\" >\r\n <div style=\"margin:0px; padding:0px; height:unset\" class=\"row loader d-flex justify-content-center align-items-center w-100\">\r\n <div style=\"height: unset; margin:unset; border-radius: 5px;\" class=\"shimmer w-100\">\r\n <div class=\"wrapper\">\r\n <div style=\"margin-top: unset;\" class=\"stroke animate title\"></div>\r\n <div style=\"margin-top: 5px;\" class=\"stroke animate link\"></div>\r\n <div style=\"margin-top: 5px;\" class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n </div>\r\n <!-- header end -->\r\n <!-- card start -->\r\n <ng-container *ngIf=\"(flagsCardValuesState | async) === 'loaded'\" >\r\n <div *ngIf=\"currentChecklist?.checkListType === 'custom'\" class=\"col-md-12 my-2\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Total Assigned Stores</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">{{flagCardValues?.customCards?.totalAssignedStores?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customCards?.totalAssignedStores?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Flag Incidents</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">{{flagCardValues?.customCards?.flagIncidents?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customCards?.flagIncidents?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customCards?.flagIncidents?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customCards?.flagIncidents?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Compliance Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">{{flagCardValues?.customCards?.complianceRate?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customCards?.complianceRate?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div *ngIf=\"currentChecklist?.checkListType === 'storeopenandclose'\" class=\"col-md-12 my-2\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-3\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Total Assigned Stores</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.storeopenandcloseCards?.totalAssignedStores?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.storeopenandcloseCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.storeopenandcloseCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.storeopenandcloseCards?.totalAssignedStores?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-3\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Late Open Stores</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.storeopenandcloseCards?.lateOpenStores?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.storeopenandcloseCards?.lateOpenStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.storeopenandcloseCards?.lateOpenStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.storeopenandcloseCards?.lateOpenStores?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-3\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Early Closed Stores</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.storeopenandcloseCards?.earlyClosedStores?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.storeopenandcloseCards?.earlyClosedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.storeopenandcloseCards?.earlyClosedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.storeopenandcloseCards?.earlyClosedStores?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-3\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Compliance Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">{{flagCardValues?.storeopenandcloseCards?.complianceRate?.rate}}\r\n %\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.storeopenandcloseCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.storeopenandcloseCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.storeopenandcloseCards?.complianceRate?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div *ngIf=\"currentChecklist?.checkListType === 'mobileusagedetection'\" class=\"col-md-12 my-2\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Total Assigned Stores</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.mobileusagedetectionCards?.totalAssignedStores?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.mobileusagedetectionCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.mobileusagedetectionCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.mobileusagedetectionCards?.totalAssignedStores?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Flag Incidents</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.mobileusagedetectionCards?.flagIncidents?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.mobileusagedetectionCards?.flagIncidents?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.mobileusagedetectionCards?.flagIncidents?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.mobileusagedetectionCards?.flagIncidents?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Compliance Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.mobileusagedetectionCards?.complianceRate?.rate}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.mobileusagedetectionCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.mobileusagedetectionCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.mobileusagedetectionCards?.complianceRate?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div *ngIf=\"currentChecklist?.checkListType === 'uniformdetection'\" class=\"col-md-12 my-2\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Total Assigned Stores</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.uniformdetectionCards?.totalAssignedStores?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.uniformdetectionCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.uniformdetectionCards?.totalAssignedStores?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.uniformdetectionCards?.totalAssignedStores?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Flag Incidents</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">{{flagCardValues?.uniformdetectionCards?.flagIncidents?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.uniformdetectionCards?.flagIncidents?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.uniformdetectionCards?.flagIncidents?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.uniformdetectionCards?.flagIncidents?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Compliance Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">{{flagCardValues?.uniformdetectionCards?.complianceRate?.rate}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.uniformdetectionCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\" viewBox=\"0 0 13 8\"\r\n fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.uniformdetectionCards?.complianceRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.uniformdetectionCards?.complianceRate?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n <div *ngIf=\"currentChecklist?.checkListType === 'customerunattended'\" class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n <div class=\"col-9\">\r\n <div class=\"row\">\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Average Footfall</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.customerunattendedCards?.averageFootfall?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customerunattendedCards?.averageFootfall?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customerunattendedCards?.averageFootfall?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customerunattendedCards?.averageFootfall?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Staff to Customer Ratio</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.customerunattendedCards?.stafftoCustomerRatio?.ratio}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customerunattendedCards?.stafftoCustomerRatio?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customerunattendedCards?.stafftoCustomerRatio?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customerunattendedCards?.stafftoCustomerRatio?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Attended Customers</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.customerunattendedCards?.attendedCustomers?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customerunattendedCards?.attendedCustomers?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customerunattendedCards?.attendedCustomers?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customerunattendedCards?.attendedCustomers?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row\">\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Unattended Customers</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-4\">\r\n {{flagCardValues?.customerunattendedCards?.unattendedCustomers?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customerunattendedCards?.unattendedCustomers?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customerunattendedCards?.unattendedCustomers?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customerunattendedCards?.unattendedCustomers?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Time Taken to Assist</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.customerunattendedCards?.timeTakentoAssist?.mins}} Mins\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customerunattendedCards?.timeTakentoAssist?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customerunattendedCards?.timeTakentoAssist?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customerunattendedCards?.timeTakentoAssist?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-4\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Time Spent with Customer</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.customerunattendedCards?.timeSpentwithCustomer?.mins}} Mins\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.customerunattendedCards?.timeSpentwithCustomer?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.customerunattendedCards?.timeSpentwithCustomer?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.customerunattendedCards?.timeSpentwithCustomer?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"flagCardValues?.customerunattendedCards?.unattendedSummaryChart?.chart1?.length\" class=\"col-3 mb-6\">\r\n <div class=\"row h-100\">\r\n <div class=\"col-12 h-100\">\r\n <div class=\"summarycard h-100\">\r\n <div class=\"cardtext\">\r\n Unattended Summary\r\n </div>\r\n <div *ngIf=\"unattendedSummaryChartNumber === 1\" >\r\n <lib-unattended-pie-chart\r\n [chartData]=\"flagCardValues?.customerunattendedCards?.unattendedSummaryChart?.chart1\" [chartId]=\"'chart-one'\"></lib-unattended-pie-chart>\r\n </div>\r\n <div *ngIf=\"unattendedSummaryChartNumber === 2\" >\r\n <lib-unattended-pie-chart\r\n [chartData]=\"flagCardValues?.customerunattendedCards?.unattendedSummaryChart?.chart2\" [chartId]=\"'chart-two'\"></lib-unattended-pie-chart>\r\n </div>\r\n <div class=\"d-flex align-items-center justify-content-center\">\r\n <span (click)=\"unattendedSummaryChartNumber = 1\" [ngClass]=\"unattendedSummaryChartNumber === 1 ? 'selected-dot' : 'unselected-dot'\" class=\"cursor-pointer me-4\" ></span>\r\n <span (click)=\"unattendedSummaryChartNumber = 2\" [ngClass]=\"unattendedSummaryChartNumber === 2 ? 'selected-dot' : 'unselected-dot'\" class=\"cursor-pointer\"></span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div *ngIf=\"currentChecklist?.checkListType === 'staffleftinthemiddle'\" class=\"col-md-12\">\r\n <div class=\"row d-flex justify-content-between align-items-stretch\">\r\n \r\n <div class=\"row\">\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Average Staff Present</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.staffleftinthemiddleCards?.avgStaffPresent?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.staffleftinthemiddleCards?.avgStaffPresent?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.staffleftinthemiddleCards?.avgStaffPresent?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.staffleftinthemiddleCards?.avgStaffPresent?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Average Staff left </span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.staffleftinthemiddleCards?.avgStaffleft?.count}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.staffleftinthemiddleCards?.avgStaffleft?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.staffleftinthemiddleCards?.avgStaffleft?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.staffleftinthemiddleCards?.avgStaffleft?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">AvgStaff Present In Peak Hours</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.staffleftinthemiddleCards?.avgStaffPresentInPeakHours?.rate}}\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.staffleftinthemiddleCards?.avgStaffPresentInPeakHours?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.staffleftinthemiddleCards?.avgStaffPresentInPeakHours?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.staffleftinthemiddleCards?.avgStaffPresentInPeakHours?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n <div class=\"row \">\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\"> Staff Avg Punctuality Rate</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.staffleftinthemiddleCards?.staffAvgPunctualityRate?.rate}} %\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.staffleftinthemiddleCards?.staffAvgPunctualityRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.staffleftinthemiddleCards?.staffAvgPunctualityRate?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.staffleftinthemiddleCards?.staffAvgPunctualityRate?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Staff Avg Break Hours</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.staffleftinthemiddleCards?.staffAvgBreakHours?.mins}} Mins\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.staffleftinthemiddleCards?.staffAvgBreakHours?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.staffleftinthemiddleCards?.staffAvgBreakHours?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.staffleftinthemiddleCards?.staffAvgBreakHours?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-4 mb-6\">\r\n <div class=\"card card-border pt-2 h-100\">\r\n <div class=\"card-header ellipse1 border-0 px-3\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"cardtext\">Staff Avg Productive Hours</span>\r\n </h3>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <div class=\"h-100px py-3 px-3\">\r\n <div class=\"infocount mb-6\">\r\n {{flagCardValues?.staffleftinthemiddleCards?.staffAvgProductiveHours?.mins}} Mins\r\n <div><span class=\"mt-2\">\r\n <svg *ngIf=\"flagCardTrends?.staffleftinthemiddleCards?.staffAvgProductiveHours?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"13\" height=\"8\"\r\n viewBox=\"0 0 13 8\" fill=\"none\">\r\n <path\r\n d=\"M11.832 1L7.08203 5.75L4.58203 3.25L0.832031 7M11.832 1H8.83203M11.832 1V4\"\r\n stroke=\"#039855\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg>\r\n <svg *ngIf=\"!flagCardTrends?.staffleftinthemiddleCards?.staffAvgProductiveHours?.ComparisonFlag\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"18\" height=\"18\"\r\n viewBox=\"0 0 18 18\" fill=\"none\" class=\"ng-star-inserted\">\r\n <g clip-path=\"url(#clip0_2328_4654)\">\r\n <path d=\"M11.5 9L6.75 4.25L4.25 6.75L0.5 3M11.5 9H8.5M11.5 9V6\"\r\n stroke=\"#D92D20\" stroke-width=\"1.5\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"></path>\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2328_4654\">\r\n <rect width=\"12\" height=\"12\" fill=\"white\">\r\n </rect>\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span><span class=\"mt-2 ms-2\"><span\r\n class=\"percent-value\">{{flagCardTrends?.staffleftinthemiddleCards?.staffAvgProductiveHours?.comparisonData}}%</span><span\r\n class=\"week-font\"> vs\r\n last week</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n \r\n \r\n </div>\r\n </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(flagsCardValuesState | async) === 'loading' || (flagsCardValuesState | async) === 'initial'\">\r\n <div class=\"col-md-12 my-2\">\r\n <div class=\"card\">\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 </div>\r\n \r\n </div>\r\n </ng-container>\r\n <!-- card end -->\r\n <!-- table start -->\r\n <div class=\"col-md-12 my-2\" >\r\n <div class=\" card\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"card-header border-0 pt-4 px-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Store Info</span>\r\n <span class=\"text-sub mb-2\"> Based on {{ headerData?.date?.startDate | date: 'MMM d' }} - {{\r\n headerData?.date?.endDate | date: 'MMM d, y' }}\r\n </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 footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\"\r\n 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\">\r\n </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 [formControl]=\"searchInput\" type=\"text\"\r\n class=\"form-control ps-14 ms-4 footfallsearch\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n <button type=\"button\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\">\r\n <!-- Export Icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n 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\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg>\r\n <span class=\"ms-2\"></span> Export\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <ng-container *ngIf=\"currentChecklist?.checkListType === 'custom'\" >\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.customData?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('Date')\">Date<svg\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store Name</th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store SPOC</th>\r\n <th>Detections</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistFlagList?.customData\">\r\n \r\n <td>\r\n <div class=\"table-title\">{{flagData?.dateString}}</div>\r\n </td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\" class=\"table-title-primary\">\r\n <u (click)=\"storeView(flagData.storeId)\" >{{flagData?.storeName}}</u></td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">\r\n <div class=\"table-title\">{{flagData?.storeSpocEmail}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{flagData?.detections}}</div>\r\n </td>\r\n \r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\"><span\r\n class=\"actionview me-4 cursor-pointer\">View</span>\r\n </div>\r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n \r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.customData?.length\" >\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container> \r\n </ng-container>\r\n <ng-container *ngIf=\"currentChecklist?.checkListType === 'storeopenandclose'\" >\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.storeopenandcloseData?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('Date')\">Date<svg\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store Name</th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store SPOC</th>\r\n <th >Open Time\r\n </th>\r\n <th >Close Time\r\n </th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistFlagList?.storeopenandcloseData\">\r\n\r\n <td>\r\n <div class=\"table-title\">{{flagData?.dateString}}</div>\r\n </td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\" class=\"table-title-primary\">\r\n <u (click)=\"storeView(flagData.storeId)\">{{flagData?.storeName}}</u></td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">\r\n <div class=\"table-title\">{{flagData?.storeSpocEmail}}\r\n </div>\r\n </td>\r\n <td >\r\n <span class=\"badge \" [ngClass]=\"flagData?.openTimeFlag ? 'badge-light-danger' : 'badge-light-success'\">{{flagData?.openTime}}</span>\r\n </td>\r\n <td >\r\n <span class=\"badge \" [ngClass]=\"flagData?.closeTimeFlag ? 'badge-light-danger' : 'badge-light-success'\">{{flagData?.closeTime}}</span>\r\n </td>\r\n\r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\"><span\r\n class=\"actionview me-4 cursor-pointer\">View</span>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.storeopenandcloseData?.length\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loading' || (flagsTableApiState | async) === 'initial'\">\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>\r\n <ng-container *ngIf=\"currentChecklist?.checkListType === 'mobileusagedetection'\" >\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.mobileusagedetectionData?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('Date')\">Date<svg\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store Name</th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store SPOC</th>\r\n <th>Detections</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistFlagList?.mobileusagedetectionData\">\r\n \r\n <td>\r\n <div class=\"table-title\">{{flagData?.dateString}}</div>\r\n </td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\" class=\"table-title-primary\">\r\n <u (click)=\"storeView(flagData.storeId)\">{{flagData?.storeName}}</u></td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">\r\n <div class=\"table-title\">{{flagData?.storeSpocEmail}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{flagData?.detections}}</div>\r\n </td>\r\n \r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\"><span\r\n class=\"actionview me-4 cursor-pointer\">View</span>\r\n </div>\r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n \r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.mobileusagedetectionData?.length\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container> \r\n </ng-container>\r\n <ng-container *ngIf=\"currentChecklist?.checkListType === 'uniformdetection'\" >\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.uniformdetectionData?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('Date')\">Date<svg\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store Name</th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store SPOC</th>\r\n <th>Detections</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistFlagList?.uniformdetectionData\">\r\n \r\n <td>\r\n <div class=\"table-title\">{{flagData?.dateString}}</div>\r\n </td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\" class=\"table-title-primary\">\r\n <u (click)=\"storeView(flagData.storeId)\">{{flagData?.storeName}}</u></td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">\r\n <div class=\"table-title\">{{flagData?.storeSpocEmail}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{flagData?.detections}}</div>\r\n </td>\r\n \r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\"><span\r\n class=\"actionview me-4 cursor-pointer\">View</span>\r\n </div>\r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n \r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.uniformdetectionData?.length\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container> \r\n </ng-container>\r\n <ng-container *ngIf=\"currentChecklist?.checkListType === 'customerunattended'\" >\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.customerunattendedData?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('Date')\">Date<svg\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store Name</th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store SPOC</th>\r\n <th>Detections</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistFlagList?.customerunattendedData\">\r\n \r\n <td>\r\n <div class=\"table-title\">{{flagData?.dateString}}</div>\r\n </td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\" class=\"table-title-primary\">\r\n <u (click)=\"storeView(flagData.storeId)\">{{flagData?.storeName}}</u></td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">\r\n <div class=\"table-title\">{{flagData?.storeSpocEmail}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{flagData?.detections}}</div>\r\n </td>\r\n \r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\"><span\r\n class=\"actionview me-4 cursor-pointer\">View</span>\r\n </div>\r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n \r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.customerunattendedData?.length\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container> \r\n </ng-container>\r\n <ng-container *ngIf=\"currentChecklist?.checkListType === 'staffleftinthemiddle'\" >\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.staffleftinthemiddleData?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" (click)=\"sortData('Date')\">Date<svg\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store Name</th>\r\n <th *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">Store SPOC</th>\r\n <th>Detections</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistFlagList?.staffleftinthemiddleData\">\r\n \r\n <td>\r\n <div class=\"table-title\">{{flagData?.dateString}}</div>\r\n </td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\" class=\"table-title-primary\">\r\n <u (click)=\"storeView(flagData.storeId)\">{{flagData?.storeName}}</u></td>\r\n <td *ngIf=\"(headerData?.stores?.length ?? 0) > 1\">\r\n <div class=\"table-title\">{{flagData?.storeSpocEmail}}\r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"table-title\">{{flagData?.detections}}</div>\r\n </td>\r\n \r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\"><span\r\n class=\"actionview me-4 cursor-pointer\">View</span>\r\n </div>\r\n </td>\r\n \r\n </tr>\r\n </tbody>\r\n </table>\r\n \r\n </div>\r\n <div *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistFlagList?.staffleftinthemiddleData?.length\" >\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\" [currentPage]=\"currentPage\"\r\n [totalItems]=\"totalItems\" [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container> \r\n </ng-container>\r\n <ng-container *ngIf=\"(flagsTableApiState | async) === 'loading' || (flagsTableApiState | async) === 'initial'\">\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=\"(flagsTableApiState | async) === 'loaded' && !checklistFlagList?.customData?.length && !checklistFlagList?.storeopenandcloseData?.length\r\n && !checklistFlagList?.mobileusagedetectionData?.length && !checklistFlagList?.uniformdetectionData?.length && !checklistFlagList?.customerunattendedData?.length\r\n && !checklistFlagList?.staffleftinthemiddleData?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table</div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container> \r\n \r\n </div>\r\n </div>\r\n </div>\r\n </div> \r\n </div>\r\n \r\n</div>","import { ChangeDetectorRef, Component, OnDestroy, OnInit } from '@angular/core';\r\nimport { ActivatedRoute } from '@angular/router';\r\nimport { BehaviorSubject, debounceTime, distinctUntilChanged, Subject, takeUntil } from \"rxjs\";\r\nimport { GlobalStateService } from 'tango-app-ui-global';\r\nimport { FormControl } from '@angular/forms';\r\nimport { TraxService } from '../../services/trax.service';\r\nimport { Location } from '@angular/common';\r\nimport { Checklist, checkListReport, HeaderFilter } from './reports.interface';\r\n\r\n\r\n@Component({\r\n selector: 'lib-reports',\r\n templateUrl: './reports.component.html',\r\n styleUrl: './reports.component.scss'\r\n})\r\nexport class ReportsComponent implements OnDestroy, OnInit {\r\n private destroy$ = new Subject<void>();\r\n itemsPerPage = 10\r\n currentPage = 0\r\n totalItems = 0\r\n paginationSizes = [10, 20, 30]\r\n pageSize = 10\r\n sortColumName: string = '';\r\n sortDirection: number = 1;\r\n headerData: HeaderFilter | null | undefined;\r\n checklistSelectControl: FormControl = new FormControl('');\r\n searchInput: FormControl = new FormControl('');\r\n checkLists: Checklist[] = [];\r\n checkListsApiState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n currentChecklist: Checklist | null | undefined\r\n checklistReports: checkListReport[] = []\r\n flagsTableApiState = new BehaviorSubject<'initial' | 'loading' | 'loaded'>('initial')\r\n selectAllControl = new FormControl(false)\r\n\r\n\r\n constructor(private route: ActivatedRoute, public gs: GlobalStateService, private traxService: TraxService, private location: Location, private cd:ChangeDetectorRef) {\r\n this.checklistSelectControl.valueChanges.subscribe((val: string) => {\r\n if (val) {\r\n this.currentChecklist = this.checkLists?.filter((item: Checklist) => item.sourceCheckList_id === val)[0] \r\n this.getFlagsTable()\r\n }\r\n })\r\n\r\n this.searchInput.valueChanges.pipe(takeUntil(this.destroy$)).pipe(debounceTime(1000), distinctUntilChanged()).subscribe((val) => {\r\n if (val === null || val === undefined) {\r\n return\r\n }\r\n this.getFlagsTable()\r\n })\r\n\r\n this.selectAllControl.valueChanges.subscribe((val)=>{\r\n if(val){\r\n this.checklistReports.forEach((element:any) => {\r\n element['isSelected'] = true\r\n });\r\n }else{\r\n this.checklistReports.forEach((element:any) => {\r\n element['isSelected'] = false\r\n });\r\n }\r\n \r\n })\r\n }\r\n ngOnDestroy(): void {\r\n this.destroy$.next();\r\n this.destroy$.complete();\r\n }\r\n\r\n\r\n ngOnInit(): void {\r\n this.gs.dataRangeValue\r\n .pipe(takeUntil(this.destroy$))\r\n .pipe(debounceTime(1000))\r\n .subscribe((data: any) => {\r\n if (data?.client) { \r\n console.log(data);\r\n \r\n this.headerData = data;\r\n if (this.headerData?.stores?.length) {\r\n this.headerData.stores = this.headerData.stores.filter((data: any) => data?.checked)\r\n }\r\n\r\n this.getChecklists()\r\n }\r\n\r\n })\r\n\r\n this.route.queryParams\r\n .pipe(takeUntil(this.destroy$))\r\n .subscribe((params) => {\r\n if (params?.id) {\r\n this.checklistSelectControl.setValue(params?.id, { emitEvent: false })\r\n }\r\n });\r\n }\r\n\r\n getChecklists(): void {\r\n this.checkListsApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n }\r\n\r\n\r\n this.traxService.getChecklistDropdownData(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => { \r\n this.checkListsApiState.next('loaded')\r\n if (res?.data?.checklistDropdownData) {\r\n this.checkLists = res.data.checklistDropdownData \r\n this.currentChecklist = this.checkLists?.filter((item: Checklist) => item.sourceCheckList_id === this.checklistSelectControl.value)[0]\r\n // this.currentChecklist.checkListType = 'storeopenandclose'\r\n // this.currentChecklist.checkListType = 'mobileusagedetection'\r\n // this.currentChecklist.checkListType = 'uniformdetection'\r\n // this.currentChecklist.checkListType = 'customerunattended'\r\n // this.currentChecklist.checkListType = 'staffleftinthemiddle'\r\n // this.currentChecklist.checkListType = 'custom'\r\n if (!this.currentChecklist) {\r\n this.currentChecklist = this.checkLists[0]\r\n }\r\n setTimeout(() => {\r\n this.checklistSelectControl.setValue(this.currentChecklist?.sourceCheckList_id)\r\n }, 1000);\r\n } else {\r\n this.checkLists = []\r\n this.checklistReports = []\r\n this.checklistSelectControl.setValue('', { emitEvent: false })\r\n }\r\n },\r\n error: (e) => {\r\n console.log(e);\r\n\r\n }\r\n })\r\n }\r\n\r\n getFlagsTable(): void {\r\n this.flagsTableApiState.next('loading')\r\n const data: Record<string, any> = {\r\n \"clientId\": this.headerData?.client,\r\n \"storeId\": this.headerData?.stores.map((val: { storeId: string, storeName: string }) => val.storeId),\r\n \"fromDate\": this.headerData?.date.startDate,\r\n \"toDate\": this.headerData?.date.endDate,\r\n \"limit\": this.pageSize,\r\n \"offset\": this.currentPage > 0 ? this.currentPage - 1 : 0,\r\n \"sortColumnName\": this.sortColumName,\r\n \"sortBy\": this.sortDirection,\r\n \"checklistType\": this.currentChecklist?.checkListType,\r\n \"sourceCheckList_id\": this.currentChecklist?.sourceCheckList_id,\r\n \"searchValue\": this.searchInput.value,\r\n \"sort\": this.sortColumName,\r\n\r\n }\r\n\r\n\r\n this.traxService.reportTable(data).pipe(takeUntil(this.destroy$)).subscribe({\r\n next: (res) => {\r\n this.flagsTableApiState.next('loaded')\r\n if (res?.data?.totalCount) {\r\n this.totalItems = res.data.totalCount\r\n } else {\r\n this.totalItems = 0\r\n }\r\n if (res?.data) {\r\n this.checklistReports = res.data.reportChecklistTableData \r\n\r\n if(this.selectAllControl.value){\r\n this.checklistReports.forEach((element:any) => {\r\n element['isSelected'] = true\r\n });\r\n }else{\r\n this.checklistReports.forEach((element:any) => {\r\n element['isSelected'] = false\r\n });\r\n }\r\n \r\n } else {\r\n this.checklistReports = []\r\n } \r\n },\r\n error: (e) => {\r\n this.flagsTableApiState.next('loaded')\r\n\r\n }\r\n })\r\n }\r\n\r\n\r\n sortData(column: string): void {\r\n if (this.sortColumName === column) {\r\n this.sortDirection = this.sortDirection === 1 ? -1 : 1;\r\n } else {\r\n this.sortColumName = column;\r\n this.sortDirection = 1;\r\n }\r\n this.getFlagsTable()\r\n }\r\n\r\n onPageSizeChange(pageSize: any) {\r\n this.currentPage = 1;\r\n this.itemsPerPage = pageSize;\r\n this.pageSize = pageSize;\r\n this.getFlagsTable()\r\n\r\n }\r\n\r\n onPageChange(pageOffset: any) {\r\n this.currentPage = pageOffset\r\n this.getFlagsTable()\r\n }\r\n\r\n \r\n}\r\n","<div class=\"row\">\r\n <div class=\"col-md-12 my-2\">\r\n <div class=\" card\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12\">\r\n <div class=\"card-header border-0 pt-4 px-4\">\r\n <h3 class=\"card-title align-items-start flex-column\">\r\n <span class=\"card-label mb-2\">Checklist Data</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 footfallsearch svg-icon-1 position-absolute ms-8\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\"\r\n viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"17.0365\" y=\"15.1223\" width=\"8.15546\" height=\"2\"\r\n rx=\"1\" transform=\"rotate(45 17.0365 15.1223)\" fill=\"currentColor\">\r\n </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 [formControl]=\"searchInput\" type=\"text\"\r\n class=\"form-control ps-14 me-4 footfallsearch\" placeholder=\"Search\"\r\n autocomplete=\"off\" />\r\n <lib-reactive-select [formControl]=\"checklistSelectControl\"\r\n [idField]=\"'sourceCheckList_id'\" [nameField]=\"'checklistName'\"\r\n [data]=\"checkLists\" class=\"w-100 \"\r\n style=\"border: none !important; box-shadow: none !important;\">\r\n <ng-template let-item>\r\n <div\r\n class=\"d-flex justify-content-between align-items-center no-border-custom-select\">\r\n <span>{{ item.label }}</span>\r\n <span class=\"d-flex align-items-center\">\r\n <!-- <span class=\"status-text\">Status</span> -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M4 6L8 10L12 6\" stroke=\"#101828\" stroke-width=\"2\"\r\n stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n </div>\r\n </ng-template>\r\n </lib-reactive-select>\r\n <button type=\"button\"\r\n class=\"btn-outline btn align-items-end text-nowrap invheader ms-4\">\r\n <!-- Export Icon -->\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\"\r\n 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\"\r\n stroke-linejoin=\"round\"></path>\r\n </svg>\r\n <span class=\"ms-2\"></span> Export\r\n </button>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"card-body p-0\">\r\n <ng-container>\r\n <ng-container\r\n *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistReports?.length\">\r\n <div class=\"table-responsive px-4\">\r\n <table class=\"table text-nowrap bottom-border\">\r\n <thead>\r\n <tr>\r\n <th class=\"cursor-pointer\" >\r\n <input [formControl] = 'selectAllControl' \r\n class=\"form-check-input cursor-pointer me-4\" type=\"checkbox\">\r\n Submitted Date<svg (click)=\"sortData('Date')\"\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" >Checklist Name<svg (click)=\"sortData('Date')\"\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" >Store Name<svg (click)=\"sortData('Date')\"\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th class=\"cursor-pointer\" >Submitted By<svg (click)=\"sortData('Date')\"\r\n [ngClass]=\"sortColumName === 'Date' && sortDirection === 1 ? 'rotate' : ''\"\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\"\r\n 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]=\"sortColumName === 'Date' ? '#00A3FF' : '#667085'\"\r\n stroke-width=\"1.33333\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></th>\r\n <th>Submitted Time</th>\r\n <th>Flags Raised</th>\r\n <th>Action</th>\r\n </tr>\r\n </thead>\r\n <tbody>\r\n <tr *ngFor=\"let flagData of checklistReports\">\r\n\r\n <td>\r\n <input [checked]=\"flagData?.isSelected\" \r\n class=\"form-check-input cursor-pointer me-4\" type=\"checkbox\">\r\n <span class=\"data\">{{flagData?.submittedDate}}</span>\r\n </td>\r\n <td>\r\n <div class=\"data\">{{flagData?.checklistName}}</div>\r\n </td>\r\n <td>\r\n <div class=\"data-dark\">{{flagData?.storeName}}</div>\r\n </td>\r\n <td>\r\n <div>\r\n <div class=\"symbol symbol-35px symbol-circle\">\r\n <span class=\"symbol-label bg-light-primary text-primary me-2\">\r\n {{flagData?.submittedByChar }} </span>\r\n </div><span\r\n class=\"data\">{{flagData?.submittedBy ? flagData?.submittedBy : '--'}}</span> \r\n </div>\r\n </td>\r\n <td>\r\n <div class=\"data\">{{flagData?.submittedTime}}</div>\r\n </td>\r\n <td>\r\n <div class=\"data\">{{flagData?.flagCount}}</div>\r\n </td>\r\n\r\n <td>\r\n <div routerLink=\"/manage/trax/gallery\" class=\"table-title d-flex\">\r\n <span class=\"view me-4 cursor-pointer\">View Answers</span>\r\n </div>\r\n </td>\r\n\r\n </tr>\r\n </tbody>\r\n </table>\r\n\r\n </div>\r\n <div\r\n *ngIf=\"(flagsTableApiState | async) === 'loaded' && checklistReports?.length\">\r\n <lib-pagination class=\"text-start\" [itemsPerPage]=\"itemsPerPage\"\r\n [currentPage]=\"currentPage\" [totalItems]=\"totalItems\"\r\n [paginationSizes]=\"paginationSizes\" [pageSize]=\"pageSize\"\r\n (pageChange)=\"onPageChange($event)\"\r\n (pageSizeChange)=\"onPageSizeChange($event)\"></lib-pagination>\r\n </div>\r\n </ng-container>\r\n </ng-container>\r\n <ng-container\r\n *ngIf=\"(flagsTableApiState | async) === 'loading' || (flagsTableApiState | async) === 'initial'\">\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=\"(flagsTableApiState | async) === 'loaded' && !checklistReports?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 my-6\">\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=\"nodatamaintext mt-3\">No data found</div>\r\n <div class=\"nodatasubtext\">There is no result for Checklist Performance Table\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n</div>","import { Component } from '@angular/core';\r\n\r\n@Component({\r\n selector: 'lib-managechecklist',\r\n templateUrl: './managechecklist.component.html',\r\n styleUrl: './managechecklist.component.scss'\r\n})\r\nexport class ManagechecklistComponent {\r\n\r\n}\r\n","<div class=\"card mb-5\">\r\n <div class=\"card-body pt-2 pb-1\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex flex-wrap my-2 pe-2\">\r\n <a href=\"\" class=\"d-flex align-items-center me-3 cursor-pointer\">\r\n <span><svg width=\"44\" height=\"44\" viewBox=\"0 0 44 44\" fill=\"none\"\r\n xmlns=\"http://www.w3.org/2000/svg\">\r\n <g filter=\"url(#filter0_d_987_30898)\">\r\n <rect x=\"2\" y=\"1\" width=\"40\" height=\"40\" rx=\"8\" fill=\"white\" />\r\n <rect x=\"2.5\" y=\"1.5\" width=\"39\" height=\"39\" rx=\"7.5\" stroke=\"#D0D5DD\" />\r\n <path\r\n d=\"M27.8346 21.0001H16.168M16.168 21.0001L22.0013 26.8334M16.168 21.0001L22.0013 15.1667\"\r\n 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_987_30898\" x=\"0\" y=\"0\" width=\"44\" height=\"44\"\r\n filterUnits=\"userSpaceOnUse\" 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\"\r\n result=\"effect1_dropShadow_987_30898\" />\r\n <feBlend mode=\"normal\" in=\"SourceGraphic\" in2=\"effect1_dropShadow_987_30898\"\r\n result=\"shape\" />\r\n </filter>\r\n </defs>\r\n </svg>\r\n </span>\r\n </a>\r\n <div class=\"checklist-details mx-3\">\r\n <div class=\"d-flex align-items-center maintext\">\r\n Predefined Checklist\r\n </div>\r\n <div class=\"subtext\">\r\n An overview of the store issues and the downtime for 02 July, 2023\r\n </div>\r\n </div>\r\n </div>\r\n <!--end::Info-->\r\n </div>\r\n\r\n <div class=\"col-ld-12\">\r\n <div class=\"row m-0\">\r\n <div class=\"col-md-4 my-3\">\r\n <div class=\"checklistimg\">\r\n <img class=\"mx-1\" src=\"assets/tango/Images/checklistVideo-player1.svg\" alt=\"Checklist Video Player\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <span class=\"imgtext me-2\">Retail Store Checklist - Daily</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_801_62593)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" \r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_801_62593\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"imgsubtext\">It streamlines daily tasks, covering inventory, cleanliness, and customer service to ensure a well-organized store and improved...</div>\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <div>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"mx-1\">900</span></span>\r\n <span class=\"mx-4\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M2.14549 4.64215L2.1029 4.70866C1.65644 5.49832 2.13313 6.49629 2.99045 6.61074C3.0681 6.62024 3.14036 6.62526 3.21097 6.62526C3.67349 6.62526 4.08242 6.42684 4.36744 6.11746L4.81011 5.63696L5.25127 6.11884C5.53283 6.42638 5.94083 6.62526 6.40648 6.62526C6.87003 6.62526 7.28038 6.4261 7.56168 6.11884L8.00423 5.63545L8.44678 6.11884C8.72808 6.4261 9.13843 6.62526 9.60199 6.62526C10.0655 6.62526 10.4759 6.4261 10.7572 6.11884L11.1997 5.63545L11.6423 6.11884C11.9236 6.4261 12.3339 6.62526 12.7975 6.62526C12.8658 6.62526 12.9402 6.62022 13.0174 6.61082C13.8935 6.49137 14.3717 5.43995 13.8608 4.64255C13.8608 4.6425 13.8607 4.64246 13.8607 4.64241L12.4542 2.44928L12.4534 2.44811C12.4413 2.42904 12.4113 2.40859 12.3735 2.40859H3.63001C3.5923 2.40859 3.56231 2.42904 3.55014 2.44811L3.54965 2.44888L2.14549 4.64215ZM12.5226 8.58877V11.0943V11.6943H11.9226H4.08091H3.48091V11.0943V8.58914C3.39272 8.5957 3.30351 8.59907 3.21342 8.59907C3.17958 8.59907 3.14596 8.59857 3.11257 8.59759V11.0943V12.6419C3.11257 13.1567 3.53969 13.5895 4.08091 13.5895H11.9226C12.4639 13.5895 12.891 13.1567 12.891 12.6419V11.0943V8.59774C12.8591 8.59862 12.8271 8.59907 12.795 8.59907C12.7035 8.59907 12.6126 8.59559 12.5226 8.58877Z\" stroke=\"#667085\" stroke-width=\"1.2\"/>\r\n </svg><span class=\"mx-1\">1200</span></span>\r\n </div>\r\n \r\n <span class=\"badge badge-light-success\">Published</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 my-3\">\r\n <div class=\"checklistimg\">\r\n <img class=\"mx-1\" src=\"assets/tango/Images/checklistVideo-player1.svg\" alt=\"Checklist Video Player\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <span class=\"imgtext me-2\">Retail Store Checklist - Daily</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_801_62593)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" \r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_801_62593\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"imgsubtext\">It streamlines daily tasks, covering inventory, cleanliness, and customer service to ensure a well-organized store and improved...</div>\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <div>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"mx-1\">900</span></span>\r\n <span class=\"mx-4\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M2.14549 4.64215L2.1029 4.70866C1.65644 5.49832 2.13313 6.49629 2.99045 6.61074C3.0681 6.62024 3.14036 6.62526 3.21097 6.62526C3.67349 6.62526 4.08242 6.42684 4.36744 6.11746L4.81011 5.63696L5.25127 6.11884C5.53283 6.42638 5.94083 6.62526 6.40648 6.62526C6.87003 6.62526 7.28038 6.4261 7.56168 6.11884L8.00423 5.63545L8.44678 6.11884C8.72808 6.4261 9.13843 6.62526 9.60199 6.62526C10.0655 6.62526 10.4759 6.4261 10.7572 6.11884L11.1997 5.63545L11.6423 6.11884C11.9236 6.4261 12.3339 6.62526 12.7975 6.62526C12.8658 6.62526 12.9402 6.62022 13.0174 6.61082C13.8935 6.49137 14.3717 5.43995 13.8608 4.64255C13.8608 4.6425 13.8607 4.64246 13.8607 4.64241L12.4542 2.44928L12.4534 2.44811C12.4413 2.42904 12.4113 2.40859 12.3735 2.40859H3.63001C3.5923 2.40859 3.56231 2.42904 3.55014 2.44811L3.54965 2.44888L2.14549 4.64215ZM12.5226 8.58877V11.0943V11.6943H11.9226H4.08091H3.48091V11.0943V8.58914C3.39272 8.5957 3.30351 8.59907 3.21342 8.59907C3.17958 8.59907 3.14596 8.59857 3.11257 8.59759V11.0943V12.6419C3.11257 13.1567 3.53969 13.5895 4.08091 13.5895H11.9226C12.4639 13.5895 12.891 13.1567 12.891 12.6419V11.0943V8.59774C12.8591 8.59862 12.8271 8.59907 12.795 8.59907C12.7035 8.59907 12.6126 8.59559 12.5226 8.58877Z\" stroke=\"#667085\" stroke-width=\"1.2\"/>\r\n </svg><span class=\"mx-1\">1200</span></span>\r\n </div>\r\n \r\n <span class=\"badge badge-light-success\">Published</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 my-3\">\r\n <div class=\"checklistimg\">\r\n <img class=\"mx-1\" src=\"assets/tango/Images/checklistVideo-player1.svg\" alt=\"Checklist Video Player\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <span class=\"imgtext me-2\">Retail Store Checklist - Daily</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_801_62593)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" \r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_801_62593\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"imgsubtext\">It streamlines daily tasks, covering inventory, cleanliness, and customer service to ensure a well-organized store and improved...</div>\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <div>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"mx-1\">900</span></span>\r\n <span class=\"mx-4\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M2.14549 4.64215L2.1029 4.70866C1.65644 5.49832 2.13313 6.49629 2.99045 6.61074C3.0681 6.62024 3.14036 6.62526 3.21097 6.62526C3.67349 6.62526 4.08242 6.42684 4.36744 6.11746L4.81011 5.63696L5.25127 6.11884C5.53283 6.42638 5.94083 6.62526 6.40648 6.62526C6.87003 6.62526 7.28038 6.4261 7.56168 6.11884L8.00423 5.63545L8.44678 6.11884C8.72808 6.4261 9.13843 6.62526 9.60199 6.62526C10.0655 6.62526 10.4759 6.4261 10.7572 6.11884L11.1997 5.63545L11.6423 6.11884C11.9236 6.4261 12.3339 6.62526 12.7975 6.62526C12.8658 6.62526 12.9402 6.62022 13.0174 6.61082C13.8935 6.49137 14.3717 5.43995 13.8608 4.64255C13.8608 4.6425 13.8607 4.64246 13.8607 4.64241L12.4542 2.44928L12.4534 2.44811C12.4413 2.42904 12.4113 2.40859 12.3735 2.40859H3.63001C3.5923 2.40859 3.56231 2.42904 3.55014 2.44811L3.54965 2.44888L2.14549 4.64215ZM12.5226 8.58877V11.0943V11.6943H11.9226H4.08091H3.48091V11.0943V8.58914C3.39272 8.5957 3.30351 8.59907 3.21342 8.59907C3.17958 8.59907 3.14596 8.59857 3.11257 8.59759V11.0943V12.6419C3.11257 13.1567 3.53969 13.5895 4.08091 13.5895H11.9226C12.4639 13.5895 12.891 13.1567 12.891 12.6419V11.0943V8.59774C12.8591 8.59862 12.8271 8.59907 12.795 8.59907C12.7035 8.59907 12.6126 8.59559 12.5226 8.58877Z\" stroke=\"#667085\" stroke-width=\"1.2\"/>\r\n </svg><span class=\"mx-1\">1200</span></span>\r\n </div>\r\n \r\n <span class=\"badge badge-light-success\">Published</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"row m-0\">\r\n <div class=\"col-md-4 my-3\">\r\n <div class=\"checklistimg\">\r\n <img class=\"mx-1\" src=\"assets/tango/Images/checklistVideo-player1.svg\" alt=\"Checklist Video Player\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <span class=\"imgtext me-2\">Retail Store Checklist - Daily</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_801_62593)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" \r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_801_62593\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"imgsubtext\">It streamlines daily tasks, covering inventory, cleanliness, and customer service to ensure a well-organized store and improved...</div>\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <div>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"mx-1\">900</span></span>\r\n <span class=\"mx-4\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M2.14549 4.64215L2.1029 4.70866C1.65644 5.49832 2.13313 6.49629 2.99045 6.61074C3.0681 6.62024 3.14036 6.62526 3.21097 6.62526C3.67349 6.62526 4.08242 6.42684 4.36744 6.11746L4.81011 5.63696L5.25127 6.11884C5.53283 6.42638 5.94083 6.62526 6.40648 6.62526C6.87003 6.62526 7.28038 6.4261 7.56168 6.11884L8.00423 5.63545L8.44678 6.11884C8.72808 6.4261 9.13843 6.62526 9.60199 6.62526C10.0655 6.62526 10.4759 6.4261 10.7572 6.11884L11.1997 5.63545L11.6423 6.11884C11.9236 6.4261 12.3339 6.62526 12.7975 6.62526C12.8658 6.62526 12.9402 6.62022 13.0174 6.61082C13.8935 6.49137 14.3717 5.43995 13.8608 4.64255C13.8608 4.6425 13.8607 4.64246 13.8607 4.64241L12.4542 2.44928L12.4534 2.44811C12.4413 2.42904 12.4113 2.40859 12.3735 2.40859H3.63001C3.5923 2.40859 3.56231 2.42904 3.55014 2.44811L3.54965 2.44888L2.14549 4.64215ZM12.5226 8.58877V11.0943V11.6943H11.9226H4.08091H3.48091V11.0943V8.58914C3.39272 8.5957 3.30351 8.59907 3.21342 8.59907C3.17958 8.59907 3.14596 8.59857 3.11257 8.59759V11.0943V12.6419C3.11257 13.1567 3.53969 13.5895 4.08091 13.5895H11.9226C12.4639 13.5895 12.891 13.1567 12.891 12.6419V11.0943V8.59774C12.8591 8.59862 12.8271 8.59907 12.795 8.59907C12.7035 8.59907 12.6126 8.59559 12.5226 8.58877Z\" stroke=\"#667085\" stroke-width=\"1.2\"/>\r\n </svg><span class=\"mx-1\">1200</span></span>\r\n </div>\r\n \r\n <span class=\"badge badge-light-success\">Published</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 my-3\">\r\n <div class=\"checklistimg\">\r\n <img class=\"mx-1\" src=\"assets/tango/Images/checklistVideo-player1.svg\" alt=\"Checklist Video Player\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <span class=\"imgtext me-2\">Retail Store Checklist - Daily</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_801_62593)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" \r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_801_62593\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"imgsubtext\">It streamlines daily tasks, covering inventory, cleanliness, and customer service to ensure a well-organized store and improved...</div>\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <div>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"mx-1\">900</span></span>\r\n <span class=\"mx-4\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M2.14549 4.64215L2.1029 4.70866C1.65644 5.49832 2.13313 6.49629 2.99045 6.61074C3.0681 6.62024 3.14036 6.62526 3.21097 6.62526C3.67349 6.62526 4.08242 6.42684 4.36744 6.11746L4.81011 5.63696L5.25127 6.11884C5.53283 6.42638 5.94083 6.62526 6.40648 6.62526C6.87003 6.62526 7.28038 6.4261 7.56168 6.11884L8.00423 5.63545L8.44678 6.11884C8.72808 6.4261 9.13843 6.62526 9.60199 6.62526C10.0655 6.62526 10.4759 6.4261 10.7572 6.11884L11.1997 5.63545L11.6423 6.11884C11.9236 6.4261 12.3339 6.62526 12.7975 6.62526C12.8658 6.62526 12.9402 6.62022 13.0174 6.61082C13.8935 6.49137 14.3717 5.43995 13.8608 4.64255C13.8608 4.6425 13.8607 4.64246 13.8607 4.64241L12.4542 2.44928L12.4534 2.44811C12.4413 2.42904 12.4113 2.40859 12.3735 2.40859H3.63001C3.5923 2.40859 3.56231 2.42904 3.55014 2.44811L3.54965 2.44888L2.14549 4.64215ZM12.5226 8.58877V11.0943V11.6943H11.9226H4.08091H3.48091V11.0943V8.58914C3.39272 8.5957 3.30351 8.59907 3.21342 8.59907C3.17958 8.59907 3.14596 8.59857 3.11257 8.59759V11.0943V12.6419C3.11257 13.1567 3.53969 13.5895 4.08091 13.5895H11.9226C12.4639 13.5895 12.891 13.1567 12.891 12.6419V11.0943V8.59774C12.8591 8.59862 12.8271 8.59907 12.795 8.59907C12.7035 8.59907 12.6126 8.59559 12.5226 8.58877Z\" stroke=\"#667085\" stroke-width=\"1.2\"/>\r\n </svg><span class=\"mx-1\">1200</span></span>\r\n </div>\r\n \r\n <span class=\"badge badge-light-success\">Published</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-4 my-3\">\r\n <div class=\"checklistimg\">\r\n <img class=\"mx-1\" src=\"assets/tango/Images/checklistVideo-player1.svg\" alt=\"Checklist Video Player\">\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <span class=\"imgtext me-2\">Retail Store Checklist - Daily</span>\r\n <span class=\"d-flex align-items-center\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_801_62593)\">\r\n <path d=\"M9.16797 3.33417H3.33464C2.89261 3.33417 2.46868 3.50977 2.15612 3.82233C1.84356 4.13489 1.66797 4.55881 1.66797 5.00084V16.6675C1.66797 17.1095 1.84356 17.5335 2.15612 17.846C2.46868 18.1586 2.89261 18.3342 3.33464 18.3342H15.0013C15.4433 18.3342 15.8673 18.1586 16.1798 17.846C16.4924 17.5335 16.668 17.1095 16.668 16.6675V10.8342M15.418 2.08417C15.7495 1.75265 16.1991 1.56641 16.668 1.56641C17.1368 1.56641 17.5864 1.75265 17.918 2.08417C18.2495 2.41569 18.4357 2.86533 18.4357 3.33417C18.4357 3.80301 18.2495 4.25265 17.918 4.58417L10.0013 12.5008L6.66797 13.3342L7.5013 10.0008L15.418 2.08417Z\" \r\n stroke=\"#667085\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_801_62593\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg>\r\n </span>\r\n </div>\r\n </div>\r\n <div class=\"imgsubtext\">It streamlines daily tasks, covering inventory, cleanliness, and customer service to ensure a well-organized store and improved...</div>\r\n <div class=\"col-12\">\r\n <div class=\"d-flex flex-stack\">\r\n <div>\r\n <span><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M13.3346 14V12.6667C13.3346 11.9594 13.0537 11.2811 12.5536 10.781C12.0535 10.281 11.3752 10 10.668 10H5.33464C4.62739 10 3.94911 10.281 3.44902 10.781C2.94892 11.2811 2.66797 11.9594 2.66797 12.6667V14M10.668 4.66667C10.668 6.13943 9.47406 7.33333 8.0013 7.33333C6.52854 7.33333 5.33464 6.13943 5.33464 4.66667C5.33464 3.19391 6.52854 2 8.0013 2C9.47406 2 10.668 3.19391 10.668 4.66667Z\" stroke=\"#667085\" stroke-width=\"1.5\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg><span class=\"mx-1\">900</span></span>\r\n <span class=\"mx-4\" ><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"16\" height=\"16\" viewBox=\"0 0 16 16\" fill=\"none\">\r\n <path d=\"M2.14549 4.64215L2.1029 4.70866C1.65644 5.49832 2.13313 6.49629 2.99045 6.61074C3.0681 6.62024 3.14036 6.62526 3.21097 6.62526C3.67349 6.62526 4.08242 6.42684 4.36744 6.11746L4.81011 5.63696L5.25127 6.11884C5.53283 6.42638 5.94083 6.62526 6.40648 6.62526C6.87003 6.62526 7.28038 6.4261 7.56168 6.11884L8.00423 5.63545L8.44678 6.11884C8.72808 6.4261 9.13843 6.62526 9.60199 6.62526C10.0655 6.62526 10.4759 6.4261 10.7572 6.11884L11.1997 5.63545L11.6423 6.11884C11.9236 6.4261 12.3339 6.62526 12.7975 6.62526C12.8658 6.62526 12.9402 6.62022 13.0174 6.61082C13.8935 6.49137 14.3717 5.43995 13.8608 4.64255C13.8608 4.6425 13.8607 4.64246 13.8607 4.64241L12.4542 2.44928L12.4534 2.44811C12.4413 2.42904 12.4113 2.40859 12.3735 2.40859H3.63001C3.5923 2.40859 3.56231 2.42904 3.55014 2.44811L3.54965 2.44888L2.14549 4.64215ZM12.5226 8.58877V11.0943V11.6943H11.9226H4.08091H3.48091V11.0943V8.58914C3.39272 8.5957 3.30351 8.59907 3.21342 8.59907C3.17958 8.59907 3.14596 8.59857 3.11257 8.59759V11.0943V12.6419C3.11257 13.1567 3.53969 13.5895 4.08091 13.5895H11.9226C12.4639 13.5895 12.891 13.1567 12.891 12.6419V11.0943V8.59774C12.8591 8.59862 12.8271 8.59907 12.795 8.59907C12.7035 8.59907 12.6126 8.59559 12.5226 8.58877Z\" stroke=\"#667085\" stroke-width=\"1.2\"/>\r\n </svg><span class=\"mx-1\">1200</span></span>\r\n </div>\r\n \r\n <span class=\"badge badge-light-success\">Published</span>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>","import { NgModule } from '@angular/core';\r\nimport { RouterModule, Routes } from '@angular/router';\r\nimport { ChecklistComponent } from './components/checklist/checklist.component';\r\nimport { AddChecklistComponent } from './components/add-checklist/add-checklist.component';\r\nimport { TangoAnalyseTraxComponent } from './components/tango-analyse-trax/tango-analyse-trax.component';\r\nimport { ChecklistConfigureComponent } from './components/checklist-configure/checklist-configure.component';\r\nimport { GalleryComponent } from './components/gallery/gallery.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { DashboardInfoComponent } from './components/dashboard-info/dashboard-info.component';\r\nimport { FlagsComponent } from './components/flags/flags.component';\r\nimport { FlagsInfoComponent } from './components/flags-info/flags-info.component';\r\nimport { ReportsComponent } from './components/reports/reports.component';\r\nimport { ManagechecklistComponent } from './components/managechecklist/managechecklist.component';\r\n\r\nconst routes: Routes = [\r\n {\r\n path:'',\r\n component:TangoAnalyseTraxComponent,\r\n },\r\n {\r\n path:'dashboard',\r\n component:DashboardComponent,\r\n },\r\n {\r\n path:'checklist',\r\n component:ChecklistComponent,\r\n },\r\n {\r\n path:'createChecklist',\r\n component:AddChecklistComponent,\r\n },\r\n {\r\n path:'configure',\r\n component:ChecklistConfigureComponent,\r\n },\r\n {\r\n path:'gallery',\r\n component:GalleryComponent,\r\n },\r\n {\r\n path:'info',\r\n component:DashboardInfoComponent,\r\n },\r\n {\r\n path:'flags',\r\n component:FlagsComponent,\r\n },\r\n {\r\n path:'flagsinfo',\r\n component:FlagsInfoComponent,\r\n },\r\n {\r\n path:'reports',\r\n component:ReportsComponent,\r\n },\r\n {\r\n path:'managechecklist',\r\n component:ManagechecklistComponent,\r\n },\r\n \r\n\r\n \r\n];\r\n@NgModule({\r\n imports: [RouterModule.forChild(routes)],\r\n exports: [RouterModule]\r\n})\r\nexport class TangoAnalyseTraxRoutingModule { }\r\n","import { NgModule } from '@angular/core';\r\nimport { CommonModule } from '@angular/common';\r\nimport { TangoAnalyseTraxRoutingModule } from './tango-analyse-trax-routing.module';\r\nimport { TangoAnalyseTraxComponent } from './components/tango-analyse-trax/tango-analyse-trax.component';\r\nimport { CommonSharedModule } from 'tango-app-ui-shared';\r\nimport { AddChecklistComponent } from './components/add-checklist/add-checklist.component';\r\n// import { ChecklistComponent } from './components/checklist/checklist.component';\r\nimport { FormsModule,ReactiveFormsModule } from '@angular/forms';\r\nimport { DragDropModule } from '@angular/cdk/drag-drop';\r\nimport { TraxpopupComponent } from './components/traxpopup/traxpopup.component';\r\nimport { ChecklistConfigureComponent } from './components/checklist-configure/checklist-configure.component';\r\nimport { ChecklistComponent } from './components/checklist/checklist.component';\r\nimport { GalleryComponent } from './components/gallery/gallery.component'; \r\nimport { NgxDaterangepickerMd } from 'ngx-daterangepicker-material';\r\nimport { ReactiveSelectComponent } from './components/reactive-select/reactive-select.component';\r\nimport { DashboardComponent } from './components/dashboard/dashboard.component';\r\nimport { DashboardInfoComponent } from './components/dashboard-info/dashboard-info.component';\r\nimport { MonthlyperformanceDatepickerComponent } from './components/dashboard-info/monthlyperformance-datepicker/monthlyperformance-datepicker.component';\r\nimport { FlagsComponent } from './components/flags/flags.component';\r\nimport { FlagsInfoComponent } from './components/flags-info/flags-info.component';\r\nimport { UnattendedPieChartComponent } from './components/flags-info/unattended-pie-chart/unattended-pie-chart.component';\r\nimport { TraxStoreComponent } from './components/trax-store/trax-store.component';\r\nimport { PaginationComponent } from './components/pagination/pagination.component';\r\nimport { ReportsComponent } from './components/reports/reports.component';\r\nimport { ManagechecklistComponent } from './components/managechecklist/managechecklist.component';\r\n\r\n\r\n@NgModule({\r\n declarations: [\r\n TangoAnalyseTraxComponent,\r\n ChecklistComponent,\r\n AddChecklistComponent,\r\n TraxpopupComponent,\r\n ChecklistConfigureComponent,\r\n GalleryComponent,\r\n ReactiveSelectComponent,\r\n DashboardComponent,\r\n DashboardInfoComponent,\r\n ReactiveSelectComponent,\r\n FlagsComponent,\r\n FlagsInfoComponent,\r\n UnattendedPieChartComponent,\r\n MonthlyperformanceDatepickerComponent,\r\n TraxStoreComponent,\r\n PaginationComponent,\r\n ReportsComponent,\r\n ManagechecklistComponent\r\n // FlagComponent\r\n ],\r\n imports: [\r\n CommonModule,\r\n TangoAnalyseTraxRoutingModule,\r\n CommonSharedModule,\r\n FormsModule,\r\n DragDropModule,\r\n ReactiveFormsModule, \r\n NgxDaterangepickerMd\r\n\r\n ]\r\n})\r\nexport class TangoAnalyseTraxModule { }\r\n","/*\r\n * Public API Surface of tango-analyse-trax\r\n */\r\n\r\nexport * from './lib/tango-analyse-trax.module';\r\nexport * from './lib/components/tango-analyse-trax/tango-analyse-trax.component';\r\n","/**\n * Generated bundle index. Do not edit.\n */\n\nexport * from './public-api';\n"],"names":["i1","i2","i3","i4","i2.TraxService","i5","i6","i7","i6.TraxService","i1.TraxService","i3.TraxService","i8.ReactiveSelectComponent","i9.PaginationComponent","i4.TraxService","i7.ReactiveSelectComponent","i8.MonthlyperformanceDatepickerComponent","i8.UnattendedPieChartComponent"],"mappings":"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"}
|