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

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 (177) hide show
  1. package/esm2022/lib/components/add-csm-modal/add-csm-modal.component.mjs +98 -0
  2. package/esm2022/lib/components/audit-log/audit-log.component.mjs +11 -0
  3. package/esm2022/lib/components/audit-mapping-list/audit-mapping-list.component.mjs +486 -0
  4. package/esm2022/lib/components/audit-metrics/audit-metrics.component.mjs +298 -0
  5. package/esm2022/lib/components/audit-report-popup/audit-report-popup.component.mjs +389 -0
  6. package/esm2022/lib/components/audit-retag/audit-retag.component.mjs +472 -0
  7. package/esm2022/lib/components/comment-model/comment-model.component.mjs +58 -0
  8. package/esm2022/lib/components/count/count.component.mjs +89 -0
  9. package/esm2022/lib/components/custom-select/custom-select.component.mjs +187 -0
  10. package/esm2022/lib/components/filter-options/filter-options.component.mjs +41 -0
  11. package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +1061 -0
  12. package/esm2022/lib/components/footfall-dicview/footfall-dicview.component.mjs +1014 -0
  13. package/esm2022/lib/components/footfall-popup/footfall-popup.component.mjs +15 -0
  14. package/esm2022/lib/components/group-select/group-select.component.mjs +155 -0
  15. package/esm2022/lib/components/re-trigger/re-trigger.component.mjs +96 -0
  16. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +108 -0
  17. package/esm2022/lib/components/remove-audit/remove-audit.component.mjs +81 -0
  18. package/esm2022/lib/components/start-audit/start-audit.component.mjs +761 -0
  19. package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +131 -0
  20. package/esm2022/lib/components/ticket-filter-panel/ticket-filter-panel.component.mjs +435 -0
  21. package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +2748 -0
  22. package/esm2022/lib/components/ticketclosepopup/ticketclosepopup.component.mjs +43 -0
  23. package/esm2022/lib/components/tickets/tickets.component.mjs +847 -0
  24. package/esm2022/lib/components/viewcategory/viewcategory.component.mjs +89 -0
  25. package/esm2022/lib/services/audit.service.mjs +88 -0
  26. package/esm2022/lib/services/excel.service.mjs +45 -0
  27. package/esm2022/lib/services/ticket.service.mjs +319 -0
  28. package/esm2022/lib/services/timer.service.mjs +84 -0
  29. package/esm2022/lib/tango-manage-tickets-routing.module.mjs +44 -0
  30. package/esm2022/lib/tango-manage-tickets.module.mjs +109 -0
  31. package/esm2022/public-api.mjs +6 -0
  32. package/esm2022/tango-app-ui-manage-tickets.mjs +5 -0
  33. package/fesm2022/tango-app-ui-manage-tickets.mjs +10165 -0
  34. package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -0
  35. package/index.d.ts +5 -0
  36. package/lib/components/add-csm-modal/add-csm-modal.component.d.ts +30 -0
  37. package/lib/components/audit-log/audit-log.component.d.ts +5 -0
  38. package/lib/components/audit-mapping-list/audit-mapping-list.component.d.ts +73 -0
  39. package/lib/components/audit-metrics/audit-metrics.component.d.ts +59 -0
  40. package/lib/components/audit-report-popup/audit-report-popup.component.d.ts +52 -0
  41. package/lib/components/audit-retag/audit-retag.component.d.ts +59 -0
  42. package/lib/components/comment-model/comment-model.component.d.ts +17 -0
  43. package/lib/components/count/count.component.d.ts +23 -0
  44. package/lib/components/custom-select/custom-select.component.d.ts +35 -0
  45. package/lib/components/filter-options/filter-options.component.d.ts +15 -0
  46. package/lib/components/footfall-dic/footfall-dic.component.d.ts +143 -0
  47. package/lib/components/footfall-dicview/footfall-dicview.component.d.ts +132 -0
  48. package/lib/components/footfall-popup/footfall-popup.component.d.ts +8 -0
  49. package/lib/components/group-select/group-select.component.d.ts +33 -0
  50. package/lib/components/re-trigger/re-trigger.component.d.ts +32 -0
  51. package/lib/components/reactive-select/reactive-select.component.d.ts +32 -0
  52. package/lib/components/remove-audit/remove-audit.component.d.ts +16 -0
  53. package/lib/components/start-audit/start-audit.component.d.ts +86 -0
  54. package/lib/components/tango-manage-tickets/tango-manage-tickets.component.d.ts +28 -0
  55. package/lib/components/ticket-filter-panel/ticket-filter-panel.component.d.ts +79 -0
  56. package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +287 -0
  57. package/lib/components/ticketclosepopup/ticketclosepopup.component.d.ts +15 -0
  58. package/lib/components/tickets/tickets.component.d.ts +88 -0
  59. package/lib/components/viewcategory/viewcategory.component.d.ts +16 -0
  60. package/lib/services/audit.service.d.ts +36 -0
  61. package/lib/services/excel.service.d.ts +10 -0
  62. package/lib/services/ticket.service.d.ts +87 -0
  63. package/lib/services/timer.service.d.ts +22 -0
  64. package/lib/tango-manage-tickets-routing.module.d.ts +7 -0
  65. package/lib/tango-manage-tickets.module.d.ts +38 -0
  66. package/package.json +25 -12
  67. package/{src/public-api.ts → public-api.d.ts} +2 -8
  68. package/.eslintrc.json +0 -37
  69. package/ng-package.json +0 -7
  70. package/src/lib/components/add-csm-modal/add-csm-modal.component.html +0 -32
  71. package/src/lib/components/add-csm-modal/add-csm-modal.component.scss +0 -14
  72. package/src/lib/components/add-csm-modal/add-csm-modal.component.spec.ts +0 -23
  73. package/src/lib/components/add-csm-modal/add-csm-modal.component.ts +0 -94
  74. package/src/lib/components/audit-log/audit-log.component.html +0 -1
  75. package/src/lib/components/audit-log/audit-log.component.scss +0 -0
  76. package/src/lib/components/audit-log/audit-log.component.spec.ts +0 -23
  77. package/src/lib/components/audit-log/audit-log.component.ts +0 -10
  78. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.html +0 -234
  79. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.scss +0 -186
  80. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.spec.ts +0 -23
  81. package/src/lib/components/audit-mapping-list/audit-mapping-list.component.ts +0 -520
  82. package/src/lib/components/audit-metrics/audit-metrics.component.html +0 -345
  83. package/src/lib/components/audit-metrics/audit-metrics.component.scss +0 -34
  84. package/src/lib/components/audit-metrics/audit-metrics.component.spec.ts +0 -23
  85. package/src/lib/components/audit-metrics/audit-metrics.component.ts +0 -292
  86. package/src/lib/components/audit-report-popup/audit-report-popup.component.html +0 -111
  87. package/src/lib/components/audit-report-popup/audit-report-popup.component.scss +0 -101
  88. package/src/lib/components/audit-report-popup/audit-report-popup.component.spec.ts +0 -23
  89. package/src/lib/components/audit-report-popup/audit-report-popup.component.ts +0 -397
  90. package/src/lib/components/audit-retag/audit-retag.component.html +0 -129
  91. package/src/lib/components/audit-retag/audit-retag.component.scss +0 -146
  92. package/src/lib/components/audit-retag/audit-retag.component.spec.ts +0 -23
  93. package/src/lib/components/audit-retag/audit-retag.component.ts +0 -489
  94. package/src/lib/components/comment-model/comment-model.component.html +0 -24
  95. package/src/lib/components/comment-model/comment-model.component.scss +0 -20
  96. package/src/lib/components/comment-model/comment-model.component.spec.ts +0 -23
  97. package/src/lib/components/comment-model/comment-model.component.ts +0 -53
  98. package/src/lib/components/count/count.component.html +0 -54
  99. package/src/lib/components/count/count.component.scss +0 -14
  100. package/src/lib/components/count/count.component.spec.ts +0 -23
  101. package/src/lib/components/count/count.component.ts +0 -82
  102. package/src/lib/components/custom-select/custom-select.component.html +0 -134
  103. package/src/lib/components/custom-select/custom-select.component.scss +0 -204
  104. package/src/lib/components/custom-select/custom-select.component.spec.ts +0 -23
  105. package/src/lib/components/custom-select/custom-select.component.ts +0 -189
  106. package/src/lib/components/filter-options/filter-options.component.html +0 -51
  107. package/src/lib/components/filter-options/filter-options.component.scss +0 -102
  108. package/src/lib/components/filter-options/filter-options.component.spec.ts +0 -23
  109. package/src/lib/components/filter-options/filter-options.component.ts +0 -38
  110. package/src/lib/components/footfall-dic/footfall-dic.component.html +0 -1275
  111. package/src/lib/components/footfall-dic/footfall-dic.component.scss +0 -273
  112. package/src/lib/components/footfall-dic/footfall-dic.component.spec.ts +0 -23
  113. package/src/lib/components/footfall-dic/footfall-dic.component.ts +0 -1206
  114. package/src/lib/components/footfall-dicview/footfall-dicview.component.html +0 -1136
  115. package/src/lib/components/footfall-dicview/footfall-dicview.component.scss +0 -416
  116. package/src/lib/components/footfall-dicview/footfall-dicview.component.spec.ts +0 -23
  117. package/src/lib/components/footfall-dicview/footfall-dicview.component.ts +0 -1168
  118. package/src/lib/components/footfall-popup/footfall-popup.component.html +0 -61
  119. package/src/lib/components/footfall-popup/footfall-popup.component.scss +0 -20
  120. package/src/lib/components/footfall-popup/footfall-popup.component.spec.ts +0 -23
  121. package/src/lib/components/footfall-popup/footfall-popup.component.ts +0 -12
  122. package/src/lib/components/group-select/group-select.component.html +0 -44
  123. package/src/lib/components/group-select/group-select.component.scss +0 -144
  124. package/src/lib/components/group-select/group-select.component.spec.ts +0 -23
  125. package/src/lib/components/group-select/group-select.component.ts +0 -145
  126. package/src/lib/components/re-trigger/re-trigger.component.html +0 -53
  127. package/src/lib/components/re-trigger/re-trigger.component.scss +0 -16
  128. package/src/lib/components/re-trigger/re-trigger.component.spec.ts +0 -23
  129. package/src/lib/components/re-trigger/re-trigger.component.ts +0 -96
  130. package/src/lib/components/reactive-select/reactive-select.component.html +0 -18
  131. package/src/lib/components/reactive-select/reactive-select.component.scss +0 -52
  132. package/src/lib/components/reactive-select/reactive-select.component.spec.ts +0 -23
  133. package/src/lib/components/reactive-select/reactive-select.component.ts +0 -104
  134. package/src/lib/components/remove-audit/remove-audit.component.html +0 -38
  135. package/src/lib/components/remove-audit/remove-audit.component.scss +0 -27
  136. package/src/lib/components/remove-audit/remove-audit.component.spec.ts +0 -23
  137. package/src/lib/components/remove-audit/remove-audit.component.ts +0 -81
  138. package/src/lib/components/start-audit/start-audit.component.html +0 -174
  139. package/src/lib/components/start-audit/start-audit.component.scss +0 -185
  140. package/src/lib/components/start-audit/start-audit.component.spec.ts +0 -23
  141. package/src/lib/components/start-audit/start-audit.component.ts +0 -761
  142. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.html +0 -43
  143. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.scss +0 -35
  144. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.spec.ts +0 -23
  145. package/src/lib/components/tango-manage-tickets/tango-manage-tickets.component.ts +0 -118
  146. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.html +0 -386
  147. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.scss +0 -87
  148. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.spec.ts +0 -23
  149. package/src/lib/components/ticket-filter-panel/ticket-filter-panel.component.ts +0 -494
  150. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.html +0 -4743
  151. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.scss +0 -1208
  152. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.spec.ts +0 -23
  153. package/src/lib/components/ticket-footfall-new/ticket-footfall-new.component.ts +0 -3344
  154. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.html +0 -100
  155. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.scss +0 -34
  156. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.spec.ts +0 -23
  157. package/src/lib/components/ticketclosepopup/ticketclosepopup.component.ts +0 -48
  158. package/src/lib/components/tickets/tickets.component.html +0 -451
  159. package/src/lib/components/tickets/tickets.component.scss +0 -131
  160. package/src/lib/components/tickets/tickets.component.spec.ts +0 -23
  161. package/src/lib/components/tickets/tickets.component.ts +0 -809
  162. package/src/lib/components/viewcategory/viewcategory.component.html +0 -38
  163. package/src/lib/components/viewcategory/viewcategory.component.scss +0 -29
  164. package/src/lib/components/viewcategory/viewcategory.component.spec.ts +0 -23
  165. package/src/lib/components/viewcategory/viewcategory.component.ts +0 -79
  166. package/src/lib/services/audit.service.spec.ts +0 -16
  167. package/src/lib/services/audit.service.ts +0 -98
  168. package/src/lib/services/excel.service.ts +0 -48
  169. package/src/lib/services/ticket.service.spec.ts +0 -16
  170. package/src/lib/services/ticket.service.ts +0 -501
  171. package/src/lib/services/timer.service.spec.ts +0 -16
  172. package/src/lib/services/timer.service.ts +0 -92
  173. package/src/lib/tango-manage-tickets-routing.module.ts +0 -37
  174. package/src/lib/tango-manage-tickets.module.ts +0 -68
  175. package/tsconfig.lib.json +0 -14
  176. package/tsconfig.lib.prod.json +0 -10
  177. package/tsconfig.spec.json +0 -14
