tango-app-ui-ticket-user 3.0.11-dev → 3.0.12-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.
@@ -64,12 +64,12 @@ export class EdgeCameraviewComponent {
64
64
  });
65
65
  }
66
66
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeCameraviewComponent, deps: [{ token: i1.TicketsService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
67
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeCameraviewComponent, selector: "lib-edge-cameraview", inputs: { value: "value" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label mb-1\">{{value?.storeName}}- Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div>\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status <span *ngIf=\"viewEdgeAppLogList?.appStatus\">- {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span></span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title \">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData || !CameraDetails?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828)!important;font-size:20px!important;line-height:30px;font-weight:600!important}.card-view .sub-title{color:var(--Gray-900, #101828)!important;font-size:14px!important;line-height:20px;font-weight:500!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.CustomDateFormatPipe, name: "customDateFormat" }] });
67
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EdgeCameraviewComponent, selector: "lib-edge-cameraview", inputs: { value: "value" }, ngImport: i0, template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label mb-1\">{{value?.storeName}}- Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div>\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status <span *ngIf=\"viewEdgeAppLogList?.appStatus\">- {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span></span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title \">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Antivirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData || !CameraDetails?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828)!important;font-size:20px!important;line-height:30px;font-weight:600!important}.card-view .sub-title{color:var(--Gray-900, #101828)!important;font-size:14px!important;line-height:20px;font-weight:500!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"], dependencies: [{ kind: "directive", type: i2.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i2.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i2.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "pipe", type: i2.TitleCasePipe, name: "titlecase" }, { kind: "pipe", type: i2.DatePipe, name: "date" }, { kind: "pipe", type: i3.CustomDateFormatPipe, name: "customDateFormat" }] });
68
68
  }
69
69
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EdgeCameraviewComponent, decorators: [{
70
70
  type: Component,
71
- args: [{ selector: 'lib-edge-cameraview', template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label mb-1\">{{value?.storeName}}- Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div>\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status <span *ngIf=\"viewEdgeAppLogList?.appStatus\">- {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span></span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title \">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Anitvirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData || !CameraDetails?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828)!important;font-size:20px!important;line-height:30px;font-weight:600!important}.card-view .sub-title{color:var(--Gray-900, #101828)!important;font-size:14px!important;line-height:20px;font-weight:500!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
71
+ args: [{ selector: 'lib-edge-cameraview', template: "<div class=\"card\">\r\n <div class=\"card-header flex-column border-0\">\r\n <img class=\"mt-5 msgprofile\" src=\"./assets/tango/Images/edgeapp icon.svg\">\r\n <div class=\"card-title flex-column\">\r\n <span class=\"card-label mb-1\">{{value?.storeName}}- Store Infrastructure</span>\r\n <span class=\"sub-title\">Based on date : {{currentDate | date:'dd-MM-yy'}} </span>\r\n </div>\r\n </div>\r\n <div class=\"card-body\">\r\n <div>\r\n <span class=\"heading mb-5 fw-semibold\">Edge App Status <span *ngIf=\"viewEdgeAppLogList?.appStatus\">- {{viewEdgeAppLogList?.appStatus ? viewEdgeAppLogList?.appStatus :'--'}}</span></span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Login Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appStartTime ? viewEdgeAppLogList?.appStartTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Close Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.appQuitTime ? viewEdgeAppLogList?.appQuitTime :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">App Crash Time</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.AppCrashtime ? viewEdgeAppLogList?.AppCrashtime :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">System Check </span>\r\n <div class=\"border border-gray border-1 rounded-3 w-100 px-10 py-3 mt-3 d-flex justify-content-between\">\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title \">System Idle</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.screenStatus ?viewEdgeAppLogList?.screenStatus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Antivirus</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.antiVirus ?viewEdgeAppLogList?.antiVirus :'--'}}</span>\r\n </div>\r\n <div class=\"card-view d-flex flex-column\">\r\n <span class=\"sub-title\">Files Pushed</span>\r\n <span class=\"title\">{{viewEdgeAppLogList?.filesPushed ?viewEdgeAppLogList?.filesPushed :'--'}}</span>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"mt-10\">\r\n <span class=\"heading mb-5 fw-semibold\">Camera Check</span>\r\n <div class=\"row\">\r\n <div *ngFor=\"let details of CameraDetails\" class=\"col-sm-6 mt-10\">\r\n <div>\r\n <div class=\"row\">\r\n <div class=\"col-sm-9\">\r\n <div class=\"d-flex align-items-center\">\r\n <div [ngClass]=\"(details?.isActivated && details.isUp) ? 'bg-success':'bg-danger'\" class=\"w-10px h-10px border-0 rounded-3 me-2\"></div><span *ngIf=\"details?.cameraNumber\">{{details?.cameraNumber}}</span>\r\n <span *ngIf=\"details?.cameraName\" class=\"badge badge-light-primary text-primary ms-2\">{{details?.cameraName | titlecase}} Camera</span>\r\n </div>\r\n <div class=\"streamdate fw-semibold\"><span>{{details?.streamName}}</span></div>\r\n </div>\r\n </div>\r\n \r\n <img class=\"w-100 mh-200px rounded-3 mt-3\" src='{{details?.thumbnailImage}}'>\r\n <div class=\"mt-3 d-flex justify-content-between\">\r\n <span *ngIf=\"details?.captureAt\" class=\"streamdate fw-semibold\">Date Added : {{details?.captureAt | customDateFormat}}</span>\r\n <span *ngIf=\"details?.timeElapsed\" class=\"streamdate fw-semibold\">Frame Rate : {{details?.timeElapsed}} Sec</span>\r\n </div>\r\n </div> \r\n </div>\r\n </div>\r\n </div>\r\n \r\n <ng-container *ngIf=\"loading\" >\r\n <div class=\"row loader d-flex justify-content-center align-items-center\">\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n <div class=\"shimmer\">\r\n <div class=\"wrapper\">\r\n <div class=\"stroke animate title\"></div>\r\n <div class=\"stroke animate link\"></div>\r\n <div class=\"stroke animate description\"></div>\r\n </div>\r\n </div>\r\n \r\n </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"noData || !CameraDetails?.length\">\r\n <div class=\"row\">\r\n <div class=\"col-lg-12 mb-3\">\r\n <div class=\"card-body d-flex justify-content-center align-items-center flex-column\">\r\n <img class=\"img-src w-25\" src=\"./assets/tango/Icons/Nodata.svg\" alt=\"\">\r\n </div>\r\n </div>\r\n </div>\r\n </ng-container>\r\n </div>\r\n</div>\r\n", styles: [".card-label{font-size:18px!important;line-height:28px!important}.sub-title{font-size:14px;font-weight:400;line-height:20px;color:var(--Gray-500, #667085)}.card-view .title{color:var(--Gray-900, #101828)!important;font-size:20px!important;line-height:30px;font-weight:600!important}.card-view .sub-title{color:var(--Gray-900, #101828)!important;font-size:14px!important;line-height:20px;font-weight:500!important}.msgprofile{width:48px!important;height:48px!important;border-radius:200px;overflow:hidden}.streamdate{color:var(--Gray-400, #98A2B3);font-size:12px;line-height:18px}.heading{color:var(--Gray-900, #101828);font-size:16px;line-height:24px}.loader .title{width:65%}.loader .link{width:85%}.loader .description{width:95%}.loader .shimmer{padding:15px;width:95%;height:120px;margin:10px auto;background:#fff}.loader .shimmer .image-card{height:90px;width:90px;float:right;border-radius:8px}.loader .stroke{height:15px;background:#777;margin-top:20px}.loader .wrapper{width:0px;animation:fullView .5s forwards linear}@keyframes fullView{to{width:100%}}.loader .animate{animation:shimmer 3s;animation-iteration-count:infinite;background:linear-gradient(to right,#e6e6e6 5%,#ccc 25%,#e6e6e6 35%);background-size:1000px 100%}@keyframes shimmer{0%{background-position:-1000px 0}to{background-position:1000px 0}}\n"] }]
72
72
  }], ctorParameters: () => [{ type: i1.TicketsService }, { type: i0.ChangeDetectorRef }], propDecorators: { value: [{
73
73
  type: Input
74
74
  }] } });
