@ieeesa-npm/tenants 0.4.2 → 0.4.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.eslintrc.json +31 -0
- package/ng-package.json +8 -0
- package/package.json +12 -25
- package/src/lib/assets/constants.json +454 -0
- package/src/lib/assets/tenant-validations.ts +18 -0
- package/src/lib/assets/tenants-mock.ts +1240 -0
- package/src/lib/components/create-modify-group-type/create-modify-group-type.component.html +15 -0
- package/src/lib/components/create-modify-group-type/create-modify-group-type.component.scss +44 -0
- package/src/lib/components/create-modify-group-type/create-modify-group-type.component.spec.ts +574 -0
- package/src/lib/components/create-modify-group-type/create-modify-group-type.component.ts +602 -0
- package/src/lib/components/create-modify-role/create-modify-role.component.html +15 -0
- package/src/lib/components/create-modify-role/create-modify-role.component.scss +83 -0
- package/src/lib/components/create-modify-role/create-modify-role.component.spec.ts +346 -0
- package/src/lib/components/create-modify-role/create-modify-role.component.ts +321 -0
- package/src/lib/components/create-tenant-application/create-tenant-application.component.html +18 -0
- package/src/lib/components/create-tenant-application/create-tenant-application.component.scss +73 -0
- package/src/lib/components/create-tenant-application/create-tenant-application.component.spec.ts +775 -0
- package/src/lib/components/create-tenant-application/create-tenant-application.component.ts +638 -0
- package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.html +22 -0
- package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.scss +79 -0
- package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.spec.ts +716 -0
- package/src/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.ts +504 -0
- package/src/lib/components/tenant-basic-details/tenant-basic-details.component.html +44 -0
- package/src/lib/components/tenant-basic-details/tenant-basic-details.component.scss +16 -0
- package/src/lib/components/tenant-basic-details/tenant-basic-details.component.spec.ts +115 -0
- package/src/lib/components/tenant-basic-details/tenant-basic-details.component.ts +109 -0
- package/src/lib/components/view-tenant-details/view-tenant-details.component.html +195 -0
- package/src/lib/components/view-tenant-details/view-tenant-details.component.scss +163 -0
- package/src/lib/components/view-tenant-details/view-tenant-details.component.spec.ts +1221 -0
- package/src/lib/components/view-tenant-details/view-tenant-details.component.ts +876 -0
- package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.html +10 -0
- package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.scss +44 -0
- package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.spec.ts +410 -0
- package/src/lib/components/view-tenant-group-types/view-tenant-group-types.component.ts +219 -0
- package/src/lib/components/view-tenants-list/view-tenants-list.component.html +32 -0
- package/src/lib/components/view-tenants-list/view-tenants-list.component.scss +35 -0
- package/src/lib/components/view-tenants-list/view-tenants-list.component.spec.ts +464 -0
- package/src/lib/components/view-tenants-list/view-tenants-list.component.ts +388 -0
- package/src/lib/models/app-type-config.model.ts +14 -0
- package/src/lib/models/app-type.model.ts +5 -0
- package/src/lib/models/create-group-type-config.model.ts +18 -0
- package/src/lib/models/create-group-type.model.ts +46 -0
- package/src/lib/models/feature-permission-id.model.ts +6 -0
- package/src/lib/models/features.model.ts +15 -0
- package/src/lib/models/form-status.model.ts +5 -0
- package/src/lib/models/permission-type.model.ts +9 -0
- package/src/lib/models/role-menu-action.model.ts +5 -0
- package/src/lib/models/role-type.model.ts +34 -0
- package/src/lib/models/roles-and-permissions-table-type.model.ts +5 -0
- package/src/lib/models/roles-and-permissions.model.ts +113 -0
- package/src/lib/models/route-config.model.ts +4 -0
- package/src/lib/models/table-column-schema-view-tenant-list.model.ts +21 -0
- package/src/lib/models/tenant-function-type.model.ts +10 -0
- package/src/lib/models/tenant.model.ts +47 -0
- package/src/lib/models/tenants-permission.model.ts +9 -0
- package/src/lib/models/update-tenant-status.model.ts +12 -0
- package/src/lib/models/view-tenant-group-types.model.ts +34 -0
- package/src/lib/services/tenant-applications.service.spec.ts +1245 -0
- package/src/lib/services/tenant-applications.service.ts +798 -0
- package/src/lib/services/tenant-permissions-map.service.spec.ts +25 -0
- package/src/lib/services/tenant-permissions-map.service.ts +28 -0
- package/src/lib/services/tenant-permissions.service.spec.ts +62 -0
- package/src/lib/services/tenant-permissions.service.ts +49 -0
- package/src/lib/tenant-applications.component.html +0 -0
- package/src/lib/tenant-applications.component.scss +0 -0
- package/src/lib/tenant-applications.component.spec.ts +28 -0
- package/src/lib/tenant-applications.component.ts +12 -0
- package/src/lib/tenant-applications.module.ts +8 -0
- package/{public-api.d.ts → src/public-api.ts} +40 -30
- package/tsconfig.lib.json +14 -0
- package/tsconfig.lib.prod.json +10 -0
- package/tsconfig.spec.json +14 -0
- package/esm2022/ieeesa-npm-tenants.mjs +0 -5
- package/esm2022/lib/assets/constants.json +0 -390
- package/esm2022/lib/assets/tenant-validations.mjs +0 -13
- package/esm2022/lib/components/create-modify-role/create-modify-role.component.mjs +0 -280
- package/esm2022/lib/components/create-tenant-application/create-tenant-application.component.mjs +0 -512
- package/esm2022/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.mjs +0 -391
- package/esm2022/lib/components/tenant-basic-details/tenant-basic-details.component.mjs +0 -95
- package/esm2022/lib/components/view-tenant-details/view-tenant-details.component.mjs +0 -708
- package/esm2022/lib/components/view-tenant-group-types/view-tenant-group-types.component.mjs +0 -174
- package/esm2022/lib/components/view-tenants-list/view-tenants-list.component.mjs +0 -334
- package/esm2022/lib/models/app-type-config.model.mjs +0 -2
- package/esm2022/lib/models/app-type.model.mjs +0 -7
- package/esm2022/lib/models/feature-permission-id.model.mjs +0 -8
- package/esm2022/lib/models/features.model.mjs +0 -2
- package/esm2022/lib/models/form-status.model.mjs +0 -7
- package/esm2022/lib/models/permission-type.model.mjs +0 -12
- package/esm2022/lib/models/role-menu-action.model.mjs +0 -7
- package/esm2022/lib/models/role-type.model.mjs +0 -2
- package/esm2022/lib/models/roles-and-permissions-table-type.model.mjs +0 -7
- package/esm2022/lib/models/roles-and-permissions.model.mjs +0 -2
- package/esm2022/lib/models/route-config.model.mjs +0 -2
- package/esm2022/lib/models/table-column-schema-view-tenant-list.model.mjs +0 -16
- package/esm2022/lib/models/tenant-function-type.model.mjs +0 -10
- package/esm2022/lib/models/tenant.model.mjs +0 -2
- package/esm2022/lib/models/tenants-permission.model.mjs +0 -2
- package/esm2022/lib/models/update-tenant-status.model.mjs +0 -2
- package/esm2022/lib/models/view-tenant-group-types.model.mjs +0 -9
- package/esm2022/lib/services/tenant-applications.service.mjs +0 -542
- package/esm2022/lib/services/tenant-permissions-map.service.mjs +0 -36
- package/esm2022/lib/services/tenant-permissions.service.mjs +0 -38
- package/esm2022/lib/tenant-applications.component.mjs +0 -14
- package/esm2022/lib/tenant-applications.module.mjs +0 -16
- package/esm2022/public-api.mjs +0 -34
- package/fesm2022/ieeesa-npm-tenants.mjs +0 -3565
- package/fesm2022/ieeesa-npm-tenants.mjs.map +0 -1
- package/index.d.ts +0 -5
- package/lib/assets/tenant-validations.d.ts +0 -11
- package/lib/components/create-modify-role/create-modify-role.component.d.ts +0 -103
- package/lib/components/create-tenant-application/create-tenant-application.component.d.ts +0 -128
- package/lib/components/roles-and-permissions-mapping/roles-and-permissions-mapping.component.d.ts +0 -106
- package/lib/components/tenant-basic-details/tenant-basic-details.component.d.ts +0 -408
- package/lib/components/view-tenant-details/view-tenant-details.component.d.ts +0 -216
- package/lib/components/view-tenant-group-types/view-tenant-group-types.component.d.ts +0 -58
- package/lib/components/view-tenants-list/view-tenants-list.component.d.ts +0 -134
- package/lib/models/app-type-config.model.d.ts +0 -14
- package/lib/models/app-type.model.d.ts +0 -4
- package/lib/models/feature-permission-id.model.d.ts +0 -4
- package/lib/models/features.model.d.ts +0 -15
- package/lib/models/form-status.model.d.ts +0 -4
- package/lib/models/permission-type.model.d.ts +0 -8
- package/lib/models/role-menu-action.model.d.ts +0 -4
- package/lib/models/role-type.model.d.ts +0 -27
- package/lib/models/roles-and-permissions-table-type.model.d.ts +0 -4
- package/lib/models/roles-and-permissions.model.d.ts +0 -119
- package/lib/models/route-config.model.d.ts +0 -4
- package/lib/models/table-column-schema-view-tenant-list.model.d.ts +0 -20
- package/lib/models/tenant-function-type.model.d.ts +0 -7
- package/lib/models/tenant.model.d.ts +0 -51
- package/lib/models/tenants-permission.model.d.ts +0 -9
- package/lib/models/update-tenant-status.model.d.ts +0 -14
- package/lib/models/view-tenant-group-types.model.d.ts +0 -27
- package/lib/services/tenant-applications.service.d.ts +0 -357
- package/lib/services/tenant-permissions-map.service.d.ts +0 -13
- package/lib/services/tenant-permissions.service.d.ts +0 -22
- package/lib/tenant-applications.component.d.ts +0 -5
- package/lib/tenant-applications.module.d.ts +0 -6
package/esm2022/lib/components/view-tenant-group-types/view-tenant-group-types.component.mjs
DELETED
|
@@ -1,174 +0,0 @@
|
|
|
1
|
-
import { Component, ViewEncapsulation } from '@angular/core';
|
|
2
|
-
import { CommonModule } from '@angular/common';
|
|
3
|
-
import { DataTableComponent, TableColumnType, } from '@ieeesa-npm/presentation';
|
|
4
|
-
import { Subject, takeUntil } from 'rxjs';
|
|
5
|
-
import * as screenText from '../../assets/constants.json';
|
|
6
|
-
import { GroupTypeSettings, } from '../../models/view-tenant-group-types.model';
|
|
7
|
-
import * as i0 from "@angular/core";
|
|
8
|
-
import * as i1 from "../../services/tenant-applications.service";
|
|
9
|
-
import * as i2 from "@ieeesa-npm/shared";
|
|
10
|
-
import * as i3 from "@angular/common";
|
|
11
|
-
/**
|
|
12
|
-
* Component for viewing and managing tenant group types. Fetches the configured group types associated to the selected tenant and displays in tabular view.
|
|
13
|
-
* @export
|
|
14
|
-
* @class ViewTenantGroupTypesComponent
|
|
15
|
-
* @implements {OnInit}
|
|
16
|
-
*/
|
|
17
|
-
export class ViewTenantGroupTypesComponent {
|
|
18
|
-
constructor(
|
|
19
|
-
// eslint-disable-next-line no-unused-vars
|
|
20
|
-
tenantAppService,
|
|
21
|
-
// eslint-disable-next-line no-unused-vars
|
|
22
|
-
sharedService // eslint-disable-next-line no-empty-function
|
|
23
|
-
) {
|
|
24
|
-
this.tenantAppService = tenantAppService;
|
|
25
|
-
this.sharedService = sharedService;
|
|
26
|
-
this.destroy$ = new Subject();
|
|
27
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
28
|
-
this.constants = screenText;
|
|
29
|
-
this.columnHeading = this.constants?.viewGroupTypes?.tableColumns?.heading;
|
|
30
|
-
this.settings = this.constants?.viewGroupTypes?.settings;
|
|
31
|
-
this.tableRowActions = this.constants?.viewGroupTypes?.actionMenuItems;
|
|
32
|
-
this.columnSchema = [];
|
|
33
|
-
this.groupTypes = [];
|
|
34
|
-
this.appId = '';
|
|
35
|
-
this.headerElementClassName = '.ieeesa-header';
|
|
36
|
-
}
|
|
37
|
-
/**
|
|
38
|
-
* Fetches group types data from the server and initializes column schema.
|
|
39
|
-
* @memberof ViewTenantGroupTypesComponent
|
|
40
|
-
*/
|
|
41
|
-
ngOnInit() {
|
|
42
|
-
this.appId = this.tenantAppService.getSelectedTenantInformation()
|
|
43
|
-
?.appId;
|
|
44
|
-
this.tenantAppService
|
|
45
|
-
.getGroupTypes(this.appId)
|
|
46
|
-
.pipe(takeUntil(this.destroy$))
|
|
47
|
-
.subscribe({
|
|
48
|
-
next: (response) => {
|
|
49
|
-
this.initializeColumnSchema();
|
|
50
|
-
this.groupTypes = this.formatGroupTypesTableData(response);
|
|
51
|
-
},
|
|
52
|
-
error: (error) => {
|
|
53
|
-
this.sharedService.handleErrors(error, this.constants?.viewGroupTypes?.errors);
|
|
54
|
-
},
|
|
55
|
-
});
|
|
56
|
-
}
|
|
57
|
-
/**
|
|
58
|
-
* Formats raw group types data into a required format for display.
|
|
59
|
-
* @param {ViewGroupTypeResponse} groupTypeRes
|
|
60
|
-
* @return {GroupTypeDetails[]}
|
|
61
|
-
* @memberof ViewTenantGroupTypesComponent
|
|
62
|
-
*/
|
|
63
|
-
formatGroupTypesTableData(groupTypeRes) {
|
|
64
|
-
const formattedData = [];
|
|
65
|
-
groupTypeRes?.body?.forEach((item) => {
|
|
66
|
-
const { configFieldValue, roles, hasGroup } = item;
|
|
67
|
-
const { name, description, businessRule } = configFieldValue;
|
|
68
|
-
const { rosterType, ...restBusinessRule } = businessRule;
|
|
69
|
-
const businessRuleString = this.transformBusinessRule(restBusinessRule);
|
|
70
|
-
const roleNames = roles
|
|
71
|
-
? roles?.map((role) => role?.roleName).join(', ')
|
|
72
|
-
: '';
|
|
73
|
-
const menuAction = JSON.parse(JSON.stringify(this.tableRowActions));
|
|
74
|
-
menuAction[1].isDisabled = hasGroup;
|
|
75
|
-
formattedData.push({
|
|
76
|
-
name,
|
|
77
|
-
description,
|
|
78
|
-
rosterType,
|
|
79
|
-
businessRule: businessRuleString,
|
|
80
|
-
roles: roleNames,
|
|
81
|
-
hasGroup: item.hasGroup,
|
|
82
|
-
menuAction,
|
|
83
|
-
});
|
|
84
|
-
});
|
|
85
|
-
return formattedData;
|
|
86
|
-
}
|
|
87
|
-
/**
|
|
88
|
-
* Transforms business rule to required format in string.
|
|
89
|
-
* @param {*} rule
|
|
90
|
-
* @return {string}
|
|
91
|
-
* @memberof ViewTenantGroupTypesComponent
|
|
92
|
-
*/
|
|
93
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
94
|
-
transformBusinessRule(rule) {
|
|
95
|
-
const ruleStringArray = [];
|
|
96
|
-
for (const setting of Object.values(GroupTypeSettings)) {
|
|
97
|
-
if (rule[setting] === true) {
|
|
98
|
-
ruleStringArray.push(this.settings[setting]);
|
|
99
|
-
}
|
|
100
|
-
}
|
|
101
|
-
return ruleStringArray.join(', ');
|
|
102
|
-
}
|
|
103
|
-
/**
|
|
104
|
-
* Initializes table column schema to display group types in tabular view.
|
|
105
|
-
* @memberof ViewTenantGroupTypesComponent
|
|
106
|
-
*/
|
|
107
|
-
initializeColumnSchema() {
|
|
108
|
-
this.columnSchema = [
|
|
109
|
-
{
|
|
110
|
-
id: 1,
|
|
111
|
-
columnDef: 'groupType',
|
|
112
|
-
heading: this.columnHeading?.groupType,
|
|
113
|
-
columnType: TableColumnType.TEXT,
|
|
114
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
115
|
-
cellData: (element) => `${element.name}`,
|
|
116
|
-
},
|
|
117
|
-
{
|
|
118
|
-
id: 2,
|
|
119
|
-
columnDef: 'rosterType',
|
|
120
|
-
heading: this.columnHeading?.rosterType,
|
|
121
|
-
columnType: TableColumnType.TEXT,
|
|
122
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
123
|
-
cellData: (element) => `${element.rosterType}`,
|
|
124
|
-
},
|
|
125
|
-
{
|
|
126
|
-
id: 3,
|
|
127
|
-
columnDef: 'description',
|
|
128
|
-
heading: this.columnHeading?.description,
|
|
129
|
-
columnType: TableColumnType.TEXT,
|
|
130
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
131
|
-
cellData: (element) => `${element.description}`,
|
|
132
|
-
},
|
|
133
|
-
{
|
|
134
|
-
id: 4,
|
|
135
|
-
columnDef: 'applicableRoles',
|
|
136
|
-
heading: this.columnHeading?.applicableRoles,
|
|
137
|
-
columnType: TableColumnType.TEXT,
|
|
138
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
139
|
-
cellData: (element) => `${element.roles}`,
|
|
140
|
-
},
|
|
141
|
-
{
|
|
142
|
-
id: 5,
|
|
143
|
-
columnDef: 'settings',
|
|
144
|
-
heading: this.columnHeading?.settings,
|
|
145
|
-
columnType: TableColumnType.TEXT,
|
|
146
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
147
|
-
cellData: (element) => `${element.businessRule}`,
|
|
148
|
-
},
|
|
149
|
-
{
|
|
150
|
-
id: 6,
|
|
151
|
-
columnDef: 'action',
|
|
152
|
-
heading: this.columnHeading?.action,
|
|
153
|
-
columnType: TableColumnType.ACTIONS,
|
|
154
|
-
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
155
|
-
cellData: (element) => `${element.menuAction}`,
|
|
156
|
-
},
|
|
157
|
-
];
|
|
158
|
-
}
|
|
159
|
-
/**
|
|
160
|
-
* Performs necessary cleanup tasks, such as unsubscribing from subscription when the component is being destroyed.
|
|
161
|
-
* @memberof ViewTenantGroupTypesComponent
|
|
162
|
-
*/
|
|
163
|
-
ngOnDestroy() {
|
|
164
|
-
this.destroy$?.next(true);
|
|
165
|
-
this.destroy$?.unsubscribe();
|
|
166
|
-
}
|
|
167
|
-
static { this.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantGroupTypesComponent, deps: [{ token: i1.TenantApplicationsService }, { token: i2.SharedService }], target: i0.ɵɵFactoryTarget.Component }); }
|
|
168
|
-
static { this.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "16.2.12", type: ViewTenantGroupTypesComponent, isStandalone: true, selector: "ieeesa-view-tenant-group-types", ngImport: i0, template: "<div class=\"ieeesa-view-tenant-group-types\">\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [headerElementClassName]=\"headerElementClassName\"\r\n [customStickyHeaderNeeded]=\"true\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableDataInfo]=\"groupTypes\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n ></ieeesa-data-table>\r\n</div>", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:2.5em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__header-cell{padding:14px 12px;box-shadow:0 1px #9ba0a6 inset!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__cell{padding:4px 14px}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-groupType{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-description{min-width:12em;max-width:12em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-rosterType{min-width:6em;max-width:6em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-applicableRoles,.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-settings{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mat-mdc-icon-button{color:#00629b}@media (max-width: 767px){.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:1em}}\n"], dependencies: [{ kind: "ngmodule", type: CommonModule }, { kind: "directive", type: i3.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: DataTableComponent, selector: "ieeesa-data-table", inputs: ["tableDataInfo", "nestedTableDataInfo", "columnSchemaInfo", "nestedTableColumnSchemaInfo", "tableActions", "hasNestedTable", "tableColumnActions", "tableColumnActionMenuSize", "tableRowActions", "nestedTableRowActions", "caption", "viewAll", "paginatorConfig", "nestedPaginatorConfig", "legends", "searchPlaceHolderText", "rowEditButton", "rowDeleteButton", "tableEditButton", "tableDeleteButton", "rowExpandButton", "rowCollapseButton", "isNestedTableHeaderNeeded", "addButton", "defaultColumnSortDirection", "defaultSortedColumn", "isClearSortNeeded", "filters", "selectedFilterOptions", "appliedFilterOptions", "searchType", "className", "searchSupportMessage", "inbuiltSortingNeeded", "isCellTextOverflowEllipsis", "isTableHeaderNeeded", "tableColumnsHeaderText", "verticalColumnHeaderNumber", "scrollbarSupportMessage", "isScrollSupportMessageNeeded", "isStickyHeaderNeeded", "customStickyHeaderNeeded", "headerElementClassName", "searchResultMessage", "rowMenuActionIcon", "canDisableCheckbox", "isEllipsisRequiredForLink"], outputs: ["rowSelected", "selectedRowToEdit", "selectedRowToDelete", "selectedRowsToDelete", "rowLink", "addRow", "columnDataOnRowLinkClick", "menuActionClick", "selectActionMenu", "paginationChange", "selectedFilter", "removeFilteredOption", "filteredOptions", "searchedValue", "sortChange", "selectedRowsInfo", "rowExpansionClick", "tableColumnMenuActionClick", "tableColumnMenuToggleButton", "rowSlideToggle"] }], encapsulation: i0.ViewEncapsulation.None }); }
|
|
169
|
-
}
|
|
170
|
-
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "16.2.12", ngImport: i0, type: ViewTenantGroupTypesComponent, decorators: [{
|
|
171
|
-
type: Component,
|
|
172
|
-
args: [{ selector: 'ieeesa-view-tenant-group-types', standalone: true, imports: [CommonModule, DataTableComponent], encapsulation: ViewEncapsulation.None, template: "<div class=\"ieeesa-view-tenant-group-types\">\r\n <ieeesa-data-table\r\n *ngIf=\"columnSchema.length\"\r\n [headerElementClassName]=\"headerElementClassName\"\r\n [customStickyHeaderNeeded]=\"true\"\r\n [isCellTextOverflowEllipsis]=\"true\"\r\n [tableDataInfo]=\"groupTypes\"\r\n [columnSchemaInfo]=\"columnSchema\"\r\n ></ieeesa-data-table>\r\n</div>", 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-sm-12{font-family:Calibri Regular;font-style:normal;font-weight:400;font-size:.75rem;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:focus{background:#1f75a7}.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:focus{background:#f0f5f9}.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:focus{background-color:#f0f5f9}.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-cancel-modal-confirm-dialog{width:25vw!important}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation{padding:1.5em 1.5em 1em}.ieeesa-cancel-modal-confirm-dialog .ieeesa-confirmation .mat-mdc-dialog-content{text-align:center;padding:0 0 1em!important}.mat-mdc-button,.mat-mdc-outlined-button{--mat-mdc-button-persistent-ripple-color: unset}@media (max-width: 768px){.ieeesa-cancel-modal-confirm-dialog{width:90vw!important}}.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:2.5em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content{margin-top:0!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__header-cell{padding:14px 12px;box-shadow:0 1px #9ba0a6 inset!important}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mdc-data-table__cell{padding:4px 14px}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-groupType{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-description{min-width:12em;max-width:12em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-rosterType{min-width:6em;max-width:6em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-applicableRoles,.ieeesa-view-tenant-group-types .ieeesa-data-table__content .cdk-column-settings{min-width:10em;max-width:10em}.ieeesa-view-tenant-group-types .ieeesa-data-table__content .mat-mdc-icon-button{color:#00629b}@media (max-width: 767px){.ieeesa-view-tenant-group-types .ieeesa-data-table{padding-top:1em}}\n"] }]
|
|
173
|
-
}], ctorParameters: function () { return [{ type: i1.TenantApplicationsService }, { type: i2.SharedService }]; } });
|
|
174
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoidmlldy10ZW5hbnQtZ3JvdXAtdHlwZXMuY29tcG9uZW50LmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnQtZ3JvdXAtdHlwZXMvdmlldy10ZW5hbnQtZ3JvdXAtdHlwZXMuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdGVuYW50cy9zcmMvbGliL2NvbXBvbmVudHMvdmlldy10ZW5hbnQtZ3JvdXAtdHlwZXMvdmlldy10ZW5hbnQtZ3JvdXAtdHlwZXMuY29tcG9uZW50Lmh0bWwiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFNBQVMsRUFBcUIsaUJBQWlCLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDaEYsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFDTCxrQkFBa0IsRUFHbEIsZUFBZSxHQUNoQixNQUFNLDBCQUEwQixDQUFDO0FBQ2xDLE9BQU8sRUFBRSxPQUFPLEVBQUUsU0FBUyxFQUFFLE1BQU0sTUFBTSxDQUFDO0FBQzFDLE9BQU8sS0FBSyxVQUFVLE1BQU0sNkJBQTZCLENBQUM7QUFHMUQsT0FBTyxFQUVMLGlCQUFpQixHQUdsQixNQUFNLDRDQUE0QyxDQUFDOzs7OztBQUdwRDs7Ozs7R0FLRztBQVNILE1BQU0sT0FBTyw2QkFBNkI7SUFXeEM7SUFDRSwwQ0FBMEM7SUFDbEMsZ0JBQTJDO0lBQ25ELDBDQUEwQztJQUNsQyxhQUE0QixDQUFDLDZDQUE2Qzs7UUFGMUUscUJBQWdCLEdBQWhCLGdCQUFnQixDQUEyQjtRQUUzQyxrQkFBYSxHQUFiLGFBQWEsQ0FBZTtRQWR0QyxhQUFRLEdBQXFCLElBQUksT0FBTyxFQUFXLENBQUM7UUFDcEQsOERBQThEO1FBQzlELGNBQVMsR0FBUSxVQUFVLENBQUM7UUFDNUIsa0JBQWEsR0FBRyxJQUFJ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QyxZQUFZLEVBQUUsa0JBQWtCLENBQUMsaUJBRzVCLGlCQUFpQixDQUFDLElBQUkiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21wb25lbnQsIE9uRGVzdHJveSwgT25Jbml0LCBWaWV3RW5jYXBzdWxhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQge1xyXG4gIERhdGFUYWJsZUNvbXBvbmVudCxcclxuICBNZW51LFxyXG4gIFRhYmxlQ29sdW1uU2NoZW1hLFxyXG4gIFRhYmxlQ29sdW1uVHlwZSxcclxufSBmcm9tICdAaWVlZXNhLW5wbS9wcmVzZW50YXRpb24nO1xyXG5pbXBvcnQgeyBTdWJqZWN0LCB0YWtlVW50aWwgfSBmcm9tICdyeGpzJztcclxuaW1wb3J0ICogYXMgc2NyZWVuVGV4dCBmcm9tICcuLi8uLi9hc3NldHMvY29uc3RhbnRzLmpzb24nO1xyXG5pbXBvcnQgeyBUZW5hbnRBcHBsaWNhdGlvbnNTZXJ2aWNlIH0gZnJvbSAnLi4vLi4vc2VydmljZXMvdGVuYW50LWFwcGxpY2F0aW9ucy5zZXJ2aWNlJztcclxuaW1wb3J0IHsgU2hhcmVkU2VydmljZSB9IGZyb20gJ0BpZWVlc2EtbnBtL3NoYXJlZCc7XHJcbmltcG9ydCB7XHJcbiAgR3JvdXBUeXBlRGV0YWlscyxcclxuICBHcm91cFR5cGVTZXR0aW5ncyxcclxuICBWaWV3R3JvdXBUeXBlUmVzcG9uc2UsXHJcbiAgVmlld0dyb3VwVHlwZXNDb25maWd1cmF0aW9uLFxyXG59IGZyb20gJy4uLy4uL21vZGVscy92aWV3LXRlbmFudC1ncm91cC10eXBlcy5tb2RlbCc7XHJcbmltcG9ydCB7IFJvbGUgfSBmcm9tICcuLi8uLi9tb2RlbHMvcm9sZXMtYW5kLXBlcm1pc3Npb25zLm1vZGVsJztcclxuXHJcbi8qKlxyXG4gKiBDb21wb25lbnQgZm9yIHZpZXdpbmcgYW5kIG1hbmFnaW5nIHRlbmFudCBncm91cCB0eXBlcy4gRmV0Y2hlcyB0aGUgY29uZmlndXJlZCBncm91cCB0eXBlcyBhc3NvY2lhdGVkIHRvIHRoZSBzZWxlY3RlZCB0ZW5hbnQgYW5kIGRpc3BsYXlzIGluIHRhYnVsYXIgdmlldy5cclxuICogQGV4cG9ydFxyXG4gKiBAY2xhc3MgVmlld1RlbmFudEdyb3VwVHlwZXNDb21wb25lbnRcclxuICogQGltcGxlbWVudHMge09uSW5pdH1cclxuICovXHJcbkBDb21wb25lbnQoe1xyXG4gIHNlbGVjdG9yOiAnaWVlZXNhLXZpZXctdGVuYW50LWdyb3VwLXR5cGVzJyxcclxuICBzdGFuZGFsb25lOiB0cnVlLFxyXG4gIGltcG9ydHM6IFtDb21tb25Nb2R1bGUsIERhdGFUYWJsZUNvbXBvbmVudF0sXHJcbiAgdGVtcGxhdGVVcmw6ICcuL3ZpZXctdGVuYW50LWdyb3VwLXR5cGVzLmNvbXBvbmVudC5odG1sJyxcclxuICBzdHlsZVVybHM6IFsnLi92aWV3LXRlbmFudC1ncm91cC10eXBlcy5jb21wb25lbnQuc2NzcyddLFxyXG4gIGVuY2Fwc3VsYXRpb246IFZpZXdFbmNhcHN1bGF0aW9uLk5vbmUsXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBWaWV3VGVuYW50R3JvdXBUeXBlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBkZXN0cm95JDogU3ViamVjdDxib29sZWFuPiA9IG5ldyBTdWJqZWN0PGJvb2xlYW4+KCk7XHJcbiAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICBjb25zdGFudHM6IGFueSA9IHNjcmVlblRleHQ7XHJcbiAgY29sdW1uSGVhZGluZyA9IHRoaXMuY29uc3RhbnRzPy52aWV3R3JvdXBUeXBlcz8udGFibGVDb2x1bW5zPy5oZWFkaW5nO1xyXG4gIHNldHRpbmdzID0gdGhpcy5jb25zdGFudHM/LnZpZXdHcm91cFR5cGVzPy5zZXR0aW5ncztcclxuICB0YWJsZVJvd0FjdGlvbnM6IE1lbnVbXSA9IHRoaXMuY29uc3RhbnRzPy52aWV3R3JvdXBUeXBlcz8uYWN0aW9uTWVudUl0ZW1zO1xyXG4gIGNvbHVtblNjaGVtYTogVGFibGVDb2x1bW5TY2hlbWFbXSA9IFtdO1xyXG4gIGdyb3VwVHlwZXM6IEdyb3VwVHlwZURldGFpbHNbXSA9IFtdO1xyXG4gIGFwcElkID0gJyc7XHJcbiAgaGVhZGVyRWxlbWVudENsYXNzTmFtZSA9ICcuaWVlZXNhLWhlYWRlcic7XHJcbiAgY29uc3RydWN0b3IoXHJcbiAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgbm8tdW51c2VkLXZhcnNcclxuICAgIHByaXZhdGUgdGVuYW50QXBwU2VydmljZTogVGVuYW50QXBwbGljYXRpb25zU2VydmljZSxcclxuICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby11bnVzZWQtdmFyc1xyXG4gICAgcHJpdmF0ZSBzaGFyZWRTZXJ2aWNlOiBTaGFyZWRTZXJ2aWNlIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBuby1lbXB0eS1mdW5jdGlvblxyXG4gICkge31cclxuXHJcbiAgLyoqXHJcbiAgICogRmV0Y2hlcyBncm91cCB0eXBlcyBkYXRhIGZyb20gdGhlIHNlcnZlciBhbmQgaW5pdGlhbGl6ZXMgY29sdW1uIHNjaGVtYS5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudEdyb3VwVHlwZXNDb21wb25lbnRcclxuICAgKi9cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBwSWQgPSB0aGlzLnRlbmFudEFwcFNlcnZpY2UuZ2V0U2VsZWN0ZWRUZW5hbnRJbmZvcm1hdGlvbigpXHJcbiAgICAgID8uYXBwSWQgYXMgc3RyaW5nO1xyXG4gICAgdGhpcy50ZW5hbnRBcHBTZXJ2aWNlXHJcbiAgICAgIC5nZXRHcm91cFR5cGVzKHRoaXMuYXBwSWQpXHJcbiAgICAgIC5waXBlKHRha2VVbnRpbCh0aGlzLmRlc3Ryb3kkKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBWaWV3R3JvdXBUeXBlUmVzcG9uc2UpID0+IHtcclxuICAgICAgICAgIHRoaXMuaW5pdGlhbGl6ZUNvbHVtblNjaGVtYSgpO1xyXG4gICAgICAgICAgdGhpcy5ncm91cFR5cGVzID0gdGhpcy5mb3JtYXRHcm91cFR5cGVzVGFibGVEYXRhKHJlc3BvbnNlKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoZXJyb3IpID0+IHtcclxuICAgICAgICAgIHRoaXMuc2hhcmVkU2VydmljZS5oYW5kbGVFcnJvcnMoXHJcbiAgICAgICAgICAgIGVycm9yLFxyXG4gICAgICAgICAgICB0aGlzLmNvbnN0YW50cz8udmlld0dyb3VwVHlwZXM/LmVycm9yc1xyXG4gICAgICAgICAgKTtcclxuICAgICAgICB9LFxyXG4gICAgICB9KTtcclxuICB9XHJcblxyXG4gIC8qKlxyXG4gICAqIEZvcm1hdHMgcmF3IGdyb3VwIHR5cGVzIGRhdGEgaW50byBhIHJlcXVpcmVkIGZvcm1hdCBmb3IgZGlzcGxheS5cclxuICAgKiBAcGFyYW0ge1ZpZXdHcm91cFR5cGVSZXNwb25zZX0gZ3JvdXBUeXBlUmVzXHJcbiAgICogQHJldHVybiB7R3JvdXBUeXBlRGV0YWlsc1tdfVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50R3JvdXBUeXBlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIGZvcm1hdEdyb3VwVHlwZXNUYWJsZURhdGEoXHJcbiAgICBncm91cFR5cGVSZXM6IFZpZXdHcm91cFR5cGVSZXNwb25zZVxyXG4gICk6IEdyb3VwVHlwZURldGFpbHNbXSB7XHJcbiAgICBjb25zdCBmb3JtYXR0ZWREYXRhOiBHcm91cFR5cGVEZXRhaWxzW10gPSBbXTtcclxuICAgIGdyb3VwVHlwZVJlcz8uYm9keT8uZm9yRWFjaCgoaXRlbTogVmlld0dyb3VwVHlwZXNDb25maWd1cmF0aW9uKSA9PiB7XHJcbiAgICAgIGNvbnN0IHsgY29uZmlnRmllbGRWYWx1ZSwgcm9sZXMsIGhhc0dyb3VwIH0gPSBpdGVtO1xyXG4gICAgICBjb25zdCB7IG5hbWUsIGRlc2NyaXB0aW9uLCBidXNpbmVzc1J1bGUgfSA9IGNvbmZpZ0ZpZWxkVmFsdWU7XHJcbiAgICAgIGNvbnN0IHsgcm9zdGVyVHlwZSwgLi4ucmVzdEJ1c2luZXNzUnVsZSB9ID0gYnVzaW5lc3NSdWxlIGFzIHtcclxuICAgICAgICByb3N0ZXJUeXBlOiBzdHJpbmc7XHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBba2V5OiBzdHJpbmddOiBhbnk7XHJcbiAgICAgIH07XHJcbiAgICAgIGNvbnN0IGJ1c2luZXNzUnVsZVN0cmluZyA9IHRoaXMudHJhbnNmb3JtQnVzaW5lc3NSdWxlKHJlc3RCdXNpbmVzc1J1bGUpO1xyXG4gICAgICBjb25zdCByb2xlTmFtZXMgPSByb2xlc1xyXG4gICAgICAgID8gcm9sZXM/Lm1hcCgocm9sZTogUm9sZSkgPT4gcm9sZT8ucm9sZU5hbWUpLmpvaW4oJywgJylcclxuICAgICAgICA6ICcnO1xyXG4gICAgICBjb25zdCBtZW51QWN0aW9uID0gSlNPTi5wYXJzZShKU09OLnN0cmluZ2lmeSh0aGlzLnRhYmxlUm93QWN0aW9ucykpO1xyXG4gICAgICBtZW51QWN0aW9uWzFdLmlzRGlzYWJsZWQgPSBoYXNHcm91cDtcclxuXHJcbiAgICAgIGZvcm1hdHRlZERhdGEucHVzaCh7XHJcbiAgICAgICAgbmFtZSxcclxuICAgICAgICBkZXNjcmlwdGlvbixcclxuICAgICAgICByb3N0ZXJUeXBlLFxyXG4gICAgICAgIGJ1c2luZXNzUnVsZTogYnVzaW5lc3NSdWxlU3RyaW5nLFxyXG4gICAgICAgIHJvbGVzOiByb2xlTmFtZXMsXHJcbiAgICAgICAgaGFzR3JvdXA6IGl0ZW0uaGFzR3JvdXAsXHJcbiAgICAgICAgbWVudUFjdGlvbixcclxuICAgICAgfSk7XHJcbiAgICB9KTtcclxuICAgIHJldHVybiBmb3JtYXR0ZWREYXRhO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogVHJhbnNmb3JtcyBidXNpbmVzcyBydWxlIHRvIHJlcXVpcmVkIGZvcm1hdCBpbiBzdHJpbmcuXHJcbiAgICogQHBhcmFtIHsqfSBydWxlXHJcbiAgICogQHJldHVybiB7c3RyaW5nfVxyXG4gICAqIEBtZW1iZXJvZiBWaWV3VGVuYW50R3JvdXBUeXBlc0NvbXBvbmVudFxyXG4gICAqL1xyXG4gIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgdHJhbnNmb3JtQnVzaW5lc3NSdWxlKHJ1bGU6IGFueSk6IHN0cmluZyB7XHJcbiAgICBjb25zdCBydWxlU3RyaW5nQXJyYXk6IHN0cmluZ1tdID0gW107XHJcbiAgICBmb3IgKGNvbnN0IHNldHRpbmcgb2YgT2JqZWN0LnZhbHVlcyhHcm91cFR5cGVTZXR0aW5ncykpIHtcclxuICAgICAgaWYgKHJ1bGVbc2V0dGluZ10gPT09IHRydWUpIHtcclxuICAgICAgICBydWxlU3RyaW5nQXJyYXkucHVzaCh0aGlzLnNldHRpbmdzW3NldHRpbmddKTtcclxuICAgICAgfVxyXG4gICAgfVxyXG4gICAgcmV0dXJuIHJ1bGVTdHJpbmdBcnJheS5qb2luKCcsICcpO1xyXG4gIH1cclxuXHJcbiAgLyoqXHJcbiAgICogSW5pdGlhbGl6ZXMgdGFibGUgY29sdW1uIHNjaGVtYSB0byBkaXNwbGF5IGdyb3VwIHR5cGVzIGluIHRhYnVsYXIgdmlldy5cclxuICAgKiBAbWVtYmVyb2YgVmlld1RlbmFudEdyb3VwVHlwZXNDb21wb25lbnRcclxuICAgKi9cclxuICBpbml0aWFsaXplQ29sdW1uU2NoZW1hKCk6IHZvaWQge1xyXG4gICAgdGhpcy5jb2x1bW5TY2hlbWEgPSBbXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogMSxcclxuICAgICAgICBjb2x1bW5EZWY6ICdncm91cFR5cGUnLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZ3JvdXBUeXBlLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQubmFtZX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDIsXHJcbiAgICAgICAgY29sdW1uRGVmOiAncm9zdGVyVHlwZScsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5yb3N0ZXJUeXBlLFxyXG4gICAgICAgIGNvbHVtblR5cGU6IFRhYmxlQ29sdW1uVHlwZS5URVhULFxyXG4gICAgICAgIC8vIGVzbGludC1kaXNhYmxlLW5leHQtbGluZSBAdHlwZXNjcmlwdC1lc2xpbnQvbm8tZXhwbGljaXQtYW55XHJcbiAgICAgICAgY2VsbERhdGE6IChlbGVtZW50OiBhbnkpID0+IGAke2VsZW1lbnQucm9zdGVyVHlwZX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDMsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnZGVzY3JpcHRpb24nLFxyXG4gICAgICAgIGhlYWRpbmc6IHRoaXMuY29sdW1uSGVhZGluZz8uZGVzY3JpcHRpb24sXHJcbiAgICAgICAgY29sdW1uVHlwZTogVGFibGVDb2x1bW5UeXBlLlRFWFQsXHJcbiAgICAgICAgLy8gZXNsaW50LWRpc2FibGUtbmV4dC1saW5lIEB0eXBlc2NyaXB0LWVzbGludC9uby1leHBsaWNpdC1hbnlcclxuICAgICAgICBjZWxsRGF0YTogKGVsZW1lbnQ6IGFueSkgPT4gYCR7ZWxlbWVudC5kZXNjcmlwdGlvbn1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDQsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnYXBwbGljYWJsZVJvbGVzJyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmFwcGxpY2FibGVSb2xlcyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LnJvbGVzfWAsXHJcbiAgICAgIH0sXHJcbiAgICAgIHtcclxuICAgICAgICBpZDogNSxcclxuICAgICAgICBjb2x1bW5EZWY6ICdzZXR0aW5ncycsXHJcbiAgICAgICAgaGVhZGluZzogdGhpcy5jb2x1bW5IZWFkaW5nPy5zZXR0aW5ncyxcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuVEVYVCxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50LmJ1c2luZXNzUnVsZX1gLFxyXG4gICAgICB9LFxyXG4gICAgICB7XHJcbiAgICAgICAgaWQ6IDYsXHJcbiAgICAgICAgY29sdW1uRGVmOiAnYWN0aW9uJyxcclxuICAgICAgICBoZWFkaW5nOiB0aGlzLmNvbHVtbkhlYWRpbmc/LmFjdGlvbixcclxuICAgICAgICBjb2x1bW5UeXBlOiBUYWJsZUNvbHVtblR5cGUuQUNUSU9OUyxcclxuICAgICAgICAvLyBlc2xpbnQtZGlzYWJsZS1uZXh0LWxpbmUgQHR5cGVzY3JpcHQtZXNsaW50L25vLWV4cGxpY2l0LWFueVxyXG4gICAgICAgIGNlbGxEYXRhOiAoZWxlbWVudDogYW55KSA9PiBgJHtlbGVtZW50Lm1lbnVBY3Rpb259YCxcclxuICAgICAgfSxcclxuICAgIF07XHJcbiAgfVxyXG5cclxuICAvKipcclxuICAgKiBQZXJmb3JtcyBuZWNlc3NhcnkgY2xlYW51cCB0YXNrcywgc3VjaCBhcyB1bnN1YnNjcmliaW5nIGZyb20gc3Vic2NyaXB0aW9uIHdoZW4gdGhlIGNvbXBvbmVudCBpcyBiZWluZyBkZXN0cm95ZWQuXHJcbiAgICogQG1lbWJlcm9mIFZpZXdUZW5hbnRHcm91cFR5cGVzQ29tcG9uZW50XHJcbiAgICovXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLmRlc3Ryb3kkPy5uZXh0KHRydWUpO1xyXG4gICAgdGhpcy5kZXN0cm95JD8udW5zdWJzY3JpYmUoKTtcclxuICB9XHJcbn1cclxuIiwiPGRpdiBjbGFzcz1cImllZWVzYS12aWV3LXRlbmFudC1ncm91cC10eXBlc1wiPlxyXG4gIDxpZWVlc2EtZGF0YS10YWJsZVxyXG4gICAgKm5nSWY9XCJjb2x1bW5TY2hlbWEubGVuZ3RoXCJcclxuICAgIFtoZWFkZXJFbGVtZW50Q2xhc3NOYW1lXT1cImhlYWRlckVsZW1lbnRDbGFzc05hbWVcIlxyXG4gICAgW2N1c3RvbVN0aWNreUhlYWRlck5lZWRlZF09XCJ0cnVlXCJcclxuICAgIFtpc0NlbGxUZXh0T3ZlcmZsb3dFbGxpcHNpc109XCJ0cnVlXCJcclxuICAgIFt0YWJsZURhdGFJbmZvXT1cImdyb3VwVHlwZXNcIlxyXG4gICAgW2NvbHVtblNjaGVtYUluZm9dPVwiY29sdW1uU2NoZW1hXCJcclxuICA+PC9pZWVlc2EtZGF0YS10YWJsZT5cclxuPC9kaXY+Il19
|