tango-app-ui-manage-tickets 3.7.0-beta.4 → 3.7.0-beta.40

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 (44) hide show
  1. package/esm2022/lib/components/audit-mapping-list/audit-mapping-list.component.mjs +486 -0
  2. package/esm2022/lib/components/audit-report-popup/audit-report-popup.component.mjs +358 -0
  3. package/esm2022/lib/components/audit-retag/audit-retag.component.mjs +457 -0
  4. package/esm2022/lib/components/custom-select/custom-select.component.mjs +174 -0
  5. package/esm2022/lib/components/filter-options/filter-options.component.mjs +41 -0
  6. package/esm2022/lib/components/footfall-dic/footfall-dic.component.mjs +374 -196
  7. package/esm2022/lib/components/footfall-dicview/footfall-dicview.component.mjs +1014 -0
  8. package/esm2022/lib/components/footfall-popup/footfall-popup.component.mjs +15 -0
  9. package/esm2022/lib/components/reactive-select/reactive-select.component.mjs +3 -3
  10. package/esm2022/lib/components/remove-audit/remove-audit.component.mjs +80 -0
  11. package/esm2022/lib/components/start-audit/start-audit.component.mjs +742 -0
  12. package/esm2022/lib/components/tango-manage-tickets/tango-manage-tickets.component.mjs +7 -3
  13. package/esm2022/lib/components/ticket-footfall-new/ticket-footfall-new.component.mjs +2173 -0
  14. package/esm2022/lib/components/ticketclosepopup/ticketclosepopup.component.mjs +43 -0
  15. package/esm2022/lib/components/tickets/tickets.component.mjs +62 -8
  16. package/esm2022/lib/components/viewcategory/viewcategory.component.mjs +89 -0
  17. package/esm2022/lib/services/audit.service.mjs +88 -0
  18. package/esm2022/lib/services/ticket.service.mjs +128 -33
  19. package/esm2022/lib/services/timer.service.mjs +84 -0
  20. package/esm2022/lib/tango-manage-tickets-routing.module.mjs +22 -2
  21. package/esm2022/lib/tango-manage-tickets.module.mjs +57 -5
  22. package/fesm2022/tango-app-ui-manage-tickets.mjs +6425 -312
  23. package/fesm2022/tango-app-ui-manage-tickets.mjs.map +1 -1
  24. package/lib/components/audit-mapping-list/audit-mapping-list.component.d.ts +73 -0
  25. package/lib/components/audit-metrics/audit-metrics.component.d.ts +1 -1
  26. package/lib/components/audit-report-popup/audit-report-popup.component.d.ts +47 -0
  27. package/lib/components/audit-retag/audit-retag.component.d.ts +59 -0
  28. package/lib/components/custom-select/custom-select.component.d.ts +34 -0
  29. package/lib/components/filter-options/filter-options.component.d.ts +15 -0
  30. package/lib/components/footfall-dic/footfall-dic.component.d.ts +23 -8
  31. package/lib/components/footfall-dicview/footfall-dicview.component.d.ts +132 -0
  32. package/lib/components/footfall-popup/footfall-popup.component.d.ts +8 -0
  33. package/lib/components/remove-audit/remove-audit.component.d.ts +16 -0
  34. package/lib/components/start-audit/start-audit.component.d.ts +86 -0
  35. package/lib/components/tango-manage-tickets/tango-manage-tickets.component.d.ts +1 -0
  36. package/lib/components/ticket-footfall-new/ticket-footfall-new.component.d.ts +251 -0
  37. package/lib/components/ticketclosepopup/ticketclosepopup.component.d.ts +15 -0
  38. package/lib/components/tickets/tickets.component.d.ts +4 -0
  39. package/lib/components/viewcategory/viewcategory.component.d.ts +16 -0
  40. package/lib/services/audit.service.d.ts +36 -0
  41. package/lib/services/ticket.service.d.ts +25 -7
  42. package/lib/services/timer.service.d.ts +22 -0
  43. package/lib/tango-manage-tickets.module.d.ts +21 -5
  44. package/package.json +1 -1
