tango-app-ui-store-ticket-infra 3.0.22-dev → 3.0.23-dev

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.
@@ -37,6 +37,7 @@ export class CreateTicketComponent {
37
37
  dateRange;
38
38
  filteredStoreId;
39
39
  disablebtn = true;
40
+ clientDetails;
40
41
  clientId;
41
42
  constructor(cd, modalService, activeModal, service) {
42
43
  this.cd = cd;
@@ -52,6 +53,9 @@ export class CreateTicketComponent {
52
53
  }
53
54
  }
54
55
  ngOnInit() {
56
+ this.clientId = this.clientDetails?.clientId;
57
+ this.filteredStoreId = this.clientDetails?.storeId;
58
+ console.log('filteredStore', this.clientDetails?.storeId);
55
59
  this.selectedDateRange = {
56
60
  startDate: this.dayjs().format("DD-MM-YYYY"),
57
61
  endDate: this.dayjs().format("DD-MM-YYYY"),
@@ -86,6 +90,7 @@ export class CreateTicketComponent {
86
90
  next: (res) => {
87
91
  this.storeDetails = res.data.result;
88
92
  this.filteredItems = this.storeDetails;
93
+ this.filteredStore = this.storeDetails.filter((el) => el?.storeId === this.filteredStoreId)[0]?.storeName;
89
94
  },
90
95
  error: (err) => {
91
96
  },
@@ -184,15 +189,15 @@ export class CreateTicketComponent {
184
189
  }
185
190
  }
186
191
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CreateTicketComponent, deps: [{ token: i0.ChangeDetectorRef }, { token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.TicketsService }], target: i0.ɵɵFactoryTarget.Component });
187
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CreateTicketComponent, selector: "lib-create-ticket", inputs: { clientId: "clientId" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Support</a>\r\n <div class=\"sub-title mt-3\">Please fill the details for store analysis </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row my-3 mt-2\">\r\n <div class=\"col-md-12 my-2\">\r\n <label class=\"form-label mb-1\">Select Date Range</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n <p class=\"notes mt-3\">Note : Analysis restricted to last 4 days only. </p>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'highcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"highCount\" name=\"countType\" [(ngModel)]=\"countType\" value=\"highcount\" class=\"radio-input\" [ngClass]=\"{'high-dot': countType === 'highcount'}\">\r\n <label for=\"highCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'highcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap fw-semibold\">High Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'lowcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"lowCount\" name=\"countType\" value=\"lowcount\" [(ngModel)]=\"countType\" class=\"radio-input\" [ngClass]=\"{'low-dot': countType === 'lowcount'}\">\r\n <label for=\"lowCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'lowcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap\">Low Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div> \r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Store</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'store')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{filteredStore ? filteredStore : 'Select Store'}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownStore\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <input type=\"text\" [(ngModel)]=\"searchData\" placeholder=\"Search...\" (input)=\"searchStore()\" class=\"form-control\">\r\n <ul *ngFor=\"let store of filteredItems\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"filteredStoreId === store?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(store?.storeName,store?.storeId,'store')\">\r\n {{store?.storeName}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Feature</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'feature')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{filteredFeature ? filteredFeature : 'Select Feature'}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownFeature\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <ul *ngFor=\"let feature of Features\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"this.filteredFeature === feature ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(feature,'id','feature')\">\r\n {{feature}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Email</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M18.3337 4.99992C18.3337 4.08325 17.5837 3.33325 16.667 3.33325H3.33366C2.41699 3.33325 1.66699 4.08325 1.66699 4.99992M18.3337 4.99992V14.9999C18.3337 15.9166 17.5837 16.6666 16.667 16.6666H3.33366C2.41699 16.6666 1.66699 15.9166 1.66699 14.9999V4.99992M18.3337 4.99992L10.0003 10.8333L1.66699 4.99992\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" style=\"text-transform:lowercase;\" class=\"form-control custom-form-control ps-14 me-2\" [(ngModel)]=\"email\" placeholder=\"Email\" aria-label=\"Email\" aria-describedby=\"basic-addon1\" (input)=\"emailValidation()\">\r\n </div>\r\n <div *ngIf=\"emailError\" class=\"text-danger mt-3\">\r\n {{ emailError }}\r\n </div>\r\n </div>\r\n <div class=\"d-flex my-5\" 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\" id=\"alert-toast\" [disabled]=\"disablebtn || !filteredStore?.length || !filteredFeature.length \"\r\n (click)=\"onSubmit()\">Analyze</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.selected{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px}.scroll{overflow-y:auto;overflow-x:hidden}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.orval{color:var(--Gray-700, #344054);font-size:14px;font-weight:500!important;line-height:20px}.single-user{color:var(--Gray-700, #344054);font-size:16px!important;line-height:24px;text-transform:capitalize}.form-label{color:var(--Gray-700, #344054);text-shadow:0px 0px 0px #D5EFFE,0px 1px 2px rgba(16,24,40,.05);font-size:14px;font-weight:500;line-height:20px}.form-control:focus{border-radius:8px;border:1px solid var(--Primary-300, #6BCAFF)!important;background:var(--White, #FFF)!important;box-shadow:0 0 0 4px #d5effe,0 1px 2px #1018280d!important}.font-sub{font-size:12px!important;line-height:18px!important}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:none!important}.divider{border-bottom:1px solid #D0D5DD;width:75%;margin-left:2%;background:var(--Gray-300, #D0D5DD)}input[type=checkbox]{width:20px!important;height:20px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:0;padding-top:12px;padding-right:6px}.collapsed{display:none}.divider{border-right:1px solid #ccc;margin-left:10px;margin-right:10px}.notes{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.custom-container{padding:16px;background:#eaf8ff;border-radius:8px;border:1px #6BCAFF solid;display:flex;justify-content:flex-start;align-items:flex-start}.normal-container{padding:16px;background:#fff;border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);display:flex;justify-content:flex-start;align-items:flex-start}.icon-container{flex:1 1 0;height:20px;display:flex;align-items:center;gap:8px}.icon{width:16px;height:16px;background:#eaf8ff;border-radius:8px;overflow:hidden;border:1px #00A3FF solid;display:flex;justify-content:center;align-items:center}.dot{width:6px;height:6px;position:absolute;background:#00a3ff;border-radius:9999px;left:5px;top:5px}.text-container{flex:1 1 0;flex-direction:column;display:flex;justify-content:flex-start;align-items:flex-start}.text{align-self:stretch;color:#008edf;font-size:14px;font-family:Inter;font-weight:500;line-height:20px;word-wrap:break-word}.radio-input{width:20px;height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:0!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.dropdown-height{min-height:auto!important;max-height:300px!important;overflow:auto!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }] });
192
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: CreateTicketComponent, selector: "lib-create-ticket", inputs: { clientDetails: "clientDetails" }, host: { listeners: { "document:click": "onClick($event)" } }, ngImport: i0, template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Support</a>\r\n <div class=\"sub-title mt-3\">Please fill the details for store analysis </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row my-3 mt-2\">\r\n <div class=\"col-md-12 my-2\">\r\n <label class=\"form-label mb-1\">Select Date Range</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n <p class=\"notes mt-3\">Note : Analysis restricted to last 4 days only. </p>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'highcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"highCount\" name=\"countType\" [(ngModel)]=\"countType\" value=\"highcount\" class=\"radio-input\" [ngClass]=\"{'high-dot': countType === 'highcount'}\">\r\n <label for=\"highCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'highcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap fw-semibold\">High Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'lowcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"lowCount\" name=\"countType\" value=\"lowcount\" [(ngModel)]=\"countType\" class=\"radio-input\" [ngClass]=\"{'low-dot': countType === 'lowcount'}\">\r\n <label for=\"lowCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'lowcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap\">Low Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div> \r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Store</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'store')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{filteredStore ? filteredStore : 'Select Store'}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownStore\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <input type=\"text\" [(ngModel)]=\"searchData\" placeholder=\"Search...\" (input)=\"searchStore()\" class=\"form-control\">\r\n <ul *ngFor=\"let store of filteredItems\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"filteredStoreId === store?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(store?.storeName,store?.storeId,'store')\">\r\n {{store?.storeName}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Feature</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'feature')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{(filteredFeature ? filteredFeature : 'Select Feature') | titlecase}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownFeature\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <ul *ngFor=\"let feature of Features\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"this.filteredFeature === feature ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(feature,'id','feature')\">\r\n {{feature}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Email</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M18.3337 4.99992C18.3337 4.08325 17.5837 3.33325 16.667 3.33325H3.33366C2.41699 3.33325 1.66699 4.08325 1.66699 4.99992M18.3337 4.99992V14.9999C18.3337 15.9166 17.5837 16.6666 16.667 16.6666H3.33366C2.41699 16.6666 1.66699 15.9166 1.66699 14.9999V4.99992M18.3337 4.99992L10.0003 10.8333L1.66699 4.99992\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" style=\"text-transform:lowercase;\" class=\"form-control custom-form-control ps-14 me-2\" [(ngModel)]=\"email\" placeholder=\"Email\" aria-label=\"Email\" aria-describedby=\"basic-addon1\" (input)=\"emailValidation()\">\r\n </div>\r\n <div *ngIf=\"emailError\" class=\"text-danger mt-3\">\r\n {{ emailError }}\r\n </div>\r\n </div>\r\n <div class=\"d-flex my-5\" 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\" id=\"alert-toast\" [disabled]=\"disablebtn || !filteredStore?.length || !filteredFeature.length \"\r\n (click)=\"onSubmit()\">Analyze</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.selected{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px}.scroll{overflow-y:auto;overflow-x:hidden}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.orval{color:var(--Gray-700, #344054);font-size:14px;font-weight:500!important;line-height:20px}.single-user{color:var(--Gray-700, #344054);font-size:16px!important;line-height:24px;text-transform:capitalize}.form-label{color:var(--Gray-700, #344054);text-shadow:0px 0px 0px #D5EFFE,0px 1px 2px rgba(16,24,40,.05);font-size:14px;font-weight:500;line-height:20px}.form-control:focus{border-radius:8px;border:1px solid var(--Primary-300, #6BCAFF)!important;background:var(--White, #FFF)!important;box-shadow:0 0 0 4px #d5effe,0 1px 2px #1018280d!important}.font-sub{font-size:12px!important;line-height:18px!important}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:none!important}.divider{border-bottom:1px solid #D0D5DD;width:75%;margin-left:2%;background:var(--Gray-300, #D0D5DD)}input[type=checkbox]{width:20px!important;height:20px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:0;padding-top:12px;padding-right:6px}.collapsed{display:none}.divider{border-right:1px solid #ccc;margin-left:10px;margin-right:10px}.notes{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.custom-container{padding:16px;background:#eaf8ff;border-radius:8px;border:1px #6BCAFF solid;display:flex;justify-content:flex-start;align-items:flex-start}.normal-container{padding:16px;background:#fff;border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);display:flex;justify-content:flex-start;align-items:flex-start}.icon-container{flex:1 1 0;height:20px;display:flex;align-items:center;gap:8px}.icon{width:16px;height:16px;background:#eaf8ff;border-radius:8px;overflow:hidden;border:1px #00A3FF solid;display:flex;justify-content:center;align-items:center}.dot{width:6px;height:6px;position:absolute;background:#00a3ff;border-radius:9999px;left:5px;top:5px}.text-container{flex:1 1 0;flex-direction:column;display:flex;justify-content:flex-start;align-items:flex-start}.text{align-self:stretch;color:#008edf;font-size:14px;font-family:Inter;font-weight:500;line-height:20px;word-wrap:break-word}.radio-input{width:20px;height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:0!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.dropdown-height{min-height:auto!important;max-height:300px!important;overflow:auto!important}\n"], dependencies: [{ kind: "directive", type: i3.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i3.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { 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.RadioControlValueAccessor, selector: "input[type=radio][formControlName],input[type=radio][formControl],input[type=radio][ngModel]", inputs: ["name", "formControlName", "value"] }, { 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"] }, { kind: "directive", type: i5.DaterangepickerDirective, selector: "input[ngxDaterangepickerMd]", inputs: ["minDate", "maxDate", "autoApply", "alwaysShowCalendars", "showCustomRangeLabel", "linkedCalendars", "dateLimit", "singleDatePicker", "showWeekNumbers", "showISOWeekNumbers", "showDropdowns", "isInvalidDate", "isCustomDate", "isTooltipDate", "showClearButton", "customRangeDirection", "ranges", "opens", "drops", "firstMonthDayClass", "lastMonthDayClass", "emptyWeekRowClass", "emptyWeekColumnClass", "firstDayOfNextMonthClass", "lastDayOfPreviousMonthClass", "keepCalendarOpeningWithRange", "showRangeLabelOnInput", "showCancel", "lockStartDate", "timePicker", "timePicker24Hour", "timePickerIncrement", "timePickerSeconds", "closeOnAutoApply", "endKeyHolder", "startKey", "locale", "endKey"], outputs: ["change", "rangeClicked", "datesUpdated", "startDateChanged", "endDateChanged", "clearClicked"] }, { kind: "pipe", type: i3.TitleCasePipe, name: "titlecase" }] });
188
193
  }
189
194
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: CreateTicketComponent, decorators: [{
190
195
  type: Component,
191
- args: [{ selector: 'lib-create-ticket', template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Support</a>\r\n <div class=\"sub-title mt-3\">Please fill the details for store analysis </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row my-3 mt-2\">\r\n <div class=\"col-md-12 my-2\">\r\n <label class=\"form-label mb-1\">Select Date Range</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n <p class=\"notes mt-3\">Note : Analysis restricted to last 4 days only. </p>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'highcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"highCount\" name=\"countType\" [(ngModel)]=\"countType\" value=\"highcount\" class=\"radio-input\" [ngClass]=\"{'high-dot': countType === 'highcount'}\">\r\n <label for=\"highCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'highcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap fw-semibold\">High Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'lowcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"lowCount\" name=\"countType\" value=\"lowcount\" [(ngModel)]=\"countType\" class=\"radio-input\" [ngClass]=\"{'low-dot': countType === 'lowcount'}\">\r\n <label for=\"lowCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'lowcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap\">Low Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div> \r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Store</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'store')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{filteredStore ? filteredStore : 'Select Store'}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownStore\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <input type=\"text\" [(ngModel)]=\"searchData\" placeholder=\"Search...\" (input)=\"searchStore()\" class=\"form-control\">\r\n <ul *ngFor=\"let store of filteredItems\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"filteredStoreId === store?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(store?.storeName,store?.storeId,'store')\">\r\n {{store?.storeName}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Feature</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'feature')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{filteredFeature ? filteredFeature : 'Select Feature'}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownFeature\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <ul *ngFor=\"let feature of Features\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"this.filteredFeature === feature ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(feature,'id','feature')\">\r\n {{feature}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Email</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M18.3337 4.99992C18.3337 4.08325 17.5837 3.33325 16.667 3.33325H3.33366C2.41699 3.33325 1.66699 4.08325 1.66699 4.99992M18.3337 4.99992V14.9999C18.3337 15.9166 17.5837 16.6666 16.667 16.6666H3.33366C2.41699 16.6666 1.66699 15.9166 1.66699 14.9999V4.99992M18.3337 4.99992L10.0003 10.8333L1.66699 4.99992\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" style=\"text-transform:lowercase;\" class=\"form-control custom-form-control ps-14 me-2\" [(ngModel)]=\"email\" placeholder=\"Email\" aria-label=\"Email\" aria-describedby=\"basic-addon1\" (input)=\"emailValidation()\">\r\n </div>\r\n <div *ngIf=\"emailError\" class=\"text-danger mt-3\">\r\n {{ emailError }}\r\n </div>\r\n </div>\r\n <div class=\"d-flex my-5\" 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\" id=\"alert-toast\" [disabled]=\"disablebtn || !filteredStore?.length || !filteredFeature.length \"\r\n (click)=\"onSubmit()\">Analyze</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.selected{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px}.scroll{overflow-y:auto;overflow-x:hidden}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.orval{color:var(--Gray-700, #344054);font-size:14px;font-weight:500!important;line-height:20px}.single-user{color:var(--Gray-700, #344054);font-size:16px!important;line-height:24px;text-transform:capitalize}.form-label{color:var(--Gray-700, #344054);text-shadow:0px 0px 0px #D5EFFE,0px 1px 2px rgba(16,24,40,.05);font-size:14px;font-weight:500;line-height:20px}.form-control:focus{border-radius:8px;border:1px solid var(--Primary-300, #6BCAFF)!important;background:var(--White, #FFF)!important;box-shadow:0 0 0 4px #d5effe,0 1px 2px #1018280d!important}.font-sub{font-size:12px!important;line-height:18px!important}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:none!important}.divider{border-bottom:1px solid #D0D5DD;width:75%;margin-left:2%;background:var(--Gray-300, #D0D5DD)}input[type=checkbox]{width:20px!important;height:20px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:0;padding-top:12px;padding-right:6px}.collapsed{display:none}.divider{border-right:1px solid #ccc;margin-left:10px;margin-right:10px}.notes{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.custom-container{padding:16px;background:#eaf8ff;border-radius:8px;border:1px #6BCAFF solid;display:flex;justify-content:flex-start;align-items:flex-start}.normal-container{padding:16px;background:#fff;border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);display:flex;justify-content:flex-start;align-items:flex-start}.icon-container{flex:1 1 0;height:20px;display:flex;align-items:center;gap:8px}.icon{width:16px;height:16px;background:#eaf8ff;border-radius:8px;overflow:hidden;border:1px #00A3FF solid;display:flex;justify-content:center;align-items:center}.dot{width:6px;height:6px;position:absolute;background:#00a3ff;border-radius:9999px;left:5px;top:5px}.text-container{flex:1 1 0;flex-direction:column;display:flex;justify-content:flex-start;align-items:flex-start}.text{align-self:stretch;color:#008edf;font-size:14px;font-family:Inter;font-weight:500;line-height:20px;word-wrap:break-word}.radio-input{width:20px;height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:0!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.dropdown-height{min-height:auto!important;max-height:300px!important;overflow:auto!important}\n"] }]
192
- }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.TicketsService }], propDecorators: { clientId: [{
196
+ args: [{ selector: 'lib-create-ticket', template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Support</a>\r\n <div class=\"sub-title mt-3\">Please fill the details for store analysis </div>\r\n </div>\r\n </div>\r\n\r\n <div class=\"row my-3 mt-2\">\r\n <div class=\"col-md-12 my-2\">\r\n <label class=\"form-label mb-1\">Select Date Range</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M13.3333 1.66663V4.99996M6.66667 1.66663V4.99996M2.5 8.33329H17.5M4.16667 3.33329H15.8333C16.7538 3.33329 17.5 4.07948 17.5 4.99996V16.6666C17.5 17.5871 16.7538 18.3333 15.8333 18.3333H4.16667C3.24619 18.3333 2.5 17.5871 2.5 16.6666V4.99996C2.5 4.07948 3.24619 3.33329 4.16667 3.33329Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg>\r\n </span>\r\n <input class=\"fx-date-range form-control ps-14\" style=\"min-width: 260px !important;\" type=\"text\" matInput ngxDaterangepickerMd [drops]=\"'down'\"\r\n [opens]=\"'right'\" [showCustomRangeLabel]=\"false\" [alwaysShowCalendars]=\"false\"\r\n [keepCalendarOpeningWithRange]=\"true\" [showCancel]=\"true\" autocomplete=\"off\" [(ngModel)]=\"selectedDateRange\" (startDateChanged)=\"onStartDateChange($event)\" [isCustomDate]=\"isCustomDate\"\r\n [locale]=\"{ format: 'DD-MM-YYYY', firstDay: 1, monthNames: ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'] }\"\r\n (datesUpdated)=\"datechange($event)\" name=\"daterange\" [readonly]=\"true\" />\r\n </div>\r\n <p class=\"notes mt-3\">Note : Analysis restricted to last 4 days only. </p>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'highcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"highCount\" name=\"countType\" [(ngModel)]=\"countType\" value=\"highcount\" class=\"radio-input\" [ngClass]=\"{'high-dot': countType === 'highcount'}\">\r\n <label for=\"highCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'highcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap fw-semibold\">High Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-lg-6\">\r\n <div [ngClass]=\"countType === 'lowcount' ? 'custom-container':'normal-container'\">\r\n <div class=\"icon-container\">\r\n <input type=\"radio\" id=\"lowCount\" name=\"countType\" value=\"lowcount\" [(ngModel)]=\"countType\" class=\"radio-input\" [ngClass]=\"{'low-dot': countType === 'lowcount'}\">\r\n <label for=\"lowCount\" class=\"radio-label\">\r\n <span [ngClass]=\"countType === 'lowcount' ? 'text':'orval fw-semibold'\" class=\"text-nowrap\">Low Count</span>\r\n </label>\r\n \r\n </div>\r\n </div>\r\n </div> \r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Store</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'store')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{filteredStore ? filteredStore : 'Select Store'}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownStore\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <input type=\"text\" [(ngModel)]=\"searchData\" placeholder=\"Search...\" (input)=\"searchStore()\" class=\"form-control\">\r\n <ul *ngFor=\"let store of filteredItems\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"filteredStoreId === store?.storeId ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(store?.storeName,store?.storeId,'store')\">\r\n {{store?.storeName}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Select Feature</label>\r\n <div class=\"position-relative\">\r\n <button type=\"button\" (click)=\"openDropdown($event,'feature')\"\r\n class=\"btn btn-default w-100 btn-outline btn-outline-default rounded-3 text-nowrap border-val d-flex justify-content-between selected fw-semibold bg-white\">\r\n {{(filteredFeature ? filteredFeature : 'Select Feature') | titlecase}}\r\n <span class=\"ms-3\"><svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\"\r\n fill=\"none\">\r\n <path d=\"M5 7.5L10 12.5L15 7.5\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </svg></span>\r\n </button>\r\n <div *ngIf=\"dropDownFeature\" class=\"card py-1 w-100 position-absolute top-50px end-0 z-1 dropdown-height\">\r\n <ul *ngFor=\"let feature of Features\" class=\"list-unstyled mb-0\">\r\n <li [ngClass]=\"this.filteredFeature === feature ? 'active' : ''\"\r\n class=\"camera px-5 items fw-semibold cursor-pointer py-2\" (click)=\"selectItem(feature,'id','feature')\">\r\n {{feature}}</li>\r\n </ul>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 my-2 mt-5\">\r\n <label class=\"form-label mb-2\">Email</label>\r\n <div class=\"d-flex align-items-center position-relative my-1\">\r\n <span class=\"svg-icon svg-icon-1 position-absolute ms-3\">\r\n <svg xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path d=\"M18.3337 4.99992C18.3337 4.08325 17.5837 3.33325 16.667 3.33325H3.33366C2.41699 3.33325 1.66699 4.08325 1.66699 4.99992M18.3337 4.99992V14.9999C18.3337 15.9166 17.5837 16.6666 16.667 16.6666H3.33366C2.41699 16.6666 1.66699 15.9166 1.66699 14.9999V4.99992M18.3337 4.99992L10.0003 10.8333L1.66699 4.99992\" stroke=\"#667085\" stroke-width=\"1.66667\" stroke-linecap=\"round\" stroke-linejoin=\"round\"/>\r\n </svg>\r\n </span>\r\n <input type=\"text\" style=\"text-transform:lowercase;\" class=\"form-control custom-form-control ps-14 me-2\" [(ngModel)]=\"email\" placeholder=\"Email\" aria-label=\"Email\" aria-describedby=\"basic-addon1\" (input)=\"emailValidation()\">\r\n </div>\r\n <div *ngIf=\"emailError\" class=\"text-danger mt-3\">\r\n {{ emailError }}\r\n </div>\r\n </div>\r\n <div class=\"d-flex my-5\" 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\" id=\"alert-toast\" [disabled]=\"disablebtn || !filteredStore?.length || !filteredFeature.length \"\r\n (click)=\"onSubmit()\">Analyze</button>\r\n </div>\r\n </div>\r\n </div>\r\n</div>\r\n", styles: [".title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400!important;line-height:20px}.selected{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}li{color:var(--Gray-700, #344054)!important;font-family:Inter;font-size:14px!important;font-weight:500!important;line-height:30px}.scroll{overflow-y:auto;overflow-x:hidden}.template{color:var(--Primary-700, #009BF3)!important;font-family:Inter;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}.orval{color:var(--Gray-700, #344054);font-size:14px;font-weight:500!important;line-height:20px}.single-user{color:var(--Gray-700, #344054);font-size:16px!important;line-height:24px;text-transform:capitalize}.form-label{color:var(--Gray-700, #344054);text-shadow:0px 0px 0px #D5EFFE,0px 1px 2px rgba(16,24,40,.05);font-size:14px;font-weight:500;line-height:20px}.form-control:focus{border-radius:8px;border:1px solid var(--Primary-300, #6BCAFF)!important;background:var(--White, #FFF)!important;box-shadow:0 0 0 4px #d5effe,0 1px 2px #1018280d!important}.font-sub{font-size:12px!important;line-height:18px!important}.accordion-item{color:var(--bs-accordion-color);background-color:var(--bs-accordion-bg);border:none!important}.divider{border-bottom:1px solid #D0D5DD;width:75%;margin-left:2%;background:var(--Gray-300, #D0D5DD)}input[type=checkbox]{width:20px!important;height:20px!important;margin:5px;border-radius:4px!important;-webkit-appearance:none;-moz-appearance:none;-o-appearance:none;appearance:none;outline:1px solid var(--gray-300, #D0D5DD);box-shadow:none;font-size:.8em;text-align:center;line-height:1em;background:#fff}input[type=checkbox]:checked{outline:1px solid var(--primary-600, #00A3FF);background-color:var(--primary-50, #EAF8FF)}input[type=checkbox]:checked:after{content:\"\";transform:rotate(45deg);border-bottom:2px solid #00A3FF;border-right:2px solid #00A3FF;display:inline-block;width:.5em;padding-left:0;padding-top:12px;padding-right:6px}.collapsed{display:none}.divider{border-right:1px solid #ccc;margin-left:10px;margin-right:10px}.notes{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.custom-container{padding:16px;background:#eaf8ff;border-radius:8px;border:1px #6BCAFF solid;display:flex;justify-content:flex-start;align-items:flex-start}.normal-container{padding:16px;background:#fff;border-radius:8px;border:1px solid var(--Gray-200, #EAECF0);display:flex;justify-content:flex-start;align-items:flex-start}.icon-container{flex:1 1 0;height:20px;display:flex;align-items:center;gap:8px}.icon{width:16px;height:16px;background:#eaf8ff;border-radius:8px;overflow:hidden;border:1px #00A3FF solid;display:flex;justify-content:center;align-items:center}.dot{width:6px;height:6px;position:absolute;background:#00a3ff;border-radius:9999px;left:5px;top:5px}.text-container{flex:1 1 0;flex-direction:column;display:flex;justify-content:flex-start;align-items:flex-start}.text{align-self:stretch;color:#008edf;font-size:14px;font-family:Inter;font-weight:500;line-height:20px;word-wrap:break-word}.radio-input{width:20px;height:20px}.items:hover,.tems.focus,.items.active,.camera.focus-visible{background:var(--Gray-50, #F9FAFB)}.daterangepicker{display:block!important;top:153.85px!important;left:900px!important;right:0}.form-control{color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600;line-height:20px;text-transform:capitalize}::ng-deep .applyBtn{display:none!important}:host::ng-deep .md-drppicker .btn{line-height:10px!important}:host::ng-deep .daterangepicker-input+.ngx-daterangepicker-material .applyBtn{display:none}:host::ng-deep .md-drppicker.drops-down-right.ltr.double.show-ranges.shown{top:65px!important;left:0!important;height:400px!important}:host::ng-deep .md-drppicker .btn{border-radius:8px!important;border:1px solid var(--Primary-600, #00A3FF)!important;background:var(--Primary-600, #00A3FF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--White, #FFF)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize}:host::ng-deep .md-drppicker .ranges ul li button{padding:12px 16px;width:160px;color:var(--Gray-700, #344054);font-size:14px;font-weight:400;line-height:20px;background:none;border:none;text-align:left;cursor:pointer}:host::ng-deep .md-drppicker td.active,:host::ng-deep .md-drppicker td.active:hover{background-color:#029cf4!important;border-radius:20px!important;color:var(--White, #FFF)!important;text-align:center!important;font-size:14px!important;font-weight:500!important;line-height:20px}:host::ng-deep .md-drppicker.ltr .ranges{float:left;margin-top:10px!important}:host::ng-deep .md-drppicker td.in-range{background:var(--Primary-50, #EAF8FF)}:host::ng-deep .md-drppicker .ranges ul li button.active{background:var(--Primary-50, #EAF8FF)!important;border-radius:8px!important;color:var(--Primary-700, #009BF3);font-size:14px!important;font-weight:500!important;line-height:20px!important}:host::ng-deep table th,:host::ng-deep table td{width:40px!important;height:40px!important;padding:10px 8px!important}:host::ng-deep .md-drppicker td.available.prev,:host::ng-deep .md-drppicker th.available.prev{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep .md-drppicker td.available.next,:host::ng-deep .md-drppicker th.available.next{background-image:url(data:image/svg+xml;base64,PHN2ZyB2ZXJzaW9uPSIxLjEiIHhtbG5zPSJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2ZyIgeG1sbnM6eGxpbms9Imh0dHA6Ly93d3cudzMub3JnLzE5OTkveGxpbmsiIHg9IjBweCIgeT0iMHB4Ig0KCSB2aWV3Qm94PSIwIDAgMy43IDYiIGVuYWJsZS1iYWNrZ3JvdW5kPSJuZXcgMCAwIDMuNyA2IiB4bWw6c3BhY2U9InByZXNlcnZlIj4NCjxnPg0KCTxwYXRoIGQ9Ik0zLjcsMC43TDEuNCwzbDIuMywyLjNMMyw2TDAsM2wzLTNMMy43LDAuN3oiLz4NCjwvZz4NCjwvc3ZnPg0K)!important;background-repeat:no-repeat!important;background-size:.5em!important;background-position:center!important}:host::ng-deep table th{border-bottom:0px solid var(--Gray-200, #EAECF0)!important;background:transparent!important;color:var(--Gray-700, #344054)!important;text-align:center;font-size:16px!important;font-weight:500!important;line-height:24px}:host::ng-deep .md-drppicker .btn.btn-default{border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;color:var(--Gray-700, #344054)!important;font-size:14px!important;font-weight:600!important;line-height:20px;text-transform:capitalize;margin-right:10px!important}:host::ng-deep .md-drppicker td.available.invalid-date{text-decoration:line-through;pointer-events:none;color:#a9a9a9}:host::ng-deep .md-drppicker td.available.today:not(.invalid-date){text-decoration:unset;pointer-events:unset;color:unset}.dropdown-height{min-height:auto!important;max-height:300px!important;overflow:auto!important}\n"] }]
197
+ }], ctorParameters: () => [{ type: i0.ChangeDetectorRef }, { type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.TicketsService }], propDecorators: { clientDetails: [{
193
198
  type: Input
194
199
  }], onClick: [{
195
200
  type: HostListener,
196
201
  args: ['document:click', ['$event']]
197
202
  }] } });
