@ieeesa-npm/tenants 0.1.6 → 0.1.8

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.
@@ -133,6 +133,13 @@
133
133
  "active": "Active",
134
134
  "inactive": "Inactive"
135
135
  },
136
+ "buttons": {
137
+ "id": 1,
138
+ "ariaLabel": "Edit Application Details",
139
+ "label": "Edit Application Details",
140
+ "toolTip": "Edit Application Details",
141
+ "iconURL": "assets/images/sprites/sprites.svg#icon-edit-tenant"
142
+ },
136
143
  "tableColumns": {
137
144
  "appId": "Application Id",
138
145
  "appTitle": "Application Title",
@@ -152,7 +159,44 @@
152
159
  },
153
160
  "errors": {
154
161
  "2050": "Tenant Details not found.",
155
- "2051": "Failure to update tenant status."
162
+ "2051": "Failure to update tenant status.",
163
+ "2054": "IEEE SA Collaboration Portal cannot be inactivated.",
164
+ "3007": "No Role(s) found.",
165
+ "3009": "Unable to fetch Roles and Permissions Mapping."
166
+ },
167
+ "tenantAccordionInfo": [
168
+ {
169
+ "id": 1,
170
+ "title": "Basic Details",
171
+ "isDisabled": false,
172
+ "content": "Basic data"
173
+ },
174
+ {
175
+ "id": 2,
176
+ "title": "Roles and Permissions",
177
+ "isDisabled": false,
178
+ "content": "Roles"
179
+ },
180
+ {
181
+ "id": 3,
182
+ "title": "Group Types",
183
+ "isDisabled": false,
184
+ "content": "Groups"
185
+ }
186
+ ],
187
+ "tenantBasicDetails": {
188
+ "label": {
189
+ "title": "Title",
190
+ "logo": "Logo",
191
+ "description": "Description",
192
+ "bgColor": "Background Color",
193
+ "heading": "Heading",
194
+ "helpLink": "Help Link",
195
+ "listOfFeatures": "List of features",
196
+ "featureVersion": "Feature Version",
197
+ "domainURL": "Domain URL",
198
+ "type": "Type"
199
+ }
156
200
  }
157
201
  },
158
202
  "viewRolesAndPermissions": {
@@ -194,27 +238,5 @@
194
238
  "routeConfigPath": {
195
239
  "viewTenants": "tenants/view-tenants-list",
196
240
  "viewTenantDetails": "tenants/view-tenant-details"
197
- },
198
- "TenantAccordionInfo": [
199
- {
200
- "id": 1,
201
- "title": "Basic Details",
202
- "isDisabled": false
203
- },
204
- {
205
- "id": 2,
206
- "title": "Roles and Permissions",
207
- "isDisabled": false
208
- },
209
- {
210
- "id": 3,
211
- "title": "Group Types",
212
- "isDisabled": false
213
- }
214
- ],
215
- "errors": {
216
- "2050": "Tenant Details not found.",
217
- "3007": "No Role(s) found.",
218
- "3009": "Unable to fetch Roles and Permissions Mapping."
219
241
  }
220
242
  }