75
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN4QjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUVmLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFHLEdBQUcsSUFBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFJO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQTdEVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix1RkNScEMsMHpMQWtHQTs7MkZEMUZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7bUhBU3RCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGdlLWNhbWVyYXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGdlQ2FtZXJhdmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld0VkZ2VBcHBMb2dMaXN0OiBhbnk7XHJcbiAgY3VycmVudERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBDYW1lcmFEZXRhaWxzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5mcmFTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Vmlld0VkZ2VBcHBMb2coKTtcclxuICAgIHRoaXMuZ2V0Q2FtZXJhSW1hZ2VzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgZ2V0Vmlld0VkZ2VBcHBMb2coKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBzdG9yZUlkOiB0aGlzLnZhbHVlPy5zdG9yZUlkLFxyXG4gICAgICBmcm9tOiB0aGlzLnZhbHVlPy5zdGFydFRpbWUuc2xpY2UoMCwgLTIpLFxyXG4gICAgICB0bzogdGhpcy52YWx1ZT8uZW5kVGltZS5zbGljZSgwLCAtMilcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3ZWRnZUFwcExvZyhvYmopLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3RWRnZUFwcExvZ0xpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgaWYocmVzJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuQ2FtZXJhRGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0xXCI+e3t2YWx1ZT8uc3RvcmVOYW1lfX0tIFN0b3JlIEluZnJhc3RydWN0dXJlPC9zcGFuPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QmFzZWQgb24gZGF0ZSA6IHt7Y3VycmVudERhdGUgfCBkYXRlOidkZC1NTS15eSd9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPkVkZ2UgQXBwIFN0YXR1cyA8c3BhbiAqbmdJZj1cInZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzXCI+LSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHctMTAwIHB4LTEwIHB5LTMgbXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QXBwIExvZ2luIFRpbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFN0YXJ0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgQ2xvc2UgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFF1aXRUaW1lIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgQ3Jhc2ggVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uQXBwQ3Jhc2h0aW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPlN5c3RlbSBDaGVjayA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHctMTAwIHB4LTEwIHB5LTMgbXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlIFwiPlN5c3RlbSBJZGxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5zY3JlZW5TdGF0dXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5Bbml0dmlydXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmFudGlWaXJ1cyA/dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkZpbGVzIFB1c2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uZmlsZXNQdXNoZWQgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uZmlsZXNQdXNoZWQgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPkNhbWVyYSBDaGVjazwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkZXRhaWxzIG9mIENhbWVyYURldGFpbHNcIiBjbGFzcz1cImNvbC1zbS02IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIoZGV0YWlscz8uaXNBY3RpdmF0ZWQgJiYgZGV0YWlscy5pc1VwKSA/ICdiZy1zdWNjZXNzJzonYmctZGFuZ2VyJ1wiIGNsYXNzPVwidy0xMHB4IGgtMTBweCBib3JkZXItMCByb3VuZGVkLTMgbWUtMlwiPjwvZGl2PjxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTnVtYmVyXCI+e3tkZXRhaWxzPy5jYW1lcmFOdW1iZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy5jYW1lcmFOYW1lXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtcy0yXCI+e3tkZXRhaWxzPy5jYW1lcmFOYW1lIHwgdGl0bGVjYXNlfX0gQ2FtZXJhPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+PHNwYW4+e3tkZXRhaWxzPy5zdHJlYW1OYW1lfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIG1oLTIwMHB4IHJvdW5kZWQtMyBtdC0zXCIgc3JjPSd7e2RldGFpbHM/LnRodW1ibmFpbEltYWdlfX0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhcHR1cmVBdFwiIGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPkRhdGUgQWRkZWQgOiB7e2RldGFpbHM/LmNhcHR1cmVBdCB8IGN1c3RvbURhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy50aW1lRWxhcHNlZFwiIGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPkZyYW1lIFJhdGUgOiB7e2RldGFpbHM/LnRpbWVFbGFwc2VkfX0gU2VjPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGEgfHwgIUNhbWVyYURldGFpbHM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
75
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGdlLWNhbWVyYXZpZXcvZWRnZS1jYW1lcmF2aWV3LmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBcUIsU0FBUyxFQUFFLEtBQUssRUFBVSxNQUFNLGVBQWUsQ0FBQzs7Ozs7QUFRNUUsTUFBTSxPQUFPLHVCQUF1QjtJQVFkO0lBQXNDO0lBUDFELE9BQU8sR0FBWSxJQUFJLENBQUM7SUFDeEIsTUFBTSxHQUFZLEtBQUssQ0FBQztJQUN4QixrQkFBa0IsQ0FBTTtJQUN4QixXQUFXLENBQU87SUFDVCxLQUFLLENBQU07SUFDcEIsYUFBYSxDQUFNO0lBRW5CLFlBQW9CLFlBQTRCLEVBQVUsRUFBcUI7UUFBM0QsaUJBQVksR0FBWixZQUFZLENBQWdCO1FBQVUsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7SUFHL0UsQ0FBQztJQUNELFFBQVE7UUFDTixJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztRQUN6QixJQUFJLENBQUMsZUFBZSxFQUFFLENBQUM7UUFDdkIsSUFBSSxDQUFDLFdBQVcsR0FBRyxJQUFJLElBQUksRUFBRSxDQUFDO0lBQ2hDLENBQUM7SUFDRCxpQkFBaUI7UUFDZixJQUFJLENBQUMsT0FBTyxHQUFHLElBQUksQ0FBQztRQUNwQixJQUFJLENBQUMsTUFBTSxHQUFHLEtBQUssQ0FBQztRQUVwQixJQUFJLEdBQUcsR0FBRztZQUNSLE9BQU8sRUFBRSxJQUFJLENBQUMsS0FBSyxFQUFFLE9BQU87WUFDNUIsSUFBSSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsU0FBUyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7WUFDeEMsRUFBRSxFQUFFLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTyxDQUFDLEtBQUssQ0FBQyxDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUM7U0FDckMsQ0FBQTtRQUVELElBQUksQ0FBQyxZQUFZLENBQUMsY0FBYyxDQUFDLEdBQUcsQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUM5QyxJQUFJLEVBQUUsQ0FBQyxHQUFRLEVBQUUsRUFBRTtnQkFDakIsSUFBSSxHQUFHLElBQUksR0FBRyxFQUFFLElBQUksSUFBSSxHQUFHLEVBQUU7b0JBQzNCLElBQUksQ0FBQyxrQkFBa0IsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUNwQyxJQUFJLENBQUMsRUFBRSxDQUFDLGFBQWEsRUFBRSxDQUFBO2lCQUN4QjtZQUNILENBQUM7WUFDRCxLQUFLLEVBQUUsQ0FBQyxHQUFHLEVBQUUsRUFBRTtZQUVmLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO0lBRUQsZUFBZTtRQUNiLElBQUksSUFBSSxHQUFHO1lBQ1QsT0FBTyxFQUFHLElBQUksQ0FBQyxLQUFLLEVBQUUsT0FBTztZQUM3QixvQkFBb0I7U0FDckIsQ0FBQTtRQUNELElBQUksQ0FBQyxZQUFZLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxDQUFDLFNBQVMsQ0FBQztZQUNoRCxJQUFJLEVBQUMsQ0FBQyxHQUFPLEVBQUMsRUFBRTtnQkFDZCxJQUFHLEdBQUcsSUFBRyxHQUFHLENBQUMsSUFBSSxJQUFJLEdBQUcsRUFBQztvQkFDdkIsSUFBSSxDQUFDLGFBQWEsR0FBRyxHQUFHLEVBQUUsSUFBSSxDQUFDO29CQUMvQixJQUFJLENBQUMsT0FBTyxHQUFHLEtBQUssQ0FBQztvQkFDckIsSUFBSSxDQUFDLE1BQU0sR0FBRyxLQUFLLENBQUM7aUJBQ3JCO3FCQUFJO29CQUNILElBQUksQ0FBQyxPQUFPLEdBQUcsS0FBSyxDQUFDO29CQUNyQixJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksQ0FBQztpQkFDcEI7WUFDSCxDQUFDO1lBQ0QsS0FBSyxFQUFDLENBQUMsR0FBRyxFQUFDLEVBQUU7Z0JBQ1gsSUFBSSxDQUFDLE9BQU8sR0FBRyxLQUFLLENBQUM7Z0JBQ3JCLElBQUksQ0FBQyxNQUFNLEdBQUcsSUFBSSxDQUFDO1lBQ3JCLENBQUM7U0FDRixDQUFDLENBQUE7SUFDSixDQUFDO3VHQTdEVSx1QkFBdUI7MkZBQXZCLHVCQUF1Qix1RkNScEMsMHpMQWtHQTs7MkZEMUZhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDRSxxQkFBcUI7bUhBU3RCLEtBQUs7c0JBQWIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENoYW5nZURldGVjdG9yUmVmLCBDb21wb25lbnQsIElucHV0LCBPbkluaXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGdlLWNhbWVyYXZpZXcnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGdlLWNhbWVyYXZpZXcuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGdlQ2FtZXJhdmlld0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbG9hZGluZzogYm9vbGVhbiA9IHRydWU7XHJcbiAgbm9EYXRhOiBib29sZWFuID0gZmFsc2U7XHJcbiAgdmlld0VkZ2VBcHBMb2dMaXN0OiBhbnk7XHJcbiAgY3VycmVudERhdGU6IERhdGU7XHJcbiAgQElucHV0KCkgdmFsdWU6IGFueTtcclxuICBDYW1lcmFEZXRhaWxzOiBhbnk7XHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgaW5mcmFTZXJ2aWNlOiBUaWNrZXRzU2VydmljZSwgcHJpdmF0ZSBjZDogQ2hhbmdlRGV0ZWN0b3JSZWYpIHtcclxuXHJcblxyXG4gIH1cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuZ2V0Vmlld0VkZ2VBcHBMb2coKTtcclxuICAgIHRoaXMuZ2V0Q2FtZXJhSW1hZ2VzKCk7XHJcbiAgICB0aGlzLmN1cnJlbnREYXRlID0gbmV3IERhdGUoKTtcclxuICB9XHJcbiAgZ2V0Vmlld0VkZ2VBcHBMb2coKSB7XHJcbiAgICB0aGlzLmxvYWRpbmcgPSB0cnVlO1xyXG4gICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuXHJcbiAgICBsZXQgb2JqID0ge1xyXG4gICAgICBzdG9yZUlkOiB0aGlzLnZhbHVlPy5zdG9yZUlkLFxyXG4gICAgICBmcm9tOiB0aGlzLnZhbHVlPy5zdGFydFRpbWUuc2xpY2UoMCwgLTIpLFxyXG4gICAgICB0bzogdGhpcy52YWx1ZT8uZW5kVGltZS5zbGljZSgwLCAtMilcclxuICAgIH1cclxuXHJcbiAgICB0aGlzLmluZnJhU2VydmljZS52aWV3ZWRnZUFwcExvZyhvYmopLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6IChyZXM6IGFueSkgPT4ge1xyXG4gICAgICAgIGlmIChyZXMgJiYgcmVzPy5jb2RlID09IDIwMCkge1xyXG4gICAgICAgICAgdGhpcy52aWV3RWRnZUFwcExvZ0xpc3QgPSByZXM/LmRhdGE7XHJcbiAgICAgICAgICB0aGlzLmNkLmRldGVjdENoYW5nZXMoKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6IChlcnIpID0+IHtcclxuXHJcbiAgICAgIH1cclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBnZXRDYW1lcmFJbWFnZXMoKXtcclxuICAgIGxldCBkYXRhID0ge1xyXG4gICAgICBzdG9yZUlkIDogdGhpcy52YWx1ZT8uc3RvcmVJZFxyXG4gICAgICAvLyBzdG9yZUlkOlwiMjAxLTEyOVwiXHJcbiAgICB9XHJcbiAgICB0aGlzLmluZnJhU2VydmljZS5nZXRDYW1lcmFJbWFnZXMoZGF0YSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PiB7XHJcbiAgICAgICAgaWYocmVzJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMuQ2FtZXJhRGV0YWlscyA9IHJlcz8uZGF0YTtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSBmYWxzZTtcclxuICAgICAgICB9ZWxzZXtcclxuICAgICAgICAgIHRoaXMubG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgICAgdGhpcy5sb2FkaW5nID0gZmFsc2U7XHJcbiAgICAgICAgdGhpcy5ub0RhdGEgPSB0cnVlO1xyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkXCI+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1oZWFkZXIgZmxleC1jb2x1bW4gYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibXQtNSBtc2dwcm9maWxlXCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSW1hZ2VzL2VkZ2VhcHAgaWNvbi5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC10aXRsZSBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwiY2FyZC1sYWJlbCBtYi0xXCI+e3t2YWx1ZT8uc3RvcmVOYW1lfX0tIFN0b3JlIEluZnJhc3RydWN0dXJlPC9zcGFuPlxyXG4gICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QmFzZWQgb24gZGF0ZSA6IHt7Y3VycmVudERhdGUgfCBkYXRlOidkZC1NTS15eSd9fSA8L3NwYW4+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWJvZHlcIj5cclxuICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPkVkZ2UgQXBwIFN0YXR1cyA8c3BhbiAqbmdJZj1cInZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzXCI+LSB7e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhdHVzID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5hcHBTdGF0dXMgOictLSd9fTwvc3Bhbj48L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHctMTAwIHB4LTEwIHB5LTMgbXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlXCI+QXBwIExvZ2luIFRpbWU8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFN0YXJ0VGltZSA/IHZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwU3RhcnRUaW1lIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgQ2xvc2UgVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uYXBwUXVpdFRpbWUgPyB2aWV3RWRnZUFwcExvZ0xpc3Q/LmFwcFF1aXRUaW1lIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BcHAgQ3Jhc2ggVGltZTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uQXBwQ3Jhc2h0aW1lID8gdmlld0VkZ2VBcHBMb2dMaXN0Py5BcHBDcmFzaHRpbWUgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPlN5c3RlbSBDaGVjayA8L3NwYW4+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJib3JkZXIgYm9yZGVyLWdyYXkgYm9yZGVyLTEgcm91bmRlZC0zIHctMTAwIHB4LTEwIHB5LTMgbXQtMyBkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNhcmQtdmlldyBkLWZsZXggZmxleC1jb2x1bW5cIj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwic3ViLXRpdGxlIFwiPlN5c3RlbSBJZGxlPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0aXRsZVwiPnt7dmlld0VkZ2VBcHBMb2dMaXN0Py5zY3JlZW5TdGF0dXMgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uc2NyZWVuU3RhdHVzIDonLS0nfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC12aWV3IGQtZmxleCBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJzdWItdGl0bGVcIj5BbnRpdmlydXM8L3NwYW4+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRpdGxlXCI+e3t2aWV3RWRnZUFwcExvZ0xpc3Q/LmFudGlWaXJ1cyA/dmlld0VkZ2VBcHBMb2dMaXN0Py5hbnRpVmlydXMgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjYXJkLXZpZXcgZC1mbGV4IGZsZXgtY29sdW1uXCI+XHJcbiAgICAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInN1Yi10aXRsZVwiPkZpbGVzIFB1c2hlZDwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGl0bGVcIj57e3ZpZXdFZGdlQXBwTG9nTGlzdD8uZmlsZXNQdXNoZWQgP3ZpZXdFZGdlQXBwTG9nTGlzdD8uZmlsZXNQdXNoZWQgOictLSd9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtdC0xMFwiPlxyXG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImhlYWRpbmcgbWItNSBmdy1zZW1pYm9sZFwiPkNhbWVyYSBDaGVjazwvc3Bhbj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICA8ZGl2ICpuZ0Zvcj1cImxldCBkZXRhaWxzIG9mIENhbWVyYURldGFpbHNcIiBjbGFzcz1cImNvbC1zbS02IG10LTEwXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1zbS05XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBhbGlnbi1pdGVtcy1jZW50ZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBbbmdDbGFzc109XCIoZGV0YWlscz8uaXNBY3RpdmF0ZWQgJiYgZGV0YWlscy5pc1VwKSA/ICdiZy1zdWNjZXNzJzonYmctZGFuZ2VyJ1wiIGNsYXNzPVwidy0xMHB4IGgtMTBweCBib3JkZXItMCByb3VuZGVkLTMgbWUtMlwiPjwvZGl2PjxzcGFuICpuZ0lmPVwiZGV0YWlscz8uY2FtZXJhTnVtYmVyXCI+e3tkZXRhaWxzPy5jYW1lcmFOdW1iZXJ9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy5jYW1lcmFOYW1lXCIgY2xhc3M9XCJiYWRnZSBiYWRnZS1saWdodC1wcmltYXJ5IHRleHQtcHJpbWFyeSBtcy0yXCI+e3tkZXRhaWxzPy5jYW1lcmFOYW1lIHwgdGl0bGVjYXNlfX0gQ2FtZXJhPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJlYW1kYXRlIGZ3LXNlbWlib2xkXCI+PHNwYW4+e3tkZXRhaWxzPy5zdHJlYW1OYW1lfX08L3NwYW4+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgXHJcbiAgICAgICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInctMTAwIG1oLTIwMHB4IHJvdW5kZWQtMyBtdC0zXCIgc3JjPSd7e2RldGFpbHM/LnRodW1ibmFpbEltYWdlfX0nPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cImRldGFpbHM/LmNhcHR1cmVBdFwiIGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPkRhdGUgQWRkZWQgOiB7e2RldGFpbHM/LmNhcHR1cmVBdCB8IGN1c3RvbURhdGVGb3JtYXR9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXRhaWxzPy50aW1lRWxhcHNlZFwiIGNsYXNzPVwic3RyZWFtZGF0ZSBmdy1zZW1pYm9sZFwiPkZyYW1lIFJhdGUgOiB7e2RldGFpbHM/LnRpbWVFbGFwc2VkfX0gU2VjPC9zcGFuPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+ICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwibG9hZGluZ1wiID5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvdyBsb2FkZXIgIGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInNoaW1tZXJcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwid3JhcHBlclwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIHRpdGxlXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgbGlua1wiPjwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN0cm9rZSBhbmltYXRlIGRlc2NyaXB0aW9uXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic2hpbW1lclwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ3cmFwcGVyXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgdGl0bGVcIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdHJva2UgYW5pbWF0ZSBsaW5rXCI+PC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3Ryb2tlIGFuaW1hdGUgZGVzY3JpcHRpb25cIj48L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICAgXHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJub0RhdGEgfHwgIUNhbWVyYURldGFpbHM/Lmxlbmd0aFwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLWxnLTEyIG1iLTNcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlciBmbGV4LWNvbHVtblwiPlxyXG4gICAgICAgICAgICAgICAgICAgICAgICA8aW1nIGNsYXNzPVwiaW1nLXNyYyB3LTI1XCIgc3JjPVwiLi9hc3NldHMvdGFuZ28vSWNvbnMvTm9kYXRhLnN2Z1wiIGFsdD1cIlwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=
@@ -16,16 +16,17 @@ export class EditDetailsComponent {
16
16
  spocDetails;
17
17
  editSpoc;
18
18
  data;
19
+ submit;
19
20
  constructor(activeModel, service, toast, gs) {
20
21
  this.activeModel = activeModel;
21
22
  this.service = service;
22
23
  this.toast = toast;
23
24
  this.gs = gs;
24
25
  this.myForm = new FormGroup({
25
- name: new FormControl(''),
26
+ name: new FormControl('', Validators.required),
26
27
  email: new FormControl('', [
27
28
  Validators.required,
28
- Validators.email
29
+ this.emailValidator
29
30
  ]),
30
31
  contact: new FormControl('', [
31
32
  Validators.required,
@@ -34,6 +35,11 @@ export class EditDetailsComponent {
34
35
  ])
35
36
  });
36
37
  }
38
+ emailValidator(control) {
39
+ const emailRegex = /^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\.[a-zA-Z]{2,}$/;
40
+ const valid = emailRegex.test(control.value);
41
+ return valid ? null : { 'invalidEmail': true };
42
+ }
37
43
  ngOnInit() {
38
44
  if (this.data.edit === true) {
39
45
  this.editSpoc = true;
@@ -52,6 +58,7 @@ export class EditDetailsComponent {
52
58
  get contact() { return this.myForm.get('contact'); }
53
59
  onSubmit() {
54
60
  if (this.myForm.valid) {
61
+ this.submit = false;
55
62
  this.spocDetails = this.myForm.value;
56
63
  if (this.data.edit === true)
57
64
  this.updateEditDetails();
@@ -59,6 +66,7 @@ export class EditDetailsComponent {
59
66
  this.addSingleSpoc();
60
67
  }
61
68
  else {
69
+ this.submit = true;
62
70
  }
63
71
  }
64
72
  updateEditDetails() {
@@ -101,12 +109,12 @@ export class EditDetailsComponent {
101
109
  return (k == 8 || k == 32 || (k >= 48 && k <= 57));
102
110
  }
103
111
  static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EditDetailsComponent, deps: [{ token: i1.NgbActiveModal }, { token: i2.TicketsService }, { token: i3.ToastService }, { token: i4.GlobalStateService }], target: i0.ɵɵFactoryTarget.Component });
104
- static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EditDetailsComponent, selector: "lib-edit-details", inputs: { data: "data" }, ngImport: i0, template: "<div class=\"card pt-5\">\r\n <div class=\"card-header d-grid border border-0\">\r\n <img class=\"mb-3\" src=\"./assets/tango/Images/userProfile.svg\">\r\n <div class=\"header fw-bold-600\"><span *ngIf=\"!editSpoc\">Add User</span><span *ngIf=\"editSpoc\">Edit Details</span></div>\r\n </div>\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label for=\"Username\" class=\"form-label\">User Name</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"name\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input class=\"form-control\" id=\"Email\" formControlName=\"email\">\r\n <div class=\"mt-3\" *ngIf=\"email?.invalid && (email?.dirty || email?.touched)\">\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.required\">Email is required</div>\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.email\">Invalid email format</div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact number</label>\r\n <div class=\"input-group\">\r\n <input type=\"text\" placeholder=\"+91 (555) 000-0000\" minlength=\"10\" maxlength=\"14\" (keypress)=\"omit_special_char($event)\" class=\"form-control\" id=\"contact\" formControlName=\"contact\">\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"contact?.invalid && (contact?.dirty || contact?.touched)\">\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.minlength\">Please enter a valid contact number (min length: 10 characters)</div>\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.required\">Contact is required</div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelPopup()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"><span *ngIf=\"!editSpoc\">Add</span><span *ngIf=\"editSpoc\">Update</span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".header{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}.fw-bold-600{font-weight:600!important}.fw-bold-400{font-weight:400!important}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
112
+ static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.0.8", type: EditDetailsComponent, selector: "lib-edit-details", inputs: { data: "data" }, ngImport: i0, template: "<div class=\"card pt-5\">\r\n <div class=\"card-header d-grid border border-0\">\r\n <img class=\"mb-3\" src=\"./assets/tango/Images/userProfile.svg\">\r\n <div class=\"header fw-bold-600\"><span *ngIf=\"!editSpoc\">Add User</span><span *ngIf=\"editSpoc\">Edit Details</span></div>\r\n </div>\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label for=\"Username\" class=\"form-label\">User Name</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"name\">\r\n <div class=\"mt-3\" *ngIf=\"(myForm.get('name')?.invalid && (myForm.get('name')?.touched)) || (submit&&myForm?.invalid &&myForm.get('name')?.invalid )\">\r\n <div class=\"text-danger\" *ngIf=\"myForm.get('name')?.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input class=\"form-control\" id=\"Email\" formControlName=\"email\">\r\n <div class=\"mt-3\" *ngIf=\"(email?.invalid && (email?.dirty || email?.touched)) || (submit&&myForm?.invalid && email?.invalid)\">\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.required && email?.errors?.invalidEmail\">Email is required</div>\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.invalidEmail && !email?.errors?.required\">Invalid email format</div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact number</label>\r\n <div class=\"input-group\">\r\n <input type=\"text\" placeholder=\"+91 (555) 000-0000\" minlength=\"10\" maxlength=\"14\" (keypress)=\"omit_special_char($event)\" class=\"form-control\" id=\"contact\" formControlName=\"contact\">\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"(contact?.invalid && (contact?.dirty || contact?.touched)) || (submit&&myForm?.invalid && contact?.invalid)\">\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.minlength\">Please enter a valid contact number (min length: 10 characters)</div>\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.required\">Contact is required</div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelPopup()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"><span *ngIf=\"!editSpoc\">Add</span><span *ngIf=\"editSpoc\">Update</span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".header{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}.fw-bold-600{font-weight:600!important}.fw-bold-400{font-weight:400!important}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}\n"], dependencies: [{ kind: "directive", type: i5.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i6.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i6.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: i6.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i6.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i6.MinLengthValidator, selector: "[minlength][formControlName],[minlength][formControl],[minlength][ngModel]", inputs: ["minlength"] }, { kind: "directive", type: i6.MaxLengthValidator, selector: "[maxlength][formControlName],[maxlength][formControl],[maxlength][ngModel]", inputs: ["maxlength"] }, { kind: "directive", type: i6.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i6.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }] });
105
113
  }
106
114
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.0.8", ngImport: i0, type: EditDetailsComponent, decorators: [{
107
115
  type: Component,
108
- args: [{ selector: 'lib-edit-details', template: "<div class=\"card pt-5\">\r\n <div class=\"card-header d-grid border border-0\">\r\n <img class=\"mb-3\" src=\"./assets/tango/Images/userProfile.svg\">\r\n <div class=\"header fw-bold-600\"><span *ngIf=\"!editSpoc\">Add User</span><span *ngIf=\"editSpoc\">Edit Details</span></div>\r\n </div>\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label for=\"Username\" class=\"form-label\">User Name</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"name\">\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input class=\"form-control\" id=\"Email\" formControlName=\"email\">\r\n <div class=\"mt-3\" *ngIf=\"email?.invalid && (email?.dirty || email?.touched)\">\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.required\">Email is required</div>\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.email\">Invalid email format</div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact number</label>\r\n <div class=\"input-group\">\r\n <input type=\"text\" placeholder=\"+91 (555) 000-0000\" minlength=\"10\" maxlength=\"14\" (keypress)=\"omit_special_char($event)\" class=\"form-control\" id=\"contact\" formControlName=\"contact\">\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"contact?.invalid && (contact?.dirty || contact?.touched)\">\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.minlength\">Please enter a valid contact number (min length: 10 characters)</div>\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.required\">Contact is required</div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelPopup()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"><span *ngIf=\"!editSpoc\">Add</span><span *ngIf=\"editSpoc\">Update</span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".header{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}.fw-bold-600{font-weight:600!important}.fw-bold-400{font-weight:400!important}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}\n"] }]
116
+ args: [{ selector: 'lib-edit-details', template: "<div class=\"card pt-5\">\r\n <div class=\"card-header d-grid border border-0\">\r\n <img class=\"mb-3\" src=\"./assets/tango/Images/userProfile.svg\">\r\n <div class=\"header fw-bold-600\"><span *ngIf=\"!editSpoc\">Add User</span><span *ngIf=\"editSpoc\">Edit Details</span></div>\r\n </div>\r\n <div class=\"card-body\">\r\n <form [formGroup]=\"myForm\" (ngSubmit)=\"onSubmit()\">\r\n <div class=\"mb-3\">\r\n <label for=\"Username\" class=\"form-label\">User Name</label>\r\n <input type=\"email\" class=\"form-control\" id=\"Username\" formControlName=\"name\">\r\n <div class=\"mt-3\" *ngIf=\"(myForm.get('name')?.invalid && (myForm.get('name')?.touched)) || (submit&&myForm?.invalid &&myForm.get('name')?.invalid )\">\r\n <div class=\"text-danger\" *ngIf=\"myForm.get('name')?.errors?.required\">Name is required</div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"Email\" class=\"form-label\">Email</label>\r\n <input class=\"form-control\" id=\"Email\" formControlName=\"email\">\r\n <div class=\"mt-3\" *ngIf=\"(email?.invalid && (email?.dirty || email?.touched)) || (submit&&myForm?.invalid && email?.invalid)\">\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.required && email?.errors?.invalidEmail\">Email is required</div>\r\n <div class=\"text-danger\" *ngIf=\"email?.errors?.invalidEmail && !email?.errors?.required\">Invalid email format</div>\r\n </div>\r\n </div>\r\n <div class=\"mb-3\">\r\n <label for=\"contact\" class=\"form-label\">Contact number</label>\r\n <div class=\"input-group\">\r\n <input type=\"text\" placeholder=\"+91 (555) 000-0000\" minlength=\"10\" maxlength=\"14\" (keypress)=\"omit_special_char($event)\" class=\"form-control\" id=\"contact\" formControlName=\"contact\">\r\n </div>\r\n <div class=\"mt-3\" *ngIf=\"(contact?.invalid && (contact?.dirty || contact?.touched)) || (submit&&myForm?.invalid && contact?.invalid)\">\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.minlength\">Please enter a valid contact number (min length: 10 characters)</div>\r\n <div class=\"text-danger\" *ngIf=\"contact?.errors?.required\">Contact is required</div>\r\n </div>\r\n </div>\r\n <div class=\"d-flex justify-content-between\">\r\n <button type=\"reset\" class=\"btn btn-default btn-outline w-50 me-2\" (click)=\"cancelPopup()\">Cancel</button>\r\n <button type=\"submit\" class=\"btn btn-primary w-50 ms-2\"><span *ngIf=\"!editSpoc\">Add</span><span *ngIf=\"editSpoc\">Update</span></button>\r\n </div>\r\n </form>\r\n </div>\r\n</div>\r\n", styles: [".header{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}.fw-bold-600{font-weight:600!important}.fw-bold-400{font-weight:400!important}.select-wrapper{min-width:50px!important}.custom-select{width:auto!important;border-top-right-radius:0!important;border-bottom-right-radius:0!important}input::placeholder{color:var(--Gray-500, #667085);font-size:16px;font-weight:400;line-height:24px}\n"] }]
109
117
  }], ctorParameters: () => [{ type: i1.NgbActiveModal }, { type: i2.TicketsService }, { type: i3.ToastService }, { type: i4.GlobalStateService }], propDecorators: { data: [{
110
118
  type: Input
111
119
  }] } });
