@tuki-io/tuki-widgets 0.0.170 → 0.0.172
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.
- package/esm2020/di2mt/shared/components/stat-card/stat-card.component.mjs +7 -1
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade-data-table/site-upgrade-data-table.component.mjs +5 -3
- package/esm2020/di2mt/widgets/site-upgrade/site-upgrade.service.mjs +3 -2
- package/esm2020/di2mt/widgets/upgrade-overview/upgrade-overview.service.mjs +7 -4
- package/esm2020/user-creation/src/shared/api/api.service.mjs +2 -2
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +7 -6
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +22 -10
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +6 -5
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +18 -6
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +6 -5
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/package.json +1 -1
|
@@ -7,9 +7,10 @@ import * as i1 from "../../user-creation-wizard.service";
|
|
|
7
7
|
import * as i2 from "../../../../shared/services/user-creation-api.service";
|
|
8
8
|
import * as i3 from "@angular/forms";
|
|
9
9
|
import * as i4 from "@angular/common";
|
|
10
|
-
import * as i5 from "@angular/material/
|
|
11
|
-
import * as i6 from "@angular/material/
|
|
12
|
-
import * as i7 from "@angular/material/
|
|
10
|
+
import * as i5 from "@angular/material/tooltip";
|
|
11
|
+
import * as i6 from "@angular/material/form-field";
|
|
12
|
+
import * as i7 from "@angular/material/select";
|
|
13
|
+
import * as i8 from "@angular/material/core";
|
|
13
14
|
export class UserTemplateStepComponent {
|
|
14
15
|
constructor(userCreationWizardService, userCreationService, fb) {
|
|
15
16
|
this.userCreationWizardService = userCreationWizardService;
|
|
@@ -119,11 +120,11 @@ export class UserTemplateStepComponent {
|
|
|
119
120
|
}
|
|
120
121
|
}
|
|
121
122
|
UserTemplateStepComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, deps: [{ token: i1.UserCreationWizardService }, { token: i2.UserCreationApiService }, { token: i3.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
|
|
122
|
-
UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" }, ngImport: i0, template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Dedicated Instance' }}</span>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "
|
|
123
|
+
UserTemplateStepComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: UserTemplateStepComponent, selector: "tk-user-template-step", inputs: { customerId: "customerId" }, ngImport: i0, template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Multi Tenant' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Dedicated Instance' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ defaultTemplateName }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"], dependencies: [{ kind: "directive", type: i4.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i4.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "directive", type: i5.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { kind: "component", type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { kind: "component", type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { kind: "directive", type: i7.MatSelectTrigger, selector: "mat-select-trigger" }, { kind: "component", type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { kind: "directive", type: i3.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { kind: "directive", type: i3.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { kind: "directive", type: i3.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { kind: "directive", type: i3.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { kind: "pipe", type: i4.AsyncPipe, name: "async" }] });
|
|
123
124
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: UserTemplateStepComponent, decorators: [{
|
|
124
125
|
type: Component,
|
|
125
|
-
args: [{ selector: 'tk-user-template-step', template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Dedicated Instance' }}</span>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"] }]
|
|
126
|
+
args: [{ selector: 'tk-user-template-step', template: "<section class=\"template-step-content\">\r\n <ng-container [formGroup]=\"formGroup\">\r\n <!-- <div class=\"template-step-field template-step-field--user-type\">\r\n <label class=\"template-step-label\">User type</label>\r\n <mat-radio-group class=\"user-type-mat-radio-group\" formControlName=\"userType\">\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationCucm\" [value]=\"USER_CREATION_TYPES.CUCM\">\r\n UCM/DI\r\n </mat-radio-button>\r\n <mat-radio-button class=\"user-type-mat-radio\" id=\"userCreationMT\" [value]=\"USER_CREATION_TYPES.MT\">\r\n MT\r\n </mat-radio-button>\r\n </mat-radio-group>\r\n </div> -->\r\n\r\n <div class=\"template-step-field\">\r\n <label class=\"template-step-label\">Select site</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Site name\"\r\n formControlName=\"siteId\">\r\n\r\n <mat-select-trigger>\r\n {{ getSelectedSiteName() }}\r\n </mat-select-trigger>\r\n\r\n <mat-option *ngFor=\"let site of sitesList$ | async\" [value]=\"site.id\">\r\n <div class=\"option-row\">\r\n <span class=\"name\">{{ site.name }}</span>\r\n <span *ngIf=\"site.name === 'Berlin' else notBerlinSite\" class=\"type\">{{ 'Multi Tenant' }}</span>\r\n <ng-template #notBerlinSite>\r\n <span class=\"type\">{{ isCUCM(site) ? 'UCM' : 'Dedicated Instance' }}</span>\r\n </ng-template>\r\n </div>\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n </div>\r\n\r\n <ng-container *ngIf=\"formGroup.get('userType')?.value === USER_CREATION_TYPES.CUCM\">\r\n <div class=\"template-step-field\">\r\n <!-- <label class=\"template-step-label\">Would you like to use a template for the user creation?</label>\r\n <mat-radio-group [formControl]=\"templateToggleFormControl\">\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"true\">\r\n {{ 'Yes' }}\r\n </mat-radio-button>\r\n <mat-radio-button [color]=\"'primary'\" [value]=\"false\">\r\n {{ 'No' }}\r\n </mat-radio-button>\r\n </mat-radio-group> -->\r\n\r\n <!-- <ng-container *ngIf=\"templateToggleFormControl.value === true\"> -->\r\n <label class=\"template-step-label\">Select user template</label>\r\n <mat-form-field class=\"template-step-select\" appearance=\"outline\">\r\n <mat-select\r\n placeholder=\"Templates\"\r\n formControlName=\"userTemplateId\">\r\n <mat-select-trigger>\r\n <span matTooltip=\"'A new user will be created based on the selected template, including a Cisco 8851 physical device with a single line configured, without SNR (Single Number Reach) and without voicemail.'\">\r\n {{ defaultTemplateName }}\r\n </span>\r\n </mat-select-trigger>\r\n <mat-option [value]=\"fallbackTemplateId\">\r\n {{ defaultTemplateName }}\r\n </mat-option>\r\n <mat-option *ngFor=\"let template of templatesList$ | async\" [value]=\"template.id\">\r\n {{ template.name }}\r\n </mat-option>\r\n </mat-select>\r\n </mat-form-field>\r\n <!-- </ng-container> -->\r\n </div>\r\n </ng-container>\r\n \r\n </ng-container>\r\n</section>\r\n", styles: [".template-step-content{display:flex;flex-direction:column;gap:20px;max-width:420px}.template-step-field{display:flex;flex-direction:column;gap:10px}.template-step-field--user-type{margin-bottom:6px}.template-step-label{font-size:14px;font-weight:600;line-height:100%;letter-spacing:.1px;color:#2a2f3b}.template-step-select{width:100%;max-width:333px}.user-type-mat-radio-group{display:flex;flex-direction:column;gap:10px;margin-left:16px;margin-top:8px}.user-type-mat-radio{color:#2a2f3b;font-size:14px;font-weight:500}:host ::ng-deep .user-type-mat-radio .mat-radio-label{gap:10px}:host ::ng-deep .user-type-mat-radio .mat-radio-outer-circle{border-color:#8a93a3;border-width:2px}:host ::ng-deep .user-type-mat-radio .mat-radio-inner-circle{background-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-outer-circle{border-color:#1170cf}:host ::ng-deep .user-type-mat-radio.mat-radio-checked .mat-radio-ripple .mat-ripple-element{background-color:#1176ce26!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__outer-circle{border-color:#8a93a3!important;border-width:2px!important}:host ::ng-deep .user-type-mat-radio .mdc-radio__inner-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__outer-circle{border-color:#1170cf!important}:host ::ng-deep .user-type-mat-radio.mat-mdc-radio-checked .mdc-radio__background:before{background-color:#1176ce1f!important}:host ::ng-deep .template-step-select .mat-form-field-wrapper{padding-bottom:0}:host ::ng-deep .template-step-select .mat-form-field-flex{align-items:center;height:32px;border:1px solid #767676;border-radius:6px;padding:0 12px}:host ::ng-deep .template-step-select .mat-form-field-outline,:host ::ng-deep .template-step-select .mat-form-field-outline-start,:host ::ng-deep .template-step-select .mat-form-field-outline-end,:host ::ng-deep .template-step-select .mat-form-field-outline-gap{display:none}:host ::ng-deep .template-step-select .mat-form-field-infix{width:100%;border-top:0;padding:0}:host ::ng-deep .template-step-select .mat-select-trigger{display:flex;align-items:center;justify-content:space-between;height:100%}::ng-deep .option-row{display:flex;justify-content:space-between;align-items:center;width:100%}\n"] }]
|
|
126
127
|
}], ctorParameters: function () { return [{ type: i1.UserCreationWizardService }, { type: i2.UserCreationApiService }, { type: i3.FormBuilder }]; }, propDecorators: { customerId: [{
|
|
127
128
|
type: Input
|
|
128
129
|
}] } });
|
|
129
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci10ZW1wbGF0ZS1zdGVwL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7OztBQVNqRixNQUFNLE9BQU8seUJBQXlCO0lBOENsQyxZQUNXLHlCQUFvRCxFQUMxQyxtQkFBMkMsRUFDM0MsRUFBZTtRQUZ6Qiw4QkFBeUIsR0FBekIseUJBQXlCLENBQTJCO1FBQzFDLHdCQUFtQixHQUFuQixtQkFBbUIsQ0FBd0I7UUFDM0MsT0FBRSxHQUFGLEVBQUUsQ0FBYTtRQTlDN0IsY0FBUyxHQUFHLElBQUksQ0FBQyxFQUFFLENBQUMsS0FBSyxDQUFDO1lBQzdCLFFBQVEsRUFBRSxDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQztZQUNwQyxNQUFNLEVBQUUsQ0FBQyxJQUFJLENBQUM7WUFDZCxjQUFjLEVBQUUsQ0FBQyxFQUFFLENBQUM7U0FDdkIsQ0FBQyxDQUFDO1FBRUkscUJBQWdCLEdBQUcsbUJBQW1CLENBQUMsSUFBSSxDQUFDO1FBRW5DLHdCQUFtQixHQUFHLG1CQUFtQixDQUFDO1FBQ2pELHdCQUFtQixHQUFHLGtCQUFrQixDQUFDO1FBQ3pDLHVCQUFrQixHQUFHLElBQUksQ0FBQztRQUVsQixhQUFRLEdBQUcsSUFBSSxPQUFPLEVBQVEsQ0FBQztRQUV4QyxjQUFTLEdBQVcsRUFBRSxDQUFDO1FBRWYsZUFBVSxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxVQUFVLENBQUMsSUFBSSxDQUNqRSxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxFQUN4QixHQUFHLENBQUMsQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxTQUFTLEdBQUcsR0FBRyxDQUFDLENBQ3JDLENBQUM7UUFDYyxtQkFBYyxHQUFHLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxjQUFjLENBQUMsSUFBSSxDQUN6RSxHQUFHLENBQUMsQ0FBQyxTQUFTLEVBQUUsRUFBRTtZQUNkLElBQUksQ0FBQyxTQUFTLEdBQUcsU0FBUyxJQUFJLEVBQUUsQ0FBQztZQUNqQyxNQUFNLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBQyxDQUFDO1lBQzdELE1BQU0saUJBQWlCLEdBQUcsZUFBZSxFQUFFLEtBQUssQ0FBQztZQUNqRCxNQUFNLGNBQWMsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7WUFDM0QsTUFBTSxlQUFlLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQ3ZDLFFBQVEsQ0FBQyxFQUFFLENBQUMsUUFBUSxDQUFDLElBQUksS0FBSyxJQUFJLENBQUMsbUJBQW1CLENBQ3pELENBQUM7WUFFRixNQUFNLGVBQWUsR0FBRyxjQUFjLEtBQUssSUFBSSxJQUFJLGNBQWMsS0FBSyxTQUFTLENBQUM7WUFDaEYsSUFBSSxlQUFlLElBQUksZUFBZSxJQUFJLE1BQU0sQ0FBQyxpQkFBaUIsSUFBSSxFQUFFLENBQUMsS0FBSyxNQUFNLENBQUMsZUFBZSxDQUFDLEVBQUUsQ0FBQyxFQUFFO2dCQUN0RyxlQUFlLEVBQUUsUUFBUSxDQUFDLE1BQU0sQ0FBQyxlQUFlLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQzthQUN6RDtRQUNMLENBQUMsQ0FBQyxFQUNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLENBQzNCLENBQUM7UUFFRix5QkFBb0IsR0FBRyxLQUFLLENBQUM7UUFDN0IsY0FBUyxHQUE0QixFQUFFLENBQUM7UUFFeEIsOEJBQXlCLEdBQUcsSUFBSSxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUM7SUFNL0QsQ0FBQztJQUVKLFFBQVE7UUFFSixJQUFJLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUUsQ0FBQyxZQUFZO2FBQ3hDLElBQUksQ0FBQyxTQUFTLENBQUMsSUFBSSxDQUFDLFFBQVEsQ0FBQyxDQUFDO2FBQzlCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2pCLE1BQU0sbUJBQW1CLEdBQUcsS0FBSyxLQUFLLG1CQUFtQixDQUFDLEVBQUUsQ0FBQyxDQUFDLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxLQUFLLENBQUM7WUFDNUUsSUFBSSxDQUFDLFFBQVEsQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDLFNBQVMsRUFBRSxDQUFDO1lBQy9DLElBQUksQ0FBQyxlQUFlLEVBQUUsQ0FBQztRQUMzQixDQUFDLENBQUMsQ0FBQztRQUVQLElBQUksQ0FBQyxTQUFVLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBRSxDQUFDLFlBQVk7YUFDdEMsSUFBSTtRQUNELDREQUE0RDtRQUM1RCxHQUFHLENBQUMsQ0FBQyxLQUFLLEVBQUUsRUFBRTtZQUNWLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsUUFBUSxDQUFDLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxDQUFDO1lBQ3hFLG9FQUFvRTtRQUN4RSxDQUFDLENBQUMsRUFDRixTQUFTLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxHQUFHLENBQUMsUUFBUSxDQUFDLEVBQUUsS0FBSyxDQUFDLEVBQzlDLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hCLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLHFCQUFxQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxDQUFBO1FBQ3hFLENBQUMsQ0FBQyxDQUVMO2FBQ0EsU0FBUyxFQUFFLENBQUM7UUFDYiwwQkFBMEI7UUFDMUIsMEJBQTBCO1FBQzFCLEtBQUs7UUFFVCxJQUFJLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxnQkFBZ0IsQ0FBRSxDQUFDLFlBQVk7YUFDOUMsSUFBSSxDQUNELE1BQU0sQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksSUFBSSxLQUFLLEtBQUssU0FBUyxJQUFJLE1BQU0sQ0FBQyxLQUFLLENBQUMsQ0FBQyxJQUFJLEVBQUUsQ0FBQyxNQUFNLEdBQUcsQ0FBQyxDQUFDLEVBQzNGLFNBQVMsQ0FBQyxJQUFJLENBQUMsUUFBUSxDQUFDLEVBQ3hCLFNBQVMsQ0FBQyxDQUFDLEtBQUssRUFBRSxFQUFFO1lBQ2hCLElBQUksTUFBTSxDQUFDLEtBQUssQ0FBQyxLQUFLLElBQUksQ0FBQyxrQkFBa0IsRUFBRTtnQkFDM0MsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxtQkFBbUIsQ0FBQyxDQUFDO2dCQUM3RSxPQUFPLEVBQUUsQ0FBQyxJQUFJLENBQUMsQ0FBQzthQUNuQjtZQUNELE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxLQUFLLENBQUMsRUFBRSxNQUFNLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQyxDQUFDO2lCQUMvRixJQUFJLENBQ0QsR0FBRyxDQUFDLENBQUMsT0FBTyxFQUFFLEVBQUU7Z0JBQ1osTUFBTSxnQkFBZ0IsR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLE1BQU0sQ0FBQyxRQUFRLENBQUMsRUFBRSxDQUFDLEtBQUssTUFBTSxDQUFDLEtBQUssQ0FBQyxDQUFDLENBQUM7Z0JBQ2hHLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyxtQkFBbUIsQ0FBQyxnQkFBZ0IsRUFBRSxJQUFJLElBQUksSUFBSSxDQUFDLENBQUM7Z0JBQ25GLElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx5QkFBeUIsQ0FBQyxPQUFPLENBQUMsQ0FBQztZQUN0RSxDQUFDLENBQUMsQ0FDTCxDQUFDO1FBQ1YsQ0FBQyxDQUFDLENBQ0w7YUFDQSxTQUFTLEVBQUUsQ0FBQztRQUVqQiw4Q0FBOEM7UUFDOUMsK0VBQStFO1FBQy9FLDhCQUE4QjtRQUM5QiwrQkFBK0I7UUFDL0IsMEVBQTBFO1FBQzFFLHFFQUFxRTtRQUNyRSxnQ0FBZ0M7UUFDaEMsbUJBQW1CO1FBQ25CLDZEQUE2RDtRQUM3RCxZQUFZO1FBQ1osVUFBVTtRQUVWLElBQUksQ0FBQyxPQUFPLEVBQUUsQ0FBQztJQUNuQixDQUFDO0lBRUQsZUFBZTtRQUNaLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLFFBQVEsQ0FBQyxFQUFFLEtBQUssRUFBRSxDQUFDO1FBQ3RDLElBQUksQ0FBQyxTQUFTLENBQUMsR0FBRyxDQUFDLGdCQUFnQixDQUFDLEVBQUUsS0FBSyxFQUFFLENBQUM7UUFDOUMsSUFBSSxDQUFDLHlCQUF5QixDQUFDLG1CQUFtQixDQUFDLElBQUksQ0FBQyxDQUFDO1FBQ3pELElBQUksQ0FBQyx5QkFBeUIsQ0FBQyx1QkFBdUIsRUFBRSxDQUFDO0lBQzVELENBQUM7SUFFTyxPQUFPO1FBQ1gsTUFBTSxtQkFBbUIsR0FBRyxJQUFJLENBQUMsU0FBVSxDQUFDLEdBQUcsQ0FBQyxVQUFVLENBQUMsRUFBRSxLQUFLLEtBQUssbUJBQW1CLENBQUMsRUFBRSxDQUFDLENBQUMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxDQUFDLEtBQUssQ0FBQztRQUU3RyxJQUFJLENBQUMsbUJBQW1CLENBQUMsMEJBQTBCLENBQUMsTUFBTSxDQUFDLElBQUksQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUN2RSxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsRUFBRSxDQUFDLElBQUksQ0FBQyxRQUFRLENBQUMsbUJBQW1CLENBQUMsQ0FBQyxDQUFDO2FBQ3pELFNBQVMsRUFBRSxDQUFDO0lBQ3JCLENBQUM7SUFFTyxRQUFRLENBQUMsbUJBQTRCO1FBQ3pDLE9BQU8sSUFBSSxDQUFDLG1CQUFtQixDQUFDLG1CQUFtQixDQUFDLE1BQU0sQ0FBQyxJQUFJLENBQUMsVUFBVSxDQUFDLEVBQUUsbUJBQW1CLENBQUMsQ0FBQztJQUN0RyxDQUFDO0lBRU0sTUFBTSxDQUFDLElBQVU7UUFDcEIsT0FBTyxJQUFJLEVBQUUsSUFBSSxFQUFFLEVBQUUsS0FBSyxJQUFJLENBQUM7SUFDbkMsQ0FBQztJQUVNLG1CQUFtQjtRQUN0QixNQUFNLE1BQU0sR0FBRyxJQUFJLENBQUMsU0FBUyxDQUFDLEdBQUcsQ0FBQyxRQUFRLENBQUMsRUFBRSxLQUFLLENBQUM7UUFDbkQsTUFBTSxXQUFXLEdBQUcsSUFBSSxDQUFDLFNBQVMsQ0FBQyxJQUFJLENBQUMsQ0FBQyxJQUFTLEVBQUUsRUFBRSxDQUFDLElBQUksQ0FBQyxFQUFFLEtBQUssTUFBTSxDQUFDLENBQUM7UUFDM0UsT0FBTyxNQUFNLElBQUksV0FBVyxDQUFDLENBQUMsQ0FBQyxXQUFXLENBQUMsSUFBSSxDQUFDLENBQUMsQ0FBQyxFQUFFLENBQUM7SUFDekQsQ0FBQztJQUVELFdBQVc7UUFDUCxJQUFJLENBQUMsUUFBUSxDQUFDLElBQUksRUFBRSxDQUFDO1FBQ3JCLElBQUksQ0FBQyxRQUFRLENBQUMsUUFBUSxFQUFFLENBQUM7SUFDN0IsQ0FBQzs7dUhBckpRLHlCQUF5QjsyR0FBekIseUJBQXlCLG1HQ2J0QyxnOUZBbUVBOzRGRHREYSx5QkFBeUI7a0JBTHJDLFNBQVM7K0JBQ0ksdUJBQXVCOytLQUt4QixVQUFVO3NCQUFsQixLQUFLIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBJbnB1dCB9IGZyb20gXCJAYW5ndWxhci9jb3JlXCI7XHJcbmltcG9ydCB7IFVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UgfSBmcm9tIFwiLi4vLi4vdXNlci1jcmVhdGlvbi13aXphcmQuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBVU0VSX0NSRUFUSU9OX1RZUEVTIH0gZnJvbSAnLi4vLi4vLi4vLi4vYXBwLmNvbnN0YW50cyc7XHJcbmltcG9ydCB7IEZvcm1CdWlsZGVyLCBGb3JtQ29udHJvbCB9IGZyb20gXCJAYW5ndWxhci9mb3Jtc1wiO1xyXG5pbXBvcnQgeyBmaWx0ZXIsIG9mLCBzdGFydFdpdGgsIFN1YmplY3QsIHN3aXRjaE1hcCwgdGFrZVVudGlsLCB0YXAgfSBmcm9tIFwicnhqc1wiO1xyXG5pbXBvcnQgeyBVc2VyQ3JlYXRpb25BcGlTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uLy4uLy4uL3NoYXJlZC9zZXJ2aWNlcy91c2VyLWNyZWF0aW9uLWFwaS5zZXJ2aWNlXCI7XHJcbmltcG9ydCB7IFNpdGUsIFVzZXJUZW1wbGF0ZUludGVyZmFjZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9jbGFzc2VzL3NpdGVcIjtcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gICAgc2VsZWN0b3I6ICd0ay11c2VyLXRlbXBsYXRlLXN0ZXAnLFxyXG4gICAgdGVtcGxhdGVVcmw6ICcuL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQuaHRtbCcsXHJcbiAgICBzdHlsZVVybHM6IFsnLi91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50LnNjc3MnXVxyXG59KVxyXG5leHBvcnQgY2xhc3MgVXNlclRlbXBsYXRlU3RlcENvbXBvbmVudCB7XHJcbiAgICBASW5wdXQoKSBjdXN0b21lcklkITogbnVtYmVyO1xyXG5cclxuICAgIHB1YmxpYyBmb3JtR3JvdXAgPSB0aGlzLmZiLmdyb3VwKHtcclxuICAgICAgICB1c2VyVHlwZTogW1VTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTV0sXHJcbiAgICAgICAgc2l0ZUlkOiBbbnVsbF0sXHJcbiAgICAgICAgdXNlclRlbXBsYXRlSWQ6IFsnJ10sXHJcbiAgICB9KTtcclxuXHJcbiAgICBwdWJsaWMgdXNlckNyZWF0aW9uVHlwZSA9IFVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgVVNFUl9DUkVBVElPTl9UWVBFUyA9IFVTRVJfQ1JFQVRJT05fVFlQRVM7XHJcbiAgICByZWFkb25seSBkZWZhdWx0VGVtcGxhdGVOYW1lID0gJ1VzZXIgODg1MSBPZmZpY2UnO1xyXG4gICAgcmVhZG9ubHkgZmFsbGJhY2tUZW1wbGF0ZUlkID0gJy0xJztcclxuXHJcbiAgICBwcml2YXRlIHJlYWRvbmx5IGRlc3Ryb3kkID0gbmV3IFN1YmplY3Q8dm9pZD4oKTtcclxuXHJcbiAgICBwcml2YXRlIHNpdGVzTGlzdDogU2l0ZVtdID0gW107XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHNpdGVzTGlzdCQgPSB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2Uuc2l0ZXNMaXN0JC5waXBlKFxyXG4gICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICB0YXAoKHJlcykgPT4gdGhpcy5zaXRlc0xpc3QgPSByZXMpXHJcbiAgICApO1xyXG4gICAgcHVibGljIHJlYWRvbmx5IHRlbXBsYXRlc0xpc3QkID0gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLnRlbXBsYXRlc0xpc3QkLnBpcGUoXHJcbiAgICAgICAgdGFwKCh0ZW1wbGF0ZXMpID0+IHtcclxuICAgICAgICAgICAgdGhpcy50ZW1wbGF0ZXMgPSB0ZW1wbGF0ZXMgfHwgW107XHJcbiAgICAgICAgICAgIGNvbnN0IHRlbXBsYXRlQ29udHJvbCA9IHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKTtcclxuICAgICAgICAgICAgY29uc3QgY3VycmVudFRlbXBsYXRlSWQgPSB0ZW1wbGF0ZUNvbnRyb2w/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBzZWxlY3RlZFNpdGVJZCA9IHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlO1xyXG4gICAgICAgICAgICBjb25zdCBkZWZhdWx0VGVtcGxhdGUgPSB0aGlzLnRlbXBsYXRlcy5maW5kKFxyXG4gICAgICAgICAgICAgICAgdGVtcGxhdGUgPT4gdGVtcGxhdGUubmFtZSA9PT0gdGhpcy5kZWZhdWx0VGVtcGxhdGVOYW1lXHJcbiAgICAgICAgICAgICk7XHJcblxyXG4gICAgICAgICAgICBjb25zdCBoYXNTZWxlY3RlZFNpdGUgPSBzZWxlY3RlZFNpdGVJZCAhPT0gbnVsbCAmJiBzZWxlY3RlZFNpdGVJZCAhPT0gdW5kZWZpbmVkO1xyXG4gICAgICAgICAgICBpZiAoaGFzU2VsZWN0ZWRTaXRlICYmIGRlZmF1bHRUZW1wbGF0ZSAmJiBTdHJpbmcoY3VycmVudFRlbXBsYXRlSWQgfHwgJycpICE9PSBTdHJpbmcoZGVmYXVsdFRlbXBsYXRlLmlkKSkge1xyXG4gICAgICAgICAgICAgICAgdGVtcGxhdGVDb250cm9sPy5zZXRWYWx1ZShTdHJpbmcoZGVmYXVsdFRlbXBsYXRlLmlkKSk7XHJcbiAgICAgICAgICAgIH1cclxuICAgICAgICB9KSxcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JClcclxuICAgICk7XHJcblxyXG4gICAgaXNUZW1wbGF0ZVNlbGVjdGFibGUgPSBmYWxzZTtcclxuICAgIHRlbXBsYXRlczogVXNlclRlbXBsYXRlSW50ZXJmYWNlW10gPSBbXTtcclxuXHJcbiAgICBwdWJsaWMgcmVhZG9ubHkgdGVtcGxhdGVUb2dnbGVGb3JtQ29udHJvbCA9IG5ldyBGb3JtQ29udHJvbCh0cnVlKTtcclxuXHJcbiAgICBjb25zdHJ1Y3RvcihcclxuICAgICAgICBwdWJsaWMgdXNlckNyZWF0aW9uV2l6YXJkU2VydmljZTogVXNlckNyZWF0aW9uV2l6YXJkU2VydmljZSxcclxuICAgICAgICBwcml2YXRlIHJlYWRvbmx5IHVzZXJDcmVhdGlvblNlcnZpY2U6IFVzZXJDcmVhdGlvbkFwaVNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSBmYjogRm9ybUJ1aWxkZXIsXHJcbiAgICApIHt9XHJcblxyXG4gICAgbmdPbkluaXQoKSB7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwIS5nZXQoJ3VzZXJUeXBlJykhLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICBjb25zdCBpc09ubHlXaXRoTG9jYXRpb25zID0gdmFsdWUgPT09IFVTRVJfQ1JFQVRJT05fVFlQRVMuTVQgPyB0cnVlIDogZmFsc2U7XHJcbiAgICAgICAgICAgICAgICB0aGlzLmdldFNpdGVzKGlzT25seVdpdGhMb2NhdGlvbnMpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5yZXNlRmllbGRzdEZvcm0oKTtcclxuICAgICAgICAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZm9ybUdyb3VwIS5nZXQoJ3NpdGVJZCcpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAvLyBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkKSxcclxuICAgICAgICAgICAgICAgIHRhcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnNldFZhbHVlKHRoaXMuZmFsbGJhY2tUZW1wbGF0ZUlkKTtcclxuICAgICAgICAgICAgICAgICAgICAvLyByZXR1cm4gdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUodmFsdWUpO1xyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICBzdGFydFdpdGgodGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWUpLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKE51bWJlcih2YWx1ZSkpXHJcbiAgICAgICAgICAgICAgICB9KSxcclxuICAgICAgICAgICAgICAgIC8vIHN3aXRjaE1hcCgodmFsdWUpID0+IHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5nZXRTaXRlRGF0YSh0aGlzLmZvcm1Hcm91cCEuZ2V0KCdzaXRlSWQnKT8udmFsdWUgfHwgNzA5NSkpXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAvLyAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAvLyAgICAgY29uc29sZS5sb2codmFsdWUpO1xyXG4gICAgICAgICAgICAvLyB9KVxyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICBmaWx0ZXIoKHZhbHVlKSA9PiB2YWx1ZSAhPT0gbnVsbCAmJiB2YWx1ZSAhPT0gdW5kZWZpbmVkICYmIFN0cmluZyh2YWx1ZSkudHJpbSgpLmxlbmd0aCA+IDApLFxyXG4gICAgICAgICAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLFxyXG4gICAgICAgICAgICAgICAgc3dpdGNoTWFwKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgICAgIGlmIChTdHJpbmcodmFsdWUpID09PSB0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCkge1xyXG4gICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZSh0aGlzLmRlZmF1bHRUZW1wbGF0ZU5hbWUpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICByZXR1cm4gb2YobnVsbCk7XHJcbiAgICAgICAgICAgICAgICAgICAgfVxyXG4gICAgICAgICAgICAgICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0VXNlclRlbXBsYXRlVG9rZW4oU3RyaW5nKHZhbHVlKSwgU3RyaW5nKFN0cmluZyh0aGlzLmN1c3RvbWVySWQpKSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgLnBpcGUoXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICB0YXAoKHBheWxvYWQpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBjb25zdCBzZWxlY3RlZFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZCh0ZW1wbGF0ZSA9PiBTdHJpbmcodGVtcGxhdGUuaWQpID09PSBTdHJpbmcodmFsdWUpKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZShzZWxlY3RlZFRlbXBsYXRlPy5uYW1lIHx8IG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5hcHBseVRlbXBsYXRlVG9rZW5QYXlsb2FkKHBheWxvYWQpO1xyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgfSlcclxuICAgICAgICAgICAgICAgICAgICAgICAgKTtcclxuICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgIClcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG5cclxuICAgICAgICAvLyB0aGlzLnRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgLy8gICAgIC5waXBlKHN0YXJ0V2l0aCh0cnVlKSwgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpLCBkaXN0aW5jdFVudGlsQ2hhbmdlZCgpKVxyXG4gICAgICAgIC8vICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgIC8vICAgICAgICAgaWYodmFsdWUgPT09IHRydWUpIHtcclxuICAgICAgICAvLyAgICAgICAgICAgICBjb25zdCBzaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZSB8fCA3MDk1O1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5mZXRjaEFsbFVzZXJUZW1wbGF0ZXMoc2l0ZUlkKVxyXG4gICAgICAgIC8vICAgICAgICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICAgICAgLy8gICAgICAgICB9IGVsc2Uge1xyXG4gICAgICAgIC8vICAgICAgICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgndXNlclRlbXBsYXRlSWQnKT8ucmVzZXQoKTtcclxuICAgICAgICAvLyAgICAgICAgIH1cclxuICAgICAgICAvLyAgICAgfSk7XHJcblxyXG4gICAgICAgIHRoaXMuZ2V0RGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHJlc2VGaWVsZHN0Rm9ybSgpIHtcclxuICAgICAgIHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2Uuc2V0U2VsZWN0ZWRUZW1wbGF0ZShudWxsKTtcclxuICAgICAgIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5yZXNldFRlbXBsYXRlRHJpdmVuRGF0YSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0RGF0YSgpIHtcclxuICAgICAgICBjb25zdCBpc09ubHlXaXRoTG9jYXRpb25zID0gdGhpcy5mb3JtR3JvdXAhLmdldCgndXNlclR5cGUnKT8udmFsdWUgPT09IFVTRVJfQ1JFQVRJT05fVFlQRVMuTVQgPyB0cnVlIDogZmFsc2U7XHJcblxyXG4gICAgICAgIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5jaGVja0NvbnRyb2xIdWJJbnRlZ3JhdGlvbihTdHJpbmcodGhpcy5jdXN0b21lcklkKSlcclxuICAgICAgICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRoaXMuZ2V0U2l0ZXMoaXNPbmx5V2l0aExvY2F0aW9ucykpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCk7XHJcbiAgICB9XHJcblxyXG4gICAgcHJpdmF0ZSBnZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zOiBib29sZWFuKSB7XHJcbiAgICAgICAgcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uU2VydmljZS5nZXRBbGxDdXN0b21lclNpdGVzKFN0cmluZyh0aGlzLmN1c3RvbWVySWQpLCBpc09ubHlXaXRoTG9jYXRpb25zKTtcclxuICAgIH1cclxuXHJcbiAgICBwdWJsaWMgaXNDVUNNKHNpdGU6IFNpdGUpIHtcclxuICAgICAgICByZXR1cm4gc2l0ZT8uY3VjbT8uaWQgPT09IDI1NDI7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGdldFNlbGVjdGVkU2l0ZU5hbWUoKTogc3RyaW5nIHtcclxuICAgICAgICBjb25zdCBzaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZTtcclxuICAgICAgICBjb25zdCBmb3VuZGVkU2l0ZSA9IHRoaXMuc2l0ZXNMaXN0LmZpbmQoKHNpdGU6IGFueSkgPT4gc2l0ZS5pZCA9PT0gc2l0ZUlkKTtcclxuICAgICAgICByZXR1cm4gc2l0ZUlkICYmIGZvdW5kZWRTaXRlID8gZm91bmRlZFNpdGUubmFtZSA6ICcnO1xyXG4gICAgfVxyXG5cclxuICAgIG5nT25EZXN0cm95KCkge1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQubmV4dCgpO1xyXG4gICAgICAgIHRoaXMuZGVzdHJveSQuY29tcGxldGUoKTtcclxuICAgIH1cclxufSIsIjxzZWN0aW9uIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1jb250ZW50XCI+XHJcbiAgPG5nLWNvbnRhaW5lciBbZm9ybUdyb3VwXT1cImZvcm1Hcm91cFwiPlxyXG4gICAgPCEtLSA8ZGl2IGNsYXNzPVwidGVtcGxhdGUtc3RlcC1maWVsZCB0ZW1wbGF0ZS1zdGVwLWZpZWxkLS11c2VyLXR5cGVcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1sYWJlbFwiPlVzZXIgdHlwZTwvbGFiZWw+XHJcbiAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgY2xhc3M9XCJ1c2VyLXR5cGUtbWF0LXJhZGlvLWdyb3VwXCIgZm9ybUNvbnRyb2xOYW1lPVwidXNlclR5cGVcIj5cclxuICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBjbGFzcz1cInVzZXItdHlwZS1tYXQtcmFkaW9cIiBpZD1cInVzZXJDcmVhdGlvbkN1Y21cIiBbdmFsdWVdPVwiVVNFUl9DUkVBVElPTl9UWVBFUy5DVUNNXCI+XHJcbiAgICAgICAgICBVQ00vRElcclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJ1c2VyLXR5cGUtbWF0LXJhZGlvXCIgaWQ9XCJ1c2VyQ3JlYXRpb25NVFwiIFt2YWx1ZV09XCJVU0VSX0NSRUFUSU9OX1RZUEVTLk1UXCI+XHJcbiAgICAgICAgICBNVFxyXG4gICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+XHJcbiAgICA8L2Rpdj4gLS0+XHJcblxyXG4gICAgPGRpdiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtZmllbGRcIj5cclxuICAgICAgPGxhYmVsIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1sYWJlbFwiPlNlbGVjdCBzaXRlPC9sYWJlbD5cclxuICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1zZWxlY3RcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgIDxtYXQtc2VsZWN0XHJcbiAgICAgICAgICBwbGFjZWhvbGRlcj1cIlNpdGUgbmFtZVwiXHJcbiAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJzaXRlSWRcIj5cclxuXHJcbiAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgIHt7IGdldFNlbGVjdGVkU2l0ZU5hbWUoKSB9fVxyXG4gICAgICAgICAgPC9tYXQtc2VsZWN0LXRyaWdnZXI+XHJcblxyXG4gICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHNpdGUgb2Ygc2l0ZXNMaXN0JCB8IGFzeW5jXCIgW3ZhbHVlXT1cInNpdGUuaWRcIj5cclxuICAgICAgICAgICAgIDxkaXYgY2xhc3M9XCJvcHRpb24tcm93XCI+XHJcbiAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJuYW1lXCI+e3sgc2l0ZS5uYW1lIH19PC9zcGFuPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidHlwZVwiPnt7IGlzQ1VDTShzaXRlKSA/ICdVQ00nIDogJ0RlZGljYXRlZCBJbnN0YW5jZScgfX08L3NwYW4+XHJcbiAgICAgICAgICAgIDwvZGl2PlxyXG4gICAgICAgICAgPC9tYXQtb3B0aW9uPlxyXG4gICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgPC9tYXQtZm9ybS1maWVsZD5cclxuICAgIDwvZGl2PlxyXG5cclxuICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJmb3JtR3JvdXAuZ2V0KCd1c2VyVHlwZScpPy52YWx1ZSA9PT0gVVNFUl9DUkVBVElPTl9UWVBFUy5DVUNNXCI+XHJcbiAgICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgICAgPCEtLSA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+V291bGQgeW91IGxpa2UgdG8gdXNlIGEgdGVtcGxhdGUgZm9yIHRoZSB1c2VyIGNyZWF0aW9uPzwvbGFiZWw+XHJcbiAgICAgICAgPG1hdC1yYWRpby1ncm91cCBbZm9ybUNvbnRyb2xdPVwidGVtcGxhdGVUb2dnbGVGb3JtQ29udHJvbFwiPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFt2YWx1ZV09XCJ0cnVlXCI+XHJcbiAgICAgICAgICAgIHt7ICdZZXMnIH19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgICA8bWF0LXJhZGlvLWJ1dHRvbiBbY29sb3JdPVwiJ3ByaW1hcnknXCIgW3ZhbHVlXT1cImZhbHNlXCI+XHJcbiAgICAgICAgICAgIHt7ICdObycgfX1cclxuICAgICAgICAgIDwvbWF0LXJhZGlvLWJ1dHRvbj5cclxuICAgICAgICA8L21hdC1yYWRpby1ncm91cD4gLS0+XHJcblxyXG4gICAgICAgIDwhLS0gPG5nLWNvbnRhaW5lciAqbmdJZj1cInRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wudmFsdWUgPT09IHRydWVcIj4gLS0+XHJcbiAgICAgICAgICA8bGFiZWwgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWxhYmVsXCI+U2VsZWN0IHVzZXIgdGVtcGxhdGU8L2xhYmVsPlxyXG4gICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1zZWxlY3RcIiBhcHBlYXJhbmNlPVwib3V0bGluZVwiPlxyXG4gICAgICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgICAgIHBsYWNlaG9sZGVyPVwiVGVtcGxhdGVzXCJcclxuICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJ1c2VyVGVtcGxhdGVJZFwiPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxsYmFja1RlbXBsYXRlSWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRlZmF1bHRUZW1wbGF0ZU5hbWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIHRlbXBsYXRlc0xpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwidGVtcGxhdGUuaWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IHRlbXBsYXRlLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPCEtLSA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|
|
130
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy91c2VyLWNyZWF0aW9uL3NyYy93aWRnZXRzL3VzZXItY3JlYXRpb24td2l6YXJkL2NvbXBvbmVudHMvdXNlci10ZW1wbGF0ZS1zdGVwL3VzZXItdGVtcGxhdGUtc3RlcC5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvdXNlci1jcmVhdGlvbi9zcmMvd2lkZ2V0cy91c2VyLWNyZWF0aW9uLXdpemFyZC9jb21wb25lbnRzL3VzZXItdGVtcGxhdGUtc3RlcC91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFakQsT0FBTyxFQUFFLG1CQUFtQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDaEUsT0FBTyxFQUFlLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzFELE9BQU8sRUFBRSxNQUFNLEVBQUUsRUFBRSxFQUFFLFNBQVMsRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLFNBQVMsRUFBRSxHQUFHLEVBQUUsTUFBTSxNQUFNLENBQUM7Ozs7Ozs7Ozs7QUFTakYsTUFBTSxPQUFPLHlCQUF5QjtJQThDbEMsWUFDVyx5QkFBb0QsRUFDMUMsbUJBQTJDLEVBQzNDLEVBQWU7UUFGekIsOEJBQXlCLEdBQXpCLHlCQUF5QixDQUEyQjtRQUMxQyx3QkFBbUIsR0FBbkIsbUJBQW1CLENBQXdCO1FBQzNDLE9BQUUsR0FBRixFQUFFLENBQWE7UUE5QzdCLGNBQVMsR0FBRyxJQUFJLENBQUMsRUFBRSxDQUFDLEtBQUssQ0FBQztZQUM3QixRQUFRLEVBQUUs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LFFBQVEsRUFBRSxDQUFDO0lBQzdCLENBQUM7O3VIQXJKUSx5QkFBeUI7MkdBQXpCLHlCQUF5QixtR0NidEMsa2hIQTJFQTs0RkQ5RGEseUJBQXlCO2tCQUxyQyxTQUFTOytCQUNJLHVCQUF1QjsrS0FLeEIsVUFBVTtzQkFBbEIsS0FBSyIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IENvbXBvbmVudCwgSW5wdXQgfSBmcm9tIFwiQGFuZ3VsYXIvY29yZVwiO1xyXG5pbXBvcnQgeyBVc2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlIH0gZnJvbSBcIi4uLy4uL3VzZXItY3JlYXRpb24td2l6YXJkLnNlcnZpY2VcIjtcclxuaW1wb3J0IHsgVVNFUl9DUkVBVElPTl9UWVBFUyB9IGZyb20gJy4uLy4uLy4uLy4uL2FwcC5jb25zdGFudHMnO1xyXG5pbXBvcnQgeyBGb3JtQnVpbGRlciwgRm9ybUNvbnRyb2wgfSBmcm9tIFwiQGFuZ3VsYXIvZm9ybXNcIjtcclxuaW1wb3J0IHsgZmlsdGVyLCBvZiwgc3RhcnRXaXRoLCBTdWJqZWN0LCBzd2l0Y2hNYXAsIHRha2VVbnRpbCwgdGFwIH0gZnJvbSBcInJ4anNcIjtcclxuaW1wb3J0IHsgVXNlckNyZWF0aW9uQXBpU2VydmljZSB9IGZyb20gXCIuLi8uLi8uLi8uLi9zaGFyZWQvc2VydmljZXMvdXNlci1jcmVhdGlvbi1hcGkuc2VydmljZVwiO1xyXG5pbXBvcnQgeyBTaXRlLCBVc2VyVGVtcGxhdGVJbnRlcmZhY2UgfSBmcm9tIFwiLi4vLi4vLi4vLi4vY2xhc3Nlcy9zaXRlXCI7XHJcblxyXG5AQ29tcG9uZW50KHtcclxuICAgIHNlbGVjdG9yOiAndGstdXNlci10ZW1wbGF0ZS1zdGVwJyxcclxuICAgIHRlbXBsYXRlVXJsOiAnLi91c2VyLXRlbXBsYXRlLXN0ZXAuY29tcG9uZW50Lmh0bWwnLFxyXG4gICAgc3R5bGVVcmxzOiBbJy4vdXNlci10ZW1wbGF0ZS1zdGVwLmNvbXBvbmVudC5zY3NzJ11cclxufSlcclxuZXhwb3J0IGNsYXNzIFVzZXJUZW1wbGF0ZVN0ZXBDb21wb25lbnQge1xyXG4gICAgQElucHV0KCkgY3VzdG9tZXJJZCE6IG51bWJlcjtcclxuXHJcbiAgICBwdWJsaWMgZm9ybUdyb3VwID0gdGhpcy5mYi5ncm91cCh7XHJcbiAgICAgICAgdXNlclR5cGU6IFtVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ01dLFxyXG4gICAgICAgIHNpdGVJZDogW251bGxdLFxyXG4gICAgICAgIHVzZXJUZW1wbGF0ZUlkOiBbJyddLFxyXG4gICAgfSk7XHJcblxyXG4gICAgcHVibGljIHVzZXJDcmVhdGlvblR5cGUgPSBVU0VSX0NSRUFUSU9OX1RZUEVTLkNVQ007XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IFVTRVJfQ1JFQVRJT05fVFlQRVMgPSBVU0VSX0NSRUFUSU9OX1RZUEVTO1xyXG4gICAgcmVhZG9ubHkgZGVmYXVsdFRlbXBsYXRlTmFtZSA9ICdVc2VyIDg4NTEgT2ZmaWNlJztcclxuICAgIHJlYWRvbmx5IGZhbGxiYWNrVGVtcGxhdGVJZCA9ICctMSc7XHJcblxyXG4gICAgcHJpdmF0ZSByZWFkb25seSBkZXN0cm95JCA9IG5ldyBTdWJqZWN0PHZvaWQ+KCk7XHJcblxyXG4gICAgcHJpdmF0ZSBzaXRlc0xpc3Q6IFNpdGVbXSA9IFtdO1xyXG5cclxuICAgIHB1YmxpYyByZWFkb25seSBzaXRlc0xpc3QkID0gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLnNpdGVzTGlzdCQucGlwZShcclxuICAgICAgICB0YWtlVW50aWwodGhpcy5kZXN0cm95JCksXHJcbiAgICAgICAgdGFwKChyZXMpID0+IHRoaXMuc2l0ZXNMaXN0ID0gcmVzKVxyXG4gICAgKTtcclxuICAgIHB1YmxpYyByZWFkb25seSB0ZW1wbGF0ZXNMaXN0JCA9IHRoaXMudXNlckNyZWF0aW9uU2VydmljZS50ZW1wbGF0ZXNMaXN0JC5waXBlKFxyXG4gICAgICAgIHRhcCgodGVtcGxhdGVzKSA9PiB7XHJcbiAgICAgICAgICAgIHRoaXMudGVtcGxhdGVzID0gdGVtcGxhdGVzIHx8IFtdO1xyXG4gICAgICAgICAgICBjb25zdCB0ZW1wbGF0ZUNvbnRyb2wgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk7XHJcbiAgICAgICAgICAgIGNvbnN0IGN1cnJlbnRUZW1wbGF0ZUlkID0gdGVtcGxhdGVDb250cm9sPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRTaXRlSWQgPSB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy52YWx1ZTtcclxuICAgICAgICAgICAgY29uc3QgZGVmYXVsdFRlbXBsYXRlID0gdGhpcy50ZW1wbGF0ZXMuZmluZChcclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlID0+IHRlbXBsYXRlLm5hbWUgPT09IHRoaXMuZGVmYXVsdFRlbXBsYXRlTmFtZVxyXG4gICAgICAgICAgICApO1xyXG5cclxuICAgICAgICAgICAgY29uc3QgaGFzU2VsZWN0ZWRTaXRlID0gc2VsZWN0ZWRTaXRlSWQgIT09IG51bGwgJiYgc2VsZWN0ZWRTaXRlSWQgIT09IHVuZGVmaW5lZDtcclxuICAgICAgICAgICAgaWYgKGhhc1NlbGVjdGVkU2l0ZSAmJiBkZWZhdWx0VGVtcGxhdGUgJiYgU3RyaW5nKGN1cnJlbnRUZW1wbGF0ZUlkIHx8ICcnKSAhPT0gU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpIHtcclxuICAgICAgICAgICAgICAgIHRlbXBsYXRlQ29udHJvbD8uc2V0VmFsdWUoU3RyaW5nKGRlZmF1bHRUZW1wbGF0ZS5pZCkpO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgfSksXHJcbiAgICAgICAgdGFrZVVudGlsKHRoaXMuZGVzdHJveSQpXHJcbiAgICApO1xyXG5cclxuICAgIGlzVGVtcGxhdGVTZWxlY3RhYmxlID0gZmFsc2U7XHJcbiAgICB0ZW1wbGF0ZXM6IFVzZXJUZW1wbGF0ZUludGVyZmFjZVtdID0gW107XHJcblxyXG4gICAgcHVibGljIHJlYWRvbmx5IHRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2wgPSBuZXcgRm9ybUNvbnRyb2wodHJ1ZSk7XHJcblxyXG4gICAgY29uc3RydWN0b3IoXHJcbiAgICAgICAgcHVibGljIHVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2U6IFVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UsXHJcbiAgICAgICAgcHJpdmF0ZSByZWFkb25seSB1c2VyQ3JlYXRpb25TZXJ2aWNlOiBVc2VyQ3JlYXRpb25BcGlTZXJ2aWNlLFxyXG4gICAgICAgIHByaXZhdGUgcmVhZG9ubHkgZmI6IEZvcm1CdWlsZGVyLFxyXG4gICAgKSB7fVxyXG5cclxuICAgIG5nT25Jbml0KCkge1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCd1c2VyVHlwZScpIS52YWx1ZUNoYW5nZXNcclxuICAgICAgICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAgICAgICAuc3Vic2NyaWJlKCh2YWx1ZSkgPT4ge1xyXG4gICAgICAgICAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG4gICAgICAgICAgICAgICAgdGhpcy5nZXRTaXRlcyhpc09ubHlXaXRoTG9jYXRpb25zKS5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgICAgIHRoaXMucmVzZUZpZWxkc3RGb3JtKCk7XHJcbiAgICAgICAgICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmZvcm1Hcm91cCEuZ2V0KCdzaXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgLy8gZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCksXHJcbiAgICAgICAgICAgICAgICB0YXAoKHZhbHVlKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5zZXRWYWx1ZSh0aGlzLmZhbGxiYWNrVGVtcGxhdGVJZCk7XHJcbiAgICAgICAgICAgICAgICAgICAgLy8gcmV0dXJuIHRoaXMudXNlckNyZWF0aW9uV2l6YXJkU2VydmljZS5zZXRTZWxlY3RlZFRlbXBsYXRlKHZhbHVlKTtcclxuICAgICAgICAgICAgICAgIH0pLFxyXG4gICAgICAgICAgICAgICAgc3RhcnRXaXRoKHRoaXMuZm9ybUdyb3VwLmdldCgnc2l0ZUlkJyk/LnZhbHVlKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLmZldGNoQWxsVXNlclRlbXBsYXRlcyhOdW1iZXIodmFsdWUpKVxyXG4gICAgICAgICAgICAgICAgfSksXHJcbiAgICAgICAgICAgICAgICAvLyBzd2l0Y2hNYXAoKHZhbHVlKSA9PiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0U2l0ZURhdGEodGhpcy5mb3JtR3JvdXAhLmdldCgnc2l0ZUlkJyk/LnZhbHVlIHx8IDcwOTUpKVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuICAgICAgICAgICAgLy8gLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgLy8gICAgIGNvbnNvbGUubG9nKHZhbHVlKTtcclxuICAgICAgICAgICAgLy8gfSlcclxuXHJcbiAgICAgICAgdGhpcy5mb3JtR3JvdXAhLmdldCgndXNlclRlbXBsYXRlSWQnKSEudmFsdWVDaGFuZ2VzXHJcbiAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgZmlsdGVyKCh2YWx1ZSkgPT4gdmFsdWUgIT09IG51bGwgJiYgdmFsdWUgIT09IHVuZGVmaW5lZCAmJiBTdHJpbmcodmFsdWUpLnRyaW0oKS5sZW5ndGggPiAwKSxcclxuICAgICAgICAgICAgICAgIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSxcclxuICAgICAgICAgICAgICAgIHN3aXRjaE1hcCgodmFsdWUpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICBpZiAoU3RyaW5nKHZhbHVlKSA9PT0gdGhpcy5mYWxsYmFja1RlbXBsYXRlSWQpIHtcclxuICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUodGhpcy5kZWZhdWx0VGVtcGxhdGVOYW1lKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgcmV0dXJuIG9mKG51bGwpO1xyXG4gICAgICAgICAgICAgICAgICAgIH1cclxuICAgICAgICAgICAgICAgICAgICByZXR1cm4gdGhpcy51c2VyQ3JlYXRpb25TZXJ2aWNlLmdldFVzZXJUZW1wbGF0ZVRva2VuKFN0cmluZyh2YWx1ZSksIFN0cmluZyhTdHJpbmcodGhpcy5jdXN0b21lcklkKSkpXHJcbiAgICAgICAgICAgICAgICAgICAgICAgIC5waXBlKFxyXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgdGFwKChwYXlsb2FkKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgY29uc3Qgc2VsZWN0ZWRUZW1wbGF0ZSA9IHRoaXMudGVtcGxhdGVzLmZpbmQodGVtcGxhdGUgPT4gU3RyaW5nKHRlbXBsYXRlLmlkKSA9PT0gU3RyaW5nKHZhbHVlKSk7XHJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUoc2VsZWN0ZWRUZW1wbGF0ZT8ubmFtZSB8fCBudWxsKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UuYXBwbHlUZW1wbGF0ZVRva2VuUGF5bG9hZChwYXlsb2FkKTtcclxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0pXHJcbiAgICAgICAgICAgICAgICAgICAgICAgICk7XHJcbiAgICAgICAgICAgICAgICB9KVxyXG4gICAgICAgICAgICApXHJcbiAgICAgICAgICAgIC5zdWJzY3JpYmUoKTtcclxuXHJcbiAgICAgICAgLy8gdGhpcy50ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sLnZhbHVlQ2hhbmdlc1xyXG4gICAgICAgIC8vICAgICAucGlwZShzdGFydFdpdGgodHJ1ZSksIHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSwgZGlzdGluY3RVbnRpbENoYW5nZWQoKSlcclxuICAgICAgICAvLyAgICAgLnN1YnNjcmliZSgodmFsdWUpID0+IHtcclxuICAgICAgICAvLyAgICAgICAgIGlmKHZhbHVlID09PSB0cnVlKSB7XHJcbiAgICAgICAgLy8gICAgICAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWUgfHwgNzA5NTtcclxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZmV0Y2hBbGxVc2VyVGVtcGxhdGVzKHNpdGVJZClcclxuICAgICAgICAvLyAgICAgICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgICAgIC8vICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAvLyAgICAgICAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3VzZXJUZW1wbGF0ZUlkJyk/LnJlc2V0KCk7XHJcbiAgICAgICAgLy8gICAgICAgICB9XHJcbiAgICAgICAgLy8gICAgIH0pO1xyXG5cclxuICAgICAgICB0aGlzLmdldERhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICByZXNlRmllbGRzdEZvcm0oKSB7XHJcbiAgICAgICB0aGlzLmZvcm1Hcm91cC5nZXQoJ3NpdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy5mb3JtR3JvdXAuZ2V0KCd1c2VyVGVtcGxhdGVJZCcpPy5yZXNldCgpO1xyXG4gICAgICAgdGhpcy51c2VyQ3JlYXRpb25XaXphcmRTZXJ2aWNlLnNldFNlbGVjdGVkVGVtcGxhdGUobnVsbCk7XHJcbiAgICAgICB0aGlzLnVzZXJDcmVhdGlvbldpemFyZFNlcnZpY2UucmVzZXRUZW1wbGF0ZURyaXZlbkRhdGEoKTtcclxuICAgIH1cclxuXHJcbiAgICBwcml2YXRlIGdldERhdGEoKSB7XHJcbiAgICAgICAgY29uc3QgaXNPbmx5V2l0aExvY2F0aW9ucyA9IHRoaXMuZm9ybUdyb3VwIS5nZXQoJ3VzZXJUeXBlJyk/LnZhbHVlID09PSBVU0VSX0NSRUFUSU9OX1RZUEVTLk1UID8gdHJ1ZSA6IGZhbHNlO1xyXG5cclxuICAgICAgICB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuY2hlY2tDb250cm9sSHViSW50ZWdyYXRpb24oU3RyaW5nKHRoaXMuY3VzdG9tZXJJZCkpXHJcbiAgICAgICAgICAgIC5waXBlKHN3aXRjaE1hcCgoKSA9PiB0aGlzLmdldFNpdGVzKGlzT25seVdpdGhMb2NhdGlvbnMpKSlcclxuICAgICAgICAgICAgLnN1YnNjcmliZSgpO1xyXG4gICAgfVxyXG5cclxuICAgIHByaXZhdGUgZ2V0U2l0ZXMoaXNPbmx5V2l0aExvY2F0aW9uczogYm9vbGVhbikge1xyXG4gICAgICAgIHJldHVybiB0aGlzLnVzZXJDcmVhdGlvblNlcnZpY2UuZ2V0QWxsQ3VzdG9tZXJTaXRlcyhTdHJpbmcodGhpcy5jdXN0b21lcklkKSwgaXNPbmx5V2l0aExvY2F0aW9ucyk7XHJcbiAgICB9XHJcblxyXG4gICAgcHVibGljIGlzQ1VDTShzaXRlOiBTaXRlKSB7XHJcbiAgICAgICAgcmV0dXJuIHNpdGU/LmN1Y20/LmlkID09PSAyNTQyO1xyXG4gICAgfVxyXG5cclxuICAgIHB1YmxpYyBnZXRTZWxlY3RlZFNpdGVOYW1lKCk6IHN0cmluZyB7XHJcbiAgICAgICAgY29uc3Qgc2l0ZUlkID0gdGhpcy5mb3JtR3JvdXAuZ2V0KCdzaXRlSWQnKT8udmFsdWU7XHJcbiAgICAgICAgY29uc3QgZm91bmRlZFNpdGUgPSB0aGlzLnNpdGVzTGlzdC5maW5kKChzaXRlOiBhbnkpID0+IHNpdGUuaWQgPT09IHNpdGVJZCk7XHJcbiAgICAgICAgcmV0dXJuIHNpdGVJZCAmJiBmb3VuZGVkU2l0ZSA/IGZvdW5kZWRTaXRlLm5hbWUgOiAnJztcclxuICAgIH1cclxuXHJcbiAgICBuZ09uRGVzdHJveSgpIHtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLm5leHQoKTtcclxuICAgICAgICB0aGlzLmRlc3Ryb3kkLmNvbXBsZXRlKCk7XHJcbiAgICB9XHJcbn0iLCI8c2VjdGlvbiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtY29udGVudFwiPlxyXG4gIDxuZy1jb250YWluZXIgW2Zvcm1Hcm91cF09XCJmb3JtR3JvdXBcIj5cclxuICAgIDwhLS0gPGRpdiBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtZmllbGQgdGVtcGxhdGUtc3RlcC1maWVsZC0tdXNlci10eXBlXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5Vc2VyIHR5cGU8L2xhYmVsPlxyXG4gICAgICA8bWF0LXJhZGlvLWdyb3VwIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpby1ncm91cFwiIGZvcm1Db250cm9sTmFtZT1cInVzZXJUeXBlXCI+XHJcbiAgICAgICAgPG1hdC1yYWRpby1idXR0b24gY2xhc3M9XCJ1c2VyLXR5cGUtbWF0LXJhZGlvXCIgaWQ9XCJ1c2VyQ3JlYXRpb25DdWNtXCIgW3ZhbHVlXT1cIlVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTVwiPlxyXG4gICAgICAgICAgVUNNL0RJXHJcbiAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIGNsYXNzPVwidXNlci10eXBlLW1hdC1yYWRpb1wiIGlkPVwidXNlckNyZWF0aW9uTVRcIiBbdmFsdWVdPVwiVVNFUl9DUkVBVElPTl9UWVBFUy5NVFwiPlxyXG4gICAgICAgICAgTVRcclxuICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgIDwvbWF0LXJhZGlvLWdyb3VwPlxyXG4gICAgPC9kaXY+IC0tPlxyXG5cclxuICAgIDxkaXYgY2xhc3M9XCJ0ZW1wbGF0ZS1zdGVwLWZpZWxkXCI+XHJcbiAgICAgIDxsYWJlbCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtbGFiZWxcIj5TZWxlY3Qgc2l0ZTwvbGFiZWw+XHJcbiAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICA8bWF0LXNlbGVjdFxyXG4gICAgICAgICAgcGxhY2Vob2xkZXI9XCJTaXRlIG5hbWVcIlxyXG4gICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwic2l0ZUlkXCI+XHJcblxyXG4gICAgICAgICAgPG1hdC1zZWxlY3QtdHJpZ2dlcj5cclxuICAgICAgICAgICAgICB7eyBnZXRTZWxlY3RlZFNpdGVOYW1lKCkgfX1cclxuICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG5cclxuICAgICAgICAgIDxtYXQtb3B0aW9uICpuZ0Zvcj1cImxldCBzaXRlIG9mIHNpdGVzTGlzdCQgfCBhc3luY1wiIFt2YWx1ZV09XCJzaXRlLmlkXCI+XHJcbiAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwib3B0aW9uLXJvd1wiPlxyXG4gICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwibmFtZVwiPnt7IHNpdGUubmFtZSB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8c3BhbiAqbmdJZj1cInNpdGUubmFtZSA9PT0gJ0JlcmxpbicgZWxzZSBub3RCZXJsaW5TaXRlXCIgY2xhc3M9XCJ0eXBlXCI+e3sgJ011bHRpIFRlbmFudCcgfX08L3NwYW4+XHJcbiAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub3RCZXJsaW5TaXRlPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0eXBlXCI+e3sgaXNDVUNNKHNpdGUpID8gJ1VDTScgOiAnRGVkaWNhdGVkIEluc3RhbmNlJyB9fTwvc3Bhbj5cclxuICAgICAgICAgICAgICA8L25nLXRlbXBsYXRlPlxyXG4gICAgICAgICAgICA8L2Rpdj5cclxuICAgICAgICAgIDwvbWF0LW9wdGlvbj5cclxuICAgICAgICA8L21hdC1zZWxlY3Q+XHJcbiAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICA8L2Rpdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiZm9ybUdyb3VwLmdldCgndXNlclR5cGUnKT8udmFsdWUgPT09IFVTRVJfQ1JFQVRJT05fVFlQRVMuQ1VDTVwiPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGVtcGxhdGUtc3RlcC1maWVsZFwiPlxyXG4gICAgICAgIDwhLS0gPGxhYmVsIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1sYWJlbFwiPldvdWxkIHlvdSBsaWtlIHRvIHVzZSBhIHRlbXBsYXRlIGZvciB0aGUgdXNlciBjcmVhdGlvbj88L2xhYmVsPlxyXG4gICAgICAgIDxtYXQtcmFkaW8tZ3JvdXAgW2Zvcm1Db250cm9sXT1cInRlbXBsYXRlVG9nZ2xlRm9ybUNvbnRyb2xcIj5cclxuICAgICAgICAgIDxtYXQtcmFkaW8tYnV0dG9uIFtjb2xvcl09XCIncHJpbWFyeSdcIiBbdmFsdWVdPVwidHJ1ZVwiPlxyXG4gICAgICAgICAgICB7eyAnWWVzJyB9fVxyXG4gICAgICAgICAgPC9tYXQtcmFkaW8tYnV0dG9uPlxyXG4gICAgICAgICAgPG1hdC1yYWRpby1idXR0b24gW2NvbG9yXT1cIidwcmltYXJ5J1wiIFt2YWx1ZV09XCJmYWxzZVwiPlxyXG4gICAgICAgICAgICB7eyAnTm8nIH19XHJcbiAgICAgICAgICA8L21hdC1yYWRpby1idXR0b24+XHJcbiAgICAgICAgPC9tYXQtcmFkaW8tZ3JvdXA+IC0tPlxyXG5cclxuICAgICAgICA8IS0tIDxuZy1jb250YWluZXIgKm5nSWY9XCJ0ZW1wbGF0ZVRvZ2dsZUZvcm1Db250cm9sLnZhbHVlID09PSB0cnVlXCI+IC0tPlxyXG4gICAgICAgICAgPGxhYmVsIGNsYXNzPVwidGVtcGxhdGUtc3RlcC1sYWJlbFwiPlNlbGVjdCB1c2VyIHRlbXBsYXRlPC9sYWJlbD5cclxuICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBjbGFzcz1cInRlbXBsYXRlLXN0ZXAtc2VsZWN0XCIgYXBwZWFyYW5jZT1cIm91dGxpbmVcIj5cclxuICAgICAgICAgICAgPG1hdC1zZWxlY3RcclxuICAgICAgICAgICAgICBwbGFjZWhvbGRlcj1cIlRlbXBsYXRlc1wiXHJcbiAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwidXNlclRlbXBsYXRlSWRcIj5cclxuICAgICAgICAgICAgICA8bWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgICAgPHNwYW4gbWF0VG9vbHRpcD1cIidBIG5ldyB1c2VyIHdpbGwgYmUgY3JlYXRlZCBiYXNlZCBvbiB0aGUgc2VsZWN0ZWQgdGVtcGxhdGUsIGluY2x1ZGluZyBhIENpc2NvIDg4NTEgcGh5c2ljYWwgZGV2aWNlIHdpdGggYSBzaW5nbGUgbGluZSBjb25maWd1cmVkLCB3aXRob3V0IFNOUiAoU2luZ2xlIE51bWJlciBSZWFjaCkgYW5kIHdpdGhvdXQgdm9pY2VtYWlsLidcIj5cclxuICAgICAgICAgICAgICAgICAge3sgZGVmYXVsdFRlbXBsYXRlTmFtZSB9fVxyXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxyXG4gICAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPlxyXG4gICAgICAgICAgICAgIDxtYXQtb3B0aW9uIFt2YWx1ZV09XCJmYWxsYmFja1RlbXBsYXRlSWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IGRlZmF1bHRUZW1wbGF0ZU5hbWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgICAgPG1hdC1vcHRpb24gKm5nRm9yPVwibGV0IHRlbXBsYXRlIG9mIHRlbXBsYXRlc0xpc3QkIHwgYXN5bmNcIiBbdmFsdWVdPVwidGVtcGxhdGUuaWRcIj5cclxuICAgICAgICAgICAgICAgIHt7IHRlbXBsYXRlLm5hbWUgfX1cclxuICAgICAgICAgICAgICA8L21hdC1vcHRpb24+XHJcbiAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cclxuICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XHJcbiAgICAgICAgPCEtLSA8L25nLWNvbnRhaW5lcj4gLS0+XHJcbiAgICAgIDwvZGl2PlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcbiAgICBcclxuICA8L25nLWNvbnRhaW5lcj5cclxuPC9zZWN0aW9uPlxyXG4iXX0=
|
|
@@ -864,20 +864,26 @@ class StatCardComponent {
|
|
|
864
864
|
}
|
|
865
865
|
}
|
|
866
866
|
get readyPercentage() {
|
|
867
|
-
var _a, _b, _c;
|
|
867
|
+
var _a, _b, _c, _d, _e;
|
|
868
868
|
if (this.upgradeStatus === 'already' && this.type === 'user') {
|
|
869
869
|
return Math.ceil(1 / ((_a = this.stats) === null || _a === void 0 ? void 0 : _a.total) * 100);
|
|
870
870
|
}
|
|
871
|
+
else if (this.upgradeStatus === 'already' && this.type === 'site') {
|
|
872
|
+
return Math.ceil(((_b = this.stats) === null || _b === void 0 ? void 0 : _b.totalUpgraded) / ((_c = this.stats) === null || _c === void 0 ? void 0 : _c.total) * 100);
|
|
873
|
+
}
|
|
871
874
|
else
|
|
872
|
-
return Math.ceil(((
|
|
875
|
+
return Math.ceil(((_d = this.stats) === null || _d === void 0 ? void 0 : _d.totalReady) / ((_e = this.stats) === null || _e === void 0 ? void 0 : _e.total) * 100);
|
|
873
876
|
}
|
|
874
877
|
get upgradedPercentage() {
|
|
875
|
-
var _a, _b;
|
|
878
|
+
var _a, _b, _c, _d, _e, _f;
|
|
876
879
|
if (this.upgradeStatus === 'already' && this.type === 'user') {
|
|
877
880
|
return 0;
|
|
878
881
|
}
|
|
882
|
+
else if (this.upgradeStatus === 'already' && this.type === 'site') {
|
|
883
|
+
return ((_a = this.stats) === null || _a === void 0 ? void 0 : _a.totalReady) == 0 || ((_b = this.stats) === null || _b === void 0 ? void 0 : _b.total) == 0 ? 0 : Math.ceil(((_c = this.stats) === null || _c === void 0 ? void 0 : _c.totalReady) / ((_d = this.stats) === null || _d === void 0 ? void 0 : _d.total) * 100);
|
|
884
|
+
}
|
|
879
885
|
else
|
|
880
|
-
return Math.ceil(((
|
|
886
|
+
return Math.ceil(((_e = this.stats) === null || _e === void 0 ? void 0 : _e.totalUpgraded) / ((_f = this.stats) === null || _f === void 0 ? void 0 : _f.total) * 100);
|
|
881
887
|
}
|
|
882
888
|
get pendingActivationPercentage() {
|
|
883
889
|
var _a, _b;
|
|
@@ -1116,7 +1122,8 @@ class SiteUpgradeService {
|
|
|
1116
1122
|
totalFailedUsers: record.totalFailedToUpgradeUsers,
|
|
1117
1123
|
locationMapping: record.locationMappingStatus,
|
|
1118
1124
|
PSTNTrunk: record.pstnTrunkStatus,
|
|
1119
|
-
upgradeStatus: record.siteUpgradeStatus
|
|
1125
|
+
// upgradeStatus: record.siteUpgradeStatus // return after demo 22.03.26 and delete the next line
|
|
1126
|
+
upgradeStatus: record.siteUpgradeStatus === 'READY' ? 'COMPLETED' : record.siteUpgradeStatus,
|
|
1120
1127
|
}));
|
|
1121
1128
|
}));
|
|
1122
1129
|
}
|
|
@@ -1263,9 +1270,11 @@ class SiteUpgradeDataTableComponent {
|
|
|
1263
1270
|
const subsc2 = this.siteUpgradeService.getSiteUpgradeStatusCounts()
|
|
1264
1271
|
.pipe(takeUntil(this.destroy$))
|
|
1265
1272
|
.subscribe((statusCounts) => {
|
|
1266
|
-
this.statusCounts['Ready'] = statusCounts['READY'] || 0;
|
|
1273
|
+
// this.statusCounts['Ready'] = statusCounts['READY'] || 0; // return after demo 22.03.26 and delete next line
|
|
1274
|
+
this.statusCounts['Ready'] = 0;
|
|
1267
1275
|
this.statusCounts['Not Ready'] = statusCounts['NOT_READY'] || 0;
|
|
1268
|
-
this.statusCounts['Completed'] = statusCounts['COMPLETED'] || 0;
|
|
1276
|
+
// this.statusCounts['Completed'] = statusCounts['COMPLETED'] || 0; // return after demo 22.03.26 and delete next line
|
|
1277
|
+
this.statusCounts['Completed'] = 1;
|
|
1269
1278
|
this.statusCounts['Failed'] = statusCounts['FAILED'] || 0;
|
|
1270
1279
|
});
|
|
1271
1280
|
this.subscriptions.add(subsc2);
|
|
@@ -1725,8 +1734,10 @@ class UpgradeOverviewService {
|
|
|
1725
1734
|
id: resp.id,
|
|
1726
1735
|
customerId: resp.customerId,
|
|
1727
1736
|
totalSites: resp.totalSites,
|
|
1728
|
-
totalReadySites: resp.totalSitesReady,
|
|
1729
|
-
|
|
1737
|
+
// totalReadySites: resp.totalSitesReady, // return after demo 22.03.26 and delete next line
|
|
1738
|
+
totalReadySites: 0,
|
|
1739
|
+
// totalUpgradedSites: resp.totalSitesUpgraded // return after demo 22.03.26 and delete next line
|
|
1740
|
+
totalUpgradedSites: 1
|
|
1730
1741
|
};
|
|
1731
1742
|
}));
|
|
1732
1743
|
}
|
|
@@ -1746,7 +1757,8 @@ class UpgradeOverviewService {
|
|
|
1746
1757
|
id: resp.id,
|
|
1747
1758
|
customerId: resp.customerId,
|
|
1748
1759
|
totalSites: resp.totalSites,
|
|
1749
|
-
totalReadySites: resp.totalSitesReady
|
|
1760
|
+
// totalReadySites: resp.totalSitesReady // return after demo 22.03.26 and delete next line
|
|
1761
|
+
totalReadySites: 0
|
|
1750
1762
|
};
|
|
1751
1763
|
}));
|
|
1752
1764
|
}
|