@lowcodeunit/applications-flow-common 1.37.151-new-routes-page-setup → 1.37.152-new-routes-page-setup

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.
@@ -19,6 +19,7 @@ export class SecurityToggleComponent {
19
19
  this.eacSvc = eacSvc;
20
20
  this.formBldr = formBldr;
21
21
  this.SaveFormEvent = new EventEmitter();
22
+ this.IsPrivateChanged = new EventEmitter();
22
23
  this.SkeletonEffect = 'wave';
23
24
  }
24
25
  get AccessRightsFormControl() {
@@ -47,6 +48,7 @@ export class SecurityToggleComponent {
47
48
  }
48
49
  HandleIsPrivate(event) {
49
50
  this.IsPrivate = this.IsPrivateFormControl.value;
51
+ this.IsPrivateChanged.emit(this.IsPrivate);
50
52
  }
51
53
  setupSecurityFormGroup() {
52
54
  // console.log('setting form');
@@ -62,7 +64,7 @@ export class SecurityToggleComponent {
62
64
  }
63
65
  }
64
66
  SecurityToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SecurityToggleComponent, deps: [{ token: i1.EaCService }, { token: i2.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
65
- SecurityToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SecurityToggleComponent, selector: "lcu-security-toggle", inputs: { EditingApplication: ["editing-application", "EditingApplication"], Loading: ["loading", "Loading"], AccessRights: ["access-rights", "AccessRights"], LicenseConfigs: ["license-configs", "LicenseConfigs"] }, outputs: { SaveFormEvent: "save-form-event" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n (change)=\"HandleIsPrivate($event)\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivate\">\n <div class=\"toggle-container\">\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>Access Rights</mat-label>\n <mat-select\n formControlName=\"accessRights\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{accessRights?.value?.[0] || ''}}\n <span *ngIf=\"(accessRights.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(accessRights.value?.length || 0) - 1}} {{accessRights.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let rights of AccessRights\"\n [value]=\"rights\"\n >{{ rights }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>License Configs</mat-label>\n <mat-select\n formControlName=\"licenseConfigs\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{licenseConfigs.value?.[0] || ''}}\n <span *ngIf=\"(licenseConfigs.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(licenseConfigs.value?.length || 0) - 1}} {{licenseConfigs.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let configs of LicenseConfigs\"\n [value]=\"configs\"\n >{{ configs }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: [".flow-card{margin:32px 20px}.toggle-container{margin-bottom:10px}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i12.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
67
+ SecurityToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SecurityToggleComponent, selector: "lcu-security-toggle", inputs: { EditingApplication: ["editing-application", "EditingApplication"], Loading: ["loading", "Loading"], AccessRights: ["access-rights", "AccessRights"], LicenseConfigs: ["license-configs", "LicenseConfigs"] }, outputs: { SaveFormEvent: "save-form-event", IsPrivateChanged: "is-private-changed" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n (change)=\"HandleIsPrivate($event)\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivate\">\n <div class=\"toggle-container\">\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>Access Rights</mat-label>\n <mat-select\n formControlName=\"accessRights\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{accessRights?.value?.[0] || ''}}\n <span *ngIf=\"(accessRights.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(accessRights.value?.length || 0) - 1}} {{accessRights.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let rights of AccessRights\"\n [value]=\"rights\"\n >{{ rights }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>License Configs</mat-label>\n <mat-select\n formControlName=\"licenseConfigs\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{licenseConfigs.value?.[0] || ''}}\n <span *ngIf=\"(licenseConfigs.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(licenseConfigs.value?.length || 0) - 1}} {{licenseConfigs.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let configs of LicenseConfigs\"\n [value]=\"configs\"\n >{{ configs }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: [".flow-card{margin:32px 20px}.toggle-container{margin-bottom:10px}\n"], components: [{ type: i3.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i3.MatCardHeader, selector: "mat-card-header" }, { type: i4.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i6.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i7.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i8.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i9.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i2.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i2.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i2.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i10.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i11.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i3.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i12.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i3.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i11.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i2.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i2.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i13.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i6.MatSuffix, selector: "[matSuffix]" }, { type: i3.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i6.MatLabel, selector: "mat-label" }, { type: i10.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
66
68
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SecurityToggleComponent, decorators: [{
67
69
  type: Component,
68
70
  args: [{ selector: 'lcu-security-toggle', template: "<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n (change)=\"HandleIsPrivate($event)\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivate\">\n <div class=\"toggle-container\">\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>Access Rights</mat-label>\n <mat-select\n formControlName=\"accessRights\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{accessRights?.value?.[0] || ''}}\n <span *ngIf=\"(accessRights.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(accessRights.value?.length || 0) - 1}} {{accessRights.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let rights of AccessRights\"\n [value]=\"rights\"\n >{{ rights }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>License Configs</mat-label>\n <mat-select\n formControlName=\"licenseConfigs\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{licenseConfigs.value?.[0] || ''}}\n <span *ngIf=\"(licenseConfigs.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(licenseConfigs.value?.length || 0) - 1}} {{licenseConfigs.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let configs of LicenseConfigs\"\n [value]=\"configs\"\n >{{ configs }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: [".flow-card{margin:32px 20px}.toggle-container{margin-bottom:10px}\n"] }]
@@ -81,5 +83,8 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
81
83
  }], SaveFormEvent: [{
82
84
  type: Output,
83
85
  args: ['save-form-event']
86
+ }], IsPrivateChanged: [{
87
+ type: Output,
88
+ args: ['is-private-changed']
84
89
  }] } });
85
- //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL3NlY3VyaXR5LXRvZ2dsZS9zZWN1cml0eS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvc2VjdXJpdHktdG9nZ2xlL3NlY3VyaXR5LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFJSCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3hCLE1BQU0sT0FBTyx1QkFBdUI7SUF3Q2hDLFlBQXNCLE1BQWtCLEVBQVksUUFBcUI7UUFBbkQsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUFZLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUEzQkQsSUFBVyx1QkFBdUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDakMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBVyx5QkFBeUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUMzRCxDQUFDO0lBZU0sUUFBUSxLQUFVLENBQUM7SUFFbkIsV0FBVztRQUNkLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxJQUFJLElBQUksSUFBSSxDQUFDLFNBQVMsS0FBSyxTQUFTLEVBQUU7WUFDekQsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLFNBQVMsQ0FBQztZQUNqRSxJQUFJLENBQUMsc0JBQXNCLEVBQUUsQ0FBQztTQUNqQztJQUNMLENBQUM7SUFFTSxjQUFjO1FBQ2pCLDRCQUE0QjtRQUM1QixPQUFPLENBQUMsR0FBRyxDQUNQLDhCQUE4QixFQUM5QixJQUFJLENBQUMsaUJBQWlCLENBQUMsS0FBSyxDQUMvQixDQUFDO1FBQ0YsSUFBSSxDQUFDLGFBQWEsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FBQyxDQUFDO0lBQzFELENBQUM7SUFFTSxlQUFlLENBQUMsS0FBVTtRQUM3QixJQUFJLENBQUMsU0FBUyxHQUFHLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxLQUFLLENBQUM7SUFDckQsQ0FBQztJQUVTLHNCQUFzQjtRQUM1QiwrQkFBK0I7UUFDL0IsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsU0FBUyxFQUFFLElBQUksSUFBSSxFQUFFLENBQUM7UUFDcEUsSUFBSSxDQUFDLGlCQUFpQixHQUFHLElBQUksQ0FBQyxRQUFRLENBQUMsS0FBSyxDQUFDLEVBQUUsQ0FBQyxDQUFDO1FBQ2pELElBQUksQ0FBQyxpQkFBaUIsRUFBRSxDQUFDO0lBQzdCLENBQUM7SUFFUyxpQkFBaUI7UUFDdkIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FDN0IsV0FBVyxFQUNYLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLFNBQVMsSUFBSSxLQUFLLEVBQ3hELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN4QixDQUNKLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUM3QixpQkFBaUIsRUFDakIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ2pCLElBQUksQ0FBQyxrQkFBa0IsQ0FBQyxZQUFZLEVBQUUsZUFBZSxJQUFJLEtBQUssRUFDOUQsQ0FBQyxVQUFVLENBQUMsUUFBUSxDQUFDLENBQ3hCLENBQ0osQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQzdCLGNBQWMsRUFDZCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FBQyxJQUFJLENBQUMsa0JBQWtCLEVBQUUsa0JBQWtCLENBQUMsQ0FDckUsQ0FBQztRQUVGLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQzdCLGdCQUFnQixFQUNoQixJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDakIsSUFBSSxDQUFDLGtCQUFrQixFQUFFLDJCQUEyQixDQUN2RCxDQUNKLENBQUM7SUFDTixDQUFDOztvSEF0R1EsdUJBQXVCO3dHQUF2Qix1QkFBdUIsdVZDZnBDLG1sTUEySUE7MkZENUhhLHVCQUF1QjtrQkFMbkMsU0FBUzsrQkFDSSxxQkFBcUI7MkhBTXhCLGtCQUFrQjtzQkFEeEIsS0FBSzt1QkFBQyxxQkFBcUI7Z0JBSXJCLE9BQU87c0JBRGIsS0FBSzt1QkFBQyxTQUFTO2dCQUlULFlBQVk7c0JBRGxCLEtBQUs7dUJBQUMsZUFBZTtnQkFJZixjQUFjO3NCQURwQixLQUFLO3VCQUFDLGlCQUFpQjtnQkFJakIsYUFBYTtzQkFEbkIsTUFBTTt1QkFBQyxpQkFBaUIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIEV2ZW50RW1pdHRlciwgSW5wdXQsIE9uSW5pdCwgT3V0cHV0IH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQge1xuICAgIEFic3RyYWN0Q29udHJvbCxcbiAgICBGb3JtQnVpbGRlcixcbiAgICBGb3JtR3JvdXAsXG4gICAgVmFsaWRhdG9ycyxcbn0gZnJvbSAnQGFuZ3VsYXIvZm9ybXMnO1xuaW1wb3J0IHsgRWFDQXBwbGljYXRpb25Bc0NvZGUgfSBmcm9tICdAc2VtYW50aWNqcy9jb21tb24nO1xuaW1wb3J0IHsgRWFDU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL2VhYy5zZXJ2aWNlJztcblxuQENvbXBvbmVudCh7XG4gICAgc2VsZWN0b3I6ICdsY3Utc2VjdXJpdHktdG9nZ2xlJyxcbiAgICB0ZW1wbGF0ZVVybDogJy4vc2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5odG1sJyxcbiAgICBzdHlsZVVybHM6IFsnLi9zZWN1cml0eS10b2dnbGUuY29tcG9uZW50LnNjc3MnXSxcbn0pXG5leHBvcnQgY2xhc3MgU2VjdXJpdHlUb2dnbGVDb21wb25lbnQgaW1wbGVtZW50cyBPbkluaXQge1xuICAgIEBJbnB1dCgnZWRpdGluZy1hcHBsaWNhdGlvbicpXG4gICAgcHVibGljIEVkaXRpbmdBcHBsaWNhdGlvbjogRWFDQXBwbGljYXRpb25Bc0NvZGU7XG5cbiAgICBASW5wdXQoJ2xvYWRpbmcnKVxuICAgIHB1YmxpYyBMb2FkaW5nOiBib29sZWFuO1xuXG4gICAgQElucHV0KCdhY2Nlc3MtcmlnaHRzJylcbiAgICBwdWJsaWMgQWNjZXNzUmlnaHRzOiBhbnk7XG5cbiAgICBASW5wdXQoJ2xpY2Vuc2UtY29uZmlncycpXG4gICAgcHVibGljIExpY2Vuc2VDb25maWdzOiBhbnk7XG5cbiAgICBAT3V0cHV0KCdzYXZlLWZvcm0tZXZlbnQnKVxuICAgIHB1YmxpYyBTYXZlRm9ybUV2ZW50OiBFdmVudEVtaXR0ZXI8e30+O1xuXG4gICAgcHVibGljIGdldCBBY2Nlc3NSaWdodHNGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5TZWN1cml0eUZvcm1Hcm91cD8uY29udHJvbHMuYWNjZXNzUmlnaHRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgSXNQcml2YXRlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXA/LmNvbnRyb2xzLmlzUHJpdmF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IElzVHJpZ2dlclNpZ25JbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwPy5jb250cm9scy5pc1RyaWdnZXJTaWduSW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBMaWNlbnNlQ29uZmlnc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwPy5jb250cm9scy5saWNlbnNlQ29uZmlncztcbiAgICB9XG5cbiAgICBwdWJsaWMgSXNQcml2YXRlOiBib29sZWFuO1xuXG4gICAgcHVibGljIFNlY3VyaXR5Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgUHJvY2Vzc29yVHlwZTogc3RyaW5nO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLCBwcm90ZWN0ZWQgZm9ybUJsZHI6IEZvcm1CdWlsZGVyKSB7XG4gICAgICAgIHRoaXMuU2F2ZUZvcm1FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5Ta2VsZXRvbkVmZmVjdCA9ICd3YXZlJztcbiAgICB9XG5cbiAgICBwdWJsaWMgbmdPbkluaXQoKTogdm9pZCB7fVxuXG4gICAgcHVibGljIG5nT25DaGFuZ2VzKCkge1xuICAgICAgICBpZiAodGhpcy5Jc1ByaXZhdGUgPT09IG51bGwgfHwgdGhpcy5Jc1ByaXZhdGUgPT09IHVuZGVmaW5lZCkge1xuICAgICAgICAgICAgdGhpcy5Jc1ByaXZhdGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbi5Mb29rdXBDb25maWc/LklzUHJpdmF0ZTtcbiAgICAgICAgICAgIHRoaXMuc2V0dXBTZWN1cml0eUZvcm1Hcm91cCgpO1xuICAgICAgICB9XG4gICAgfVxuXG4gICAgcHVibGljIFNlY3VyaXR5U3VibWl0KCkge1xuICAgICAgICAvL3NhdmUgdGhlIHNlY3VyaXR5IHNldHRpbmdzXG4gICAgICAgIGNvbnNvbGUubG9nKFxuICAgICAgICAgICAgJ3N1Ym1pdHRpbmcgc2VjdXJpdHkgdmFsdWVzOiAnLFxuICAgICAgICAgICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC52YWx1ZVxuICAgICAgICApO1xuICAgICAgICB0aGlzLlNhdmVGb3JtRXZlbnQuZW1pdCh0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwLnZhbHVlKTtcbiAgICB9XG5cbiAgICBwdWJsaWMgSGFuZGxlSXNQcml2YXRlKGV2ZW50OiBhbnkpIHtcbiAgICAgICAgdGhpcy5Jc1ByaXZhdGUgPSB0aGlzLklzUHJpdmF0ZUZvcm1Db250cm9sLnZhbHVlO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFNlY3VyaXR5Rm9ybUdyb3VwKCkge1xuICAgICAgICAvLyBjb25zb2xlLmxvZygnc2V0dGluZyBmb3JtJyk7XG4gICAgICAgIHRoaXMuUHJvY2Vzc29yVHlwZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5Qcm9jZXNzb3I/LlR5cGUgfHwgJyc7XG4gICAgICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAgPSB0aGlzLmZvcm1CbGRyLmdyb3VwKHt9KTtcbiAgICAgICAgdGhpcy5zZXR1cFNlY3VyaXR5Rm9ybSgpO1xuICAgIH1cblxuICAgIHByb3RlY3RlZCBzZXR1cFNlY3VyaXR5Rm9ybSgpOiB2b2lkIHtcbiAgICAgICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2lzUHJpdmF0ZScsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG9va3VwQ29uZmlnPy5Jc1ByaXZhdGUgfHwgZmFsc2UsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2lzVHJpZ2dlclNpZ25JbicsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2woXG4gICAgICAgICAgICAgICAgdGhpcy5FZGl0aW5nQXBwbGljYXRpb24uTG9va3VwQ29uZmlnPy5Jc1RyaWdnZXJTaWduSW4gfHwgZmFsc2UsXG4gICAgICAgICAgICAgICAgW1ZhbGlkYXRvcnMucmVxdWlyZWRdXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2FjY2Vzc1JpZ2h0cycsXG4gICAgICAgICAgICB0aGlzLmZvcm1CbGRyLmNvbnRyb2wodGhpcy5FZGl0aW5nQXBwbGljYXRpb24/LkFjY2Vzc1JpZ2h0TG9va3VwcylcbiAgICAgICAgKTtcblxuICAgICAgICB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwLmFkZENvbnRyb2woXG4gICAgICAgICAgICAnbGljZW5zZUNvbmZpZ3MnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5MaWNlbnNlQ29uZmlndXJhdGlvbkxvb2t1cHNcbiAgICAgICAgICAgIClcbiAgICAgICAgKTtcbiAgICB9XG59XG4iLCI8Zm9ybVxuICAgIGNsYXNzPVwic2VjdXJpdHktZm9ybVwiXG4gICAgW2Zvcm1Hcm91cF09XCJTZWN1cml0eUZvcm1Hcm91cFwiXG4gICAgKG5nU3VibWl0KT1cIlNlY3VyaXR5U3VibWl0KClcIlxuPlxuICAgIDxtYXQtY2FyZCBjbGFzcz1cImZsb3ctY2FyZFwiPlxuICAgICAgICA8IS0tIFNLRUxFVE9OIExPQURJTkcgLS0+XG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCJMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyIGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1iZXR3ZWVuIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZSBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgU2VjdXJpdHkgU2V0dGluZ3NcbiAgICAgICAgICAgICAgICA8L21hdC1jYXJkLXRpdGxlPlxuICAgICAgICAgICAgICAgIDxkaXYgZnhMYXlvdXRBbGlnbj1cInNwYWNlLWFyb3VuZCBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5YWFg8L2Rpdj5cblxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBpbmZvX291dGxpbmVcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgICAgICAgICA8bWF0LWNhcmQtYWN0aW9ucyBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiPlxuICAgICAgICAgICAgICAgIDxkaXZcbiAgICAgICAgICAgICAgICAgICAgZnhGbGV4PVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIHNrZWxldG9uLXRleHRcbiAgICAgICAgICAgICAgICAgICAgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiXG4gICAgICAgICAgICAgICAgICAgIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbiBza2VsZXRvbi10ZXh0IFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgIHNhdmVcbiAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cblxuICAgICAgICAgICAgICAgICAgICBTYXZlIFNldHRpbmdzXG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICA8IS0tIEVORCBTS0VMRVRPTiBMT0FESU5HIC0tPlxuXG4gICAgICAgIDwhLS0gQkVHSU4gQUNUVUFMIENPTlRFTlQgLS0+XG5cbiAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIiFMb2FkaW5nXCI+XG4gICAgICAgICAgICA8bWF0LWNhcmQtaGVhZGVyPlxuICAgICAgICAgICAgICAgIDxtYXQtY2FyZC10aXRsZT4gU2VjdXJpdHkgU2V0dGluZ3MgPC9tYXQtY2FyZC10aXRsZT5cblxuICAgICAgICAgICAgICAgIDxkaXYgZnhGbGV4PjwvZGl2PlxuXG4gICAgICAgICAgICAgICAgPG1hdC1zbGlkZS10b2dnbGVcbiAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiaXNQcml2YXRlXCJcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIklzIFNlY3VyZSBBcHBsaWNhdGlvbj9cIlxuICAgICAgICAgICAgICAgICAgICAoY2hhbmdlKT1cIkhhbmRsZUlzUHJpdmF0ZSgkZXZlbnQpXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiQSBTZWN1cmVkIEFwcGxpY2F0aW9uIGlzIG9uZSB0aGF0IHJlcXVpcmVzIHRoZSB1c2VyIHRvIGJlIGF1dGhlbnRpY2F0ZWQgdG8gdXNlIHRoZSBhcHBsaWNhdGlvbi4gVGhlIGFwcGxpY2F0aW9uIGlzIGhvc3RlZCBiZWhpbmQgYW4gaWRlbnRpdHkgd2FsbC5cIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtaGVhZGVyPlxuXG4gICAgICAgICAgICA8bWF0LWNhcmQtY29udGVudD5cbiAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICA8ZGl2ICpuZ0lmPVwiSXNQcml2YXRlXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2IGNsYXNzPVwidG9nZ2xlLWNvbnRhaW5lclwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlIGZvcm1Db250cm9sTmFtZT1cImlzVHJpZ2dlclNpZ25JblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBJcyBUcmlnZ2VyIFNpZ24gSW4gQXBwbGljYXRpb24/XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2xpZGUtdG9nZ2xlPlxuXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1hdFN1ZmZpeFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRUb29sdGlwPVwiQSBUcmlnZ2VyIFNpZ24gSW4gQXBwbGljYXRpb24gd2lsbCBkaXJlY3QgdGhlIHVzZXIgdG8gc2lnbiBpbiBpZiB0aGV5IGFyZSBub3QgYWxyZWFkeS5cIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWZvcm0tZmllbGQgYXBwZWFyYW5jZT1cImZpbGxcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1sYWJlbD5BY2Nlc3MgUmlnaHRzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJhY2Nlc3NSaWdodHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3thY2Nlc3NSaWdodHM/LnZhbHVlPy5bMF0gfHwgJyd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIoYWNjZXNzUmlnaHRzLnZhbHVlPy5sZW5ndGggfHwgMCkgPiAxXCIgY2xhc3M9XCJleGFtcGxlLWFkZGl0aW9uYWwtc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgre3soYWNjZXNzUmlnaHRzLnZhbHVlPy5sZW5ndGggfHwgMCkgLSAxfX0ge3thY2Nlc3NSaWdodHMudmFsdWU/Lmxlbmd0aCA9PT0gMiA/ICdvdGhlcicgOiAnb3RoZXJzJ319KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IHJpZ2h0cyBvZiBBY2Nlc3NSaWdodHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJyaWdodHNcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID57eyByaWdodHMgfX08L21hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+TGljZW5zZSBDb25maWdzPC9tYXQtbGFiZWw+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtc2VsZWN0XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBmb3JtQ29udHJvbE5hbWU9XCJsaWNlbnNlQ29uZmlnc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtdWx0aXBsZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8IS0tIDxtYXQtc2VsZWN0LXRyaWdnZXI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB7e2xpY2Vuc2VDb25maWdzLnZhbHVlPy5bMF0gfHwgJyd9fVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCIobGljZW5zZUNvbmZpZ3MudmFsdWU/Lmxlbmd0aCB8fCAwKSA+IDFcIiBjbGFzcz1cImV4YW1wbGUtYWRkaXRpb25hbC1zZWxlY3Rpb25cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKCt7eyhsaWNlbnNlQ29uZmlncy52YWx1ZT8ubGVuZ3RoIHx8IDApIC0gMX19IHt7bGljZW5zZUNvbmZpZ3MudmFsdWU/Lmxlbmd0aCA9PT0gMiA/ICdvdGhlcicgOiAnb3RoZXJzJ319KVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdC10cmlnZ2VyPiAtLT5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgKm5nRm9yPVwibGV0IGNvbmZpZ3Mgb2YgTGljZW5zZUNvbmZpZ3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIFt2YWx1ZV09XCJjb25maWdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgY29uZmlncyB9fTwvbWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3Q+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtZm9ybS1maWVsZD5cbiAgICAgICAgICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgIDwvbWF0LWNhcmQtY29udGVudD5cblxuICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIG1hdC1yYWlzZWQtYnV0dG9uXG4gICAgICAgICAgICAgICAgICAgIHR5cGU9XCJzdWJtaXRcIlxuICAgICAgICAgICAgICAgICAgICBmeEZsZXg9XCIxMDAlXCJcbiAgICAgICAgICAgICAgICAgICAgY29sb3I9XCJwcmltYXJ5XCJcbiAgICAgICAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cIlxuICAgICAgICAgICAgICAgICAgICAgICAgIVNlY3VyaXR5Rm9ybUdyb3VwLnZhbGlkIHx8ICFTZWN1cml0eUZvcm1Hcm91cC5kaXJ0eVxuICAgICAgICAgICAgICAgICAgICBcIlxuICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uPnNhdmU8L21hdC1pY29uPlxuICAgICAgICAgICAgICAgICAgICBTYXZlIFNldHRpbmdzXG4gICAgICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWFjdGlvbnM+XG4gICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgIDwvbWF0LWNhcmQ+XG48L2Zvcm0+XG4iXX0=
90
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoic2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL2NvbW1vbi9zcmMvbGliL2NvbnRyb2xzL3NlY3VyaXR5LXRvZ2dsZS9zZWN1cml0eS10b2dnbGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvY29tbW9uL3NyYy9saWIvY29udHJvbHMvc2VjdXJpdHktdG9nZ2xlL3NlY3VyaXR5LXRvZ2dsZS5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQy9FLE9BQU8sRUFJSCxVQUFVLEdBQ2IsTUFBTSxnQkFBZ0IsQ0FBQzs7Ozs7Ozs7Ozs7Ozs7O0FBU3hCLE1BQU0sT0FBTyx1QkFBdUI7SUEyQ2hDLFlBQXNCLE1BQWtCLEVBQVksUUFBcUI7UUFBbkQsV0FBTSxHQUFOLE1BQU0sQ0FBWTtRQUFZLGFBQVEsR0FBUixRQUFRLENBQWE7UUFDckUsSUFBSSxDQUFDLGFBQWEsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQ3hDLElBQUksQ0FBQyxnQkFBZ0IsR0FBRyxJQUFJLFlBQVksRUFBRSxDQUFDO1FBQzNDLElBQUksQ0FBQyxjQUFjLEdBQUcsTUFBTSxDQUFDO0lBQ2pDLENBQUM7SUE1QkQsSUFBVyx1QkFBdUI7UUFDOUIsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFlBQVksQ0FBQztJQUN6RCxDQUFDO0lBRUQsSUFBVyxvQkFBb0I7UUFDM0IsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLFNBQVMsQ0FBQztJQUN0RCxDQUFDO0lBRUQsSUFBVywwQkFBMEI7UUFDakMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGVBQWUsQ0FBQztJQUM1RCxDQUFDO0lBRUQsSUFBVyx5QkFBeUI7UUFDaEMsT0FBTyxJQUFJLENBQUMsaUJBQWlCLEVBQUUsUUFBUSxDQUFDLGNBQWMsQ0FBQztJQUMzRCxDQUFDO0lBZ0JNLFFBQVEsS0FBVSxDQUFDO0lBRW5CLFdBQVc7UUFDZCxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssSUFBSSxJQUFJLElBQUksQ0FBQyxTQUFTLEtBQUssU0FBUyxFQUFFO1lBQ3pELElBQUksQ0FBQyxTQUFTLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLENBQUM7WUFDakUsSUFBSSxDQUFDLHNCQUFzQixFQUFFLENBQUM7U0FDakM7SUFDTCxDQUFDO0lBRU0sY0FBYztRQUNqQiw0QkFBNEI7UUFDNUIsT0FBTyxDQUFDLEdBQUcsQ0FDUCw4QkFBOEIsRUFDOUIsSUFBSSxDQUFDLGlCQUFpQixDQUFDLEtBQUssQ0FDL0IsQ0FBQztRQUNGLElBQUksQ0FBQyxhQUFhLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxLQUFLLENBQUMsQ0FBQztJQUMxRCxDQUFDO0lBRU0sZUFBZSxDQUFDLEtBQVU7UUFDN0IsSUFBSSxDQUFDLFNBQVMsR0FBRyxJQUFJLENBQUMsb0JBQW9CLENBQUMsS0FBSyxDQUFDO1FBQ2pELElBQUksQ0FBQyxnQkFBZ0IsQ0FBQyxJQUFJLENBQUMsSUFBSSxDQUFDLFNBQVMsQ0FBQyxDQUFDO0lBQy9DLENBQUM7SUFFUyxzQkFBc0I7UUFDNUIsK0JBQStCO1FBQy9CLElBQUksQ0FBQyxhQUFhLEdBQUcsSUFBSSxDQUFDLGtCQUFrQixFQUFFLFNBQVMsRUFBRSxJQUFJLElBQUksRUFBRSxDQUFDO1FBQ3BFLElBQUksQ0FBQyxpQkFBaUIsR0FBRyxJQUFJLENBQUMsUUFBUSxDQUFDLEtBQUssQ0FBQyxFQUFFLENBQUMsQ0FBQztRQUNqRCxJQUFJLENBQUMsaUJBQWlCLEVBQUUsQ0FBQztJQUM3QixDQUFDO0lBRVMsaUJBQWlCO1FBQ3ZCLElBQUksQ0FBQyxpQkFBaUIsQ0FBQyxVQUFVLENBQzdCLFdBQVcsRUFDWCxJQUFJLENBQUMsUUFBUSxDQUFDLE9BQU8sQ0FDakIsSUFBSSxDQUFDLGtCQUFrQixDQUFDLFlBQVksRUFBRSxTQUFTLElBQUksS0FBSyxFQUN4RCxDQUFDLFVBQVUsQ0FBQyxRQUFRLENBQUMsQ0FDeEIsQ0FDSixDQUFDO1FBRUYsSUFBSSxDQUFDLGlCQUFpQixDQUFDLFVBQVUsQ0FDN0IsaUJBQWlCLEVBQ2pCLElBQUksQ0FBQyxRQUFRLENBQUMsT0FBTyxDQUNqQixJQUFJLENBQUMsa0JBQWtCLENBQUMsWUFBWSxFQUFFLGVBQWUsSUFBSSxLQUFLLEVBQzlELENBQUMsVUFBVSxDQUFDLFFBQVEsQ0FBQyxDQUN4QixDQUNKLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUM3QixjQUFjLEVBQ2QsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQUMsSUFBSSxDQUFDLGtCQUFrQixFQUFFLGtCQUFrQixDQUFDLENBQ3JFLENBQUM7UUFFRixJQUFJLENBQUMsaUJBQWlCLENBQUMsVUFBVSxDQUM3QixnQkFBZ0IsRUFDaEIsSUFBSSxDQUFDLFFBQVEsQ0FBQyxPQUFPLENBQ2pCLElBQUksQ0FBQyxrQkFBa0IsRUFBRSwyQkFBMkIsQ0FDdkQsQ0FDSixDQUFDO0lBQ04sQ0FBQzs7b0hBM0dRLHVCQUF1Qjt3R0FBdkIsdUJBQXVCLCtYQ2ZwQyxtbE1BMklBOzJGRDVIYSx1QkFBdUI7a0JBTG5DLFNBQVM7K0JBQ0kscUJBQXFCOzJIQU14QixrQkFBa0I7c0JBRHhCLEtBQUs7dUJBQUMscUJBQXFCO2dCQUlyQixPQUFPO3NCQURiLEtBQUs7dUJBQUMsU0FBUztnQkFJVCxZQUFZO3NCQURsQixLQUFLO3VCQUFDLGVBQWU7Z0JBSWYsY0FBYztzQkFEcEIsS0FBSzt1QkFBQyxpQkFBaUI7Z0JBSWpCLGFBQWE7c0JBRG5CLE1BQU07dUJBQUMsaUJBQWlCO2dCQUlsQixnQkFBZ0I7c0JBRHRCLE1BQU07dUJBQUMsb0JBQW9CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHtcbiAgICBBYnN0cmFjdENvbnRyb2wsXG4gICAgRm9ybUJ1aWxkZXIsXG4gICAgRm9ybUdyb3VwLFxuICAgIFZhbGlkYXRvcnMsXG59IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcbmltcG9ydCB7IEVhQ0FwcGxpY2F0aW9uQXNDb2RlIH0gZnJvbSAnQHNlbWFudGljanMvY29tbW9uJztcbmltcG9ydCB7IEVhQ1NlcnZpY2UgfSBmcm9tICcuLi8uLi9zZXJ2aWNlcy9lYWMuc2VydmljZSc7XG5cbkBDb21wb25lbnQoe1xuICAgIHNlbGVjdG9yOiAnbGN1LXNlY3VyaXR5LXRvZ2dsZScsXG4gICAgdGVtcGxhdGVVcmw6ICcuL3NlY3VyaXR5LXRvZ2dsZS5jb21wb25lbnQuaHRtbCcsXG4gICAgc3R5bGVVcmxzOiBbJy4vc2VjdXJpdHktdG9nZ2xlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFNlY3VyaXR5VG9nZ2xlQ29tcG9uZW50IGltcGxlbWVudHMgT25Jbml0IHtcbiAgICBASW5wdXQoJ2VkaXRpbmctYXBwbGljYXRpb24nKVxuICAgIHB1YmxpYyBFZGl0aW5nQXBwbGljYXRpb246IEVhQ0FwcGxpY2F0aW9uQXNDb2RlO1xuXG4gICAgQElucHV0KCdsb2FkaW5nJylcbiAgICBwdWJsaWMgTG9hZGluZzogYm9vbGVhbjtcblxuICAgIEBJbnB1dCgnYWNjZXNzLXJpZ2h0cycpXG4gICAgcHVibGljIEFjY2Vzc1JpZ2h0czogYW55O1xuXG4gICAgQElucHV0KCdsaWNlbnNlLWNvbmZpZ3MnKVxuICAgIHB1YmxpYyBMaWNlbnNlQ29uZmlnczogYW55O1xuXG4gICAgQE91dHB1dCgnc2F2ZS1mb3JtLWV2ZW50JylcbiAgICBwdWJsaWMgU2F2ZUZvcm1FdmVudDogRXZlbnRFbWl0dGVyPHt9PjtcblxuICAgIEBPdXRwdXQoJ2lzLXByaXZhdGUtY2hhbmdlZCcpXG4gICAgcHVibGljIElzUHJpdmF0ZUNoYW5nZWQ6IEV2ZW50RW1pdHRlcjxhbnk+O1xuXG4gICAgcHVibGljIGdldCBBY2Nlc3NSaWdodHNGb3JtQ29udHJvbCgpOiBBYnN0cmFjdENvbnRyb2wge1xuICAgICAgICByZXR1cm4gdGhpcy5TZWN1cml0eUZvcm1Hcm91cD8uY29udHJvbHMuYWNjZXNzUmlnaHRzO1xuICAgIH1cblxuICAgIHB1YmxpYyBnZXQgSXNQcml2YXRlRm9ybUNvbnRyb2woKTogQWJzdHJhY3RDb250cm9sIHtcbiAgICAgICAgcmV0dXJuIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXA/LmNvbnRyb2xzLmlzUHJpdmF0ZTtcbiAgICB9XG5cbiAgICBwdWJsaWMgZ2V0IElzVHJpZ2dlclNpZ25JbkZvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwPy5jb250cm9scy5pc1RyaWdnZXJTaWduSW47XG4gICAgfVxuXG4gICAgcHVibGljIGdldCBMaWNlbnNlQ29uZmlnc0Zvcm1Db250cm9sKCk6IEFic3RyYWN0Q29udHJvbCB7XG4gICAgICAgIHJldHVybiB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwPy5jb250cm9scy5saWNlbnNlQ29uZmlncztcbiAgICB9XG5cbiAgICBwdWJsaWMgSXNQcml2YXRlOiBib29sZWFuO1xuXG4gICAgcHVibGljIFNlY3VyaXR5Rm9ybUdyb3VwOiBGb3JtR3JvdXA7XG5cbiAgICBwdWJsaWMgUHJvY2Vzc29yVHlwZTogc3RyaW5nO1xuXG4gICAgcHVibGljIFNrZWxldG9uRWZmZWN0OiBzdHJpbmc7XG5cbiAgICBjb25zdHJ1Y3Rvcihwcm90ZWN0ZWQgZWFjU3ZjOiBFYUNTZXJ2aWNlLCBwcm90ZWN0ZWQgZm9ybUJsZHI6IEZvcm1CdWlsZGVyKSB7XG4gICAgICAgIHRoaXMuU2F2ZUZvcm1FdmVudCA9IG5ldyBFdmVudEVtaXR0ZXIoKTtcbiAgICAgICAgdGhpcy5Jc1ByaXZhdGVDaGFuZ2VkID0gbmV3IEV2ZW50RW1pdHRlcigpO1xuICAgICAgICB0aGlzLlNrZWxldG9uRWZmZWN0ID0gJ3dhdmUnO1xuICAgIH1cblxuICAgIHB1YmxpYyBuZ09uSW5pdCgpOiB2b2lkIHt9XG5cbiAgICBwdWJsaWMgbmdPbkNoYW5nZXMoKSB7XG4gICAgICAgIGlmICh0aGlzLklzUHJpdmF0ZSA9PT0gbnVsbCB8fCB0aGlzLklzUHJpdmF0ZSA9PT0gdW5kZWZpbmVkKSB7XG4gICAgICAgICAgICB0aGlzLklzUHJpdmF0ZSA9IHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvb2t1cENvbmZpZz8uSXNQcml2YXRlO1xuICAgICAgICAgICAgdGhpcy5zZXR1cFNlY3VyaXR5Rm9ybUdyb3VwKCk7XG4gICAgICAgIH1cbiAgICB9XG5cbiAgICBwdWJsaWMgU2VjdXJpdHlTdWJtaXQoKSB7XG4gICAgICAgIC8vc2F2ZSB0aGUgc2VjdXJpdHkgc2V0dGluZ3NcbiAgICAgICAgY29uc29sZS5sb2coXG4gICAgICAgICAgICAnc3VibWl0dGluZyBzZWN1cml0eSB2YWx1ZXM6ICcsXG4gICAgICAgICAgICB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwLnZhbHVlXG4gICAgICAgICk7XG4gICAgICAgIHRoaXMuU2F2ZUZvcm1FdmVudC5lbWl0KHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAudmFsdWUpO1xuICAgIH1cblxuICAgIHB1YmxpYyBIYW5kbGVJc1ByaXZhdGUoZXZlbnQ6IGFueSkge1xuICAgICAgICB0aGlzLklzUHJpdmF0ZSA9IHRoaXMuSXNQcml2YXRlRm9ybUNvbnRyb2wudmFsdWU7XG4gICAgICAgIHRoaXMuSXNQcml2YXRlQ2hhbmdlZC5lbWl0KHRoaXMuSXNQcml2YXRlKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBTZWN1cml0eUZvcm1Hcm91cCgpIHtcbiAgICAgICAgLy8gY29uc29sZS5sb2coJ3NldHRpbmcgZm9ybScpO1xuICAgICAgICB0aGlzLlByb2Nlc3NvclR5cGUgPSB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uUHJvY2Vzc29yPy5UeXBlIHx8ICcnO1xuICAgICAgICB0aGlzLlNlY3VyaXR5Rm9ybUdyb3VwID0gdGhpcy5mb3JtQmxkci5ncm91cCh7fSk7XG4gICAgICAgIHRoaXMuc2V0dXBTZWN1cml0eUZvcm0oKTtcbiAgICB9XG5cbiAgICBwcm90ZWN0ZWQgc2V0dXBTZWN1cml0eUZvcm0oKTogdm9pZCB7XG4gICAgICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdpc1ByaXZhdGUnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvb2t1cENvbmZpZz8uSXNQcml2YXRlIHx8IGZhbHNlLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdpc1RyaWdnZXJTaWduSW4nLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKFxuICAgICAgICAgICAgICAgIHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uLkxvb2t1cENvbmZpZz8uSXNUcmlnZ2VyU2lnbkluIHx8IGZhbHNlLFxuICAgICAgICAgICAgICAgIFtWYWxpZGF0b3JzLnJlcXVpcmVkXVxuICAgICAgICAgICAgKVxuICAgICAgICApO1xuXG4gICAgICAgIHRoaXMuU2VjdXJpdHlGb3JtR3JvdXAuYWRkQ29udHJvbChcbiAgICAgICAgICAgICdhY2Nlc3NSaWdodHMnLFxuICAgICAgICAgICAgdGhpcy5mb3JtQmxkci5jb250cm9sKHRoaXMuRWRpdGluZ0FwcGxpY2F0aW9uPy5BY2Nlc3NSaWdodExvb2t1cHMpXG4gICAgICAgICk7XG5cbiAgICAgICAgdGhpcy5TZWN1cml0eUZvcm1Hcm91cC5hZGRDb250cm9sKFxuICAgICAgICAgICAgJ2xpY2Vuc2VDb25maWdzJyxcbiAgICAgICAgICAgIHRoaXMuZm9ybUJsZHIuY29udHJvbChcbiAgICAgICAgICAgICAgICB0aGlzLkVkaXRpbmdBcHBsaWNhdGlvbj8uTGljZW5zZUNvbmZpZ3VyYXRpb25Mb29rdXBzXG4gICAgICAgICAgICApXG4gICAgICAgICk7XG4gICAgfVxufVxuIiwiPGZvcm1cbiAgICBjbGFzcz1cInNlY3VyaXR5LWZvcm1cIlxuICAgIFtmb3JtR3JvdXBdPVwiU2VjdXJpdHlGb3JtR3JvdXBcIlxuICAgIChuZ1N1Ym1pdCk9XCJTZWN1cml0eVN1Ym1pdCgpXCJcbj5cbiAgICA8bWF0LWNhcmQgY2xhc3M9XCJmbG93LWNhcmRcIj5cbiAgICAgICAgPCEtLSBTS0VMRVRPTiBMT0FESU5HIC0tPlxuICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlciBmeExheW91dEFsaWduPVwic3BhY2UtYmV0d2VlbiBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGUgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgIFNlY3VyaXR5IFNldHRpbmdzXG4gICAgICAgICAgICAgICAgPC9tYXQtY2FyZC10aXRsZT5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4TGF5b3V0QWxpZ249XCJzcGFjZS1hcm91bmQgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgICAgIDxkaXYgc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+WFhYPC9kaXY+XG5cbiAgICAgICAgICAgICAgICAgICAgPG1hdC1pY29uIHNrZWxldG9uLXRleHQgW2VmZmVjdF09XCJTa2VsZXRvbkVmZmVjdFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgaW5mb19vdXRsaW5lXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgICAgPG1hdC1jYXJkLWFjdGlvbnMgZnhMYXlvdXRBbGlnbj1cImNlbnRlciBjZW50ZXJcIj5cbiAgICAgICAgICAgICAgICA8ZGl2XG4gICAgICAgICAgICAgICAgICAgIGZ4RmxleD1cIjEwMCVcIlxuICAgICAgICAgICAgICAgICAgICBza2VsZXRvbi10ZXh0XG4gICAgICAgICAgICAgICAgICAgIFtlZmZlY3RdPVwiU2tlbGV0b25FZmZlY3RcIlxuICAgICAgICAgICAgICAgICAgICBmeExheW91dEFsaWduPVwiY2VudGVyIGNlbnRlclwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICA8bWF0LWljb24gc2tlbGV0b24tdGV4dCBbZWZmZWN0XT1cIlNrZWxldG9uRWZmZWN0XCI+XG4gICAgICAgICAgICAgICAgICAgICAgICBzYXZlXG4gICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG5cbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBTZXR0aW5nc1xuICAgICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICAgICAgPCEtLSBFTkQgU0tFTEVUT04gTE9BRElORyAtLT5cblxuICAgICAgICA8IS0tIEJFR0lOIEFDVFVBTCBDT05URU5UIC0tPlxuXG4gICAgICAgIDxuZy1jb250YWluZXIgKm5nSWY9XCIhTG9hZGluZ1wiPlxuICAgICAgICAgICAgPG1hdC1jYXJkLWhlYWRlcj5cbiAgICAgICAgICAgICAgICA8bWF0LWNhcmQtdGl0bGU+IFNlY3VyaXR5IFNldHRpbmdzIDwvbWF0LWNhcmQtdGl0bGU+XG5cbiAgICAgICAgICAgICAgICA8ZGl2IGZ4RmxleD48L2Rpdj5cblxuICAgICAgICAgICAgICAgIDxtYXQtc2xpZGUtdG9nZ2xlXG4gICAgICAgICAgICAgICAgICAgIGZvcm1Db250cm9sTmFtZT1cImlzUHJpdmF0ZVwiXG4gICAgICAgICAgICAgICAgICAgIG1hdFRvb2x0aXA9XCJJcyBTZWN1cmUgQXBwbGljYXRpb24/XCJcbiAgICAgICAgICAgICAgICAgICAgKGNoYW5nZSk9XCJIYW5kbGVJc1ByaXZhdGUoJGV2ZW50KVwiXG4gICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cblxuICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkEgU2VjdXJlZCBBcHBsaWNhdGlvbiBpcyBvbmUgdGhhdCByZXF1aXJlcyB0aGUgdXNlciB0byBiZSBhdXRoZW50aWNhdGVkIHRvIHVzZSB0aGUgYXBwbGljYXRpb24uIFRoZSBhcHBsaWNhdGlvbiBpcyBob3N0ZWQgYmVoaW5kIGFuIGlkZW50aXR5IHdhbGwuXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIGluZm9fb3V0bGluZVxuICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWhlYWRlcj5cblxuICAgICAgICAgICAgPG1hdC1jYXJkLWNvbnRlbnQ+XG4gICAgICAgICAgICAgICAgPGRpdj5cbiAgICAgICAgICAgICAgICAgICAgPGRpdiAqbmdJZj1cIklzUHJpdmF0ZVwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRvZ2dsZS1jb250YWluZXJcIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNsaWRlLXRvZ2dsZSBmb3JtQ29udHJvbE5hbWU9XCJpc1RyaWdnZXJTaWduSW5cIj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgSXMgVHJpZ2dlciBTaWduIEluIEFwcGxpY2F0aW9uP1xuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNsaWRlLXRvZ2dsZT5cblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBtYXRTdWZmaXhcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbWF0VG9vbHRpcD1cIkEgVHJpZ2dlciBTaWduIEluIEFwcGxpY2F0aW9uIHdpbGwgZGlyZWN0IHRoZSB1c2VyIHRvIHNpZ24gaW4gaWYgdGhleSBhcmUgbm90IGFscmVhZHkuXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGluZm9fb3V0bGluZVxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWljb24+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgICAgIDxkaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgPG1hdC1mb3JtLWZpZWxkIGFwcGVhcmFuY2U9XCJmaWxsXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtbGFiZWw+QWNjZXNzIFJpZ2h0czwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwiYWNjZXNzUmlnaHRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG11bHRpcGxlXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwhLS0gPG1hdC1zZWxlY3QtdHJpZ2dlcj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHt7YWNjZXNzUmlnaHRzPy52YWx1ZT8uWzBdIHx8ICcnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKGFjY2Vzc1JpZ2h0cy52YWx1ZT8ubGVuZ3RoIHx8IDApID4gMVwiIGNsYXNzPVwiZXhhbXBsZS1hZGRpdGlvbmFsLXNlbGVjdGlvblwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAoK3t7KGFjY2Vzc1JpZ2h0cy52YWx1ZT8ubGVuZ3RoIHx8IDApIC0gMX19IHt7YWNjZXNzUmlnaHRzLnZhbHVlPy5sZW5ndGggPT09IDIgPyAnb3RoZXInIDogJ290aGVycyd9fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCByaWdodHMgb2YgQWNjZXNzUmlnaHRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwicmlnaHRzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+e3sgcmlnaHRzIH19PC9tYXQtb3B0aW9uXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LXNlbGVjdD5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1mb3JtLWZpZWxkPlxuICAgICAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgICAgICAgICA8ZGl2PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxtYXQtZm9ybS1maWVsZCBhcHBlYXJhbmNlPVwiZmlsbFwiPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LWxhYmVsPkxpY2Vuc2UgQ29uZmlnczwvbWF0LWxhYmVsPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LXNlbGVjdFxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgZm9ybUNvbnRyb2xOYW1lPVwibGljZW5zZUNvbmZpZ3NcIlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgbXVsdGlwbGVcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPCEtLSA8bWF0LXNlbGVjdC10cmlnZ2VyPlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAge3tsaWNlbnNlQ29uZmlncy52YWx1ZT8uWzBdIHx8ICcnfX1cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwiKGxpY2Vuc2VDb25maWdzLnZhbHVlPy5sZW5ndGggfHwgMCkgPiAxXCIgY2xhc3M9XCJleGFtcGxlLWFkZGl0aW9uYWwtc2VsZWN0aW9uXCI+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICgre3sobGljZW5zZUNvbmZpZ3MudmFsdWU/Lmxlbmd0aCB8fCAwKSAtIDF9fSB7e2xpY2Vuc2VDb25maWdzLnZhbHVlPy5sZW5ndGggPT09IDIgPyAnb3RoZXInIDogJ290aGVycyd9fSlcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8L21hdC1zZWxlY3QtdHJpZ2dlcj4gLS0+XG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICA8bWF0LW9wdGlvblxuICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICpuZ0Zvcj1cImxldCBjb25maWdzIG9mIExpY2Vuc2VDb25maWdzXCJcbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBbdmFsdWVdPVwiY29uZmlnc1wiXG4gICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPnt7IGNvbmZpZ3MgfX08L21hdC1vcHRpb25cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgID5cbiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgPC9tYXQtc2VsZWN0PlxuICAgICAgICAgICAgICAgICAgICAgICAgICAgIDwvbWF0LWZvcm0tZmllbGQ+XG4gICAgICAgICAgICAgICAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgICA8L21hdC1jYXJkLWNvbnRlbnQ+XG5cbiAgICAgICAgICAgIDxtYXQtY2FyZC1hY3Rpb25zIGZ4TGF5b3V0QWxpZ249XCJjZW50ZXIgY2VudGVyXCI+XG4gICAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgICAgICBtYXQtcmFpc2VkLWJ1dHRvblxuICAgICAgICAgICAgICAgICAgICB0eXBlPVwic3VibWl0XCJcbiAgICAgICAgICAgICAgICAgICAgZnhGbGV4PVwiMTAwJVwiXG4gICAgICAgICAgICAgICAgICAgIGNvbG9yPVwicHJpbWFyeVwiXG4gICAgICAgICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJcbiAgICAgICAgICAgICAgICAgICAgICAgICFTZWN1cml0eUZvcm1Hcm91cC52YWxpZCB8fCAhU2VjdXJpdHlGb3JtR3JvdXAuZGlydHlcbiAgICAgICAgICAgICAgICAgICAgXCJcbiAgICAgICAgICAgICAgICA+XG4gICAgICAgICAgICAgICAgICAgIDxtYXQtaWNvbj5zYXZlPC9tYXQtaWNvbj5cbiAgICAgICAgICAgICAgICAgICAgU2F2ZSBTZXR0aW5nc1xuICAgICAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgICAgPC9tYXQtY2FyZC1hY3Rpb25zPlxuICAgICAgICA8L25nLWNvbnRhaW5lcj5cbiAgICA8L21hdC1jYXJkPlxuPC9mb3JtPlxuIl19
@@ -4829,6 +4829,7 @@ class SecurityToggleComponent {
4829
4829
  this.eacSvc = eacSvc;
4830
4830
  this.formBldr = formBldr;
4831
4831
  this.SaveFormEvent = new EventEmitter();
4832
+ this.IsPrivateChanged = new EventEmitter();
4832
4833
  this.SkeletonEffect = 'wave';
4833
4834
  }
4834
4835
  get AccessRightsFormControl() {
@@ -4862,6 +4863,7 @@ class SecurityToggleComponent {
4862
4863
  }
4863
4864
  HandleIsPrivate(event) {
4864
4865
  this.IsPrivate = this.IsPrivateFormControl.value;
4866
+ this.IsPrivateChanged.emit(this.IsPrivate);
4865
4867
  }
4866
4868
  setupSecurityFormGroup() {
4867
4869
  var _a, _b;
@@ -4879,7 +4881,7 @@ class SecurityToggleComponent {
4879
4881
  }
4880
4882
  }
4881
4883
  SecurityToggleComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SecurityToggleComponent, deps: [{ token: EaCService }, { token: i1$1.FormBuilder }], target: i0.ɵɵFactoryTarget.Component });
4882
- SecurityToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SecurityToggleComponent, selector: "lcu-security-toggle", inputs: { EditingApplication: ["editing-application", "EditingApplication"], Loading: ["loading", "Loading"], AccessRights: ["access-rights", "AccessRights"], LicenseConfigs: ["license-configs", "LicenseConfigs"] }, outputs: { SaveFormEvent: "save-form-event" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n (change)=\"HandleIsPrivate($event)\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivate\">\n <div class=\"toggle-container\">\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>Access Rights</mat-label>\n <mat-select\n formControlName=\"accessRights\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{accessRights?.value?.[0] || ''}}\n <span *ngIf=\"(accessRights.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(accessRights.value?.length || 0) - 1}} {{accessRights.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let rights of AccessRights\"\n [value]=\"rights\"\n >{{ rights }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>License Configs</mat-label>\n <mat-select\n formControlName=\"licenseConfigs\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{licenseConfigs.value?.[0] || ''}}\n <span *ngIf=\"(licenseConfigs.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(licenseConfigs.value?.length || 0) - 1}} {{licenseConfigs.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let configs of LicenseConfigs\"\n [value]=\"configs\"\n >{{ configs }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: [".flow-card{margin:32px 20px}.toggle-container{margin-bottom:10px}\n"], components: [{ type: i1$2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i1$2.MatCardHeader, selector: "mat-card-header" }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i3$1.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i1$2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i7$3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i1$2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4.MatLabel, selector: "mat-label" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4884
+ SecurityToggleComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "12.0.0", version: "13.2.2", type: SecurityToggleComponent, selector: "lcu-security-toggle", inputs: { EditingApplication: ["editing-application", "EditingApplication"], Loading: ["loading", "Loading"], AccessRights: ["access-rights", "AccessRights"], LicenseConfigs: ["license-configs", "LicenseConfigs"] }, outputs: { SaveFormEvent: "save-form-event", IsPrivateChanged: "is-private-changed" }, usesOnChanges: true, ngImport: i0, template: "<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n (change)=\"HandleIsPrivate($event)\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivate\">\n <div class=\"toggle-container\">\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>Access Rights</mat-label>\n <mat-select\n formControlName=\"accessRights\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{accessRights?.value?.[0] || ''}}\n <span *ngIf=\"(accessRights.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(accessRights.value?.length || 0) - 1}} {{accessRights.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let rights of AccessRights\"\n [value]=\"rights\"\n >{{ rights }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>License Configs</mat-label>\n <mat-select\n formControlName=\"licenseConfigs\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{licenseConfigs.value?.[0] || ''}}\n <span *ngIf=\"(licenseConfigs.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(licenseConfigs.value?.length || 0) - 1}} {{licenseConfigs.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let configs of LicenseConfigs\"\n [value]=\"configs\"\n >{{ configs }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: [".flow-card{margin:32px 20px}.toggle-container{margin-bottom:10px}\n"], components: [{ type: i1$2.MatCard, selector: "mat-card", exportAs: ["matCard"] }, { type: i1$2.MatCardHeader, selector: "mat-card-header" }, { type: i5.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { type: i5$1.MatSlideToggle, selector: "mat-slide-toggle", inputs: ["disabled", "disableRipple", "color", "tabIndex", "name", "id", "labelPosition", "aria-label", "aria-labelledby", "aria-describedby", "required", "checked"], outputs: ["change", "toggleChange"], exportAs: ["matSlideToggle"] }, { type: i4.MatFormField, selector: "mat-form-field", inputs: ["color", "appearance", "hideRequiredMarker", "hintLabel", "floatLabel"], exportAs: ["matFormField"] }, { type: i6.MatSelect, selector: "mat-select", inputs: ["disabled", "disableRipple", "tabIndex"], exportAs: ["matSelect"] }, { type: i7$1.MatOption, selector: "mat-option", exportAs: ["matOption"] }, { type: i3.MatButton, selector: "button[mat-button], button[mat-raised-button], button[mat-icon-button], button[mat-fab], button[mat-mini-fab], button[mat-stroked-button], button[mat-flat-button]", inputs: ["disabled", "disableRipple", "color"], exportAs: ["matButton"] }], directives: [{ type: i1$1.ɵNgNoValidate, selector: "form:not([ngNoForm]):not([ngNativeValidate])" }, { type: i1$1.NgControlStatusGroup, selector: "[formGroupName],[formArrayName],[ngModelGroup],[formGroup],form:not([ngNoForm]),[ngForm]" }, { type: i1$1.FormGroupDirective, selector: "[formGroup]", inputs: ["formGroup"], outputs: ["ngSubmit"], exportAs: ["ngForm"] }, { type: i9.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { type: i7$3.DefaultLayoutAlignDirective, selector: " [fxLayoutAlign], [fxLayoutAlign.xs], [fxLayoutAlign.sm], [fxLayoutAlign.md], [fxLayoutAlign.lg], [fxLayoutAlign.xl], [fxLayoutAlign.lt-sm], [fxLayoutAlign.lt-md], [fxLayoutAlign.lt-lg], [fxLayoutAlign.lt-xl], [fxLayoutAlign.gt-xs], [fxLayoutAlign.gt-sm], [fxLayoutAlign.gt-md], [fxLayoutAlign.gt-lg]", inputs: ["fxLayoutAlign", "fxLayoutAlign.xs", "fxLayoutAlign.sm", "fxLayoutAlign.md", "fxLayoutAlign.lg", "fxLayoutAlign.xl", "fxLayoutAlign.lt-sm", "fxLayoutAlign.lt-md", "fxLayoutAlign.lt-lg", "fxLayoutAlign.lt-xl", "fxLayoutAlign.gt-xs", "fxLayoutAlign.gt-sm", "fxLayoutAlign.gt-md", "fxLayoutAlign.gt-lg"] }, { type: i1$2.MatCardTitle, selector: "mat-card-title, [mat-card-title], [matCardTitle]" }, { type: i3$1.SkeletonTextDirective, selector: "[skeleton-text]", inputs: ["effect"] }, { type: i1$2.MatCardActions, selector: "mat-card-actions", inputs: ["align"], exportAs: ["matCardActions"] }, { type: i7$3.DefaultFlexDirective, selector: " [fxFlex], [fxFlex.xs], [fxFlex.sm], [fxFlex.md], [fxFlex.lg], [fxFlex.xl], [fxFlex.lt-sm], [fxFlex.lt-md], [fxFlex.lt-lg], [fxFlex.lt-xl], [fxFlex.gt-xs], [fxFlex.gt-sm], [fxFlex.gt-md], [fxFlex.gt-lg]", inputs: ["fxFlex", "fxFlex.xs", "fxFlex.sm", "fxFlex.md", "fxFlex.lg", "fxFlex.xl", "fxFlex.lt-sm", "fxFlex.lt-md", "fxFlex.lt-lg", "fxFlex.lt-xl", "fxFlex.gt-xs", "fxFlex.gt-sm", "fxFlex.gt-md", "fxFlex.gt-lg"] }, { type: i1$1.NgControlStatus, selector: "[formControlName],[ngModel],[formControl]" }, { type: i1$1.FormControlName, selector: "[formControlName]", inputs: ["formControlName", "disabled", "ngModel"], outputs: ["ngModelChange"] }, { type: i7$2.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }, { type: i4.MatSuffix, selector: "[matSuffix]" }, { type: i1$2.MatCardContent, selector: "mat-card-content, [mat-card-content], [matCardContent]" }, { type: i4.MatLabel, selector: "mat-label" }, { type: i9.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }] });
4883
4885
  i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImport: i0, type: SecurityToggleComponent, decorators: [{
4884
4886
  type: Component,
4885
4887
  args: [{ selector: 'lcu-security-toggle', template: "<form\n class=\"security-form\"\n [formGroup]=\"SecurityFormGroup\"\n (ngSubmit)=\"SecuritySubmit()\"\n>\n <mat-card class=\"flow-card\">\n <!-- SKELETON LOADING -->\n <ng-container *ngIf=\"Loading\">\n <mat-card-header fxLayoutAlign=\"space-between center\">\n <mat-card-title skeleton-text [effect]=\"SkeletonEffect\">\n Security Settings\n </mat-card-title>\n <div fxLayoutAlign=\"space-around center\">\n <div skeleton-text [effect]=\"SkeletonEffect\">XXX</div>\n\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n info_outline\n </mat-icon>\n </div>\n </mat-card-header>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <div\n fxFlex=\"100%\"\n skeleton-text\n [effect]=\"SkeletonEffect\"\n fxLayoutAlign=\"center center\"\n >\n <mat-icon skeleton-text [effect]=\"SkeletonEffect\">\n save\n </mat-icon>\n\n Save Settings\n </div>\n </mat-card-actions>\n </ng-container>\n <!-- END SKELETON LOADING -->\n\n <!-- BEGIN ACTUAL CONTENT -->\n\n <ng-container *ngIf=\"!Loading\">\n <mat-card-header>\n <mat-card-title> Security Settings </mat-card-title>\n\n <div fxFlex></div>\n\n <mat-slide-toggle\n formControlName=\"isPrivate\"\n matTooltip=\"Is Secure Application?\"\n (change)=\"HandleIsPrivate($event)\"\n >\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Secured Application is one that requires the user to be authenticated to use the application. The application is hosted behind an identity wall.\"\n >\n info_outline\n </mat-icon>\n </mat-card-header>\n\n <mat-card-content>\n <div>\n <div *ngIf=\"IsPrivate\">\n <div class=\"toggle-container\">\n <mat-slide-toggle formControlName=\"isTriggerSignIn\">\n Is Trigger Sign In Application?\n </mat-slide-toggle>\n\n <mat-icon\n matSuffix\n matTooltip=\"A Trigger Sign In Application will direct the user to sign in if they are not already.\"\n >\n info_outline\n </mat-icon>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>Access Rights</mat-label>\n <mat-select\n formControlName=\"accessRights\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{accessRights?.value?.[0] || ''}}\n <span *ngIf=\"(accessRights.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(accessRights.value?.length || 0) - 1}} {{accessRights.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let rights of AccessRights\"\n [value]=\"rights\"\n >{{ rights }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n <div>\n <mat-form-field appearance=\"fill\">\n <mat-label>License Configs</mat-label>\n <mat-select\n formControlName=\"licenseConfigs\"\n multiple\n >\n <!-- <mat-select-trigger>\n {{licenseConfigs.value?.[0] || ''}}\n <span *ngIf=\"(licenseConfigs.value?.length || 0) > 1\" class=\"example-additional-selection\">\n (+{{(licenseConfigs.value?.length || 0) - 1}} {{licenseConfigs.value?.length === 2 ? 'other' : 'others'}})\n </span>\n </mat-select-trigger> -->\n <mat-option\n *ngFor=\"let configs of LicenseConfigs\"\n [value]=\"configs\"\n >{{ configs }}</mat-option\n >\n </mat-select>\n </mat-form-field>\n </div>\n </div>\n </div>\n </mat-card-content>\n\n <mat-card-actions fxLayoutAlign=\"center center\">\n <button\n mat-raised-button\n type=\"submit\"\n fxFlex=\"100%\"\n color=\"primary\"\n [disabled]=\"\n !SecurityFormGroup.valid || !SecurityFormGroup.dirty\n \"\n >\n <mat-icon>save</mat-icon>\n Save Settings\n </button>\n </mat-card-actions>\n </ng-container>\n </mat-card>\n</form>\n", styles: [".flow-card{margin:32px 20px}.toggle-container{margin-bottom:10px}\n"] }]
@@ -4898,6 +4900,9 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "13.2.2", ngImpor
4898
4900
  }], SaveFormEvent: [{
4899
4901
  type: Output,
4900
4902
  args: ['save-form-event']
4903
+ }], IsPrivateChanged: [{
4904
+ type: Output,
4905
+ args: ['is-private-changed']
4901
4906
  }] } });
4902
4907
 
4903
4908
  class ProcessorDetailsFormComponent {