198
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRpY2tldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS10aWNrZXQtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10aWNrZXQvY3JlYXRlLXRpY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS10aWNrZXQtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10aWNrZXQvY3JlYXRlLXRpY2tldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBQyxZQUFZLEVBQW9CLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUl6QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQU1wRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQU8xQyxNQUFNLE9BQU8scUJBQXFCO0lBeUJaO0lBQTRCO0lBQThCO0lBQW1DO0lBeEJqSCxTQUFTLEdBQVcsV0FBVyxDQUFDO0lBQ2hDLFlBQVksQ0FBSztJQUNqQixRQUFRLEdBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMzQixhQUFhLENBQUs7SUFDbEIsZUFBZSxDQUFLO0lBQ3BCLFVBQVUsQ0FBSztJQUNmLGVBQWUsQ0FBTTtJQUNyQixhQUFhLENBQU07SUFDbkIsS0FBSyxDQUFLO0lBQ1YsYUFBYSxDQUFNO0lBQ25CLFVBQVUsQ0FBTTtJQUNoQixlQUFlLEdBQU8sRUFBRSxDQUFDO0lBQ3pCLGlCQUFpQixHQUFRLEVBQUUsQ0FBQztJQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ0csUUFBUSxHQUFHLElBQUks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NUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxLQUFLLENBQUM7SUFDOUIsQ0FBQztJQUVELDhCQUE4QjtJQUM5QixtREFBbUQ7SUFDbkQsSUFBSTtJQUVKLGVBQWU7UUFDYixNQUFNLFlBQVksR0FBRyxpREFBaUQsQ0FBQztRQUN2RSxJQUFJLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ2xDLElBQUksQ0FBQyxVQUFVLEdBQUcsS0FBSyxDQUFDO1lBQ3hCLElBQUksQ0FBQyxVQUFVLEdBQUcsRUFBRSxDQUFDO1NBQ3RCO2FBQU0sSUFBRyxDQUFDLElBQUksQ0FBQyxLQUFLLENBQUMsS0FBSyxDQUFDLFlBQVksQ0FBQyxFQUFFO1lBQ3pDLElBQUksQ0FBQyxVQUFVLEdBQUcsSUFBSSxDQUFDO1lBQ3ZCLElBQUksQ0FBQyxVQUFVLEdBQUcsdUJBQXVCLENBQUM7U0FDM0M7SUFDSCxDQUFDO3dHQXZMVSxxQkFBcUI7NEZBQXJCLHFCQUFxQix5SkNuQmxDLG9nU0FpSEE7OzRGRDlGYSxxQkFBcUI7a0JBTGpDLFNBQVM7K0JBQ0UsbUJBQW1CO3VLQTRCcEIsUUFBUTtzQkFBaEIsS0FBSztnQkFNTixPQUFPO3NCQUROLFlBQVk7dUJBQUMsZ0JBQWdCLEVBQUUsQ0FBQyxRQUFRLENBQUMiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDaGFuZ2VEZXRlY3RvclJlZiwgQ29tcG9uZW50LEhvc3RMaXN0ZW5lcixPbkRlc3Ryb3ksIE9uSW5pdCwgSW5wdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IGRheWpzIGZyb20gXCJkYXlqc1wiO1xyXG5pbXBvcnQgXCJkYXlqcy9sb2NhbGUvZW5cIjtcclxuaW1wb3J0IHV0YyBmcm9tIFwiZGF5anMvcGx1Z2luL3V0Y1wiO1xyXG5pbXBvcnQgdGltZXpvbmUgZnJvbSBcImRheWpzL3BsdWdpbi90aW1lem9uZVwiO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCwgTmdiTW9kYWwgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEFuYWx5emVSZXBvcnRDb21wb25lbnQgfSBmcm9tICcuLi9hbmFseXplLXJlcG9ydC9hbmFseXplLXJlcG9ydC5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBMYXlvdXRTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXRzLnNlcnZpY2UnO1xyXG4vLyBpbXBvcnQgeyBBdXRoU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zZXJ2aWNlcy9hdXRoLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgU3Vic2NyaXB0aW9uIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSBcInRhbmdvLWFwcC11aS1nbG9iYWxcIjtcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1jcmVhdGUtdGlja2V0JyxcclxuICB0ZW1wbGF0ZVVybDogJy4vY3JlYXRlLXRpY2tldC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2NyZWF0ZS10aWNrZXQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBDcmVhdGVUaWNrZXRDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQsT25EZXN0cm95IHtcclxuICBjb3VudFR5cGU6IHN0cmluZyA9ICdoaWdoY291bnQnO1xyXG4gIHN0b3JlRGV0YWlsczphbnk7XHJcbiAgRmVhdHVyZXM6YW55ID0gWydGb290ZmFsbCddXHJcbiAgZmlsdGVyZWRTdG9yZTphbnk7XHJcbiAgZmlsdGVyZWRGZWF0dXJlOmFueTtcclxuICBzZWFyY2hEYXRhOmFueTtcclxuICBkcm9wRG93bkZlYXR1cmU6IGFueTtcclxuICBkcm9wRG93blN0b3JlOiBhbnk7XHJcbiAgZW1haWw6YW55O1xyXG4gIGZpbHRlcmVkSXRlbXM6IGFueTtcclxuICBlbWFpbEVycm9yOiBhbnk7XHJcbiAgc2VsZWN0ZWRGaWx0ZXJzOmFueSA9IHt9O1xyXG4gIHNlbGVjdGVkRGF0ZVJhbmdlOiBhbnkgPSB7fTtcclxuICBkYXlqcyA9IGRheWpzO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIHByaXZhdGUgdW5zdWJzY3JpYmU6IFN1YnNjcmlwdGlvbltdID0gW107XHJcbiAgaXNDdXN0b21EYXRlID0gKG06IGRheWpzLkRheWpzKSA9PiB7XHJcbiAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9ICBtID4gdGhpcy5kYXlqcygpOyAgICBcclxuICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/ICdpbnZhbGlkLWRhdGUnIDogZmFsc2U7XHJcbn1cclxuICBkYXRlUmFuZ2U6IGFueTtcclxuICBmaWx0ZXJlZFN0b3JlSWQ6IGFueTtcclxuICBkaXNhYmxlYnRuOiBib29sZWFuID0gdHJ1ZTtcclxuICBASW5wdXQoKSBjbGllbnRJZDphbnk7XHJcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZixwdWJsaWMgbW9kYWxTZXJ2aWNlOiBOZ2JNb2RhbCxwdWJsaWMgYWN0aXZlTW9kYWw6TmdiQWN0aXZlTW9kYWwscHJpdmF0ZSBzZXJ2aWNlOlRpY2tldHNTZXJ2aWNlKXtcclxuXHJcbiAgfVxyXG5cclxuICBASG9zdExpc3RlbmVyKCdkb2N1bWVudDpjbGljaycsIFsnJGV2ZW50J10pXHJcbiAgb25DbGljayhldmVudDogTW91c2VFdmVudCkge1xyXG4gICAgY29uc3RcclxuICAgICAgdGFyZ2V0ID0gZXZlbnQudGFyZ2V0IGFzIEhUTUxFbGVtZW50O1xyXG4gICAgaWYgKCF0YXJnZXQuY2xvc2VzdCgnLmRyb3Bkb3duJykpIHtcclxuICAgICAgLy8gdGhpcy5kcm9wRG93bkZlYXR1cmUgPSBmYWxzZTtcclxuICAgICAgLy8gdGhpcy5kcm9wRG93blN0b3JlID0gZmFsc2U7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBuZ09uSW5pdCgpe1xyXG4gICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIkRELU1NLVlZWVlcIiksXHJcbiAgICB9O1xyXG4gICAgdGhpcy5kYXRlUmFuZ2UgPSB7XHJcbiAgICAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgfTtcclxuICAgIC8vIGxldCBjdXJyZW50RGF0ZSA9IHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlO1xyXG4gICAgdGhpcy5nZXRTdG9yZSgpO1xyXG4gICAgLy8gdmFyIGRhdGV0aW1lID0ge1xyXG4gICAgLy8gICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgLy8gICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgIC8vIH07XHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgfVxyXG5cclxuICAvLyBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAvLyAgIHRoaXMuZGVzdHJveSQubmV4dCh0cnVlKTtcclxuICAvLyAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAvLyB9XHJcbiAgb25TdGFydERhdGVDaGFuZ2UoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlKS5pc1ZhbGlkKCkpIHtcclxuICAgICAgdGhpcy5pc0N1c3RvbURhdGUgPSAobTogZGF5anMuRGF5anMpID0+IHtcclxuICAgICAgICBjb25zdCBpc1ZhbGlkRGF0ZSA9XHJcbiAgICAgICAgICBtID4gdGhpcy5kYXlqcygpIHx8IG0gPiB0aGlzLmRheWpzKGV2ZW50LnN0YXJ0RGF0ZS5hZGQoOTAsIFwiZGF5c1wiKSkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCgzLCBcImRheXNcIikpO1xyXG4gICAgICAgIHJldHVybiBpc1ZhbGlkRGF0ZSA/IFwiaW52YWxpZC1kYXRlXCIgOiBmYWxzZTtcclxuICAgICAgfTtcclxuICAgIH1cclxuICB9XHJcbiAgZ2V0U3RvcmUoKXtcclxuICAgIGxldCBjbGllbnRJZD10aGlzLmNsaWVudElkO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmdldFN0b3JlKGNsaWVudElkKS5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgdGhpcy5zdG9yZURldGFpbHMgPSByZXMuZGF0YS5yZXN1bHQ7XHJcbiAgICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5zdG9yZURldGFpbHM7XHJcbiBcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZSgpIHtcclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuICBzZWFyY2hTdG9yZSgpe1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuc2VhcmNoRGF0YS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5zdG9yZURldGFpbHMuZmlsdGVyKChlbDphbnkgKT0+IGVsLnN0b3JlTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGRhdGEpKVxyXG4gIH1cclxuICBkYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmKCFldmVudC5zdGFydERhdGUgJiYgIWV2ZW50LmVuZERhdGUgKSB7XHJcbiAgICAgIGV2ZW50LnN0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgICAgZXZlbnQuZW5kRGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSAmJlxyXG4gICAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlID0gW107XHJcbiAgICAgICAgbGV0IGN1cnJlbnREYXRlID0gZXZlbnQuc3RhcnREYXRlO1xyXG4gICAgICAgIHdoaWxlIChjdXJyZW50RGF0ZS5pc0JlZm9yZShldmVudC5lbmREYXRlKSB8fCBjdXJyZW50RGF0ZS5pc1NhbWUoZXZlbnQuZW5kRGF0ZSwgJ2RheScpKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVSYW5nZS5wdXNoKHRoaXMuZGF5anMoY3VycmVudERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIikpO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRlUmFuZ2UpXHJcbiAgICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlLmFkZCgxLCAnZGF5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICAvLyAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgLy8gICBlbmREYXRlOiB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgLy8gfTtcclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpe1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKXtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICAgIGxldCByZXF1ZXN0RGF0YSA9e1xyXG4gICAgICBkYXRlUmFuZ2U6dGhpcy5kYXRlUmFuZ2UsXHJcbiAgICAgIGNvdW50VHlwZTp0aGlzLmNvdW50VHlwZSxcclxuICAgICAgZmlsdGVyZWRTdG9yZTp0aGlzLmZpbHRlcmVkU3RvcmUsXHJcbiAgICAgIGZpbHRlcmVkU3RvcmVJZDp0aGlzLmZpbHRlcmVkU3RvcmVJZCxcclxuICAgICAgZmlsdGVyZWRGZWF0dXJlOnRoaXMuZmlsdGVyZWRGZWF0dXJlLFxyXG4gICAgICBlbWFpbDp0aGlzLmVtYWlsPy50b0xvd2VyQ2FzZSgpXHJcbiAgICB9XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQW5hbHl6ZVJlcG9ydENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5hbmFseXplcmVwb3J0ID0gcmVxdWVzdERhdGFcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6YW55LGtleTphbnkpe1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZihrZXkgPT09ICdzdG9yZScpe1xyXG4gICAgICB0aGlzLmRyb3BEb3duU3RvcmUgPSAhdGhpcy5kcm9wRG93blN0b3JlO1xyXG4gICAgdGhpcy5kcm9wRG93bkZlYXR1cmUgPSBmYWxzZTt9XHJcbiAgICAgZWxzZSBpZihrZXkgPT09ICdmZWF0dXJlJyl7XHJcbiAgICAgIHRoaXMuZHJvcERvd25GZWF0dXJlID0gIXRoaXMuZHJvcERvd25GZWF0dXJlO1xyXG4gICAgIHRoaXMuZHJvcERvd25TdG9yZSA9IGZhbHNlO31cclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW0odmFsdWU6YW55LElkOmFueSxrZXk6YW55KXtcclxuICAgaWYoa2V5ID09PSAnc3RvcmUnKXtcclxuICAgICB0aGlzLmZpbHRlcmVkU3RvcmUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFN0b3JlSWQgPSBJZDtcclxuICAgICAgdGhpcy5kcm9wRG93blN0b3JlID0gZmFsc2U7XHJcblxyXG4gICB9XHJcbiAgIGVsc2UgaWYoa2V5ID09PSAnZmVhdHVyZScpXHJcbiAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgIHRoaXMuZHJvcERvd25GZWF0dXJlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBvbkVtYWlsQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuZW1haWwgPSBldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAvLyB9XHJcblxyXG4gIGVtYWlsVmFsaWRhdGlvbigpe1xyXG4gICAgY29uc3QgZW1haWxQYXR0ZXJuID0gL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC87XHJcbiAgICBpZiAodGhpcy5lbWFpbC5tYXRjaChlbWFpbFBhdHRlcm4pKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWJ0biA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVtYWlsRXJyb3IgPSAnJztcclxuICAgIH0gZWxzZSBpZighdGhpcy5lbWFpbC5tYXRjaChlbWFpbFBhdHRlcm4pKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWJ0biA9IHRydWU7XHJcbiAgICAgIHRoaXMuZW1haWxFcnJvciA9ICdJbnZhbGlkIGVtYWlsIGFkZHJlc3MnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBweS0wIHNjcm9sbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPlN1cHBvcnQ8L2E+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlIG10LTNcIj5QbGVhc2UgZmlsbCB0aGUgZGV0YWlscyBmb3Igc3RvcmUgYW5hbHlzaXMgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG15LTMgbXQtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG15LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMVwiPlNlbGVjdCBEYXRlIFJhbmdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJmYWxzZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCIgKHN0YXJ0RGF0ZUNoYW5nZWQpPVwib25TdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibm90ZXMgbXQtM1wiPk5vdGUgOiBBbmFseXNpcyByZXN0cmljdGVkIHRvIGxhc3QgNCBkYXlzIG9ubHkuIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJjb3VudFR5cGUgPT09ICdoaWdoY291bnQnID8gJ2N1c3RvbS1jb250YWluZXInOidub3JtYWwtY29udGFpbmVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJoaWdoQ291bnRcIiBuYW1lPVwiY291bnRUeXBlXCIgWyhuZ01vZGVsKV09XCJjb3VudFR5cGVcIiB2YWx1ZT1cImhpZ2hjb3VudFwiIGNsYXNzPVwicmFkaW8taW5wdXRcIiBbbmdDbGFzc109XCJ7J2hpZ2gtZG90JzogY291bnRUeXBlID09PSAnaGlnaGNvdW50J31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpZ2hDb3VudFwiIGNsYXNzPVwicmFkaW8tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNvdW50VHlwZSA9PT0gJ2hpZ2hjb3VudCcgPyAndGV4dCc6J29ydmFsIGZ3LXNlbWlib2xkJ1wiIGNsYXNzPVwidGV4dC1ub3dyYXAgZnctc2VtaWJvbGRcIj5IaWdoIENvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImNvdW50VHlwZSA9PT0gJ2xvd2NvdW50JyA/ICdjdXN0b20tY29udGFpbmVyJzonbm9ybWFsLWNvbnRhaW5lcidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwibG93Q291bnRcIiBuYW1lPVwiY291bnRUeXBlXCIgdmFsdWU9XCJsb3djb3VudFwiIFsobmdNb2RlbCldPVwiY291bnRUeXBlXCIgY2xhc3M9XCJyYWRpby1pbnB1dFwiIFtuZ0NsYXNzXT1cInsnbG93LWRvdCc6IGNvdW50VHlwZSA9PT0gJ2xvd2NvdW50J31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxvd0NvdW50XCIgY2xhc3M9XCJyYWRpby1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY291bnRUeXBlID09PSAnbG93Y291bnQnID8gJ3RleHQnOidvcnZhbCBmdy1zZW1pYm9sZCdcIiBjbGFzcz1cInRleHQtbm93cmFwXCI+TG93IENvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG15LTIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0yXCI+U2VsZWN0IFN0b3JlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50LCdzdG9yZScpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBzZWxlY3RlZCBmdy1zZW1pYm9sZCBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2ZpbHRlcmVkU3RvcmUgPyBmaWx0ZXJlZFN0b3JlIDogJ1NlbGVjdCBTdG9yZSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRyb3BEb3duU3RvcmVcIiBjbGFzcz1cImNhcmQgcHktMSB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTBweCBlbmQtMCB6LTEgZHJvcGRvd24taGVpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoRGF0YVwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgKGlucHV0KT1cInNlYXJjaFN0b3JlKClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGZpbHRlcmVkSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cImZpbHRlcmVkU3RvcmVJZCA9PT0gc3RvcmU/LnN0b3JlSWQgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0SXRlbShzdG9yZT8uc3RvcmVOYW1lLHN0b3JlPy5zdG9yZUlkLCdzdG9yZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzdG9yZT8uc3RvcmVOYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBteS0yIG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMlwiPlNlbGVjdCBGZWF0dXJlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50LCdmZWF0dXJlJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBzZWxlY3RlZCBmdy1zZW1pYm9sZCBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3tmaWx0ZXJlZEZlYXR1cmUgPyBmaWx0ZXJlZEZlYXR1cmUgOiAnU2VsZWN0IEZlYXR1cmUnfX1cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJtcy0zXCI+PHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTUgNy41TDEwIDEyLjVMMTUgNy41XCIgc3Ryb2tlPVwiIzY2NzA4NVwiIHN0cm9rZS13aWR0aD1cIjEuNjY2NjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgKm5nSWY9XCJkcm9wRG93bkZlYXR1cmVcIiBjbGFzcz1cImNhcmQgcHktMSB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTBweCBlbmQtMCB6LTEgZHJvcGRvd24taGVpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDx1bCAqbmdGb3I9XCJsZXQgZmVhdHVyZSBvZiBGZWF0dXJlc1wiIGNsYXNzPVwibGlzdC11bnN0eWxlZCBtYi0wXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bGkgW25nQ2xhc3NdPVwidGhpcy5maWx0ZXJlZEZlYXR1cmUgPT09IGZlYXR1cmUgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0SXRlbShmZWF0dXJlLCdpZCcsJ2ZlYXR1cmUnKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7ZmVhdHVyZX19PC9saT5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC91bD5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktMiBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsIG1iLTJcIj5FbWFpbDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGFsaWduLWl0ZW1zLWNlbnRlciBwb3NpdGlvbi1yZWxhdGl2ZSBteS0xXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdmctaWNvbiBzdmctaWNvbi0xIHBvc2l0aW9uLWFic29sdXRlIG1zLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHN2ZyB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aCBkPVwiTTE4LjMzMzcgNC45OTk5MkMxOC4zMzM3IDQuMDgzMjUgMTcuNTgzNyAzLjMzMzI1IDE2LjY2NyAzLjMzMzI1SDMuMzMzNjZDMi40MTY5OSAzLjMzMzI1IDEuNjY2OTkgNC4wODMyNSAxLjY2Njk5IDQuOTk5OTJNMTguMzMzNyA0Ljk5OTkyVjE0Ljk5OTlDMTguMzMzNyAxNS45MTY2IDE3LjU4MzcgMTYuNjY2NiAxNi42NjcgMTYuNjY2NkgzLjMzMzY2QzIuNDE2OTkgMTYuNjY2NiAxLjY2Njk5IDE1LjkxNjYgMS42NjY5OSAxNC45OTk5VjQuOTk5OTJNMTguMzMzNyA0Ljk5OTkyTDEwLjAwMDMgMTAuODMzM0wxLjY2Njk5IDQuOTk5OTJcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIiBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3ZnPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRleHRcIiBzdHlsZT1cInRleHQtdHJhbnNmb3JtOmxvd2VyY2FzZTtcIiBjbGFzcz1cImZvcm0tY29udHJvbCBjdXN0b20tZm9ybS1jb250cm9sIHBzLTE0IG1lLTJcIiBbKG5nTW9kZWwpXT1cImVtYWlsXCIgcGxhY2Vob2xkZXI9XCJFbWFpbFwiIGFyaWEtbGFiZWw9XCJFbWFpbFwiIGFyaWEtZGVzY3JpYmVkYnk9XCJiYXNpYy1hZGRvbjFcIiAoaW5wdXQpPVwiZW1haWxWYWxpZGF0aW9uKClcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImVtYWlsRXJyb3JcIiBjbGFzcz1cInRleHQtZGFuZ2VyIG10LTNcIj5cclxuICAgICAgICAgICAgICAgICAgICB7eyBlbWFpbEVycm9yIH19XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiAgY2xhc3M9XCJkLWZsZXggbXktNVwiIHJvbGU9XCJncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tb3V0bGluZSB3LTEwMCBtZS0zXCIgKGNsaWNrKT1cImNhbmNlbCgpXCI+Q2FuY2VsPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctMTAwIG1zLTNcIiAgaWQ9XCJhbGVydC10b2FzdFwiIFtkaXNhYmxlZF09XCJkaXNhYmxlYnRuIHx8ICFmaWx0ZXJlZFN0b3JlPy5sZW5ndGggfHwgIWZpbHRlcmVkRmVhdHVyZS5sZW5ndGggXCJcclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwib25TdWJtaXQoKVwiPkFuYWx5emU8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
203
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiY3JlYXRlLXRpY2tldC5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS10aWNrZXQtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10aWNrZXQvY3JlYXRlLXRpY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS10aWNrZXQtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL2NyZWF0ZS10aWNrZXQvY3JlYXRlLXRpY2tldC5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQXFCLFNBQVMsRUFBQyxZQUFZLEVBQW9CLEtBQUssRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUNuRyxPQUFPLEtBQUssTUFBTSxPQUFPLENBQUM7QUFDMUIsT0FBTyxpQkFBaUIsQ0FBQztBQUl6QixPQUFPLEVBQUUsc0JBQXNCLEVBQUUsTUFBTSw0Q0FBNEMsQ0FBQztBQU1wRixPQUFPLEVBQUUsT0FBTyxFQUFFLFNBQVMsRUFBRSxNQUFNLE1BQU0sQ0FBQzs7Ozs7OztBQVExQyxNQUFNLE9BQU8scUJBQXFCO0lBMEJaO0lBQTRCO0lBQThCO0lBQW1DO0lBekJqSCxTQUFTLEdBQVcsV0FBVyxDQUFDO0lBQ2hDLFlBQVksQ0FBSztJQUNqQixRQUFRLEdBQU8sQ0FBQyxVQUFVLENBQUMsQ0FBQTtJQUMzQixhQUFhLENBQUs7SUFDbEIsZUFBZSxDQUFLO0lBQ3BCLFVBQVUsQ0FBSztJQUNmLGVBQWUsQ0FBTTtJQUNyQixhQUFhLENBQU07SUFDbkIsS0FBSyxDQUFLO0lBQ1YsYUFBYSxDQUFNO0lBQ25CLFVBQVUsQ0FBTTtJQUNoQixlQUFlLEdBQU8sRUFBRSxDQUFDO0lBQ3pCLGlCQUFpQixHQUFRLEVBQUUsQ0FBQztJQUM1QixLQUFLLEdBQUcsS0FBSyxDQUFDO0lBQ0csUUFBUSxHQUFHLElBQUks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RUFBRSxDQUFDLFFBQVEsQ0FBQyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsSG9zdExpc3RlbmVyLE9uRGVzdHJveSwgT25Jbml0LCBJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgQW5hbHl6ZVJlcG9ydENvbXBvbmVudCB9IGZyb20gJy4uL2FuYWx5emUtcmVwb3J0L2FuYWx5emUtcmVwb3J0LmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IExheW91dFNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldHMuc2VydmljZSc7XHJcbi8vIGltcG9ydCB7IEF1dGhTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NlcnZpY2VzL2F1dGguc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTdWJzY3JpcHRpb24gfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBHbG9iYWxTdGF0ZVNlcnZpY2UgfSBmcm9tIFwidGFuZ28tYXBwLXVpLWdsb2JhbFwiO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgZmlsdGVyIH0gZnJvbSAncnhqcy9vcGVyYXRvcnMnO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItY3JlYXRlLXRpY2tldCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2NyZWF0ZS10aWNrZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9jcmVhdGUtdGlja2V0LmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgQ3JlYXRlVGlja2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0LE9uRGVzdHJveSB7XHJcbiAgY291bnRUeXBlOiBzdHJpbmcgPSAnaGlnaGNvdW50JztcclxuICBzdG9yZURldGFpbHM6YW55O1xyXG4gIEZlYXR1cmVzOmFueSA9IFsnRm9vdGZhbGwnXVxyXG4gIGZpbHRlcmVkU3RvcmU6YW55O1xyXG4gIGZpbHRlcmVkRmVhdHVyZTphbnk7XHJcbiAgc2VhcmNoRGF0YTphbnk7XHJcbiAgZHJvcERvd25GZWF0dXJlOiBhbnk7XHJcbiAgZHJvcERvd25TdG9yZTogYW55O1xyXG4gIGVtYWlsOmFueTtcclxuICBmaWx0ZXJlZEl0ZW1zOiBhbnk7XHJcbiAgZW1haWxFcnJvcjogYW55O1xyXG4gIHNlbGVjdGVkRmlsdGVyczphbnkgPSB7fTtcclxuICBzZWxlY3RlZERhdGVSYW5nZTogYW55ID0ge307XHJcbiAgZGF5anMgPSBkYXlqcztcclxuICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3QoKTtcclxuICBwcml2YXRlIHVuc3Vic2NyaWJlOiBTdWJzY3JpcHRpb25bXSA9IFtdO1xyXG4gIGlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgY29uc3QgaXNWYWxpZERhdGUgPSAgbSA+IHRoaXMuZGF5anMoKTsgICAgXHJcbiAgICByZXR1cm4gaXNWYWxpZERhdGUgPyAnaW52YWxpZC1kYXRlJyA6IGZhbHNlO1xyXG59XHJcbiAgZGF0ZVJhbmdlOiBhbnk7XHJcbiAgZmlsdGVyZWRTdG9yZUlkOiBhbnk7XHJcbiAgZGlzYWJsZWJ0bjogYm9vbGVhbiA9IHRydWU7XHJcbiAgQElucHV0KCkgY2xpZW50RGV0YWlsczphbnk7XHJcbiAgY2xpZW50SWQ6IGFueTtcclxuICBjb25zdHJ1Y3Rvcihwcml2YXRlIGNkOkNoYW5nZURldGVjdG9yUmVmLHB1YmxpYyBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLHB1YmxpYyBhY3RpdmVNb2RhbDpOZ2JBY3RpdmVNb2RhbCxwcml2YXRlIHNlcnZpY2U6VGlja2V0c1NlcnZpY2Upe1xyXG4gICAgXHJcbiAgICAgIFxyXG4gIH1cclxuXHJcbiAgQEhvc3RMaXN0ZW5lcignZG9jdW1lbnQ6Y2xpY2snLCBbJyRldmVudCddKVxyXG4gIG9uQ2xpY2soZXZlbnQ6IE1vdXNlRXZlbnQpIHtcclxuICAgIGNvbnN0XHJcbiAgICAgIHRhcmdldCA9IGV2ZW50LnRhcmdldCBhcyBIVE1MRWxlbWVudDtcclxuICAgIGlmICghdGFyZ2V0LmNsb3Nlc3QoJy5kcm9wZG93bicpKSB7XHJcbiAgICAgIC8vIHRoaXMuZHJvcERvd25GZWF0dXJlID0gZmFsc2U7XHJcbiAgICAgIC8vIHRoaXMuZHJvcERvd25TdG9yZSA9IGZhbHNlO1xyXG4gICAgfVxyXG4gIH1cclxuXHJcbiAgbmdPbkluaXQoKXtcclxuICAgIHRoaXMuY2xpZW50SWQgPSB0aGlzLmNsaWVudERldGFpbHM/LmNsaWVudElkO1xyXG4gICAgdGhpcy5maWx0ZXJlZFN0b3JlSWQgPSB0aGlzLmNsaWVudERldGFpbHM/LnN0b3JlSWQ7IFxyXG4gICAgY29uc29sZS5sb2coJ2ZpbHRlcmVkU3RvcmUnLCB0aGlzLmNsaWVudERldGFpbHM/LnN0b3JlSWQpXHJcbiAgICB0aGlzLnNlbGVjdGVkRGF0ZVJhbmdlID0ge1xyXG4gICAgICBzdGFydERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJERC1NTS1ZWVlZXCIpLFxyXG4gICAgICBlbmREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiREQtTU0tWVlZWVwiKSxcclxuICAgIH07XHJcbiAgICB0aGlzLmRhdGVSYW5nZSA9IHtcclxuICAgICAgc3RhcnREYXRlOiB0aGlzLmRheWpzKCkuZm9ybWF0KFwiWVlZWS1NTS1ERFwiKSxcclxuICAgICAgZW5kRGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICB9O1xyXG4gICAgLy8gbGV0IGN1cnJlbnREYXRlID0gdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5zdGFydERhdGU7XHJcbiAgICB0aGlzLmdldFN0b3JlKCk7XHJcbiAgICAvLyB2YXIgZGF0ZXRpbWUgPSB7XHJcbiAgICAvLyAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcygpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAvLyAgIGVuZERhdGU6IHRoaXMuZGF5anMoKS5mb3JtYXQoXCJZWVlZLU1NLUREXCIpLFxyXG4gICAgLy8gfTtcclxuICAgIC8vIHRoaXMuc2VsZWN0ZWRGaWx0ZXJzLmRhdGUgPSBkYXRldGltZTtcclxuICB9XHJcblxyXG4gIC8vIG5nT25EZXN0cm95KCk6IHZvaWQge1xyXG4gIC8vICAgdGhpcy5kZXN0cm95JC5uZXh0KHRydWUpO1xyXG4gIC8vICAgdGhpcy5kZXN0cm95JC5jb21wbGV0ZSgpO1xyXG4gIC8vIH1cclxuICBvblN0YXJ0RGF0ZUNoYW5nZShldmVudDogYW55KSB7XHJcbiAgICBpZiAodGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSkge1xyXG4gICAgICB0aGlzLmlzQ3VzdG9tRGF0ZSA9IChtOiBkYXlqcy5EYXlqcykgPT4ge1xyXG4gICAgICAgIGNvbnN0IGlzVmFsaWREYXRlID1cclxuICAgICAgICAgIG0gPiB0aGlzLmRheWpzKCkgfHwgbSA+IHRoaXMuZGF5anMoZXZlbnQuc3RhcnREYXRlLmFkZCg5MCwgXCJkYXlzXCIpKSB8fCBtID4gdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUuYWRkKDMsIFwiZGF5c1wiKSk7XHJcbiAgICAgICAgcmV0dXJuIGlzVmFsaWREYXRlID8gXCJpbnZhbGlkLWRhdGVcIiA6IGZhbHNlO1xyXG4gICAgICB9O1xyXG4gICAgfVxyXG4gIH1cclxuICBnZXRTdG9yZSgpe1xyXG4gICAgbGV0IGNsaWVudElkPXRoaXMuY2xpZW50SWQ7XHJcbiAgICB0aGlzLnNlcnZpY2UuZ2V0U3RvcmUoY2xpZW50SWQpLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICB0aGlzLnN0b3JlRGV0YWlscyA9IHJlcy5kYXRhLnJlc3VsdDtcclxuICAgICAgICB0aGlzLmZpbHRlcmVkSXRlbXMgPSB0aGlzLnN0b3JlRGV0YWlscztcclxuICAgICAgICB0aGlzLmZpbHRlcmVkU3RvcmUgPSB0aGlzLnN0b3JlRGV0YWlscy5maWx0ZXIoKGVsOmFueSk9PmVsPy5zdG9yZUlkID09PSB0aGlzLmZpbHRlcmVkU3RvcmVJZClbMF0/LnN0b3JlTmFtZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgIFxyXG4gICAgICB9LFxyXG4gICAgICBjb21wbGV0ZSgpIHtcclxuXHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxuICBzZWFyY2hTdG9yZSgpe1xyXG4gICAgY29uc3QgZGF0YSA9IHRoaXMuc2VhcmNoRGF0YS50b0xvd2VyQ2FzZSgpLnRyaW0oKTtcclxuICAgICAgdGhpcy5maWx0ZXJlZEl0ZW1zID0gdGhpcy5zdG9yZURldGFpbHMuZmlsdGVyKChlbDphbnkgKT0+IGVsLnN0b3JlTmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKGRhdGEpKVxyXG4gIH1cclxuICBkYXRlY2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmKCFldmVudC5zdGFydERhdGUgJiYgIWV2ZW50LmVuZERhdGUgKSB7XHJcbiAgICAgIGV2ZW50LnN0YXJ0RGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgICAgZXZlbnQuZW5kRGF0ZSA9IHRoaXMuZGF5anMoKTtcclxuICAgIH1cclxuICAgIGlmIChldmVudCAmJiBldmVudC5zdGFydERhdGUgJiYgZXZlbnQuZW5kRGF0ZSkge1xyXG4gICAgICBpZiAoXHJcbiAgICAgICAgdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUpLmlzVmFsaWQoKSAmJlxyXG4gICAgICAgIHRoaXMuZGF5anMoZXZlbnQuZW5kRGF0ZSkuaXNWYWxpZCgpXHJcbiAgICAgICkge1xyXG4gICAgICAgIHRoaXMuc2VsZWN0ZWREYXRlUmFuZ2Uuc3RhcnREYXRlID0gZXZlbnQuc3RhcnREYXRlXHJcbiAgICAgICAgdGhpcy5zZWxlY3RlZERhdGVSYW5nZS5lbmREYXRlID0gZXZlbnQuZW5kRGF0ZVxyXG4gICAgICAgIHRoaXMuZGF0ZVJhbmdlID0gW107XHJcbiAgICAgICAgbGV0IGN1cnJlbnREYXRlID0gZXZlbnQuc3RhcnREYXRlO1xyXG4gICAgICAgIHdoaWxlIChjdXJyZW50RGF0ZS5pc0JlZm9yZShldmVudC5lbmREYXRlKSB8fCBjdXJyZW50RGF0ZS5pc1NhbWUoZXZlbnQuZW5kRGF0ZSwgJ2RheScpKSB7XHJcbiAgICAgICAgICB0aGlzLmRhdGVSYW5nZS5wdXNoKHRoaXMuZGF5anMoY3VycmVudERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIikpO1xyXG4gICAgICAgICAgLy8gY29uc29sZS5sb2codGhpcy5kYXRlUmFuZ2UpXHJcbiAgICAgICAgICBjdXJyZW50RGF0ZSA9IGN1cnJlbnREYXRlLmFkZCgxLCAnZGF5Jyk7XHJcbiAgICAgICAgfVxyXG4gICAgICAgIC8vIHZhciBkYXRldGltZSA9IHtcclxuICAgICAgICAvLyAgIHN0YXJ0RGF0ZTogdGhpcy5kYXlqcyhldmVudC5zdGFydERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgLy8gICBlbmREYXRlOiB0aGlzLmRheWpzKGV2ZW50LmVuZERhdGUsXCJERC1NTS1ZWVlZXCIpLmZvcm1hdChcIllZWVktTU0tRERcIiksXHJcbiAgICAgICAgLy8gfTtcclxuICAgICAgICAvLyB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gZGF0ZXRpbWU7XHJcbiAgICAgIH1cclxuICAgIH0gXHJcbiAgICAvLyB0aGlzLnNlbGVjdGVkRmlsdGVycy5kYXRlID0gdGhpcy5zZWxlY3RlZEZpbHRlcnMuZGF0ZTtcclxuICB9XHJcblxyXG5cclxuXHJcbiAgbmdPbkRlc3Ryb3koKSB7XHJcbiAgICB0aGlzLnVuc3Vic2NyaWJlLmZvckVhY2goKHNiKSA9PiBzYi51bnN1YnNjcmliZSgpKTtcclxuICB9XHJcblxyXG4gIGNhbmNlbCgpe1xyXG4gICAgdGhpcy5hY3RpdmVNb2RhbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb25TdWJtaXQoKXtcclxuICAgIHRoaXMuYWN0aXZlTW9kYWwuY2xvc2UoKTtcclxuICAgIGxldCByZXF1ZXN0RGF0YSA9e1xyXG4gICAgICBkYXRlUmFuZ2U6dGhpcy5kYXRlUmFuZ2UsXHJcbiAgICAgIGNvdW50VHlwZTp0aGlzLmNvdW50VHlwZSxcclxuICAgICAgZmlsdGVyZWRTdG9yZTp0aGlzLmZpbHRlcmVkU3RvcmUsXHJcbiAgICAgIGZpbHRlcmVkU3RvcmVJZDp0aGlzLmZpbHRlcmVkU3RvcmVJZCxcclxuICAgICAgZmlsdGVyZWRGZWF0dXJlOnRoaXMuZmlsdGVyZWRGZWF0dXJlLFxyXG4gICAgICBlbWFpbDp0aGlzLmVtYWlsPy50b0xvd2VyQ2FzZSgpXHJcbiAgICB9XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4oQW5hbHl6ZVJlcG9ydENvbXBvbmVudCwge1xyXG4gICAgICBjZW50ZXJlZDogdHJ1ZSxcclxuICAgICAgc2l6ZTogXCJsZ1wiLFxyXG4gICAgICBzY3JvbGxhYmxlOiB0cnVlLFxyXG4gICAgfSk7XHJcbiAgICBtb2RhbFJlZi5jb21wb25lbnRJbnN0YW5jZS5hbmFseXplcmVwb3J0ID0gcmVxdWVzdERhdGFcclxuICAgIG1vZGFsUmVmLnJlc3VsdC50aGVuKChyZXN1bHQpID0+IHtcclxuICAgIH0pO1xyXG4gIH1cclxuICBvcGVuRHJvcGRvd24oZXZlbnQ6YW55LGtleTphbnkpe1xyXG4gICAgZXZlbnQuc3RvcFByb3BhZ2F0aW9uKCk7XHJcbiAgICBpZihrZXkgPT09ICdzdG9yZScpe1xyXG4gICAgICB0aGlzLmRyb3BEb3duU3RvcmUgPSAhdGhpcy5kcm9wRG93blN0b3JlO1xyXG4gICAgdGhpcy5kcm9wRG93bkZlYXR1cmUgPSBmYWxzZTt9XHJcbiAgICAgZWxzZSBpZihrZXkgPT09ICdmZWF0dXJlJyl7XHJcbiAgICAgIHRoaXMuZHJvcERvd25GZWF0dXJlID0gIXRoaXMuZHJvcERvd25GZWF0dXJlO1xyXG4gICAgIHRoaXMuZHJvcERvd25TdG9yZSA9IGZhbHNlO31cclxuICB9XHJcblxyXG4gIHNlbGVjdEl0ZW0odmFsdWU6YW55LElkOmFueSxrZXk6YW55KXtcclxuICAgaWYoa2V5ID09PSAnc3RvcmUnKXtcclxuICAgICB0aGlzLmZpbHRlcmVkU3RvcmUgPSB2YWx1ZTtcclxuICAgICAgdGhpcy5maWx0ZXJlZFN0b3JlSWQgPSBJZDtcclxuICAgICAgdGhpcy5kcm9wRG93blN0b3JlID0gZmFsc2U7XHJcblxyXG4gICB9XHJcbiAgIGVsc2UgaWYoa2V5ID09PSAnZmVhdHVyZScpXHJcbiAgICB0aGlzLmZpbHRlcmVkRmVhdHVyZSA9IHZhbHVlLnRvTG93ZXJDYXNlKCk7XHJcbiAgIHRoaXMuZHJvcERvd25GZWF0dXJlID0gZmFsc2U7XHJcbiAgfVxyXG5cclxuICAvLyBvbkVtYWlsQ2hhbmdlKGV2ZW50OiBhbnkpIHtcclxuICAvLyAgIHRoaXMuZW1haWwgPSBldmVudC50YXJnZXQudmFsdWUudG9Mb3dlckNhc2UoKTtcclxuICAvLyB9XHJcblxyXG4gIGVtYWlsVmFsaWRhdGlvbigpe1xyXG4gICAgY29uc3QgZW1haWxQYXR0ZXJuID0gL15bYS16QS1aMC05Ll8tXStAW2EtekEtWjAtOS4tXStcXC5bYS16QS1aXXsyLDZ9JC87XHJcbiAgICBpZiAodGhpcy5lbWFpbC5tYXRjaChlbWFpbFBhdHRlcm4pKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWJ0biA9IGZhbHNlO1xyXG4gICAgICB0aGlzLmVtYWlsRXJyb3IgPSAnJztcclxuICAgIH0gZWxzZSBpZighdGhpcy5lbWFpbC5tYXRjaChlbWFpbFBhdHRlcm4pKSB7XHJcbiAgICAgIHRoaXMuZGlzYWJsZWJ0biA9IHRydWU7XHJcbiAgICAgIHRoaXMuZW1haWxFcnJvciA9ICdJbnZhbGlkIGVtYWlsIGFkZHJlc3MnO1xyXG4gICAgfVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBweS0wIHNjcm9sbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPlN1cHBvcnQ8L2E+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRpdGxlIG10LTNcIj5QbGVhc2UgZmlsbCB0aGUgZGV0YWlscyBmb3Igc3RvcmUgYW5hbHlzaXMgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IG15LTMgbXQtMlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG15LTJcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMVwiPlNlbGVjdCBEYXRlIFJhbmdlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZD1cIk0xMy4zMzMzIDEuNjY2NjNWNC45OTk5Nk02LjY2NjY3IDEuNjY2NjNWNC45OTk5Nk0yLjUgOC4zMzMyOUgxNy41TTQuMTY2NjcgMy4zMzMyOUgxNS44MzMzQzE2Ljc1MzggMy4zMzMyOSAxNy41IDQuMDc5NDggMTcuNSA0Ljk5OTk2VjE2LjY2NjZDMTcuNSAxNy41ODcxIDE2Ljc1MzggMTguMzMzMyAxNS44MzMzIDE4LjMzMzNINC4xNjY2N0MzLjI0NjE5IDE4LjMzMzMgMi41IDE3LjU4NzEgMi41IDE2LjY2NjZWNC45OTk5NkMyLjUgNC4wNzk0OCAzLjI0NjE5IDMuMzMzMjkgNC4xNjY2NyAzLjMzMzI5WlwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz5cclxuICAgICAgICAgICAgICAgICAgICA8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPGlucHV0IGNsYXNzPVwiZngtZGF0ZS1yYW5nZSBmb3JtLWNvbnRyb2wgcHMtMTRcIiBzdHlsZT1cIm1pbi13aWR0aDogMjYwcHggIWltcG9ydGFudDtcIiB0eXBlPVwidGV4dFwiIG1hdElucHV0IG5neERhdGVyYW5nZXBpY2tlck1kIFtkcm9wc109XCInZG93bidcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBbb3BlbnNdPVwiJ3JpZ2h0J1wiIFtzaG93Q3VzdG9tUmFuZ2VMYWJlbF09XCJmYWxzZVwiIFthbHdheXNTaG93Q2FsZW5kYXJzXT1cImZhbHNlXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgW2tlZXBDYWxlbmRhck9wZW5pbmdXaXRoUmFuZ2VdPVwidHJ1ZVwiIFtzaG93Q2FuY2VsXT1cInRydWVcIiBhdXRvY29tcGxldGU9XCJvZmZcIiBbKG5nTW9kZWwpXT1cInNlbGVjdGVkRGF0ZVJhbmdlXCIgKHN0YXJ0RGF0ZUNoYW5nZWQpPVwib25TdGFydERhdGVDaGFuZ2UoJGV2ZW50KVwiICBbaXNDdXN0b21EYXRlXT1cImlzQ3VzdG9tRGF0ZVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIFtsb2NhbGVdPVwieyBmb3JtYXQ6ICdERC1NTS1ZWVlZJywgZmlyc3REYXk6IDEsIG1vbnRoTmFtZXM6IFsnSmFudWFyeScsICdGZWJydWFyeScsICdNYXJjaCcsICdBcHJpbCcsICdNYXknLCAnSnVuZScsICdKdWx5JywgJ0F1Z3VzdCcsICdTZXB0ZW1iZXInLCAnT2N0b2JlcicsICdOb3ZlbWJlcicsICdEZWNlbWJlciddIH1cIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAoZGF0ZXNVcGRhdGVkKT1cImRhdGVjaGFuZ2UoJGV2ZW50KVwiIG5hbWU9XCJkYXRlcmFuZ2VcIiBbcmVhZG9ubHldPVwidHJ1ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxwIGNsYXNzPVwibm90ZXMgbXQtM1wiPk5vdGUgOiBBbmFseXNpcyByZXN0cmljdGVkIHRvIGxhc3QgNCBkYXlzIG9ubHkuIDwvcD5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbGctNlwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCJjb3VudFR5cGUgPT09ICdoaWdoY291bnQnID8gJ2N1c3RvbS1jb250YWluZXInOidub3JtYWwtY29udGFpbmVyJ1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpY29uLWNvbnRhaW5lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW5wdXQgdHlwZT1cInJhZGlvXCIgaWQ9XCJoaWdoQ291bnRcIiBuYW1lPVwiY291bnRUeXBlXCIgWyhuZ01vZGVsKV09XCJjb3VudFR5cGVcIiB2YWx1ZT1cImhpZ2hjb3VudFwiIGNsYXNzPVwicmFkaW8taW5wdXRcIiBbbmdDbGFzc109XCJ7J2hpZ2gtZG90JzogY291bnRUeXBlID09PSAnaGlnaGNvdW50J31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImhpZ2hDb3VudFwiIGNsYXNzPVwicmFkaW8tbGFiZWxcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuIFtuZ0NsYXNzXT1cImNvdW50VHlwZSA9PT0gJ2hpZ2hjb3VudCcgPyAndGV4dCc6J29ydmFsIGZ3LXNlbWlib2xkJ1wiIGNsYXNzPVwidGV4dC1ub3dyYXAgZnctc2VtaWJvbGRcIj5IaWdoIENvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBcclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1sZy02XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IFtuZ0NsYXNzXT1cImNvdW50VHlwZSA9PT0gJ2xvd2NvdW50JyA/ICdjdXN0b20tY29udGFpbmVyJzonbm9ybWFsLWNvbnRhaW5lcidcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaWNvbi1jb250YWluZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJyYWRpb1wiIGlkPVwibG93Q291bnRcIiBuYW1lPVwiY291bnRUeXBlXCIgdmFsdWU9XCJsb3djb3VudFwiIFsobmdNb2RlbCldPVwiY291bnRUeXBlXCIgY2xhc3M9XCJyYWRpby1pbnB1dFwiIFtuZ0NsYXNzXT1cInsnbG93LWRvdCc6IGNvdW50VHlwZSA9PT0gJ2xvd2NvdW50J31cIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImxvd0NvdW50XCIgY2xhc3M9XCJyYWRpby1sYWJlbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gW25nQ2xhc3NdPVwiY291bnRUeXBlID09PSAnbG93Y291bnQnID8gJ3RleHQnOidvcnZhbCBmdy1zZW1pYm9sZCdcIiBjbGFzcz1cInRleHQtbm93cmFwXCI+TG93IENvdW50PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+ICAgIFxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIG15LTIgbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbCBtYi0yXCI+U2VsZWN0IFN0b3JlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50LCdzdG9yZScpXCJcclxuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBzZWxlY3RlZCBmdy1zZW1pYm9sZCBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICB7e2ZpbHRlcmVkU3RvcmUgPyBmaWx0ZXJlZFN0b3JlIDogJ1NlbGVjdCBTdG9yZSd9fVxyXG4gICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibXMtM1wiPjxzdmcgeG1sbnM9XCJodHRwOi8vd3d3LnczLm9yZy8yMDAwL3N2Z1wiIHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIHZpZXdCb3g9XCIwIDAgMjAgMjBcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIgLz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRyb3BEb3duU3RvcmVcIiBjbGFzcz1cImNhcmQgcHktMSB3LTEwMCBwb3NpdGlvbi1hYnNvbHV0ZSB0b3AtNTBweCBlbmQtMCB6LTEgZHJvcGRvd24taGVpZ2h0XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIFsobmdNb2RlbCldPVwic2VhcmNoRGF0YVwiIHBsYWNlaG9sZGVyPVwiU2VhcmNoLi4uXCIgKGlucHV0KT1cInNlYXJjaFN0b3JlKClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8dWwgKm5nRm9yPVwibGV0IHN0b3JlIG9mIGZpbHRlcmVkSXRlbXNcIiBjbGFzcz1cImxpc3QtdW5zdHlsZWQgbWItMFwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPGxpIFtuZ0NsYXNzXT1cImZpbHRlcmVkU3RvcmVJZCA9PT0gc3RvcmU/LnN0b3JlSWQgPyAnYWN0aXZlJyA6ICcnXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImNhbWVyYSBweC01IGl0ZW1zIGZ3LXNlbWlib2xkIGN1cnNvci1wb2ludGVyIHB5LTJcIiAoY2xpY2spPVwic2VsZWN0SXRlbShzdG9yZT8uc3RvcmVOYW1lLHN0b3JlPy5zdG9yZUlkLCdzdG9yZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tzdG9yZT8uc3RvcmVOYW1lfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBteS0yIG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMlwiPlNlbGVjdCBGZWF0dXJlPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJwb3NpdGlvbi1yZWxhdGl2ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIChjbGljayk9XCJvcGVuRHJvcGRvd24oJGV2ZW50LCdmZWF0dXJlJylcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCB3LTEwMCBidG4tb3V0bGluZSBidG4tb3V0bGluZS1kZWZhdWx0IHJvdW5kZWQtMyB0ZXh0LW5vd3JhcCBib3JkZXItdmFsIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBzZWxlY3RlZCBmdy1zZW1pYm9sZCBiZy13aGl0ZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAge3soZmlsdGVyZWRGZWF0dXJlID8gZmlsdGVyZWRGZWF0dXJlIDogJ1NlbGVjdCBGZWF0dXJlJykgfCB0aXRsZWNhc2V9fVxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cIm1zLTNcIj48c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmaWxsPVwibm9uZVwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNNSA3LjVMMTAgMTIuNUwxNSA3LjVcIiBzdHJva2U9XCIjNjY3MDg1XCIgc3Ryb2tlLXdpZHRoPVwiMS42NjY2N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9idXR0b24+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cImRyb3BEb3duRmVhdHVyZVwiIGNsYXNzPVwiY2FyZCBweS0xIHctMTAwIHBvc2l0aW9uLWFic29sdXRlIHRvcC01MHB4IGVuZC0wIHotMSBkcm9wZG93bi1oZWlnaHRcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHVsICpuZ0Zvcj1cImxldCBmZWF0dXJlIG9mIEZlYXR1cmVzXCIgY2xhc3M9XCJsaXN0LXVuc3R5bGVkIG1iLTBcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxsaSBbbmdDbGFzc109XCJ0aGlzLmZpbHRlcmVkRmVhdHVyZSA9PT0gZmVhdHVyZSA/ICdhY3RpdmUnIDogJydcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiY2FtZXJhIHB4LTUgaXRlbXMgZnctc2VtaWJvbGQgY3Vyc29yLXBvaW50ZXIgcHktMlwiIChjbGljayk9XCJzZWxlY3RJdGVtKGZlYXR1cmUsJ2lkJywnZmVhdHVyZScpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tmZWF0dXJlfX08L2xpPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3VsPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBteS0yIG10LTVcIj5cclxuICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tbGFiZWwgbWItMlwiPkVtYWlsPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXggYWxpZ24taXRlbXMtY2VudGVyIHBvc2l0aW9uLXJlbGF0aXZlIG15LTFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN2Zy1pY29uIHN2Zy1pY29uLTEgcG9zaXRpb24tYWJzb2x1dGUgbXMtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3ZnIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxwYXRoIGQ9XCJNMTguMzMzNyA0Ljk5OTkyQzE4LjMzMzcgNC4wODMyNSAxNy41ODM3IDMuMzMzMjUgMTYuNjY3IDMuMzMzMjVIMy4zMzM2NkMyLjQxNjk5IDMuMzMzMjUgMS42NjY5OSA0LjA4MzI1IDEuNjY2OTkgNC45OTk5Mk0xOC4zMzM3IDQuOTk5OTJWMTQuOTk5OUMxOC4zMzM3IDE1LjkxNjYgMTcuNTgzNyAxNi42NjY2IDE2LjY2NyAxNi42NjY2SDMuMzMzNjZDMi40MTY5OSAxNi42NjY2IDEuNjY2OTkgMTUuOTE2NiAxLjY2Njk5IDE0Ljk5OTlWNC45OTk5Mk0xOC4zMzM3IDQuOTk5OTJMMTAuMDAwMyAxMC44MzMzTDEuNjY2OTkgNC45OTk5MlwiIHN0cm9rZT1cIiM2NjcwODVcIiBzdHJva2Utd2lkdGg9XCIxLjY2NjY3XCIgc3Ryb2tlLWxpbmVjYXA9XCJyb3VuZFwiIHN0cm9rZS1saW5lam9pbj1cInJvdW5kXCIvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHN0eWxlPVwidGV4dC10cmFuc2Zvcm06bG93ZXJjYXNlO1wiIGNsYXNzPVwiZm9ybS1jb250cm9sIGN1c3RvbS1mb3JtLWNvbnRyb2wgcHMtMTQgbWUtMlwiIFsobmdNb2RlbCldPVwiZW1haWxcIiBwbGFjZWhvbGRlcj1cIkVtYWlsXCIgYXJpYS1sYWJlbD1cIkVtYWlsXCIgYXJpYS1kZXNjcmliZWRieT1cImJhc2ljLWFkZG9uMVwiIChpbnB1dCk9XCJlbWFpbFZhbGlkYXRpb24oKVwiPlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiZW1haWxFcnJvclwiIGNsYXNzPVwidGV4dC1kYW5nZXIgbXQtM1wiPlxyXG4gICAgICAgICAgICAgICAgICAgIHt7IGVtYWlsRXJyb3IgfX1cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2ICBjbGFzcz1cImQtZmxleCBteS01XCIgcm9sZT1cImdyb3VwXCI+XHJcbiAgICAgICAgICAgICAgICA8YnV0dG9uIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIHctMTAwIG1lLTNcIiAoY2xpY2spPVwiY2FuY2VsKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy0xMDAgbXMtM1wiICBpZD1cImFsZXJ0LXRvYXN0XCIgW2Rpc2FibGVkXT1cImRpc2FibGVidG4gfHwgIWZpbHRlcmVkU3RvcmU/Lmxlbmd0aCB8fCAhZmlsdGVyZWRGZWF0dXJlLmxlbmd0aCBcIlxyXG4gICAgICAgICAgICAgICAgICAgIChjbGljayk9XCJvblN1Ym1pdCgpXCI+QW5hbHl6ZTwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuIl19
@@ -1,30 +1,35 @@
1
1
  import { Component, ViewChild, Input } from '@angular/core';
