tango-app-ui-manage-settings 3.0.64-dev → 3.0.65-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.
|
@@ -175,10 +175,10 @@ export class FeatureConfigurationComponent {
|
|
|
175
175
|
this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' });
|
|
176
176
|
}
|
|
177
177
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FeatureConfigurationComponent, deps: [{ token: i1.FormBuilder }, { token: i2.ClientApiService }, { token: i3.GlobalStateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
178
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FeatureConfigurationComponent, selector: "lib-feature-configuration", ngImport: i0, template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to view Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to view Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
178
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FeatureConfigurationComponent, selector: "lib-feature-configuration", ngImport: i0, template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to disable Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to disable Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: i5.ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
179
179
|
}
|
|
180
180
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FeatureConfigurationComponent, decorators: [{
|
|
181
181
|
type: Component,
|
|
182
|
-
args: [{ selector: 'lib-feature-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to view Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to view Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
182
|
+
args: [{ selector: 'lib-feature-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to disable Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to disable Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
183
183
|
}], ctorParameters: () => [{ type: i1.FormBuilder }, { type: i2.ClientApiService }, { type: i3.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
|
|
184
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvZmVhdHVyZS1jb25maWd1cmF0aW9uL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2ZlYXR1cmUtY29uZmlndXJhdGlvbi9mZWF0dXJlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyw2QkFBNkI7SUFnRXBCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBOURWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFHYixlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7S0FDN0IsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUE7SUFFRCxxQkFBcUIsR0FBRztRQUN0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUM5QixDQUFBO0lBRUQsaUJBQWlCLEdBQUc7UUFDbEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7S0FDOUIsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0tBQzNCLENBQUE7SUFFRCxlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVB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RUQsUUFBUTtRQUNOLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3JKLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3ZKLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtJQUNwSSxDQUFDO3dHQS9MVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixpRUNqQjFDLG8xWEF3TE87OzRGRHZLTSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmVhdHVyZS1jb25maWd1cmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtOiBGb3JtR3JvdXBcclxuICBtaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZTogc3RyaW5nO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRheWpzID0gZGF5anNcclxuXHJcblxyXG4gIGluZnJhQWxlcnRWYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDEsIGxhYmVsOiBcIjEgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDIsIGxhYmVsOiBcIjIgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDQsIGxhYmVsOiBcIjQgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgaHJzXCIgfVxyXG4gIF1cclxuXHJcbiAgaW5mcmFBbGVydENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPFwiLCBsYWJlbDogXCI8XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPlwiLCBsYWJlbDogXCI+XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPT5cIiwgbGFiZWw6IFwiPSA+XCIgfSxcclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfVxyXG4gIF1cclxuXHJcbiAgYm91bmNlZExpbWl0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIG1pblwiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMywgbGFiZWw6IFwiMyBtaW5zXCIgfSxcclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25Db25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH1cclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25WYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxMCwgbGFiZWw6IFwiMTAgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxNSwgbGFiZWw6IFwiMTUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyMCwgbGFiZWw6IFwiMjAgbWluc1wiIH1cclxuICBdXHJcblxyXG4gIGJpbGxhYmxlQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOiBcIkZvb3RmYWxsIENvdW50XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6IFwiRW5nYWdlcnMgQ291bnRcIiB9LFxyXG4gIF1cclxuXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY29udmVyc2lvblwiLCBsYWJlbDogXCJFbmdhZ2VycyAtIENvbnZlcnNpb25cIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJncm91cC1jb252ZXJzaW9uXCIsIGxhYmVsOiBcIkJpbGxhYmxlIEVudGl0aWVzIC0gQ29udmVyc2lvblwiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpcIkZvb3RmYWxsIENvdW50XCJ9LFxyXG4gICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6XCJFbmdhZ2VycyBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImJpbGxhYmxlLWVudGl0aWVzXCIsIGxhYmVsOlwiQmlsbGFibGUgRW50aXRpZXNcIn0sXHJcbiAgXVxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBpZiAocmVzLnR5cGUgPT09ICdpbnB1dCcgJiYgcmVzLmZvcm0gPT09ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhdGNoRm9ybShyZXMudmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgb3BlbjogW10sXHJcbiAgICAgIGNsb3NlOiBbXSxcclxuICAgICAgaW5mcmFBbGVydENvbmRpdGlvbjogW10sXHJcbiAgICAgIGluZnJhQWxlcnRWYWx1ZTogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdENvbmRpdGlvbjogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdFZhbHVlOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNvbmRpdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25WYWx1ZTogW10sXHJcbiAgICAgIGJpbGxhYmxlQ2FsY3VsYXRpb246IFtdLFxyXG4gICAgICBtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgaXNOb3JtYWxpemVkOiBbXSxcclxuICAgICAgaXNQYXNzZXJCeURhdGE6IFtdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5OiBbXSxcclxuICAgICAgaXNFeGNsdWRlZEFyZWE6W10sXHJcbiAgICAgIGlzQ2FtZXJhRGlzYWJsZWQ6IFtmYWxzZV0sXHJcbiAgICAgIGlzYmlsbGluZ0Rpc2FibGVkOltmYWxzZV0sXHJcbiAgICAgIHVwZGF0ZUZlYXR1cmVDb25maWc6W11cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdib3VuY2VkTGltaXRWYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5ib3VuY2VkQ29uZmlnVGltZUNoYW5nZShlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25WYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgICAvLyB0aGlzLnNldENvbnZlcnNpb25DYWxjdWxhdGlvbihlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBhdGNoRm9ybShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICAuLi5kYXRhXHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGJvdW5jZWRDb25maWdUaW1lQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjNcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb252ZXJzaW9uQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDEwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE1OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDIwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oY29udmVyc2lvblZhbDpudW1iZXIpe1xyXG4gICAgdGhpcy5jb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICAgIHt2YWx1ZTpcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRm9vdGZhbGwgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9FbmdhZ2VycyBDb3VudGB9LFxyXG4gICAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0JpbGxhYmxlIEVudGl0aWVzYH0sXHJcbiAgICBdXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZSh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybT8udmFsdWUuY29udmVyc2lvbkNhbGN1bGF0aW9uKSBcclxuICB9XHJcblxyXG5cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnY2FuY2VsJywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVxyXG5cclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUub3BlbiA9IHRoaXMuZGF5anMoYDE5OTEtMDEtMDEgJHt0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5vcGVufWAsJ1lZWVktTU0tREQgSEg6bW0nKS5mb3JtYXQoXCJISDptbTpzc1wiKVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuY2xvc2UgPSB0aGlzLmRheWpzKGAxOTkxLTAxLTAxICR7dGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuY2xvc2V9YCwnWVlZWS1NTS1ERCBISDptbScpLmZvcm1hdChcIkhIOm1tOnNzXCIpICAgIFxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUsIHR5cGU6ICdzdWJtaXQnLCBmb3JtOiAnZmVhdHVyZS1jb25maWd1cmF0aW9uJyB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfY29uZmlndXJhdGlvbl9pc0VkaXQgXCIgPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZWRcIiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ3VwZGF0ZUZlYXR1cmVDb25maWcnKT8udmFsdWUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGVkID8gZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmVuYWJsZSgpIDogZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGFsaWduLWl0ZW1zLWVuZFwiPjxzcGFuIGNsYXNzPVwibWUtMlwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjU3OV8yNTEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjE2NyAyLjQ5OTkzQzE0LjM4NTkgMi4yODEwNiAxNC42NDU3IDIuMTA3NDQgMTQuOTMxNyAxLjk4ODk5QzE1LjIxNzYgMS44NzA1NCAxNS41MjQxIDEuODA5NTcgMTUuODMzNyAxLjgwOTU3QzE2LjE0MzIgMS44MDk1NyAxNi40NDk3IDEuODcwNTQgMTYuNzM1NyAxLjk4ODk5QzE3LjAyMTYgMi4xMDc0NCAxNy4yODE1IDIuMjgxMDYgMTcuNTAwMyAyLjQ5OTkzQzE3LjcxOTIgMi43MTg4IDE3Ljg5MjggMi45Nzg2MyAxOC4wMTEzIDMuMjY0NkMxOC4xMjk3IDMuNTUwNTcgMTguMTkwNyAzLjg1NzA2IDE4LjE5MDcgNC4xNjY1OUMxOC4xOTA3IDQuNDc2MTIgMTguMTI5NyA0Ljc4MjYyIDE4LjAxMTMgNS4wNjg1OUMxNy44OTI4IDUuMzU0NTUgMTcuNzE5MiA1LjYxNDM5IDE3LjUwMDMgNS44MzMyNkw2LjI1MDMzIDE3LjA4MzNMMS42NjY5OSAxOC4zMzMzTDIuOTE2OTkgMTMuNzQ5OUwxNC4xNjcgMi40OTk5M1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yNTc5XzI1MTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPkVkaXQgRGV0YWlsczwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm9wZW5cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdG9yZSBPcGVuIFRpbWUgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVuXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIm9wZW5cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjbG9zZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN0b3JlIENsb3NlIFRpbWUgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJjbG9zZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjbG9zZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkluZnJhIEFsZXJ0IDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImluZnJhQWxlcnRDb25kaXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiaW5mcmFBbGVydENvbmRpdGlvblwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmZyYUFsZXJ0VmFsdWVcIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiaW5mcmFBbGVydFZhbHVlXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkb3duVGltZVR5cGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Cb3VuY2VkIExpbWl0PHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYm91bmNlZExpbWl0Q29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImJvdW5jZWRMaW1pdENvbmRpdGlvblwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJib3VuY2VkTGltaXRWYWx1ZVwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJib3VuY2VkTGltaXRWYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiTWluRmlsZXNDb3VudFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk1pc3NlZCBPcHBvcnR1bml0eSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBtb2NrLWlucHV0IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3ttaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSB9fSAtIHt7bWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lfX1cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29udmVyc2lvbiA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb252ZXJzaW9uQ29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImNvbnZlcnNpb25Db25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY29udmVyc2lvblZhbHVlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImNvbnZlcnNpb25WYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJiaWxsYWJsZUNhbGN1bGF0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImJpbGxhYmxlQ2FsY3VsYXRpb25cIiBbbGFiZWxdPVwiJ0JpbGxhYmxlIENhbGN1bGF0aW9ucydcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidNaXNzZWQgT3Bwb3J0dW5pdHkgQ2FsY3VsYXRpb24nXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbnZlcnNpb25DYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uQ2FsY3VsYXRpb25cIiBbbGFiZWxdPVwiJ0NvbnZlcnNpb24gQ2FsY3VsYXRpb25zJ1wiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Tm9ybWFsaXplZCBkYXRhIGR1cmluZyBkb3dudGltZTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBub3JtYWxpemVkIGRhdGEgZHVyaW5nIGRvd250aW1lLiA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5QYXNzZXItYnkgZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBQYXNzZXJieSBkYXRhLiA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Rm9vdGZhbGwgRGlyZWN0b3J5PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IEZvb3RmYWxsIGRpcmVjdG9yeSA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+RXhjbHVkZWQgQXJlYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgRXhjbHVkZWQgQXJlYSA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05vcm1hbGl6ZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImlzTm9ybWFsaXplZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc05vcm1hbGl6ZWRcIj4gU2hvdyBOb3JtYWxpemVkIGRhdGFcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zIG1iLTUgcHgtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzUGFzc2VyQnlEYXRhXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1Bhc3NlckJ5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1Bhc3NlckJ5RGF0YVwiPiBTaG93IFBhc3Nlci1ieSBkYXRhXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIj4gU2hvdyBGb290ZmFsbCBEaXJlY3RvcnlcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICBcclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0V4Y2x1ZGVkQXJlYVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNFeGNsdWRlZEFyZWFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRXhsdWRlZEFyZWFcIj4gU2hvdyBFeGNsdWRlZCBBcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Q2FtZXJhIE1hbmFnZW1lbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IENhbWVyYSBNYW5hZ2VtZW50IDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0NhbWVyYURpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0NhbWVyYURpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0NhbWVyYURpc2FibGVkXCI+IFNob3cgQ2FtZXJhc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+QmlsbGluZyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IEJpbGxpbmcgTWFuYWdlbWVudCA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc2JpbGxpbmdEaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzYmlsbGluZ0Rpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNiaWxsaW5nRGlzYWJsZWRcIj4gU2hvdyBCaWxsaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZW5hYmxlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG10LTEgbWUtNFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICAgICAgICA8YSB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPjxzcGFuPlNhdmUgQ2hhbmdlczwvc3Bhbj48L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZm9ybT4iXX0=
|
|
184
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3RhbmdvLW1hbmFnZS1zZXR0aW5ncy9zcmMvbGliL2NvbXBvbmVudHMvY29uZmlndXJhdGlvbnMvZmVhdHVyZS1jb25maWd1cmF0aW9uL2ZlYXR1cmUtY29uZmlndXJhdGlvbi5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90YW5nby1tYW5hZ2Utc2V0dGluZ3Mvc3JjL2xpYi9jb21wb25lbnRzL2NvbmZpZ3VyYXRpb25zL2ZlYXR1cmUtY29uZmlndXJhdGlvbi9mZWF0dXJlLWNvbmZpZ3VyYXRpb24uY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFxQixTQUFTLEVBQWEsTUFBTSxlQUFlLENBQUM7QUFHeEUsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFFMUMsT0FBUSxLQUFLLE1BQU0sT0FBTyxDQUFDO0FBQzNCLE9BQU8saUJBQWlCLENBQUM7QUFDekIsT0FBTyxHQUFHLE1BQU0sa0JBQWtCLENBQUM7QUFDbkMsT0FBTyxRQUFRLE1BQU0sdUJBQXVCLENBQUM7Ozs7Ozs7QUFDN0MsS0FBSyxDQUFDLE1BQU0sQ0FBQyxHQUFHLENBQUMsQ0FBQztBQUNsQixLQUFLLENBQUMsTUFBTSxDQUFDLFFBQVEsQ0FBQyxDQUFDO0FBT3ZCLE1BQU0sT0FBTyw2QkFBNkI7SUFnRXBCO0lBQXlCO0lBQXFDO0lBQ3hFO0lBOURWLHdCQUF3QixDQUFXO0lBQ25DLDBCQUEwQixDQUFTO0lBQ25DLHdCQUF3QixDQUFTO0lBQ2hCLFFBQVEsR0FBRyxJQUFJLE9BQU8sRUFBRSxDQUFDO0lBQzFDLEtBQUssR0FBRyxLQUFLLENBQUE7SUFHYixlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7S0FDN0IsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO1FBQzFCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO1FBQzdCLEVBQUUsS0FBSyxFQUFFLElBQUksRUFBRSxLQUFLLEVBQUUsS0FBSyxFQUFFO0tBQzlCLENBQUE7SUFFRCxxQkFBcUIsR0FBRztRQUN0QixFQUFFLEtBQUssRUFBRSxJQUFJLEVBQUUsS0FBSyxFQUFFLEtBQUssRUFBRTtLQUM5QixDQUFBO0lBRUQsaUJBQWlCLEdBQUc7UUFDbEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxPQUFPLEVBQUU7UUFDNUIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7S0FDOUIsQ0FBQTtJQUVELG1CQUFtQixHQUFHO1FBQ3BCLEVBQUUsS0FBSyxFQUFFLEdBQUcsRUFBRSxLQUFLLEVBQUUsR0FBRyxFQUFFO0tBQzNCLENBQUE7SUFFRCxlQUFlLEdBQUc7UUFDaEIsRUFBRSxLQUFLLEVBQUUsQ0FBQyxFQUFFLEtBQUssRUFBRSxRQUFRLEVBQUU7UUFDN0IsRUFBRSxLQUFLLEVB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RUQsUUFBUTtRQUNOLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsSUFBSSxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLElBQUksRUFBRSxFQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3JKLElBQUksQ0FBQyx3QkFBd0IsQ0FBQyxLQUFLLENBQUMsS0FBSyxHQUFHLElBQUksQ0FBQyxLQUFLLENBQUMsY0FBYyxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxDQUFDLEtBQUssRUFBRSxFQUFDLGtCQUFrQixDQUFDLENBQUMsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFBO1FBQ3ZKLElBQUksQ0FBQyxVQUFVLENBQUMsY0FBYyxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssRUFBRSxJQUFJLENBQUMsd0JBQXdCLENBQUMsS0FBSyxFQUFFLElBQUksRUFBRSxRQUFRLEVBQUUsSUFBSSxFQUFFLHVCQUF1QixFQUFFLENBQUMsQ0FBQTtJQUNwSSxDQUFDO3dHQS9MVSw2QkFBNkI7NEZBQTdCLDZCQUE2QixpRUNqQjFDLDAxWEF3TE87OzRGRHZLTSw2QkFBNkI7a0JBTHpDLFNBQVM7K0JBQ0UsMkJBQTJCIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ2hhbmdlRGV0ZWN0b3JSZWYsIENvbXBvbmVudCwgT25EZXN0cm95IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtR3JvdXAgfSBmcm9tICdAYW5ndWxhci9mb3Jtcyc7XHJcbmltcG9ydCB7IENsaWVudEFwaVNlcnZpY2UgfSBmcm9tICcuLi8uLi8uLi9zZXJ2aWNlcy9jbGllbnQtYXBpLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0IHsgR2xvYmFsU3RhdGVTZXJ2aWNlIH0gZnJvbSAndGFuZ28tYXBwLXVpLWdsb2JhbCc7XHJcbmltcG9ydCAgZGF5anMgZnJvbSBcImRheWpzXCI7XHJcbmltcG9ydCBcImRheWpzL2xvY2FsZS9lblwiO1xyXG5pbXBvcnQgdXRjIGZyb20gXCJkYXlqcy9wbHVnaW4vdXRjXCI7XHJcbmltcG9ydCB0aW1lem9uZSBmcm9tIFwiZGF5anMvcGx1Z2luL3RpbWV6b25lXCI7XHJcbmRheWpzLmV4dGVuZCh1dGMpO1xyXG5kYXlqcy5leHRlbmQodGltZXpvbmUpO1xyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICdsaWItZmVhdHVyZS1jb25maWd1cmF0aW9uJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybDogJy4vZmVhdHVyZS1jb25maWd1cmF0aW9uLmNvbXBvbmVudC5zY3NzJ1xyXG59KVxyXG5leHBvcnQgY2xhc3MgRmVhdHVyZUNvbmZpZ3VyYXRpb25Db21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG5cclxuXHJcbiAgZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtOiBGb3JtR3JvdXBcclxuICBtaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZTogc3RyaW5nO1xyXG4gIG1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZTogc3RyaW5nO1xyXG4gIHByaXZhdGUgcmVhZG9ubHkgZGVzdHJveSQgPSBuZXcgU3ViamVjdCgpO1xyXG4gIGRheWpzID0gZGF5anNcclxuXHJcblxyXG4gIGluZnJhQWxlcnRWYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDEsIGxhYmVsOiBcIjEgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDIsIGxhYmVsOiBcIjIgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDMsIGxhYmVsOiBcIjMgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDQsIGxhYmVsOiBcIjQgaHJzXCIgfSxcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgaHJzXCIgfVxyXG4gIF1cclxuXHJcbiAgaW5mcmFBbGVydENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPFwiLCBsYWJlbDogXCI8XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPlwiLCBsYWJlbDogXCI+XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiPT5cIiwgbGFiZWw6IFwiPSA+XCIgfSxcclxuICBdXHJcblxyXG4gIGJvdW5jZWRMaW1pdENvbmRpdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiPD1cIiwgbGFiZWw6IFwiPCA9XCIgfVxyXG4gIF1cclxuXHJcbiAgYm91bmNlZExpbWl0VmFsdWUgPSBbXHJcbiAgICB7IHZhbHVlOiAxLCBsYWJlbDogXCIxIG1pblwiIH0sXHJcbiAgICB7IHZhbHVlOiAyLCBsYWJlbDogXCIyIG1pbnNcIiB9LFxyXG4gICAgeyB2YWx1ZTogMywgbGFiZWw6IFwiMyBtaW5zXCIgfSxcclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25Db25kaXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcIj5cIiwgbGFiZWw6IFwiPlwiIH1cclxuICBdXHJcblxyXG4gIGNvbnZlcnNpb25WYWx1ZSA9IFtcclxuICAgIHsgdmFsdWU6IDUsIGxhYmVsOiBcIjUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxMCwgbGFiZWw6IFwiMTAgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAxNSwgbGFiZWw6IFwiMTUgbWluc1wiIH0sXHJcbiAgICB7IHZhbHVlOiAyMCwgbGFiZWw6IFwiMjAgbWluc1wiIH1cclxuICBdXHJcblxyXG4gIGJpbGxhYmxlQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7IHZhbHVlOiBcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOiBcIkZvb3RmYWxsIENvdW50XCIgfSxcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6IFwiRW5nYWdlcnMgQ291bnRcIiB9LFxyXG4gIF1cclxuXHJcbiAgbWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvbiA9IFtcclxuICAgIHsgdmFsdWU6IFwiZW5nYWdlcnMtY29udmVyc2lvblwiLCBsYWJlbDogXCJFbmdhZ2VycyAtIENvbnZlcnNpb25cIiB9LFxyXG4gICAgeyB2YWx1ZTogXCJncm91cC1jb252ZXJzaW9uXCIsIGxhYmVsOiBcIkJpbGxhYmxlIEVudGl0aWVzIC0gQ29udmVyc2lvblwiIH0sXHJcbiAgXVxyXG5cclxuICBjb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICB7dmFsdWU6XCJmb290ZmFsbC1jb3VudFwiLCBsYWJlbDpcIkZvb3RmYWxsIENvdW50XCJ9LFxyXG4gICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6XCJFbmdhZ2VycyBDb3VudFwifSxcclxuICAgIHt2YWx1ZTpcImJpbGxhYmxlLWVudGl0aWVzXCIsIGxhYmVsOlwiQmlsbGFibGUgRW50aXRpZXNcIn0sXHJcbiAgXVxyXG5cclxuXHJcblxyXG4gIGNvbnN0cnVjdG9yKHByaXZhdGUgZmI6IEZvcm1CdWlsZGVyLCBwcml2YXRlIGFwaVNlcnZpY2U6IENsaWVudEFwaVNlcnZpY2UsIHB1YmxpYyBnczogR2xvYmFsU3RhdGVTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBjZDpDaGFuZ2VEZXRlY3RvclJlZlxyXG4gICkge1xyXG4gICAgdGhpcy5pbml0Rm9ybSgpXHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgocmVzKSA9PiB7XHJcbiAgICAgIGlmIChyZXMpIHtcclxuICAgICAgICBpZiAocmVzLnR5cGUgPT09ICdpbnB1dCcgJiYgcmVzLmZvcm0gPT09ICdmZWF0dXJlLWNvbmZpZ3VyYXRpb24nKSB7XHJcbiAgICAgICAgICB0aGlzLnBhdGNoRm9ybShyZXMudmFsdWUpXHJcbiAgICAgICAgfVxyXG4gICAgICB9XHJcbiAgICB9KVxyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgfVxyXG5cclxuXHJcblxyXG4gIGluaXRGb3JtKCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0gPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgb3BlbjogW10sXHJcbiAgICAgIGNsb3NlOiBbXSxcclxuICAgICAgaW5mcmFBbGVydENvbmRpdGlvbjogW10sXHJcbiAgICAgIGluZnJhQWxlcnRWYWx1ZTogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdENvbmRpdGlvbjogW10sXHJcbiAgICAgIGJvdW5jZWRMaW1pdFZhbHVlOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNvbmRpdGlvbjogW10sXHJcbiAgICAgIGNvbnZlcnNpb25WYWx1ZTogW10sXHJcbiAgICAgIGJpbGxhYmxlQ2FsY3VsYXRpb246IFtdLFxyXG4gICAgICBtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgY29udmVyc2lvbkNhbGN1bGF0aW9uOiBbXSxcclxuICAgICAgaXNOb3JtYWxpemVkOiBbXSxcclxuICAgICAgaXNQYXNzZXJCeURhdGE6IFtdLFxyXG4gICAgICBpc0Zvb3RmYWxsRGlyZWN0b3J5OiBbXSxcclxuICAgICAgaXNFeGNsdWRlZEFyZWE6W10sXHJcbiAgICAgIGlzQ2FtZXJhRGlzYWJsZWQ6IFtmYWxzZV0sXHJcbiAgICAgIGlzYmlsbGluZ0Rpc2FibGVkOltmYWxzZV0sXHJcbiAgICAgIHVwZGF0ZUZlYXR1cmVDb25maWc6W11cclxuICAgIH0pO1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZSgpXHJcblxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZ2V0KCdib3VuY2VkTGltaXRWYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkgeyAgICAgICAgXHJcbiAgICAgICAgdGhpcy5ib3VuY2VkQ29uZmlnVGltZUNoYW5nZShlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25WYWx1ZScpPy52YWx1ZUNoYW5nZXMucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpLnN1YnNjcmliZSgoZSkgPT4ge1xyXG4gICAgICBpZiAoZSkge1xyXG4gICAgICAgIHRoaXMuY29udmVyc2lvbkNvbmZpZ1RpbWVDaGFuZ2UoZSlcclxuICAgICAgICAvLyB0aGlzLnNldENvbnZlcnNpb25DYWxjdWxhdGlvbihlKVxyXG4gICAgICB9XHJcblxyXG4gICAgfSlcclxuICB9XHJcblxyXG4gIHBhdGNoRm9ybShkYXRhOiBhbnkpIHtcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLnBhdGNoVmFsdWUoXHJcbiAgICAgIHtcclxuICAgICAgICAuLi5kYXRhXHJcbiAgICAgIH1cclxuICAgIClcclxuICB9XHJcblxyXG4gIGJvdW5jZWRDb25maWdUaW1lQ2hhbmdlKHZhbHVlOiBudW1iZXIpIHtcclxuXHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgMTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MVwiXHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICAgIGNhc2UgMjpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCI+MlwiO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDM6XHJcbiAgICAgICAgdGhpcy5taXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSA9IFwiPjNcIjtcclxuICAgICAgICBicmVhaztcclxuICAgICAgZGVmYXVsdDpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lID0gXCJcIjtcclxuICAgICAgICBicmVhaztcclxuXHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb252ZXJzaW9uQ29uZmlnVGltZUNoYW5nZSh2YWx1ZTogbnVtYmVyKSB7XHJcbiAgICBzd2l0Y2ggKHZhbHVlKSB7XHJcbiAgICAgIGNhc2UgNTpcclxuICAgICAgICB0aGlzLm1pc3NlZE9wcG9ydHVuaXR5RW5kVGltZSA9ICc8PTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDEwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDE1OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MTUnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBjYXNlIDIwOlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJzw9MjAnO1xyXG4gICAgICAgIGJyZWFrO1xyXG4gICAgICBkZWZhdWx0OlxyXG4gICAgICAgIHRoaXMubWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lID0gJyc7XHJcbiAgICAgICAgYnJlYWs7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBzZXRDb252ZXJzaW9uQ2FsY3VsYXRpb24oY29udmVyc2lvblZhbDpudW1iZXIpe1xyXG4gICAgdGhpcy5jb252ZXJzaW9uQ2FsY3VsYXRpb24gPSBbXHJcbiAgICAgIHt2YWx1ZTpcImZvb3RmYWxsLWNvdW50XCIsIGxhYmVsOmAke2NvbnZlcnNpb25WYWx9IG1pbnMvRm9vdGZhbGwgQ291bnRgfSxcclxuICAgICAge3ZhbHVlOlwiZW5nYWdlcnMtY291bnRcIiwgbGFiZWw6YCR7Y29udmVyc2lvblZhbH0gbWlucy9FbmdhZ2VycyBDb3VudGB9LFxyXG4gICAgICB7dmFsdWU6XCJiaWxsYWJsZS1lbnRpdGllc1wiLCBsYWJlbDpgJHtjb252ZXJzaW9uVmFsfSBtaW5zL0JpbGxhYmxlIEVudGl0aWVzYH0sXHJcbiAgICBdXHJcbiAgICB0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ2NvbnZlcnNpb25DYWxjdWxhdGlvbicpPy5zZXRWYWx1ZSh0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybT8udmFsdWUuY29udmVyc2lvbkNhbGN1bGF0aW9uKSBcclxuICB9XHJcblxyXG5cclxuXHJcbiAgb25DYW5jZWwoKSB7XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuY2xpZW50Rm9ybURhdGEubmV4dCh7IHZhbHVlOiBudWxsLCB0eXBlOiAnY2FuY2VsJywgZm9ybTogJ2ZlYXR1cmUtY29uZmlndXJhdGlvbicgfSlcclxuICAgIHRoaXMuZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVxyXG5cclxuICB9XHJcblxyXG4gIG9uU3VibWl0KCkge1xyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUub3BlbiA9IHRoaXMuZGF5anMoYDE5OTEtMDEtMDEgJHt0aGlzLmZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS52YWx1ZS5vcGVufWAsJ1lZWVktTU0tREQgSEg6bW0nKS5mb3JtYXQoXCJISDptbTpzc1wiKVxyXG4gICAgdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuY2xvc2UgPSB0aGlzLmRheWpzKGAxOTkxLTAxLTAxICR7dGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUuY2xvc2V9YCwnWVlZWS1NTS1ERCBISDptbScpLmZvcm1hdChcIkhIOm1tOnNzXCIpICAgIFxyXG4gICAgdGhpcy5hcGlTZXJ2aWNlLmNsaWVudEZvcm1EYXRhLm5leHQoeyB2YWx1ZTogdGhpcy5mZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0udmFsdWUsIHR5cGU6ICdzdWJtaXQnLCBmb3JtOiAnZmVhdHVyZS1jb25maWd1cmF0aW9uJyB9KVxyXG4gIH1cclxuXHJcblxyXG5cclxufVxyXG4iLCI8Zm9ybSBbZm9ybUdyb3VwXT1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybVwiPlxyXG4gICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8uc2V0dGluZ3NfY29uZmlndXJhdGlvbl9pc0VkaXQgXCIgPlxyXG4gICAgICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZGlzYWJsZWRcIiBjbGFzcz1cImNvbC0xMiBtYi01XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCIgZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIiAqbmdJZj1cImZlYXR1cmVDb25maWd1cmF0aW9uRm9ybS5nZXQoJ3VwZGF0ZUZlYXR1cmVDb25maWcnKT8udmFsdWUgPT09IHRydWVcIj5cclxuICAgICAgICAgICAgICAgIDxidXR0b25cclxuICAgICAgICAgICAgICAgICAgICAoY2xpY2spPVwiZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGVkID8gZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmVuYWJsZSgpIDogZmVhdHVyZUNvbmZpZ3VyYXRpb25Gb3JtLmRpc2FibGUoKVwiXHJcbiAgICAgICAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIGFsaWduLWl0ZW1zLWVuZFwiPjxzcGFuIGNsYXNzPVwibWUtMlwiPjxzdmdcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIHhtbG5zPVwiaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmdcIiB3aWR0aD1cIjIwXCIgaGVpZ2h0PVwiMjBcIiB2aWV3Qm94PVwiMCAwIDIwIDIwXCIgZmlsbD1cIm5vbmVcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxnIGNsaXAtcGF0aD1cInVybCgjY2xpcDBfMjU3OV8yNTEyNSlcIj5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8cGF0aFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkPVwiTTE0LjE2NyAyLjQ5OTkzQzE0LjM4NTkgMi4yODEwNiAxNC42NDU3IDIuMTA3NDQgMTQuOTMxNyAxLjk4ODk5QzE1LjIxNzYgMS44NzA1NCAxNS41MjQxIDEuODA5NTcgMTUuODMzNyAxLjgwOTU3QzE2LjE0MzIgMS44MDk1NyAxNi40NDk3IDEuODcwNTQgMTYuNzM1NyAxLjk4ODk5QzE3LjAyMTYgMi4xMDc0NCAxNy4yODE1IDIuMjgxMDYgMTcuNTAwMyAyLjQ5OTkzQzE3LjcxOTIgMi43MTg4IDE3Ljg5MjggMi45Nzg2MyAxOC4wMTEzIDMuMjY0NkMxOC4xMjk3IDMuNTUwNTcgMTguMTkwNyAzLjg1NzA2IDE4LjE5MDcgNC4xNjY1OUMxOC4xOTA3IDQuNDc2MTIgMTguMTI5NyA0Ljc4MjYyIDE4LjAxMTMgNS4wNjg1OUMxNy44OTI4IDUuMzU0NTUgMTcuNzE5MiA1LjYxNDM5IDE3LjUwMDMgNS44MzMyNkw2LjI1MDMzIDE3LjA4MzNMMS42NjY5OSAxOC4zMzMzTDIuOTE2OTkgMTMuNzQ5OUwxNC4xNjcgMi40OTk5M1pcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2U9XCIjMzQ0MDU0XCIgc3Ryb2tlLXdpZHRoPVwiMS42N1wiIHN0cm9rZS1saW5lY2FwPVwicm91bmRcIlxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBzdHJva2UtbGluZWpvaW49XCJyb3VuZFwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L2c+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8ZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8Y2xpcFBhdGggaWQ9XCJjbGlwMF8yNTc5XzI1MTI1XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxyZWN0IHdpZHRoPVwiMjBcIiBoZWlnaHQ9XCIyMFwiIGZpbGw9XCJ3aGl0ZVwiIC8+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9jbGlwUGF0aD5cclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvZGVmcz5cclxuICAgICAgICAgICAgICAgICAgICAgICAgPC9zdmc+PC9zcGFuPkVkaXQgRGV0YWlsczwvYnV0dG9uPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj4gICAgXHJcbiAgICAgICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGZvcj1cIm9wZW5cIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5TdG9yZSBPcGVuIFRpbWUgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJvcGVuXCIgY2xhc3M9XCJmb3JtLWNvbnRyb2xcIiBpZD1cIm9wZW5cIiBhdXRvY29tcGxldGU9XCJvZmZcIj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJjbG9zZVwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPlN0b3JlIENsb3NlIFRpbWUgPHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8aW5wdXQgdHlwZT1cInRpbWVcIiBmb3JtQ29udHJvbE5hbWU9XCJjbG9zZVwiIGNsYXNzPVwiZm9ybS1jb250cm9sXCIgaWQ9XCJjbG9zZVwiIGF1dG9jb21wbGV0ZT1cIm9mZlwiPlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1sYWJlbFwiPkluZnJhIEFsZXJ0IDxzcGFuIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInJvd1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImNvbFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImluZnJhQWxlcnRDb25kaXRpb25cIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiaW5mcmFBbGVydENvbmRpdGlvblwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJpbmZyYUFsZXJ0VmFsdWVcIiBbaWRGaWVsZF09XCIndmFsdWUnXCIgW25hbWVGaWVsZF09XCInbGFiZWwnXCIgW2RhdGFdPVwiaW5mcmFBbGVydFZhbHVlXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsYWJlbCBmb3I9XCJkb3duVGltZVR5cGVcIiBjbGFzcz1cImZvcm0tbGFiZWxcIj5Cb3VuY2VkIExpbWl0PHNwYW4gY2xhc3M9XCJhbGVydC1yZXF1aXJlZFwiPjwvc3Bhbj48L2xhYmVsPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwicm93XCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiYm91bmNlZExpbWl0Q29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImJvdW5jZWRMaW1pdENvbmRpdGlvblwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJib3VuY2VkTGltaXRWYWx1ZVwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJib3VuY2VkTGltaXRWYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgZm9yPVwiTWluRmlsZXNDb3VudFwiIGNsYXNzPVwiZm9ybS1sYWJlbFwiPk1pc3NlZCBPcHBvcnR1bml0eSA8c3BhblxyXG4gICAgICAgICAgICAgICAgICAgIGNsYXNzPVwiYWxlcnQtcmVxdWlyZWRcIj48L3NwYW4+PC9sYWJlbD5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY29udHJvbCBtb2NrLWlucHV0IGQtZmxleCBqdXN0aWZ5LWNvbnRlbnQtY2VudGVyIGFsaWduLWl0ZW1zLWNlbnRlclwiPlxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIm1pc3NlZE9wcG9ydHVuaXR5U3RhcnRUaW1lXCI+XHJcbiAgICAgICAgICAgICAgICAgICAge3ttaXNzZWRPcHBvcnR1bml0eVN0YXJ0VGltZSB9fSAtIHt7bWlzc2VkT3Bwb3J0dW5pdHlFbmRUaW1lfX1cclxuICAgICAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWxhYmVsXCI+Q29udmVyc2lvbiA8c3BhbiBjbGFzcz1cImFsZXJ0LXJlcXVpcmVkXCI+PC9zcGFuPjwvbGFiZWw+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJyb3dcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJjb2xcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJjb252ZXJzaW9uQ29uZGl0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImNvbnZlcnNpb25Db25kaXRpb25cIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiY29sXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwiY29udmVyc2lvblZhbHVlXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImNvbnZlcnNpb25WYWx1ZVwiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctNCBjb2wteGwtNCBjb2wteHhsLTQgbWItNVwiPlxyXG4gICAgICAgICAgICA8bGliLXJlYWN0aXZlLXNlbGVjdCBmb3JtQ29udHJvbE5hbWU9XCJiaWxsYWJsZUNhbGN1bGF0aW9uXCIgW2lkRmllbGRdPVwiJ3ZhbHVlJ1wiIFtuYW1lRmllbGRdPVwiJ2xhYmVsJ1wiIFtkYXRhXT1cImJpbGxhYmxlQ2FsY3VsYXRpb25cIiBbbGFiZWxdPVwiJ0JpbGxhYmxlIENhbGN1bGF0aW9ucydcIiA+PC9saWItcmVhY3RpdmUtc2VsZWN0PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTQgY29sLXhsLTQgY29sLXh4bC00IG1iLTVcIj5cclxuICAgICAgICAgICAgPGxpYi1yZWFjdGl2ZS1zZWxlY3QgZm9ybUNvbnRyb2xOYW1lPVwibWlzc2VkT3Bwb3J0dW5pdHlDYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJtaXNzZWRPcHBvcnR1bml0eUNhbGN1bGF0aW9uXCIgW2xhYmVsXT1cIidNaXNzZWQgT3Bwb3J0dW5pdHkgQ2FsY3VsYXRpb24nXCIgPjwvbGliLXJlYWN0aXZlLXNlbGVjdD5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy00IGNvbC14bC00IGNvbC14eGwtNCBtYi01XCI+XHJcbiAgICAgICAgICAgIDxsaWItcmVhY3RpdmUtc2VsZWN0IGZvcm1Db250cm9sTmFtZT1cImNvbnZlcnNpb25DYWxjdWxhdGlvblwiIFtpZEZpZWxkXT1cIid2YWx1ZSdcIiBbbmFtZUZpZWxkXT1cIidsYWJlbCdcIiBbZGF0YV09XCJjb252ZXJzaW9uQ2FsY3VsYXRpb25cIiBbbGFiZWxdPVwiJ0NvbnZlcnNpb24gQ2FsY3VsYXRpb25zJ1wiID48L2xpYi1yZWFjdGl2ZS1zZWxlY3Q+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Tm9ybWFsaXplZCBkYXRhIGR1cmluZyBkb3dudGltZTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBub3JtYWxpemVkIGRhdGEgZHVyaW5nIGRvd250aW1lLiA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi1oZWFkZXJcIj5QYXNzZXItYnkgZGF0YTwvZGl2PlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwic3ViLXRleHRcIj5DaG9vc2UgaWYgeW91IHdhbnQgdG8gdmlldyBQYXNzZXJieSBkYXRhLiA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Rm9vdGZhbGwgRGlyZWN0b3J5PC9kaXY+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byB2aWV3IEZvb3RmYWxsIGRpcmVjdG9yeSA8L2Rpdj4gICAgXHJcbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxyXG4gICAgICAgICAgICBcclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+RXhjbHVkZWQgQXJlYTwvZGl2PlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInN1Yi10ZXh0XCI+Q2hvb3NlIGlmIHlvdSB3YW50IHRvIHZpZXcgRXhjbHVkZWQgQXJlYSA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2hcIj5cclxuICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc05vcm1hbGl6ZWRcIiBjbGFzcz1cImZvcm0tY2hlY2staW5wdXRcIiB0eXBlPVwiY2hlY2tib3hcIiBpZD1cImlzTm9ybWFsaXplZFwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc05vcm1hbGl6ZWRcIj4gU2hvdyBOb3JtYWxpemVkIGRhdGFcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDwvZGl2PlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJjb2wtbWQtMTIgY29sLWxnLTMgY29sLXhsLTMgY29sLXh4bC0zIG1iLTUgcHgtNlwiPlxyXG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgPGlucHV0IGZvcm1Db250cm9sTmFtZT1cImlzUGFzc2VyQnlEYXRhXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCIgaWQ9XCJpc1Bhc3NlckJ5RGF0YVwiPlxyXG4gICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc1Bhc3NlckJ5RGF0YVwiPiBTaG93IFBhc3Nlci1ieSBkYXRhXHJcbiAgICAgICAgICAgICAgICA8L2xhYmVsPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIiA+XHJcbiAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJmb3JtLWNoZWNrIGZvcm0tc3dpdGNoXCI+XHJcbiAgICAgICAgICAgICAgICA8aW5wdXQgZm9ybUNvbnRyb2xOYW1lPVwiaXNGb290ZmFsbERpcmVjdG9yeVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0Zvb3RmYWxsRGlyZWN0b3J5XCI+XHJcbiAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRm9vdGZhbGxEaXJlY3RvcnlcIj4gU2hvdyBGb290ZmFsbCBEaXJlY3RvcnlcclxuICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgIDwvZGl2PiAgICBcclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbycgXCI+XHJcbiAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaFwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0V4Y2x1ZGVkQXJlYVwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIGlkPVwiaXNFeGNsdWRlZEFyZWFcIj5cclxuICAgICAgICAgICAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJmb3JtLWNoZWNrLWxhYmVsIHRvZ2dsZS1sYWJlbFwiIGZvcj1cImlzRXhsdWRlZEFyZWFcIj4gU2hvdyBFeGNsdWRlZCBBcmVhXHJcbiAgICAgICAgICAgICAgICAgICAgPC9sYWJlbD5cclxuICAgICAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICA8L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiY29sLW1kLTEyIGNvbC1sZy0zIGNvbC14bC0zIGNvbC14eGwtMyBtYi01IHB4LTZcIj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+Q2FtZXJhIE1hbmFnZW1lbnQ8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byBkaXNhYmxlIENhbWVyYSBNYW5hZ2VtZW50IDwvZGl2PlxyXG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJ1wiPlxyXG4gICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cImZvcm0tY2hlY2sgZm9ybS1zd2l0Y2ggbXQtNVwiPlxyXG4gICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc0NhbWVyYURpc2FibGVkXCIgY2xhc3M9XCJmb3JtLWNoZWNrLWlucHV0XCIgdHlwZT1cImNoZWNrYm94XCJcclxuICAgICAgICAgICAgICAgICAgICAgICAgaWQ9XCJpc0NhbWVyYURpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgPGxhYmVsIGNsYXNzPVwiZm9ybS1jaGVjay1sYWJlbCB0b2dnbGUtbGFiZWxcIiBmb3I9XCJpc0NhbWVyYURpc2FibGVkXCI+IFNob3cgQ2FtZXJhc1xyXG4gICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgPGRpdiBjbGFzcz1cImNvbC1tZC0xMiBjb2wtbGctMyBjb2wteGwtMyBjb2wteHhsLTMgbWItNSBweC02XCI+XHJcbiAgICAgICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIoZ3MudXNlckFjY2VzcyB8IGFzeW5jKT8udXNlclR5cGUgPT09ICd0YW5nbydcIj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItaGVhZGVyXCI+QmlsbGluZyA8L2Rpdj5cclxuICAgICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJzdWItdGV4dFwiPkNob29zZSBpZiB5b3Ugd2FudCB0byBkaXNhYmxlIEJpbGxpbmcgTWFuYWdlbWVudCA8L2Rpdj5cclxuICAgICAgICAgICAgPC9uZy1jb250YWluZXI+XHJcbiAgICAgICAgICAgIFxyXG4gICAgICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIihncy51c2VyQWNjZXNzIHwgYXN5bmMpPy51c2VyVHlwZSA9PT0gJ3RhbmdvJyBcIj5cclxuICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwiZm9ybS1jaGVjayBmb3JtLXN3aXRjaCBtdC01XCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxpbnB1dCBmb3JtQ29udHJvbE5hbWU9XCJpc2JpbGxpbmdEaXNhYmxlZFwiIGNsYXNzPVwiZm9ybS1jaGVjay1pbnB1dFwiIHR5cGU9XCJjaGVja2JveFwiXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZD1cImlzYmlsbGluZ0Rpc2FibGVkXCI+XHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDxsYWJlbCBjbGFzcz1cImZvcm0tY2hlY2stbGFiZWwgdG9nZ2xlLWxhYmVsXCIgZm9yPVwiaXNiaWxsaW5nRGlzYWJsZWRcIj4gU2hvdyBCaWxsaW5nXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIDwvbGFiZWw+XHJcbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XHJcbiAgICAgICAgICAgICAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICAgICBcclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxkaXYgKm5nSWY9XCJmZWF0dXJlQ29uZmlndXJhdGlvbkZvcm0uZW5hYmxlZFwiPlxyXG4gICAgICAgIDxkaXYgY2xhc3M9XCJtYi01IHctMTAwIGZvb3Rlci1zZXBlcmF0b3JcIj48L2Rpdj5cclxuICAgICAgICA8ZGl2IGNsYXNzPVwiZC1mbGV4IGp1c3RpZnktY29udGVudC1lbmRcIj5cclxuICAgICAgICAgICAgPGEgdHlwZT1cImJ1dHRvblwiIGNsYXNzPVwiYnRuIGJ0bi1vdXRsaW5lIG10LTEgbWUtNFwiIChjbGljayk9XCJvbkNhbmNlbCgpXCI+Q2FuY2VsPC9hPlxyXG4gICAgICAgICAgICA8YSB0eXBlPVwic3VibWl0XCIgY2xhc3M9XCJidG4gYnRuLXByaW1hcnkgcHgtNCBcIiAoY2xpY2spPVwib25TdWJtaXQoKVwiPjxzcGFuPlNhdmUgQ2hhbmdlczwvc3Bhbj48L2E+XHJcbiAgICAgICAgPC9kaXY+XHJcbiAgICA8L2Rpdj5cclxuXHJcbjwvZm9ybT4iXX0=
|
|
@@ -4184,11 +4184,11 @@ class FeatureConfigurationComponent {
|
|
|
4184
4184
|
this.apiService.clientFormData.next({ value: this.featureConfigurationForm.value, type: 'submit', form: 'feature-configuration' });
|
|
4185
4185
|
}
|
|
4186
4186
|
static ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FeatureConfigurationComponent, deps: [{ token: i1$1.FormBuilder }, { token: ClientApiService }, { token: i3.GlobalStateService }, { token: i0.ChangeDetectorRef }], target: i0.ɵɵFactoryTarget.Component });
|
|
4187
|
-
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FeatureConfigurationComponent, selector: "lib-feature-configuration", ngImport: i0, template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to view Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to view Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
4187
|
+
static ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "17.3.12", type: FeatureConfigurationComponent, selector: "lib-feature-configuration", ngImport: i0, template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to disable Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to disable Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"], dependencies: [{ kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { kind: "directive", type: i1$1.DefaultValueAccessor, selector: "input:not([type=checkbox])[formControlName],textarea[formControlName],input:not([type=checkbox])[formControl],textarea[formControl],input:not([type=checkbox])[ngModel],textarea[ngModel],[ngDefaultControl]" }, { kind: "directive", type: i1$1.CheckboxControlValueAccessor, selector: "input[type=checkbox][formControlName],input[type=checkbox][formControl],input[type=checkbox][ngModel]" }, { kind: "directive", type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "component", type: ReactiveSelectComponent, selector: "lib-reactive-select", inputs: ["idField", "nameField", "label", "data"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
4188
4188
|
}
|
|
4189
4189
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "17.3.12", ngImport: i0, type: FeatureConfigurationComponent, decorators: [{
|
|
4190
4190
|
type: Component,
|
|
4191
|
-
args: [{ selector: 'lib-feature-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to view Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to view Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
4191
|
+
args: [{ selector: 'lib-feature-configuration', template: "<form [formGroup]=\"featureConfigurationForm\">\r\n <div class=\"row\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.settings_configuration_isEdit \" >\r\n <div *ngIf=\"featureConfigurationForm.disabled\" class=\"col-12 mb-5\">\r\n <div class=\" d-flex justify-content-end\" *ngIf=\"featureConfigurationForm.get('updateFeatureConfig')?.value === true\">\r\n <button\r\n (click)=\"featureConfigurationForm.disabled ? featureConfigurationForm.enable() : featureConfigurationForm.disable()\"\r\n type=\"button\" class=\"btn btn-outline align-items-end\"><span class=\"me-2\"><svg\r\n xmlns=\"http://www.w3.org/2000/svg\" width=\"20\" height=\"20\" viewBox=\"0 0 20 20\" fill=\"none\">\r\n <g clip-path=\"url(#clip0_2579_25125)\">\r\n <path\r\n d=\"M14.167 2.49993C14.3859 2.28106 14.6457 2.10744 14.9317 1.98899C15.2176 1.87054 15.5241 1.80957 15.8337 1.80957C16.1432 1.80957 16.4497 1.87054 16.7357 1.98899C17.0216 2.10744 17.2815 2.28106 17.5003 2.49993C17.7192 2.7188 17.8928 2.97863 18.0113 3.2646C18.1297 3.55057 18.1907 3.85706 18.1907 4.16659C18.1907 4.47612 18.1297 4.78262 18.0113 5.06859C17.8928 5.35455 17.7192 5.61439 17.5003 5.83326L6.25033 17.0833L1.66699 18.3333L2.91699 13.7499L14.167 2.49993Z\"\r\n stroke=\"#344054\" stroke-width=\"1.67\" stroke-linecap=\"round\"\r\n stroke-linejoin=\"round\" />\r\n </g>\r\n <defs>\r\n <clipPath id=\"clip0_2579_25125\">\r\n <rect width=\"20\" height=\"20\" fill=\"white\" />\r\n </clipPath>\r\n </defs>\r\n </svg></span>Edit Details</button>\r\n </div>\r\n </div> \r\n </ng-container>\r\n\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"open\" class=\"form-label\">Store Open Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"open\" class=\"form-control\" id=\"open\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"close\" class=\"form-label\">Store Close Time <span class=\"alert-required\"></span></label>\r\n <input type=\"time\" formControlName=\"close\" class=\"form-control\" id=\"close\" autocomplete=\"off\">\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Infra Alert <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"infraAlertValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"infraAlertValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"downTimeType\" class=\"form-label\">Bounced Limit<span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"bouncedLimitValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"bouncedLimitValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label for=\"MinFilesCount\" class=\"form-label\">Missed Opportunity <span\r\n class=\"alert-required\"></span></label>\r\n <div class=\"form-control mock-input d-flex justify-content-center align-items-center\">\r\n <ng-container *ngIf=\"missedOpportunityStartTime\">\r\n {{missedOpportunityStartTime }} - {{missedOpportunityEndTime}}\r\n </ng-container>\r\n </div>\r\n\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <label class=\"form-label\">Conversion <span class=\"alert-required\"></span></label>\r\n <div class=\"row\">\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionCondition\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCondition\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col\">\r\n <lib-reactive-select formControlName=\"conversionValue\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionValue\" ></lib-reactive-select>\r\n </div>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"billableCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"billableCalculation\" [label]=\"'Billable Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"missedOpportunityCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"missedOpportunityCalculation\" [label]=\"'Missed Opportunity Calculation'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-4 col-xl-4 col-xxl-4 mb-5\">\r\n <lib-reactive-select formControlName=\"conversionCalculation\" [idField]=\"'value'\" [nameField]=\"'label'\" [data]=\"conversionCalculation\" [label]=\"'Conversion Calculations'\" ></lib-reactive-select>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Normalized data during downtime</div>\r\n <div class=\"sub-text\">Choose if you want to view normalized data during downtime. </div>\r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"sub-header\">Passer-by data</div>\r\n <div class=\"sub-text\">Choose if you want to view Passerby data. </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"sub-header\">Footfall Directory</div>\r\n <div class=\"sub-text\">Choose if you want to view Footfall directory </div> \r\n </ng-container>\r\n \r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Excluded Area</div>\r\n <div class=\"sub-text\">Choose if you want to view Excluded Area </div>\r\n </ng-container>\r\n \r\n </div>\r\n \r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isNormalized\" class=\"form-check-input\" type=\"checkbox\" id=\"isNormalized\">\r\n <label class=\"form-check-label toggle-label\" for=\"isNormalized\"> Show Normalized data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isPasserByData\" class=\"form-check-input\" type=\"checkbox\" id=\"isPasserByData\">\r\n <label class=\"form-check-label toggle-label\" for=\"isPasserByData\"> Show Passer-by data\r\n </label>\r\n </div>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \" >\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isFootfallDirectory\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isFootfallDirectory\">\r\n <label class=\"form-check-label toggle-label\" for=\"isFootfallDirectory\"> Show Footfall Directory\r\n </label>\r\n </div> \r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch\">\r\n <input formControlName=\"isExcludedArea\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isExcludedArea\">\r\n <label class=\"form-check-label toggle-label\" for=\"isExludedArea\"> Show Excluded Area\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"sub-header\">Camera Management</div>\r\n <div class=\"sub-text\">Choose if you want to disable Camera Management </div>\r\n </ng-container>\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isCameraDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isCameraDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isCameraDisabled\"> Show Cameras\r\n </label>\r\n </div>\r\n </ng-container>\r\n </div>\r\n <div class=\"col-md-12 col-lg-3 col-xl-3 col-xxl-3 mb-5 px-6\">\r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango'\">\r\n <div class=\"sub-header\">Billing </div>\r\n <div class=\"sub-text\">Choose if you want to disable Billing Management </div>\r\n </ng-container>\r\n \r\n <ng-container *ngIf=\"(gs.userAccess | async)?.userType === 'tango' \">\r\n <div class=\"form-check form-switch mt-5\">\r\n <input formControlName=\"isbillingDisabled\" class=\"form-check-input\" type=\"checkbox\"\r\n id=\"isbillingDisabled\">\r\n <label class=\"form-check-label toggle-label\" for=\"isbillingDisabled\"> Show Billing\r\n </label>\r\n </div>\r\n </ng-container>\r\n\r\n </div>\r\n \r\n </div>\r\n\r\n <div *ngIf=\"featureConfigurationForm.enabled\">\r\n <div class=\"mb-5 w-100 footer-seperator\"></div>\r\n <div class=\"d-flex justify-content-end\">\r\n <a type=\"button\" class=\"btn btn-outline mt-1 me-4\" (click)=\"onCancel()\">Cancel</a>\r\n <a type=\"submit\" class=\"btn btn-primary px-4 \" (click)=\"onSubmit()\"><span>Save Changes</span></a>\r\n </div>\r\n </div>\r\n\r\n</form>", styles: [".form-control{display:block;height:45px;padding:.5rem 1rem;font-size:1.1rem;font-weight:400;color:var(--Gray-500, #667085);-webkit-appearance:none;appearance:none;border-radius:8px!important;border:1px solid var(--Gray-300, #D0D5DD)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;transition:border-color .15s ease-in-out,box-shadow .15s ease-in-out}.form-control[disabled]{background-color:#f9fafb!important}.form-select{font-size:1.1rem;font-weight:400;border-radius:8px!important;color:var(--Gray-500, #667085);border:1px solid var(--Gray-300, #D0D5DD)!important;height:45px}.form-label{color:var(--Gray-700, #344054);font-size:14px;font-style:normal;font-weight:500;line-height:20px}.is-invalid{border-radius:8px!important;border:1px solid var(--Error-300, #FDA29B)!important;background:var(--White, #FFF)!important;box-shadow:0 1px 2px #1018280d!important;padding-right:calc(1.5em + .75rem)!important;background-image:url(data:image/svg+xml;base64,PHN2ZyB3aWR0aD0iMTYiIGhlaWdodD0iMTYiIHZpZXdCb3g9IjAgMCAxNiAxNiIgZmlsbD0ibm9uZSIgeG1sbnM9Imh0dHA6Ly93d3cudzMub3JnLzIwMDAvc3ZnIj4KPGcgY2xpcC1wYXRoPSJ1cmwoI2NsaXAwXzIyMDFfMjA5NTApIj4KPHBhdGggZD0iTTcuOTk5NjcgNS4zMzM5OFY4LjAwMDY1TTcuOTk5NjcgMTAuNjY3M0g4LjAwNjM0TTE0LjY2NjMgOC4wMDA2NUMxNC42NjYzIDExLjY4MjYgMTEuNjgxNiAxNC42NjczIDcuOTk5NjcgMTQuNjY3M0M0LjMxNzc4IDE0LjY2NzMgMS4zMzMwMSAxMS42ODI2IDEuMzMzMDEgOC4wMDA2NUMxLjMzMzAxIDQuMzE4NzUgNC4zMTc3OCAxLjMzMzk4IDcuOTk5NjcgMS4zMzM5OEMxMS42ODE2IDEuMzMzOTggMTQuNjY2MyA0LjMxODc1IDE0LjY2NjMgOC4wMDA2NVoiIHN0cm9rZT0iI0YwNDQzOCIgc3Ryb2tlLXdpZHRoPSIxLjMzMzMzIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiLz4KPC9nPgo8ZGVmcz4KPGNsaXBQYXRoIGlkPSJjbGlwMF8yMjAxXzIwOTUwIj4KPHJlY3Qgd2lkdGg9IjE2IiBoZWlnaHQ9IjE2IiBmaWxsPSJ3aGl0ZSIvPgo8L2NsaXBQYXRoPgo8L2RlZnM+Cjwvc3ZnPgo=)!important;background-repeat:no-repeat!important;background-position:right calc(.375em + .1875rem) center!important;background-size:calc(.75em + .375rem) calc(.75em + .375rem)!important}small{color:var(--Error-500, #F04438)!important;font-size:14px!important;font-weight:400!important;line-height:20px;display:block;margin-top:6px}.cancel{border-radius:8px;border:1px solid #D0D5DD;background:#fff;color:#344054;font-family:Inter;font-size:14px;font-weight:600;line-height:20px;text-transform:capitalize}.apply{color:#fff;font-family:Inter;font-size:14px;font-style:normal;font-weight:600;line-height:20px;text-transform:capitalize}select[disabled],textarea[disabled]{background-color:#f9fafb!important}.footer-seperator{border-top:1px solid #EAECF0}.sub-header{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:20px}.sub-text{color:var(--Gray-500, #667085);font-family:Inter;font-size:12px;font-style:normal;font-weight:400;line-height:18px}.toggle-label{color:var(--Gray-700, #344054);font-size:14px;font-weight:500;line-height:24px}.mock-input{background-color:#f9fafb!important}\n"] }]
|
|
4192
4192
|
}], ctorParameters: () => [{ type: i1$1.FormBuilder }, { type: ClientApiService }, { type: i3.GlobalStateService }, { type: i0.ChangeDetectorRef }] });
|
|
4193
4193
|
|
|
4194
4194
|
class EmailConfigurationComponent {
|