112
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRldGFpbHMvZWRpdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRldGFpbHMvZWRpdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBRSxNQUFNLGdCQUFnQixDQUFDOzs7Ozs7OztBQVlwRSxNQUFNLE9BQU8sb0JBQW9CO0lBT1Y7SUFBb0M7SUFBZ0M7SUFBMkI7SUFOcEgsTUFBTSxDQUFZO0lBQ2xCLFdBQVcsQ0FBSztJQUNoQixRQUFRLENBQUs7SUFFSixJQUFJLENBQU07SUFFbkIsWUFBcUIsV0FBMkIsRUFBUyxPQUF1QixFQUFTLEtBQWtCLEVBQVMsRUFBcUI7UUFBcEgsZ0JBQVcsR0FBWCxXQUFXLENBQWdCO1FBQVMsWUFBTyxHQUFQLE9BQU8sQ0FBZ0I7UUFBUyxVQUFLLEdBQUwsS0FBSyxDQUFhO1FBQVMsT0FBRSxHQUFGLEVBQUUsQ0FBbUI7UUFDdkksSUFBSSxDQUFDLE1BQU0sR0FBRyxJQUFJLFNBQVMsQ0FBQztZQUMxQixJQUFJLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxDQUFDO1lBQ3pCLEtBQUssRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUU7Z0JBQ3pCLFVBQVUsQ0FBQyxRQUFRO2dCQUNuQixVQUFVLENBQUMsS0FBSzthQUNqQixDQUFDO1lBQ0YsT0FBTyxFQUFFLElBQUksV0FBVyxD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b21wb25lbnQsIE9uSW5pdCxJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzIH0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xyXG5pbXBvcnQgeyBOZ2JBY3RpdmVNb2RhbCB9IGZyb20gJ0BuZy1ib290c3RyYXAvbmctYm9vdHN0cmFwJztcclxuaW1wb3J0IHsgVGlja2V0c1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy90aWNrZXQtaW5mcmEuc2VydmljZSc7XHJcbmltcG9ydCB7IEdsb2JhbFN0YXRlU2VydmljZSB9IGZyb20gJ3RhbmdvLWFwcC11aS1nbG9iYWwnO1xyXG4vLyBpbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICdwcm9qZWN0cy90YW5nby1hcHAtc2hhcmVkL3NyYy9wdWJsaWMtYXBpJztcclxuaW1wb3J0IHsgVG9hc3RTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLXNoYXJlZCc7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICBzZWxlY3RvcjogJ2xpYi1lZGl0LWRldGFpbHMnLFxyXG4gIHRlbXBsYXRlVXJsOiAnLi9lZGl0LWRldGFpbHMuY29tcG9uZW50Lmh0bWwnLFxyXG4gIHN0eWxlVXJsOiAnLi9lZGl0LWRldGFpbHMuY29tcG9uZW50LnNjc3MnXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBFZGl0RGV0YWlsc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgbXlGb3JtOiBGb3JtR3JvdXA7XHJcbiAgc3BvY0RldGFpbHM6YW55O1xyXG4gIGVkaXRTcG9jOmFueTtcclxuXHJcbiAgQElucHV0KCkgZGF0YTogYW55O1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBhY3RpdmVNb2RlbDogTmdiQWN0aXZlTW9kYWwscHJpdmF0ZSBzZXJ2aWNlOiBUaWNrZXRzU2VydmljZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSkgeyBcclxuICAgIHRoaXMubXlGb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJyksXHJcbiAgICAgIGVtYWlsOiBuZXcgRm9ybUNvbnRyb2woJycsIFtcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLCBcclxuICAgICAgICBWYWxpZGF0b3JzLmVtYWlsXHJcbiAgICAgIF0pLCBcclxuICAgICAgY29udGFjdDogbmV3IEZvcm1Db250cm9sKCcnLCBbXHJcbiAgICAgICAgVmFsaWRhdG9ycy5yZXF1aXJlZCxcclxuICAgICAgICBWYWxpZGF0b3JzLm1heExlbmd0aCgxNCksXHJcbiAgICAgICAgVmFsaWRhdG9ycy5taW5MZW5ndGgoMTApXHJcbiAgICAgICBdKVxyXG4gICAgfSk7XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICBpZih0aGlzLmRhdGEuZWRpdCA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMuZWRpdFNwb2MgPSB0cnVlO1xyXG4gICAgICB0aGlzLm15Rm9ybS5jb250cm9sc1snbmFtZSddLnNldFZhbHVlKHRoaXMuZGF0YS5uYW1lKSxcclxuICAgICAgdGhpcy5teUZvcm0uY29udHJvbHNbJ2VtYWlsJ10uc2V0VmFsdWUodGhpcy5kYXRhLmVtYWlsKSxcclxuICAgICAgdGhpcy5teUZvcm0uY29udHJvbHNbJ2NvbnRhY3QnXS5zZXRWYWx1ZSh0aGlzLmRhdGEuY29udGFjdClcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmVkaXRTcG9jID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubXlGb3JtLmNvbnRyb2xzWyduYW1lJ10uc2V0VmFsdWUoJycpLFxyXG4gICAgICB0aGlzLm15Rm9ybS5jb250cm9sc1snZW1haWwnXS5zZXRWYWx1ZSgnJyksXHJcbiAgICAgIHRoaXMubXlGb3JtLmNvbnRyb2xzWydjb250YWN0J10uc2V0VmFsdWUoJycpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IGVtYWlsKCkgeyByZXR1cm4gdGhpcy5teUZvcm0uZ2V0KCdlbWFpbCcpOyB9XHJcbiAgZ2V0IGNvbnRhY3QoKSB7IHJldHVybiB0aGlzLm15Rm9ybS5nZXQoJ2NvbnRhY3QnKTsgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmKHRoaXMubXlGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zcG9jRGV0YWlscyA9IHRoaXMubXlGb3JtLnZhbHVlXHJcbiAgICAgIGlmKHRoaXMuZGF0YS5lZGl0ID09PSB0cnVlKVxyXG4gICAgICB0aGlzLnVwZGF0ZUVkaXREZXRhaWxzKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgdGhpcy5hZGRTaW5nbGVTcG9jKCk7XHJcbiAgICAgIH1lbHNle1xyXG5cclxuICAgIH1cclxuICB9XHJcblxyXG4gIHVwZGF0ZUVkaXREZXRhaWxzKCl7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCdjbG9zZScpO1xyXG4gICAgdGhpcy5zcG9jRGV0YWlscy5faWQgPSB0aGlzLmRhdGEuc3BvY0lkO1xyXG4gICAgdGhpcy5zZXJ2aWNlLnVwZGF0ZVNwb2ModGhpcy5kYXRhLmlkLHsgc3BvY0RldGFpbDogdGhpcy5zcG9jRGV0YWlsc30pLnN1YnNjcmliZSh7XHJcbiAgICBuZXh0OihyZXM6YW55KSA9PntcclxuICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgdGhpcy50b2FzdC5nZXRTdWNjZXNzVG9hc3QocmVzLm1lc3NhZ2UpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgICBlcnJvcjooZXJyKT0+IHtcclxuICAgICAgaWYoZXJyKXtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgIH1cclxuICAgIH0sXHJcbiAgfSlcclxuICB9XHJcblxyXG4gIGFkZFNpbmdsZVNwb2MoKXtcclxuICAgIHRoaXMuYWN0aXZlTW9kZWwuY2xvc2UoJ2Nsb3NlJyk7XHJcbiAgICB0aGlzLnNlcnZpY2UuYWRkU2luZ2xlU3BvYyh0aGlzLmRhdGEuaWQseyBzcG9jRGV0YWlsOiB0aGlzLnNwb2NEZXRhaWxzfSkuc3Vic2NyaWJlKHtcclxuICAgICAgbmV4dDoocmVzOmFueSk9PntcclxuICAgICAgICBpZihyZXMgJiYgcmVzLmNvZGUgPT0gMjAwKXtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgICAgaWYoZXJyKXtcclxuICAgICAgICAgIHRoaXMudG9hc3QuZ2V0RXJyb3JUb2FzdChlcnIuRXJyb3IpXHJcbiAgICAgICAgfVxyXG4gICAgICB9LFxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIGNhbmNlbFBvcHVwKCl7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCk7XHJcbiAgfVxyXG5cclxuICBvbWl0X3NwZWNpYWxfY2hhcihldmVudDogYW55KSB7XHJcbiAgICB2YXIgaztcclxuICAgIGsgPSBldmVudC5jaGFyQ29kZTsgIC8vICAgICAgICAgayA9IGV2ZW50LmtleUNvZGU7ICAoQm90aCBjYW4gYmUgdXNlZClcclxuICAgIHJldHVybiAoayA9PSA4IHx8IGsgPT0gMzIgfHwgKGsgPj0gNDggJiYgayA8PSA1NykpO1xyXG4gIH1cclxuXHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImNhcmQgcHQtNVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtaGVhZGVyIGQtZ3JpZCBib3JkZXIgYm9yZGVyLTBcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwibWItM1wiIHNyYz1cIi4vYXNzZXRzL3RhbmdvL0ltYWdlcy91c2VyUHJvZmlsZS5zdmdcIj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiaGVhZGVyIGZ3LWJvbGQtNjAwXCI+PHNwYW4gKm5nSWY9XCIhZWRpdFNwb2NcIj5BZGQgVXNlcjwvc3Bhbj48c3BhbiAqbmdJZj1cImVkaXRTcG9jXCI+RWRpdCBEZXRhaWxzPC9zcGFuPjwvZGl2PlxyXG4gICAgPC9kaXY+XHJcbiAgICA8ZGl2IGNsYXNzPVwiY2FyZC1ib2R5XCI+XHJcbiAgICAgICAgPGZvcm0gW2Zvcm1Hcm91cF09XCJteUZvcm1cIiAobmdTdWJtaXQpPVwib25TdWJtaXQoKVwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJVc2VybmFtZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlVzZXIgTmFtZTwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJlbWFpbFwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJVc2VybmFtZVwiIGZvcm1Db250cm9sTmFtZT1cIm5hbWVcIj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiRW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCJlbWFpbD8uaW52YWxpZCAmJiAoZW1haWw/LmRpcnR5IHx8IGVtYWlsPy50b3VjaGVkKVwiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJlbWFpbD8uZXJyb3JzPy5yZXF1aXJlZFwiPkVtYWlsIGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cImVtYWlsPy5lcnJvcnM/LmVtYWlsXCI+SW52YWxpZCBlbWFpbCBmb3JtYXQ8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiY29udGFjdFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkNvbnRhY3QgbnVtYmVyPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJpbnB1dC1ncm91cFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IHR5cGU9XCJ0ZXh0XCIgcGxhY2Vob2xkZXI9XCIrOTEgKDU1NSkgMDAwLTAwMDBcIiBtaW5sZW5ndGg9XCIxMFwiIG1heGxlbmd0aD1cIjE0XCIgKGtleXByZXNzKT1cIm9taXRfc3BlY2lhbF9jaGFyKCRldmVudClcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiY29udGFjdFwiIGZvcm1Db250cm9sTmFtZT1cImNvbnRhY3RcIj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cImNvbnRhY3Q/LmludmFsaWQgJiYgKGNvbnRhY3Q/LmRpcnR5IHx8IGNvbnRhY3Q/LnRvdWNoZWQpXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRleHQtZGFuZ2VyXCIgKm5nSWY9XCJjb250YWN0Py5lcnJvcnM/Lm1pbmxlbmd0aFwiPlBsZWFzZSBlbnRlciBhIHZhbGlkIGNvbnRhY3QgbnVtYmVyIChtaW4gbGVuZ3RoOiAxMCBjaGFyYWN0ZXJzKTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiY29udGFjdD8uZXJyb3JzPy5yZXF1aXJlZFwiPkNvbnRhY3QgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtYmV0d2VlblwiPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwicmVzZXRcIiBjbGFzcz1cImJ0biBidG4tZGVmYXVsdCBidG4tb3V0bGluZSB3LTUwIG1lLTJcIiAoY2xpY2spPVwiY2FuY2VsUG9wdXAoKVwiPkNhbmNlbDwvYnV0dG9uPlxyXG4gICAgICAgICAgICAgICAgPGJ1dHRvbiB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgdy01MCBtcy0yXCI+PHNwYW4gKm5nSWY9XCIhZWRpdFNwb2NcIj5BZGQ8L3NwYW4+PHNwYW4gKm5nSWY9XCJlZGl0U3BvY1wiPlVwZGF0ZTwvc3Bhbj48L2J1dHRvbj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICA8L2Zvcm0+XHJcbiAgICA8L2Rpdj5cclxuPC9kaXY+XHJcbiJdfQ==
120
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZWRpdC1kZXRhaWxzLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRldGFpbHMvZWRpdC1kZXRhaWxzLmNvbXBvbmVudC50cyIsIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLXRpY2tldC11c2VyL3NyYy9saWIvY29tcG9uZW50cy9lZGl0LWRldGFpbHMvZWRpdC1kZXRhaWxzLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQVMsS0FBSyxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3hELE9BQU8sRUFBRSxTQUFTLEVBQUUsV0FBVyxFQUFFLFVBQVUsRUFBbUIsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7QUFZckYsTUFBTSxPQUFPLG9CQUFvQjtJQVFWO0lBQW9DO0lBQWdDO0lBQTJCO0lBUHBILE1BQU0sQ0FBWTtJQUNsQixXQUFXLENBQUs7SUFDaEIsUUFBUSxDQUFLO0lBRUosSUFBSSxDQUFNO0lBQ25CLE1BQU0sQ0FBVTtJQUVoQixZQUFxQixXQUEyQixFQUFTLE9BQXVCLEVBQVMsS0FBa0IsRUFBUyxFQUFxQjtRQUFwSCxnQkFBVyxHQUFYLFdBQVcsQ0FBZ0I7UUFBUyxZQUFPLEdBQVAsT0FBTyxDQUFnQjtRQUFTLFVBQUssR0FBTCxLQUFLLENBQWE7UUFBUyxPQUFFLEdBQUYsRUFBRSxDQUFtQjtRQUN2SSxJQUFJLENBQUMsTUFBTSxHQUFHLElBQUksU0FBUyxDQUFDO1lBQzFCLElBQUksRUFBRSxJQUFJLFdBQVcsQ0FBQyxFQUFFLEVBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQztZQUM3QyxLQUFLLEVBQUUsSUFBSSxXQUFXLENBQUMsRUFBRSxFQUFFO2dCQUN6QixVQUFVLENBQUMsUUFBUTtnQkFDbkIsSUFBSSxDQUFDLGNBQWM7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LElBQUksQ0FBQyxDQUFDO1FBQ04sQ0FBQyxHQUFHLEtBQUssQ0FBQyxRQUFRLENBQUMsQ0FBRSxpREFBaUQ7UUFDdEUsT0FBTyxDQUFDLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLENBQUMsSUFBSSxFQUFFLElBQUksQ0FBQyxJQUFJLEVBQUUsQ0FBQyxDQUFDLENBQUM7SUFDckQsQ0FBQzt1R0FyR1Usb0JBQW9COzJGQUFwQixvQkFBb0Isa0ZDYmpDLGs0RkF1Q0E7OzJGRDFCYSxvQkFBb0I7a0JBTGhDLFNBQVM7K0JBQ0Usa0JBQWtCOzRLQVNuQixJQUFJO3NCQUFaLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uSW5pdCxJbnB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBGb3JtR3JvdXAsIEZvcm1Db250cm9sLCBWYWxpZGF0b3JzLCBBYnN0cmFjdENvbnRyb2wgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IE5nYkFjdGl2ZU1vZGFsIH0gZnJvbSAnQG5nLWJvb3RzdHJhcC9uZy1ib290c3RyYXAnO1xyXG5pbXBvcnQgeyBUaWNrZXRzU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RpY2tldC1pbmZyYS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbi8vIGltcG9ydCB7IFRvYXN0U2VydmljZSB9IGZyb20gJ3Byb2plY3RzL3RhbmdvLWFwcC1zaGFyZWQvc3JjL3B1YmxpYy1hcGknO1xyXG5pbXBvcnQgeyBUb2FzdFNlcnZpY2UgfSBmcm9tICd0YW5nby1hcHAtdWktc2hhcmVkJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnbGliLWVkaXQtZGV0YWlscycsXHJcbiAgdGVtcGxhdGVVcmw6ICcuL2VkaXQtZGV0YWlscy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmw6ICcuL2VkaXQtZGV0YWlscy5jb21wb25lbnQuc2NzcydcclxufSlcclxuZXhwb3J0IGNsYXNzIEVkaXREZXRhaWxzQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcclxuICBteUZvcm06IEZvcm1Hcm91cDtcclxuICBzcG9jRGV0YWlsczphbnk7XHJcbiAgZWRpdFNwb2M6YW55O1xyXG5cclxuICBASW5wdXQoKSBkYXRhOiBhbnk7XHJcbiAgc3VibWl0OiBib29sZWFuO1xyXG5cclxuICBjb25zdHJ1Y3RvciggcHJpdmF0ZSBhY3RpdmVNb2RlbDogTmdiQWN0aXZlTW9kYWwscHJpdmF0ZSBzZXJ2aWNlOiBUaWNrZXRzU2VydmljZSxwcml2YXRlIHRvYXN0OlRvYXN0U2VydmljZSxwcml2YXRlIGdzOkdsb2JhbFN0YXRlU2VydmljZSkgeyBcclxuICAgIHRoaXMubXlGb3JtID0gbmV3IEZvcm1Hcm91cCh7XHJcbiAgICAgIG5hbWU6IG5ldyBGb3JtQ29udHJvbCgnJyxWYWxpZGF0b3JzLnJlcXVpcmVkKSxcclxuICAgICAgZW1haWw6IG5ldyBGb3JtQ29udHJvbCgnJywgW1xyXG4gICAgICAgIFZhbGlkYXRvcnMucmVxdWlyZWQsIFxyXG4gICAgICAgIHRoaXMuZW1haWxWYWxpZGF0b3JcclxuICAgICAgXSksIFxyXG4gICAgICBjb250YWN0OiBuZXcgRm9ybUNvbnRyb2woJycsIFtcclxuICAgICAgICBWYWxpZGF0b3JzLnJlcXVpcmVkLFxyXG4gICAgICAgIFZhbGlkYXRvcnMubWF4TGVuZ3RoKDE0KSxcclxuICAgICAgICBWYWxpZGF0b3JzLm1pbkxlbmd0aCgxMClcclxuICAgICAgIF0pXHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIGVtYWlsVmFsaWRhdG9yKGNvbnRyb2w6IEFic3RyYWN0Q29udHJvbCk6IHsgW2tleTogc3RyaW5nXTogYW55IH0gfCBudWxsIHtcclxuICAgIGNvbnN0IGVtYWlsUmVnZXggPSAvXlthLXpBLVowLTkuXyUrLV0rQFthLXpBLVowLTkuLV0rXFwuW2EtekEtWl17Mix9JC87XHJcbiAgICBjb25zdCB2YWxpZCA9IGVtYWlsUmVnZXgudGVzdChjb250cm9sLnZhbHVlKTtcclxuICAgIHJldHVybiB2YWxpZCA/IG51bGwgOiB7ICdpbnZhbGlkRW1haWwnOiB0cnVlIH07XHJcbiAgfVxyXG4gIFxyXG4gIG5nT25Jbml0KCl7XHJcbiAgICBpZih0aGlzLmRhdGEuZWRpdCA9PT0gdHJ1ZSl7XHJcbiAgICAgIHRoaXMuZWRpdFNwb2MgPSB0cnVlO1xyXG4gICAgICB0aGlzLm15Rm9ybS5jb250cm9sc1snbmFtZSddLnNldFZhbHVlKHRoaXMuZGF0YS5uYW1lKSxcclxuICAgICAgdGhpcy5teUZvcm0uY29udHJvbHNbJ2VtYWlsJ10uc2V0VmFsdWUodGhpcy5kYXRhLmVtYWlsKSxcclxuICAgICAgdGhpcy5teUZvcm0uY29udHJvbHNbJ2NvbnRhY3QnXS5zZXRWYWx1ZSh0aGlzLmRhdGEuY29udGFjdClcclxuICAgIH1lbHNle1xyXG4gICAgICB0aGlzLmVkaXRTcG9jID0gZmFsc2U7XHJcbiAgICAgIHRoaXMubXlGb3JtLmNvbnRyb2xzWyduYW1lJ10uc2V0VmFsdWUoJycpLFxyXG4gICAgICB0aGlzLm15Rm9ybS5jb250cm9sc1snZW1haWwnXS5zZXRWYWx1ZSgnJyksXHJcbiAgICAgIHRoaXMubXlGb3JtLmNvbnRyb2xzWydjb250YWN0J10uc2V0VmFsdWUoJycpXHJcbiAgICB9XHJcblxyXG4gIH1cclxuXHJcbiAgZ2V0IGVtYWlsKCkgeyByZXR1cm4gdGhpcy5teUZvcm0uZ2V0KCdlbWFpbCcpOyB9XHJcbiAgZ2V0IGNvbnRhY3QoKSB7IHJldHVybiB0aGlzLm15Rm9ybS5nZXQoJ2NvbnRhY3QnKTsgfVxyXG5cclxuICBvblN1Ym1pdCgpIHtcclxuICAgIGlmKHRoaXMubXlGb3JtLnZhbGlkKXtcclxuICAgICAgdGhpcy5zdWJtaXQgPSBmYWxzZTtcclxuICAgICAgdGhpcy5zcG9jRGV0YWlscyA9IHRoaXMubXlGb3JtLnZhbHVlXHJcbiAgICAgIGlmKHRoaXMuZGF0YS5lZGl0ID09PSB0cnVlKVxyXG4gICAgICB0aGlzLnVwZGF0ZUVkaXREZXRhaWxzKCk7XHJcbiAgICAgIGVsc2VcclxuICAgICAgdGhpcy5hZGRTaW5nbGVTcG9jKCk7XHJcbiAgICAgIH1lbHNle1xyXG4gICAgICAgdGhpcy5zdWJtaXQgPSB0cnVlOyAgXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICB1cGRhdGVFZGl0RGV0YWlscygpe1xyXG4gICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgnY2xvc2UnKTtcclxuICAgIHRoaXMuc3BvY0RldGFpbHMuX2lkID0gdGhpcy5kYXRhLnNwb2NJZDtcclxuICAgIHRoaXMuc2VydmljZS51cGRhdGVTcG9jKHRoaXMuZGF0YS5pZCx7IHNwb2NEZXRhaWw6IHRoaXMuc3BvY0RldGFpbHN9KS5zdWJzY3JpYmUoe1xyXG4gICAgbmV4dDoocmVzOmFueSkgPT57XHJcbiAgICAgIGlmKHJlcyAmJiByZXMuY29kZSA9PSAyMDApe1xyXG4gICAgICAgIHRoaXMudG9hc3QuZ2V0U3VjY2Vzc1RvYXN0KHJlcy5tZXNzYWdlKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gICAgZXJyb3I6KGVycik9PiB7XHJcbiAgICAgIGlmKGVycil7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICB9XHJcbiAgICB9LFxyXG4gIH0pXHJcbiAgfVxyXG5cclxuICBhZGRTaW5nbGVTcG9jKCl7XHJcbiAgICB0aGlzLmFjdGl2ZU1vZGVsLmNsb3NlKCdjbG9zZScpO1xyXG4gICAgdGhpcy5zZXJ2aWNlLmFkZFNpbmdsZVNwb2ModGhpcy5kYXRhLmlkLHsgc3BvY0RldGFpbDogdGhpcy5zcG9jRGV0YWlsc30pLnN1YnNjcmliZSh7XHJcbiAgICAgIG5leHQ6KHJlczphbnkpPT57XHJcbiAgICAgICAgaWYocmVzICYmIHJlcy5jb2RlID09IDIwMCl7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldFN1Y2Nlc3NUb2FzdChyZXMubWVzc2FnZSlcclxuICAgICAgICB9XHJcbiAgICAgIH0sXHJcbiAgICAgIGVycm9yOihlcnIpPT4ge1xyXG4gICAgICAgIGlmKGVycil7XHJcbiAgICAgICAgICB0aGlzLnRvYXN0LmdldEVycm9yVG9hc3QoZXJyLkVycm9yKVxyXG4gICAgICAgIH1cclxuICAgICAgfSxcclxuICAgIH0pXHJcbiAgfVxyXG5cclxuICBjYW5jZWxQb3B1cCgpe1xyXG4gICAgdGhpcy5hY3RpdmVNb2RlbC5jbG9zZSgpO1xyXG4gIH1cclxuXHJcbiAgb21pdF9zcGVjaWFsX2NoYXIoZXZlbnQ6IGFueSkge1xyXG4gICAgdmFyIGs7XHJcbiAgICBrID0gZXZlbnQuY2hhckNvZGU7ICAvLyAgICAgICAgIGsgPSBldmVudC5rZXlDb2RlOyAgKEJvdGggY2FuIGJlIHVzZWQpXHJcbiAgICByZXR1cm4gKGsgPT0gOCB8fCBrID09IDMyIHx8IChrID49IDQ4ICYmIGsgPD0gNTcpKTtcclxuICB9XHJcblxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJjYXJkIHB0LTVcIj5cclxuICAgIDxkaXYgY2xhc3M9XCJjYXJkLWhlYWRlciBkLWdyaWQgYm9yZGVyIGJvcmRlci0wXCI+XHJcbiAgICAgICAgPGltZyBjbGFzcz1cIm1iLTNcIiBzcmM9XCIuL2Fzc2V0cy90YW5nby9JbWFnZXMvdXNlclByb2ZpbGUuc3ZnXCI+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImhlYWRlciBmdy1ib2xkLTYwMFwiPjxzcGFuICpuZ0lmPVwiIWVkaXRTcG9jXCI+QWRkIFVzZXI8L3NwYW4+PHNwYW4gKm5nSWY9XCJlZGl0U3BvY1wiPkVkaXQgRGV0YWlsczwvc3Bhbj48L2Rpdj5cclxuICAgIDwvZGl2PlxyXG4gICAgPGRpdiBjbGFzcz1cImNhcmQtYm9keVwiPlxyXG4gICAgICAgIDxmb3JtIFtmb3JtR3JvdXBdPVwibXlGb3JtXCIgKG5nU3VibWl0KT1cIm9uU3VibWl0KClcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm1iLTNcIj5cclxuICAgICAgICAgICAgICA8bGFiZWwgZm9yPVwiVXNlcm5hbWVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Vc2VyIE5hbWU8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwiZW1haWxcIiBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiVXNlcm5hbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJuYW1lXCI+XHJcbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cIm10LTNcIiAqbmdJZj1cIihteUZvcm0uZ2V0KCduYW1lJyk/LmludmFsaWQgJiYgKG15Rm9ybS5nZXQoJ25hbWUnKT8udG91Y2hlZCkpIHx8IChzdWJtaXQmJm15Rm9ybT8uaW52YWxpZCAmJm15Rm9ybS5nZXQoJ25hbWUnKT8uaW52YWxpZCApXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cIm15Rm9ybS5nZXQoJ25hbWUnKT8uZXJyb3JzPy5yZXF1aXJlZFwiPk5hbWUgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtYi0zXCI+XHJcbiAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cIkVtYWlsXCIgY2xhc3M9XCJmb3JtLWxhYmVsXCI+RW1haWw8L2xhYmVsPlxyXG4gICAgICAgICAgICAgIDxpbnB1dCBjbGFzcz1cImZvcm0tY29udHJvbFwiIGlkPVwiRW1haWxcIiBmb3JtQ29udHJvbE5hbWU9XCJlbWFpbFwiPlxyXG4gICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCIoZW1haWw/LmludmFsaWQgJiYgKGVtYWlsPy5kaXJ0eSB8fCBlbWFpbD8udG91Y2hlZCkpIHx8IChzdWJtaXQmJm15Rm9ybT8uaW52YWxpZCAmJiBlbWFpbD8uaW52YWxpZClcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZW1haWw/LmVycm9ycz8ucmVxdWlyZWQgJiYgZW1haWw/LmVycm9ycz8uaW52YWxpZEVtYWlsXCI+RW1haWwgaXMgcmVxdWlyZWQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiZW1haWw/LmVycm9ycz8uaW52YWxpZEVtYWlsICYmICFlbWFpbD8uZXJyb3JzPy5yZXF1aXJlZFwiPkludmFsaWQgZW1haWwgZm9ybWF0PC9kaXY+XHJcbiAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwibWItM1wiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGZvcj1cImNvbnRhY3RcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Db250YWN0IG51bWJlcjwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiaW5wdXQtZ3JvdXBcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCB0eXBlPVwidGV4dFwiIHBsYWNlaG9sZGVyPVwiKzkxICg1NTUpIDAwMC0wMDAwXCIgbWlubGVuZ3RoPVwiMTBcIiBtYXhsZW5ndGg9XCIxNFwiIChrZXlwcmVzcyk9XCJvbWl0X3NwZWNpYWxfY2hhcigkZXZlbnQpXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cImNvbnRhY3RcIiBmb3JtQ29udHJvbE5hbWU9XCJjb250YWN0XCI+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJtdC0zXCIgKm5nSWY9XCIoY29udGFjdD8uaW52YWxpZCAmJiAoY29udGFjdD8uZGlydHkgfHwgY29udGFjdD8udG91Y2hlZCkpIHx8IChzdWJtaXQmJm15Rm9ybT8uaW52YWxpZCAmJiBjb250YWN0Py5pbnZhbGlkKVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJ0ZXh0LWRhbmdlclwiICpuZ0lmPVwiY29udGFjdD8uZXJyb3JzPy5taW5sZW5ndGhcIj5QbGVhc2UgZW50ZXIgYSB2YWxpZCBjb250YWN0IG51bWJlciAobWluIGxlbmd0aDogMTAgY2hhcmFjdGVycyk8L2Rpdj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGV4dC1kYW5nZXJcIiAqbmdJZj1cImNvbnRhY3Q/LmVycm9ycz8ucmVxdWlyZWRcIj5Db250YWN0IGlzIHJlcXVpcmVkPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJkLWZsZXgganVzdGlmeS1jb250ZW50LWJldHdlZW5cIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInJlc2V0XCIgY2xhc3M9XCJidG4gYnRuLWRlZmF1bHQgYnRuLW91dGxpbmUgdy01MCBtZS0yXCIgKGNsaWNrKT1cImNhbmNlbFBvcHVwKClcIj5DYW5jZWw8L2J1dHRvbj5cclxuICAgICAgICAgICAgICAgIDxidXR0b24gdHlwZT1cInN1Ym1pdFwiIGNsYXNzPVwiYnRuIGJ0bi1wcmltYXJ5IHctNTAgbXMtMlwiPjxzcGFuICpuZ0lmPVwiIWVkaXRTcG9jXCI+QWRkPC9zcGFuPjxzcGFuICpuZ0lmPVwiZWRpdFNwb2NcIj5VcGRhdGU8L3NwYW4+PC9idXR0b24+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9mb3JtPlxyXG4gICAgPC9kaXY+XHJcbjwvZGl2PlxyXG4iXX0=