2
2
  import { Validators } from '@angular/forms';
3
+ import dayjs from 'dayjs';
3
4
  import * as i0 from "@angular/core";
4
5
  import * as i1 from "@ng-bootstrap/ng-bootstrap";
5
6
  import * as i2 from "@angular/forms";
6
7
  import * as i3 from "../../services/tickets.service";
7
8
  import * as i4 from "tango-app-ui-shared";
8
- import * as i5 from "@angular/common";
9
+ import * as i5 from "@angular/router";
10
+ import * as i6 from "@angular/common";
9
11
  export class RaiseTicketComponent {
10
12
  modalService;
11
13
  activeModal;
12
14
  fb;
13
15
  service;
14
16
  toastservice;
17
+ router;
15
18
  fileInput;
16
19
  createTicket;
17
20
  modalRef;
18
21
  data;
19
22
  raiseTicket;
20
23
  errorMessage;
24
+ dayjs = dayjs;
21
25
  formData = new FormData();
22
- constructor(modalService, activeModal, fb, service, toastservice) {
26
+ constructor(modalService, activeModal, fb, service, toastservice, router) {
23
27
  this.modalService = modalService;
24
28
  this.activeModal = activeModal;
25
29
  this.fb = fb;
26
30
  this.service = service;
27
31
  this.toastservice = toastservice;
32
+ this.router = router;
28
33
  }
29
34
  ngOnInit() {
30
35
  this.raiseTicket = this.fb.group({
@@ -92,13 +97,21 @@ export class RaiseTicketComponent {
92
97
  },
93
98
  });
94
99
  }
95
- static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: RaiseTicketComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.FormBuilder }, { token: i3.TicketsService }, { token: i4.ToastService }], target: i0.ɵɵFactoryTarget.Component });
96
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: RaiseTicketComponent, selector: "lib-raise-ticket", inputs: { data: "data" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "createTicket", first: true, predicate: ["createTicket"], descendants: true }], ngImport: i0, template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Raise Ticket</a>\r\n <div class=\"my-2\"><span class=\"sub-title\">For Store {{data?.storeName}} on</span> <span class=\"sub-title1 ms-2\">{{data?.date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"raiseTicket\" class=\"row my-3\">\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Actual Billing Count</label>\r\n <input type=\"text\" formControlName=\"actualBilling\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Your Expected Footfall</label>\r\n <input type=\"text\" formControlName=\"expectedFootfall\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <textarea class=\"type\" formControlName=\"description\" row=\"3\" class=\"form-control\" placeholder=\"Enter a description...\"></textarea>\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <span > <input type=\"file\" formControlName=\"filePath\" #fileInput style=\"display: none;\" accept=\"image/*\" (change)=\"onFileSelected($event)\">\r\n <button (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default p-0\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"mx-2 sub-title text-capitalize\">{{filepath()}}</span></button></span>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n <div class=\"d-flex my-5\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"activeModal.close()\" >Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!raiseTicket.valid\" id=\"alert-toast\" (click)=\"submitTicket();activeModal.close()\"\r\n >Submit</button>\r\n </div>\r\n </form>\r\n \r\n </div>\r\n</div>\r\n\r\n<ng-template #createTicket let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/Successtoast.png\">\r\n </div> \r\n <div class=\"mt-5 ticketData\">\r\n <span class=\"camera fw-bold\">Ticket Created Successfully</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">your ticket for {{data?.date}} have been created successful !</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"modal.dismiss()\">Okay</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n", styles: [".camera{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.sub-title1{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:700;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
100
+ redirectToTickets() {
101
+ const data = { message: 'ticketCreated' };
102
+ this.service.changeData(data);
103
+ // this.router.navigateByUrl('/manage/stores/infra-ticket?storeId='+this.data?.storeId)
104
+ }
105
+ dateFormat() {
106
+ return this.dayjs(this.data?.date).format('DD-MM-YYYY');
107
+ }
108
+ static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: RaiseTicketComponent, deps: [{ token: i1.NgbModal }, { token: i1.NgbActiveModal }, { token: i2.FormBuilder }, { token: i3.TicketsService }, { token: i4.ToastService }, { token: i5.Router }], target: i0.ɵɵFactoryTarget.Component });
109
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.10", type: RaiseTicketComponent, selector: "lib-raise-ticket", inputs: { data: "data" }, viewQueries: [{ propertyName: "fileInput", first: true, predicate: ["fileInput"], descendants: true }, { propertyName: "createTicket", first: true, predicate: ["createTicket"], descendants: true }], ngImport: i0, template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Raise Ticket</a>\r\n <div class=\"my-2\"><span class=\"sub-title\">For Store {{data?.storeName}} on</span> <span class=\"sub-title1 ms-2\">{{data?.date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"raiseTicket\" class=\"row my-3\">\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Actual Billing Count</label>\r\n <input type=\"text\" formControlName=\"actualBilling\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Your Expected Footfall</label>\r\n <input type=\"text\" formControlName=\"expectedFootfall\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <textarea class=\"type\" formControlName=\"description\" row=\"3\" class=\"form-control\" placeholder=\"Enter a description...\"></textarea>\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <span > <input type=\"file\" formControlName=\"filePath\" #fileInput style=\"display: none;\" accept=\"image/*\" (change)=\"onFileSelected($event)\">\r\n <button (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default p-0\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"mx-2 sub-title text-capitalize\">{{filepath()}}</span></button></span>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n <div class=\"d-flex my-5\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"activeModal.close()\" >Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!raiseTicket.valid\" id=\"alert-toast\" (click)=\"submitTicket();activeModal.close()\"\r\n >Submit</button>\r\n </div>\r\n </form>\r\n \r\n </div>\r\n</div>\r\n\r\n<ng-template #createTicket let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/Successtoast.png\">\r\n </div> \r\n <div class=\"mt-5 ticketData\">\r\n <span class=\"camera fw-bold\">Ticket Created Successfully</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">your ticket for {{dateFormat()}} have been created successful !</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"redirectToTickets();modal.dismiss()\">Okay</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n", styles: [".camera{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.sub-title1{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:700;line-height:20px}\n"], dependencies: [{ kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i2.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: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
97
110
  }
98
111
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImport: i0, type: RaiseTicketComponent, decorators: [{
99
112
  type: Component,
100
- args: [{ selector: 'lib-raise-ticket', template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Raise Ticket</a>\r\n <div class=\"my-2\"><span class=\"sub-title\">For Store {{data?.storeName}} on</span> <span class=\"sub-title1 ms-2\">{{data?.date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"raiseTicket\" class=\"row my-3\">\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Actual Billing Count</label>\r\n <input type=\"text\" formControlName=\"actualBilling\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Your Expected Footfall</label>\r\n <input type=\"text\" formControlName=\"expectedFootfall\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <textarea class=\"type\" formControlName=\"description\" row=\"3\" class=\"form-control\" placeholder=\"Enter a description...\"></textarea>\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <span > <input type=\"file\" formControlName=\"filePath\" #fileInput style=\"display: none;\" accept=\"image/*\" (change)=\"onFileSelected($event)\">\r\n <button (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default p-0\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"mx-2 sub-title text-capitalize\">{{filepath()}}</span></button></span>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n <div class=\"d-flex my-5\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"activeModal.close()\" >Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!raiseTicket.valid\" id=\"alert-toast\" (click)=\"submitTicket();activeModal.close()\"\r\n >Submit</button>\r\n </div>\r\n </form>\r\n \r\n </div>\r\n</div>\r\n\r\n<ng-template #createTicket let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/Successtoast.png\">\r\n </div> \r\n <div class=\"mt-5 ticketData\">\r\n <span class=\"camera fw-bold\">Ticket Created Successfully</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">your ticket for {{data?.date}} have been created successful !</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"modal.dismiss()\">Okay</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n", styles: [".camera{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.sub-title1{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:700;line-height:20px}\n"] }]
101
- }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.FormBuilder }, { type: i3.TicketsService }, { type: i4.ToastService }], propDecorators: { fileInput: [{
113
+ args: [{ selector: 'lib-raise-ticket', template: "<div class=\"card py-0 scroll\">\r\n <div class=\"card-body py-0 d-flex flex-start flex-column p-9 \">\r\n <div class=\"row w-100 my-5\">\r\n <div class=\"col-md-12\">\r\n <a class=\"fs-4 text-gray-800 text-hover-primary fw-bold mb-0 title cursor-pointer\">Raise Ticket</a>\r\n <div class=\"my-2\"><span class=\"sub-title\">For Store {{data?.storeName}} on</span> <span class=\"sub-title1 ms-2\">{{data?.date}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <form [formGroup]=\"raiseTicket\" class=\"row my-3\">\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Actual Billing Count</label>\r\n <input type=\"text\" formControlName=\"actualBilling\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-6 my-3\">\r\n <label class=\"form-label\">Your Expected Footfall</label>\r\n <input type=\"text\" formControlName=\"expectedFootfall\" (keypress)=\"omit_special_char($event)\" class=\"form-control\">\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <textarea class=\"type\" formControlName=\"description\" row=\"3\" class=\"form-control\" placeholder=\"Enter a description...\"></textarea>\r\n </div>\r\n <div class=\"col-md-12 my-3\">\r\n <span > <input type=\"file\" formControlName=\"filePath\" #fileInput style=\"display: none;\" accept=\"image/*\" (change)=\"onFileSelected($event)\">\r\n <button (click)=\"openFileInput()\" class=\"cursor-pointer btn btn-default p-0\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <path\r\n d=\"M17.8666 9.20835L10.2082 16.8667C9.27005 17.8049 7.99757 18.332 6.67075 18.332C5.34393 18.332 4.07145 17.8049 3.13325 16.8667C2.19505 15.9285 1.66797 14.656 1.66797 13.3292C1.66797 12.0024 2.19505 10.7299 3.13325 9.79168L10.7916 2.13335C11.4171 1.50788 12.2654 1.15649 13.1499 1.15649C14.0345 1.15649 14.8828 1.50788 15.5082 2.13335C16.1337 2.75882 16.4851 3.60713 16.4851 4.49168C16.4851 5.37623 16.1337 6.22455 15.5082 6.85002L7.84158 14.5083C7.52885 14.8211 7.10469 14.9968 6.66242 14.9968C6.22014 14.9968 5.79598 14.8211 5.48325 14.5083C5.17051 14.1956 4.99482 13.7715 4.99482 13.3292C4.99482 12.8869 5.17051 12.4627 5.48325 12.15L12.5582 5.08335\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\" stroke-linejoin=\"round\" />\r\n </svg><span class=\"mx-2 sub-title text-capitalize\">{{filepath()}}</span></button></span>\r\n </div>\r\n <div class=\"text-danger\" *ngIf=\"errorMessage\">{{ errorMessage }}</div>\r\n <div class=\"d-flex my-5\" role=\"group\">\r\n <button class=\"btn btn-outline w-100 me-3\" (click)=\"activeModal.close()\" >Cancel</button>\r\n <button class=\"btn btn-primary w-100 ms-3\" [disabled]=\"!raiseTicket.valid\" id=\"alert-toast\" (click)=\"submitTicket();activeModal.close()\"\r\n >Submit</button>\r\n </div>\r\n </form>\r\n \r\n </div>\r\n</div>\r\n\r\n<ng-template #createTicket let-modal>\r\n <div class=\"p-8\">\r\n <div class=\"\">\r\n <img src=\"./assets/tango/Images/Successtoast.png\">\r\n </div> \r\n <div class=\"mt-5 ticketData\">\r\n <span class=\"camera fw-bold\">Ticket Created Successfully</span>\r\n <div class=\"mt-3 sub-header fw-bold-400\">your ticket for {{dateFormat()}} have been created successful !</div>\r\n </div>\r\n <div class=\"d-flex justify-content-between mt-10\">\r\n <button type=\"button\" class=\"btn btn-default btn-primary w-100 me-2\" (click)=\"redirectToTickets();modal.dismiss()\">Okay</button>\r\n </div>\r\n </div>\r\n </ng-template>\r\n", styles: [".camera{color:var(--Gray-900, #101828)!important;font-size:18px!important;line-height:28px!important}.sub-header{color:var(--Gray-500, #667085)!important;font-size:14px!important;line-height:20px}.title{color:var(--Gray-900, #101828)!important;font-size:18px!important;font-weight:600;line-height:28px}.sub-title{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:400;line-height:20px}.sub-title1{color:var(--Gray-500, #667085)!important;font-size:14px!important;font-weight:700;line-height:20px}\n"] }]
114
+ }], ctorParameters: () => [{ type: i1.NgbModal }, { type: i1.NgbActiveModal }, { type: i2.FormBuilder }, { type: i3.TicketsService }, { type: i4.ToastService }, { type: i5.Router }], propDecorators: { fileInput: [{
102
115
  type: ViewChild,
103
116
  args: ['fileInput']
104
117
  }], createTicket: [{
@@ -107,4 +120,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.10", ngImpo
107
120
  }], data: [{
108
121
  type: Input
109
122
  }] } });