@@ -0,0 +1,89 @@
1
+ import { Component, Input } from '@angular/core';
2
+ import * as LZString from 'lz-string';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
+ import * as i2 from "@angular/common";
6
+ export class ViewcategoryComponent {
7
+ modalService;
8
+ activeModel;
9
+ maindata = {};
10
+ imagelist = [];
11
+ counter = 0;
12
+ data;
13
+ constructor(modalService, activeModel) {
14
+ this.modalService = modalService;
15
+ this.activeModel = activeModel;
16
+ }
17
+ ngOnInit() {
18
+ if (this.data) {
19
+ this.maindata = this.data;
20
+ }
21
+ var saveData = JSON.parse(sessionStorage.getItem(this.maindata?.type) || '{}');
22
+ if (saveData.length > 0) {
23
+ this.imagelist = saveData;
24
+ }
25
+ }
26
+ removeimage(data) {
27
+ this.counter = 0;
28
+ let oldData = JSON.parse(sessionStorage.getItem(this.maindata?.type) || '{}');
29
+ let auditData = sessionStorage.getItem('audit') || '{}';
30
+ const decompressedData = LZString.decompress(auditData);
31
+ var customer = JSON.parse(decompressedData || '{}');
32
+ customer.map((cus) => {
33
+ if (cus.count > 0) {
34
+ cus.mappedid = cus.mappedid.filter((x) => x.img_name != data.img_name);
35
+ cus.count = cus.mappedid.length;
36
+ }
37
+ });
38
+ console.log(customer);
39
+ const jsonString = JSON.stringify(customer);
40
+ const compressedData = LZString.compress(jsonString);
41
+ sessionStorage.setItem('audit', compressedData);
42
+ if (this.counter < oldData?.length) {
43
+ this.counter = this.counter + 1;
44
+ var wrongData = oldData.splice(oldData.findIndex(({ img_name }) => img_name == data?.img_name), 1);
45
+ let stringifydata = sessionStorage.getItem('audit') || '{}';
46
+ const decompressedData = LZString.decompress(stringifydata);
47
+ var customer = JSON.parse(decompressedData || '{}');
48
+ console.log(wrongData);
49
+ if (wrongData.length > 0) {
50
+ wrongData[0].selected = false;
51
+ }
52
+ customer.push(wrongData[0]);
53
+ const jsonString = JSON.stringify(customer);
54
+ const compressedData = LZString.compress(jsonString);
55
+ sessionStorage.setItem('audit', compressedData);
56
+ sessionStorage.setItem(this.maindata?.type, JSON.stringify(oldData));
57
+ var newdata = JSON.parse(sessionStorage.getItem(this.maindata?.type) || '{}');
58
+ if (newdata.length > 0) {
59
+ this.imagelist = newdata;
60
+ }
61
+ else if (newdata.length == 0) {
62
+ this.activeModel.close({ reload: true });
63
+ }
64
+ else {
65
+ this.imagelist = [];
66
+ }
67
+ }
68
+ else {
69
+ }
70
+ }
71
+ closepopup() {
72
+ console.log(this.counter);
73
+ if (this.counter > 0) {
74
+ this.activeModel.close({ reload: true });
75
+ }
76
+ else {
77
+ this.activeModel.close({ reload: false });
78
+ }
79
+ }
80
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewcategoryComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }], target: i0.ɵɵFactoryTarget.Component });
81
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: ViewcategoryComponent, selector: "lib-viewcategory", inputs: { data: "data" }, ngImport: i0, template: "<div class=\"modal-body mt-5\">\r\n <div class=\" d-flex\">\r\n <div class=\"d-flex justify-content-between w-100\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"fs-2 text-dark fw-bolder my-3 mx-7\"> <span class=\"card-label fw-bold text-dark\">\r\n {{maindata?.name ? maindata?.name : 'Customer' }} Files -\r\n <span>{{maindata?.count}}</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary me-5\" (click)=\"closepopup()\" data-bs-dismiss=\"modal\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"6\" y=\"17.3137\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(-45 6 17.3137)\"\r\n fill=\"black\"></rect>\r\n <rect x=\"7.41422\" y=\"6\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(45 7.41422 6)\" fill=\"black\">\r\n </rect>\r\n </svg>\r\n </span>\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 item of imagelist;let i=index\" style=\"padding: 10px;\">\r\n\r\n <img class=\"mx-3 mb-3 img\" [src]=\"item.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{item.img_name}}</div>\r\n <span class=\"notify-badge1 cursor-pointer\" (click)=\"removeimage(item)\"><i class=\"fa fa-close\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", 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}.notify-badge1{position:absolute;right:14px;top:5px;background:var(--Primary-50, #EAF8FF);text-align:center;border-radius:6px;color:#00a3ff;border:2px solid var(--Primary-600, #00A3FF);padding:0 8px;font-size:20px}\n"], dependencies: [{ kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
82
+ }
83
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: ViewcategoryComponent, decorators: [{
84
+ type: Component,
85
+ args: [{ selector: 'lib-viewcategory', template: "<div class=\"modal-body mt-5\">\r\n <div class=\" d-flex\">\r\n <div class=\"d-flex justify-content-between w-100\">\r\n <div class=\"d-flex flex-column\">\r\n <div class=\"d-flex align-items-center mb-2\">\r\n <div class=\"fs-2 text-dark fw-bolder my-3 mx-7\"> <span class=\"card-label fw-bold text-dark\">\r\n {{maindata?.name ? maindata?.name : 'Customer' }} Files -\r\n <span>{{maindata?.count}}</span></span></div>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"btn btn-sm btn-icon btn-active-color-primary me-5\" (click)=\"closepopup()\" data-bs-dismiss=\"modal\">\r\n <span class=\"svg-icon svg-icon-1\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"24\" height=\"24\" viewBox=\"0 0 24 24\" fill=\"none\">\r\n <rect opacity=\"0.5\" x=\"6\" y=\"17.3137\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(-45 6 17.3137)\"\r\n fill=\"black\"></rect>\r\n <rect x=\"7.41422\" y=\"6\" width=\"16\" height=\"2\" rx=\"1\" transform=\"rotate(45 7.41422 6)\" fill=\"black\">\r\n </rect>\r\n </svg>\r\n </span>\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 item of imagelist;let i=index\" style=\"padding: 10px;\">\r\n\r\n <img class=\"mx-3 mb-3 img\" [src]=\"item.img_path\">\r\n <div class=\"text-center m-0 fs-7 fw-bold\">{{item.img_name}}</div>\r\n <span class=\"notify-badge1 cursor-pointer\" (click)=\"removeimage(item)\"><i class=\"fa fa-close\" aria-hidden=\"true\"\r\n style=\"font-size:15px;color:#00A3FF\"></i>\r\n </span>\r\n\r\n </div>\r\n </div>\r\n </div>\r\n </div>\r\n</div>", 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}.notify-badge1{position:absolute;right:14px;top:5px;background:var(--Primary-50, #EAF8FF);text-align:center;border-radius:6px;color:#00a3ff;border:2px solid var(--Primary-600, #00A3FF);padding:0 8px;font-size:20px}\n"] }]
86
+ }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }], propDecorators: { data: [{
87
+ type: Input
88
+ }] } });
89
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlld2NhdGVnb3J5LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy92aWV3Y2F0ZWdvcnkvdmlld2NhdGVnb3J5LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvY29tcG9uZW50cy92aWV3Y2F0ZWdvcnkvdmlld2NhdGVnb3J5LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVUsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBRXpELE9BQU8sS0FBSyxRQUFRLE1BQU0sV0FBVyxDQUFDOzs7O0FBTXRDLE1BQU0sT0FBTyxxQkFBcUI7SUFLYjtJQUErQjtJQUpsRCxRQUFRLEdBQVEsRUFBRSxDQUFBO0lBQ2xCLFNBQVMsR0FBUSxFQUFFLENBQUE7SUFDbkIsT0FBTyxHQUFRLENBQUMsQ0FBQztJQUNSLElBQUksQ0FBSztJQUNsQixZQUFtQixZQUFzQixFQUFTLFdBQTJCO1FBQTFELGlCQUFZLEdBQVosWUFBWSxDQUFVO1FBQVMsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO0lBQUksQ0FBQztJQUVsRixRQUFRO1FBQ04sSUFBSSxJQUFJLENBQUMsSUFBSSxFQUFFO1lBQ2IsSUFBSSxDQUFDLFFBQVEsR0FBRyxJQUFJLENBQUMsSUFBSSxDQUFBO1NBQzFCO1FBQ0QsSUFBSSxRQUFRLEdBQUcsSUFBSSxDQUFDLEtBQUssQ0FBQyxjQUFjLENBQUMsT0FBTyxDQUFDLElBQUksQ0FBQyxRQUFRLEVBQUUsSUFBSSxDQUFDLElBQUksSUFBSSxDQUFDLENBQUE7UUFDOUUsSUFBSSxRQUFRLENBQUMsTUFBTSxHQUFHLENBQUMsRUFBRTtZQUN2QixJQUFJLENBQUMsU0FBUyxHQUFHLFFBQVEs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LElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLElBQUksQ0FBQyxDQUFBO1lBQzdFLElBQUksT0FBTyxDQUFDLE1BQU0sR0FBRyxDQUFDLEVBQUU7Z0JBQ3RCLElBQUksQ0FBQyxTQUFTLEdBQUcsT0FBTyxDQUFBO2FBQ3pCO2lCQUFNLElBQUksT0FBTyxDQUFDLE1BQU0sSUFBSSxDQUFDLEVBQUU7Z0JBQzlCLElBQUksQ0FBQyxXQUFXLENBQUMsS0FBSyxDQUFDLEVBQUUsTUFBTSxFQUFFLElBQUksRUFBRSxDQUFDLENBQUM7YUFDMUM7aUJBQU07Z0JBQ0wsSUFBSSxDQUFDLFNBQVMsR0FBRyxFQUFFLENBQUE7YUFFcEI7U0FDRjthQUFNO1NBRU47SUFHSCxDQUFDO0lBRUQsVUFBVTtRQUNSLE9BQU8sQ0FBQyxHQUFHLENBQUMsSUFBSSxDQUFDLE9BQU8sQ0FBQyxDQUFBO1FBQ3pCLElBQUksSUFBSSxDQUFDLE9BQU8sR0FBRyxDQUFDLEVBQUU7WUFDcEIsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsSUFBSSxFQUFFLENBQUMsQ0FBQztTQUMxQzthQUFNO1lBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLEVBQUUsS0FBSyxFQUFFLENBQUMsQ0FBQztTQUFFO0lBQ3ZELENBQUM7d0dBckVVLHFCQUFxQjs0RkFBckIscUJBQXFCLGtGQ1JsQyxpakVBcUNNOzs0RkQ3Qk8scUJBQXFCO2tCQUxqQyxTQUFTOytCQUNFLGtCQUFrQjswR0FRbkIsSUFBSTtzQkFBWixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBPbkluaXQsIElucHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYk1vZGFsLCBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0ICogYXMgTFpTdHJpbmcgZnJvbSAnbHotc3RyaW5nJztcclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItdmlld2NhdGVnb3J5JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vdmlld2NhdGVnb3J5LmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vdmlld2NhdGVnb3J5LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVmlld2NhdGVnb3J5Q29tcG9uZW50IHtcclxuICBtYWluZGF0YTogYW55ID0ge31cclxuICBpbWFnZWxpc3Q6IGFueSA9IFtdXHJcbiAgY291bnRlcjogYW55ID0gMDtcclxuICBASW5wdXQoKSBkYXRhOiBhbnlcclxuICBjb25zdHJ1Y3RvcihwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCwgcHVibGljIGFjdGl2ZU1vZGVsOiBOZ2JBY3RpdmVNb2RhbCkgeyB9XHJcblxyXG4gIG5nT25Jbml0KCk6IHZvaWQge1xyXG4gICAgaWYgKHRoaXMuZGF0YSkge1xyXG4gICAgICB0aGlzLm1haW5kYXRhID0gdGhpcy5kYXRhXHJcbiAgICB9XHJcbiAgICB2YXIgc2F2ZURhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5tYWluZGF0YT8udHlwZSkgfHwgJ3t9JylcclxuICAgIGlmIChzYXZlRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgIHRoaXMuaW1hZ2VsaXN0ID0gc2F2ZURhdGFcclxuICAgIH1cclxuICB9XHJcbiAgcmVtb3ZlaW1hZ2UoZGF0YTogYW55KSB7XHJcbiAgICBcclxuICAgIHRoaXMuY291bnRlciA9IDA7XHJcbiAgICBsZXQgb2xkRGF0YSA9IEpTT04ucGFyc2Uoc2Vzc2lvblN0b3JhZ2UuZ2V0SXRlbSh0aGlzLm1haW5kYXRhPy50eXBlKSB8fCAne30nKVxyXG4gICAgbGV0IGF1ZGl0RGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgY29uc3QgZGVjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmRlY29tcHJlc3MoYXVkaXREYXRhKTtcclxuICAgIHZhciBjdXN0b21lciA9IEpTT04ucGFyc2UoZGVjb21wcmVzc2VkRGF0YSB8fCAne30nKVxyXG4gICAgY3VzdG9tZXIubWFwKChjdXM6IGFueSkgPT4ge1xyXG4gICAgICBpZiAoY3VzLmNvdW50ID4gMCkge1xyXG4gICAgICAgIGN1cy5tYXBwZWRpZCA9IGN1cy5tYXBwZWRpZC5maWx0ZXIoKHg6IGFueSkgPT4geC5pbWdfbmFtZSAhPSBkYXRhLmltZ19uYW1lKVxyXG4gICAgICAgIGN1cy5jb3VudCA9ICBjdXMubWFwcGVkaWQubGVuZ3RoXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgICBjb25zb2xlLmxvZyhjdXN0b21lcilcclxuICAgIGNvbnN0IGpzb25TdHJpbmcgPSBKU09OLnN0cmluZ2lmeShjdXN0b21lcik7XHJcbiAgICBjb25zdCBjb21wcmVzc2VkRGF0YSA9IExaU3RyaW5nLmNvbXByZXNzKGpzb25TdHJpbmcpO1xyXG4gICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgIGlmICh0aGlzLmNvdW50ZXIgPCBvbGREYXRhPy5sZW5ndGgpIHtcclxuICAgICAgdGhpcy5jb3VudGVyID0gdGhpcy5jb3VudGVyICsgMTtcclxuICAgICAgdmFyIHdyb25nRGF0YSA9IG9sZERhdGEuc3BsaWNlKG9sZERhdGEuZmluZEluZGV4KCh7IGltZ19uYW1lIH06IHsgaW1nX25hbWU6IHN0cmluZyB9KSA9PiBpbWdfbmFtZSA9PSBkYXRhPy5pbWdfbmFtZSksIDEpO1xyXG4gICAgICBsZXQgc3RyaW5naWZ5ZGF0YSA9IHNlc3Npb25TdG9yYWdlLmdldEl0ZW0oJ2F1ZGl0JykgfHwgJ3t9J1xyXG4gICAgICBjb25zdCBkZWNvbXByZXNzZWREYXRhID0gTFpTdHJpbmcuZGVjb21wcmVzcyhzdHJpbmdpZnlkYXRhKTtcclxuICAgICAgdmFyIGN1c3RvbWVyID0gSlNPTi5wYXJzZShkZWNvbXByZXNzZWREYXRhIHx8ICd7fScpXHJcbiAgICAgIGNvbnNvbGUubG9nKHdyb25nRGF0YSlcclxuICAgICAgaWYgKHdyb25nRGF0YS5sZW5ndGggPiAwKSB7XHJcbiAgICAgICAgd3JvbmdEYXRhWzBdLnNlbGVjdGVkID0gZmFsc2VcclxuICAgICAgfVxyXG4gICAgICBjdXN0b21lci5wdXNoKHdyb25nRGF0YVswXSlcclxuICAgICAgY29uc3QganNvblN0cmluZyA9IEpTT04uc3RyaW5naWZ5KGN1c3RvbWVyKTtcclxuICAgICAgY29uc3QgY29tcHJlc3NlZERhdGEgPSBMWlN0cmluZy5jb21wcmVzcyhqc29uU3RyaW5nKTtcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSgnYXVkaXQnLCBjb21wcmVzc2VkRGF0YSlcclxuICAgICAgc2Vzc2lvblN0b3JhZ2Uuc2V0SXRlbSh0aGlzLm1haW5kYXRhPy50eXBlLCBKU09OLnN0cmluZ2lmeShvbGREYXRhKSlcclxuICAgICAgdmFyIG5ld2RhdGEgPSBKU09OLnBhcnNlKHNlc3Npb25TdG9yYWdlLmdldEl0ZW0odGhpcy5tYWluZGF0YT8udHlwZSkgfHwgJ3t9JylcclxuICAgICAgaWYgKG5ld2RhdGEubGVuZ3RoID4gMCkge1xyXG4gICAgICAgIHRoaXMuaW1hZ2VsaXN0ID0gbmV3ZGF0YVxyXG4gICAgICB9IGVsc2UgaWYgKG5ld2RhdGEubGVuZ3RoID09IDApIHtcclxuICAgICAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKHsgcmVsb2FkOiB0cnVlIH0pO1xyXG4gICAgICB9IGVsc2Uge1xyXG4gICAgICAgIHRoaXMuaW1hZ2VsaXN0ID0gW11cclxuXHJcbiAgICAgIH1cclxuICAgIH0gZWxzZSB7XHJcblxyXG4gICAgfVxyXG4gICAgXHJcblxyXG4gIH1cclxuXHJcbiAgY2xvc2Vwb3B1cCgpIHtcclxuICAgIGNvbnNvbGUubG9nKHRoaXMuY291bnRlcilcclxuICAgIGlmICh0aGlzLmNvdW50ZXIgPiAwKSB7XHJcbiAgICAgIHRoaXMuYWN0aXZlTW9kZWwuY2xvc2UoeyByZWxvYWQ6IHRydWUgfSk7XHJcbiAgICB9IGVsc2UgeyB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKHsgcmVsb2FkOiBmYWxzZSB9KTsgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwibW9kYWwtYm9keSBtdC01XCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiIGQtZmxleFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gdy0xMDBcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXIgbWItMlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmcy0yIHRleHQtZGFyayBmdy1ib2xkZXIgbXktMyBteC03XCI+IDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBmdy1ib2xkIHRleHQtZGFya1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIHt7bWFpbmRhdGE/Lm5hbWUgPyBtYWluZGF0YT8ubmFtZSA6ICdDdXN0b21lcicgfX0gRmlsZXMgLVxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4+e3ttYWluZGF0YT8uY291bnR9fTwvc3Bhbj48L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImJ0biBidG4tc20gYnRuLWljb24gYnRuLWFjdGl2ZS1jb2xvci1wcmltYXJ5IG1lLTVcIiAoY2xpY2spPVwiY2xvc2Vwb3B1cCgpXCIgZGF0YS1icy1kaXNtaXNzPVwibW9kYWxcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xXCI+XHJcbiAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjI0XCIgaGVpZ2h0PVwiMjRcIiB2aWV3Qm94PVwiMCAwIDI0IDI0XCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICA8cmVjdCBvcGFjaXR5PVwiMC41XCIgeD1cIjZcIiB5PVwiMTcuMzEzN1wiIHdpZHRoPVwiMTZcIiBoZWlnaHQ9XCIyXCIgcng9XCIxXCIgdHJhbnNmb3JtPVwicm90YXRlKC00NSA2IDE3LjMxMzcpXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cImJsYWNrXCI+PC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgICAgIDxyZWN0IHg9XCI3LjQxNDIyXCIgeT1cIjZcIiB3aWR0aD1cIjE2XCIgaGVpZ2h0PVwiMlwiIHJ4PVwiMVwiIHRyYW5zZm9ybT1cInJvdGF0ZSg0NSA3LjQxNDIyIDYpXCIgZmlsbD1cImJsYWNrXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9yZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJyb3cgbXgtM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGl0ZW0gc2Nyb2xsLXlcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpdGVtXCIgKm5nRm9yPVwibGV0IGl0ZW0gb2YgaW1hZ2VsaXN0O2xldCBpPWluZGV4XCIgc3R5bGU9XCJwYWRkaW5nOiAxMHB4O1wiPlxyXG5cclxuICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwibXgtMyBtYi0zIGltZ1wiIFtzcmNdPVwiaXRlbS5pbWdfcGF0aFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWNlbnRlciBtLTAgZnMtNyBmdy1ib2xkXCI+e3tpdGVtLmltZ19uYW1lfX08L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm5vdGlmeS1iYWRnZTEgY3Vyc29yLXBvaW50ZXJcIiAoY2xpY2spPVwicmVtb3ZlaW1hZ2UoaXRlbSlcIj48aSBjbGFzcz1cImZhIGZhLWNsb3NlXCIgYXJpYS1oaWRkZW49XCJ0cnVlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0eWxlPVwiZm9udC1zaXplOjE1cHg7Y29sb3I6IzAwQTNGRlwiPjwvaT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+Il19
@@ -0,0 +1,88 @@
1
+ import { Injectable } from '@angular/core';
2
+ import { catchError, map, throwError, BehaviorSubject } from 'rxjs';
3
+ import * as i0 from "@angular/core";
4
+ import * as i1 from "@angular/common/http";
5
+ import * as i2 from "tango-app-ui-global";
6
+ export class AuditService {
7
+ http;
8
+ gs;
9
+ ticketApiUrl;
10
+ storeApiUrl;
11
+ data;
12
+ userUrl;
13
+ tokenStorage;
14
+ zoneauditApiUrl;
15
+ edgeAppApiUrl;
16
+ clientApiUrl;
17
+ clientId = new BehaviorSubject('');
18
+ clientData = new BehaviorSubject(null);
19
+ auditApiUrl;
20
+ traxauditApiUrl;
21
+ vmsAuditUrl;
22
+ footfallDirapiUrl;
23
+ dropDownTrigger = new BehaviorSubject(null);
24
+ constructor(http, gs) {
25
+ this.http = http;
26
+ this.gs = gs;
27
+ this.gs.environment.subscribe((env) => {
28
+ if (env) {
29
+ this.ticketApiUrl = env.ticketsApiUrl;
30
+ this.storeApiUrl = env.storeApiUrl;
31
+ this.userUrl = env.userUrl;
32
+ this.edgeAppApiUrl = env.edgeAppApiUrl;
33
+ this.auditApiUrl = env.auditApiUrl;
34
+ this.clientApiUrl = env.clientApiUrl;
35
+ this.vmsAuditUrl = env.vmsAuditUrl;
36
+ this.footfallDirapiUrl = env.footfallDirapiUrl;
37
+ }
38
+ this.gs.dataRangeValue.subscribe((e) => {
39
+ if (e) {
40
+ this.clientId.next(e.client);
41
+ }
42
+ });
43
+ });
44
+ }
45
+ // audit code
46
+ getAuditMapping(payload) {
47
+ return this.http.get(`${this.vmsAuditUrl}/get-file?storeId=${payload?.storeId}&nextId=${payload?.nextId}&limit=${payload?.limit}&Date=${payload?.Date}&count=${payload?.count}`);
48
+ }
49
+ getAuditconfig(clientId) {
50
+ return this.http.get(`${this.clientApiUrl}/get-footfall-directory-config?clientId=${clientId}`);
51
+ }
52
+ export(data) {
53
+ return this.http.get(`${this.clientApiUrl}/audit/processing_info?export=${data.export}&userId=${data.userId}`, { responseType: 'arraybuffer' });
54
+ }
55
+ getauditCard(filter, user) {
56
+ return this.http.get(`${this.clientApiUrl}/audit/userAuditSummary?range=${filter}&userId=${user}`);
57
+ }
58
+ getactivitylog(data) {
59
+ return this.http.post(`${this.clientApiUrl}/activitylog/list`, data);
60
+ }
61
+ saveDraft(data) {
62
+ return this.http.post(`${this.vmsAuditUrl}/save-draft`, data);
63
+ }
64
+ getAuditmappinglist(payload) {
65
+ return this.http.get(`${this.vmsAuditUrl}/get-drafted-data?fileDate=${payload?.fileDate}&storeId=${payload?.storeId}&auditId=${payload?.auditId}`);
66
+ }
67
+ saveaudit(data) {
68
+ return this.http.post(`${this.footfallDirapiUrl}/tango-review-ticket`, data);
69
+ }
70
+ userDetails() {
71
+ return this.http.get(`${this.auditApiUrl}/auth/me`, {}).pipe(map((response) => {
72
+ localStorage.setItem('user-info', JSON.stringify(response.data));
73
+ return response;
74
+ }), catchError(this.handleError));
75
+ }
76
+ handleError(error) {
77
+ return throwError(() => new Error("Something bad happened; please try again later"));
78
+ }
79
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
80
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditService, providedIn: 'root' });
81
+ }
82
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: AuditService, decorators: [{
83
+ type: Injectable,
84
+ args: [{
85
+ providedIn: 'root'
86
+ }]
87
+ }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
88
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXVkaXQuc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS10aWNrZXRzL3NyYy9saWIvc2VydmljZXMvYXVkaXQuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFZLE1BQU0sZUFBZSxDQUFDO0FBRXJELE9BQU8sRUFBYyxVQUFVLEVBQUUsR0FBRyxFQUFFLFVBQVUsRUFBQyxlQUFlLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7QUFNL0UsTUFBTSxPQUFPLFlBQVk7SUFvQkg7SUFBMEI7SUFqQjlDLFlBQVksQ0FBTTtJQUNsQixXQUFXLENBQU07SUFDakIsSUFBSSxDQUFNO0lBQ1YsT0FBTyxDQUFNO0lBQ2IsWUFBWSxDQUFNO0lBQ2xCLGVBQWUsQ0FBSztJQUNwQixhQUFhLENBQU07SUFDbkIsWUFBWSxDQUFPO0lBRW5CLFFBQVEsR0FBRyxJQUFJLGVBQWUsQ0FBUyxFQUFFLENBQUMsQ0FBQTtJQUMxQyxVQUFVLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFDM0MsV0FBVyxDQUFNO0lBQ2pCLGVBQWUsQ0FBTTtJQUNyQixXQUFXLENBQU07SUFDakIsaUJBQWlCLENBQU07SUFFdkIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFBO0lBQ2hELFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxZQUFZLEdBQUcsR0FBRyxDQUFDLGFBQWEsQ0FBQTtnQkFDckMsSUFBSSxDQUFDLFdBQVcsR0FBRyxHQUFHLENBQUMs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LENBQUMsQ0FBQyxRQUFhLEVBQUUsRUFBRTtZQUN0QixZQUFZLENBQUMsT0FBTyxDQUFDLFdBQVcsRUFBRSxJQUFJLENBQUMsU0FBUyxDQUFDLFFBQVEsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDO1lBQ2pFLE9BQU8sUUFBUSxDQUFBO1FBQ25CLENBQUMsQ0FBQyxFQUNFLFVBQVUsQ0FBQyxJQUFJLENBQUMsV0FBVyxDQUFDLENBQUMsQ0FBQztJQUN4QyxDQUFDO0lBRU8sV0FBVyxDQUFDLEtBQXdCO1FBQzFDLE9BQU8sVUFBVSxDQUNmLEdBQUcsRUFBRSxDQUFDLElBQUksS0FBSyxDQUFDLGdEQUFnRCxDQUFDLENBQ2xFLENBQUM7SUFDSixDQUFDO3dHQXZGWSxZQUFZOzRHQUFaLFlBQVksY0FGWCxNQUFNOzs0RkFFUCxZQUFZO2tCQUh4QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEh0dHBDbGllbnQsIEh0dHBFcnJvclJlc3BvbnNlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBjYXRjaEVycm9yLCBtYXAsIHRocm93RXJyb3IsQmVoYXZpb3JTdWJqZWN0IH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5cclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQXVkaXRTZXJ2aWNlIHtcclxuXHJcblxyXG4gIHRpY2tldEFwaVVybDogYW55O1xyXG4gIHN0b3JlQXBpVXJsOiBhbnk7XHJcbiAgZGF0YTogYW55O1xyXG4gIHVzZXJVcmw6IGFueTtcclxuICB0b2tlblN0b3JhZ2U6IGFueTtcclxuICB6b25lYXVkaXRBcGlVcmw6YW55O1xyXG4gIGVkZ2VBcHBBcGlVcmw6IGFueTtcclxuICBjbGllbnRBcGlVcmw6c3RyaW5nXHJcblxyXG4gIGNsaWVudElkID0gbmV3IEJlaGF2aW9yU3ViamVjdDxzdHJpbmc+KCcnKVxyXG4gIGNsaWVudERhdGEgPSBuZXcgQmVoYXZpb3JTdWJqZWN0PGFueT4obnVsbClcclxuICBhdWRpdEFwaVVybDogYW55O1xyXG4gIHRyYXhhdWRpdEFwaVVybDogYW55O1xyXG4gIHZtc0F1ZGl0VXJsOiBhbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuXHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudGlja2V0QXBpVXJsID0gZW52LnRpY2tldHNBcGlVcmxcclxuICAgICAgICB0aGlzLnN0b3JlQXBpVXJsID0gZW52LnN0b3JlQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudXNlclVybCA9IGVudi51c2VyVXJsO1xyXG4gICAgICAgIHRoaXMuZWRnZUFwcEFwaVVybCA9IGVudi5lZGdlQXBwQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5jbGllbnRBcGlVcmwgPSBlbnYuY2xpZW50QXBpVXJsXHJcbiAgICAgICAgdGhpcy52bXNBdWRpdFVybCA9IGVudi52bXNBdWRpdFVybFxyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxEaXJhcGlVcmwgPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmxcclxuICAgICAgfVxyXG4gICAgICB0aGlzLmdzLmRhdGFSYW5nZVZhbHVlLnN1YnNjcmliZSgoZTphbnkpPT57ICAgICAgXHJcbiAgICAgICAgaWYoZSl7XHJcbiAgICAgICAgICB0aGlzLmNsaWVudElkLm5leHQoZS5jbGllbnQpXHJcbiAgICAgICAgfVxyXG4gICAgICB9KVxyXG4gICAgfSk7XHJcblxyXG4gIH1cclxuXHJcbi8vIGF1ZGl0IGNvZGVcclxuXHJcbmdldEF1ZGl0TWFwcGluZyhwYXlsb2FkOmFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudm1zQXVkaXRVcmx9L2dldC1maWxlP3N0b3JlSWQ9JHtwYXlsb2FkPy5zdG9yZUlkfSZuZXh0SWQ9JHtwYXlsb2FkPy5uZXh0SWR9JmxpbWl0PSR7cGF5bG9hZD8ubGltaXR9JkRhdGU9JHtwYXlsb2FkPy5EYXRlfSZjb3VudD0ke3BheWxvYWQ/LmNvdW50fWApXHJcbn1cclxuZ2V0QXVkaXRjb25maWcoY2xpZW50SWQ6YW55KSB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2dldC1mb290ZmFsbC1kaXJlY3RvcnktY29uZmlnP2NsaWVudElkPSR7Y2xpZW50SWR9YClcclxufVxyXG5cclxuXHJcbmV4cG9ydChkYXRhOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vYXVkaXQvcHJvY2Vzc2luZ19pbmZvP2V4cG9ydD0ke2RhdGEuZXhwb3J0fSZ1c2VySWQ9JHtkYXRhLnVzZXJJZH1gLCB7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxufVxyXG5cclxuZ2V0YXVkaXRDYXJkKGZpbHRlcjogYW55LHVzZXI6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmNsaWVudEFwaVVybH0vYXVkaXQvdXNlckF1ZGl0U3VtbWFyeT9yYW5nZT0ke2ZpbHRlcn0mdXNlcklkPSR7dXNlcn1gKVxyXG59XHJcblxyXG5nZXRhY3Rpdml0eWxvZyhkYXRhOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5jbGllbnRBcGlVcmx9L2FjdGl2aXR5bG9nL2xpc3RgLCBkYXRhKVxyXG59XHJcbnNhdmVEcmFmdChkYXRhOiBhbnkpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy52bXNBdWRpdFVybH0vc2F2ZS1kcmFmdGAsIGRhdGEpXHJcbn1cclxuZ2V0QXVkaXRtYXBwaW5nbGlzdChwYXlsb2FkOmFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMudm1zQXVkaXRVcmx9L2dldC1kcmFmdGVkLWRhdGE/ZmlsZURhdGU9JHtwYXlsb2FkPy5maWxlRGF0ZX0mc3RvcmVJZD0ke3BheWxvYWQ/LnN0b3JlSWR9JmF1ZGl0SWQ9JHtwYXlsb2FkPy5hdWRpdElkfWApXHJcbn1cclxuc2F2ZWF1ZGl0KGRhdGE6IGFueSkge1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90YW5nby1yZXZpZXctdGlja2V0YCwgZGF0YSlcclxufVxyXG5cclxuXHJcblxyXG51c2VyRGV0YWlscygpIHtcclxuICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9hdXRoL21lYCwge1xyXG4gIH0pLnBpcGUobWFwKChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBsb2NhbFN0b3JhZ2Uuc2V0SXRlbSgndXNlci1pbmZvJywgSlNPTi5zdHJpbmdpZnkocmVzcG9uc2UuZGF0YSkpO1xyXG4gICAgICAgICAgcmV0dXJuIHJlc3BvbnNlXHJcbiAgICAgIH0pLFxyXG4gICAgICAgICAgY2F0Y2hFcnJvcih0aGlzLmhhbmRsZUVycm9yKSk7XHJcbn1cclxuXHJcbnByaXZhdGUgaGFuZGxlRXJyb3IoZXJyb3I6IEh0dHBFcnJvclJlc3BvbnNlKTogT2JzZXJ2YWJsZTxuZXZlcj4ge1xyXG4gIHJldHVybiB0aHJvd0Vycm9yKFxyXG4gICAgKCkgPT4gbmV3IEVycm9yKFwiU29tZXRoaW5nIGJhZCBoYXBwZW5lZDsgcGxlYXNlIHRyeSBhZ2FpbiBsYXRlclwiKVxyXG4gICk7XHJcbn1cclxuXHJcbn1cclxuIl19
@@ -1,6 +1,6 @@
1
- import { Injectable } from '@angular/core';
1
+ import { Injectable } from "@angular/core";
2
2
  import { BehaviorSubject, } from "rxjs";
3
- import { HttpParams } from '@angular/common/http';
3
+ import { HttpParams } from "@angular/common/http";
4
4
  import * as i0 from "@angular/core";
5
5
  import * as i1 from "@angular/common/http";
6
6
  import * as i2 from "tango-app-ui-global";
@@ -15,6 +15,7 @@ export class TicketService {
15
15
  footfallDirapiUrl;
16
16
  footfallCDN;
17
17
  trafficApiUrl;
18
+ revopApiUrl;
18
19
  dropDownTrigger = new BehaviorSubject(null);
19
20
  constructor(http, gs) {
20
21
  this.http = http;
@@ -29,6 +30,7 @@ export class TicketService {
29
30
  this.footfallDirapiUrl = env.footfallDirapiUrl;
30
31
  this.footfallCDN = env.footfallCDN;
31
32
  this.trafficApiUrl = env.trafficApiUrl;
33
+ this.revopApiUrl = env.revopApiUrl;
32
34
  }
33
35
  });
34
36
  }