@@ -0,0 +1,58 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
+ import * as i2 from "../../services/ticket.service";
6
+ import * as i3 from "tango-app-ui-shared";
7
+ import * as i4 from "@angular/forms";
8
+ export class CommentModelComponent {
9
+ activeModal;
10
+ service;
11
+ toast;
12
+ ticketId;
13
+ comment = "";
14
+ destroy$ = new Subject();
15
+ constructor(activeModal, service, toast) {
16
+ this.activeModal = activeModal;
17
+ this.service = service;
18
+ this.toast = toast;
19
+ }
20
+ cancel() {
21
+ this.activeModal.close();
22
+ }
23
+ commentSubmit() {
24
+ if (this.comment == '') {
25
+ return this.toast.getErrorToast("Please Enter Any comment");
26
+ }
27
+ let obj = {
28
+ "ticketId": this.ticketId,
29
+ "primary": "",
30
+ "secondary": [],
31
+ "comment": this.comment,
32
+ };
33
+ this.service
34
+ .updateTicketIssue(obj)
35
+ .pipe(takeUntil(this.destroy$))
36
+ .subscribe({
37
+ next: (res) => {
38
+ if (res && res.code === 200) {
39
+ this.toast.getSuccessToast(res.message);
40
+ this.activeModal.close("submit");
41
+ }
42
+ },
43
+ error: (err) => {
44
+ this.toast.getErrorToast(err.error.error ? err.error.error : err.error);
45
+ },
46
+ complete: () => { },
47
+ });
48
+ }
49
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommentModelComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.TicketService }, { token: i3.ToastService }], target: i0.ɵɵFactoryTarget.Component });
50
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CommentModelComponent, selector: "lib-comment-model", inputs: { ticketId: "ticketId" }, ngImport: i0, template: "<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Comment</a>\r\n <p class=\"text-sub\">Add comment for the ticket</p>\r\n <div class=\"w-100\">\r\n <label class=\"label my-2\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"comment\" rows=\"4\" type=\"text\"></textarea>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .modal-content{border-radius:12px!important;overflow:unset!important}::ng-deep ngb-modal-window .component-host-scrollable{overflow:unset!important}.text-sub{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:400;line-height:20px}.label{color:var(--Gray-700, #344054)!important;font-size:14px;font-weight:500;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i4.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i4.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i4.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
51
+ }
52
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CommentModelComponent, decorators: [{
53
+ type: Component,
54
+ args: [{ selector: 'lib-comment-model', template: "<div class=\"card py-0\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"my-5\">\r\n <div class=\"symbol symbol-75px symbol-circle\">\r\n <svg width=\"56\" height=\"56\" viewBox=\"0 0 56 56\" fill=\"none\" xmlns=\"http://www.w3.org/2000/svg\">\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" fill=\"#DAF1FF\"/>\r\n <rect x=\"4\" y=\"4\" width=\"48\" height=\"48\" rx=\"24\" stroke=\"#EAF8FF\" stroke-width=\"8\"/>\r\n <path d=\"M37 31C37 31.5304 36.7893 32.0391 36.4142 32.4142C36.0391 32.7893 35.5304 33 35 33H23L19 37V21C19 20.4696 19.2107 19.9609 19.5858 19.5858C19.9609 19.2107 20.4696 19 21 19H35C35.5304 19 36.0391 19.2107 36.4142 19.5858C36.7893 19.9609 37 20.4696 37 21V31Z\" stroke=\"#00A3FF\" stroke-width=\"2\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </div>\r\n </div>\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Comment</a>\r\n <p class=\"text-sub\">Add comment for the ticket</p>\r\n <div class=\"w-100\">\r\n <label class=\"label my-2\">Comments</label>\r\n <textarea class=\"form-control\" [(ngModel)]=\"comment\" rows=\"4\" type=\"text\"></textarea>\r\n\r\n <div class=\"d-flex my-7\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"cancel()\">Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" (click)=\"commentSubmit()\">Submit</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", styles: ["::ng-deep .modal-content{border-radius:12px!important;overflow:unset!important}::ng-deep ngb-modal-window .component-host-scrollable{overflow:unset!important}.text-sub{color:var(--Gray-500, #667085)!important;font-size:14px;font-weight:400;line-height:20px}.label{color:var(--Gray-700, #344054)!important;font-size:14px;font-weight:500;line-height:20px}\n"] }]
55
+ }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.TicketService }, { type: i3.ToastService }], propDecorators: { ticketId: [{
56
+ type: Input
57
+ }] } });
58
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY29tbWVudC1tb2RlbC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL2NvbXBvbmVudHMvY29tbWVudC1tb2RlbC9jb21tZW50LW1vZGVsLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9jb21tZW50LW1vZGVsL2NvbW1lbnQtbW9kZWwuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFJakQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7OztBQU0xQyxNQUFNLE9BQU8scUJBQXFCO0lBSVo7SUFBb0M7SUFDOUM7SUFKRCxRQUFRLENBQU07SUFDdkIsT0FBTyxHQUFNLEVBQUUsQ0FBQTtJQUNFLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLFlBQW9CLFdBQTBCLEVBQVUsT0FBc0IsRUFDcEUsS0FBbUI7UUFEVCxnQkFBVyxHQUFYLFdBQVcsQ0FBZTtRQUFVLFlBQU8sR0FBUCxPQUFPLENBQWU7UUFDcEUsVUFBSyxHQUFMLEtBQUssQ0FBYztJQUU3QixDQUFDO0lBRUQsTUFBTTtRQUNKLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUNELGFBQWE7UUFDWCxJQUFHLElBQUksQ0FBQyxPQUFPLElBQUksRUFBRSxFQUFDO1lBQ3BCLE9BQU8sSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsMEJBQTBCLENBQUMsQ0FBQTtTQUM1RDtRQUNELElBQUksR0FBRyxHQUFHO1lBQ1IsVUFBVSxFQUFFLElBQUksQ0FBQyxRQUFRO1lBQ3pCLFNBQVMsRUFBRSxFQUFFO1lBQ2IsV0FBVyxFQUFFLEVBQUU7WUFDZixTQUFTLEVBQUUsSUFBSSxDQUFDLE9BQU87U0FFMUIsQ0FBQTtRQUNDLElBQUksQ0FBQyxPQUFPO2FBQ1QsaUJBQWlCLENBQUMsR0FBRyxDQUFDO2FBQ3RCLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQztZQUNULElBQUksRUFBRSxDQUFDLEdBQVEsRUFBRSxFQUFFO2dCQUNqQixJQUFJLEdBQUcsSUFBSSxHQUFHLENBQUMsSUFBSSxLQUFLLEdBQUcsRUFBRTtvQkFDM0IsSUFBSSxDQUFDLEtBQUssQ0FBQyxlQUFlLENBQUMsR0FBRyxDQUFDLE9BQU8sQ0FBQyxDQUFDO29CQUN4QyxJQUFJLENBQUMsV0FBVyxDQUFDLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBQztpQkFDbEM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFFLENBQUMsR0FBUSxFQUFFLEVBQUU7Z0JBQ2xCLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLENBQUMsQ0FBQyxHQUFHLENBQUMsS0FBSyxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUMsR0FBRyxDQUFDLEtBQUssQ0FBQyxDQUFDO1lBQzFFLENBQUM7WUFDRCxRQUFRLEVBQUUsR0FBRyxFQUFFLEdBQUUsQ0FBQztTQUNuQixDQUFDLENBQUM7SUFDUCxDQUFDO3dHQXRDVSxxQkFBcUI7NEZBQXJCLHFCQUFxQiwyRkNWbEMseXFEQXVCTTs7NEZEYk8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLG1CQUFtQjswSUFLcEIsUUFBUTtzQkFBaEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IFRpY2tldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY29tbWVudC1tb2RlbCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvbW1lbnQtbW9kZWwuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jb21tZW50LW1vZGVsLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ29tbWVudE1vZGVsQ29tcG9uZW50IHtcclxuICBASW5wdXQoKSB0aWNrZXRJZDogYW55O1xyXG4gIGNvbW1lbnQ6YW55PSBcIlwiXHJcbiAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0KCk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhY3RpdmVNb2RhbDpOZ2JBY3RpdmVNb2RhbCwgcHJpdmF0ZSBzZXJ2aWNlOiBUaWNrZXRTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB0b2FzdDogVG9hc3RTZXJ2aWNlKXtcclxuXHJcbiAgfVxyXG5cclxuICBjYW5jZWwoKXtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICB9XHJcbiAgY29tbWVudFN1Ym1pdCgpe1xyXG4gICAgaWYodGhpcy5jb21tZW50ID09ICcnKXtcclxuICAgICAgcmV0dXJuIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChcIlBsZWFzZSBFbnRlciBBbnkgY29tbWVudFwiKVxyXG4gICAgfVxyXG4gICAgbGV0IG9iaiA9IHtcclxuICAgICAgXCJ0aWNrZXRJZFwiOiB0aGlzLnRpY2tldElkLFxyXG4gICAgICBcInByaW1hcnlcIjogXCJcIixcclxuICAgICAgXCJzZWNvbmRhcnlcIjogW10sXHJcbiAgICAgIFwiY29tbWVudFwiOiB0aGlzLmNvbW1lbnQsXHJcbiAgICAgIFxyXG4gIH1cclxuICAgIHRoaXMuc2VydmljZVxyXG4gICAgICAudXBkYXRlVGlja2V0SXNzdWUob2JqKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PT0gMjAwKSB7XHJcbiAgICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKTtcclxuICAgICAgICAgICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZShcInN1Ym1pdFwiKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIuZXJyb3IuZXJyb3IgPyBlcnIuZXJyb3IuZXJyb3IgOiBlcnIuZXJyb3IpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgICAgY29tcGxldGU6ICgpID0+IHt9LFxyXG4gICAgICB9KTtcclxuICB9XHJcbiBcclxufVxyXG5cclxuXHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHB5LTBcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgcHktMCBkLWZsZXggZmxleC1zdGFydCBmbGV4LWNvbHVtbiBwLTkgXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cIm15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN5bWJvbCBzeW1ib2wtNzVweCBzeW1ib2wtY2lyY2xlXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHdpZHRoPVwiNTZcIiBoZWlnaHQ9XCI1NlwiIHZpZXdCb3g9XCIwIDAgNTYgNTZcIiBmaWxsPVwibm9uZVwiIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCB4PVwiNFwiIHk9XCI0XCIgd2lkdGg9XCI0OFwiIGhlaWdodD1cIjQ4XCIgcng9XCIyNFwiIGZpbGw9XCIjREFGMUZGXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI0XCIgeT1cIjRcIiB3aWR0aD1cIjQ4XCIgaGVpZ2h0PVwiNDhcIiByeD1cIjI0XCIgc3Ryb2tlPVwiI0VBRjhGRlwiIHN0cm9rZS13aWR0aD1cIjhcIi8+XHJcbiAgICAgICAgICAgICAgICAgICAgPHBhdGggZD1cIk0zNyAzMUMzNyAzMS41MzA0IDM2Ljc4OTMgMzIuMDM5MSAzNi40MTQyIDMyLjQxNDJDMzYuMDM5MSAzMi43ODkzIDM1LjUzMDQgMzMgMzUgMzNIMjNMMTkgMzdWMjFDMTkgMjAuNDY5NiAxOS4yMTA3IDE5Ljk2MDkgMTkuNTg1OCAxOS41ODU4QzE5Ljk2MDkgMTkuMjEwNyAyMC40Njk2IDE5IDIxIDE5SDM1QzM1LjUzMDQgMTkgMzYuMDM5MSAxOS4yMTA3IDM2LjQxNDIgMTkuNTg1OEMzNi43ODkzIDE5Ljk2MDkgMzcgMjAuNDY5NiAzNyAyMVYzMVpcIiBzdHJva2U9XCIjMDBBM0ZGXCIgc3Ryb2tlLXdpZHRoPVwiMlwiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPkNvbW1lbnQ8L2E+XHJcbiAgICAgICAgPHAgY2xhc3M9XCJ0ZXh0LXN1YlwiPkFkZCBjb21tZW50IGZvciB0aGUgdGlja2V0PC9wPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJ3LTEwMFwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJsYWJlbCBteS0yXCI+Q29tbWVudHM8L2xhYmVsPlxyXG4gICAgICAgICAgICA8dGV4dGFyZWEgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBbKG5nTW9kZWwpXT1cImNvbW1lbnRcIiByb3dzPVwiNFwiIHR5cGU9XCJ0ZXh0XCI+PC90ZXh0YXJlYT5cclxuXHJcbiAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiZC1mbGV4IG15LTdcIiByb2xlPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtM1wiIChjbGljayk9XCJjYW5jZWwoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0zXCIgIChjbGljayk9XCJjb21tZW50U3VibWl0KClcIj5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,89 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import { Subject, takeUntil } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "../../services/ticket.service";
5
+ import * as i2 from "tango-app-ui-shared";
6
+ import * as i3 from "../../services/excel.service";
7
+ import * as i4 from "@angular/common";
8
+ export class CountComponent {
9
+ Service;
10
+ toast;
11
+ excel;
12
+ cd;
13
+ destroy$ = new Subject();
14
+ data;
15
+ loading = true;
16
+ noData = false;
17
+ auditImages;
18
+ constructor(Service, toast, excel, cd) {
19
+ this.Service = Service;
20
+ this.toast = toast;
21
+ this.excel = excel;
22
+ this.cd = cd;
23
+ }
24
+ ngOnInit() {
25
+ this.getAuditImages();
26
+ }
27
+ ngOnDestroy() {
28
+ this.destroy$.next(true);
29
+ this.destroy$.complete();
30
+ }
31
+ getAuditImages() {
32
+ let params = {
33
+ fileDate: this.data?.fileDate,
34
+ storeId: this.data?.storeId,
35
+ imageType: this.data?.imageType,
36
+ export: false,
37
+ moduleType: this.data?.selectedType,
38
+ zoneName: this.data?.zoneName
39
+ };
40
+ this.Service.getAuditImages(params).pipe(takeUntil(this.destroy$)).subscribe({
41
+ next: (res) => {
42
+ if (res && res?.code === 200) {
43
+ this.auditImages = res?.data?.result;
44
+ this.loading = false;
45
+ this.noData = false;
46
+ }
47
+ else {
48
+ this.noData = true;
49
+ this.loading = false;
50
+ }
51
+ this.cd.detectChanges();
52
+ },
53
+ error: (err) => {
54
+ this.noData = true;
55
+ this.loading = false;
56
+ },
57
+ });
58
+ }
59
+ exportTable() {
60
+ let params = {
61
+ fileDate: this.data?.fileDate,
62
+ storeId: this.data?.storeId,
63
+ imageType: this.data?.imageType,
64
+ export: true,
65
+ moduleType: this.data?.selectedType,
66
+ zoneName: this.data?.zoneName
67
+ };
68
+ let type = this.data?.type === 'before' ? 'BeforeCount' : 'AfterCount';
69
+ this.Service.ExportAuditImagesasxlsx(params).pipe(takeUntil(this.destroy$)).subscribe({
70
+ next: (res) => {
71
+ if (res) {
72
+ this.excel.saveAsZipFile(res, type);
73
+ }
74
+ },
75
+ error: (err) => {
76
+ this.toast.getErrorToast(err?.error);
77
+ },
78
+ });
79
+ }
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CountComponent, deps: [{ token: i1.TicketService }, { token: i2.ToastService }, { token: i3.ExcelService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CountComponent, selector: "lib-count", inputs: { data: "data" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title d-grid\">\r\n <div *ngIf=\"data?.type\" class=\"card-label\">{{data?.type | titlecase}} Count - {{data?.storeId}}</div>\r\n <div class=\"text-sub\">{{data?.fileDate | customDateFormat}}</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button *ngIf=\"!noData\" type=\"button\" (click)=\"exportTable()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let images of auditImages;let i=index\" style=\"padding: 10px;\">\r\n <img class=\"mx-3 my-3 img\" [src]=\"images?.imgPath\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{images?.imgName}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n", styles: [".img{width:95px;height:200px}.item{position:relative;padding-top:20px;display:inline-block;max-height:595px}.scroll-y{overflow-y:auto!important;position:relative!important}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i4.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.CustomDateFormatPipe, name: "customDateFormat" }] });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CountComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'lib-count', template: "<div class=\"card\">\r\n <div class=\"card-header\">\r\n <div class=\"card-title d-grid\">\r\n <div *ngIf=\"data?.type\" class=\"card-label\">{{data?.type | titlecase}} Count - {{data?.storeId}}</div>\r\n <div class=\"text-sub\">{{data?.fileDate | customDateFormat}}</div>\r\n </div>\r\n <div class=\"card-toolbar\">\r\n <button *ngIf=\"!noData\" type=\"button\" (click)=\"exportTable()\"\r\n class=\"btn btn-default mx-2 btn-outline btn-outline-default rounded-3 text-nowrap border-val\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M17.5 12.5V15.8333C17.5 16.2754 17.3244 16.6993 17.0118 17.0118C16.6993 17.3244 16.2754 17.5 15.8333 17.5H4.16667C3.72464 17.5 3.30072 17.3244 2.98816 17.0118C2.67559 16.6993 2.5 16.2754 2.5 15.8333V12.5M14.1667 6.66667L10 2.5M10 2.5L5.83333 6.66667M10 2.5V12.5\" stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n <span class=\"ms-2\">Export</span> </button>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div class=\"row mx-3\">\r\n <div class=\"col-md-12 item scroll-y\">\r\n <div class=\"item\" *ngFor=\"let images of auditImages;let i=index\" style=\"padding: 10px;\">\r\n <img class=\"mx-3 my-3 img\" [src]=\"images?.imgPath\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{images?.imgName}}</div>\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n\r\n <ng-container *ngIf=\"loading\">\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div> \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n</div>\r\n\r\n", styles: [".img{width:95px;height:200px}.item{position:relative;padding-top:20px;display:inline-block;max-height:595px}.scroll-y{overflow-y:auto!important;position:relative!important}\n"] }]
86
+ }], ctorParameters: () => [{ type: i1.TicketService }, { type: i2.ToastService }, { type: i3.ExcelService }, { type: i0.ChangeDetectorRef }], propDecorators: { data: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY291bnQuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXRpY2tldHMvc3JjL2xpYi9jb21wb25lbnRzL2NvdW50L2NvdW50LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9jb3VudC9jb3VudC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBRSxLQUFLLEVBQXFCLE1BQU0sZUFBZSxDQUFDO0FBSXZGLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDOzs7Ozs7QUFPMUMsTUFBTSxPQUFPLGNBQWM7SUFRTDtJQUE4QjtJQUEyQjtJQUE2QjtJQU56RixRQUFRLEdBQUcsSUFBSSxPQUFPLEVBQUUsQ0FBQztJQUNqQyxJQUFJLENBQUs7SUFDbEIsT0FBTyxHQUFPLElBQUksQ0FBQztJQUNuQixNQUFNLEdBQUssS0FBSyxDQUFDO0lBQ2pCLFdBQVcsQ0FBSztJQUVoQixZQUFvQixPQUFxQixFQUFTLEtBQWtCLEVBQVMsS0FBb0IsRUFBUyxFQUFxQjtRQUEzRyxZQUFPLEdBQVAsT0FBTyxDQUFjO1FBQVMsVUFBSyxHQUFMLEtBQUssQ0FBYTtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWU7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtJQUFFLENBQUM7SUFDbEksUUFBUTtRQUNOLElBQUksQ0FBQyxjQUFjLEVBQUUsQ0FBQztJQUN4QixDQUFDO0lBRUQsV0FBVztRQUNULElBQUksQ0FBQyxRQUFRLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDM0IsQ0FBQztJQUVELGNBQWM7UUFDWixJQUFJLE1BQU0sR0FBTztZQUNoQixRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRO1lBQzdCLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU87WUFDMUIsU0FBUyxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUztZQUM5QixNQUFNLEVBQUcsS0FBSztZQUNkLFVBQVUsRUFBRyxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVk7WUFDcEMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUTtTQUM3QixDQUFBO1FBQ0QsSUFBSSxDQUFDLE9BQU8sQ0FBQyxjQUFjLENBQUMsTUFBTSxDQUFDLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQUMsQ0FBQyxTQUFTLENBQUM7WUFDM0UsSUFBSSxFQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7Z0JBQ2QsSUFBRyxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksS0FBSyxHQUFHLEVBQUM7b0JBQzFCLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxFQUFFLElBQUksRUFBRSxNQUFNLENBQUM7b0JBQ3JDLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztpQkFDckI7cUJBQUk7b0JBQ0gsSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLENBQUM7b0JBQ25CLElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO2lCQUN0QjtnQkFDRCxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFDO1lBQzFCLENBQUM7WUFDRCxLQUFLLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDYixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztnQkFDbkIsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQTtJQUVKLENBQUM7SUFFRCxXQUFXO1FBQ1QsSUFBSSxNQUFNLEdBQU87WUFDZCxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksRUFBRSxRQUFRO1lBQzdCLE9BQU8sRUFBQyxJQUFJLENBQUMsSUFBSSxFQUFFLE9BQU87WUFDMUIsU0FBUyxFQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsU0FBUztZQUM5QixNQUFNLEVBQUcsSUFBSTtZQUNiLFVBQVUsRUFBRSxJQUFJLENBQUMsSUFBSSxFQUFFLFlBQVk7WUFDbkMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsUUFBUTtTQUM3QixDQUFBO1FBQ0QsSUFBSSxJQUFJLEdBQUcsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLEtBQUssUUFBUSxDQUFDLENBQUMsQ0FBQyxhQUFhLENBQUMsQ0FBQyxDQUFDLFlBQVksQ0FBQTtRQUN0RSxJQUFJLENBQUMsT0FBTyxDQUFDLHVCQUF1QixDQUFDLE1BQU0sQ0FBQyxDQUFDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDLENBQUMsU0FBUyxDQUFDO1lBQ3BGLElBQUksRUFBQyxDQUFDLEdBQU8sRUFBQyxFQUFFO2dCQUNkLElBQUcsR0FBRyxFQUFDO29CQUNMLElBQUksQ0FBQyxLQUFLLENBQUMsYUFBYSxDQUFDLEdBQUcsRUFBQyxJQUFJLENBQUMsQ0FBQTtpQkFDbkM7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFDLENBQUMsR0FBTyxFQUFDLEVBQUU7Z0JBQ2QsSUFBSSxDQUFDLEtBQUssQ0FBQyxhQUFhLENBQUMsR0FBRyxFQUFFLEtBQUssQ0FBQyxDQUFBO1lBQ3ZDLENBQUM7U0FDRixDQUFDLENBQUE7SUFFTixDQUFDO3dHQXBFVSxjQUFjOzRGQUFkLGNBQWMsMkVDWDNCLDYyRkFzREE7OzRGRDNDYSxjQUFjO2tCQUwxQixTQUFTOytCQUNFLFdBQVc7d0tBT1osSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgSW5wdXQsIE9uRGVzdHJveSwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IFRpY2tldFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBFeGNlbFNlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9leGNlbC5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jb3VudCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NvdW50LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vY291bnQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDb3VudENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCxPbkRlc3Ryb3kge1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBASW5wdXQoKSBkYXRhOmFueTtcclxuICBsb2FkaW5nOmFueSA9IHRydWU7XHJcbiAgbm9EYXRhOmFueT1mYWxzZTtcclxuICBhdWRpdEltYWdlczphbnk7XHJcbiAgXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBTZXJ2aWNlOlRpY2tldFNlcnZpY2UscHJpdmF0ZSB0b2FzdDpUb2FzdFNlcnZpY2UscHJpdmF0ZSBleGNlbCA6IEV4Y2VsU2VydmljZSxwcml2YXRlIGNkOiBDaGFuZ2VEZXRlY3RvclJlZil7fVxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICB0aGlzLmdldEF1ZGl0SW1hZ2VzKCk7XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIH1cclxuICBcclxuICBnZXRBdWRpdEltYWdlcygpe1xyXG4gICAgbGV0IHBhcmFtczphbnkgPSB7XHJcbiAgICAgZmlsZURhdGU6IHRoaXMuZGF0YT8uZmlsZURhdGUsXHJcbiAgICAgc3RvcmVJZDp0aGlzLmRhdGE/LnN0b3JlSWQsXHJcbiAgICAgaW1hZ2VUeXBlOnRoaXMuZGF0YT8uaW1hZ2VUeXBlLFxyXG4gICAgIGV4cG9ydCA6IGZhbHNlLFxyXG4gICAgIG1vZHVsZVR5cGUgOiB0aGlzLmRhdGE/LnNlbGVjdGVkVHlwZSxcclxuICAgICB6b25lTmFtZTogdGhpcy5kYXRhPy56b25lTmFtZVxyXG4gICAgfVxyXG4gICAgdGhpcy5TZXJ2aWNlLmdldEF1ZGl0SW1hZ2VzKHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgaWYocmVzICYmIHJlcz8uY29kZSA9PT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuYXVkaXRJbWFnZXMgPSByZXM/LmRhdGE/LnJlc3VsdDtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubm9EYXRhID0gdHJ1ZTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgIH1cclxuICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycjphbnkpPT57XHJcbiAgICAgICAgICB0aGlzLm5vRGF0YSA9IHRydWU7XHJcbiAgICAgICAgICB0aGlzLmxvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgXHJcbiAgfVxyXG4gIFxyXG4gIGV4cG9ydFRhYmxlKCl7XHJcbiAgICBsZXQgcGFyYW1zOmFueSA9IHtcclxuICAgICAgIGZpbGVEYXRlOiB0aGlzLmRhdGE/LmZpbGVEYXRlLFxyXG4gICAgICAgc3RvcmVJZDp0aGlzLmRhdGE/LnN0b3JlSWQsXHJcbiAgICAgICBpbWFnZVR5cGU6dGhpcy5kYXRhPy5pbWFnZVR5cGUsXHJcbiAgICAgICBleHBvcnQgOiB0cnVlLFxyXG4gICAgICAgbW9kdWxlVHlwZTogdGhpcy5kYXRhPy5zZWxlY3RlZFR5cGUsXHJcbiAgICAgICB6b25lTmFtZTogdGhpcy5kYXRhPy56b25lTmFtZVxyXG4gICAgICB9XHJcbiAgICAgIGxldCB0eXBlID0gdGhpcy5kYXRhPy50eXBlID09PSAnYmVmb3JlJyA/ICdCZWZvcmVDb3VudCcgOiAnQWZ0ZXJDb3VudCdcclxuICAgICAgdGhpcy5TZXJ2aWNlLkV4cG9ydEF1ZGl0SW1hZ2VzYXN4bHN4KHBhcmFtcykucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDoocmVzOmFueSk9PntcclxuICAgICAgICAgIGlmKHJlcyl7XHJcbiAgICAgICAgICAgIHRoaXMuZXhjZWwuc2F2ZUFzWmlwRmlsZShyZXMsdHlwZSlcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOihlcnI6YW55KT0+e1xyXG4gICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnI/LmVycm9yKVxyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pXHJcbiAgICBcclxuICB9XHJcbiAgXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmRcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlclwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXRpdGxlIGQtZ3JpZFwiPlxyXG4gICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZGF0YT8udHlwZVwiIGNsYXNzPVwiY2FyZC1sYWJlbFwiPnt7ZGF0YT8udHlwZSB8IHRpdGxlY2FzZX19IENvdW50IC0ge3tkYXRhPy5zdG9yZUlkfX08L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtc3ViXCI+e3tkYXRhPy5maWxlRGF0ZSB8IGN1c3RvbURhdGVGb3JtYXR9fTwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtdG9vbGJhclwiPlxyXG4gICAgICAgIDxidXR0b24gKm5nSWY9XCIhbm9EYXRhXCIgdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJleHBvcnRUYWJsZSgpXCJcclxuICAgICAgICAgICAgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgbXgtMiBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE3LjUgMTIuNVYxNS44MzMzQzE3LjUgMTYuMjc1NCAxNy4zMjQ0IDE2LjY5OTMgMTcuMDExOCAxNy4wMTE4QzE2LjY5OTMgMTcuMzI0NCAxNi4yNzU0IDE3LjUgMTUuODMzMyAxNy41SDQuMTY2NjdDMy43MjQ2NCAxNy41IDMuMzAwNzIgMTcuMzI0NCAyLjk4ODE2IDE3LjAxMThDMi42NzU1OSAxNi42OTkzIDIuNSAxNi4yNzU0IDIuNSAxNS44MzMzVjEyLjVNMTQuMTY2NyA2LjY2NjY3TDEwIDIuNU0xMCAyLjVMNS44MzMzMyA2LjY2NjY3TTEwIDIuNVYxMi41XCIgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIi8+XHJcbiAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0yXCI+RXhwb3J0PC9zcGFuPiA8L2J1dHRvbj5cclxuICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBteC0zXCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgaXRlbSBzY3JvbGwteVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIml0ZW1cIiAqbmdGb3I9XCJsZXQgaW1hZ2VzIG9mIGF1ZGl0SW1hZ2VzO2xldCBpPWluZGV4XCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbWcgY2xhc3M9XCJteC0zIG15LTMgaW1nXCIgW3NyY109XCJpbWFnZXM/LmltZ1BhdGhcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1jZW50ZXIgbS0wIGZzLTcgZnctYm9sZFwiPnt7aW1hZ2VzPy5pbWdOYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJsb2FkaW5nXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIndyYXBwZXJcIj5cclxuICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBkZXNjcmlwdGlvblwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSB0aXRsZVwiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgIDwvZGl2PiAgICAgICAgICAgICAgIFxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibm9EYXRhXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHkgZC1mbGV4IGp1c3RpZnktY29udGVudC1jZW50ZXIgYWxpZ24taXRlbXMtY2VudGVyIGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cImltZy1zcmMgdy0yNVwiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ljb25zL05vZGF0YS5zdmdcIiBhbHQ9XCJcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvbmctY29udGFpbmVyPlxyXG48L2Rpdj5cclxuXHJcbiJdfQ==
@@ -0,0 +1,187 @@
1
+ import { ChangeDetectionStrategy, Component, EventEmitter, HostListener, Input, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "../../services/ticket.service";
4
+ import * as i2 from "@angular/common";
5
+ import * as i3 from "@angular/forms";
6
+ // import { ManageUsersService } from '../../services-v2/manage-users.service';
7
+ export class CustomSelectComponent {
8
+ cd;
9
+ authService;
10
+ onClick(event) {
11
+ const target = event.target;
12
+ if (!target.closest('.dropdown')) {
13
+ this.showDropdown = false;
14
+ }
15
+ }
16
+ items;
17
+ searchField;
18
+ multi;
19
+ idField;
20
+ selectedValues = [];
21
+ disabled;
22
+ label;
23
+ selected = new EventEmitter();
24
+ filteredValues = [];
25
+ showDropdown;
26
+ searchValue;
27
+ instanceId;
28
+ constructor(cd, authService) {
29
+ this.cd = cd;
30
+ this.authService = authService;
31
+ }
32
+ ngOnInit() {
33
+ this.instanceId = crypto.randomUUID();
34
+ this.authService.dropDownTrigger.subscribe((e) => {
35
+ if (e !== this.instanceId) {
36
+ this.showDropdown = false;
37
+ this.cd.detectChanges();
38
+ }
39
+ });
40
+ }
41
+ ngOnChanges(changes) {
42
+ if (changes['items'] && this.items?.length) {
43
+ this.initializeItems();
44
+ }
45
+ if (changes['selectedValues'] && Array.isArray(changes['selectedValues']?.currentValue) && changes['selectedValues']?.currentValue?.length > 0 && changes['selectedValues']?.currentValue[0]) {
46
+ this.updateSelectedValues();
47
+ }
48
+ }
49
+ initializeItems() {
50
+ this.filteredValues = this.items.map((item) => ({ ...item }));
51
+ this.updateSelectedValues();
52
+ }
53
+ updateSelectedValues() {
54
+ this.selectedValues?.forEach((selectedItem) => {
55
+ const item = this.filteredValues?.find((filteredItem) => filteredItem?.[this.idField] === selectedItem?.[this.idField]);
56
+ if (item) {
57
+ item.isSelected = true;
58
+ }
59
+ });
60
+ }
61
+ openDropdown(event) {
62
+ this.authService.dropDownTrigger.next(this.instanceId);
63
+ event.stopPropagation();
64
+ this.showDropdown = !this.showDropdown;
65
+ }
66
+ onInput(event) {
67
+ if (!event.target.value) {
68
+ this.filteredValues = [...this.items];
69
+ }
70
+ else {
71
+ const searchTerm = event.target.value.toLowerCase();
72
+ this.filteredValues = this.items.filter((item) => item[this.searchField].toLowerCase().includes(searchTerm));
73
+ }
74
+ this.updateSelectedValues();
75
+ this.cd.detectChanges();
76
+ }
77
+ onSelect(event, item) {
78
+ if (this.multi) {
79
+ if (event.currentTarget.checked) {
80
+ this.selectedValues.push(item);
81
+ }
82
+ else {
83
+ this.selectedValues = this.selectedValues.filter((elem) => elem[this.idField] !== item[this.idField]);
84
+ }
85
+ }
86
+ else {
87
+ this.selectedValues = [{ ...item }];
88
+ this.filteredValues.forEach((element) => {
89
+ if (element[this.idField] !== item[this.idField]) {
90
+ element.isSelected = false;
91
+ }
92
+ });
93
+ this.showDropdown = false;
94
+ }
95
+ const valuesToEmit = this.selectedValues.map((value) => {
96
+ const selectedItem = { ...value };
97
+ delete selectedItem.isSelected;
98
+ return selectedItem;
99
+ });
100
+ this.cd.detectChanges();
101
+ this.emitSelectedValues(valuesToEmit);
102
+ }
103
+ onSelectAll(event) {
104
+ const selectAll = event.currentTarget.checked;
105
+ this.filteredValues.forEach((item) => item.isSelected = selectAll);
106
+ if (selectAll) {
107
+ this.selectedValues = [...this.filteredValues];
108
+ }
109
+ else {
110
+ this.selectedValues = [];
111
+ }
112
+ const valuesToEmit = this.selectedValues.map((value) => {
113
+ const { isSelected, ...selectedItem } = value;
114
+ return selectedItem;
115
+ });
116
+ this.cd.detectChanges();
117
+ this.emitSelectedValues(valuesToEmit);
118
+ }
119
+ emitSelectedValues(values) {
120
+ if (this.multi) {
121
+ this.selected.emit(values);
122
+ }
123
+ else {
124
+ this.selected.emit(values[0]);
125
+ }
126
+ }
127
+ checkIfAllSelected() {
128
+ return this.filteredValues.every((item) => item.isSelected);
129
+ }
130
+ onItemClick(item, event) {
131
+ event.stopPropagation();
132
+ // For multi-select, row click should not do anything special;
133
+ // checkbox + onSelect already handle it
134
+ if (this.multi) {
135
+ return;
136
+ }
137
+ // Mark this item as selected so UI highlights it
138
+ item.isSelected = true;
139
+ // Fake an event with `currentTarget.checked = true`
140
+ const fakeEvent = {
141
+ currentTarget: {
142
+ checked: true
143
+ }
144
+ };
145
+ // Reuse your existing logic
146
+ this.onSelect(fakeEvent, item);
147
+ }
148
+ getInitialsFromEmail(email) {
149
+ if (!email)
150
+ return "";
151
+ // take text before @
152
+ const namePart = email.split("@")[0];
153
+ // split by . or space (e.g. "sandeep.pal" -> ["sandeep", "pal"])
154
+ const parts = namePart.split(/[.\s_-]+/).filter(Boolean);
155
+ if (parts.length >= 2) {
156
+ return (parts[0][0] + parts[1][0]).toUpperCase(); // S + P = SP
157
+ }
158
+ // fallback: first two chars of whole namePart
159
+ return namePart.substring(0, 2).toUpperCase();
160
+ }
161
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomSelectComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.TicketService }], target: i0.ɵɵFactoryTarget.Component });
162
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: CustomSelectComponent, selector: "team-select", inputs: { items: "items", searchField: "searchField", multi: "multi", idField: "idField", selectedValues: "selectedValues", disabled: "disabled", label: "label" }, outputs: { selected: "selected" }, host: { listeners: { "document:click": "onClick($event)" } }, usesOnChanges: true, ngImport: i0, template: "<div class=\"outer-container\">\r\n <!-- TRIGGER -->\r\n <div\r\n [ngClass]=\"disabled ? 'disable-input' : ''\"\r\n class=\"select-trigger form-select\"\r\n (click)=\"openDropdown($event)\"\r\n >\r\n <ng-container *ngIf=\"multi; else singleMode\">\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\">\r\n <!-- <img class=\"me-2 trigger-avatar\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\" /> -->\r\n {{ selectedValues?.[0]?.[searchField] }}\r\n </span>\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">\r\n +{{ selectedValues?.length - 1 }}\r\n </span>\r\n <span *ngIf=\"!selectedValues?.length\">{{ label || 'Select' }}</span>\r\n </ng-container>\r\n\r\n <ng-template #singleMode>\r\n <span *ngIf=\"selectedValues?.[0]; else placeholderSingle\">\r\n {{ selectedValues?.[0]?.[searchField] || 'Select' }}\r\n </span>\r\n <ng-template #placeholderSingle>\r\n <span >{{ label || 'Select' }}</span>\r\n </ng-template>\r\n </ng-template>\r\n\r\n\r\n </div>\r\n\r\n <!-- DROPDOWN PANEL -->\r\n <div\r\n class=\"input-container dropdown\"\r\n [ngClass]=\"showDropdown ? '' : 'd-none'\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Search -->\r\n <div class=\"w-100 input-wrapper\">\r\n <input\r\n [(ngModel)]=\"searchValue\"\r\n placeholder=\"Search\"\r\n (input)=\"onInput($event)\"\r\n type=\"text\"\r\n />\r\n <svg\r\n class=\"search-icon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"17\"\r\n viewBox=\"0 0 16 17\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.3\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <ul>\r\n <!-- Select all (multi mode only) -->\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\">\r\n <input\r\n (change)=\"onSelectAll($event)\"\r\n [checked]=\"checkIfAllSelected()\"\r\n class=\"form-check-input me-3\"\r\n type=\"checkbox\"\r\n [id]=\"instanceId\"\r\n />\r\n <span class=\"form-check-label\"> Select All </span>\r\n </label>\r\n </li>\r\n\r\n <!-- LIST ITEMS -->\r\n <li\r\n *ngFor=\"let item of filteredValues\"\r\n [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <!-- multi \u2192 checkbox + label ; single \u2192 user row (avatar + name + email) -->\r\n <ng-container *ngIf=\"multi; else singleItemTemplate\">\r\n <label\r\n [for]=\"item[idField] + instanceId\"\r\n [ngClass]=\"multi ? '' : 'ps-0'\"\r\n class=\"form-check\"\r\n >\r\n <input\r\n (change)=\"onSelect($event, item)\"\r\n [(ngModel)]=\"item.isSelected\"\r\n class=\"form-check-input me-3\"\r\n type=\"checkbox\"\r\n [id]=\"item[idField] + instanceId\"\r\n />\r\n <span class=\"form-check-label\">\r\n {{ item[searchField] }}\r\n </span>\r\n </label>\r\n </ng-container>\r\n\r\n <ng-template #singleItemTemplate>\r\n <div class=\"user-row\">\r\n <div class=\"avatar avatar-text light-primary p-3\">\r\n {{ getInitialsFromEmail(item.email ||\r\n item.email) }}\r\n </div>\r\n <!-- <img\r\n class=\"user-avatar\"\r\n [src]=\"item.avatarUrl || './assets/tango/Image/Avatar.svg'\"\r\n alt=\"{{ item[searchField] }}\"\r\n /> -->\r\n <div class=\"user-text\">\r\n <div class=\"user-name\">\r\n {{ item[searchField] }}\r\n </div>\r\n <div class=\"user-email\">\r\n {{ item.email }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li *ngIf=\"!filteredValues?.length\">\r\n <span class=\"d-flex align-items-center justify-content-center\">\r\n No data found\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.select-value{border-radius:16px!important;background:var(--Gray-100, #F2F4F7)!important;mix-blend-mode:multiply;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:4px 12px 4px 6px}.user-row{display:flex;align-items:center;padding:8px 14px;cursor:pointer;border-bottom:1px solid #f3f4f6}.user-row:last-child{border-bottom:none}.user-row:hover{background:#f5f7ff}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;margin-right:10px}.user-text{display:flex;flex-direction:column}.user-name{font-size:14px;font-weight:500;color:#111827}.user-email{font-size:12px;color:#6b7280}.disable-input{pointer-events:none;opacity:.6}.avatar{width:42px;height:40px;border-radius:50%;margin-right:15px;font-size:14px;color:#1d2939;font-weight:600}.light-primary{background:#eaf8ff!important}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i3.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i3.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }], changeDetection: i0.ChangeDetectionStrategy.OnPush });
163
+ }
164
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: CustomSelectComponent, decorators: [{
165
+ type: Component,
166
+ args: [{ selector: 'team-select', changeDetection: ChangeDetectionStrategy.OnPush, template: "<div class=\"outer-container\">\r\n <!-- TRIGGER -->\r\n <div\r\n [ngClass]=\"disabled ? 'disable-input' : ''\"\r\n class=\"select-trigger form-select\"\r\n (click)=\"openDropdown($event)\"\r\n >\r\n <ng-container *ngIf=\"multi; else singleMode\">\r\n <span *ngIf=\"selectedValues?.length\" class=\"select-value mx-2\">\r\n <!-- <img class=\"me-2 trigger-avatar\" alt=\"Pic\" src=\"./assets/tango/Image/users-teams.svg\" /> -->\r\n {{ selectedValues?.[0]?.[searchField] }}\r\n </span>\r\n <span class=\"select-value mx-2\" *ngIf=\"selectedValues?.length > 1\">\r\n +{{ selectedValues?.length - 1 }}\r\n </span>\r\n <span *ngIf=\"!selectedValues?.length\">{{ label || 'Select' }}</span>\r\n </ng-container>\r\n\r\n <ng-template #singleMode>\r\n <span *ngIf=\"selectedValues?.[0]; else placeholderSingle\">\r\n {{ selectedValues?.[0]?.[searchField] || 'Select' }}\r\n </span>\r\n <ng-template #placeholderSingle>\r\n <span >{{ label || 'Select' }}</span>\r\n </ng-template>\r\n </ng-template>\r\n\r\n\r\n </div>\r\n\r\n <!-- DROPDOWN PANEL -->\r\n <div\r\n class=\"input-container dropdown\"\r\n [ngClass]=\"showDropdown ? '' : 'd-none'\"\r\n (click)=\"$event.stopPropagation()\"\r\n >\r\n <!-- Search -->\r\n <div class=\"w-100 input-wrapper\">\r\n <input\r\n [(ngModel)]=\"searchValue\"\r\n placeholder=\"Search\"\r\n (input)=\"onInput($event)\"\r\n type=\"text\"\r\n />\r\n <svg\r\n class=\"search-icon\"\r\n xmlns=\"http://www.w3.org/2000/svg\"\r\n width=\"16\"\r\n height=\"17\"\r\n viewBox=\"0 0 16 17\"\r\n fill=\"none\"\r\n >\r\n <path\r\n d=\"M14 14.5L11.1 11.6M12.6667 7.83333C12.6667 10.7789 10.2789 13.1667 7.33333 13.1667C4.38781 13.1667 2 10.7789 2 7.83333C2 4.88781 4.38781 2.5 7.33333 2.5C10.2789 2.5 12.6667 4.88781 12.6667 7.83333Z\"\r\n stroke=\"#667085\"\r\n stroke-width=\"1.3\"\r\n stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\"\r\n />\r\n </svg>\r\n </div>\r\n\r\n <ul>\r\n <!-- Select all (multi mode only) -->\r\n <li *ngIf=\"multi && filteredValues?.length\">\r\n <label class=\"form-check\" [for]=\"instanceId\">\r\n <input\r\n (change)=\"onSelectAll($event)\"\r\n [checked]=\"checkIfAllSelected()\"\r\n class=\"form-check-input me-3\"\r\n type=\"checkbox\"\r\n [id]=\"instanceId\"\r\n />\r\n <span class=\"form-check-label\"> Select All </span>\r\n </label>\r\n </li>\r\n\r\n <!-- LIST ITEMS -->\r\n <li\r\n *ngFor=\"let item of filteredValues\"\r\n [ngClass]=\"item.isSelected && !multi ? 'selected' : ''\"\r\n (click)=\"onItemClick(item, $event)\"\r\n >\r\n <!-- multi \u2192 checkbox + label ; single \u2192 user row (avatar + name + email) -->\r\n <ng-container *ngIf=\"multi; else singleItemTemplate\">\r\n <label\r\n [for]=\"item[idField] + instanceId\"\r\n [ngClass]=\"multi ? '' : 'ps-0'\"\r\n class=\"form-check\"\r\n >\r\n <input\r\n (change)=\"onSelect($event, item)\"\r\n [(ngModel)]=\"item.isSelected\"\r\n class=\"form-check-input me-3\"\r\n type=\"checkbox\"\r\n [id]=\"item[idField] + instanceId\"\r\n />\r\n <span class=\"form-check-label\">\r\n {{ item[searchField] }}\r\n </span>\r\n </label>\r\n </ng-container>\r\n\r\n <ng-template #singleItemTemplate>\r\n <div class=\"user-row\">\r\n <div class=\"avatar avatar-text light-primary p-3\">\r\n {{ getInitialsFromEmail(item.email ||\r\n item.email) }}\r\n </div>\r\n <!-- <img\r\n class=\"user-avatar\"\r\n [src]=\"item.avatarUrl || './assets/tango/Image/Avatar.svg'\"\r\n alt=\"{{ item[searchField] }}\"\r\n /> -->\r\n <div class=\"user-text\">\r\n <div class=\"user-name\">\r\n {{ item[searchField] }}\r\n </div>\r\n <div class=\"user-email\">\r\n {{ item.email }}\r\n </div>\r\n </div>\r\n </div>\r\n </ng-template>\r\n </li>\r\n\r\n <li *ngIf=\"!filteredValues?.length\">\r\n <span class=\"d-flex align-items-center justify-content-center\">\r\n No data found\r\n </span>\r\n </li>\r\n </ul>\r\n </div>\r\n</div>\r\n", styles: [":host{width:100%;height:100%}.outer-container{position:relative;background-color:#fff}.outer-container .form-select{font-size:1.1rem;font-weight:600;border-radius:8px!important;color:var(--Gray-500, #344054);border:1px solid var(--Gray-300, #D0D5DD)!important;height:42.5px}.outer-container .disable-input{pointer-events:none;background-color:#f9fafb!important}.outer-container .input-container{width:100%;z-index:1}.outer-container .input-container .input-wrapper{padding:8px 10px;background-color:#fff;border-top-right-radius:8px;border-top-left-radius:8px;border-top:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container .input-wrapper input{width:100%;border-radius:8px;border:1px solid var(--Gray-300, #D0D5DD);background:var(--White, #FFF);box-shadow:0 1px 2px #1018280d;padding:10px 14px 10px 30px;outline:none}.outer-container .input-container .input-wrapper input ::placeholder{color:var(--Gray-500, #667085);font-family:Inter;font-size:14px;font-weight:500;line-height:20px}.outer-container .input-container .input-wrapper .search-icon{position:absolute;left:20px;top:20px}.outer-container .input-container ul{position:relative;background-color:#fff;margin:0;padding:0;max-height:200px;min-height:auto;overflow-y:auto;border-bottom-right-radius:8px;border-bottom-left-radius:8px;border-bottom:1px solid rgba(16,24,40,.08);border-right:1px solid rgba(16,24,40,.08);border-left:1px solid rgba(16,24,40,.08)}.outer-container .input-container ul .selected{background:#f9fafb}.outer-container .input-container ul li{list-style:none;padding:10px 16px;cursor:pointer}.outer-container .input-container ul li label{cursor:pointer}.outer-container .input-container ul li:hover{background:#f9fafb}.form-check{display:flex;align-items:center}.form-check-input{height:16px;width:16px;border-radius:4px;border:1px solid var(--Primary-600, #00A3FF)}.form-check-input:checked{--bs-form-check-bg-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAAoAAAAICAYAAADA+m62AAAACXBIWXMAAAsTAAALEwEAmpwYAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAB4SURBVHgBhY7NDUBQEIRnqcJNKXTg6qYTStCB+Isy6IQSNMDa9SLh5eWZZPcw+81kCX/quABhD73QyKXsGoyIvNCJSto2hEhNtY4N9cwYeMXEsVqB1GaSauRQOpty2tSmO3FgloAmF5nEhgyoesMO6CuFW66fn2xdFyA3ZzcRLrMAAAAASUVORK5CYII=);background-color:#eaf8ff;border-color:#00a3ff}.form-check-label{color:var(--Gray-700, #344054);font-family:Inter;font-size:14px;font-style:normal;font-weight:500;line-height:20px}.select-value{border-radius:16px!important;background:var(--Gray-100, #F2F4F7)!important;mix-blend-mode:multiply;color:var(--Gray-700, #344054)!important;text-align:center;font-size:14px;font-style:normal;font-weight:500;line-height:20px;padding:4px 12px 4px 6px}.user-row{display:flex;align-items:center;padding:8px 14px;cursor:pointer;border-bottom:1px solid #f3f4f6}.user-row:last-child{border-bottom:none}.user-row:hover{background:#f5f7ff}.user-avatar{width:36px;height:36px;border-radius:50%;object-fit:cover;margin-right:10px}.user-text{display:flex;flex-direction:column}.user-name{font-size:14px;font-weight:500;color:#111827}.user-email{font-size:12px;color:#6b7280}.disable-input{pointer-events:none;opacity:.6}.avatar{width:42px;height:40px;border-radius:50%;margin-right:15px;font-size:14px;color:#1d2939;font-weight:600}.light-primary{background:#eaf8ff!important}\n"] }]
167
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.TicketService }], propDecorators: { onClick: [{
168
+ type: HostListener,
169
+ args: ['document:click', ['$event']]
170
+ }], items: [{
171
+ type: Input
172
+ }], searchField: [{
173
+ type: Input
174
+ }], multi: [{
175
+ type: Input
176
+ }], idField: [{
177
+ type: Input
178
+ }], selectedValues: [{
179
+ type: Input
180
+ }], disabled: [{
181
+ type: Input
182
+ }], label: [{
183
+ type: Input
184
+ }], selected: [{
185
+ type: Output
186
+ }] } });
187
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL2NvbXBvbmVudHMvY3VzdG9tLXNlbGVjdC9jdXN0b20tc2VsZWN0LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9jdXN0b20tc2VsZWN0L2N1c3RvbS1zZWxlY3QuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLHVCQUF1QixFQUFxQixTQUFTLEVBQUUsWUFBWSxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBaUIsTUFBTSxlQUFlLENBQUM7Ozs7O0FBRW5LLCtFQUErRTtBQVMvRSxNQUFNLE9BQU8scUJBQXFCO0lBd0JaO0lBQStCO0lBckJuRCxPQUFPLENBQUMsS0FBaUI7UUFDdkIsTUFBTSxNQUFNLEdBQUcsS0FBSyxDQUFDLE1BQXFCLENBQUM7UUFDM0MsSUFBSSxDQUFDLE1BQU0sQ0FBQyxPQUFPLENBQUMsV0FBVyxDQUFDLEVBQUU7WUFDaEMsSUFBSSxDQUFDLFlBQVksR0FBRyxLQUFLLENBQUM7U0FDM0I7SUFDSCxDQUFDO0lBRVEsS0FBSyxDQUFLO0lBQ1YsV0FBVyxDQUFRO0lBQ25CLEtBQUssQ0FBUztJQUNkLE9BQU8sQ0FBUTtJQUNmLGNBQWMsR0FBUSxFQUFFLENBQUE7SUFDeEIsUUFBUSxDQUFxQjtJQUM3QixLQUFLLENBQVE7SUFDWixRQUFRLEdBQUcsSUFBSSxZQUFZLEVBQU8sQ0FBQTtJQUM1QyxjQUFjLEdBQVEsRUFBRSxDQUFBO0lBQ3hCLFlBQVksQ0FBUztJQUNyQixXQUFXLENBQVE7SUFDbkIsVUFBVSxDQUFNO0lBR2hCLFlBQW9CLEVBQXFCLEVBQVUsV0FBeUI7UUFBeEQs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Qzt3R0EvS1UscUJBQXFCOzRGQUFyQixxQkFBcUIsNlVDWGxDLDJ2SkFzSUE7OzRGRDNIYSxxQkFBcUI7a0JBUGpDLFNBQVM7K0JBRUUsYUFBYSxtQkFHTix1QkFBdUIsQ0FBQyxNQUFNO2tIQUsvQyxPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUM7Z0JBUWpDLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxXQUFXO3NCQUFuQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxPQUFPO3NCQUFmLEtBQUs7Z0JBQ0csY0FBYztzQkFBdEIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDSSxRQUFRO3NCQUFqQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3ksIENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSG9zdExpc3RlbmVyLCBJbnB1dCwgT25DaGFuZ2VzLCBPbkluaXQsIE91dHB1dCwgU2ltcGxlQ2hhbmdlcyB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBUaWNrZXRTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0LnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBNYW5hZ2VVc2Vyc1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy12Mi9tYW5hZ2UtdXNlcnMuc2VydmljZSc7XHJcbiBcclxuQENvbXBvbmVudCh7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEBhbmd1bGFyLWVzbGludC9jb21wb25lbnQtc2VsZWN0b3JcclxuICBzZWxlY3RvcjogJ3RlYW0tc2VsZWN0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3VzdG9tLXNlbGVjdC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2N1c3RvbS1zZWxlY3QuY29tcG9uZW50LnNjc3MnLFxyXG4gIGNoYW5nZURldGVjdGlvbjogQ2hhbmdlRGV0ZWN0aW9uU3RyYXRlZ3kuT25QdXNoLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3VzdG9tU2VsZWN0Q29tcG9uZW50IGltcGxlbWVudHMgT25DaGFuZ2VzLCBPbkluaXQge1xyXG4gXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0IHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG4gXHJcbiAgQElucHV0KCkgaXRlbXM6IGFueVxyXG4gIEBJbnB1dCgpIHNlYXJjaEZpZWxkOiBzdHJpbmdcclxuICBASW5wdXQoKSBtdWx0aTogYm9vbGVhblxyXG4gIEBJbnB1dCgpIGlkRmllbGQ6IHN0cmluZ1xyXG4gIEBJbnB1dCgpIHNlbGVjdGVkVmFsdWVzOiBhbnkgPSBbXVxyXG4gIEBJbnB1dCgpIGRpc2FibGVkOiBib29sZWFuIHwgdW5kZWZpbmVkXHJcbiAgQElucHV0KCkgbGFiZWw6IHN0cmluZ1xyXG4gIEBPdXRwdXQoKSBzZWxlY3RlZCA9IG5ldyBFdmVudEVtaXR0ZXI8YW55PigpXHJcbiAgZmlsdGVyZWRWYWx1ZXM6IGFueSA9IFtdXHJcbiAgc2hvd0Ryb3Bkb3duOiBib29sZWFuXHJcbiAgc2VhcmNoVmFsdWU6IHN0cmluZ1xyXG4gIGluc3RhbmNlSWQ6IGFueTtcclxuIFxyXG4gXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYsIHByaXZhdGUgYXV0aFNlcnZpY2U6VGlja2V0U2VydmljZSkgeyB9XHJcbiAgbmdPbkluaXQoKTogdm9pZCB7XHJcbiAgICB0aGlzLmluc3RhbmNlSWQgPSBjcnlwdG8ucmFuZG9tVVVJRCgpO1xyXG4gICAgdGhpcy5hdXRoU2VydmljZS5kcm9wRG93blRyaWdnZXIuc3Vic2NyaWJlKChlKT0+eyAgICAgICAgICAgXHJcbiAgICAgIGlmKGUgIT09IHRoaXMuaW5zdGFuY2VJZCl7ICAgICAgICBcclxuICAgICAgICB0aGlzLnNob3dEcm9wZG93biA9IGZhbHNlXHJcbiAgICAgICAgdGhpcy5jZC5kZXRlY3RDaGFuZ2VzKClcclxuICAgICAgfVxyXG4gICAgfSlcclxuICB9XHJcbiBcclxuICBuZ09uQ2hhbmdlcyhjaGFuZ2VzOiBTaW1wbGVDaGFuZ2VzKTogdm9pZCB7XHJcbiBcclxuICAgIGlmIChjaGFuZ2VzWydpdGVtcyddICYmIHRoaXMuaXRlbXM/Lmxlbmd0aCkge1xyXG4gICAgICB0aGlzLmluaXRpYWxpemVJdGVtcygpO1xyXG4gICAgfVxyXG4gICAgaWYgKGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10gJiYgQXJyYXkuaXNBcnJheShjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWUpICYmIGNoYW5nZXNbJ3NlbGVjdGVkVmFsdWVzJ10/LmN1cnJlbnRWYWx1ZT8ubGVuZ3RoID4gMCAmJiBjaGFuZ2VzWydzZWxlY3RlZFZhbHVlcyddPy5jdXJyZW50VmFsdWVbMF0pIHsgICAgICAgICAgICBcclxuICAgICAgdGhpcy51cGRhdGVTZWxlY3RlZFZhbHVlcygpO1xyXG4gICAgfVxyXG4gIH1cclxuIFxyXG4gIGluaXRpYWxpemVJdGVtcygpIHtcclxuICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMgPSB0aGlzLml0ZW1zLm1hcCgoaXRlbTogYW55KSA9PiAoeyAuLi5pdGVtIH0pKTtcclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKVxyXG4gIH1cclxuIFxyXG4gIHVwZGF0ZVNlbGVjdGVkVmFsdWVzKCkgeyAgICBcclxuICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXM/LmZvckVhY2goKHNlbGVjdGVkSXRlbTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IGl0ZW0gPSB0aGlzLmZpbHRlcmVkVmFsdWVzPy5maW5kKChmaWx0ZXJlZEl0ZW06IGFueSkgPT4gZmlsdGVyZWRJdGVtPy5bdGhpcy5pZEZpZWxkXSA9PT0gc2VsZWN0ZWRJdGVtPy5bdGhpcy5pZEZpZWxkXSk7XHJcbiAgICAgIGlmIChpdGVtKSB7XHJcbiAgICAgICAgaXRlbS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuICAgICAgfVxyXG4gICAgfSk7XHJcbiAgIFxyXG4gIH1cclxuIFxyXG4gIG9wZW5Ecm9wZG93bihldmVudDogYW55KSB7XHJcbiAgICB0aGlzLmF1dGhTZXJ2aWNlLmRyb3BEb3duVHJpZ2dlci5uZXh0KHRoaXMuaW5zdGFuY2VJZClcclxuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xyXG4gICAgdGhpcy5zaG93RHJvcGRvd24gPSAhdGhpcy5zaG93RHJvcGRvd247XHJcbiAgfVxyXG4gXHJcbiAgb25JbnB1dChldmVudDogYW55KSB7XHJcbiAgICBpZiAoIWV2ZW50LnRhcmdldC52YWx1ZSkge1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gWy4uLnRoaXMuaXRlbXNdO1xyXG4gICAgfSBlbHNlIHtcclxuICAgICAgY29uc3Qgc2VhcmNoVGVybSA9IGV2ZW50LnRhcmdldC52YWx1ZS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgICB0aGlzLmZpbHRlcmVkVmFsdWVzID0gdGhpcy5pdGVtcy5maWx0ZXIoKGl0ZW06IGFueSkgPT5cclxuICAgICAgICBpdGVtW3RoaXMuc2VhcmNoRmllbGRdLnRvTG93ZXJDYXNlKCkuaW5jbHVkZXMoc2VhcmNoVGVybSlcclxuICAgICAgKTtcclxuICAgIH1cclxuICAgIHRoaXMudXBkYXRlU2VsZWN0ZWRWYWx1ZXMoKTtcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gIH1cclxuIFxyXG4gIG9uU2VsZWN0KGV2ZW50OiBhbnksIGl0ZW06IGFueSkgeyAgICBcclxuICAgIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICAgIGlmIChldmVudC5jdXJyZW50VGFyZ2V0LmNoZWNrZWQpIHtcclxuICAgICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzLnB1c2goaXRlbSApOyAgICAgICAgXHJcbiAgICAgIH0gZWxzZSB7XHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMuZmlsdGVyKChlbGVtOiBhbnkpID0+IGVsZW1bdGhpcy5pZEZpZWxkXSAhPT0gaXRlbVt0aGlzLmlkRmllbGRdKTtcclxuICAgICAgfVxyXG4gICAgfSBlbHNlIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZFZhbHVlcyA9IFt7IC4uLml0ZW0gfV07XHJcbiAgICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZm9yRWFjaCgoZWxlbWVudDphbnkpID0+IHtcclxuICAgICAgICBpZihlbGVtZW50W3RoaXMuaWRGaWVsZF0gIT09IGl0ZW1bdGhpcy5pZEZpZWxkXSl7XHJcbiAgICAgICAgICBlbGVtZW50LmlzU2VsZWN0ZWQgPSBmYWxzZVxyXG4gICAgICAgIH1cclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc2hvd0Ryb3Bkb3duID0gZmFsc2U7XHJcbiAgICB9XHJcbiBcclxuICAgIGNvbnN0IHZhbHVlc1RvRW1pdCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHNlbGVjdGVkSXRlbSA9IHsgLi4udmFsdWUgfTtcclxuICAgICAgZGVsZXRlIHNlbGVjdGVkSXRlbS5pc1NlbGVjdGVkO1xyXG4gICAgICByZXR1cm4gc2VsZWN0ZWRJdGVtO1xyXG4gICAgfSk7XHJcbiBcclxuICAgIHRoaXMuY2QuZGV0ZWN0Q2hhbmdlcygpO1xyXG4gICAgdGhpcy5lbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzVG9FbWl0KTtcclxuIFxyXG4gIH1cclxuIFxyXG4gIG9uU2VsZWN0QWxsKGV2ZW50OiBhbnkpIHtcclxuICAgIGNvbnN0IHNlbGVjdEFsbCA9IGV2ZW50LmN1cnJlbnRUYXJnZXQuY2hlY2tlZDtcclxuICAgIHRoaXMuZmlsdGVyZWRWYWx1ZXMuZm9yRWFjaCgoaXRlbTogYW55KSA9PiBpdGVtLmlzU2VsZWN0ZWQgPSBzZWxlY3RBbGwpO1xyXG4gXHJcbiAgICBpZiAoc2VsZWN0QWxsKSB7XHJcbiAgICAgIHRoaXMuc2VsZWN0ZWRWYWx1ZXMgPSBbLi4udGhpcy5maWx0ZXJlZFZhbHVlc107XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkVmFsdWVzID0gW107XHJcbiAgICB9XHJcbiBcclxuICAgIGNvbnN0IHZhbHVlc1RvRW1pdCA9IHRoaXMuc2VsZWN0ZWRWYWx1ZXMubWFwKCh2YWx1ZTogYW55KSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgaXNTZWxlY3RlZCwgLi4uc2VsZWN0ZWRJdGVtIH0gPSB2YWx1ZTtcclxuICAgICAgcmV0dXJuIHNlbGVjdGVkSXRlbTtcclxuICAgIH0pO1xyXG4gXHJcbiAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKTtcclxuICAgIHRoaXMuZW1pdFNlbGVjdGVkVmFsdWVzKHZhbHVlc1RvRW1pdCk7XHJcbiAgfVxyXG4gXHJcbiBcclxuICBlbWl0U2VsZWN0ZWRWYWx1ZXModmFsdWVzOiBhbnlbXSkge1xyXG4gICAgaWYgKHRoaXMubXVsdGkpIHtcclxuICAgICAgdGhpcy5zZWxlY3RlZC5lbWl0KHZhbHVlcyk7XHJcbiAgICB9IGVsc2Uge1xyXG4gICAgICB0aGlzLnNlbGVjdGVkLmVtaXQodmFsdWVzWzBdKTtcclxuICAgIH1cclxuICB9XHJcbiBcclxuICBjaGVja0lmQWxsU2VsZWN0ZWQoKSB7XHJcbiAgICByZXR1cm4gdGhpcy5maWx0ZXJlZFZhbHVlcy5ldmVyeSgoaXRlbTogYW55KSA9PiBpdGVtLmlzU2VsZWN0ZWQpO1xyXG4gIH1cclxuICBvbkl0ZW1DbGljayhpdGVtOiBhbnksIGV2ZW50OiBNb3VzZUV2ZW50KSB7XHJcbiAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcblxyXG4gIC8vIEZvciBtdWx0aS1zZWxlY3QsIHJvdyBjbGljayBzaG91bGQgbm90IGRvIGFueXRoaW5nIHNwZWNpYWw7XHJcbiAgLy8gY2hlY2tib3ggKyBvblNlbGVjdCBhbHJlYWR5IGhhbmRsZSBpdFxyXG4gIGlmICh0aGlzLm11bHRpKSB7XHJcbiAgICByZXR1cm47XHJcbiAgfVxyXG5cclxuICAvLyBNYXJrIHRoaXMgaXRlbSBhcyBzZWxlY3RlZCBzbyBVSSBoaWdobGlnaHRzIGl0XHJcbiAgaXRlbS5pc1NlbGVjdGVkID0gdHJ1ZTtcclxuXHJcbiAgLy8gRmFrZSBhbiBldmVudCB3aXRoIGBjdXJyZW50VGFyZ2V0LmNoZWNrZWQgPSB0cnVlYFxyXG4gIGNvbnN0IGZha2VFdmVudDogYW55ID0ge1xyXG4gICAgY3VycmVudFRhcmdldDoge1xyXG4gICAgICBjaGVja2VkOiB0cnVlXHJcbiAgICB9XHJcbiAgfTtcclxuXHJcbiAgLy8gUmV1c2UgeW91ciBleGlzdGluZyBsb2dpY1xyXG4gIHRoaXMub25TZWxlY3QoZmFrZUV2ZW50LCBpdGVtKTtcclxufVxyXG4gIGdldEluaXRpYWxzRnJvbUVtYWlsKGVtYWlsPzogc3RyaW5nKTogc3RyaW5nIHtcclxuICAgIGlmICghZW1haWwpIHJldHVybiBcIlwiO1xyXG5cclxuICAgIC8vIHRha2UgdGV4dCBiZWZvcmUgQFxyXG4gICAgY29uc3QgbmFtZVBhcnQgPSBlbWFpbC5zcGxpdChcIkBcIilbMF07XHJcblxyXG4gICAgLy8gc3BsaXQgYnkgLiBvciBzcGFjZSAoZS5nLiBcInNhbmRlZXAucGFsXCIgLT4gW1wic2FuZGVlcFwiLCBcInBhbFwiXSlcclxuICAgIGNvbnN0IHBhcnRzID0gbmFtZVBhcnQuc3BsaXQoL1suXFxzXy1dKy8pLmZpbHRlcihCb29sZWFuKTtcclxuXHJcbiAgICBpZiAocGFydHMubGVuZ3RoID49IDIpIHtcclxuICAgICAgcmV0dXJuIChwYXJ0c1swXVswXSArIHBhcnRzWzFdWzBdKS50b1VwcGVyQ2FzZSgpOyAvLyBTICsgUCA9IFNQXHJcbiAgICB9XHJcblxyXG4gICAgLy8gZmFsbGJhY2s6IGZpcnN0IHR3byBjaGFycyBvZiB3aG9sZSBuYW1lUGFydFxyXG4gICAgcmV0dXJuIG5hbWVQYXJ0LnN1YnN0cmluZygwLCAyKS50b1VwcGVyQ2FzZSgpO1xyXG4gIH1cclxuXHJcbn0iLCI8ZGl2IGNsYXNzPVwib3V0ZXItY29udGFpbmVyXCI+XHJcbiAgPCEtLSBUUklHR0VSIC0tPlxyXG4gIDxkaXZcclxuICAgIFtuZ0NsYXNzXT1cImRpc2FibGVkID8gJ2Rpc2FibGUtaW5wdXQnIDogJydcIlxyXG4gICAgY2xhc3M9XCJzZWxlY3QtdHJpZ2dlciBmb3JtLXNlbGVjdFwiXHJcbiAgICAoY2xpY2spPVwib3BlbkRyb3Bkb3duKCRldmVudClcIlxyXG4gID5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aTsgZWxzZSBzaW5nbGVNb2RlXCI+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/Lmxlbmd0aFwiIGNsYXNzPVwic2VsZWN0LXZhbHVlIG14LTJcIj5cclxuICAgICAgICA8IS0tIDxpbWcgY2xhc3M9XCJtZS0yIHRyaWdnZXItYXZhdGFyXCIgYWx0PVwiUGljXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2UvdXNlcnMtdGVhbXMuc3ZnXCIgLz4gLS0+XHJcbiAgICAgICAge3sgc2VsZWN0ZWRWYWx1ZXM/LlswXT8uW3NlYXJjaEZpZWxkXSB9fVxyXG4gICAgICA8L3NwYW4+XHJcbiAgICAgIDxzcGFuIGNsYXNzPVwic2VsZWN0LXZhbHVlIG14LTJcIiAqbmdJZj1cInNlbGVjdGVkVmFsdWVzPy5sZW5ndGggPiAxXCI+XHJcbiAgICAgICAgK3t7IHNlbGVjdGVkVmFsdWVzPy5sZW5ndGggLSAxIH19XHJcbiAgICAgIDwvc3Bhbj5cclxuICAgICAgPHNwYW4gICpuZ0lmPVwiIXNlbGVjdGVkVmFsdWVzPy5sZW5ndGhcIj57eyBsYWJlbCAgfHwgJ1NlbGVjdCcgfX08L3NwYW4+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3NpbmdsZU1vZGU+XHJcbiAgICAgIDxzcGFuICpuZ0lmPVwic2VsZWN0ZWRWYWx1ZXM/LlswXTsgZWxzZSBwbGFjZWhvbGRlclNpbmdsZVwiPlxyXG4gICAgICAgIHt7IHNlbGVjdGVkVmFsdWVzPy5bMF0/LltzZWFyY2hGaWVsZF0gfHwgJ1NlbGVjdCcgfX1cclxuICAgICAgPC9zcGFuPlxyXG4gICAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyU2luZ2xlPlxyXG4gICAgICAgIDxzcGFuID57eyBsYWJlbCB8fCAnU2VsZWN0JyB9fTwvc3Bhbj5cclxuICAgICAgPC9uZy10ZW1wbGF0ZT5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcblxyXG5cclxuICA8L2Rpdj5cclxuXHJcbiAgPCEtLSBEUk9QRE9XTiBQQU5FTCAtLT5cclxuICA8ZGl2XHJcbiAgICBjbGFzcz1cImlucHV0LWNvbnRhaW5lciBkcm9wZG93blwiXHJcbiAgICBbbmdDbGFzc109XCJzaG93RHJvcGRvd24gPyAnJyA6ICdkLW5vbmUnXCJcclxuICAgIChjbGljayk9XCIkZXZlbnQuc3RvcFByb3BhZ2F0aW9uKClcIlxyXG4gID5cclxuICAgIDwhLS0gU2VhcmNoIC0tPlxyXG4gICAgPGRpdiBjbGFzcz1cInctMTAwIGlucHV0LXdyYXBwZXJcIj5cclxuICAgICAgPGlucHV0XHJcbiAgICAgICAgWyhuZ01vZGVsKV09XCJzZWFyY2hWYWx1ZVwiXHJcbiAgICAgICAgcGxhY2Vob2xkZXI9XCJTZWFyY2hcIlxyXG4gICAgICAgIChpbnB1dCk9XCJvbklucHV0KCRldmVudClcIlxyXG4gICAgICAgIHR5cGU9XCJ0ZXh0XCJcclxuICAgICAgLz5cclxuICAgICAgPHN2Z1xyXG4gICAgICAgIGNsYXNzPVwic2VhcmNoLWljb25cIlxyXG4gICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIlxyXG4gICAgICAgIHdpZHRoPVwiMTZcIlxyXG4gICAgICAgIGhlaWdodD1cIjE3XCJcclxuICAgICAgICB2aWV3Qm94PVwiMCAwIDE2IDE3XCJcclxuICAgICAgICBmaWxsPVwibm9uZVwiXHJcbiAgICAgID5cclxuICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgZD1cIk0xNCAxNC41TDExLjEgMTEuNk0xMi42NjY3IDcuODMzMzNDMTIuNjY2NyAxMC43Nzg5IDEwLjI3ODkgMTMuMTY2NyA3LjMzMzMzIDEzLjE2NjdDNC4zODc4MSAxMy4xNjY3IDIgMTAuNzc4OSAyIDcuODMzMzNDMiA0Ljg4NzgxIDQuMzg3ODEgMi41IDcuMzMzMzMgMi41QzEwLjI3ODkgMi41IDEyLjY2NjcgNC44ODc4MSAxMi42NjY3IDcuODMzMzNaXCJcclxuICAgICAgICAgIHN0cm9rZT1cIiM2NjcwODVcIlxyXG4gICAgICAgICAgc3Ryb2tlLXdpZHRoPVwiMS4zXCJcclxuICAgICAgICAgIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIlxyXG4gICAgICAgIC8+XHJcbiAgICAgIDwvc3ZnPlxyXG4gICAgPC9kaXY+XHJcblxyXG4gICAgPHVsPlxyXG4gICAgICA8IS0tIFNlbGVjdCBhbGwgKG11bHRpIG1vZGUgb25seSkgLS0+XHJcbiAgICAgIDxsaSAqbmdJZj1cIm11bHRpICYmIGZpbHRlcmVkVmFsdWVzPy5sZW5ndGhcIj5cclxuICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrXCIgW2Zvcl09XCJpbnN0YW5jZUlkXCI+XHJcbiAgICAgICAgICA8aW5wdXRcclxuICAgICAgICAgICAgKGNoYW5nZSk9XCJvblNlbGVjdEFsbCgkZXZlbnQpXCJcclxuICAgICAgICAgICAgW2NoZWNrZWRdPVwiY2hlY2tJZkFsbFNlbGVjdGVkKClcIlxyXG4gICAgICAgICAgICBjbGFzcz1cImZvcm0tY2hlY2staW5wdXQgbWUtM1wiXHJcbiAgICAgICAgICAgIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgIFtpZF09XCJpbnN0YW5jZUlkXCJcclxuICAgICAgICAgIC8+XHJcbiAgICAgICAgICA8c3BhbiBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWxcIj4gU2VsZWN0IEFsbCA8L3NwYW4+XHJcbiAgICAgICAgPC9sYWJlbD5cclxuICAgICAgPC9saT5cclxuXHJcbiAgICAgIDwhLS0gTElTVCBJVEVNUyAtLT5cclxuICAgICAgPGxpXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IGl0ZW0gb2YgZmlsdGVyZWRWYWx1ZXNcIlxyXG4gICAgICAgIFtuZ0NsYXNzXT1cIml0ZW0uaXNTZWxlY3RlZCAmJiAhbXVsdGkgPyAnc2VsZWN0ZWQnIDogJydcIlxyXG4gICAgICAgIChjbGljayk9XCJvbkl0ZW1DbGljayhpdGVtLCAkZXZlbnQpXCJcclxuICAgICAgPlxyXG4gICAgICAgIDwhLS0gbXVsdGkg4oaSIGNoZWNrYm94ICsgbGFiZWwgOyBzaW5nbGUg4oaSIHVzZXIgcm93IChhdmF0YXIgKyBuYW1lICsgZW1haWwpIC0tPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJtdWx0aTsgZWxzZSBzaW5nbGVJdGVtVGVtcGxhdGVcIj5cclxuICAgICAgICAgIDxsYWJlbFxyXG4gICAgICAgICAgICBbZm9yXT1cIml0ZW1baWRGaWVsZF0gKyBpbnN0YW5jZUlkXCJcclxuICAgICAgICAgICAgW25nQ2xhc3NdPVwibXVsdGkgPyAnJyA6ICdwcy0wJ1wiXHJcbiAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVja1wiXHJcbiAgICAgICAgICA+XHJcbiAgICAgICAgICAgIDxpbnB1dFxyXG4gICAgICAgICAgICAgIChjaGFuZ2UpPVwib25TZWxlY3QoJGV2ZW50LCBpdGVtKVwiXHJcbiAgICAgICAgICAgICAgWyhuZ01vZGVsKV09XCJpdGVtLmlzU2VsZWN0ZWRcIlxyXG4gICAgICAgICAgICAgIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dCBtZS0zXCJcclxuICAgICAgICAgICAgICB0eXBlPVwiY2hlY2tib3hcIlxyXG4gICAgICAgICAgICAgIFtpZF09XCJpdGVtW2lkRmllbGRdICsgaW5zdGFuY2VJZFwiXHJcbiAgICAgICAgICAgIC8+XHJcbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgIHt7IGl0ZW1bc2VhcmNoRmllbGRdIH19XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxuZy10ZW1wbGF0ZSAjc2luZ2xlSXRlbVRlbXBsYXRlPlxyXG4gICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItcm93XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJhdmF0YXIgYXZhdGFyLXRleHQgbGlnaHQtcHJpbWFyeSBwLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7IGdldEluaXRpYWxzRnJvbUVtYWlsKGl0ZW0uZW1haWwgfHxcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGl0ZW0uZW1haWwpIH19XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8IS0tIDxpbWdcclxuICAgICAgICAgICAgICBjbGFzcz1cInVzZXItYXZhdGFyXCJcclxuICAgICAgICAgICAgICBbc3JjXT1cIml0ZW0uYXZhdGFyVXJsIHx8ICcuL2Fzc2V0cy90YW5nby9JbWFnZS9BdmF0YXIuc3ZnJ1wiXHJcbiAgICAgICAgICAgICAgYWx0PVwie3sgaXRlbVtzZWFyY2hGaWVsZF0gfX1cIlxyXG4gICAgICAgICAgICAvPiAtLT5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItdGV4dFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ1c2VyLW5hbWVcIj5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW1bc2VhcmNoRmllbGRdIH19XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInVzZXItZW1haWxcIj5cclxuICAgICAgICAgICAgICAgIHt7IGl0ZW0uZW1haWwgfX1cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICA8L2xpPlxyXG5cclxuICAgICAgPGxpICpuZ0lmPVwiIWZpbHRlcmVkVmFsdWVzPy5sZW5ndGhcIj5cclxuICAgICAgICA8c3BhbiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIganVzdGlmeS1jb250ZW50LWNlbnRlclwiPlxyXG4gICAgICAgICAgTm8gZGF0YSBmb3VuZFxyXG4gICAgICAgIDwvc3Bhbj5cclxuICAgICAgPC9saT5cclxuICAgIDwvdWw+XHJcbiAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -0,0 +1,41 @@
1
+ import { Component, EventEmitter, Output } from '@angular/core';
2
+ import * as i0 from "@angular/core";
3
+ import * as i1 from "@angular/forms";
4
+ export class FilterOptionsComponent {
5
+ applyFilters = new EventEmitter();
6
+ closePanel = new EventEmitter();
7
+ // sample model
8
+ status = '';
9
+ condition = '';
10
+ ticketValue = null;
11
+ reviewer = '';
12
+ apply() {
13
+ const filters = {
14
+ status: this.status,
15
+ condition: this.condition,
16
+ ticketValue: this.ticketValue,
17
+ reviewer: this.reviewer
18
+ };
19
+ this.applyFilters.emit(filters); // send to parent
20
+ }
21
+ close() {
22
+ this.closePanel.emit();
23
+ }
24
+ reset() {
25
+ this.status = '';
26
+ this.condition = '';
27
+ this.ticketValue = null;
28
+ this.reviewer = '';
29
+ }
30
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterOptionsComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
31
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FilterOptionsComponent, selector: "lib-filter-options", outputs: { applyFilters: "applyFilters", closePanel: "closePanel" }, ngImport: i0, template: "<div class=\"filter-card\">\r\n <div class=\"filter-header\">\r\n <span>Filter Options</span>\r\n <button class=\"close-btn\" (click)=\"close()\">\u2715</button>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Status</label>\r\n <select [(ngModel)]=\"status\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option>Open</option>\r\n <option>Closed</option>\r\n <option>In Progress</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Store accuracy (%) by condition</label>\r\n <div class=\"inline-row\">\r\n <select [(ngModel)]=\"condition\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option value=\">\">Greater than</option>\r\n <option value=\"<\">Lesser than</option>\r\n <option value=\">=\">Greater than or equal to</option>\r\n <option value=\"<=\">Lesser than or equal to</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"ticketValue\"\r\n placeholder=\"1 to 100%\"\r\n class=\"percent-input\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Reviewed by</label>\r\n <select [(ngModel)]=\"reviewer\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option>drewlenskart.com</option>\r\n <option>user1lenskart.com</option>\r\n <option>user2lenskart.com</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"btn-row\">\r\n <button class=\"btn btn-reset\" (click)=\"reset()\">Reset</button>\r\n <button class=\"btn btn-apply\" (click)=\"apply()\">Apply</button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body,.page-bg{background:#f3f4f7}.filter-card{width:360px;padding:18px 20px 16px;background:#fff;border-radius:16px;box-shadow:0 8px 20px #0f172a1f;font-size:13px}.filter-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:16px}.close-btn{border:none;background:transparent;cursor:pointer;font-size:14px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;margin-bottom:4px;color:#4b5563}.inline-row{display:flex;gap:8px;align-items:center}.select{width:100%;padding:8px 10px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;font-size:13px;outline:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9ca3af 50%),linear-gradient(135deg,#9ca3af 50%,transparent 50%);background-position:calc(100% - 18px) 12px,calc(100% - 13px) 12px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.percent-input{width:110px;padding:8px 10px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;font-size:13px}.btn-row{display:flex;gap:10px;margin-top:10px}.btn{flex:1;border-radius:10px;padding:8px 0;font-size:13px;border:1px solid transparent;cursor:pointer}.btn-reset{background:#f9fafb;border-color:#e5e7eb}.btn-apply{background:#60b8ff;color:#fff}\n"], dependencies: [{ kind: "directive", type: i1.NgSelectOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.ɵNgSelectMultipleOption, selector: "option", inputs: ["ngValue", "value"] }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.NumberValueAccessor, selector: "input[type=number][formControlName],input[type=number][formControl],input[type=number][ngModel]" }, { kind: "directive", type: i1.SelectControlValueAccessor, selector: "select:not([multiple])[formControlName],select:not([multiple])[formControl],select:not([multiple])[ngModel]", inputs: ["compareWith"] }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgModel, selector: "[ngModel]:not([formControlName]):not([formControl])", inputs: ["name", "disabled", "ngModel", "ngModelOptions"], outputs: ["ngModelChange"], exportAs: ["ngModel"] }] });
32
+ }
33
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FilterOptionsComponent, decorators: [{
34
+ type: Component,
35
+ args: [{ selector: 'lib-filter-options', template: "<div class=\"filter-card\">\r\n <div class=\"filter-header\">\r\n <span>Filter Options</span>\r\n <button class=\"close-btn\" (click)=\"close()\">\u2715</button>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Status</label>\r\n <select [(ngModel)]=\"status\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option>Open</option>\r\n <option>Closed</option>\r\n <option>In Progress</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Store accuracy (%) by condition</label>\r\n <div class=\"inline-row\">\r\n <select [(ngModel)]=\"condition\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option value=\">\">Greater than</option>\r\n <option value=\"<\">Lesser than</option>\r\n <option value=\">=\">Greater than or equal to</option>\r\n <option value=\"<=\">Lesser than or equal to</option>\r\n </select>\r\n\r\n <input\r\n type=\"number\"\r\n [(ngModel)]=\"ticketValue\"\r\n placeholder=\"1 to 100%\"\r\n class=\"percent-input\"\r\n />\r\n </div>\r\n </div>\r\n\r\n <div class=\"field\">\r\n <label>Reviewed by</label>\r\n <select [(ngModel)]=\"reviewer\" class=\"select\">\r\n <option value=\"\">Select</option>\r\n <option>drewlenskart.com</option>\r\n <option>user1lenskart.com</option>\r\n <option>user2lenskart.com</option>\r\n </select>\r\n </div>\r\n\r\n <div class=\"btn-row\">\r\n <button class=\"btn btn-reset\" (click)=\"reset()\">Reset</button>\r\n <button class=\"btn btn-apply\" (click)=\"apply()\">Apply</button>\r\n </div>\r\n</div>\r\n", styles: ["@charset \"UTF-8\";:host{font-family:system-ui,-apple-system,BlinkMacSystemFont,Segoe UI,sans-serif}body,.page-bg{background:#f3f4f7}.filter-card{width:360px;padding:18px 20px 16px;background:#fff;border-radius:16px;box-shadow:0 8px 20px #0f172a1f;font-size:13px}.filter-header{display:flex;justify-content:space-between;align-items:center;font-weight:600;margin-bottom:16px}.close-btn{border:none;background:transparent;cursor:pointer;font-size:14px}.field{margin-bottom:14px}.field label{display:block;font-size:12px;margin-bottom:4px;color:#4b5563}.inline-row{display:flex;gap:8px;align-items:center}.select{width:100%;padding:8px 10px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;font-size:13px;outline:none;appearance:none;background-image:linear-gradient(45deg,transparent 50%,#9ca3af 50%),linear-gradient(135deg,#9ca3af 50%,transparent 50%);background-position:calc(100% - 18px) 12px,calc(100% - 13px) 12px;background-size:5px 5px,5px 5px;background-repeat:no-repeat}.percent-input{width:110px;padding:8px 10px;border-radius:10px;border:1px solid #e5e7eb;background:#f9fafb;font-size:13px}.btn-row{display:flex;gap:10px;margin-top:10px}.btn{flex:1;border-radius:10px;padding:8px 0;font-size:13px;border:1px solid transparent;cursor:pointer}.btn-reset{background:#f9fafb;border-color:#e5e7eb}.btn-apply{background:#60b8ff;color:#fff}\n"] }]
36
+ }], propDecorators: { applyFilters: [{
37
+ type: Output
38
+ }], closePanel: [{
39
+ type: Output
40
+ }] } });
41
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmlsdGVyLW9wdGlvbnMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGFuZ28tbWFuYWdlLXRpY2tldHMvc3JjL2xpYi9jb21wb25lbnRzL2ZpbHRlci1vcHRpb25zL2ZpbHRlci1vcHRpb25zLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy9maWx0ZXItb3B0aW9ucy9maWx0ZXItb3B0aW9ucy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7OztBQU9oRSxNQUFNLE9BQU8sc0JBQXNCO0lBQ3hCLFlBQVksR0FBRyxJQUFJLFlBQVksRUFBTyxDQUFDO0lBQ3RDLFVBQVUsR0FBSyxJQUFJLFlBQVksRUFBUSxDQUFDO0lBRWxELGVBQWU7SUFDZixNQUFNLEdBQVcsRUFBRSxDQUFDO0lBQ3BCLFNBQVMsR0FBVyxFQUFFLENBQUM7SUFDdkIsV0FBVyxHQUFrQixJQUFJLENBQUM7SUFDbEMsUUFBUSxHQUFXLEVBQUUsQ0FBQztJQUV0QixLQUFLO1FBQ0gsTUFBTSxPQUFPLEdBQUc7WUFDZCxNQUFNLEVBQUUsSUFBSSxDQUFDLE1BQU07WUFDbkIsU0FBUyxFQUFFLElBQUksQ0FBQyxTQUFTO1lBQ3pCLFdBQVcsRUFBRSxJQUFJLENBQUMsV0FBVztZQUM3QixRQUFRLEVBQUUsSUFBSSxDQUFDLFFBQVE7U0FDeEIsQ0FBQztRQUNGLElBQUksQ0FBQyxZQUFZLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFDLENBQUcsaUJBQWlCO0lBQ3RELENBQUM7SUFFRCxLQUFLO1FBQ0gsSUFBSSxDQUFDLFVBQVUsQ0FBQyxJQUFJLEVBQUUsQ0FBQztJQUN6QixDQUFDO0lBRUQsS0FBSztRQUNILElBQUksQ0FBQyxNQUFNLEdBQUcsRUFBRSxDQUFDO1FBQ2pCLElBQUksQ0FBQyxTQUFTLEdBQUcsRUFBRSxDQUFDO1FBQ3BCLElBQUksQ0FBQyxXQUFXLEdBQUcsSUFBSSxDQUFDO1FBQ3hCLElBQUksQ0FBQyxRQUFRLEdBQUcsRUFBRSxDQUFDO0lBQ3JCLENBQUM7d0dBN0JVLHNCQUFzQjs0RkFBdEIsc0JBQXNCLCtIQ1BuQyxvcERBbURBOzs0RkQ1Q2Esc0JBQXNCO2tCQUxsQyxTQUFTOytCQUNFLG9CQUFvQjs4QkFLckIsWUFBWTtzQkFBckIsTUFBTTtnQkFDSSxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmlsdGVyLW9wdGlvbnMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9maWx0ZXItb3B0aW9ucy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2ZpbHRlci1vcHRpb25zLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmlsdGVyT3B0aW9uc0NvbXBvbmVudCB7XHJcbiBAT3V0cHV0KCkgYXBwbHlGaWx0ZXJzID0gbmV3IEV2ZW50RW1pdHRlcjxhbnk+KCk7XHJcbiAgQE91dHB1dCgpIGNsb3NlUGFuZWwgICA9IG5ldyBFdmVudEVtaXR0ZXI8dm9pZD4oKTtcclxuXHJcbiAgLy8gc2FtcGxlIG1vZGVsXHJcbiAgc3RhdHVzOiBzdHJpbmcgPSAnJztcclxuICBjb25kaXRpb246IHN0cmluZyA9ICcnO1xyXG4gIHRpY2tldFZhbHVlOiBudW1iZXIgfCBudWxsID0gbnVsbDtcclxuICByZXZpZXdlcjogc3RyaW5nID0gJyc7XHJcblxyXG4gIGFwcGx5KCkge1xyXG4gICAgY29uc3QgZmlsdGVycyA9IHtcclxuICAgICAgc3RhdHVzOiB0aGlzLnN0YXR1cyxcclxuICAgICAgY29uZGl0aW9uOiB0aGlzLmNvbmRpdGlvbixcclxuICAgICAgdGlja2V0VmFsdWU6IHRoaXMudGlja2V0VmFsdWUsXHJcbiAgICAgIHJldmlld2VyOiB0aGlzLnJldmlld2VyXHJcbiAgICB9O1xyXG4gICAgdGhpcy5hcHBseUZpbHRlcnMuZW1pdChmaWx0ZXJzKTsgICAvLyBzZW5kIHRvIHBhcmVudFxyXG4gIH1cclxuXHJcbiAgY2xvc2UoKSB7XHJcbiAgICB0aGlzLmNsb3NlUGFuZWwuZW1pdCgpO1xyXG4gIH1cclxuXHJcbiAgcmVzZXQoKSB7XHJcbiAgICB0aGlzLnN0YXR1cyA9ICcnO1xyXG4gICAgdGhpcy5jb25kaXRpb24gPSAnJztcclxuICAgIHRoaXMudGlja2V0VmFsdWUgPSBudWxsO1xyXG4gICAgdGhpcy5yZXZpZXdlciA9ICcnO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiZmlsdGVyLWNhcmRcIj5cclxuICA8ZGl2IGNsYXNzPVwiZmlsdGVyLWhlYWRlclwiPlxyXG4gICAgPHNwYW4+RmlsdGVyIE9wdGlvbnM8L3NwYW4+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiY2xvc2UtYnRuXCIgKGNsaWNrKT1cImNsb3NlKClcIj7inJU8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICA8bGFiZWw+U3RhdHVzPC9sYWJlbD5cclxuICAgIDxzZWxlY3QgWyhuZ01vZGVsKV09XCJzdGF0dXNcIiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24+T3Blbjwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uPkNsb3NlZDwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uPkluIFByb2dyZXNzPC9vcHRpb24+XHJcbiAgICA8L3NlbGVjdD5cclxuICA8L2Rpdj5cclxuXHJcbiAgPGRpdiBjbGFzcz1cImZpZWxkXCI+XHJcbiAgICA8bGFiZWw+U3RvcmUgYWNjdXJhY3kgKCUpIGJ5IGNvbmRpdGlvbjwvbGFiZWw+XHJcbiAgICA8ZGl2IGNsYXNzPVwiaW5saW5lLXJvd1wiPlxyXG4gICAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwiY29uZGl0aW9uXCIgY2xhc3M9XCJzZWxlY3RcIj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIj5cIj5HcmVhdGVyIHRoYW48L29wdGlvbj5cclxuICAgICAgICA8b3B0aW9uIHZhbHVlPVwiPFwiPkxlc3NlciB0aGFuPC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIj49XCI+R3JlYXRlciB0aGFuIG9yIGVxdWFsIHRvPC9vcHRpb24+XHJcbiAgICAgICAgPG9wdGlvbiB2YWx1ZT1cIjw9XCI+TGVzc2VyIHRoYW4gb3IgZXF1YWwgdG88L29wdGlvbj5cclxuICAgICAgPC9zZWxlY3Q+XHJcblxyXG4gICAgICA8aW5wdXRcclxuICAgICAgICB0eXBlPVwibnVtYmVyXCJcclxuICAgICAgICBbKG5nTW9kZWwpXT1cInRpY2tldFZhbHVlXCJcclxuICAgICAgICBwbGFjZWhvbGRlcj1cIjEgdG8gMTAwJVwiXHJcbiAgICAgICAgY2xhc3M9XCJwZXJjZW50LWlucHV0XCJcclxuICAgICAgLz5cclxuICAgIDwvZGl2PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiZmllbGRcIj5cclxuICAgIDxsYWJlbD5SZXZpZXdlZCBieTwvbGFiZWw+XHJcbiAgICA8c2VsZWN0IFsobmdNb2RlbCldPVwicmV2aWV3ZXJcIiBjbGFzcz1cInNlbGVjdFwiPlxyXG4gICAgICA8b3B0aW9uIHZhbHVlPVwiXCI+U2VsZWN0PC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24+ZHJld2xlbnNrYXJ0LmNvbTwvb3B0aW9uPlxyXG4gICAgICA8b3B0aW9uPnVzZXIxbGVuc2thcnQuY29tPC9vcHRpb24+XHJcbiAgICAgIDxvcHRpb24+dXNlcjJsZW5za2FydC5jb208L29wdGlvbj5cclxuICAgIDwvc2VsZWN0PlxyXG4gIDwvZGl2PlxyXG5cclxuICA8ZGl2IGNsYXNzPVwiYnRuLXJvd1wiPlxyXG4gICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcmVzZXRcIiAoY2xpY2spPVwicmVzZXQoKVwiPlJlc2V0PC9idXR0b24+XHJcbiAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1hcHBseVwiIChjbGljayk9XCJhcHBseSgpXCI+QXBwbHk8L2J1dHRvbj5cclxuICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==