@@ -0,0 +1,114 @@
1
+ import { Component, Input, ViewEncapsulation } from '@angular/core';
2
+ import { CommonModule } from '@angular/common';
3
+ import * as screenText from '../../assets/constants.json';
4
+ import { Subject, takeUntil } from 'rxjs';
5
+ import { ImagePreviewComponent, } from '@ieeesa-npm/presentation';
6
+ import * as i0 from "@angular/core";
7
+ import * as i1 from "../../services/tenant-applications.service";
8
+ import * as i2 from "@ieeesa-npm/utility";
9
+ import * as i3 from "@ieeesa-npm/presentation";
10
+ import * as i4 from "@ieeesa-npm/shared";
11
+ import * as i5 from "@angular/common";
12
+ export class TenantBasicDetailsComponent {
13
+ set tenantDetails(value) {
14
+ this.basicInfo = value;
15
+ this.logo = this.basicInfo?.appLogo;
16
+ this.selectedAppType = this.basicInfo?.appType;
17
+ if (this.basicInfo) {
18
+ this.getAppType();
19
+ this.getFileDownloadPresignedUrls(this.logo);
20
+ }
21
+ }
22
+ constructor(
23
+ // eslint-disable-next-line no-unused-vars
24
+ tenantAppService,
25
+ // eslint-disable-next-line no-unused-vars
26
+ breakpointObserverService,
27
+ // eslint-disable-next-line no-unused-vars
28
+ fileUploadService,
29
+ // eslint-disable-next-line no-unused-vars
30
+ sharedService) {
31
+ this.tenantAppService = tenantAppService;
32
+ this.breakpointObserverService = breakpointObserverService;
33
+ this.fileUploadService = fileUploadService;
34
+ this.sharedService = sharedService;
35
+ this.destroy$ = new Subject();
36
+ this.isMobileView = false;
37
+ this.constants = screenText;
38
+ this.basicDetailTexts = this.constants?.viewTenants?.tenantBasicDetails?.label;
39
+ this.breakpointObserverService
40
+ .getBreakpoint()
41
+ .pipe(takeUntil(this.destroy$))
42
+ .subscribe((result) => {
43
+ this.isMobileView = result?.matches;
44
+ });
45
+ this.tenantAppService.getApplicationType();
46
+ this.fileUploadService.setApiBaseUrl(this.tenantAppService?.apiBaseUrl);
47
+ }
48
+ /**
49
+ * Gets the application types.
50
+ * @memberof TenantBasicDetailsComponent
51
+ */
52
+ getAppType() {
53
+ const appTypes = this.tenantAppService.appTypeInfo;
54
+ const selectedType = appTypes?.filter((appType) => appType.id === this.basicInfo?.appType);
55
+ this.selectedAppTypeLabel = selectedType[0]?.label;
56
+ }
57
+ /**
58
+ * Retrieves presigned URL for downloading files from Amazon S3 bucket.
59
+ * @memberof TenantBasicDetailsComponent
60
+ */
61
+ getFileDownloadPresignedUrls(fileName) {
62
+ this.fileUploadService
63
+ .getFileDownloadPresignedUrls(fileName)
64
+ .pipe(takeUntil(this.destroy$))
65
+ .subscribe({
66
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
67
+ next: (response) => {
68
+ const presignedUrl = response?.body;
69
+ if (presignedUrl) {
70
+ this.downloadFile(presignedUrl);
71
+ }
72
+ },
73
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
74
+ error: (error) => {
75
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
76
+ },
77
+ });
78
+ }
79
+ /**
80
+ * Downloads file from AWS S3 using a presigned URL.
81
+ * @memberof TenantBasicDetailsComponent
82
+ */
83
+ downloadFile(presignedUrl) {
84
+ this.fileUploadService
85
+ .downloadFile(presignedUrl)
86
+ .pipe(takeUntil(this.destroy$))
87
+ .subscribe({
88
+ // eslint-disable-next-line @typescript-eslint/no-explicit-any
89
+ next: (response) => {
90
+ this.imageUrl = response;
91
+ },
92
+ error: (error) => {
93
+ this.sharedService.handleErrors(error, this.constants?.viewTenants?.errors);
94
+ },
95
+ });
96
+ }
97
+ /**
98
+ * Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
99
+ * @memberof ViewTenantDetailsComponent
100
+ */
101
+ ngOnDestroy() {
102
+ this.destroy$?.next(true);
103
+ this.destroy$?.unsubscribe();
104
+ }
105
+ static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantBasicDetailsComponent, deps: [{ token: i1.TenantApplicationsService }, { token: i2.BreakpointObserverService }, { token: i3.FileUploadService }, { token: i4.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
106
+ static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: TenantBasicDetailsComponent, isStandalone: true, selector: "ieeesa-tenant-basic-details", inputs: { tenantDetails: "tenantDetails" }, ngImport: i0, template: "<div\r\n class=\"ieeesa-tenant-basic-info d-flex flex-start flex-column\"\r\n [ngClass]=\"{ 'px-3': isMobileView }\"\r\n>\r\n <p class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.title }}</p>\r\n <p class=\"ieeesa-body-lg-18\">{{ basicInfo?.appTitle }}</p>\r\n <p class=\"ieeesa-body-color-sm-14 mb-1\">{{ basicDetailTexts.logo }}</p>\r\n <ng-container>\r\n <ieeesa-image-preview\r\n class=\"pb-3\"\r\n [imageUrl]=\"imageUrl\"\r\n ></ieeesa-image-preview>\r\n </ng-container>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.heading\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appHeading }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.description\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appDescription }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.bgColor\r\n }}</span>\r\n <p\r\n class=\"ieeesa-tenant-basic-info__bgColor\"\r\n [ngStyle]=\"{ 'background-color': basicInfo?.backgroundColor }\"\r\n ></p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.helpLink\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appHelpLink }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.listOfFeatures\r\n }}</span>\r\n <ul [ngClass]=\"isMobileView ? '' : 'd-flex gap-5'\">\r\n <li class=\"ieeesa-title-md-18\" *ngFor=\"let feature of basicInfo?.features\">\r\n {{ feature?.featureName }}\r\n </li>\r\n </ul>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.domainURL\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appDomainUrl }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.type }}</span>\r\n <p class=\"ieeesa-body-lg-18\">{{ selectedAppTypeLabel }}</p>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-tenant-basic-info{padding:1.5rem 1.5rem .75rem}.ieeesa-tenant-basic-info .ieeesa-body-color-sm-14{color:#49454f!important}.ieeesa-tenant-basic-info__bgColor{width:1.5em;height:1.5em;border:1px solid #fffbfe}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i5.NgClass, selector: "[ngClass]", inputs: ["class", "ngClass"] }, { kind: "directive", type: i5.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i5.NgStyle, selector: "[ngStyle]", inputs: ["ngStyle"] }, { kind: "component", type: ImagePreviewComponent, selector: "ieeesa-image-preview", inputs: ["imageUrl"] }], encapsulation: i0.ViewEncapsulation.None }); }
107
+ }
108
+ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: TenantBasicDetailsComponent, decorators: [{
109
+ type: Component,
110
+ args: [{ selector: 'ieeesa-tenant-basic-details', standalone: true, imports: [CommonModule, ImagePreviewComponent], encapsulation: ViewEncapsulation.None, template: "<div\r\n class=\"ieeesa-tenant-basic-info d-flex flex-start flex-column\"\r\n [ngClass]=\"{ 'px-3': isMobileView }\"\r\n>\r\n <p class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.title }}</p>\r\n <p class=\"ieeesa-body-lg-18\">{{ basicInfo?.appTitle }}</p>\r\n <p class=\"ieeesa-body-color-sm-14 mb-1\">{{ basicDetailTexts.logo }}</p>\r\n <ng-container>\r\n <ieeesa-image-preview\r\n class=\"pb-3\"\r\n [imageUrl]=\"imageUrl\"\r\n ></ieeesa-image-preview>\r\n </ng-container>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.heading\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appHeading }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.description\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appDescription }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.bgColor\r\n }}</span>\r\n <p\r\n class=\"ieeesa-tenant-basic-info__bgColor\"\r\n [ngStyle]=\"{ 'background-color': basicInfo?.backgroundColor }\"\r\n ></p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.helpLink\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appHelpLink }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.listOfFeatures\r\n }}</span>\r\n <ul [ngClass]=\"isMobileView ? '' : 'd-flex gap-5'\">\r\n <li class=\"ieeesa-title-md-18\" *ngFor=\"let feature of basicInfo?.features\">\r\n {{ feature?.featureName }}\r\n </li>\r\n </ul>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{\r\n basicDetailTexts.domainURL\r\n }}</span>\r\n <p class=\"ieeesa-title-md-16\">{{ basicInfo?.appDomainUrl }}</p>\r\n <span class=\"ieeesa-body-color-sm-14 mb-0\">{{ basicDetailTexts.type }}</span>\r\n <p class=\"ieeesa-body-lg-18\">{{ selectedAppTypeLabel }}</p>\r\n</div>\r\n", styles: [".ieeesa-subtitle{text-align:left;font-family:Calibri Regular;font-size:1.5625rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-body{text-align:left;font-family:Calibri Regular;font-size:1.25rem;letter-spacing:0;color:#000;opacity:1}.ieeesa-display-lg-57{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:3.5625rem;line-height:64px;color:#000;letter-spacing:0}.ieeesa-display-md-45{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.813rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-md-47{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.9375rem;line-height:52px;color:#000;letter-spacing:0}.ieeesa-display-sm-38{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.375rem;line-height:44px;color:#000;letter-spacing:0}.ieeesa-headline-lg-32{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-lg-34{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:2.125rem;line-height:40px;color:#000;letter-spacing:0}.ieeesa-headline-md-30{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.875rem;line-height:36px;color:#000;letter-spacing:0}.ieeesa-headline-sm-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:32px;color:#00629b;letter-spacing:0}.ieeesa-headline-sm-26{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.625rem;line-height:32px;color:#000;letter-spacing:0}.ieeesa-title-lg-bold-24{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-lg-24{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.5rem;line-height:28px;color:#000;letter-spacing:0}.ieeesa-title-md-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.009375em}.ieeesa-title-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-title-sm-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-label-lg-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.ieeesa-btn-label-lg-bold-16{font-family:Calibri Regular;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#00629b;letter-spacing:.00625em}.ieeesa-label-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-label-sm-13{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.8125rem;line-height:16px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-16{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-bold-18{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-lg-18{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1.125rem;line-height:24px;color:#000;letter-spacing:.03125em}.ieeesa-body-md-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:20px;color:#1c1b1f;letter-spacing:.015625em}.ieeesa-body-md-16{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:20px;color:#000;letter-spacing:.015625em}.ieeesa-body-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-body-color-sm-14{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.875rem;line-height:18px;color:#49454f;letter-spacing:.025em}.ieeesa-body-sm-bold-14{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:.875rem;line-height:16px;color:#000;letter-spacing:.025em}.ieeesa-title-inter-lg-bold-24{font-family:Inter Bold;font-style:normal;font-weight:700;font-size:1.5rem;line-height:29px;color:#000;letter-spacing:0}.mat-mdc-button.mat-mdc-button-base.mat-primary-button,.mat-mdc-button.mat-mdc-button-base.mat-secondary-button,.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button,.mat-mdc-button.mat-mdc-button-base.mat-text-button{min-width:103px;width:auto;min-height:40px;height:auto;border-radius:3px;text-align:center;padding:.625em 1.5em;border:none;font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#000;letter-spacing:.00625em}.mat-mdc-button.mat-mdc-button-base>.mat-icon{margin-right:11px}.mat-mdc-button.mat-mdc-button-base.mat-primary-button{background-color:#00629b;color:#fff}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:hover{background-color:#003e65}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:active{background-color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-primary-button:disabled{background-color:#1c1b1f1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button{color:#fff;background:#a7a8aa;box-shadow:0 1px 2px #0000004d,0 2px 6px 2px #00000026}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:hover{background:#a7a8aa}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:active{background:#1d192b1f}.mat-mdc-button.mat-mdc-button-base.mat-secondary-button:disabled{background:#1c1b1f1f;color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button{background-color:#fff;border:1px solid #00629b;color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:hover{background-color:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:active{background:#6750a41f}.mat-mdc-button.mat-mdc-button-base.mat-tertiary-button:disabled{border:1px solid rgba(28,27,31,.12);color:#1c1b1f;opacity:.38}.mat-mdc-button.mat-mdc-button-base.mat-text-button{color:#00629b}.mat-mdc-button.mat-mdc-button-base.mat-text-button:hover,.mat-mdc-button.mat-mdc-button-base.mat-text-button:active{background:#6750a414}.mat-mdc-button.mat-mdc-button-base.mat-text-button:disabled{color:#1c1b1f;opacity:.38}.ieeesa-text-button{color:#cac4d0;background:none;border:none}.ieeesa-view-more-or-less-button{border:none;background:none;text-decoration:underline;color:#00629b}.flex-align-center{display:flex;align-items:center;justify-content:center}.mat-button-toggle-checked{background-color:#a7a8aa}.mat-button-toggle-checked .mat-button-toggle-label-content:before{font-family:\"Font Awesome 5 Free\";font-weight:900;content:\"\\f00c\";padding-right:.5625em}.mat-button-toggle-group .mat-button-toggle-label-content{font-family:Calibri Bold;font-style:normal;font-weight:700;font-size:1rem;line-height:20px;color:#1c1b1f;letter-spacing:.00625em}.no-bg-color-btn{color:#00629b;border-radius:3px;border:1px solid #00629b;min-height:40px;height:auto}@media (max-width: 768px){.mat-button-toggle-group .mat-button-toggle-label-content{max-width:8ch;text-overflow:ellipsis;white-space:nowrap;overflow:hidden;position:relative}}.cdk-overlay-pane .mat-mdc-tooltip .mdc-tooltip__surface{color:#525252;padding:6px 12px;font-family:Calibri Regular;font-size:1rem;border:1px solid #cac4d0;background:#fff;box-shadow:0 4px 8px #00000040;max-width:unset!important}.cdk-overlay-pane .mat-mdc-option .mdc-list-item__primary-text{font-family:Calibri Regular!important}.cdk-overlay-pane.ieeesa-modal-confirm-dialog,.cdk-overlay-pane.ieeesa-modal-dialog,.cdk-overlay-pane.ieeesa-alert-dialog{width:100%;min-width:312px}.mat-mdc-form-field{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:1rem;line-height:24px;color:#49454f;letter-spacing:.03125em}.ieeesa-tenant-basic-info{padding:1.5rem 1.5rem .75rem}.ieeesa-tenant-basic-info .ieeesa-body-color-sm-14{color:#49454f!important}.ieeesa-tenant-basic-info__bgColor{width:1.5em;height:1.5em;border:1px solid #fffbfe}\n"] }]
111
+ }], ctorParameters: function () { return [{ type: i1.TenantApplicationsService }, { type: i2.BreakpointObserverService }, { type: i3.FileUploadService }, { type: i4.SharedService }]; }, propDecorators: { tenantDetails: [{
112
+ type: Input
113
+ }] } });
114
+ //# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidGVuYW50LWJhc2ljLWRldGFpbHMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGVuYW50LWJhc2ljLWRldGFpbHMvdGVuYW50LWJhc2ljLWRldGFpbHMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdGVuYW50LWJhc2ljLWRldGFpbHMvdGVuYW50LWJhc2ljLWRldGFpbHMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBRSxLQUFLLEVBQWEsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDL0UsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFHMUQsT0FBTyxFQUFFLE9BQU8sRUFBRSxTQUFTLEVBQUUsTUFBTSxNQUFNLENBQUM7QUFDMUMsT0FBTyxFQUVMLHFCQUFxQixHQUV0QixNQUFNLDBCQUEwQixDQUFDOzs7Ozs7O0FBWWxDLE1BQU0sT0FBTywyQkFBMkI7SUFXdEMsSUFDSSxhQUFhLENBQUMsS0FBc0I7UUFDdEMsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7UUFDdkIsSUFBSSxDQUFDLElBQUksR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQWlCLENBQUM7UUFDOUMsSUFBSSxDQUFDLGVBQWUsR0FBRyxJQUFJLENBQUMsU0FBUyxFQUFFLE9BQWlCLENBQUM7UUFDekQsSUFBSSxJQUFJLENBQUMsU0FBUyxFQUFFO1lBQ2xCLElBQUksQ0FBQyxVQUFVLEVBQUUsQ0FBQztZQUNsQixJQUFJLENBQUMsNEJBQTRCLENBQUMsSUFBSSxDQUFDLElBQUksQ0FBQyxDQUFDO1NBQzlDO0lB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QyxZQUFZLENBQzdCLEtBQUssRUFDTCxJQUFJLENBQUMsU0FBUyxFQUFFLFdBQVcsRUFBRSxNQUFNLENBQ3BDLENBQUM7WUFDSixDQUFDO1NBQ0YsQ0FBQyxDQUFDO0lBQ1AsQ0FBQztJQUNEOzs7T0FHRztJQUNILFdBQVc7UUFDVCxJQUFJLENBQUMsUUFBUSxFQUFFLElBQUksQ0FBQyxJQUFJLENBQUMsQ0FBQztRQUMxQixJQUFJLENBQUMsUUFBUSxFQUFFLFdBQVcsRUFBRSxDQUFDO0lBQy9CLENBQUM7K0dBNUdVLDJCQUEyQjttR0FBM0IsMkJBQTJCLG1JQ3RCeEMsZzREQStDQSw0bFFEOUJZLFlBQVksK1VBQUUscUJBQXFCOzs0RkFLbEMsMkJBQTJCO2tCQVJ2QyxTQUFTOytCQUNFLDZCQUE2QixjQUMzQixJQUFJLFdBQ1AsQ0FBQyxZQUFZLEVBQUUscUJBQXFCLENBQUMsaUJBRy9CLGlCQUFpQixDQUFDLElBQUk7b05BY2pDLGFBQWE7c0JBRGhCLEtBQUsiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIElucHV0LCBPbkRlc3Ryb3ksIFZpZXdFbmNhcHN1bGF0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XHJcbmltcG9ydCB7IENvbW1vbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCAqIGFzIHNjcmVlblRleHQgZnJvbSAnLi4vLi4vYXNzZXRzL2NvbnN0YW50cy5qc29uJztcclxuaW1wb3J0IHsgVGVuYW50QXBwbGljYXRpb25zU2VydmljZSB9IGZyb20gJy4uLy4uL3NlcnZpY2VzL3RlbmFudC1hcHBsaWNhdGlvbnMuc2VydmljZSc7XHJcbmltcG9ydCB7IEJyZWFrcG9pbnRPYnNlcnZlclNlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS91dGlsaXR5JztcclxuaW1wb3J0IHsgU3ViamVjdCwgdGFrZVVudGlsIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7XHJcbiAgUmFkaW9PcHRpb24sXHJcbiAgSW1hZ2VQcmV2aWV3Q29tcG9uZW50LFxyXG4gIEZpbGVVcGxvYWRTZXJ2aWNlLFxyXG59IGZyb20gJ0BpZWVlc2EtbnBtL3ByZXNlbnRhdGlvbic7XHJcbmltcG9ydCB7IFNoYXJlZFNlcnZpY2UgfSBmcm9tICdAaWVlZXNhLW5wbS9zaGFyZWQnO1xyXG5pbXBvcnQgeyBUZW5hbnRCYXNpY0luZm8gfSBmcm9tICcuLi8uLi9tb2RlbHMvdGVuYW50Lm1vZGVsJztcclxuXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXRlbmFudC1iYXNpYy1kZXRhaWxzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIEltYWdlUHJldmlld0NvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3RlbmFudC1iYXNpYy1kZXRhaWxzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi90ZW5hbnQtYmFzaWMtZGV0YWlscy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBUZW5hbnRCYXNpY0RldGFpbHNDb21wb25lbnQgaW1wbGVtZW50cyBPbkRlc3Ryb3kge1xyXG4gIGRlc3Ryb3kkOiBTdWJqZWN0PGJvb2xlYW4+ID0gbmV3IFN1YmplY3Q8Ym9vbGVhbj4oKTtcclxuICBpc01vYmlsZVZpZXcgPSBmYWxzZTtcclxuICBjb25zdGFudHMgPSBzY3JlZW5UZXh0O1xyXG4gIGJhc2ljRGV0YWlsVGV4dHMgPSB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LnRlbmFudEJhc2ljRGV0YWlscz8ubGFiZWw7XHJcbiAgdGVuYW50QmFja2dyb3VuZENvbG9yITogc3RyaW5nO1xyXG4gIHNlbGVjdGVkQXBwVHlwZSE6IHN0cmluZztcclxuICBzZWxlY3RlZEFwcFR5cGVMYWJlbCE6IHN0cmluZztcclxuICBsb2dvITogc3RyaW5nO1xyXG4gIGJhc2ljSW5mbyE6IFRlbmFudEJhc2ljSW5mbztcclxuICBpbWFnZVVybCE6IHN0cmluZztcclxuICBASW5wdXQoKVxyXG4gIHNldCB0ZW5hbnREZXRhaWxzKHZhbHVlOiBUZW5hbnRCYXNpY0luZm8pIHtcclxuICAgIHRoaXMuYmFzaWNJbmZvID0gdmFsdWU7XHJcbiAgICB0aGlzLmxvZ28gPSB0aGlzLmJhc2ljSW5mbz8uYXBwTG9nbyBhcyBzdHJpbmc7XHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwVHlwZSA9IHRoaXMuYmFzaWNJbmZvPy5hcHBUeXBlIGFzIHN0cmluZztcclxuICAgIGlmICh0aGlzLmJhc2ljSW5mbykge1xyXG4gICAgICB0aGlzLmdldEFwcFR5cGUoKTtcclxuICAgICAgdGhpcy5nZXRGaWxlRG93bmxvYWRQcmVzaWduZWRVcmxzKHRoaXMubG9nbyk7XHJcbiAgICB9XHJcbiAgfVxyXG5cclxuICBjb25zdHJ1Y3RvcihcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHVibGljIHRlbmFudEFwcFNlcnZpY2U6IFRlbmFudEFwcGxpY2F0aW9uc1NlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgYnJlYWtwb2ludE9ic2VydmVyU2VydmljZTogQnJlYWtwb2ludE9ic2VydmVyU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBmaWxlVXBsb2FkU2VydmljZTogRmlsZVVwbG9hZFNlcnZpY2UsXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgc2hhcmVkU2VydmljZTogU2hhcmVkU2VydmljZVxyXG4gICkge1xyXG4gICAgdGhpcy5icmVha3BvaW50T2JzZXJ2ZXJTZXJ2aWNlXHJcbiAgICAgIC5nZXRCcmVha3BvaW50KClcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKChyZXN1bHQ6IHsgbWF0Y2hlczogYm9vbGVhbiB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy5pc01vYmlsZVZpZXcgPSByZXN1bHQ/Lm1hdGNoZXM7XHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLmdldEFwcGxpY2F0aW9uVHlwZSgpO1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU2VydmljZS5zZXRBcGlCYXNlVXJsKHRoaXMudGVuYW50QXBwU2VydmljZT8uYXBpQmFzZVVybCk7XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBHZXRzIHRoZSBhcHBsaWNhdGlvbiB0eXBlcy5cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QmFzaWNEZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZ2V0QXBwVHlwZSgpOiB2b2lkIHtcclxuICAgIGNvbnN0IGFwcFR5cGVzID0gdGhpcy50ZW5hbnRBcHBTZXJ2aWNlLmFwcFR5cGVJbmZvO1xyXG4gICAgY29uc3Qgc2VsZWN0ZWRUeXBlID0gYXBwVHlwZXM/LmZpbHRlcihcclxuICAgICAgKGFwcFR5cGUpID0+IGFwcFR5cGUuaWQgPT09IHRoaXMuYmFzaWNJbmZvPy5hcHBUeXBlXHJcbiAgICApIGFzIFJhZGlvT3B0aW9uW107XHJcbiAgICB0aGlzLnNlbGVjdGVkQXBwVHlwZUxhYmVsID0gc2VsZWN0ZWRUeXBlWzBdPy5sYWJlbDtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIFJldHJpZXZlcyBwcmVzaWduZWQgVVJMIGZvciBkb3dubG9hZGluZyBmaWxlcyBmcm9tIEFtYXpvbiBTMyBidWNrZXQuXHJcbiAgICogQG1lbWJlcm9mIFRlbmFudEJhc2ljRGV0YWlsc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGdldEZpbGVEb3dubG9hZFByZXNpZ25lZFVybHMoZmlsZU5hbWU6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5maWxlVXBsb2FkU2VydmljZVxyXG4gICAgICAuZ2V0RmlsZURvd25sb2FkUHJlc2lnbmVkVXJscyhmaWxlTmFtZSlcclxuICAgICAgLnBpcGUodGFrZVVudGlsKHRoaXMuZGVzdHJveSQpKVxyXG4gICAgICAuc3Vic2NyaWJlKHtcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIG5leHQ6IChyZXNwb25zZTogYW55KSA9PiB7XHJcbiAgICAgICAgICBjb25zdCBwcmVzaWduZWRVcmwgPSByZXNwb25zZT8uYm9keTtcclxuICAgICAgICAgIGlmIChwcmVzaWduZWRVcmwpIHtcclxuICAgICAgICAgICAgdGhpcy5kb3dubG9hZEZpbGUocHJlc2lnbmVkVXJsKTtcclxuICAgICAgICAgIH1cclxuICAgICAgICB9LFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgZXJyb3I6IChlcnJvcjogRXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld1RlbmFudHM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIERvd25sb2FkcyBmaWxlIGZyb20gQVdTIFMzIHVzaW5nIGEgcHJlc2lnbmVkIFVSTC5cclxuICAgKiBAbWVtYmVyb2YgVGVuYW50QmFzaWNEZXRhaWxzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgZG93bmxvYWRGaWxlKHByZXNpZ25lZFVybDogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmZpbGVVcGxvYWRTZXJ2aWNlXHJcbiAgICAgIC5kb3dubG9hZEZpbGUocHJlc2lnbmVkVXJsKVxyXG4gICAgICAucGlwZSh0YWtlVW50aWwodGhpcy5kZXN0cm95JCkpXHJcbiAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW1hZ2VVcmwgPSByZXNwb25zZSBhcyBzdHJpbmc7XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKGVycm9yKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnNoYXJlZFNlcnZpY2UuaGFuZGxlRXJyb3JzKFxyXG4gICAgICAgICAgICBlcnJvcixcclxuICAgICAgICAgICAgdGhpcy5jb25zdGFudHM/LnZpZXdUZW5hbnRzPy5lcnJvcnNcclxuICAgICAgICAgICk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgfVxyXG4gIC8qKlxyXG4gICAqIFBlcmZvcm1zIG5lY2Vzc2FyeSBjbGVhbnVwIHRhc2tzLCBzdWNoIGFzIHVuc3Vic2NyaWJpbmcgZnJvbSBzdWJzY3JpcHRpb24gd2hlbiB0aGUgY29tcG9uZW50IGlzIGJlaW5nIGRlc3Ryb3llZC5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudERldGFpbHNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uRGVzdHJveSgpOiB2b2lkIHtcclxuICAgIHRoaXMuZGVzdHJveSQ/Lm5leHQodHJ1ZSk7XHJcbiAgICB0aGlzLmRlc3Ryb3kkPy51bnN1YnNjcmliZSgpO1xyXG4gIH1cclxufVxyXG4iLCI8ZGl2XHJcbiAgY2xhc3M9XCJpZWVlc2EtdGVuYW50LWJhc2ljLWluZm8gZC1mbGV4IGZsZXgtc3RhcnQgZmxleC1jb2x1bW5cIlxyXG4gIFtuZ0NsYXNzXT1cInsgJ3B4LTMnOiBpc01vYmlsZVZpZXcgfVwiXHJcbj5cclxuICA8cCBjbGFzcz1cImllZWVzYS1ib2R5LWNvbG9yLXNtLTE0IG1iLTBcIj57eyBiYXNpY0RldGFpbFRleHRzLnRpdGxlIH19PC9wPlxyXG4gIDxwIGNsYXNzPVwiaWVlZXNhLWJvZHktbGctMThcIj57eyBiYXNpY0luZm8/LmFwcFRpdGxlIH19PC9wPlxyXG4gIDxwIGNsYXNzPVwiaWVlZXNhLWJvZHktY29sb3Itc20tMTQgbWItMVwiPnt7IGJhc2ljRGV0YWlsVGV4dHMubG9nbyB9fTwvcD5cclxuICA8bmctY29udGFpbmVyPlxyXG4gICAgPGllZWVzYS1pbWFnZS1wcmV2aWV3XHJcbiAgICAgIGNsYXNzPVwicGItM1wiXHJcbiAgICAgIFtpbWFnZVVybF09XCJpbWFnZVVybFwiXHJcbiAgICA+PC9pZWVlc2EtaW1hZ2UtcHJldmlldz5cclxuICA8L25nLWNvbnRhaW5lcj5cclxuICA8c3BhbiBjbGFzcz1cImllZWVzYS1ib2R5LWNvbG9yLXNtLTE0IG1iLTBcIj57e1xyXG4gICAgYmFzaWNEZXRhaWxUZXh0cy5oZWFkaW5nXHJcbiAgfX08L3NwYW4+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2EtdGl0bGUtbWQtMTZcIj57eyBiYXNpY0luZm8/LmFwcEhlYWRpbmcgfX08L3A+XHJcbiAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtYm9keS1jb2xvci1zbS0xNCBtYi0wXCI+e3tcclxuICAgIGJhc2ljRGV0YWlsVGV4dHMuZGVzY3JpcHRpb25cclxuICB9fTwvc3Bhbj5cclxuICA8cCBjbGFzcz1cImllZWVzYS10aXRsZS1tZC0xNlwiPnt7IGJhc2ljSW5mbz8uYXBwRGVzY3JpcHRpb24gfX08L3A+XHJcbiAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtYm9keS1jb2xvci1zbS0xNCBtYi0wXCI+e3tcclxuICAgIGJhc2ljRGV0YWlsVGV4dHMuYmdDb2xvclxyXG4gIH19PC9zcGFuPlxyXG4gIDxwXHJcbiAgICBjbGFzcz1cImllZWVzYS10ZW5hbnQtYmFzaWMtaW5mb19fYmdDb2xvclwiXHJcbiAgICBbbmdTdHlsZV09XCJ7ICdiYWNrZ3JvdW5kLWNvbG9yJzogYmFzaWNJbmZvPy5iYWNrZ3JvdW5kQ29sb3IgfVwiXHJcbiAgPjwvcD5cclxuICA8c3BhbiBjbGFzcz1cImllZWVzYS1ib2R5LWNvbG9yLXNtLTE0IG1iLTBcIj57e1xyXG4gICAgYmFzaWNEZXRhaWxUZXh0cy5oZWxwTGlua1xyXG4gIH19PC9zcGFuPlxyXG4gIDxwIGNsYXNzPVwiaWVlZXNhLXRpdGxlLW1kLTE2XCI+e3sgYmFzaWNJbmZvPy5hcHBIZWxwTGluayB9fTwvcD5cclxuICA8c3BhbiBjbGFzcz1cImllZWVzYS1ib2R5LWNvbG9yLXNtLTE0IG1iLTBcIj57e1xyXG4gICAgYmFzaWNEZXRhaWxUZXh0cy5saXN0T2ZGZWF0dXJlc1xyXG4gIH19PC9zcGFuPlxyXG4gIDx1bCBbbmdDbGFzc109XCJpc01vYmlsZVZpZXcgPyAnJyA6ICdkLWZsZXggZ2FwLTUnXCI+XHJcbiAgICA8bGkgY2xhc3M9XCJpZWVlc2EtdGl0bGUtbWQtMThcIiAqbmdGb3I9XCJsZXQgZmVhdHVyZSBvZiBiYXNpY0luZm8/LmZlYXR1cmVzXCI+XHJcbiAgICAgIHt7IGZlYXR1cmU/LmZlYXR1cmVOYW1lIH19XHJcbiAgICA8L2xpPlxyXG4gIDwvdWw+XHJcbiAgPHNwYW4gY2xhc3M9XCJpZWVlc2EtYm9keS1jb2xvci1zbS0xNCBtYi0wXCI+e3tcclxuICAgIGJhc2ljRGV0YWlsVGV4dHMuZG9tYWluVVJMXHJcbiAgfX08L3NwYW4+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2EtdGl0bGUtbWQtMTZcIj57eyBiYXNpY0luZm8/LmFwcERvbWFpblVybCB9fTwvcD5cclxuICA8c3BhbiBjbGFzcz1cImllZWVzYS1ib2R5LWNvbG9yLXNtLTE0IG1iLTBcIj57eyBiYXNpY0RldGFpbFRleHRzLnR5cGUgfX08L3NwYW4+XHJcbiAgPHAgY2xhc3M9XCJpZWVlc2EtYm9keS1sZy0xOFwiPnt7IHNlbGVjdGVkQXBwVHlwZUxhYmVsIH19PC9wPlxyXG48L2Rpdj5cclxuIl19