@@ -36,13 +38,17 @@ export class TicketService {
36
38
  return this.http.post(`${this.userApiUrl}/get-list`, params);
37
39
  }
38
40
  exportInstallationList(data) {
39
- return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`, data, { responseType: 'arraybuffer' });
41
+ return this.http.post(`${this.ticketsApiUrl}/infra/installationTable`, data, { responseType: "arraybuffer" });
40
42
  }
41
43
  exportInfraList(data) {
42
- return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, { responseType: 'arraybuffer' });
44
+ return this.http.post(`${this.ticketsApiUrl}/infra/infraTable`, data, {
45
+ responseType: "arraybuffer",
46
+ });
43
47
  }
44
48
  exportMatList(data) {
45
- return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, { responseType: 'arraybuffer' });
49
+ return this.http.post(`${this.ticketsApiUrl}/infra/matTable`, data, {
50
+ responseType: "arraybuffer",
51
+ });
46
52
  }
47
53
  getSotresList(data) {
48
54
  return this.http.post(`${this.ticketsApiUrl}/infra/storeFilter`, data);
@@ -65,12 +71,6 @@ export class TicketService {
65
71
  getUserActiveList(params) {
66
72
  return this.http.post(`${this.userApiUrl}/list`, params);
67
73
  }
68
- getDataMismathList(data) {
69
- return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
70
- }
71
- exportDataMismatchList(data) {
72
- return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: 'arraybuffer' });
73
- }
74
74
  getAllCounts(data) {
75
75
  return this.http.post(`${this.ticketsApiUrl}/infra/allCounts`, data);
76
76
  }
@@ -89,70 +89,165 @@ export class TicketService {
89
89
  auditretrigger(data) {
90
90
  return this.http.post(`${this.auditApiUrl}/metrics/re-trigger`, data);
91
91
  }
92
+ getfootfallcount(data) {
93
+ return this.http.get(`${this.revopApiUrl}/store-processed-data?storeId=${data.storeId}&fromDate=${data.Date}&toDate=${data.Date}`);
94
+ }
92
95
  getstoreList(data) {
93
96
  return this.http.post(`${this.auditApiUrl}/audit-stores`, data);
94
97
  }
98
+ checkTicketExists(data) {
99
+ return this.http.post(`${this.footfallDirapiUrl}/checkTicketExists`, data);
100
+ }
101
+ mergeticket(data) {
102
+ return this.http.post(`${this.footfallDirapiUrl}/mergeticket`, data);
103
+ }
104
+ getDataMismathList(data) {
105
+ return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data);
106
+ }
107
+ exportDataMismatchList(data) {
108
+ return this.http.post(`${this.ticketsApiUrl}/infra/dataMismatchTable`, data, { responseType: "arraybuffer" });
109
+ }
95
110
  getAuditImages(data) {
96
111
  return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`);