110
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFpc2UtdGlja2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLXRpY2tldC1pbmZyYS9zcmMvbGliL2NvbXBvbmVudHMvcmFpc2UtdGlja2V0L3JhaXNlLXRpY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS10aWNrZXQtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3JhaXNlLXRpY2tldC9yYWlzZS10aWNrZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBMEIsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7Ozs7Ozs7QUFTakYsTUFBTSxPQUFPLG9CQUFvQjtJQVFaO0lBQStCO0lBQXFDO0lBQXlCO0lBQWlDO0lBUHpILFNBQVMsQ0FBTTtJQUNaLFlBQVksQ0FBTTtJQUM3QyxRQUFRLENBQTBCO0lBQ3pCLElBQUksQ0FBTTtJQUNuQixXQUFXLENBQU07SUFDakIsWUFBWSxDQUFJO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQzFCLFlBQW1CLFlBQXNCLEVBQVMsV0FBMkIsRUFBVSxFQUFlLEVBQVUsT0FBdUIsRUFBVSxZQUEwQjtRQUF4SixpQkFBWSxHQUFaLFlBQVksQ0FBVTtRQUFTLGdCQUFXLEdBQVgsV0FBVyxDQUFnQjtRQUFVLE9BQUUsR0FBRixFQUFFLENBQWE7UUFBVSxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFVLGlCQUFZLEdBQVosWUFBWSxDQUFjO0lBRTNLLENBQUM7SUFFSCxRQUFRO1FBQ04sSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUMvQixhQUFhLEVB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bnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBWaWV3Q2hpbGQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgTmdiQWN0aXZlTW9kYWwsIE5nYk1vZGFsLCBOZ2JNb2RhbFJlZiB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgRm9ybUdyb3VwLCBGb3JtQ29udHJvbCwgVmFsaWRhdG9ycywgRm9ybUJ1aWxkZXIgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IFRpY2tldHNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGlja2V0cy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1yYWlzZS10aWNrZXQnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9yYWlzZS10aWNrZXQuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9yYWlzZS10aWNrZXQuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBSYWlzZVRpY2tldENvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQFZpZXdDaGlsZCgnZmlsZUlucHV0JykgZmlsZUlucHV0OiBhbnk7XHJcbiAgQFZpZXdDaGlsZCgnY3JlYXRlVGlja2V0JykgY3JlYXRlVGlja2V0OiBhbnk7XHJcbiAgbW9kYWxSZWY6IE5nYk1vZGFsUmVmIHwgdW5kZWZpbmVkO1xyXG4gIEBJbnB1dCgpIGRhdGE6IGFueTtcclxuICByYWlzZVRpY2tldDogYW55O1xyXG4gIGVycm9yTWVzc2FnZTphbnlcclxuICBmb3JtRGF0YSA9IG5ldyBGb3JtRGF0YSgpO1xyXG4gIGNvbnN0cnVjdG9yKHB1YmxpYyBtb2RhbFNlcnZpY2U6IE5nYk1vZGFsLCBwdWJsaWMgYWN0aXZlTW9kYWw6IE5nYkFjdGl2ZU1vZGFsLCBwcml2YXRlIGZiOiBGb3JtQnVpbGRlciwgcHJpdmF0ZSBzZXJ2aWNlOiBUaWNrZXRzU2VydmljZSwgcHJpdmF0ZSB0b2FzdHNlcnZpY2U6IFRvYXN0U2VydmljZSkge1xyXG5cclxuICB9XHJcblxyXG5uZ09uSW5pdCgpe1xyXG4gIHRoaXMucmFpc2VUaWNrZXQgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgIGFjdHVhbEJpbGxpbmc6WycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgZXhwZWN0ZWRGb290ZmFsbDogWycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgZGVzY3JpcHRpb246WycnLFZhbGlkYXRvcnMucmVxdWlyZWRdLFxyXG4gICAgZmlsZVBhdGg6WycnXVxyXG4gIH0pXHJcbn1cclxuZmlsZXBhdGgoKXtcclxuICBjb25zdCBmaWxlUGF0aCA9IHRoaXMucmFpc2VUaWNrZXQ/LnZhbHVlPy5maWxlUGF0aDtcclxuICAgIGlmICghZmlsZVBhdGgpIHtcclxuICAgICAgcmV0dXJuICdBdHRhY2htZW50cyc7XHJcbiAgICB9XHJcbiAgICBjb25zdCBzZWdtZW50cyA9IGZpbGVQYXRoLnNwbGl0KC9bXFwvXFxcXF0vKTsgLy8gU3BsaXQgYnkgYm90aCAnLycgYW5kICdcXCdcclxuICAgIHJldHVybiBzZWdtZW50cy5wb3AoKSB8fCAnQXR0YWNobWVudHMnOyAvLyBHZXQgdGhlIGxhc3Qgc2VnbWVudCBvciByZXR1cm4gJ0F0dGFjaG1lbnRzJyBpZiB0aGUgcGF0aCBpcyBlbXB0eVxyXG4gIH1cclxuXHJcbiAgb25GaWxlU2VsZWN0ZWQoZXZlbnQ6IGFueSkge1xyXG4gICAgaWYgKGV2ZW50LnRhcmdldC5maWxlcyAmJiBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoID4gMCkge1xyXG4gICAgIFxyXG4gICAgICBmb3IgKGxldCBpID0gMDsgaSA8IGV2ZW50LnRhcmdldC5maWxlcy5sZW5ndGg7IGkrKykge1xyXG4gICAgICAgIGxldCBmaWxlOiBGaWxlID0gZXZlbnQudGFyZ2V0LmZpbGVzW2ldO1xyXG4gICAgICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKCdpbWcnLCBmaWxlKTtcclxuICAgICAgICBpZiAoIWZpbGUudHlwZS5zdGFydHNXaXRoKCdpbWFnZS8nKSkge1xyXG4gICAgICAgICAgdGhpcy5lcnJvck1lc3NhZ2UgPSAnT25seSBpbWFnZSBmaWxlcyBhcmUgYWxsb3dlZCEnO1xyXG4gICAgICAgICAgcmV0dXJuOyAvLyBTdG9wIGZ1cnRoZXIgcHJvY2Vzc2luZ1xyXG4gICAgICAgIH1cclxuICAgICAgfVxyXG4gICAgfVxyXG4gIH1cclxuICBvcGVuRmlsZUlucHV0KCkge1xyXG4gICAgdGhpcy5maWxlSW5wdXQubmF0aXZlRWxlbWVudC5jbGljaygpO1xyXG4gIH1cclxuICBzdWJtaXRUaWNrZXQoKSB7XHJcbiAgICB0aGlzLlRpY2tldGNyZWF0aW9uKCk7XHJcbiAgICBjb25zdCBtb2RhbFJlZiA9IHRoaXMubW9kYWxTZXJ2aWNlLm9wZW4odGhpcy5jcmVhdGVUaWNrZXQsIHsgY2VudGVyZWQ6IHRydWUgfSk7XHJcbiAgfVxyXG4gIC8vIGNvbmZpcm1UaWNrZXQoKSB7XHJcbiAgLy8gICB0aGlzLlRpY2tldGNyZWF0aW9uKCk7XHJcbiAgLy8gfVxyXG4gIG9taXRfc3BlY2lhbF9jaGFyKGV2ZW50OiBhbnkpIHtcclxuICAgIHZhciBrO1xyXG4gICAgayA9IGV2ZW50LmNoYXJDb2RlOyAgLy8gICAgICAgICBrID0gZXZlbnQua2V5Q29kZTsgIChCb3RoIGNhbiBiZSB1c2VkKVxyXG4gICAgcmV0dXJuIChrID09IDggfHwgayA9PSAzMiB8fCAoayA+PSA0OCAmJiBrIDw9IDU3KSk7XHJcbiAgfVxyXG4gIFxyXG4gIFRpY2tldGNyZWF0aW9uKCkge1xyXG4gICAgdGhpcy5mb3JtRGF0YS5hcHBlbmQoXCJzdG9yZUlkXCIsdGhpcy5kYXRhPy5zdG9yZUlkKSxcclxuICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKFwiRGF0ZVwiLHRoaXMuZGF0YT8uZGF0ZSksXHJcbiAgICB0aGlzLmZvcm1EYXRhLmFwcGVuZChcImlzc3VlVHlwZVwiLHRoaXMuZGF0YT8uY291bnRUeXBlKSxcclxuICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKFwiZmVhdHVyZVwiLHRoaXMuZGF0YT8uZmVhdHVyZSksXHJcbiAgICB0aGlzLmZvcm1EYXRhLmFwcGVuZChcImFjdHVhbENvdW50XCIsdGhpcy5yYWlzZVRpY2tldD8udmFsdWU/LmFjdHVhbEJpbGxpbmcpLFxyXG4gICAgdGhpcy5mb3JtRGF0YS5hcHBlbmQoXCJleHBlY3RlZENvdW50XCIsdGhpcy5yYWlzZVRpY2tldD8udmFsdWU/LmV4cGVjdGVkRm9vdGZhbGwpLFxyXG4gICAgdGhpcy5mb3JtRGF0YS5hcHBlbmQoXCJjb250YWN0RW1haWxcIix0aGlzLmRhdGEuZW1haWwpLFxyXG4gICAgdGhpcy5mb3JtRGF0YS5hcHBlbmQoXCJkZXNjcmlwdGlvblwiLHRoaXMucmFpc2VUaWNrZXQ/LnZhbHVlPy5kZXNjcmlwdGlvbiksICAgIFxyXG4gICAgdGhpcy5zZXJ2aWNlLmNyZWF0ZVRpY2tldCh0aGlzLmZvcm1EYXRhKS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAocmVzOiBhbnkpID0+IHtcclxuICAgICAgICBpZiAocmVzICYmIHJlcy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy50b2FzdHNlcnZpY2UuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKTtcclxuICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgICAgdGhpcy50b2FzdHNlcnZpY2UuZ2V0RXJyb3JUb2FzdCgnTm8gZGF0YSBGb3VuZCcpO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuICAgICAgICB0aGlzLnRvYXN0c2VydmljZS5nZXRFcnJvclRvYXN0KGVyci5lcnJvcik7XHJcbiAgICAgIH0sXHJcbiAgICB9KVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBweS0wIHNjcm9sbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPlJhaXNlIFRpY2tldDwvYT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yXCI+PHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5Gb3IgU3RvcmUge3tkYXRhPy5zdG9yZU5hbWV9fSBvbjwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJzdWItdGl0bGUxIG1zLTJcIj57e2RhdGE/LmRhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInJhaXNlVGlja2V0XCIgY2xhc3M9XCJyb3cgbXktM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFjdHVhbCBCaWxsaW5nIENvdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImFjdHVhbEJpbGxpbmdcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPllvdXIgRXhwZWN0ZWQgRm9vdGZhbGw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwZWN0ZWRGb290ZmFsbFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwidHlwZVwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcm93PVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIGRlc2NyaXB0aW9uLi4uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gPiA8aW5wdXQgdHlwZT1cImZpbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmaWxlUGF0aFwiICNmaWxlSW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cImltYWdlLypcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuRmlsZUlucHV0KClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGJ0biBidG4tZGVmYXVsdCBwLTBcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODM1TDEwLjIwODIgMTYuODY2N0M5LjI3MDA1IDE3LjgwNDkgNy45OTc1NyAxOC4zMzIgNi42NzA3NSAxOC4zMzJDNS4zNDM5MyAxOC4zMzIgNC4wNzE0NSAxNy44MDQ5IDMuMTMzMjUgMTYuODY2N0MyLjE5NTA1IDE1LjkyODUgMS42Njc5NyAxNC42NTYgMS42Njc5NyAxMy4zMjkyQzEuNjY3OTcgMTIuMDAyNCAyLjE5NTA1IDEwLjcyOTkgMy4xMzMyNSA5Ljc5MTY4TDEwLjc5MTYgMi4xMzMzNUMxMS40MTcxIDEuNTA3ODggMTIuMjY1NCAxLjE1NjQ5IDEzLjE0OTkgMS4xNTY0OUMxNC4wMzQ1IDEuMTU2NDkgMTQuODgyOCAxLjUwNzg4IDE1LjUwODIgMi4xMzMzNUMxNi4xMzM3IDIuNzU4ODIgMTYuNDg1MSAzLjYwNzEzIDE2LjQ4NTEgNC40OTE2OEMxNi40ODUxIDUuMzc2MjMgMTYuMTMzNyA2LjIyNDU1IDE1LjUwODIgNi44NTAwMkw3Ljg0MTU4IDE0LjUwODNDNy41Mjg4NSAxNC44MjExIDcuMTA0NjkgMTQuOTk2OCA2LjY2MjQyIDE0Ljk5NjhDNi4yMjAxNCAxNC45OTY4IDUuNzk1OTggMTQuODIxMSA1LjQ4MzI1IDE0LjUwODNDNS4xNzA1MSAxNC4xOTU2IDQuOTk0ODIgMTMuNzcxNSA0Ljk5NDgyIDEzLjMyOTJDNC45OTQ4MiAxMi44ODY5IDUuMTcwNTEgMTIuNDYyNyA1LjQ4MzI1IDEyLjE1TDEyLjU1ODIgNS4wODMzNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTIgc3ViLXRpdGxlIHRleHQtY2FwaXRhbGl6ZVwiPnt7ZmlsZXBhdGgoKX19PC9zcGFuPjwvYnV0dG9uPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiZC1mbGV4IG15LTVcIiByb2xlPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtM1wiIChjbGljayk9XCJhY3RpdmVNb2RhbC5jbG9zZSgpXCIgPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0zXCIgW2Rpc2FibGVkXT1cIiFyYWlzZVRpY2tldC52YWxpZFwiICBpZD1cImFsZXJ0LXRvYXN0XCIgKGNsaWNrKT1cInN1Ym1pdFRpY2tldCgpO2FjdGl2ZU1vZGFsLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICBcclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY3JlYXRlVGlja2V0IGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9TdWNjZXNzdG9hc3QucG5nXCI+XHJcbiAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHRpY2tldERhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYW1lcmEgZnctYm9sZFwiPlRpY2tldCBDcmVhdGVkIFN1Y2Nlc3NmdWxseTwvc3Bhbj5cclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBzdWItaGVhZGVyIGZ3LWJvbGQtNDAwXCI+eW91ciB0aWNrZXQgZm9yIHt7ZGF0YT8uZGF0ZX19IGhhdmUgYmVlbiBjcmVhdGVkIHN1Y2Nlc3NmdWwgITwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW4gbXQtMTBcIj5cclxuICAgICAgICAgIDxidXR0b24gdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1kZWZhdWx0IGJ0bi1wcmltYXJ5IHctMTAwIG1lLTJcIiAoY2xpY2spPVwibW9kYWwuZGlzbWlzcygpXCI+T2theTwvYnV0dG9uPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuIl19
123
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoicmFpc2UtdGlja2V0LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXN0b3JlLXRpY2tldC1pbmZyYS9zcmMvbGliL2NvbXBvbmVudHMvcmFpc2UtdGlja2V0L3JhaXNlLXRpY2tldC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1zdG9yZS10aWNrZXQtaW5mcmEvc3JjL2xpYi9jb21wb25lbnRzL3JhaXNlLXRpY2tldC9yYWlzZS10aWNrZXQuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxTQUFTLEVBQUUsS0FBSyxFQUFVLE1BQU0sZUFBZSxDQUFDO0FBRXBFLE9BQU8sRUFBMEIsVUFBVSxFQUFlLE1BQU0sZ0JBQWdCLENBQUM7QUFJakYsT0FBTyxLQUFLLE1BQU0sT0FBTyxDQUFDOzs7Ozs7OztBQVExQixNQUFNLE9BQU8sb0JBQW9CO0lBU1o7SUFBK0I7SUFBcUM7SUFBeUI7SUFBaUM7SUFBb0M7SUFSN0osU0FBUyxDQUFNO0lBQ1osWUFBWSxDQUFNO0lBQzdDLFFBQVEsQ0FBMEI7SUFDekIsSUFBSSxDQUFNO0lBQ25CLFdBQVcsQ0FBTTtJQUNqQixZQUFZLENBQUk7SUFDaEIsS0FBSyxHQUFDLEtBQUssQ0FBQztJQUNaLFFBQVEsR0FBRyxJQUFJLFFBQVEsRUFBRSxDQUFDO0lBQzFCLFlBQW1CLFlBQXNCLEVBQVMsV0FBMkIsRUFBVSxFQUFlLEVBQVUsT0FBdUIsRUFBVSxZQUEwQixFQUFVLE1BQWE7UUFBL0ssaUJBQVksR0FBWixZQUFZLENBQVU7UUFBUyxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBVSxPQUFFLEdBQUYsRUFBRSxDQUFhO1FBQVUsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBVSxpQkFBWSxHQUFaLFlBQVksQ0FBYztRQUFVLFdBQU0sR0FBTixN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QVUsQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUNoQyx1RkFBdUY7SUFDekYsQ0FBQztJQUNELFVBQVU7UUFDUixPQUFPLElBQUksQ0FBQyxLQUFLLENBQUMsSUFBSSxDQUFDLElBQUksRUFBRSxJQUFJLENBQUMsQ0FBQyxNQUFNLENBQUMsWUFBWSxDQUFDLENBQUE7SUFDekQsQ0FBQzt3R0F6RlUsb0JBQW9COzRGQUFwQixvQkFBb0IseVJDZGpDLHFoSUF1REE7OzRGRHpDYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCO2lOQUtKLFNBQVM7c0JBQWhDLFNBQVM7dUJBQUMsV0FBVztnQkFDSyxZQUFZO3NCQUF0QyxTQUFTO3VCQUFDLGNBQWM7Z0JBRWhCLElBQUk7c0JBQVosS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgVmlld0NoaWxkLCBJbnB1dCwgT25Jbml0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsLCBOZ2JNb2RhbCwgTmdiTW9kYWxSZWYgfSBmcm9tICdAbmctYm9vdHN0cmFwL25nLWJvb3RzdHJhcCc7XHJcbmltcG9ydCB7IEZvcm1Hcm91cCwgRm9ybUNvbnRyb2wsIFZhbGlkYXRvcnMsIEZvcm1CdWlsZGVyIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldHMuc2VydmljZSc7XHJcbmltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1zaGFyZWQnO1xyXG5pbXBvcnQgeyBSb3V0ZXIgfSBmcm9tICdAYW5ndWxhci9yb3V0ZXInO1xyXG5pbXBvcnQgZGF5anMgZnJvbSAnZGF5anMnO1xyXG5cclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLXJhaXNlLXRpY2tldCcsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3JhaXNlLXRpY2tldC5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL3JhaXNlLXRpY2tldC5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIFJhaXNlVGlja2V0Q29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBAVmlld0NoaWxkKCdmaWxlSW5wdXQnKSBmaWxlSW5wdXQ6IGFueTtcclxuICBAVmlld0NoaWxkKCdjcmVhdGVUaWNrZXQnKSBjcmVhdGVUaWNrZXQ6IGFueTtcclxuICBtb2RhbFJlZjogTmdiTW9kYWxSZWYgfCB1bmRlZmluZWQ7XHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG4gIHJhaXNlVGlja2V0OiBhbnk7XHJcbiAgZXJyb3JNZXNzYWdlOmFueVxyXG4gIGRheWpzPWRheWpzO1xyXG4gIGZvcm1EYXRhID0gbmV3IEZvcm1EYXRhKCk7XHJcbiAgY29uc3RydWN0b3IocHVibGljIG1vZGFsU2VydmljZTogTmdiTW9kYWwsIHB1YmxpYyBhY3RpdmVNb2RhbDogTmdiQWN0aXZlTW9kYWwsIHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIHNlcnZpY2U6IFRpY2tldHNTZXJ2aWNlLCBwcml2YXRlIHRvYXN0c2VydmljZTogVG9hc3RTZXJ2aWNlLCBwcml2YXRlIHJvdXRlcjpSb3V0ZXIpIHtcclxuXHJcbiAgfVxyXG5cclxubmdPbkluaXQoKXtcclxuICB0aGlzLnJhaXNlVGlja2V0ID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICBhY3R1YWxCaWxsaW5nOlsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIGV4cGVjdGVkRm9vdGZhbGw6IFsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIGRlc2NyaXB0aW9uOlsnJyxWYWxpZGF0b3JzLnJlcXVpcmVkXSxcclxuICAgIGZpbGVQYXRoOlsnJ11cclxuICB9KVxyXG59XHJcbmZpbGVwYXRoKCl7XHJcbiAgY29uc3QgZmlsZVBhdGggPSB0aGlzLnJhaXNlVGlja2V0Py52YWx1ZT8uZmlsZVBhdGg7XHJcbiAgICBpZiAoIWZpbGVQYXRoKSB7XHJcbiAgICAgIHJldHVybiAnQXR0YWNobWVudHMnO1xyXG4gICAgfVxyXG4gICAgY29uc3Qgc2VnbWVudHMgPSBmaWxlUGF0aC5zcGxpdCgvW1xcL1xcXFxdLyk7IC8vIFNwbGl0IGJ5IGJvdGggJy8nIGFuZCAnXFwnXHJcbiAgICByZXR1cm4gc2VnbWVudHMucG9wKCkgfHwgJ0F0dGFjaG1lbnRzJzsgLy8gR2V0IHRoZSBsYXN0IHNlZ21lbnQgb3IgcmV0dXJuICdBdHRhY2htZW50cycgaWYgdGhlIHBhdGggaXMgZW1wdHlcclxuICB9XHJcblxyXG4gIG9uRmlsZVNlbGVjdGVkKGV2ZW50OiBhbnkpIHtcclxuICAgIGlmIChldmVudC50YXJnZXQuZmlsZXMgJiYgZXZlbnQudGFyZ2V0LmZpbGVzLmxlbmd0aCA+IDApIHtcclxuICAgICBcclxuICAgICAgZm9yIChsZXQgaSA9IDA7IGkgPCBldmVudC50YXJnZXQuZmlsZXMubGVuZ3RoOyBpKyspIHtcclxuICAgICAgICBsZXQgZmlsZTogRmlsZSA9IGV2ZW50LnRhcmdldC5maWxlc1tpXTtcclxuICAgICAgICB0aGlzLmZvcm1EYXRhLmFwcGVuZCgnaW1nJywgZmlsZSk7XHJcbiAgICAgICAgaWYgKCFmaWxlLnR5cGUuc3RhcnRzV2l0aCgnaW1hZ2UvJykpIHtcclxuICAgICAgICAgIHRoaXMuZXJyb3JNZXNzYWdlID0gJ09ubHkgaW1hZ2UgZmlsZXMgYXJlIGFsbG93ZWQhJztcclxuICAgICAgICAgIHJldHVybjsgLy8gU3RvcCBmdXJ0aGVyIHByb2Nlc3NpbmdcclxuICAgICAgICB9XHJcbiAgICAgIH1cclxuICAgIH1cclxuICB9XHJcbiAgb3BlbkZpbGVJbnB1dCgpIHtcclxuICAgIHRoaXMuZmlsZUlucHV0Lm5hdGl2ZUVsZW1lbnQuY2xpY2soKTtcclxuICB9XHJcbiAgc3VibWl0VGlja2V0KCkge1xyXG4gICAgdGhpcy5UaWNrZXRjcmVhdGlvbigpO1xyXG4gICAgY29uc3QgbW9kYWxSZWYgPSB0aGlzLm1vZGFsU2VydmljZS5vcGVuKHRoaXMuY3JlYXRlVGlja2V0LCB7IGNlbnRlcmVkOiB0cnVlIH0pO1xyXG4gIH1cclxuICAvLyBjb25maXJtVGlja2V0KCkge1xyXG4gIC8vICAgdGhpcy5UaWNrZXRjcmVhdGlvbigpO1xyXG4gIC8vIH1cclxuICBvbWl0X3NwZWNpYWxfY2hhcihldmVudDogYW55KSB7XHJcbiAgICB2YXIgaztcclxuICAgIGsgPSBldmVudC5jaGFyQ29kZTsgIC8vICAgICAgICAgayA9IGV2ZW50LmtleUNvZGU7ICAoQm90aCBjYW4gYmUgdXNlZClcclxuICAgIHJldHVybiAoayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1NykpO1xyXG4gIH1cclxuICBcclxuICBUaWNrZXRjcmVhdGlvbigpIHtcclxuICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKFwic3RvcmVJZFwiLHRoaXMuZGF0YT8uc3RvcmVJZCksXHJcbiAgICB0aGlzLmZvcm1EYXRhLmFwcGVuZChcIkRhdGVcIix0aGlzLmRhdGE/LmRhdGUpLFxyXG4gICAgdGhpcy5mb3JtRGF0YS5hcHBlbmQoXCJpc3N1ZVR5cGVcIix0aGlzLmRhdGE/LmNvdW50VHlwZSksXHJcbiAgICB0aGlzLmZvcm1EYXRhLmFwcGVuZChcImZlYXR1cmVcIix0aGlzLmRhdGE/LmZlYXR1cmUpLFxyXG4gICAgdGhpcy5mb3JtRGF0YS5hcHBlbmQoXCJhY3R1YWxDb3VudFwiLHRoaXMucmFpc2VUaWNrZXQ/LnZhbHVlPy5hY3R1YWxCaWxsaW5nKSxcclxuICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKFwiZXhwZWN0ZWRDb3VudFwiLHRoaXMucmFpc2VUaWNrZXQ/LnZhbHVlPy5leHBlY3RlZEZvb3RmYWxsKSxcclxuICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKFwiY29udGFjdEVtYWlsXCIsdGhpcy5kYXRhLmVtYWlsKSxcclxuICAgIHRoaXMuZm9ybURhdGEuYXBwZW5kKFwiZGVzY3JpcHRpb25cIix0aGlzLnJhaXNlVGlja2V0Py52YWx1ZT8uZGVzY3JpcHRpb24pLCAgICBcclxuICAgIHRoaXMuc2VydmljZS5jcmVhdGVUaWNrZXQodGhpcy5mb3JtRGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDogKHJlczogYW55KSA9PiB7XHJcbiAgICAgICAgaWYgKHJlcyAmJiByZXMuY29kZSA9PSAyMDApIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RzZXJ2aWNlLmdldFN1Y2Nlc3NUb2FzdChyZXMubWVzc2FnZSk7XHJcbiAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgIHRoaXMudG9hc3RzZXJ2aWNlLmdldEVycm9yVG9hc3QoJ05vIGRhdGEgRm91bmQnKTtcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOiAoZXJyKSA9PiB7XHJcbiAgICAgICAgdGhpcy50b2FzdHNlcnZpY2UuZ2V0RXJyb3JUb2FzdChlcnIuZXJyb3IpO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHJlZGlyZWN0VG9UaWNrZXRzKCl7XHJcbiAgICAgIGNvbnN0IGRhdGEgPSB7IG1lc3NhZ2U6J3RpY2tldENyZWF0ZWQnfTtcclxuICAgICAgdGhpcy5zZXJ2aWNlLmNoYW5nZURhdGEoZGF0YSk7XHJcbiAgICAvLyB0aGlzLnJvdXRlci5uYXZpZ2F0ZUJ5VXJsKCcvbWFuYWdlL3N0b3Jlcy9pbmZyYS10aWNrZXQ/c3RvcmVJZD0nK3RoaXMuZGF0YT8uc3RvcmVJZClcclxuICB9XHJcbiAgZGF0ZUZvcm1hdCgpe1xyXG4gICAgcmV0dXJuIHRoaXMuZGF5anModGhpcy5kYXRhPy5kYXRlKS5mb3JtYXQoJ0RELU1NLVlZWVknKVxyXG4gIH1cclxufVxyXG4iLCI8ZGl2IGNsYXNzPVwiY2FyZCBweS0wIHNjcm9sbFwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keSBweS0wIGQtZmxleCBmbGV4LXN0YXJ0IGZsZXgtY29sdW1uIHAtOSBcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwicm93IHctMTAwIG15LTVcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMlwiPlxyXG4gICAgICAgICAgICAgICAgPGEgY2xhc3M9XCJmcy00IHRleHQtZ3JheS04MDAgdGV4dC1ob3Zlci1wcmltYXJ5IGZ3LWJvbGQgbWItMCB0aXRsZSBjdXJzb3ItcG9pbnRlclwiPlJhaXNlIFRpY2tldDwvYT5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJteS0yXCI+PHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5Gb3IgU3RvcmUge3tkYXRhPy5zdG9yZU5hbWV9fSBvbjwvc3Bhbj4gPHNwYW4gY2xhc3M9XCJzdWItdGl0bGUxIG1zLTJcIj57e2RhdGE/LmRhdGV9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8Zm9ybSBbZm9ybUdyb3VwXT1cInJhaXNlVGlja2V0XCIgY2xhc3M9XCJyb3cgbXktM1wiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkFjdHVhbCBCaWxsaW5nIENvdW50PC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIGZvcm1Db250cm9sTmFtZT1cImFjdHVhbEJpbGxpbmdcIiAoa2V5cHJlc3MpPVwib21pdF9zcGVjaWFsX2NoYXIoJGV2ZW50KVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCI+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTYgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPllvdXIgRXhwZWN0ZWQgRm9vdGZhbGw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgZm9ybUNvbnRyb2xOYW1lPVwiZXhwZWN0ZWRGb290ZmFsbFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPHRleHRhcmVhIGNsYXNzPVwidHlwZVwiIGZvcm1Db250cm9sTmFtZT1cImRlc2NyaXB0aW9uXCIgcm93PVwiM1wiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgcGxhY2Vob2xkZXI9XCJFbnRlciBhIGRlc2NyaXB0aW9uLi4uXCI+PC90ZXh0YXJlYT5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgbXktM1wiPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gPiA8aW5wdXQgdHlwZT1cImZpbGVcIiBmb3JtQ29udHJvbE5hbWU9XCJmaWxlUGF0aFwiICNmaWxlSW5wdXQgc3R5bGU9XCJkaXNwbGF5OiBub25lO1wiIGFjY2VwdD1cImltYWdlLypcIiAoY2hhbmdlKT1cIm9uRmlsZVNlbGVjdGVkKCRldmVudClcIj5cclxuICAgICAgICAgICAgICAgICAgICA8YnV0dG9uIChjbGljayk9XCJvcGVuRmlsZUlucHV0KClcIiBjbGFzcz1cImN1cnNvci1wb2ludGVyIGJ0biBidG4tZGVmYXVsdCBwLTBcIj48c3ZnXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB4bWxucz1cImh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnXCIgd2lkdGg9XCIyMFwiIGhlaWdodD1cIjIwXCIgdmlld0JveD1cIjAgMCAyMCAyMFwiIGZpbGw9XCJub25lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGQ9XCJNMTcuODY2NiA5LjIwODM1TDEwLjIwODIgMTYuODY2N0M5LjI3MDA1IDE3LjgwNDkgNy45OTc1NyAxOC4zMzIgNi42NzA3NSAxOC4zMzJDNS4zNDM5MyAxOC4zMzIgNC4wNzE0NSAxNy44MDQ5IDMuMTMzMjUgMTYuODY2N0MyLjE5NTA1IDE1LjkyODUgMS42Njc5NyAxNC42NTYgMS42Njc5NyAxMy4zMjkyQzEuNjY3OTcgMTIuMDAyNCAyLjE5NTA1IDEwLjcyOTkgMy4xMzMyNSA5Ljc5MTY4TDEwLjc5MTYgMi4xMzMzNUMxMS40MTcxIDEuNTA3ODggMTIuMjY1NCAxLjE1NjQ5IDEzLjE0OTkgMS4xNTY0OUMxNC4wMzQ1IDEuMTU2NDkgMTQuODgyOCAxLjUwNzg4IDE1LjUwODIgMi4xMzMzNUMxNi4xMzM3IDIuNzU4ODIgMTYuNDg1MSAzLjYwNzEzIDE2LjQ4NTEgNC40OTE2OEMxNi40ODUxIDUuMzc2MjMgMTYuMTMzNyA2LjIyNDU1IDE1LjUwODIgNi44NTAwMkw3Ljg0MTU4IDE0LjUwODNDNy41Mjg4NSAxNC44MjExIDcuMTA0NjkgMTQuOTk2OCA2LjY2MjQyIDE0Ljk5NjhDNi4yMjAxNCAxNC45OTY4IDUuNzk1OTggMTQuODIxMSA1LjQ4MzI1IDE0LjUwODNDNS4xNzA1MSAxNC4xOTU2IDQuOTk0ODIgMTMuNzcxNSA0Ljk5NDgyIDEzLjMyOTJDNC45OTQ4MiAxMi44ODY5IDUuMTcwNTEgMTIuNDYyNyA1LjQ4MzI1IDEyLjE1TDEyLjU1ODIgNS4wODMzNVwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgc3Ryb2tlPVwiIzM0NDA1NFwiIHN0cm9rZS13aWR0aD1cIjEuNjdcIiBzdHJva2UtbGluZWNhcD1cInJvdW5kXCIgc3Ryb2tlLWxpbmVqb2luPVwicm91bmRcIiAvPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8L3N2Zz48c3BhbiBjbGFzcz1cIm14LTIgc3ViLXRpdGxlIHRleHQtY2FwaXRhbGl6ZVwiPnt7ZmlsZXBhdGgoKX19PC9zcGFuPjwvYnV0dG9uPjwvc3Bhbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZXJyb3JNZXNzYWdlXCI+e3sgZXJyb3JNZXNzYWdlIH19PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgIGNsYXNzPVwiZC1mbGV4IG15LTVcIiByb2xlPVwiZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gY2xhc3M9XCJidG4gYnRuLW91dGxpbmUgdy0xMDAgbWUtM1wiIChjbGljayk9XCJhY3RpdmVNb2RhbC5jbG9zZSgpXCIgPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiBjbGFzcz1cImJ0biBidG4tcHJpbWFyeSB3LTEwMCBtcy0zXCIgW2Rpc2FibGVkXT1cIiFyYWlzZVRpY2tldC52YWxpZFwiICBpZD1cImFsZXJ0LXRvYXN0XCIgKGNsaWNrKT1cInN1Ym1pdFRpY2tldCgpO2FjdGl2ZU1vZGFsLmNsb3NlKClcIlxyXG4gICAgICAgICAgICAgICAgICAgID5TdWJtaXQ8L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9mb3JtPlxyXG4gICAgICBcclxuICAgIDwvZGl2PlxyXG48L2Rpdj5cclxuXHJcbjxuZy10ZW1wbGF0ZSAjY3JlYXRlVGlja2V0IGxldC1tb2RhbD5cclxuICAgIDxkaXYgY2xhc3M9XCJwLThcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiXCI+XHJcbiAgICAgICAgICA8aW1nIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy9TdWNjZXNzdG9hc3QucG5nXCI+XHJcbiAgICAgICAgPC9kaXY+IFxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC01IHRpY2tldERhdGFcIj5cclxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJjYW1lcmEgZnctYm9sZFwiPlRpY2tldCBDcmVhdGVkIFN1Y2Nlc3NmdWxseTwvc3Bhbj5cclxuICAgICAgICAgICA8ZGl2IGNsYXNzPVwibXQtMyBzdWItaGVhZGVyIGZ3LWJvbGQtNDAwXCI+eW91ciB0aWNrZXQgZm9yIHt7ZGF0ZUZvcm1hdCgpfX0gaGF2ZSBiZWVuIGNyZWF0ZWQgc3VjY2Vzc2Z1bCAhPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlbiBtdC0xMFwiPlxyXG4gICAgICAgICAgPGJ1dHRvbiB0eXBlPVwiYnV0dG9uXCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLXByaW1hcnkgdy0xMDAgbWUtMlwiIChjbGljayk9XCJyZWRpcmVjdFRvVGlja2V0cygpO21vZGFsLmRpc21pc3MoKVwiPk9rYXk8L2J1dHRvbj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gIDwvbmctdGVtcGxhdGU+XHJcbiJdfQ==