tango-app-ui-manage-tickets 3.7.0-beta.6 → 3.7.0-beta.61

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.
Files changed (147) hide show
  1. package/.eslintrc.json +37 -0
  2. package/ng-package.json +7 -0
  3. package/package.json +12 -25
  4. package/src/lib/components/add-csm-modal/add-csm-modal.component.html +32 -0
  5. package/src/lib/components/add-csm-modal/add-csm-modal.component.scss +14 -0
  6. package/src/lib/components/add-csm-modal/add-csm-modal.component.spec.ts +23 -0
  7. package/src/lib/components/add-csm-modal/add-csm-modal.component.ts +94 -0
  8. package/src/lib/components/audit-log/audit-log.component.html +1 -0
  9. package/src/lib/components/audit-log/audit-log.component.scss +0 -0
  10. package/src/lib/components/audit-log/audit-log.component.spec.ts +23 -0
  11. package/src/lib/components/audit-log/audit-log.component.ts +10 -0
  12. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.html +234 -0
  13. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.scss +186 -0
  14. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.spec.ts +23 -0
  15. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.ts +520 -0
  16. package/src/lib/components/audit-metrics/audit-metrics.component.html +345 -0
  17. package/src/lib/components/audit-metrics/audit-metrics.component.scss +34 -0
  18. package/src/lib/components/audit-metrics/audit-metrics.component.spec.ts +23 -0
  19. package/src/lib/components/audit-metrics/audit-metrics.component.ts +292 -0
  20. package/src/lib/components/audit-report-popup/audit-report-popup.component.html +111 -0
  21. package/src/lib/components/audit-report-popup/audit-report-popup.component.scss +101 -0
  22. package/src/lib/components/audit-report-popup/audit-report-popup.component.spec.ts +23 -0
  23. package/src/lib/components/audit-report-popup/audit-report-popup.component.ts +397 -0
  24. package/src/lib/components/audit-retag/audit-retag.component.html +129 -0
  25. package/src/lib/components/audit-retag/audit-retag.component.scss +146 -0
  26. package/src/lib/components/audit-retag/audit-retag.component.spec.ts +23 -0
  27. package/src/lib/components/audit-retag/audit-retag.component.ts +489 -0
  28. package/src/lib/components/comment-model/comment-model.component.html +24 -0
  29. package/src/lib/components/comment-model/comment-model.component.scss +20 -0
  30. package/src/lib/components/comment-model/comment-model.component.spec.ts +23 -0
  31. package/src/lib/components/comment-model/comment-model.component.ts +53 -0
  32. package/src/lib/components/count/count.component.html +54 -0
  33. package/src/lib/components/count/count.component.scss +14 -0
  34. package/src/lib/components/count/count.component.spec.ts +23 -0
  35. package/src/lib/components/count/count.component.ts +82 -0
  36. package/src/lib/components/custom-select/custom-select.component.html +134 -0
  37. package/src/lib/components/custom-select/custom-select.component.scss +204 -0
  38. package/src/lib/components/custom-select/custom-select.component.spec.ts +23 -0
  39. package/src/lib/components/custom-select/custom-select.component.ts +189 -0
  40. package/src/lib/components/filter-options/filter-options.component.html +51 -0
  41. package/src/lib/components/filter-options/filter-options.component.scss +102 -0
  42. package/src/lib/components/filter-options/filter-options.component.spec.ts +23 -0
  43. package/src/lib/components/filter-options/filter-options.component.ts +38 -0
  44. package/src/lib/components/footfall-dic/footfall-dic.component.html +1275 -0
  45. package/src/lib/components/footfall-dic/footfall-dic.component.scss +273 -0
  46. package/src/lib/components/footfall-dic/footfall-dic.component.spec.ts +23 -0
  47. package/src/lib/components/footfall-dic/footfall-dic.component.ts +1206 -0
  48. package/src/lib/components/footfall-dicview/footfall-dicview.component.html +1136 -0
  49. package/src/lib/components/footfall-dicview/footfall-dicview.component.scss +416 -0
  50. package/src/lib/components/footfall-dicview/footfall-dicview.component.spec.ts +23 -0
  51. package/src/lib/components/footfall-dicview/footfall-dicview.component.ts +1168 -0
  52. package/src/lib/components/footfall-popup/footfall-popup.component.html +61 -0
  53. package/src/lib/components/footfall-popup/footfall-popup.component.scss +20 -0
  54. package/src/lib/components/footfall-popup/footfall-popup.component.spec.ts +23 -0
  55. package/src/lib/components/footfall-popup/footfall-popup.component.ts +12 -0
  56. package/src/lib/components/group-select/group-select.component.html +44 -0
  57. package/src/lib/components/group-select/group-select.component.scss +144 -0
  58. package/src/lib/components/group-select/group-select.component.spec.ts +23 -0
  59. package/src/lib/components/group-select/group-select.component.ts +145 -0
  60. package/src/lib/components/re-trigger/re-trigger.component.html +53 -0
  61. package/src/lib/components/re-trigger/re-trigger.component.scss +16 -0
  62. package/src/lib/components/re-trigger/re-trigger.component.spec.ts +23 -0
  63. package/src/lib/components/re-trigger/re-trigger.component.ts +96 -0
  64. package/src/lib/components/reactive-select/reactive-select.component.html +18 -0
  65. package/src/lib/components/reactive-select/reactive-select.component.scss +52 -0
  66. package/src/lib/components/reactive-select/reactive-select.component.spec.ts +23 -0
  67. package/src/lib/components/reactive-select/reactive-select.component.ts +104 -0
  68. package/src/lib/components/remove-audit/remove-audit.component.html +38 -0
  69. package/src/lib/components/remove-audit/remove-audit.component.scss +27 -0
  70. package/src/lib/components/remove-audit/remove-audit.component.spec.ts +23 -0
  71. package/src/lib/components/remove-audit/remove-audit.component.ts +81 -0
  72. package/src/lib/components/start-audit/start-audit.component.html +174 -0
  73. package/src/lib/components/start-audit/start-audit.component.scss +185 -0
  74. package/src/lib/components/start-audit/start-audit.component.spec.ts +23 -0
  75. package/src/lib/components/start-audit/start-audit.component.ts +761 -0
  76. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.html +43 -0
  77. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.scss +35 -0
  78. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.spec.ts +23 -0
  79. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.ts +118 -0
  80. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.html +386 -0
  81. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.scss +87 -0
  82. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.spec.ts +23 -0
  83. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.ts +494 -0
  84. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.html +4743 -0
  85. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.scss +1208 -0
  86. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.spec.ts +23 -0
  87. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.ts +3344 -0
  88. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.html +100 -0
  89. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.scss +34 -0
  90. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.spec.ts +23 -0
  91. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.ts +48 -0
  92. package/src/lib/components/tickets/tickets.component.html +451 -0
  93. package/src/lib/components/tickets/tickets.component.scss +131 -0
  94. package/src/lib/components/tickets/tickets.component.spec.ts +23 -0
  95. package/src/lib/components/tickets/tickets.component.ts +809 -0
  96. package/src/lib/components/viewcategory/viewcategory.component.html +38 -0
  97. package/src/lib/components/viewcategory/viewcategory.component.scss +29 -0
  98. package/src/lib/components/viewcategory/viewcategory.component.spec.ts +23 -0
  99. package/src/lib/components/viewcategory/viewcategory.component.ts +79 -0
  100. package/src/lib/services/audit.service.spec.ts +16 -0
  101. package/src/lib/services/audit.service.ts +98 -0
  102. package/src/lib/services/excel.service.ts +48 -0
  103. package/src/lib/services/ticket.service.spec.ts +16 -0
  104. package/src/lib/services/ticket.service.ts +501 -0
  105. package/src/lib/services/timer.service.spec.ts +16 -0
  106. package/src/lib/services/timer.service.ts +92 -0
  107. package/src/lib/tango-manage-tickets-routing.module.ts +37 -0
  108. package/src/lib/tango-manage-tickets.module.ts +68 -0
  109. package/{public-api.d.ts → src/public-api.ts} +8 -2
  110. package/tsconfig.lib.json +14 -0
  111. package/tsconfig.lib.prod.json +10 -0
  112. package/tsconfig.spec.json +14 -0
  113. package/esm2022/lib/components/add-csm-modal/add-csm-modal.component.mjs +0 -98
  114. package/esm2022/lib/components/audit-log/audit-log.component.mjs +0 -11
  115. package/esm2022/lib/components/audit-metrics/audit-metrics.component.mjs +0 -298
  116. package/esm2022/lib/components/comment-model/comment-model.component.mjs +0 -58
  117. package/esm2022/lib/components/count/count.component.mjs +0 -89
  118. package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +0 -894
  119. package/esm2022/lib/components/group-select/group-select.component.mjs +0 -155
  120. package/esm2022/lib/components/re-trigger/re-trigger.component.mjs +0 -96
  121. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +0 -108
  122. package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +0 -127
  123. package/esm2022/lib/components/tickets/tickets.component.mjs +0 -793
  124. package/esm2022/lib/services/excel.service.mjs +0 -45
  125. package/esm2022/lib/services/ticket.service.mjs +0 -158
  126. package/esm2022/lib/tango-manage-tickets-routing.module.mjs +0 -24
  127. package/esm2022/lib/tango-manage-tickets.module.mjs +0 -54
  128. package/esm2022/public-api.mjs +0 -6
  129. package/esm2022/tango-app-ui-manage-tickets.mjs +0 -5
  130. package/fesm2022/tango-app-ui-manage-tickets.mjs +0 -2914
  131. package/fesm2022/tango-app-ui-manage-tickets.mjs.map +0 -1
  132. package/index.d.ts +0 -5
  133. package/lib/components/add-csm-modal/add-csm-modal.component.d.ts +0 -30
  134. package/lib/components/audit-log/audit-log.component.d.ts +0 -5
  135. package/lib/components/audit-metrics/audit-metrics.component.d.ts +0 -59
  136. package/lib/components/comment-model/comment-model.component.d.ts +0 -17
  137. package/lib/components/count/count.component.d.ts +0 -23
  138. package/lib/components/footfall-dic/footfall-dic.component.d.ts +0 -130
  139. package/lib/components/group-select/group-select.component.d.ts +0 -33
  140. package/lib/components/re-trigger/re-trigger.component.d.ts +0 -32
  141. package/lib/components/reactive-select/reactive-select.component.d.ts +0 -32
  142. package/lib/components/tango-manage-tickets/tango-manage-tickets.component.d.ts +0 -27
  143. package/lib/components/tickets/tickets.component.d.ts +0 -84
  144. package/lib/services/excel.service.d.ts +0 -10
  145. package/lib/services/ticket.service.d.ts +0 -49
  146. package/lib/tango-manage-tickets-routing.module.d.ts +0 -7
  147. package/lib/tango-manage-tickets.module.d.ts +0 -21