97
112
  }
98
113
  ExportAuditImagesasxlsx(data) {
99
- return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`, { responseType: 'arraybuffer' });
114
+ return this.http.get(`${this.auditApiUrl}/audit-images?fileDate=${data?.fileDate}&storeId=${data?.storeId}&imageType=${data?.imageType}&export=${data?.export}&zoneName=${data?.zoneName}&moduleType=${data?.moduleType}`, { responseType: "arraybuffer" });
100
115
  }
101
116
  getTicketSummaryApi(client, fromDate, toDate) {
102
117
  return this.http.get(`${this.footfallDirapiUrl}/ticket-summary?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}`);
103
118
  }
104
- getTicketListApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
119
+ getTicketListOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
105
120
  return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`);
106
121
  }
107
- getTicketListExportApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
108
- return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`, { responseType: 'arraybuffer' });
122
+ getTicketListApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType) {
123
+ let url = `${this.footfallDirapiUrl}/ticket-list?` +
124
+ `clientId=${client}` +
125
+ `&fromDate=${fromDate}` +
126
+ `&toDate=${toDate}` +
127
+ `&searchValue=${searchvalue}` +
128
+ `&limit=${limit}` +
129
+ `&offset=${offset}` +
130
+ `&isExport=${isExport}` +
131
+ `&sortBy=${sortBy}` +
132
+ `&sortOrder=${sortOrder}` +
133
+ `&tangoType=${tangoType}`;
134
+ if (permissionType) {
135
+ url += `&permissionType=${permissionType}`;
136
+ }
137
+ return this.http.get(url);
138
+ }
139
+ getTicketListExportOldApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder) {
140
+ return this.http.get(`${this.footfallDirapiUrl}/ticket-list?clientId=${client}&fromDate=${fromDate}&toDate=${toDate}&searchValue=${searchvalue}&limit=${limit}&offset=${offset}&isExport=${isExport}&sortBy=${sortBy}&sortOrder=${sortOrder}`, { responseType: "arraybuffer" });
141
+ }
142
+ getTicketListExportApi(client, fromDate, toDate, searchvalue, limit, offset, isExport, sortBy, sortOrder, tangoType, permissionType) {
143
+ let url = `${this.footfallDirapiUrl}/ticket-list?` +
144
+ `clientId=${client}` +
145
+ `&fromDate=${fromDate}` +
146
+ `&toDate=${toDate}` +
147
+ `&searchValue=${searchvalue}` +
148
+ `&limit=${limit}` +
149
+ `&offset=${offset}` +
150
+ `&isExport=${isExport}` +
151
+ `&sortBy=${sortBy}` +
152
+ `&sortOrder=${sortOrder}` +
153
+ `&tangoType=${tangoType}`;
154
+ if (permissionType) {
155
+ url += `&permissionType=${permissionType}`;
156
+ }
157
+ // If export is TRUE → return arraybuffer
158
+ const options = isExport
159
+ ? { responseType: 'arraybuffer' }
160
+ : {};
161
+ return this.http.get(url, options);
109
162
  }
110
163
  getTicketsApi(store, fromDate, toDate, revopsType, status, action, offset, limit) {
111
164
  let params = new HttpParams()
112
- .set('storeId', store)
113
- .set('fromDate', fromDate)
114
- .set('toDate', toDate)
115
- .set('offset', offset)
116
- .set('limit', limit);
165
+ .set("storeId", store)
166
+ .set("fromDate", fromDate)
167
+ .set("toDate", toDate)
168
+ .set("offset", offset)
169
+ .set("limit", limit);
117
170
  if (revopsType) {
118
- params = params.set('revopsType', revopsType);
171
+ params = params.set("revopsType", revopsType);
119
172
  }
120
173
  if (status) {
121
- params = params.set('status', status);
174
+ params = params.set("status", status);
122
175
  }
123
176
  if (action) {
124
- params = params.set('action', action);
177
+ params = params.set("action", action);
125
178
  }
126
179
  return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });
127
180
  }
128
- getTaggedStoresApi(client, fromDate, toDate, searchValue, clusters) {
181
+ getTicketsNewApi(ticketId) {
182
+ let params = new HttpParams().set("ticketId", ticketId);
183
+ return this.http.get(`${this.footfallDirapiUrl}/get-tickets`, { params });
184
+ }
185
+ getTaggedStoresApi(client, fromDate, toDate, searchValue, clusters, sortOrder) {
129
186
  let params = new HttpParams()
130
- .set('clientId', client)
131
- .set('fromDate', fromDate)
132
- .set('toDate', toDate); // Add searchValue as an empty string if not provided
187
+ .set("clientId", client)
188
+ .set("fromDate", fromDate)
189
+ .set("toDate", toDate); // Add searchValue as an empty string if not provided
133
190
  // Only add 'clusters' if it's not null, undefined, or an empty array/string
134
191
  if (searchValue) {
135
- params = params.set('searchValue', searchValue);
192
+ params = params.set("searchValue", searchValue);
136
193
  }
137
194
  if (clusters && clusters.length > 0) {
138
- params = params.set('clusters', clusters);
195
+ params = params.set("clusters", clusters);
196
+ }
197
+ if (sortOrder) {
198
+ params = params.set("sortOrder", sortOrder);
139
199
  }
140
- return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, { params });
200
+ return this.http.get(`${this.footfallDirapiUrl}/get-tagged-stores`, {
201
+ params,
202
+ });
141
203
  }
142
204
  getUpdateStatusApi(data) {
143
205
  const url = `${this.footfallDirapiUrl}/update-status`;
144
206
  return this.http.put(url, data);
145
207
  }
208
+ getUpdateTempStatusApi(data) {
209
+ return this.http.post(`${this.footfallDirapiUrl}/update-temp-status`, data);
210
+ }
211
+ getOpenTicketListApi(data) {
212
+ return this.http.post(`${this.footfallDirapiUrl}/open-ticket-list`, data);
213
+ }
214
+ getUpdateTicketStatusApi(data) {
215
+ return this.http.post(`${this.footfallDirapiUrl}/update-ticket-status`, data);
216
+ }
217
+ getCreateTicketListApi(data) {
218
+ return this.http.post(`${this.footfallDirapiUrl}/create-ticket`, data);
219
+ }
220
+ CreateinternalTicketApi(data) {
221
+ return this.http.post(`${this.footfallDirapiUrl}/create-internalticket`, data);
222
+ }
146
223
  getclusters(data) {
147
224
  return this.http.post(`${this.trafficApiUrl}/headercluster_v2`, data);
148
225
  }
226
+ getReviewerApi(clientId, type) {
227
+ let params = new HttpParams().set("clientId", clientId)
228
+ .set("type", type);
229
+ return this.http.get(`${this.footfallDirapiUrl}/reviewer-list`, { params });
230
+ }
231
+ getTicketAssignApi(data) {
232
+ return this.http.post(`${this.footfallDirapiUrl}/assign-ticket`, data);
233
+ }
234
+ getMultiCloseTicketApi(data) {
235
+ return this.http.post(`${this.footfallDirapiUrl}/multi-close-tickets`, data);
236
+ }
237
+ footfallData;
238
+ setFootfallData(data) {
239
+ this.footfallData = data;
240
+ }
241
+ getFootfallData() {
242
+ return this.footfallData;
243
+ }
149
244
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, deps: [{ token: i1.HttpClient }, { token: i2.GlobalStateService }], target: i0.ɵɵFactoryTarget.Injectable });
150
- static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, providedIn: 'root' });
245
+ static ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, providedIn: "root" });
151
246
  }
152
247
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: TicketService, decorators: [{
153
248
  type: Injectable,
154
249
  args: [{
155
- providedIn: 'root'
250
+ providedIn: "root",
156
251
  }]
157
252
  }], ctorParameters: () => [{ type: i1.HttpClient }, { type: i2.GlobalStateService }] });
158
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFVSjtJQUEwQjtJQVQ5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBSztJQUNoQixpQkFBaUIsQ0FBSztJQUN0QixlQUFlLENBQUs7SUFDcEIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFLO0lBQ2hCLGFBQWEsQ0FBSztJQUNsQixlQUFlLEdBQUcsSUFBSSxlQUFlLENBQU0sSUFBSSxDQUFDLENBQUE7SUFDaEQsWUFBb0IsSUFBZ0IsRUFBVSxFQUFzQjtRQUFoRCxTQUFJLEdBQUosSUFBSSxDQUFZO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBb0I7UUFDbEUsSUFBSSxDQUFDLEVBQUUsQ0FBQyxXQUFXLENBQUMsU0FBUyxDQUFDLENBQUMsR0FBRyxFQUFFLEVBQUU7WUFDcEMsSUFBSSxHQUFHLEVBQUU7Z0JBQ1AsSUFBSSxDQUFDLFVBQVUsR0FBRyxHQUFHLENBQUMsVUFBVSxDQUFDO2dCQUNqQyxJQUFJLENBQUMsYUFBYSxHQUFFLEdBQUcsQ0FBQyxhQUFhLENBQUM7Z0JBQ3RDLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxHQUFHLENBQUMsaUJBQWlCLENBQUM7Z0JBQy9DLElBQUksQ0FBQyxXQUFXLEdBQUcsR0FBRyxDQUFDLFdBQVcsQ0FBQztnQkFDbkMsSUFBSSxDQUFDLGVBQWUsR0FBRyxHQUFH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YUFBYSxtQkFBbUIsRUFBRSxJQUFJLENBQUMsQ0FBQTtJQUN2RSxDQUFDO3dHQTFKVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tICdAYW5ndWxhci9jb21tb24vaHR0cCc7XHJcbmltcG9ydCB7IEluamVjdGFibGUsIE9wdGlvbmFsIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWFwLFxyXG4gIG9mLFxyXG4gIHRocm93RXJyb3IsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcclxuQEluamVjdGFibGUoe1xyXG4gIHByb3ZpZGVkSW46ICdyb290J1xyXG59KVxyXG5leHBvcnQgY2xhc3MgVGlja2V0U2VydmljZSB7XHJcbiAgdXNlckFwaVVybDogYW55O1xyXG4gIHRpY2tldHNBcGlVcmw6IGFueTtcclxuICBhdWRpdEFwaVVybDphbnk7XHJcbiAgYXVkaXRtZXRyaWNBcGlVcmw6YW55O1xyXG4gIHpvbmVhdWRpdEFwaVVybDphbnk7XHJcbiAgZm9vdGZhbGxEaXJhcGlVcmw6IGFueTtcclxuICBmb290ZmFsbENETjphbnk7XHJcbiAgdHJhZmZpY0FwaVVybDphbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpXHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBodHRwOiBIdHRwQ2xpZW50LCBwcml2YXRlIGdzOiBHbG9iYWxTdGF0ZVNlcnZpY2UpIHtcclxuICAgIHRoaXMuZ3MuZW52aXJvbm1lbnQuc3Vic2NyaWJlKChlbnYpID0+IHtcclxuICAgICAgaWYgKGVudikge1xyXG4gICAgICAgIHRoaXMudXNlckFwaVVybCA9IGVudi51c2VyQXBpVXJsO1xyXG4gICAgICAgIHRoaXMudGlja2V0c0FwaVVybCA9ZW52LnRpY2tldHNBcGlVcmw7XHJcbiAgICAgICAgdGhpcy5hdWRpdG1ldHJpY0FwaVVybCA9IGVudi5hdWRpdG1ldHJpY0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0QXBpVXJsID0gZW52LmF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuem9uZWF1ZGl0QXBpVXJsID0gZW52LnpvbmVhdWRpdEFwaVVybDtcclxuICAgICAgICB0aGlzLmZvb3RmYWxsRGlyYXBpVXJsPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbENETiA9ZW52LmZvb3RmYWxsQ0ROO1xyXG4gICAgICAgIHRoaXMudHJhZmZpY0FwaVVybCA9ZW52LnRyYWZmaWNBcGlVcmw7XHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRVc2VyTGlzdChwYXJhbXM6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnVzZXJBcGlVcmx9L2dldC1saXN0YCwgcGFyYW1zKVxyXG4gIH1cclxuICBleHBvcnRJbnN0YWxsYXRpb25MaXN0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxkYXRhLHtyZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcid9KVxyXG4gIH1cclxuICBleHBvcnRJbmZyYUxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZXhwb3J0TWF0TGlzdChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsZGF0YSx7cmVzcG9uc2VUeXBlOiAnYXJyYXlidWZmZXInfSlcclxuICB9XHJcbiAgZ2V0U290cmVzTGlzdChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL3N0b3JlRmlsdGVyYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEluc3RhbGxhdGlvbkxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG5cclxuICBnZXRJbmZyYUxpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbmZyYVRhYmxlYCwgZGF0YSlcclxuICB9XHJcblxyXG4gIGdldEFzc2lnblRpY2tldChkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2Fzc2lnblRpY2tldGAsIGRhdGEpXHJcbiAgfVxyXG4gIGdldE1hdExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9tYXRUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIFxyXG4gIHVwZGF0ZVRpY2tldElzc3VlKGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vZW1wbG95ZWVUcmFuaW5nL3VwZGF0ZWNvbW1lbnRgLCBkYXRhKVxyXG4gIH1cclxuXHJcbiAgZ2V0VXNlckFjdGl2ZUxpc3QocGFyYW1zOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy51c2VyQXBpVXJsfS9saXN0YCwgcGFyYW1zKVxyXG4gIH1cclxuICBcclxuICBnZXREYXRhTWlzbWF0aExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kYXRhTWlzbWF0Y2hUYWJsZWAsIGRhdGEpXHJcbiAgfVxyXG4gIGV4cG9ydERhdGFNaXNtYXRjaExpc3QoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb3VudHMoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hbGxDb3VudHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3MoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzRXhwb3J0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIGdldGNsaWVudExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2NsaWVudHNgKVxyXG4gIH1cclxuICBnZXR1c2VyTGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vdGFuZ28tdXNlcnNgKVxyXG4gIH1cclxuICBhdWRpdHJldHJpZ2dlcihkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9yZS10cmlnZ2VyYCxkYXRhKVxyXG4gfVxyXG4gZ2V0c3RvcmVMaXN0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtc3RvcmVzYCxkYXRhKVxyXG4gfVxyXG4gZ2V0QXVkaXRJbWFnZXMoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWApXHJcbiAgfVxyXG4gIEV4cG9ydEF1ZGl0SW1hZ2VzYXN4bHN4KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2F1ZGl0LWltYWdlcz9maWxlRGF0ZT0ke2RhdGE/LmZpbGVEYXRlfSZzdG9yZUlkPSR7ZGF0YT8uc3RvcmVJZH0maW1hZ2VUeXBlPSR7ZGF0YT8uaW1hZ2VUeXBlfSZleHBvcnQ9JHtkYXRhPy5leHBvcnR9JnpvbmVOYW1lPSR7ZGF0YT8uem9uZU5hbWV9Jm1vZHVsZVR5cGU9JHtkYXRhPy5tb2R1bGVUeXBlfWAse3Jlc3BvbnNlVHlwZTonYXJyYXlidWZmZXInfSlcclxuICB9XHJcblxyXG4gIGdldFRpY2tldFN1bW1hcnlBcGkoY2xpZW50OiBhbnksIGZyb21EYXRlOiBhbnksIHRvRGF0ZTogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9YCk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRMaXN0QXBpKGNsaWVudDogYW55LCBmcm9tRGF0ZTogYW55LCB0b0RhdGU6IGFueSwgc2VhcmNodmFsdWU6YW55LCBsaW1pdDphbnksIG9mZnNldDphbnksIGlzRXhwb3J0OmFueSxzb3J0Qnk6YW55LHNvcnRPcmRlcjphbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRBcGkoY2xpZW50OiBhbnksIGZyb21EYXRlOiBhbnksIHRvRGF0ZTogYW55LCBzZWFyY2h2YWx1ZTphbnksIGxpbWl0OmFueSwgb2Zmc2V0OmFueSwgaXNFeHBvcnQ6YW55LHNvcnRCeTphbnksc29ydE9yZGVyOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWAse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pO1xyXG4gIH1cclxuXHJcblxyXG5cclxuZ2V0VGlja2V0c0FwaShzdG9yZTogYW55LCBmcm9tRGF0ZTogYW55LCB0b0RhdGU6IGFueSwgcmV2b3BzVHlwZTogYW55LCBzdGF0dXM6IGFueSwgYWN0aW9uOiBhbnksIG9mZnNldDogYW55LCBsaW1pdDogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldCgnc3RvcmVJZCcsIHN0b3JlKVxyXG4gICAgLnNldCgnZnJvbURhdGUnLCBmcm9tRGF0ZSlcclxuICAgIC5zZXQoJ3RvRGF0ZScsIHRvRGF0ZSlcclxuICAgIC5zZXQoJ29mZnNldCcsIG9mZnNldClcclxuICAgIC5zZXQoJ2xpbWl0JywgbGltaXQpO1xyXG4gIGlmIChyZXZvcHNUeXBlKSB7XHJcbiAgICBwYXJhbXMgPSBwYXJhbXMuc2V0KCdyZXZvcHNUeXBlJywgcmV2b3BzVHlwZSk7XHJcbiAgfVxyXG4gIGlmIChzdGF0dXMpIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3N0YXR1cycsIHN0YXR1cyk7XHJcbiAgfVxyXG4gIGlmIChhY3Rpb24pIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2FjdGlvbicsIGFjdGlvbik7XHJcbiAgfVxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2dldC10aWNrZXRzYCwgeyBwYXJhbXMgfSk7XHJcbn1cclxuXHJcbmdldFRhZ2dlZFN0b3Jlc0FwaShjbGllbnQ6IGFueSwgZnJvbURhdGU6IGFueSwgdG9EYXRlOiBhbnksc2VhcmNoVmFsdWU6YW55LCBjbHVzdGVyczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKVxyXG4gICAgLnNldCgnY2xpZW50SWQnLCBjbGllbnQpXHJcbiAgICAuc2V0KCdmcm9tRGF0ZScsIGZyb21EYXRlKVxyXG4gICAgLnNldCgndG9EYXRlJywgdG9EYXRlKTsgLy8gQWRkIHNlYXJjaFZhbHVlIGFzIGFuIGVtcHR5IHN0cmluZyBpZiBub3QgcHJvdmlkZWRcclxuICAgIC8vIE9ubHkgYWRkICdjbHVzdGVycycgaWYgaXQncyBub3QgbnVsbCwgdW5kZWZpbmVkLCBvciBhbiBlbXB0eSBhcnJheS9zdHJpbmdcclxuICAgIGlmIChzZWFyY2hWYWx1ZSkge1xyXG4gICAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ3NlYXJjaFZhbHVlJywgc2VhcmNoVmFsdWUpO1xyXG4gICAgICB9XHJcbiAgaWYgKGNsdXN0ZXJzICYmIGNsdXN0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoJ2NsdXN0ZXJzJywgY2x1c3RlcnMpO1xyXG4gIH1cclxuICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGFnZ2VkLXN0b3Jlc2AsIHsgcGFyYW1zIH0pO1xyXG59XHJcblxyXG5cclxuZ2V0VXBkYXRlU3RhdHVzQXBpKGRhdGE6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICBjb25zdCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtc3RhdHVzYDtcclxuICByZXR1cm4gdGhpcy5odHRwLnB1dCh1cmwsIGRhdGEpO1xyXG59XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSlcclxuICB9XHJcbn1cclxuIl19
253
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGlja2V0LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2UtdGlja2V0cy9zcmMvbGliL3NlcnZpY2VzL3RpY2tldC5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUNBLE9BQU8sRUFBRSxVQUFVLEVBQVksTUFBTSxlQUFlLENBQUM7QUFFckQsT0FBTyxFQUNMLGVBQWUsR0FNaEIsTUFBTSxNQUFNLENBQUM7QUFDZCxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sc0JBQXNCLENBQUM7Ozs7QUFJbEQsTUFBTSxPQUFPLGFBQWE7SUFXSjtJQUEwQjtJQVY5QyxVQUFVLENBQU07SUFDaEIsYUFBYSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixpQkFBaUIsQ0FBTTtJQUN2QixlQUFlLENBQU07SUFDckIsaUJBQWlCLENBQU07SUFDdkIsV0FBVyxDQUFNO0lBQ2pCLGFBQWEsQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsZUFBZSxHQUFHLElBQUksZUFBZSxDQUFNLElBQUksQ0FBQyxDQUFDO0lBQ2pELFlBQW9CLElBQWdCLEVBQVUsRUFBc0I7UUFBaEQsU0FBSSxHQUFKLElBQUksQ0FBWTtRQUFVLE9BQUUsR0FBRixFQUFFLENBQW9CO1FBQ2xFLElBQUksQ0FBQyxFQUFFLENBQUMsV0FBVyxDQUFDLFNBQVMsQ0FBQyxDQUFDLEdBQUcsRUFBRSxFQUFFO1lBQ3BDLElBQUksR0FBRyxFQUFFO2dCQUNQLElBQUksQ0FBQyxVQUFVLEdBQUcsR0FBRyxDQUFDLFVBQVUsQ0FBQztnQkFDakMsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLENBQUMsYUFBYSxDQUFDO2dCQUN2QyxJQUFJLENBQUMsaUJBQWlCLEdBQUcsR0FBRyxDQUFDLGlCQUFpQixDQUFDO2dCQUMvQyxJQUFJLENBQUMsV0FBVyxHQUFHLEdBQUcsQ0FBQyxXQUFXLENBQUM7Z0JBQ25DLElBQUksQ0FB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VUFBVSxFQUFFLFFBQVEsQ0FBQzthQUNwRCxHQUFHLENBQUMsTUFBTSxFQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3BCLE9BQU8sSUFBSSxDQUFDLElBQUksQ0FBQyxHQUFHLENBQUMsR0FBRyxJQUFJLENBQUMsaUJBQWlCLGdCQUFnQixFQUFFLEVBQUUsTUFBTSxFQUFFLENBQUMsQ0FBQztJQUM5RSxDQUFDO0lBRUQsa0JBQWtCLENBQUMsSUFBUztRQUMxQixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLEdBQUcsSUFBSSxDQUFDLGlCQUFpQixnQkFBZ0IsRUFBRSxJQUFJLENBQUMsQ0FBQztJQUN6RSxDQUFDO0lBRUQsc0JBQXNCLENBQUMsSUFBUztRQUM5QixPQUFPLElBQUksQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUNuQixHQUFHLElBQUksQ0FBQyxpQkFBaUIsc0JBQXNCLEVBQy9DLElBQUksQ0FDTCxDQUFDO0lBQ0osQ0FBQztJQUNPLFlBQVksQ0FBTTtJQUUxQixlQUFlLENBQUMsSUFBUztRQUN2QixJQUFJLENBQUMsWUFBWSxHQUFHLElBQUksQ0FBQztJQUMzQixDQUFDO0lBRUQsZUFBZTtRQUNiLE9BQU8sSUFBSSxDQUFDLFlBQVksQ0FBQztJQUMzQixDQUFDO3dHQXRYVSxhQUFhOzRHQUFiLGFBQWEsY0FGWixNQUFNOzs0RkFFUCxhQUFhO2tCQUh6QixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEh0dHBDbGllbnQgfSBmcm9tIFwiQGFuZ3VsYXIvY29tbW9uL2h0dHBcIjtcclxuaW1wb3J0IHsgSW5qZWN0YWJsZSwgT3B0aW9uYWwgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQge1xyXG4gIEJlaGF2aW9yU3ViamVjdCxcclxuICBPYnNlcnZhYmxlLFxyXG4gIGNhdGNoRXJyb3IsXHJcbiAgbWFwLFxyXG4gIG9mLFxyXG4gIHRocm93RXJyb3IsXHJcbn0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgSHR0cFBhcmFtcyB9IGZyb20gXCJAYW5ndWxhci9jb21tb24vaHR0cFwiO1xyXG5ASW5qZWN0YWJsZSh7XHJcbiAgcHJvdmlkZWRJbjogXCJyb290XCIsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUaWNrZXRTZXJ2aWNlIHtcclxuICB1c2VyQXBpVXJsOiBhbnk7XHJcbiAgdGlja2V0c0FwaVVybDogYW55O1xyXG4gIGF1ZGl0QXBpVXJsOiBhbnk7XHJcbiAgYXVkaXRtZXRyaWNBcGlVcmw6IGFueTtcclxuICB6b25lYXVkaXRBcGlVcmw6IGFueTtcclxuICBmb290ZmFsbERpcmFwaVVybDogYW55O1xyXG4gIGZvb3RmYWxsQ0ROOiBhbnk7XHJcbiAgdHJhZmZpY0FwaVVybDogYW55O1xyXG4gIHJldm9wQXBpVXJsOiBhbnk7XHJcbiAgZHJvcERvd25UcmlnZ2VyID0gbmV3IEJlaGF2aW9yU3ViamVjdDxhbnk+KG51bGwpO1xyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaHR0cDogSHR0cENsaWVudCwgcHJpdmF0ZSBnczogR2xvYmFsU3RhdGVTZXJ2aWNlKSB7XHJcbiAgICB0aGlzLmdzLmVudmlyb25tZW50LnN1YnNjcmliZSgoZW52KSA9PiB7XHJcbiAgICAgIGlmIChlbnYpIHtcclxuICAgICAgICB0aGlzLnVzZXJBcGlVcmwgPSBlbnYudXNlckFwaVVybDtcclxuICAgICAgICB0aGlzLnRpY2tldHNBcGlVcmwgPSBlbnYudGlja2V0c0FwaVVybDtcclxuICAgICAgICB0aGlzLmF1ZGl0bWV0cmljQXBpVXJsID0gZW52LmF1ZGl0bWV0cmljQXBpVXJsO1xyXG4gICAgICAgIHRoaXMuYXVkaXRBcGlVcmwgPSBlbnYuYXVkaXRBcGlVcmw7XHJcbiAgICAgICAgdGhpcy56b25lYXVkaXRBcGlVcmwgPSBlbnYuem9uZWF1ZGl0QXBpVXJsO1xyXG4gICAgICAgIHRoaXMuZm9vdGZhbGxEaXJhcGlVcmwgPSBlbnYuZm9vdGZhbGxEaXJhcGlVcmw7XHJcbiAgICAgICAgdGhpcy5mb290ZmFsbENETiA9IGVudi5mb290ZmFsbENETjtcclxuICAgICAgICB0aGlzLnRyYWZmaWNBcGlVcmwgPSBlbnYudHJhZmZpY0FwaVVybDtcclxuICAgICAgICB0aGlzLnJldm9wQXBpVXJsID0gZW52LnJldm9wQXBpVXJsO1xyXG4gICAgICB9XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJMaXN0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudXNlckFwaVVybH0vZ2V0LWxpc3RgLCBwYXJhbXMpO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0SW5zdGFsbGF0aW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9pbnN0YWxsYXRpb25UYWJsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGV4cG9ydEluZnJhTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luZnJhVGFibGVgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBleHBvcnRNYXRMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvbWF0VGFibGVgLCBkYXRhLCB7XHJcbiAgICAgIHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiLFxyXG4gICAgfSk7XHJcbiAgfVxyXG5cclxuICBnZXRTb3RyZXNMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9zdG9yZUZpbHRlcmAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0SW5zdGFsbGF0aW9uTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL2luc3RhbGxhdGlvblRhYmxlYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldEluZnJhTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvaW5mcmFUYWJsZWAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0QXNzaWduVGlja2V0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvYXNzaWduVGlja2V0YCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldE1hdExpc3QoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3Q8YW55PihgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2luZnJhL21hdFRhYmxlYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICB1cGRhdGVUaWNrZXRJc3N1ZShkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KFxyXG4gICAgICBgJHt0aGlzLnRpY2tldHNBcGlVcmx9L2VtcGxveWVlVHJhbmluZy91cGRhdGVjb21tZW50YCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFVzZXJBY3RpdmVMaXN0KHBhcmFtczogYW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdDxhbnk+KGAke3RoaXMudXNlckFwaVVybH0vbGlzdGAsIHBhcmFtcyk7XHJcbiAgfVxyXG5cclxuICBnZXRBbGxDb3VudHMoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9hbGxDb3VudHNgLCBkYXRhKVxyXG4gIH1cclxuICBnZXRzdG9yZU1ldHJpY3MoZGF0YTphbnkpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuYXVkaXRBcGlVcmx9L21ldHJpY3Mvc3RvcmUtbWV0cmljc2AsZGF0YSlcclxuICB9XHJcbiAgZ2V0c3RvcmVNZXRyaWNzRXhwb3J0KGRhdGE6YW55KXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmF1ZGl0QXBpVXJsfS9tZXRyaWNzL3N0b3JlLW1ldHJpY3NgLGRhdGEse3Jlc3BvbnNlVHlwZTogJ2FycmF5YnVmZmVyJ30pXHJcbiAgfVxyXG4gIGdldGNsaWVudExpc3QoKXtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KGAke3RoaXMuYXVkaXRBcGlVcmx9L2NsaWVudHNgKVxyXG4gIH1cclxuICBnZXR1c2VyTGlzdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5hdWRpdEFwaVVybH0vdGFuZ28tdXNlcnNgKVxyXG4gIH1cclxuICBhdWRpdHJldHJpZ2dlcihkYXRhOmFueSl7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vbWV0cmljcy9yZS10cmlnZ2VyYCxkYXRhKVxyXG4gfVxyXG4gZ2V0Zm9vdGZhbGxjb3VudChkYXRhOmFueSl7XHJcbiAgICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5yZXZvcEFwaVVybH0vc3RvcmUtcHJvY2Vzc2VkLWRhdGE/c3RvcmVJZD0ke2RhdGEuc3RvcmVJZH0mZnJvbURhdGU9JHtkYXRhLkRhdGV9JnRvRGF0ZT0ke2RhdGEuRGF0ZX1gKVxyXG4gIFxyXG4gfVxyXG4gZ2V0c3RvcmVMaXN0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5hdWRpdEFwaVVybH0vYXVkaXQtc3RvcmVzYCxkYXRhKVxyXG4gfVxyXG4gY2hlY2tUaWNrZXRFeGlzdHMoZGF0YTphbnkpe1xyXG4gIHJldHVybiB0aGlzLmh0dHAucG9zdChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9jaGVja1RpY2tldEV4aXN0c2AsZGF0YSlcclxuIH1cclxuIG1lcmdldGlja2V0KGRhdGE6YW55KXtcclxuICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vbWVyZ2V0aWNrZXRgLGRhdGEpXHJcbiB9XHJcbiAgZ2V0RGF0YU1pc21hdGhMaXN0KGRhdGE6IGFueSkge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0PGFueT4oXHJcbiAgICAgIGAke3RoaXMudGlja2V0c0FwaVVybH0vaW5mcmEvZGF0YU1pc21hdGNoVGFibGVgLFxyXG4gICAgICBkYXRhXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZXhwb3J0RGF0YU1pc21hdGNoTGlzdChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucG9zdChcclxuICAgICAgYCR7dGhpcy50aWNrZXRzQXBpVXJsfS9pbmZyYS9kYXRhTWlzbWF0Y2hUYWJsZWAsXHJcbiAgICAgIGRhdGEsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG5cclxuICBnZXRBdWRpdEltYWdlcyhkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmF1ZGl0QXBpVXJsfS9hdWRpdC1pbWFnZXM/ZmlsZURhdGU9JHtkYXRhPy5maWxlRGF0ZX0mc3RvcmVJZD0ke2RhdGE/LnN0b3JlSWR9JmltYWdlVHlwZT0ke2RhdGE/LmltYWdlVHlwZX0mZXhwb3J0PSR7ZGF0YT8uZXhwb3J0fSZ6b25lTmFtZT0ke2RhdGE/LnpvbmVOYW1lfSZtb2R1bGVUeXBlPSR7ZGF0YT8ubW9kdWxlVHlwZX1gXHJcbiAgICApO1xyXG4gIH1cclxuICBFeHBvcnRBdWRpdEltYWdlc2FzeGxzeChkYXRhOiBhbnkpIHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmF1ZGl0QXBpVXJsfS9hdWRpdC1pbWFnZXM/ZmlsZURhdGU9JHtkYXRhPy5maWxlRGF0ZX0mc3RvcmVJZD0ke2RhdGE/LnN0b3JlSWR9JmltYWdlVHlwZT0ke2RhdGE/LmltYWdlVHlwZX0mZXhwb3J0PSR7ZGF0YT8uZXhwb3J0fSZ6b25lTmFtZT0ke2RhdGE/LnpvbmVOYW1lfSZtb2R1bGVUeXBlPSR7ZGF0YT8ubW9kdWxlVHlwZX1gLFxyXG4gICAgICB7IHJlc3BvbnNlVHlwZTogXCJhcnJheWJ1ZmZlclwiIH1cclxuICAgICk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRTdW1tYXJ5QXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoXHJcbiAgICAgIGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L3RpY2tldC1zdW1tYXJ5P2NsaWVudElkPSR7Y2xpZW50fSZmcm9tRGF0ZT0ke2Zyb21EYXRlfSZ0b0RhdGU9JHt0b0RhdGV9YFxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RPbGRBcGkoXHJcbiAgICBjbGllbnQ6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHNlYXJjaHZhbHVlOiBhbnksXHJcbiAgICBsaW1pdDogYW55LFxyXG4gICAgb2Zmc2V0OiBhbnksXHJcbiAgICBpc0V4cG9ydDogYW55LFxyXG4gICAgc29ydEJ5OiBhbnksXHJcbiAgICBzb3J0T3JkZXI6IGFueVxyXG4gICk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChcclxuICAgICAgYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdGlja2V0LWxpc3Q/Y2xpZW50SWQ9JHtjbGllbnR9JmZyb21EYXRlPSR7ZnJvbURhdGV9JnRvRGF0ZT0ke3RvRGF0ZX0mc2VhcmNoVmFsdWU9JHtzZWFyY2h2YWx1ZX0mbGltaXQ9JHtsaW1pdH0mb2Zmc2V0PSR7b2Zmc2V0fSZpc0V4cG9ydD0ke2lzRXhwb3J0fSZzb3J0Qnk9JHtzb3J0Qnl9JnNvcnRPcmRlcj0ke3NvcnRPcmRlcn1gXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55LFxyXG4gICAgdGFuZ29UeXBlOiBhbnksXHJcbiAgICAgcGVybWlzc2lvblR5cGU/OiBzdHJpbmcgfCBudWxsXHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9gICtcclxuICAgICAgICAgICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgICAgICAgICBgJmZyb21EYXRlPSR7ZnJvbURhdGV9YCArXHJcbiAgICAgICAgICAgIGAmdG9EYXRlPSR7dG9EYXRlfWAgK1xyXG4gICAgICAgICAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICAgICAgICAgIGAmbGltaXQ9JHtsaW1pdH1gICtcclxuICAgICAgICAgICAgYCZvZmZzZXQ9JHtvZmZzZXR9YCArXHJcbiAgICAgICAgICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgICAgICAgICAgYCZzb3J0Qnk9JHtzb3J0Qnl9YCArXHJcbiAgICAgICAgICAgIGAmc29ydE9yZGVyPSR7c29ydE9yZGVyfWAgK1xyXG4gICAgICAgICAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDsgXHJcbiAgfVxyXG5cclxuICByZXR1cm4gdGhpcy5odHRwLmdldCh1cmwpO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0TGlzdEV4cG9ydE9sZEFwaShcclxuICAgIGNsaWVudDogYW55LFxyXG4gICAgZnJvbURhdGU6IGFueSxcclxuICAgIHRvRGF0ZTogYW55LFxyXG4gICAgc2VhcmNodmFsdWU6IGFueSxcclxuICAgIGxpbWl0OiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGlzRXhwb3J0OiBhbnksXHJcbiAgICBzb3J0Qnk6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIHJldHVybiB0aGlzLmh0dHAuZ2V0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9jbGllbnRJZD0ke2NsaWVudH0mZnJvbURhdGU9JHtmcm9tRGF0ZX0mdG9EYXRlPSR7dG9EYXRlfSZzZWFyY2hWYWx1ZT0ke3NlYXJjaHZhbHVlfSZsaW1pdD0ke2xpbWl0fSZvZmZzZXQ9JHtvZmZzZXR9JmlzRXhwb3J0PSR7aXNFeHBvcnR9JnNvcnRCeT0ke3NvcnRCeX0mc29ydE9yZGVyPSR7c29ydE9yZGVyfWAsXHJcbiAgICAgIHsgcmVzcG9uc2VUeXBlOiBcImFycmF5YnVmZmVyXCIgfVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldExpc3RFeHBvcnRBcGkoXHJcbiAgICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2h2YWx1ZTogYW55LFxyXG4gICAgbGltaXQ6IGFueSxcclxuICAgIG9mZnNldDogYW55LFxyXG4gICAgaXNFeHBvcnQ6IGFueSxcclxuICAgIHNvcnRCeTogYW55LFxyXG4gICAgc29ydE9yZGVyOiBhbnksXHJcbiAgICB0YW5nb1R5cGU6IGFueSxcclxuICAgICBwZXJtaXNzaW9uVHlwZT86IHN0cmluZyB8IG51bGxcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgIGxldCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS90aWNrZXQtbGlzdD9gICtcclxuICAgICAgICAgICAgYGNsaWVudElkPSR7Y2xpZW50fWAgK1xyXG4gICAgICAgICAgICBgJmZyb21EYXRlPSR7ZnJvbURhdGV9YCArXHJcbiAgICAgICAgICAgIGAmdG9EYXRlPSR7dG9EYXRlfWAgK1xyXG4gICAgICAgICAgICBgJnNlYXJjaFZhbHVlPSR7c2VhcmNodmFsdWV9YCArXHJcbiAgICAgICAgICAgIGAmbGltaXQ9JHtsaW1pdH1gICtcclxuICAgICAgICAgICAgYCZvZmZzZXQ9JHtvZmZzZXR9YCArXHJcbiAgICAgICAgICAgIGAmaXNFeHBvcnQ9JHtpc0V4cG9ydH1gICtcclxuICAgICAgICAgICAgYCZzb3J0Qnk9JHtzb3J0Qnl9YCArXHJcbiAgICAgICAgICAgIGAmc29ydE9yZGVyPSR7c29ydE9yZGVyfWAgK1xyXG4gICAgICAgICAgICBgJnRhbmdvVHlwZT0ke3RhbmdvVHlwZX1gO1xyXG5cclxuICBpZiAocGVybWlzc2lvblR5cGUpIHtcclxuICAgIHVybCArPSBgJnBlcm1pc3Npb25UeXBlPSR7cGVybWlzc2lvblR5cGV9YDtcclxuICB9XHJcblxyXG4gIC8vIElmIGV4cG9ydCBpcyBUUlVFIOKGkiByZXR1cm4gYXJyYXlidWZmZXJcclxuICBjb25zdCBvcHRpb25zID0gaXNFeHBvcnRcclxuICAgID8geyByZXNwb25zZVR5cGU6ICdhcnJheWJ1ZmZlcicgYXMgJ2pzb24nIH1cclxuICAgIDoge307XHJcblxyXG4gIHJldHVybiB0aGlzLmh0dHAuZ2V0KHVybCwgb3B0aW9ucyk7XHJcbiAgfVxyXG5cclxuICBnZXRUaWNrZXRzQXBpKFxyXG4gICAgc3RvcmU6IGFueSxcclxuICAgIGZyb21EYXRlOiBhbnksXHJcbiAgICB0b0RhdGU6IGFueSxcclxuICAgIHJldm9wc1R5cGU6IGFueSxcclxuICAgIHN0YXR1czogYW55LFxyXG4gICAgYWN0aW9uOiBhbnksXHJcbiAgICBvZmZzZXQ6IGFueSxcclxuICAgIGxpbWl0OiBhbnlcclxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgbGV0IHBhcmFtcyA9IG5ldyBIdHRwUGFyYW1zKClcclxuICAgICAgLnNldChcInN0b3JlSWRcIiwgc3RvcmUpXHJcbiAgICAgIC5zZXQoXCJmcm9tRGF0ZVwiLCBmcm9tRGF0ZSlcclxuICAgICAgLnNldChcInRvRGF0ZVwiLCB0b0RhdGUpXHJcbiAgICAgIC5zZXQoXCJvZmZzZXRcIiwgb2Zmc2V0KVxyXG4gICAgICAuc2V0KFwibGltaXRcIiwgbGltaXQpO1xyXG4gICAgaWYgKHJldm9wc1R5cGUpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInJldm9wc1R5cGVcIiwgcmV2b3BzVHlwZSk7XHJcbiAgICB9XHJcbiAgICBpZiAoc3RhdHVzKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzdGF0dXNcIiwgc3RhdHVzKTtcclxuICAgIH1cclxuICAgIGlmIChhY3Rpb24pIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcImFjdGlvblwiLCBhY3Rpb24pO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRpY2tldHNgLCB7IHBhcmFtcyB9KTtcclxuICB9XHJcblxyXG4gIGdldFRpY2tldHNOZXdBcGkodGlja2V0SWQ6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBsZXQgcGFyYW1zID0gbmV3IEh0dHBQYXJhbXMoKS5zZXQoXCJ0aWNrZXRJZFwiLCB0aWNrZXRJZCk7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLmdldChgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9nZXQtdGlja2V0c2AsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGFnZ2VkU3RvcmVzQXBpKFxyXG4gICAgY2xpZW50OiBhbnksXHJcbiAgICBmcm9tRGF0ZTogYW55LFxyXG4gICAgdG9EYXRlOiBhbnksXHJcbiAgICBzZWFyY2hWYWx1ZTogYW55LFxyXG4gICAgY2x1c3RlcnM6IGFueSxcclxuICAgIHNvcnRPcmRlcjogYW55XHJcbiAgKTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpXHJcbiAgICAgIC5zZXQoXCJjbGllbnRJZFwiLCBjbGllbnQpXHJcbiAgICAgIC5zZXQoXCJmcm9tRGF0ZVwiLCBmcm9tRGF0ZSlcclxuICAgICAgLnNldChcInRvRGF0ZVwiLCB0b0RhdGUpOyAvLyBBZGQgc2VhcmNoVmFsdWUgYXMgYW4gZW1wdHkgc3RyaW5nIGlmIG5vdCBwcm92aWRlZFxyXG4gICAgLy8gT25seSBhZGQgJ2NsdXN0ZXJzJyBpZiBpdCdzIG5vdCBudWxsLCB1bmRlZmluZWQsIG9yIGFuIGVtcHR5IGFycmF5L3N0cmluZ1xyXG4gICAgaWYgKHNlYXJjaFZhbHVlKSB7XHJcbiAgICAgIHBhcmFtcyA9IHBhcmFtcy5zZXQoXCJzZWFyY2hWYWx1ZVwiLCBzZWFyY2hWYWx1ZSk7XHJcbiAgICB9XHJcblxyXG4gICAgaWYgKGNsdXN0ZXJzICYmIGNsdXN0ZXJzLmxlbmd0aCA+IDApIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcImNsdXN0ZXJzXCIsIGNsdXN0ZXJzKTtcclxuICAgIH1cclxuICAgIGlmIChzb3J0T3JkZXIpIHtcclxuICAgICAgcGFyYW1zID0gcGFyYW1zLnNldChcInNvcnRPcmRlclwiLCBzb3J0T3JkZXIpO1xyXG4gICAgfVxyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vZ2V0LXRhZ2dlZC1zdG9yZXNgLCB7XHJcbiAgICAgIHBhcmFtcyxcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VXBkYXRlU3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICBjb25zdCB1cmwgPSBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtc3RhdHVzYDtcclxuICAgIHJldHVybiB0aGlzLmh0dHAucHV0KHVybCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRVcGRhdGVUZW1wU3RhdHVzQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vdXBkYXRlLXRlbXAtc3RhdHVzYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRPcGVuVGlja2V0TGlzdEFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L29wZW4tdGlja2V0LWxpc3RgLCBkYXRhKTtcclxuICB9XHJcblxyXG4gIGdldFVwZGF0ZVRpY2tldFN0YXR1c0FwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS91cGRhdGUtdGlja2V0LXN0YXR1c2AsXHJcbiAgICAgIGRhdGFcclxuICAgICk7XHJcbiAgfVxyXG5cclxuZ2V0Q3JlYXRlVGlja2V0TGlzdEFwaShkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NyZWF0ZS10aWNrZXRgLCBkYXRhKTtcclxufVxyXG5DcmVhdGVpbnRlcm5hbFRpY2tldEFwaShkYXRhOmFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KGAke3RoaXMuZm9vdGZhbGxEaXJhcGlVcmx9L2NyZWF0ZS1pbnRlcm5hbHRpY2tldGAsIGRhdGEpO1xyXG59XHJcbiAgZ2V0Y2x1c3RlcnMoZGF0YTogYW55KSB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy50cmFmZmljQXBpVXJsfS9oZWFkZXJjbHVzdGVyX3YyYCwgZGF0YSk7XHJcbiAgfVxyXG5cclxuICBnZXRSZXZpZXdlckFwaShjbGllbnRJZDogYW55LHR5cGU6YW55KTogT2JzZXJ2YWJsZTxhbnk+IHtcclxuICAgIGxldCBwYXJhbXMgPSBuZXcgSHR0cFBhcmFtcygpLnNldChcImNsaWVudElkXCIsIGNsaWVudElkKVxyXG4gICAgICAuc2V0KFwidHlwZVwiLHR5cGUpO1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5nZXQoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vcmV2aWV3ZXItbGlzdGAsIHsgcGFyYW1zIH0pO1xyXG4gIH1cclxuXHJcbiAgZ2V0VGlja2V0QXNzaWduQXBpKGRhdGE6IGFueSk6IE9ic2VydmFibGU8YW55PiB7XHJcbiAgICByZXR1cm4gdGhpcy5odHRwLnBvc3QoYCR7dGhpcy5mb290ZmFsbERpcmFwaVVybH0vYXNzaWduLXRpY2tldGAsIGRhdGEpO1xyXG4gIH1cclxuXHJcbiAgZ2V0TXVsdGlDbG9zZVRpY2tldEFwaShkYXRhOiBhbnkpOiBPYnNlcnZhYmxlPGFueT4ge1xyXG4gICAgcmV0dXJuIHRoaXMuaHR0cC5wb3N0KFxyXG4gICAgICBgJHt0aGlzLmZvb3RmYWxsRGlyYXBpVXJsfS9tdWx0aS1jbG9zZS10aWNrZXRzYCxcclxuICAgICAgZGF0YVxyXG4gICAgKTtcclxuICB9XHJcbiAgcHJpdmF0ZSBmb290ZmFsbERhdGE6IGFueTtcclxuXHJcbiAgc2V0Rm9vdGZhbGxEYXRhKGRhdGE6IGFueSkge1xyXG4gICAgdGhpcy5mb290ZmFsbERhdGEgPSBkYXRhO1xyXG4gIH1cclxuXHJcbiAgZ2V0Rm9vdGZhbGxEYXRhKCkge1xyXG4gICAgcmV0dXJuIHRoaXMuZm9vdGZhbGxEYXRhO1xyXG4gIH1cclxufVxyXG4iXX0=