@@ -0,0 +1,292 @@
1
+ import { Component, OnDestroy, OnInit, ViewChild } from '@angular/core';
2
+ import { NgbModal } from '@ng-bootstrap/ng-bootstrap';
3
+ import { Subject, takeUntil } from 'rxjs';
4
+ import { GlobalStateService } from 'tango-app-ui-global';
5
+ import dayjs from "dayjs";
6
+ import "dayjs/locale/en";
7
+ import utc from "dayjs/plugin/utc";
8
+ import timezone from "dayjs/plugin/timezone";
9
+ import { ReTriggerComponent } from '../re-trigger/re-trigger.component';
10
+ import { TicketService } from '../../services/ticket.service';
11
+ import { ToastService } from 'tango-app-ui-shared';
12
+ import { ExcelService } from '../../services/excel.service';
13
+ import { CountComponent } from '../count/count.component';
14
+
15
+
16
+ @Component({
17
+ selector: 'lib-audit-metrics',
18
+ templateUrl: './audit-metrics.component.html',
19
+ styleUrl: './audit-metrics.component.scss'
20
+ })
21
+ export class AuditMetricsComponent implements OnInit,OnDestroy {
22
+ noData:boolean = false;
23
+ loading:boolean = true;
24
+
25
+ storesData:any = [];
26
+ activity:any = [
27
+ {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'},
28
+ {type:'Re-Audit',FileDate:'28-10-2023',Time:'03:24 pm',beforeCout:'350',AfterCount:'120'},
29
+ {type:'Audit',FileDate:'28-11-2023',Time:'03:24 pm',beforeCout:'300',AfterCount:'100'}
30
+ ]
31
+ @ViewChild('activitylog') activitylog:any;
32
+ private readonly destroy$ = new Subject();
33
+ headerFilter: any;
34
+ sortColumName: any = '';
35
+ sortBy: any = 1;
36
+ filterByClient: any = [];
37
+ filterByStatus: any = [];
38
+ pagination: any = [10, 20, 30];
39
+ searchTerm: any;
40
+ limit:any = 10;
41
+ offset:any = 1;
42
+ selectedValue: string;
43
+ dayjs = dayjs;
44
+ filterByStore: any = [];
45
+ totalCount: any;
46
+ selectedTab:any = '';
47
+
48
+ dataObject:any = [
49
+ { Description: 'Module Type',type:'single', Issues: [{id:'traffic', text: "Traffic"},{id:'zone', text: "Zone" }]},
50
+ { Description: 'Clients', Issues: [] },
51
+ { Description: 'Status', Issues: [{id:'closed', text: "Completed" }, {id:'inprogress', text: "Inprogress" },{id:'drafted', text: "Draft" },{id:'assigned', text: "Assigned" },{id:'not_assign', text: "Not Assigened" },{id:'skipped', text: "Skip"},] }
52
+ ];
53
+
54
+ clientList: any;
55
+ selectedType: any = 'traffic';
56
+
57
+ constructor(private gs:GlobalStateService,private modalService:NgbModal,private service: TicketService,private toast:ToastService,private excel:ExcelService){
58
+
59
+ }
60
+
61
+ ngOnInit(){
62
+ this.gs.dataRangeValue.pipe(takeUntil(this.destroy$)).subscribe((data: any) => {
63
+ if(data!=null){
64
+ this.headerFilter = data
65
+ this.metricsList();
66
+ }
67
+ })
68
+ }
69
+
70
+ metricsList(){
71
+ let data:any = {
72
+ fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),
73
+ toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),
74
+ filterByClientId : this.filterByClient,
75
+ filterByStoreId : this.filterByStore,
76
+ filterByStatus : this.filterByStatus,
77
+ filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],
78
+ filterByModuleType: [this.selectedType],
79
+ searchValue: this.searchTerm,
80
+ sortBy: this.sortBy,
81
+ limit: this.limit,
82
+ offset: this.offset,
83
+ isExport: false
84
+ };
85
+ if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}
86
+ this.getclientList();
87
+ this.service.getstoreMetrics(data).pipe(takeUntil(this.destroy$)).subscribe({
88
+ next:(res:any) => {
89
+ if(res && res?.code === 200){
90
+ this.storesData = res?.data?.result;
91
+ this.totalCount = res?.data?.count;
92
+ if(!this.storesData?.length){
93
+ this.noData = true;
94
+ }
95
+ if(this.totalCount < 10){
96
+ this.pagination = [this.totalCount]
97
+ }else{
98
+ this.pagination = [10, 20, 30]
99
+ }
100
+ this.loading = false;
101
+ this.noData = false;
102
+ }else{
103
+ this.noData = true;
104
+ this.loading = false;
105
+ }
106
+ },
107
+ error:(err:any)=>{
108
+ this.noData = true;
109
+ this.loading = false;
110
+ this.toast.getErrorToast(err?.message)
111
+ }
112
+ })
113
+ }
114
+
115
+ setItemsperPage(){
116
+ if(this.totalCount < 10){
117
+ return this.totalCount;
118
+ }else{
119
+ return this.limit;
120
+ }
121
+ }
122
+
123
+ getclientList(){
124
+ this.service.getclientList().pipe(takeUntil(this.destroy$)).subscribe({
125
+ next:(res:any) => {
126
+ if(res && res?.code ===200){
127
+ this.clientList = res?.data?.result;
128
+ const issues = this.clientList.map((obj: any) => ({ text: obj.clientName,id:obj.clientId }));
129
+ const uniqueIssues:any[] = [];
130
+ const Clients = new Set();
131
+ issues.forEach((issue:any) => {
132
+ if (!Clients.has(issue.text)) {
133
+ Clients.add(issue.text);
134
+ uniqueIssues.push(issue);
135
+ }
136
+ });
137
+ const filtredObject = (this.dataObject.find((obj: any) => obj.Description === "Clients"))
138
+ filtredObject.Issues = uniqueIssues;
139
+ }
140
+ },
141
+ error:(err:any) => {
142
+
143
+ },
144
+ })
145
+ }
146
+
147
+ ngOnDestroy(): void {
148
+ this.destroy$.next(true);
149
+ this.destroy$.complete();
150
+ }
151
+
152
+ receiveData(data:any) {
153
+ this.filterByClient = data.find((obj:any) => obj.Description === "Clients")?.Issues.map((item: any) => item?.id);
154
+ this.filterByStatus = data.find((obj:any) => obj.Description === "Status")?.Issues?.map((item: any) => item?.id);
155
+ this.selectedType = data.find((obj:any) => obj.Description ==='Module Type')?.Issues?.id;
156
+ this.metricsList();
157
+ }
158
+
159
+ onPageChange(pageOffset: any) {
160
+ this.pagination.offset = pageOffset;
161
+ this.metricsList();
162
+ }
163
+
164
+ onPageSizeChange(pageSize: any) {
165
+ this.pagination.limit = pageSize;
166
+ this.pagination.offset = 1;
167
+ this.metricsList();
168
+ }
169
+
170
+ exportXLSX(){
171
+ let data:any = {
172
+ fromDate: this.dayjs(this.headerFilter?.date?.startDate).format('YYYY-MM-DD'),
173
+ toDate: this.dayjs(this.headerFilter?.date?.endDate).format('YYYY-MM-DD'),
174
+ filterByClientId : this.filterByClient,
175
+ filterByStoreId : this.filterByStore,
176
+ filterByStatus : this.filterByStatus,
177
+ filterByAuditType : this.selectedTab ===''? [] : [this.selectedTab],
178
+ filterByModuleType: [this.selectedType],
179
+ searchValue: this.searchTerm,
180
+ sortBy: this.sortBy,
181
+ limit: 10000,
182
+ offset: this.offset,
183
+ isExport: true
184
+ };
185
+ if(this.sortColumName){data.sortColumnName = this.sortColumName}else if(this.searchTerm){data.searchValue = this.searchTerm}
186
+ this.service.getstoreMetricsExport(data).pipe(takeUntil(this.destroy$)).subscribe({
187
+ next:(res:any) => {
188
+ if(res){
189
+ this.excel.saveAsExcelFile(res,'AuditMetrics')
190
+ }
191
+ },
192
+ error:(err:any)=>{
193
+ this.toast.getErrorToast(err?.message)
194
+ }
195
+ })
196
+ }
197
+
198
+ selectedTabs(data:any){
199
+ if(data === 'all'){
200
+ this.selectedTab = '';
201
+ }else{
202
+ this.selectedTab = data;
203
+ }
204
+ this.limit = 10;
205
+ this.offset = 1;
206
+ this.metricsList();
207
+ }
208
+
209
+ searchData(){
210
+ this.searchTerm = this.searchTerm;
211
+ this.metricsList();
212
+ }
213
+
214
+ openBeforecount(value:any) {
215
+ const modalRef = this.modalService.open(CountComponent,{
216
+ centered:true,
217
+ size:'xl'
218
+ })
219
+ modalRef.componentInstance.data ={
220
+ type : 'before',
221
+ fileDate:value?.fileDate,
222
+ storeId: value?.storeId,
223
+ selectedType: this.selectedType,
224
+ zoneName:value?.zoneName,
225
+ imageType: 'BC'
226
+ }
227
+ }
228
+ openAftercount(value:any){
229
+ const modalRef = this.modalService.open(CountComponent,{
230
+ centered:true,
231
+ size:'xl'
232
+ })
233
+ modalRef.componentInstance.data ={
234
+ type : 'after',
235
+ fileDate:value?.fileDate,
236
+ storeId: value?.storeId,
237
+ selectedType: this.selectedType,
238
+ zoneName:value?.zoneName,
239
+ imageType: 'AC'
240
+ }
241
+ }
242
+
243
+ openView(){
244
+ const modalRef = this.modalService.open(this.activitylog)
245
+ }
246
+
247
+ openreTrigger(value:any){
248
+ const modalRef = this.modalService.open(ReTriggerComponent,{
249
+ centered:true,
250
+ // size:''
251
+ })
252
+ modalRef.componentInstance.reTrigerData ={
253
+ type : 'after',
254
+ data: value,
255
+ selectedType : this.selectedType
256
+ }
257
+ modalRef.closed.subscribe((res: any) => {
258
+ if (res) {
259
+ this.service.auditretrigger(res).pipe(takeUntil(this.destroy$)).subscribe({
260
+ next:(res:any)=>{
261
+ if(res && res.code === 200){
262
+ this.toast.getSuccessToast(res?.data?.result);
263
+ this.metricsList();
264
+ }
265
+ },
266
+ error:(err:any)=> {
267
+ this.toast.getErrorToast(err?.message)
268
+ }
269
+ })
270
+ }
271
+ } )
272
+ }
273
+
274
+ statusBadge(value:any){
275
+ let AccountStatus = value;
276
+ if(AccountStatus === 'closed'){
277
+ return 'badge-light-success'
278
+ }else if(AccountStatus === 'assigned' || AccountStatus === 'not Assigned'){
279
+ return 'badge-light-warning'
280
+ }else{
281
+ return 'badge-light-primary'
282
+ }
283
+ }
284
+
285
+ sortData(value:any){
286
+ this.sortColumName = value
287
+ this.sortBy *= -1;
288
+ this.metricsList();
289
+ }
290
+
291
+
292
+ }
@@ -0,0 +1,111 @@
1
+ <div class="modal fade show d-block" tabindex="-1" role="dialog">
2
+ <div class="modal-dialog modal-dialog-centered" role="document">
3
+ <div class="modal-content merge-ticket-modal">
4
+
5
+ <!-- Header -->
6
+ <div class="modal-header border-0 pb-0">
7
+ <h5 class="modal-title">Close ticket</h5>
8
+ <button type="button" class="btn-close" aria-label="Close" (click)="closepopup()"></button>
9
+ </div>
10
+
11
+ <!-- Body -->
12
+ <div class="modal-body">
13
+ <div *ngIf="tangoAccuracy>85&&centralOpsData?.revicedFootfall">
14
+ <p class="mb-0">The ticket will be <b>“closed”</b> and updated in the store as a final revision.</p>
15
+ </div>
16
+ <div *ngIf="tangoAccuracy>85&&!centralOpsData?.revicedFootfall">
17
+ <p class="mb-0">You’re about to close this ticket. Do you want to proceed?</p>
18
+ </div>
19
+ <!-- Info banner -->
20
+ <div class="alert merge-info d-flex" *ngIf="tangoAccuracy<85">
21
+ <div class="me-3 mt-1">
22
+ <i class="bi bi-info-circle"></i>
23
+ </div>
24
+ <div>
25
+
26
+ <p class="mb-0">
27
+ The ticket will be <b>“closed”</b> and updated in the store as a final revision.
28
+ Since accuracy is below 85%, it will be marked as an <b>“Open-Accuracy Issue”</b> in Tango.
29
+ Please add the cause for the low accuracy.
30
+ </p>
31
+ </div>
32
+
33
+ </div>
34
+
35
+ <!-- Cards -->
36
+ <div class="row g-3 mt-2">
37
+ <!-- Central Ops -->
38
+ <div class="col-12 col-md-6" *ngIf="centralOpsData?.revicedFootfall">
39
+ <div class="card h-100">
40
+ <div class="card-body">
41
+ <div class="card-title mb-3 fw-semibold">Central Ops</div>
42
+ <div class="d-flex justify-content-between align-items-end mb-1">
43
+ <div>
44
+ <div class="value">{{centralOpsData?.revicedFootfall}}</div>
45
+ <div class="label">Footfall</div>
46
+ </div>
47
+ <div class="text-end">
48
+ <div class="value text-primary">
49
+ {{centralOpsData?.revicedPerc}}
50
+ <span class="arrow"
51
+ *ngIf="centralOpsData?.revicedFootfall<tangoData?.revicedFootfall">
52
+
53
+ </span>
54
+ <span class="arrow"
55
+ *ngIf="centralOpsData?.revicedFootfall>tangoData?.revicedFootfall">
56
+
57
+ </span>
58
+ </div>
59
+ <div class="label">Accuracy</div>
60
+ </div>
61
+ </div>
62
+ </div>
63
+ </div>
64
+ </div>
65
+
66
+ <!-- Tango -->
67
+ <div class="col-12 col-md-6" *ngIf="tangoData?.revicedFootfall">
68
+ <div class="card h-100">
69
+ <div class="card-body">
70
+ <div class="card-title mb-3 fw-semibold">Tango</div>
71
+ <div class="d-flex justify-content-between align-items-end mb-1">
72
+ <div>
73
+ <div class="value">{{tangoData?.revicedFootfall}}</div>
74
+ <div class="label">Footfall</div>
75
+ </div>
76
+ <div class="text-end">
77
+ <div class="value text-primary">
78
+ {{tangoData?.revicedPerc}}
79
+ <span class="arrow"
80
+ *ngIf="centralOpsData?.revicedFootfall>tangoData?.revicedFootfall">
81
+
82
+ </span>
83
+ <span class="arrow"
84
+ *ngIf="centralOpsData?.revicedFootfall<tangoData?.revicedFootfall">
85
+
86
+ </span>
87
+ </div>
88
+ <div class="label">Accuracy</div>
89
+ </div>
90
+ </div>
91
+ </div>
92
+ </div>
93
+ </div>
94
+ </div>
95
+ </div>
96
+
97
+ <!-- Footer -->
98
+ <div class="modal-footer border-0 pt-0">
99
+ <button type="button" class="btn btn-outline-secondary" (click)="closepopup()">
100
+ cancel
101
+ </button>
102
+ <button *ngIf="tangoAccuracy>85" type="button" class="btn btn-primary" (click)="nextfile()">
103
+ submit
104
+ </button>
105
+ <button *ngIf="tangoAccuracy<85" type="button" class="btn btn-primary" (click)="nextfile()">
106
+ Review
107
+ </button>
108
+ </div>
109
+ </div>
110
+ </div>
111
+ </div>
@@ -0,0 +1,101 @@
1
+ .btn.btn-light-primary:hover:not(.btn-active) {
2
+ background-color: #fff !important;
3
+ }
4
+
5
+ // .butn {
6
+ // border: 1px solid #009ef7 !important;
7
+ // padding: calc(0.5rem + 1px) calc(1rem + 1px) !important;
8
+ // }
9
+
10
+ .audit-test {
11
+ font-family: 'Inter';
12
+ font-style: normal;
13
+ font-weight: 600 !important;
14
+ font-size: 22px !important;
15
+ line-height: 27px;
16
+
17
+ color: #000000;
18
+ }
19
+
20
+ .text-gray-500 {
21
+
22
+ font-family: 'Inter';
23
+ font-style: normal;
24
+ font-weight: 500 !important;
25
+ font-size: 14px !important;
26
+ line-height: 17px;
27
+ /* identical to box height */
28
+
29
+
30
+ color: #5E6278;
31
+ }
32
+
33
+ .ms-25 {
34
+ margin-left: 16rem;
35
+ }
36
+
37
+ .text-gray-400 {
38
+ font-family: 'Inter';
39
+ font-style: normal;
40
+ font-weight: 500;
41
+ font-size: 14px !important;
42
+ line-height: 17px;
43
+ /* identical to box height */
44
+
45
+ letter-spacing: -0.02em;
46
+
47
+ color: #676E76;
48
+ }
49
+
50
+ ::ng-deep .custom-container .mat-mdc-dialog-container .mdc-dialog__surface {
51
+ border-radius: 10px !important;
52
+ }
53
+
54
+ .svg-icon.svg-icon-2x svg{
55
+ width:20px !important;
56
+ height:20px !important;
57
+ }
58
+ .btn-outline {
59
+ border-radius: 8px;
60
+ border: 1px solid var(--Gray-300, #D0D5DD);
61
+ background: var(--White, #FFF);
62
+ box-shadow: 0px 1px 2px 0px rgba(16, 24, 40, 0.05);
63
+ color: var(--Gray-700, #344054);
64
+ font-size: 14px;
65
+ font-weight: 500;
66
+ line-height: 24px;
67
+ }
68
+ .merge-ticket-modal {
69
+ border-radius: 16px;
70
+ }
71
+
72
+ .merge-info {
73
+ border: 1px dashed #a9c4ff;
74
+ background: #f5f9ff;
75
+ border-radius: 10px;
76
+ font-size: 13px;
77
+ color: #008EDF;
78
+ }
79
+
80
+ .merge-info i {
81
+ font-size: 18px;
82
+ }
83
+
84
+ .card {
85
+ border-radius: 12px;
86
+ }
87
+
88
+ .card .value {
89
+ font-size: 24px;
90
+ font-weight: 600;
91
+ }
92
+
93
+ .card .label {
94
+ font-size: 12px;
95
+ color: #6c757d;
96
+ }
97
+
98
+ .arrow {
99
+ font-size: 16px;
100
+ margin-left: 4px;
101
+ }
@@ -0,0 +1,23 @@
1
+ import { ComponentFixture, TestBed } from '@angular/core/testing';
2
+
3
+ import { AuditReportPopupComponent } from './audit-report-popup.component';
4
+
5
+ describe('AuditReportPopupComponent', () => {
6
+ let component: AuditReportPopupComponent;
7
+ let fixture: ComponentFixture<AuditReportPopupComponent>;
8
+
9
+ beforeEach(async () => {
10
+ await TestBed.configureTestingModule({
11
+ declarations: [AuditReportPopupComponent]
12
+ })
13
+ .compileComponents();
14
+
15
+ fixture = TestBed.createComponent(AuditReportPopupComponent);
16
+ component = fixture.componentInstance;
17
+ fixture.detectChanges();
18
+ });
19
+
20
+ it('should create', () => {
21
+ expect(component).toBeTruthy();
22
+ });
23
+ });