@tuki-io/tuki-widgets 0.0.219-dev.39 → 0.0.219-dev.41
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/esm2020/locations/src/locations.component.mjs +2 -2
- package/esm2020/workspaces/src/app.constants.mjs +10 -2
- package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
- package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +38 -10
- package/esm2020/workspaces/src/material.module.mjs +12 -5
- package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
- package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
- package/esm2020/workspaces/src/workspaces.component.mjs +189 -18
- package/esm2020/workspaces/src/workspaces.module.mjs +4 -1
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs +2 -2
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +338 -31
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs +2 -2
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +335 -31
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -1
- package/package.json +1 -1
- package/workspaces/src/app.constants.d.ts +8 -0
- package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
- package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +10 -3
- package/workspaces/src/material.module.d.ts +2 -1
- package/workspaces/src/services/api-webex.service.d.ts +6 -0
- package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
- package/workspaces/src/workspaces.component.d.ts +20 -6
- package/workspaces/src/workspaces.module.d.ts +7 -6
|
@@ -1,21 +1,27 @@
|
|
|
1
1
|
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { map, switchMap, takeWhile, timer } from 'rxjs';
|
|
3
|
+
import { WorkspaceConfirmDialogComponent } from './components/workspace-confirm-dialog/workspace-confirm-dialog.component';
|
|
2
4
|
import * as i0 from "@angular/core";
|
|
3
5
|
import * as i1 from "./services/api.service";
|
|
4
|
-
import * as i2 from "./services/
|
|
5
|
-
import * as i3 from "
|
|
6
|
-
import * as i4 from "./
|
|
7
|
-
import * as i5 from "
|
|
8
|
-
import * as i6 from "
|
|
9
|
-
import * as i7 from "./
|
|
6
|
+
import * as i2 from "./services/api-webex.service";
|
|
7
|
+
import * as i3 from "./services/workspaces.service";
|
|
8
|
+
import * as i4 from "./services/workspaces-migration.service";
|
|
9
|
+
import * as i5 from "@angular/material/dialog";
|
|
10
|
+
import * as i6 from "@angular/common";
|
|
11
|
+
import * as i7 from "./components/workspaces-filters/workspaces-filters.component";
|
|
12
|
+
import * as i8 from "./components/workspaces-table/workspaces-table.component";
|
|
13
|
+
import * as i9 from "./components/workspace-detail/workspace-detail.component";
|
|
14
|
+
import * as i10 from "./utils/app-loader/app-loader";
|
|
10
15
|
export class WorkspacesComponent {
|
|
11
|
-
constructor(apiService, workspacesService, location) {
|
|
16
|
+
constructor(apiService, apiWebexService, workspacesService, migrationService, dialog, location) {
|
|
12
17
|
this.apiService = apiService;
|
|
18
|
+
this.apiWebexService = apiWebexService;
|
|
13
19
|
this.workspacesService = workspacesService;
|
|
20
|
+
this.migrationService = migrationService;
|
|
21
|
+
this.dialog = dialog;
|
|
14
22
|
this.location = location;
|
|
15
23
|
this.addWorkspace = new EventEmitter();
|
|
16
24
|
this.openWorkspace = new EventEmitter();
|
|
17
|
-
this.editWorkspace = new EventEmitter();
|
|
18
|
-
this.deleteWorkspace = new EventEmitter();
|
|
19
25
|
this.addDevice = new EventEmitter();
|
|
20
26
|
this.tabs = [
|
|
21
27
|
{ id: 'workspaces', label: 'Workspaces', icon: 'assets/icons/device-in-room-regular.svg' },
|
|
@@ -34,12 +40,19 @@ export class WorkspacesComponent {
|
|
|
34
40
|
this.searchTerm = '';
|
|
35
41
|
this.typeFilter = '';
|
|
36
42
|
this.locationFilter = '';
|
|
43
|
+
this.pendingWorkspaceIds = new Set();
|
|
44
|
+
this.subscriptions = [];
|
|
37
45
|
}
|
|
38
46
|
ngOnInit() {
|
|
39
47
|
this.apiService.token = this.token;
|
|
40
48
|
this.apiService.apiUrl = this.host + '/dcp';
|
|
49
|
+
this.apiWebexService.token = this.token;
|
|
50
|
+
this.apiWebexService.apiUrl = this.host + '/webex';
|
|
41
51
|
this.fetchWorkspaces();
|
|
42
52
|
}
|
|
53
|
+
ngOnDestroy() {
|
|
54
|
+
this.subscriptions.forEach(subscription => subscription.unsubscribe());
|
|
55
|
+
}
|
|
43
56
|
get typeOptions() {
|
|
44
57
|
return [...new Set(this.workspaces.map(workspace => workspace.typeLabel).filter(Boolean))];
|
|
45
58
|
}
|
|
@@ -83,6 +96,168 @@ export class WorkspacesComponent {
|
|
|
83
96
|
this.pageSize = pageSize;
|
|
84
97
|
this.fetchWorkspaces();
|
|
85
98
|
}
|
|
99
|
+
onMoveToMT(workspace) {
|
|
100
|
+
const dialogRef = this.dialog.open(WorkspaceConfirmDialogComponent, {
|
|
101
|
+
data: {
|
|
102
|
+
title: `Upgrade workspace ${workspace.displayName} to Multi Tenant?`,
|
|
103
|
+
message: `<p>Upgrading this workspace will prepare it for migration to Multi Tenant.</p>
|
|
104
|
+
<p>During this process, the workspace configuration will be copied to the Multi Tenant environment.
|
|
105
|
+
The workspace will remain active on the current system until the Activate step is completed.</p>
|
|
106
|
+
<p>Do you want to continue?</p>`,
|
|
107
|
+
confirmButtonText: 'Yes, upgrade',
|
|
108
|
+
},
|
|
109
|
+
});
|
|
110
|
+
dialogRef.beforeClosed().subscribe((result) => {
|
|
111
|
+
if (!result) {
|
|
112
|
+
return;
|
|
113
|
+
}
|
|
114
|
+
this.pendingWorkspaceIds.add(workspace.id);
|
|
115
|
+
const subscription = this.migrationService.moveToMT(this.customerId, workspace.device).subscribe({
|
|
116
|
+
next: (formId) => {
|
|
117
|
+
if (formId) {
|
|
118
|
+
this.pollMigrationFormStatus(Number(formId), workspace.id);
|
|
119
|
+
}
|
|
120
|
+
else {
|
|
121
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
122
|
+
this.fetchWorkspaces();
|
|
123
|
+
}
|
|
124
|
+
},
|
|
125
|
+
error: () => {
|
|
126
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
127
|
+
this.fetchWorkspaces();
|
|
128
|
+
},
|
|
129
|
+
});
|
|
130
|
+
this.subscriptions.push(subscription);
|
|
131
|
+
});
|
|
132
|
+
}
|
|
133
|
+
onEnableWebexCalling(workspace) {
|
|
134
|
+
const device = workspace.device;
|
|
135
|
+
if (!device.webexUUID || workspace.status !== 'inactive') {
|
|
136
|
+
return;
|
|
137
|
+
}
|
|
138
|
+
const dialogRef = this.dialog.open(WorkspaceConfirmDialogComponent, {
|
|
139
|
+
data: {
|
|
140
|
+
title: `Activate workspace ${workspace.displayName} on Multi Tenant?`,
|
|
141
|
+
message: `<p>Activating this workspace will perform the cutover to Multi Tenant and complete the migration process.</p>
|
|
142
|
+
<p>After activation, the workspace will become active on Multi Tenant and the original workspace will become inactive.</p>
|
|
143
|
+
<p>Do you want to continue?</p>`,
|
|
144
|
+
confirmButtonText: 'Activate',
|
|
145
|
+
},
|
|
146
|
+
});
|
|
147
|
+
dialogRef.beforeClosed().subscribe((result) => {
|
|
148
|
+
if (!result) {
|
|
149
|
+
return;
|
|
150
|
+
}
|
|
151
|
+
this.pendingWorkspaceIds.add(workspace.id);
|
|
152
|
+
const subscription = this.migrationService
|
|
153
|
+
.getMigratedMigrationFormEntities(this.customerId, device.webexUUID, 'PERSON')
|
|
154
|
+
.pipe(map((entities) => (Array.isArray(entities) ? entities[0] : entities || null)))
|
|
155
|
+
.subscribe({
|
|
156
|
+
next: (entity) => {
|
|
157
|
+
const formId = entity?.migrationFormId ?? entity?.id ?? null;
|
|
158
|
+
if (!formId) {
|
|
159
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
160
|
+
return;
|
|
161
|
+
}
|
|
162
|
+
const deviceMap = this.buildFirmwareDeviceMap(entity, device);
|
|
163
|
+
const upgradeSubscription = this.migrationService
|
|
164
|
+
.triggerFirmwareUpgrade(this.customerId, Number(formId), deviceMap)
|
|
165
|
+
.subscribe({
|
|
166
|
+
next: () => {
|
|
167
|
+
window.setTimeout(() => {
|
|
168
|
+
this.pollMigrationFormStatus(Number(formId), workspace.id, () => {
|
|
169
|
+
this.migrationService.removeUcmLicense(this.customerId, Number(formId)).subscribe();
|
|
170
|
+
});
|
|
171
|
+
}, 10000);
|
|
172
|
+
},
|
|
173
|
+
error: () => {
|
|
174
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
175
|
+
this.fetchWorkspaces();
|
|
176
|
+
},
|
|
177
|
+
});
|
|
178
|
+
this.subscriptions.push(upgradeSubscription);
|
|
179
|
+
},
|
|
180
|
+
error: () => {
|
|
181
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
182
|
+
},
|
|
183
|
+
});
|
|
184
|
+
this.subscriptions.push(subscription);
|
|
185
|
+
});
|
|
186
|
+
}
|
|
187
|
+
onMigrateToUCM(workspace) {
|
|
188
|
+
const device = workspace.device;
|
|
189
|
+
if (!device.webexUUID || workspace.status !== 'active') {
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
this.pendingWorkspaceIds.add(workspace.id);
|
|
193
|
+
const subscription = this.migrationService
|
|
194
|
+
.revertMigration(this.customerId, device.webexUUID)
|
|
195
|
+
.pipe(switchMap(() => timer(2000)))
|
|
196
|
+
.subscribe({
|
|
197
|
+
next: () => {
|
|
198
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
199
|
+
this.fetchWorkspaces();
|
|
200
|
+
},
|
|
201
|
+
error: () => {
|
|
202
|
+
this.pendingWorkspaceIds.delete(workspace.id);
|
|
203
|
+
this.fetchWorkspaces();
|
|
204
|
+
},
|
|
205
|
+
});
|
|
206
|
+
this.subscriptions.push(subscription);
|
|
207
|
+
}
|
|
208
|
+
pollMigrationFormStatus(formId, workspaceId, onCompleted) {
|
|
209
|
+
const subscription = timer(0, 10000)
|
|
210
|
+
.pipe(switchMap(() => this.migrationService.getMigrationFormStatus(this.customerId, formId)), takeWhile((response) => !this.isTerminalMigrationStatus(response?.status), true))
|
|
211
|
+
.subscribe({
|
|
212
|
+
next: (response) => {
|
|
213
|
+
const status = this.normalizeMigrationStatus(response?.status);
|
|
214
|
+
if (!this.isTerminalMigrationStatus(status)) {
|
|
215
|
+
return;
|
|
216
|
+
}
|
|
217
|
+
this.pendingWorkspaceIds.delete(workspaceId);
|
|
218
|
+
this.fetchWorkspaces();
|
|
219
|
+
if (status === 'COMPLETED') {
|
|
220
|
+
onCompleted?.();
|
|
221
|
+
}
|
|
222
|
+
},
|
|
223
|
+
error: () => {
|
|
224
|
+
this.pendingWorkspaceIds.delete(workspaceId);
|
|
225
|
+
this.fetchWorkspaces();
|
|
226
|
+
},
|
|
227
|
+
});
|
|
228
|
+
this.subscriptions.push(subscription);
|
|
229
|
+
}
|
|
230
|
+
buildFirmwareDeviceMap(entity, device) {
|
|
231
|
+
const deviceMap = {};
|
|
232
|
+
const entityDevices = [
|
|
233
|
+
...(Array.isArray(entity?.devices) ? entity.devices : []),
|
|
234
|
+
...(Array.isArray(entity?.webexMigrationDevices) ? entity.webexMigrationDevices : []),
|
|
235
|
+
];
|
|
236
|
+
const sourceDevices = entityDevices.length ? entityDevices : [device];
|
|
237
|
+
const cucmId = Number(device.cucmId) || 0;
|
|
238
|
+
sourceDevices.forEach((rawDevice) => {
|
|
239
|
+
const name = rawDevice?.name || device.name || '';
|
|
240
|
+
if (!name) {
|
|
241
|
+
return;
|
|
242
|
+
}
|
|
243
|
+
const deviceName = name.includes('SEP') ? name : `SEP${name}`;
|
|
244
|
+
if (!deviceMap[cucmId]) {
|
|
245
|
+
deviceMap[cucmId] = {};
|
|
246
|
+
}
|
|
247
|
+
if (!deviceMap[cucmId]['PERSON']) {
|
|
248
|
+
deviceMap[cucmId]['PERSON'] = [];
|
|
249
|
+
}
|
|
250
|
+
deviceMap[cucmId]['PERSON'].push(deviceName);
|
|
251
|
+
});
|
|
252
|
+
return deviceMap;
|
|
253
|
+
}
|
|
254
|
+
normalizeMigrationStatus(status) {
|
|
255
|
+
return (status || '').toUpperCase();
|
|
256
|
+
}
|
|
257
|
+
isTerminalMigrationStatus(status) {
|
|
258
|
+
const normalized = this.normalizeMigrationStatus(status);
|
|
259
|
+
return normalized === 'COMPLETED' || normalized === 'FAILED' || normalized === 'ERROR' || normalized === 'COMPLETED_WITH_ERRORS';
|
|
260
|
+
}
|
|
86
261
|
fetchWorkspaces() {
|
|
87
262
|
this.isLoading = true;
|
|
88
263
|
this.workspacesService.fetchWorkspaces(this.customerId, this.pageSize, this.pageIndex).subscribe({
|
|
@@ -99,12 +274,12 @@ export class WorkspacesComponent {
|
|
|
99
274
|
});
|
|
100
275
|
}
|
|
101
276
|
}
|
|
102
|
-
WorkspacesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesComponent, deps: [{ token: i1.APIService }, { token: i2.
|
|
103
|
-
WorkspacesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspacesComponent, selector: "tk-workspaces", inputs: { host: "host", token: "token", customerId: "customerId" }, outputs: { addWorkspace: "addWorkspace", openWorkspace: "openWorkspace",
|
|
277
|
+
WorkspacesComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesComponent, deps: [{ token: i1.APIService }, { token: i2.ApiWebexService }, { token: i3.WorkspacesService }, { token: i4.WorkspacesMigrationService }, { token: i5.MatDialog }, { token: i6.Location }], target: i0.ɵɵFactoryTarget.Component });
|
|
278
|
+
WorkspacesComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspacesComponent, selector: "tk-workspaces", inputs: { host: "host", token: "token", customerId: "customerId" }, outputs: { addWorkspace: "addWorkspace", openWorkspace: "openWorkspace", addDevice: "addDevice" }, ngImport: i0, template: "<div class=\"tk-workspaces\">\r\n <ng-container *ngIf=\"view === 'list'; else detailView\">\r\n <header class=\"tk-workspaces__header\">\r\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\r\n </header>\r\n\r\n <nav class=\"tk-workspaces__tabs\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let tab of tabs\"\r\n class=\"tk-workspaces__tab\"\r\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\r\n (click)=\"selectTab(tab.id)\">\r\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\r\n {{ tab.label }}\r\n </button>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\r\n <app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n <tk-workspaces-filters\r\n [resultCount]=\"total\"\r\n [typeOptions]=\"typeOptions\"\r\n [locationOptions]=\"locationOptions\"\r\n (searchChange)=\"onSearchChange($event)\"\r\n (typeChange)=\"onTypeFilterChange($event)\"\r\n (locationChange)=\"onLocationFilterChange($event)\"\r\n (addWorkspace)=\"addWorkspace.emit()\">\r\n </tk-workspaces-filters>\r\n\r\n <tk-workspaces-table\r\n [workspaces]=\"filteredWorkspaces\"\r\n [total]=\"total\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pendingWorkspaceIds]=\"pendingWorkspaceIds\"\r\n (openWorkspace)=\"onOpenWorkspace($event)\"\r\n (licenseWithHybrid)=\"onMoveToMT($event)\"\r\n (migrateToMT)=\"onMoveToMT($event)\"\r\n (enableWebexCalling)=\"onEnableWebexCalling($event)\"\r\n (migrateToUCM)=\"onMigrateToUCM($event)\"\r\n (addDevice)=\"addDevice.emit($event)\"\r\n (pageChange)=\"onPageChange($event)\">\r\n </tk-workspaces-table>\r\n </ng-container>\r\n\r\n <ng-template #placeholder>\r\n <div class=\"tk-workspaces__placeholder\">This section isn't available in this widget yet.</div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #detailView>\r\n <tk-workspace-detail\r\n *ngIf=\"selectedWorkspace\"\r\n [workspace]=\"selectedWorkspace\"\r\n (back)=\"onBackToList()\">\r\n </tk-workspace-detail>\r\n </ng-template>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.tk-workspaces{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspaces__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem}.tk-workspaces__title{margin:0;font-size:1.5rem;font-weight:600}.tk-workspaces__tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.tk-workspaces__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:none;border:none;border-radius:6.25rem;font-family:inherit;font-size:1rem;font-weight:500;color:#000000b3;cursor:pointer}.tk-workspaces__tab:hover{background:rgba(0,0,0,.0705882353)}.tk-workspaces__tab--active{background:#C1C1C1;color:#000000f2}.tk-workspaces__tab--active:hover{background:rgba(0,0,0,.3019607843)}.tk-workspaces__tab-icon{height:1.125rem;width:1.125rem;opacity:.6}.tk-workspaces__tab--active .tk-workspaces__tab-icon{opacity:1}.tk-workspaces__placeholder{padding:3rem 1rem;text-align:center;color:#0009}::ng-deep input.blue-input{border:solid .0625rem rgba(0,0,0,.5019607843)!important}::ng-deep input.blue-input:focus{display:flex;align-items:center;color:#000000b3;background-color:#ededed;border:solid .0625rem rgba(0,0,0,.5019607843);font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important}::ng-deep input.blue-input:focus:focus-visible{outline:none}::ng-deep input.blue-input:hover{background-color:#00000012!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}\n"], dependencies: [{ kind: "directive", type: i6.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i6.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i7.WorkspacesFiltersComponent, selector: "tk-workspaces-filters", inputs: ["resultCount", "typeOptions", "locationOptions"], outputs: ["searchChange", "typeChange", "locationChange", "addWorkspace"] }, { kind: "component", type: i8.WorkspacesTableComponent, selector: "tk-workspaces-table", inputs: ["workspaces", "total", "pageIndex", "pageSize", "pageSizeOptions", "pendingWorkspaceIds"], outputs: ["openWorkspace", "licenseWithHybrid", "migrateToMT", "enableWebexCalling", "migrateToUCM", "addDevice", "pageChange"] }, { kind: "component", type: i9.WorkspaceDetailComponent, selector: "tk-workspace-detail", inputs: ["workspace"], outputs: ["back"] }, { kind: "component", type: i10.AppLoaderComponent, selector: "app-loader" }] });
|
|
104
279
|
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesComponent, decorators: [{
|
|
105
280
|
type: Component,
|
|
106
|
-
args: [{ selector: 'tk-workspaces', template: "<div class=\"tk-workspaces\">\r\n <ng-container *ngIf=\"view === 'list'; else detailView\">\r\n <header class=\"tk-workspaces__header\">\r\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\r\n </header>\r\n\r\n <nav class=\"tk-workspaces__tabs\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let tab of tabs\"\r\n class=\"tk-workspaces__tab\"\r\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\r\n (click)=\"selectTab(tab.id)\">\r\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\r\n {{ tab.label }}\r\n </button>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\r\n <app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n <tk-workspaces-filters\r\n [resultCount]=\"total\"\r\n [typeOptions]=\"typeOptions\"\r\n [locationOptions]=\"locationOptions\"\r\n (searchChange)=\"onSearchChange($event)\"\r\n (typeChange)=\"onTypeFilterChange($event)\"\r\n (locationChange)=\"onLocationFilterChange($event)\"\r\n (addWorkspace)=\"addWorkspace.emit()\">\r\n </tk-workspaces-filters>\r\n\r\n <tk-workspaces-table\r\n [workspaces]=\"filteredWorkspaces\"\r\n [total]=\"total\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n (openWorkspace)=\"onOpenWorkspace($event)\"\r\n (
|
|
107
|
-
}], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.
|
|
281
|
+
args: [{ selector: 'tk-workspaces', template: "<div class=\"tk-workspaces\">\r\n <ng-container *ngIf=\"view === 'list'; else detailView\">\r\n <header class=\"tk-workspaces__header\">\r\n <h1 class=\"tk-workspaces__title\">Workspaces</h1>\r\n </header>\r\n\r\n <nav class=\"tk-workspaces__tabs\">\r\n <button\r\n type=\"button\"\r\n *ngFor=\"let tab of tabs\"\r\n class=\"tk-workspaces__tab\"\r\n [class.tk-workspaces__tab--active]=\"activeTab === tab.id\"\r\n (click)=\"selectTab(tab.id)\">\r\n <img class=\"tk-workspaces__tab-icon\" [src]=\"tab.icon\" alt=\"\" />\r\n {{ tab.label }}\r\n </button>\r\n </nav>\r\n\r\n <ng-container *ngIf=\"activeTab === 'workspaces'; else placeholder\">\r\n <app-loader *ngIf=\"isLoading\"></app-loader>\r\n\r\n <tk-workspaces-filters\r\n [resultCount]=\"total\"\r\n [typeOptions]=\"typeOptions\"\r\n [locationOptions]=\"locationOptions\"\r\n (searchChange)=\"onSearchChange($event)\"\r\n (typeChange)=\"onTypeFilterChange($event)\"\r\n (locationChange)=\"onLocationFilterChange($event)\"\r\n (addWorkspace)=\"addWorkspace.emit()\">\r\n </tk-workspaces-filters>\r\n\r\n <tk-workspaces-table\r\n [workspaces]=\"filteredWorkspaces\"\r\n [total]=\"total\"\r\n [pageIndex]=\"pageIndex\"\r\n [pageSize]=\"pageSize\"\r\n [pendingWorkspaceIds]=\"pendingWorkspaceIds\"\r\n (openWorkspace)=\"onOpenWorkspace($event)\"\r\n (licenseWithHybrid)=\"onMoveToMT($event)\"\r\n (migrateToMT)=\"onMoveToMT($event)\"\r\n (enableWebexCalling)=\"onEnableWebexCalling($event)\"\r\n (migrateToUCM)=\"onMigrateToUCM($event)\"\r\n (addDevice)=\"addDevice.emit($event)\"\r\n (pageChange)=\"onPageChange($event)\">\r\n </tk-workspaces-table>\r\n </ng-container>\r\n\r\n <ng-template #placeholder>\r\n <div class=\"tk-workspaces__placeholder\">This section isn't available in this widget yet.</div>\r\n </ng-template>\r\n </ng-container>\r\n\r\n <ng-template #detailView>\r\n <tk-workspace-detail\r\n *ngIf=\"selectedWorkspace\"\r\n [workspace]=\"selectedWorkspace\"\r\n (back)=\"onBackToList()\">\r\n </tk-workspace-detail>\r\n </ng-template>\r\n</div>\r\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";.tk-workspaces{font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2;padding:1.5rem}.tk-workspaces__header{display:flex;align-items:flex-start;justify-content:space-between;gap:1rem;padding-bottom:1rem}.tk-workspaces__title{margin:0;font-size:1.5rem;font-weight:600}.tk-workspaces__tabs{display:flex;align-items:center;gap:.25rem;margin-bottom:1rem}.tk-workspaces__tab{display:inline-flex;align-items:center;gap:.375rem;padding:.5rem .875rem;background:none;border:none;border-radius:6.25rem;font-family:inherit;font-size:1rem;font-weight:500;color:#000000b3;cursor:pointer}.tk-workspaces__tab:hover{background:rgba(0,0,0,.0705882353)}.tk-workspaces__tab--active{background:#C1C1C1;color:#000000f2}.tk-workspaces__tab--active:hover{background:rgba(0,0,0,.3019607843)}.tk-workspaces__tab-icon{height:1.125rem;width:1.125rem;opacity:.6}.tk-workspaces__tab--active .tk-workspaces__tab-icon{opacity:1}.tk-workspaces__placeholder{padding:3rem 1rem;text-align:center;color:#0009}::ng-deep input.blue-input{border:solid .0625rem rgba(0,0,0,.5019607843)!important}::ng-deep input.blue-input:focus{display:flex;align-items:center;color:#000000b3;background-color:#ededed;border:solid .0625rem rgba(0,0,0,.5019607843);font-weight:500;cursor:pointer;flex-wrap:wrap;gap:.5rem;box-shadow:0 0 0 .12rem #fff,0 0 0 .25rem #1170cf,0 0 0 .3rem #1170cf59;background-color:#fff!important}::ng-deep input.blue-input:focus:focus-visible{outline:none}::ng-deep input.blue-input:hover{background-color:#00000012!important}.data-loader{position:absolute;top:calc(50% - 25px);left:calc(50% - 25px)}\n"] }]
|
|
282
|
+
}], ctorParameters: function () { return [{ type: i1.APIService }, { type: i2.ApiWebexService }, { type: i3.WorkspacesService }, { type: i4.WorkspacesMigrationService }, { type: i5.MatDialog }, { type: i6.Location }]; }, propDecorators: { host: [{
|
|
108
283
|
type: Input
|
|
109
284
|
}], token: [{
|
|
110
285
|
type: Input
|
|
@@ -114,11 +289,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
114
289
|
type: Output
|
|
115
290
|
}], openWorkspace: [{
|
|
116
291
|
type: Output
|
|
117
|
-
}], editWorkspace: [{
|
|
118
|
-
type: Output
|
|
119
|
-
}], deleteWorkspace: [{
|
|
120
|
-
type: Output
|
|
121
292
|
}], addDevice: [{
|
|
122
293
|
type: Output
|
|
123
294
|
}] } });
|
|
124
|
-
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQVUsTUFBTSxFQUFFLE1BQU0sZUFBZSxDQUFDOzs7Ozs7Ozs7QUFvQi9FLE1BQU0sT0FBTyxtQkFBbUI7SUFrQzlCLFlBQ1UsVUFBc0IsRUFDdEIsaUJBQW9DLEVBQ3BDLFFBQWtCO1FBRmxCLGVBQVUsR0FBVixVQUFVLENBQVk7UUFDdEIsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxhQUFRLEdBQVIsUUFBUSxDQUFVO1FBaENsQixpQkFBWSxHQUFHLElBQUksWUFBWSxFQUFRLENBQUM7UUFDeEMsa0JBQWEsR0FBRyxJQUFJLFlBQVksRUFBVSxDQUFDO1FBQzNDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzQyxvQkFBZSxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFDN0MsY0FBUyxHQUFHLElBQUksWUFBWSxFQUFVLENBQUM7UUFFeEMsU0FBSSxHQUE4QjtZQUN6QyxFQUFFLEVBQUUsRUFBRSxZQUFZLEVBQUUsS0FBSyxFQUFFLFlBQVksRUFBRSxJQUFJLEVBQUUseUNBQXlDLEVBQUU7WUFDMUYsRUFBRSxFQUFFLEVBQUUsVUFBVSxFQUFFLEtBQUssRUFBRSxVQUFVLEVBQUUsSUFBSSxFQUFFLG1DQUFtQyxFQUFFO1lBQ2hGLEVBQUUsRUFBRSxFQUFFLGNBQWMsRUFBRSxLQUFLLEVBQUUsY0FBYyxFQUFFLElBQUksRUFBRSx1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LElBQUksQ0FBQyxTQUFTLEdBQUcsS0FBSyxDQUFDO1lBQ3pCLENBQUM7U0FDRixDQUFDLENBQUM7SUFDTCxDQUFDOztpSEFySFUsbUJBQW1CO3FHQUFuQixtQkFBbUIsZ1NDckJoQyx5bEVBeURBOzRGRHBDYSxtQkFBbUI7a0JBTC9CLFNBQVM7K0JBQ0UsZUFBZTt3SkFLaEIsSUFBSTtzQkFBWixLQUFLO2dCQUNHLEtBQUs7c0JBQWIsS0FBSztnQkFDRyxVQUFVO3NCQUFsQixLQUFLO2dCQUVJLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csYUFBYTtzQkFBdEIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLGVBQWU7c0JBQXhCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTSIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IExvY2F0aW9uIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uJztcclxuaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBBUElTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGkuc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93b3Jrc3BhY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tICcuL3R5cGVzL3dvcmtzcGFjZSc7XHJcblxyXG50eXBlIFdvcmtzcGFjZXNWaWV3ID0gJ2xpc3QnIHwgJ2RldGFpbCc7XHJcblxyXG50eXBlIFdvcmtzcGFjZXNUYWIgPSAnd29ya3NwYWNlcycgfCAnaW5zaWdodHMnIHwgJ2ludGVncmF0aW9ucycgfCAnc2V0dGluZ3MnO1xyXG5cclxuaW50ZXJmYWNlIFdvcmtzcGFjZXNUYWJEZWZpbml0aW9uIHtcclxuICBpZDogV29ya3NwYWNlc1RhYjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ay13b3Jrc3BhY2VzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya3NwYWNlcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCB7XHJcbiAgQElucHV0KCkgaG9zdCE6IHN0cmluZztcclxuICBASW5wdXQoKSB0b2tlbiE6IHN0cmluZztcclxuICBASW5wdXQoKSBjdXN0b21lcklkITogc3RyaW5nO1xyXG5cclxuICBAT3V0cHV0KCkgYWRkV29ya3NwYWNlID0gbmV3IEV2ZW50RW1pdHRlcjx2b2lkPigpO1xyXG4gIEBPdXRwdXQoKSBvcGVuV29ya3NwYWNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGVkaXRXb3Jrc3BhY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgZGVsZXRlV29ya3NwYWNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcbiAgQE91dHB1dCgpIGFkZERldmljZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xyXG5cclxuICByZWFkb25seSB0YWJzOiBXb3Jrc3BhY2VzVGFiRGVmaW5pdGlvbltdID0gW1xyXG4gICAgeyBpZDogJ3dvcmtzcGFjZXMnLCBsYWJlbDogJ1dvcmtzcGFjZXMnLCBpY29uOiAnYXNzZXRzL2ljb25zL2RldmljZS1pbi1yb29tLXJlZ3VsYXIuc3ZnJyB9LFxyXG4gICAgeyBpZDogJ2luc2lnaHRzJywgbGFiZWw6ICdJbnNpZ2h0cycsIGljb246ICdhc3NldHMvaWNvbnMvYW5hbHlzaXMtcmVndWxhci5zdmcnIH0sXHJcbiAgICB7IGlkOiAnaW50ZWdyYXRpb25zJywgbGFiZWw6ICdJbnRlZ3JhdGlvbnMnLCBpY29uOiAnYXNzZXRzL2ljb25zL2ludGVncmF0aW9ucy1yZWd1bGFyLnN2ZycgfSxcclxuICAgIHsgaWQ6ICdzZXR0aW5ncycsIGxhYmVsOiAnU2V0dGluZ3MnLCBpY29uOiAnYXNzZXRzL2ljb25zL3Rvb2xzLXJlZ3VsYXIuc3ZnJyB9LFxyXG4gIF07XHJcblxyXG4gIGFjdGl2ZVRhYjogV29ya3NwYWNlc1RhYiA9ICd3b3Jrc3BhY2VzJztcclxuXHJcbiAgdmlldzogV29ya3NwYWNlc1ZpZXcgPSAnbGlzdCc7XHJcbiAgc2VsZWN0ZWRXb3Jrc3BhY2U6IFdvcmtzcGFjZSB8IG51bGwgPSBudWxsO1xyXG5cclxuICB3b3Jrc3BhY2VzOiBXb3Jrc3BhY2VbXSA9IFtdO1xyXG4gIGlzTG9hZGluZyA9IGZhbHNlO1xyXG5cclxuICBwYWdlSW5kZXggPSAwO1xyXG4gIHBhZ2VTaXplID0gMTA7XHJcbiAgdG90YWwgPSAwO1xyXG5cclxuICBzZWFyY2hUZXJtID0gJyc7XHJcbiAgdHlwZUZpbHRlciA9ICcnO1xyXG4gIGxvY2F0aW9uRmlsdGVyID0gJyc7XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSB3b3Jrc3BhY2VzU2VydmljZTogV29ya3NwYWNlc1NlcnZpY2UsXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0ICsgJy9kY3AnO1xyXG4gICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcclxuICB9XHJcblxyXG4gIGdldCB0eXBlT3B0aW9ucygpOiBzdHJpbmdbXSB7XHJcbiAgICByZXR1cm4gWy4uLm5ldyBTZXQodGhpcy53b3Jrc3BhY2VzLm1hcCh3b3Jrc3BhY2UgPT4gd29ya3NwYWNlLnR5cGVMYWJlbCkuZmlsdGVyKEJvb2xlYW4pKV07XHJcbiAgfVxyXG5cclxuICBnZXQgbG9jYXRpb25PcHRpb25zKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbLi4ubmV3IFNldCh0aGlzLndvcmtzcGFjZXMubWFwKHdvcmtzcGFjZSA9PiB3b3Jrc3BhY2UubG9jYXRpb24pLmZpbHRlcihCb29sZWFuKSldO1xyXG4gIH1cclxuXHJcbiAgZ2V0IGZpbHRlcmVkV29ya3NwYWNlcygpOiBXb3Jrc3BhY2VbXSB7XHJcbiAgICBjb25zdCB0ZXJtID0gdGhpcy5zZWFyY2hUZXJtLnRyaW0oKS50b0xvd2VyQ2FzZSgpO1xyXG4gICAgcmV0dXJuIHRoaXMud29ya3NwYWNlcy5maWx0ZXIod29ya3NwYWNlID0+XHJcbiAgICAgICghdGVybSB8fCB3b3Jrc3BhY2UuZGlzcGxheU5hbWUudG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSB8fCB3b3Jrc3BhY2UubG9jYXRpb24udG9Mb3dlckNhc2UoKS5pbmNsdWRlcyh0ZXJtKSkgJiZcclxuICAgICAgKCF0aGlzLnR5cGVGaWx0ZXIgfHwgd29ya3NwYWNlLnR5cGVMYWJlbCA9PT0gdGhpcy50eXBlRmlsdGVyKSAmJlxyXG4gICAgICAoIXRoaXMubG9jYXRpb25GaWx0ZXIgfHwgd29ya3NwYWNlLmxvY2F0aW9uID09PSB0aGlzLmxvY2F0aW9uRmlsdGVyKVxyXG4gICAgKTtcclxuICB9XHJcblxyXG4gIHNlbGVjdFRhYih0YWI6IFdvcmtzcGFjZXNUYWIpOiB2b2lkIHtcclxuICAgIHRoaXMuYWN0aXZlVGFiID0gdGFiO1xyXG4gIH1cclxuXHJcbiAgb25PcGVuV29ya3NwYWNlKGlkOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIGNvbnN0IHdvcmtzcGFjZSA9IHRoaXMud29ya3NwYWNlcy5maW5kKGl0ZW0gPT4gaXRlbS5pZCA9PT0gaWQpID8/IG51bGw7XHJcbiAgICB0aGlzLm9wZW5Xb3Jrc3BhY2UuZW1pdChpZCk7XHJcblxyXG4gICAgaWYgKCF3b3Jrc3BhY2UpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMuc2VsZWN0ZWRXb3Jrc3BhY2UgPSB3b3Jrc3BhY2U7XHJcbiAgICB0aGlzLnZpZXcgPSAnZGV0YWlsJztcclxuICB9XHJcblxyXG4gIG9uQmFja1RvTGlzdCgpOiB2b2lkIHtcclxuICAgIHRoaXMudmlldyA9ICdsaXN0JztcclxuICAgIHRoaXMuc2VsZWN0ZWRXb3Jrc3BhY2UgPSBudWxsO1xyXG4gICAgdGhpcy5sb2NhdGlvbi5yZXBsYWNlU3RhdGUoJy93b3Jrc3BhY2VzJyk7XHJcbiAgfVxyXG5cclxuICBvblNlYXJjaENoYW5nZSh0ZXJtOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMuc2VhcmNoVGVybSA9IHRlcm07XHJcbiAgfVxyXG5cclxuICBvblR5cGVGaWx0ZXJDaGFuZ2UodHlwZTogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLnR5cGVGaWx0ZXIgPSB0eXBlO1xyXG4gIH1cclxuXHJcbiAgb25Mb2NhdGlvbkZpbHRlckNoYW5nZShsb2NhdGlvbjogc3RyaW5nKTogdm9pZCB7XHJcbiAgICB0aGlzLmxvY2F0aW9uRmlsdGVyID0gbG9jYXRpb247XHJcbiAgfVxyXG5cclxuICBvblBhZ2VDaGFuZ2UoeyBwYWdlSW5kZXgsIHBhZ2VTaXplIH06IHsgcGFnZUluZGV4OiBudW1iZXI7IHBhZ2VTaXplOiBudW1iZXIgfSk6IHZvaWQge1xyXG4gICAgdGhpcy5wYWdlSW5kZXggPSBwYWdlSW5kZXg7XHJcbiAgICB0aGlzLnBhZ2VTaXplID0gcGFnZVNpemU7XHJcbiAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaFdvcmtzcGFjZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtzcGFjZXNTZXJ2aWNlLmZldGNoV29ya3NwYWNlcyh0aGlzLmN1c3RvbWVySWQsIHRoaXMucGFnZVNpemUsIHRoaXMucGFnZUluZGV4KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoeyB3b3Jrc3BhY2VzLCB0b3RhbCB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VzID0gd29ya3NwYWNlcztcclxuICAgICAgICB0aGlzLnRvdGFsID0gdG90YWw7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLndvcmtzcGFjZXMgPSBbXTtcclxuICAgICAgICB0aGlzLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXcgPT09ICdsaXN0JzsgZWxzZSBkZXRhaWxWaWV3XCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwidGstd29ya3NwYWNlc19faGVhZGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cInRrLXdvcmtzcGFjZXNfX3RpdGxlXCI+V29ya3NwYWNlczwvaDE+XHJcbiAgICA8L2hlYWRlcj5cclxuXHJcbiAgICA8bmF2IGNsYXNzPVwidGstd29ya3NwYWNlc19fdGFic1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCJcclxuICAgICAgICBjbGFzcz1cInRrLXdvcmtzcGFjZXNfX3RhYlwiXHJcbiAgICAgICAgW2NsYXNzLnRrLXdvcmtzcGFjZXNfX3RhYi0tYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gdGFiLmlkXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0VGFiKHRhYi5pZClcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwidGstd29ya3NwYWNlc19fdGFiLWljb25cIiBbc3JjXT1cInRhYi5pY29uXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICB7eyB0YWIubGFiZWwgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25hdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlVGFiID09PSAnd29ya3NwYWNlcyc7IGVsc2UgcGxhY2Vob2xkZXJcIj5cclxuICAgICAgPGFwcC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2FwcC1sb2FkZXI+XHJcblxyXG4gICAgICA8dGstd29ya3NwYWNlcy1maWx0ZXJzXHJcbiAgICAgICAgW3Jlc3VsdENvdW50XT1cInRvdGFsXCJcclxuICAgICAgICBbdHlwZU9wdGlvbnNdPVwidHlwZU9wdGlvbnNcIlxyXG4gICAgICAgIFtsb2NhdGlvbk9wdGlvbnNdPVwibG9jYXRpb25PcHRpb25zXCJcclxuICAgICAgICAoc2VhcmNoQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICh0eXBlQ2hhbmdlKT1cIm9uVHlwZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobG9jYXRpb25DaGFuZ2UpPVwib25Mb2NhdGlvbkZpbHRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoYWRkV29ya3NwYWNlKT1cImFkZFdvcmtzcGFjZS5lbWl0KClcIj5cclxuICAgICAgPC90ay13b3Jrc3BhY2VzLWZpbHRlcnM+XHJcblxyXG4gICAgICA8dGstd29ya3NwYWNlcy10YWJsZVxyXG4gICAgICAgIFt3b3Jrc3BhY2VzXT1cImZpbHRlcmVkV29ya3NwYWNlc1wiXHJcbiAgICAgICAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2VJbmRleFwiXHJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICAob3BlbldvcmtzcGFjZSk9XCJvbk9wZW5Xb3Jrc3BhY2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGVkaXRXb3Jrc3BhY2UpPVwiZWRpdFdvcmtzcGFjZS5lbWl0KCRldmVudClcIlxyXG4gICAgICAgIChkZWxldGVXb3Jrc3BhY2UpPVwiZGVsZXRlV29ya3NwYWNlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGFkZERldmljZSk9XCJhZGREZXZpY2UuZW1pdCgkZXZlbnQpXCJcclxuICAgICAgICAocGFnZUNoYW5nZSk9XCJvblBhZ2VDaGFuZ2UoJGV2ZW50KVwiPlxyXG4gICAgICA8L3RrLXdvcmtzcGFjZXMtdGFibGU+XHJcbiAgICA8L25nLWNvbnRhaW5lcj5cclxuXHJcbiAgICA8bmctdGVtcGxhdGUgI3BsYWNlaG9sZGVyPlxyXG4gICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlc19fcGxhY2Vob2xkZXJcIj5UaGlzIHNlY3Rpb24gaXNuJ3QgYXZhaWxhYmxlIGluIHRoaXMgd2lkZ2V0IHlldC48L2Rpdj5cclxuICAgIDwvbmctdGVtcGxhdGU+XHJcbiAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gIDxuZy10ZW1wbGF0ZSAjZGV0YWlsVmlldz5cclxuICAgIDx0ay13b3Jrc3BhY2UtZGV0YWlsXHJcbiAgICAgICpuZ0lmPVwic2VsZWN0ZWRXb3Jrc3BhY2VcIlxyXG4gICAgICBbd29ya3NwYWNlXT1cInNlbGVjdGVkV29ya3NwYWNlXCJcclxuICAgICAgKGJhY2spPVwib25CYWNrVG9MaXN0KClcIj5cclxuICAgIDwvdGstd29ya3NwYWNlLWRldGFpbD5cclxuICA8L25nLXRlbXBsYXRlPlxyXG48L2Rpdj5cclxuIl19
|
|
295
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQudHMiLCIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFDQSxPQUFPLEVBQUUsU0FBUyxFQUFFLFlBQVksRUFBRSxLQUFLLEVBQXFCLE1BQU0sRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUUxRixPQUFPLEVBQUUsR0FBRyxFQUFnQixTQUFTLEVBQUUsU0FBUyxFQUFFLEtBQUssRUFBRSxNQUFNLE1BQU0sQ0FBQztBQU10RSxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQzs7Ozs7Ozs7Ozs7O0FBaUIzSCxNQUFNLE9BQU8sbUJBQW1CO0lBb0M5QixZQUNVLFVBQXNCLEVBQ3RCLGVBQWdDLEVBQ2hDLGlCQUFvQyxFQUNwQyxnQkFBNEMsRUFDNUMsTUFBaUIsRUFDakIsUUFBa0I7UUFMbEIsZUFBVSxHQUFWLFVBQVUsQ0FBWTtRQUN0QixvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7UUFDaEMsc0JBQWlCLEdBQWpCLGlCQUFpQixDQUFtQjtRQUNwQyxxQkFBZ0IsR0FBaEIsZ0JBQWdCLENBQTRCO1FBQzVDLFdBQU0sR0FBTixNQUFNLENBQVc7UUFDakIsYUFBUSxHQUFSLFFBQVEsQ0FBVTtRQXJDbEIsaUJBQVksR0FBRyxJQUFJLFlBQVksRUFBUSxDQUFDO1FBQ3hDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzQyxjQUFTLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUV4QyxTQUFJLEdBQThCO1lBQ3pDLEVBQUUsRUFBRSxFQUFFLFlBQVksRUFBRSxLQUFLLEVB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RyxDQUFDLENBQUM7Z0JBQ2YsSUFBSSxDQUFDLFNBQVMsR0FBRyxLQUFLLENBQUM7WUFDekIsQ0FBQztTQUNGLENBQUMsQ0FBQztJQUNMLENBQUM7O2lIQWpUVSxtQkFBbUI7cUdBQW5CLG1CQUFtQiw0TkMxQmhDLHN2RUE0REE7NEZEbENhLG1CQUFtQjtrQkFML0IsU0FBUzsrQkFDRSxlQUFlO3VQQUtoQixJQUFJO3NCQUFaLEtBQUs7Z0JBQ0csS0FBSztzQkFBYixLQUFLO2dCQUNHLFVBQVU7c0JBQWxCLEtBQUs7Z0JBRUksWUFBWTtzQkFBckIsTUFBTTtnQkFDRyxhQUFhO3NCQUF0QixNQUFNO2dCQUNHLFNBQVM7c0JBQWxCLE1BQU0iLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBMb2NhdGlvbiB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbic7XHJcbmltcG9ydCB7IENvbXBvbmVudCwgRXZlbnRFbWl0dGVyLCBJbnB1dCwgT25EZXN0cm95LCBPbkluaXQsIE91dHB1dCB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBNYXREaWFsb2cgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9kaWFsb2cnO1xyXG5pbXBvcnQgeyBtYXAsIFN1YnNjcmlwdGlvbiwgc3dpdGNoTWFwLCB0YWtlV2hpbGUsIHRpbWVyIH0gZnJvbSAncnhqcyc7XHJcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL3NlcnZpY2VzL2FwaS5zZXJ2aWNlJztcclxuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy9hcGktd2ViZXguc2VydmljZSc7XHJcbmltcG9ydCB7IEZpcm13YXJlRGV2aWNlTWFwLCBXb3Jrc3BhY2VzTWlncmF0aW9uU2VydmljZSB9IGZyb20gJy4vc2VydmljZXMvd29ya3NwYWNlcy1taWdyYXRpb24uc2VydmljZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZXNTZXJ2aWNlIH0gZnJvbSAnLi9zZXJ2aWNlcy93b3Jrc3BhY2VzLnNlcnZpY2UnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2UsIFdvcmtzcGFjZURldmljZVJlY29yZCB9IGZyb20gJy4vdHlwZXMvd29ya3NwYWNlJztcclxuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtY29uZmlybS1kaWFsb2cvd29ya3NwYWNlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcblxyXG50eXBlIFdvcmtzcGFjZXNWaWV3ID0gJ2xpc3QnIHwgJ2RldGFpbCc7XHJcblxyXG50eXBlIFdvcmtzcGFjZXNUYWIgPSAnd29ya3NwYWNlcycgfCAnaW5zaWdodHMnIHwgJ2ludGVncmF0aW9ucycgfCAnc2V0dGluZ3MnO1xyXG5cclxuaW50ZXJmYWNlIFdvcmtzcGFjZXNUYWJEZWZpbml0aW9uIHtcclxuICBpZDogV29ya3NwYWNlc1RhYjtcclxuICBsYWJlbDogc3RyaW5nO1xyXG4gIGljb246IHN0cmluZztcclxufVxyXG5cclxuQENvbXBvbmVudCh7XHJcbiAgc2VsZWN0b3I6ICd0ay13b3Jrc3BhY2VzJyxcclxuICB0ZW1wbGF0ZVVybDogJy4vd29ya3NwYWNlcy5jb21wb25lbnQuaHRtbCcsXHJcbiAgc3R5bGVVcmxzOiBbJy4vd29ya3NwYWNlcy5jb21wb25lbnQuc2NzcyddLFxyXG59KVxyXG5leHBvcnQgY2xhc3MgV29ya3NwYWNlc0NvbXBvbmVudCBpbXBsZW1lbnRzIE9uSW5pdCwgT25EZXN0cm95IHtcclxuICBASW5wdXQoKSBob3N0ITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIHRva2VuITogc3RyaW5nO1xyXG4gIEBJbnB1dCgpIGN1c3RvbWVySWQhOiBzdHJpbmc7XHJcblxyXG4gIEBPdXRwdXQoKSBhZGRXb3Jrc3BhY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHZvaWQ+KCk7XHJcbiAgQE91dHB1dCgpIG9wZW5Xb3Jrc3BhY2UgPSBuZXcgRXZlbnRFbWl0dGVyPHN0cmluZz4oKTtcclxuICBAT3V0cHV0KCkgYWRkRGV2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XHJcblxyXG4gIHJlYWRvbmx5IHRhYnM6IFdvcmtzcGFjZXNUYWJEZWZpbml0aW9uW10gPSBbXHJcbiAgICB7IGlkOiAnd29ya3NwYWNlcycsIGxhYmVsOiAnV29ya3NwYWNlcycsIGljb246ICdhc3NldHMvaWNvbnMvZGV2aWNlLWluLXJvb20tcmVndWxhci5zdmcnIH0sXHJcbiAgICB7IGlkOiAnaW5zaWdodHMnLCBsYWJlbDogJ0luc2lnaHRzJywgaWNvbjogJ2Fzc2V0cy9pY29ucy9hbmFseXNpcy1yZWd1bGFyLnN2ZycgfSxcclxuICAgIHsgaWQ6ICdpbnRlZ3JhdGlvbnMnLCBsYWJlbDogJ0ludGVncmF0aW9ucycsIGljb246ICdhc3NldHMvaWNvbnMvaW50ZWdyYXRpb25zLXJlZ3VsYXIuc3ZnJyB9LFxyXG4gICAgeyBpZDogJ3NldHRpbmdzJywgbGFiZWw6ICdTZXR0aW5ncycsIGljb246ICdhc3NldHMvaWNvbnMvdG9vbHMtcmVndWxhci5zdmcnIH0sXHJcbiAgXTtcclxuXHJcbiAgYWN0aXZlVGFiOiBXb3Jrc3BhY2VzVGFiID0gJ3dvcmtzcGFjZXMnO1xyXG5cclxuICB2aWV3OiBXb3Jrc3BhY2VzVmlldyA9ICdsaXN0JztcclxuICBzZWxlY3RlZFdvcmtzcGFjZTogV29ya3NwYWNlIHwgbnVsbCA9IG51bGw7XHJcblxyXG4gIHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XHJcbiAgaXNMb2FkaW5nID0gZmFsc2U7XHJcblxyXG4gIHBhZ2VJbmRleCA9IDA7XHJcbiAgcGFnZVNpemUgPSAxMDtcclxuICB0b3RhbCA9IDA7XHJcblxyXG4gIHNlYXJjaFRlcm0gPSAnJztcclxuICB0eXBlRmlsdGVyID0gJyc7XHJcbiAgbG9jYXRpb25GaWx0ZXIgPSAnJztcclxuXHJcbiAgcGVuZGluZ1dvcmtzcGFjZUlkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xyXG5cclxuICBwcml2YXRlIHJlYWRvbmx5IHN1YnNjcmlwdGlvbnM6IFN1YnNjcmlwdGlvbltdID0gW107XHJcblxyXG4gIGNvbnN0cnVjdG9yKFxyXG4gICAgcHJpdmF0ZSBhcGlTZXJ2aWNlOiBBUElTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBhcGlXZWJleFNlcnZpY2U6IEFwaVdlYmV4U2VydmljZSxcclxuICAgIHByaXZhdGUgd29ya3NwYWNlc1NlcnZpY2U6IFdvcmtzcGFjZXNTZXJ2aWNlLFxyXG4gICAgcHJpdmF0ZSBtaWdyYXRpb25TZXJ2aWNlOiBXb3Jrc3BhY2VzTWlncmF0aW9uU2VydmljZSxcclxuICAgIHByaXZhdGUgZGlhbG9nOiBNYXREaWFsb2csXHJcbiAgICBwcml2YXRlIGxvY2F0aW9uOiBMb2NhdGlvbixcclxuICApIHsgfVxyXG5cclxuICBuZ09uSW5pdCgpOiB2b2lkIHtcclxuICAgIHRoaXMuYXBpU2VydmljZS50b2tlbiA9IHRoaXMudG9rZW47XHJcbiAgICB0aGlzLmFwaVNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0ICsgJy9kY3AnO1xyXG4gICAgdGhpcy5hcGlXZWJleFNlcnZpY2UudG9rZW4gPSB0aGlzLnRva2VuO1xyXG4gICAgdGhpcy5hcGlXZWJleFNlcnZpY2UuYXBpVXJsID0gdGhpcy5ob3N0ICsgJy93ZWJleCc7XHJcbiAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gIH1cclxuXHJcbiAgbmdPbkRlc3Ryb3koKTogdm9pZCB7XHJcbiAgICB0aGlzLnN1YnNjcmlwdGlvbnMuZm9yRWFjaChzdWJzY3JpcHRpb24gPT4gc3Vic2NyaXB0aW9uLnVuc3Vic2NyaWJlKCkpO1xyXG4gIH1cclxuXHJcbiAgZ2V0IHR5cGVPcHRpb25zKCk6IHN0cmluZ1tdIHtcclxuICAgIHJldHVybiBbLi4ubmV3IFNldCh0aGlzLndvcmtzcGFjZXMubWFwKHdvcmtzcGFjZSA9PiB3b3Jrc3BhY2UudHlwZUxhYmVsKS5maWx0ZXIoQm9vbGVhbikpXTtcclxuICB9XHJcblxyXG4gIGdldCBsb2NhdGlvbk9wdGlvbnMoKTogc3RyaW5nW10ge1xyXG4gICAgcmV0dXJuIFsuLi5uZXcgU2V0KHRoaXMud29ya3NwYWNlcy5tYXAod29ya3NwYWNlID0+IHdvcmtzcGFjZS5sb2NhdGlvbikuZmlsdGVyKEJvb2xlYW4pKV07XHJcbiAgfVxyXG5cclxuICBnZXQgZmlsdGVyZWRXb3Jrc3BhY2VzKCk6IFdvcmtzcGFjZVtdIHtcclxuICAgIGNvbnN0IHRlcm0gPSB0aGlzLnNlYXJjaFRlcm0udHJpbSgpLnRvTG93ZXJDYXNlKCk7XHJcbiAgICByZXR1cm4gdGhpcy53b3Jrc3BhY2VzLmZpbHRlcih3b3Jrc3BhY2UgPT5cclxuICAgICAgKCF0ZXJtIHx8IHdvcmtzcGFjZS5kaXNwbGF5TmFtZS50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pIHx8IHdvcmtzcGFjZS5sb2NhdGlvbi50b0xvd2VyQ2FzZSgpLmluY2x1ZGVzKHRlcm0pKSAmJlxyXG4gICAgICAoIXRoaXMudHlwZUZpbHRlciB8fCB3b3Jrc3BhY2UudHlwZUxhYmVsID09PSB0aGlzLnR5cGVGaWx0ZXIpICYmXHJcbiAgICAgICghdGhpcy5sb2NhdGlvbkZpbHRlciB8fCB3b3Jrc3BhY2UubG9jYXRpb24gPT09IHRoaXMubG9jYXRpb25GaWx0ZXIpXHJcbiAgICApO1xyXG4gIH1cclxuXHJcbiAgc2VsZWN0VGFiKHRhYjogV29ya3NwYWNlc1RhYik6IHZvaWQge1xyXG4gICAgdGhpcy5hY3RpdmVUYWIgPSB0YWI7XHJcbiAgfVxyXG5cclxuICBvbk9wZW5Xb3Jrc3BhY2UoaWQ6IHN0cmluZyk6IHZvaWQge1xyXG4gICAgY29uc3Qgd29ya3NwYWNlID0gdGhpcy53b3Jrc3BhY2VzLmZpbmQoaXRlbSA9PiBpdGVtLmlkID09PSBpZCkgPz8gbnVsbDtcclxuICAgIHRoaXMub3BlbldvcmtzcGFjZS5lbWl0KGlkKTtcclxuXHJcbiAgICBpZiAoIXdvcmtzcGFjZSkge1xyXG4gICAgICByZXR1cm47XHJcbiAgICB9XHJcblxyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtzcGFjZSA9IHdvcmtzcGFjZTtcclxuICAgIHRoaXMudmlldyA9ICdkZXRhaWwnO1xyXG4gIH1cclxuXHJcbiAgb25CYWNrVG9MaXN0KCk6IHZvaWQge1xyXG4gICAgdGhpcy52aWV3ID0gJ2xpc3QnO1xyXG4gICAgdGhpcy5zZWxlY3RlZFdvcmtzcGFjZSA9IG51bGw7XHJcbiAgICB0aGlzLmxvY2F0aW9uLnJlcGxhY2VTdGF0ZSgnL3dvcmtzcGFjZXMnKTtcclxuICB9XHJcblxyXG4gIG9uU2VhcmNoQ2hhbmdlKHRlcm06IHN0cmluZyk6IHZvaWQge1xyXG4gICAgdGhpcy5zZWFyY2hUZXJtID0gdGVybTtcclxuICB9XHJcblxyXG4gIG9uVHlwZUZpbHRlckNoYW5nZSh0eXBlOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMudHlwZUZpbHRlciA9IHR5cGU7XHJcbiAgfVxyXG5cclxuICBvbkxvY2F0aW9uRmlsdGVyQ2hhbmdlKGxvY2F0aW9uOiBzdHJpbmcpOiB2b2lkIHtcclxuICAgIHRoaXMubG9jYXRpb25GaWx0ZXIgPSBsb2NhdGlvbjtcclxuICB9XHJcblxyXG4gIG9uUGFnZUNoYW5nZSh7IHBhZ2VJbmRleCwgcGFnZVNpemUgfTogeyBwYWdlSW5kZXg6IG51bWJlcjsgcGFnZVNpemU6IG51bWJlciB9KTogdm9pZCB7XHJcbiAgICB0aGlzLnBhZ2VJbmRleCA9IHBhZ2VJbmRleDtcclxuICAgIHRoaXMucGFnZVNpemUgPSBwYWdlU2l6ZTtcclxuICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgfVxyXG5cclxuICBvbk1vdmVUb01UKHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBkaWFsb2dSZWYgPSB0aGlzLmRpYWxvZy5vcGVuKFdvcmtzcGFjZUNvbmZpcm1EaWFsb2dDb21wb25lbnQsIHtcclxuICAgICAgZGF0YToge1xyXG4gICAgICAgIHRpdGxlOiBgVXBncmFkZSB3b3Jrc3BhY2UgJHt3b3Jrc3BhY2UuZGlzcGxheU5hbWV9IHRvIE11bHRpIFRlbmFudD9gLFxyXG4gICAgICAgIG1lc3NhZ2U6IGA8cD5VcGdyYWRpbmcgdGhpcyB3b3Jrc3BhY2Ugd2lsbCBwcmVwYXJlIGl0IGZvciBtaWdyYXRpb24gdG8gTXVsdGkgVGVuYW50LjwvcD5cclxuICAgICAgICAgIDxwPkR1cmluZyB0aGlzIHByb2Nlc3MsIHRoZSB3b3Jrc3BhY2UgY29uZmlndXJhdGlvbiB3aWxsIGJlIGNvcGllZCB0byB0aGUgTXVsdGkgVGVuYW50IGVudmlyb25tZW50LlxyXG4gICAgICAgICAgVGhlIHdvcmtzcGFjZSB3aWxsIHJlbWFpbiBhY3RpdmUgb24gdGhlIGN1cnJlbnQgc3lzdGVtIHVudGlsIHRoZSBBY3RpdmF0ZSBzdGVwIGlzIGNvbXBsZXRlZC48L3A+XHJcbiAgICAgICAgICA8cD5EbyB5b3Ugd2FudCB0byBjb250aW51ZT88L3A+YCxcclxuICAgICAgICBjb25maXJtQnV0dG9uVGV4dDogJ1llcywgdXBncmFkZScsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmFkZCh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLm1pZ3JhdGlvblNlcnZpY2UubW92ZVRvTVQodGhpcy5jdXN0b21lcklkLCB3b3Jrc3BhY2UuZGV2aWNlKS5zdWJzY3JpYmUoe1xyXG4gICAgICAgIG5leHQ6IChmb3JtSWQ6IG51bWJlcikgPT4ge1xyXG4gICAgICAgICAgaWYgKGZvcm1JZCkge1xyXG4gICAgICAgICAgICB0aGlzLnBvbGxNaWdyYXRpb25Gb3JtU3RhdHVzKE51bWJlcihmb3JtSWQpLCB3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICAgICAgfSBlbHNlIHtcclxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gICAgICAgICAgfVxyXG4gICAgICAgIH0sXHJcbiAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5kZWxldGUod29ya3NwYWNlLmlkKTtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgICAgICAgfSxcclxuICAgICAgfSk7XHJcbiAgICAgIHRoaXMuc3Vic2NyaXB0aW9ucy5wdXNoKHN1YnNjcmlwdGlvbik7XHJcbiAgICB9KTtcclxuICB9XHJcblxyXG4gIG9uRW5hYmxlV2ViZXhDYWxsaW5nKHdvcmtzcGFjZTogV29ya3NwYWNlKTogdm9pZCB7XHJcbiAgICBjb25zdCBkZXZpY2UgPSB3b3Jrc3BhY2UuZGV2aWNlO1xyXG4gICAgaWYgKCFkZXZpY2Uud2ViZXhVVUlEIHx8IHdvcmtzcGFjZS5zdGF0dXMgIT09ICdpbmFjdGl2ZScpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIGNvbnN0IGRpYWxvZ1JlZiA9IHRoaXMuZGlhbG9nLm9wZW4oV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCwge1xyXG4gICAgICBkYXRhOiB7XHJcbiAgICAgICAgdGl0bGU6IGBBY3RpdmF0ZSB3b3Jrc3BhY2UgJHt3b3Jrc3BhY2UuZGlzcGxheU5hbWV9IG9uIE11bHRpIFRlbmFudD9gLFxyXG4gICAgICAgIG1lc3NhZ2U6IGA8cD5BY3RpdmF0aW5nIHRoaXMgd29ya3NwYWNlIHdpbGwgcGVyZm9ybSB0aGUgY3V0b3ZlciB0byBNdWx0aSBUZW5hbnQgYW5kIGNvbXBsZXRlIHRoZSBtaWdyYXRpb24gcHJvY2Vzcy48L3A+XHJcbiAgICAgICAgICA8cD5BZnRlciBhY3RpdmF0aW9uLCB0aGUgd29ya3NwYWNlIHdpbGwgYmVjb21lIGFjdGl2ZSBvbiBNdWx0aSBUZW5hbnQgYW5kIHRoZSBvcmlnaW5hbCB3b3Jrc3BhY2Ugd2lsbCBiZWNvbWUgaW5hY3RpdmUuPC9wPlxyXG4gICAgICAgICAgPHA+RG8geW91IHdhbnQgdG8gY29udGludWU/PC9wPmAsXHJcbiAgICAgICAgY29uZmlybUJ1dHRvblRleHQ6ICdBY3RpdmF0ZScsXHJcbiAgICAgIH0sXHJcbiAgICB9KTtcclxuXHJcbiAgICBkaWFsb2dSZWYuYmVmb3JlQ2xvc2VkKCkuc3Vic2NyaWJlKChyZXN1bHQ6IGJvb2xlYW4pID0+IHtcclxuICAgICAgaWYgKCFyZXN1bHQpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmFkZCh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICBjb25zdCBzdWJzY3JpcHRpb24gPSB0aGlzLm1pZ3JhdGlvblNlcnZpY2VcclxuICAgICAgICAuZ2V0TWlncmF0ZWRNaWdyYXRpb25Gb3JtRW50aXRpZXModGhpcy5jdXN0b21lcklkLCBkZXZpY2Uud2ViZXhVVUlEIGFzIHN0cmluZywgJ1BFUlNPTicpXHJcbiAgICAgICAgLnBpcGUobWFwKChlbnRpdGllczogYW55W10pID0+IChBcnJheS5pc0FycmF5KGVudGl0aWVzKSA/IGVudGl0aWVzWzBdIDogZW50aXRpZXMgfHwgbnVsbCkpKVxyXG4gICAgICAgIC5zdWJzY3JpYmUoe1xyXG4gICAgICAgICAgbmV4dDogKGVudGl0eTogYW55KSA9PiB7XHJcbiAgICAgICAgICAgIGNvbnN0IGZvcm1JZCA9IGVudGl0eT8ubWlncmF0aW9uRm9ybUlkID8/IGVudGl0eT8uaWQgPz8gbnVsbDtcclxuICAgICAgICAgICAgaWYgKCFmb3JtSWQpIHtcclxuICAgICAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICAgICAgcmV0dXJuO1xyXG4gICAgICAgICAgICB9XHJcbiAgICAgICAgICAgIGNvbnN0IGRldmljZU1hcCA9IHRoaXMuYnVpbGRGaXJtd2FyZURldmljZU1hcChlbnRpdHksIGRldmljZSk7XHJcbiAgICAgICAgICAgIGNvbnN0IHVwZ3JhZGVTdWJzY3JpcHRpb24gPSB0aGlzLm1pZ3JhdGlvblNlcnZpY2VcclxuICAgICAgICAgICAgICAudHJpZ2dlckZpcm13YXJlVXBncmFkZSh0aGlzLmN1c3RvbWVySWQsIE51bWJlcihmb3JtSWQpLCBkZXZpY2VNYXApXHJcbiAgICAgICAgICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgICAgICAgICBuZXh0OiAoKSA9PiB7XHJcbiAgICAgICAgICAgICAgICAgIHdpbmRvdy5zZXRUaW1lb3V0KCgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICB0aGlzLnBvbGxNaWdyYXRpb25Gb3JtU3RhdHVzKE51bWJlcihmb3JtSWQpLCB3b3Jrc3BhY2UuaWQsICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgICAgIHRoaXMubWlncmF0aW9uU2VydmljZS5yZW1vdmVVY21MaWNlbnNlKHRoaXMuY3VzdG9tZXJJZCwgTnVtYmVyKGZvcm1JZCkpLnN1YnNjcmliZSgpO1xyXG4gICAgICAgICAgICAgICAgICAgIH0pO1xyXG4gICAgICAgICAgICAgICAgICB9LCAxMDAwMCk7XHJcbiAgICAgICAgICAgICAgICB9LFxyXG4gICAgICAgICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICAgICAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gICAgICAgICAgICAgICAgfSxcclxuICAgICAgICAgICAgICB9KTtcclxuICAgICAgICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2godXBncmFkZVN1YnNjcmlwdGlvbik7XHJcbiAgICAgICAgICB9LFxyXG4gICAgICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICAgICAgfSxcclxuICAgICAgICB9KTtcclxuICAgICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcclxuICAgIH0pO1xyXG4gIH1cclxuXHJcbiAgb25NaWdyYXRlVG9VQ00od29ya3NwYWNlOiBXb3Jrc3BhY2UpOiB2b2lkIHtcclxuICAgIGNvbnN0IGRldmljZSA9IHdvcmtzcGFjZS5kZXZpY2U7XHJcbiAgICBpZiAoIWRldmljZS53ZWJleFVVSUQgfHwgd29ya3NwYWNlLnN0YXR1cyAhPT0gJ2FjdGl2ZScpIHtcclxuICAgICAgcmV0dXJuO1xyXG4gICAgfVxyXG5cclxuICAgIHRoaXMucGVuZGluZ1dvcmtzcGFjZUlkcy5hZGQod29ya3NwYWNlLmlkKTtcclxuICAgIGNvbnN0IHN1YnNjcmlwdGlvbiA9IHRoaXMubWlncmF0aW9uU2VydmljZVxyXG4gICAgICAucmV2ZXJ0TWlncmF0aW9uKHRoaXMuY3VzdG9tZXJJZCwgZGV2aWNlLndlYmV4VVVJRClcclxuICAgICAgLnBpcGUoc3dpdGNoTWFwKCgpID0+IHRpbWVyKDIwMDApKSlcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2UuaWQpO1xyXG4gICAgICAgICAgdGhpcy5mZXRjaFdvcmtzcGFjZXMoKTtcclxuICAgICAgICB9LFxyXG4gICAgICAgIGVycm9yOiAoKSA9PiB7XHJcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZS5pZCk7XHJcbiAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgcG9sbE1pZ3JhdGlvbkZvcm1TdGF0dXMoZm9ybUlkOiBudW1iZXIsIHdvcmtzcGFjZUlkOiBzdHJpbmcsIG9uQ29tcGxldGVkPzogKCkgPT4gdm9pZCk6IHZvaWQge1xyXG4gICAgY29uc3Qgc3Vic2NyaXB0aW9uID0gdGltZXIoMCwgMTAwMDApXHJcbiAgICAgIC5waXBlKFxyXG4gICAgICAgIHN3aXRjaE1hcCgoKSA9PiB0aGlzLm1pZ3JhdGlvblNlcnZpY2UuZ2V0TWlncmF0aW9uRm9ybVN0YXR1cyh0aGlzLmN1c3RvbWVySWQsIGZvcm1JZCkpLFxyXG4gICAgICAgIHRha2VXaGlsZSgocmVzcG9uc2U6IGFueSkgPT4gIXRoaXMuaXNUZXJtaW5hbE1pZ3JhdGlvblN0YXR1cyhyZXNwb25zZT8uc3RhdHVzKSwgdHJ1ZSksXHJcbiAgICAgIClcclxuICAgICAgLnN1YnNjcmliZSh7XHJcbiAgICAgICAgbmV4dDogKHJlc3BvbnNlOiBhbnkpID0+IHtcclxuICAgICAgICAgIGNvbnN0IHN0YXR1cyA9IHRoaXMubm9ybWFsaXplTWlncmF0aW9uU3RhdHVzKHJlc3BvbnNlPy5zdGF0dXMpO1xyXG4gICAgICAgICAgaWYgKCF0aGlzLmlzVGVybWluYWxNaWdyYXRpb25TdGF0dXMoc3RhdHVzKSkge1xyXG4gICAgICAgICAgICByZXR1cm47XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgICB0aGlzLnBlbmRpbmdXb3Jrc3BhY2VJZHMuZGVsZXRlKHdvcmtzcGFjZUlkKTtcclxuICAgICAgICAgIHRoaXMuZmV0Y2hXb3Jrc3BhY2VzKCk7XHJcbiAgICAgICAgICBpZiAoc3RhdHVzID09PSAnQ09NUExFVEVEJykge1xyXG4gICAgICAgICAgICBvbkNvbXBsZXRlZD8uKCk7XHJcbiAgICAgICAgICB9XHJcbiAgICAgICAgfSxcclxuICAgICAgICBlcnJvcjogKCkgPT4ge1xyXG4gICAgICAgICAgdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmRlbGV0ZSh3b3Jrc3BhY2VJZCk7XHJcbiAgICAgICAgICB0aGlzLmZldGNoV29ya3NwYWNlcygpO1xyXG4gICAgICAgIH0sXHJcbiAgICAgIH0pO1xyXG4gICAgdGhpcy5zdWJzY3JpcHRpb25zLnB1c2goc3Vic2NyaXB0aW9uKTtcclxuICB9XHJcblxyXG4gIHByaXZhdGUgYnVpbGRGaXJtd2FyZURldmljZU1hcChlbnRpdHk6IGFueSwgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQpOiBGaXJtd2FyZURldmljZU1hcCB7XHJcbiAgICBjb25zdCBkZXZpY2VNYXA6IEZpcm13YXJlRGV2aWNlTWFwID0ge307XHJcbiAgICBjb25zdCBlbnRpdHlEZXZpY2VzOiBhbnlbXSA9IFtcclxuICAgICAgLi4uKEFycmF5LmlzQXJyYXkoZW50aXR5Py5kZXZpY2VzKSA/IGVudGl0eS5kZXZpY2VzIDogW10pLFxyXG4gICAgICAuLi4oQXJyYXkuaXNBcnJheShlbnRpdHk/LndlYmV4TWlncmF0aW9uRGV2aWNlcykgPyBlbnRpdHkud2ViZXhNaWdyYXRpb25EZXZpY2VzIDogW10pLFxyXG4gICAgXTtcclxuICAgIGNvbnN0IHNvdXJjZURldmljZXMgPSBlbnRpdHlEZXZpY2VzLmxlbmd0aCA/IGVudGl0eURldmljZXMgOiBbZGV2aWNlXTtcclxuICAgIGNvbnN0IGN1Y21JZCA9IE51bWJlcihkZXZpY2UuY3VjbUlkKSB8fCAwO1xyXG5cclxuICAgIHNvdXJjZURldmljZXMuZm9yRWFjaCgocmF3RGV2aWNlOiBhbnkpID0+IHtcclxuICAgICAgY29uc3QgbmFtZTogc3RyaW5nID0gcmF3RGV2aWNlPy5uYW1lIHx8IGRldmljZS5uYW1lIHx8ICcnO1xyXG4gICAgICBpZiAoIW5hbWUpIHtcclxuICAgICAgICByZXR1cm47XHJcbiAgICAgIH1cclxuICAgICAgY29uc3QgZGV2aWNlTmFtZSA9IG5hbWUuaW5jbHVkZXMoJ1NFUCcpID8gbmFtZSA6IGBTRVAke25hbWV9YDtcclxuICAgICAgaWYgKCFkZXZpY2VNYXBbY3VjbUlkXSkge1xyXG4gICAgICAgIGRldmljZU1hcFtjdWNtSWRdID0ge307XHJcbiAgICAgIH1cclxuICAgICAgaWYgKCFkZXZpY2VNYXBbY3VjbUlkXVsnUEVSU09OJ10pIHtcclxuICAgICAgICBkZXZpY2VNYXBbY3VjbUlkXVsnUEVSU09OJ10gPSBbXTtcclxuICAgICAgfVxyXG4gICAgICBkZXZpY2VNYXBbY3VjbUlkXVsnUEVSU09OJ10ucHVzaChkZXZpY2VOYW1lKTtcclxuICAgIH0pO1xyXG5cclxuICAgIHJldHVybiBkZXZpY2VNYXA7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIG5vcm1hbGl6ZU1pZ3JhdGlvblN0YXR1cyhzdGF0dXM6IHN0cmluZyB8IG51bGwgfCB1bmRlZmluZWQpOiBzdHJpbmcge1xyXG4gICAgcmV0dXJuIChzdGF0dXMgfHwgJycpLnRvVXBwZXJDYXNlKCk7XHJcbiAgfVxyXG5cclxuICBwcml2YXRlIGlzVGVybWluYWxNaWdyYXRpb25TdGF0dXMoc3RhdHVzOiBzdHJpbmcgfCBudWxsIHwgdW5kZWZpbmVkKTogYm9vbGVhbiB7XHJcbiAgICBjb25zdCBub3JtYWxpemVkID0gdGhpcy5ub3JtYWxpemVNaWdyYXRpb25TdGF0dXMoc3RhdHVzKTtcclxuICAgIHJldHVybiBub3JtYWxpemVkID09PSAnQ09NUExFVEVEJyB8fCBub3JtYWxpemVkID09PSAnRkFJTEVEJyB8fCBub3JtYWxpemVkID09PSAnRVJST1InIHx8IG5vcm1hbGl6ZWQgPT09ICdDT01QTEVURURfV0lUSF9FUlJPUlMnO1xyXG4gIH1cclxuXHJcbiAgcHJpdmF0ZSBmZXRjaFdvcmtzcGFjZXMoKTogdm9pZCB7XHJcbiAgICB0aGlzLmlzTG9hZGluZyA9IHRydWU7XHJcbiAgICB0aGlzLndvcmtzcGFjZXNTZXJ2aWNlLmZldGNoV29ya3NwYWNlcyh0aGlzLmN1c3RvbWVySWQsIHRoaXMucGFnZVNpemUsIHRoaXMucGFnZUluZGV4KS5zdWJzY3JpYmUoe1xyXG4gICAgICBuZXh0OiAoeyB3b3Jrc3BhY2VzLCB0b3RhbCB9KSA9PiB7XHJcbiAgICAgICAgdGhpcy53b3Jrc3BhY2VzID0gd29ya3NwYWNlcztcclxuICAgICAgICB0aGlzLnRvdGFsID0gdG90YWw7XHJcbiAgICAgICAgdGhpcy5pc0xvYWRpbmcgPSBmYWxzZTtcclxuICAgICAgfSxcclxuICAgICAgZXJyb3I6ICgpID0+IHtcclxuICAgICAgICB0aGlzLndvcmtzcGFjZXMgPSBbXTtcclxuICAgICAgICB0aGlzLnRvdGFsID0gMDtcclxuICAgICAgICB0aGlzLmlzTG9hZGluZyA9IGZhbHNlO1xyXG4gICAgICB9LFxyXG4gICAgfSk7XHJcbiAgfVxyXG59XHJcbiIsIjxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzXCI+XHJcbiAgPG5nLWNvbnRhaW5lciAqbmdJZj1cInZpZXcgPT09ICdsaXN0JzsgZWxzZSBkZXRhaWxWaWV3XCI+XHJcbiAgICA8aGVhZGVyIGNsYXNzPVwidGstd29ya3NwYWNlc19faGVhZGVyXCI+XHJcbiAgICAgIDxoMSBjbGFzcz1cInRrLXdvcmtzcGFjZXNfX3RpdGxlXCI+V29ya3NwYWNlczwvaDE+XHJcbiAgICA8L2hlYWRlcj5cclxuXHJcbiAgICA8bmF2IGNsYXNzPVwidGstd29ya3NwYWNlc19fdGFic1wiPlxyXG4gICAgICA8YnV0dG9uXHJcbiAgICAgICAgdHlwZT1cImJ1dHRvblwiXHJcbiAgICAgICAgKm5nRm9yPVwibGV0IHRhYiBvZiB0YWJzXCJcclxuICAgICAgICBjbGFzcz1cInRrLXdvcmtzcGFjZXNfX3RhYlwiXHJcbiAgICAgICAgW2NsYXNzLnRrLXdvcmtzcGFjZXNfX3RhYi0tYWN0aXZlXT1cImFjdGl2ZVRhYiA9PT0gdGFiLmlkXCJcclxuICAgICAgICAoY2xpY2spPVwic2VsZWN0VGFiKHRhYi5pZClcIj5cclxuICAgICAgICA8aW1nIGNsYXNzPVwidGstd29ya3NwYWNlc19fdGFiLWljb25cIiBbc3JjXT1cInRhYi5pY29uXCIgYWx0PVwiXCIgLz5cclxuICAgICAgICB7eyB0YWIubGFiZWwgfX1cclxuICAgICAgPC9idXR0b24+XHJcbiAgICA8L25hdj5cclxuXHJcbiAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiYWN0aXZlVGFiID09PSAnd29ya3NwYWNlcyc7IGVsc2UgcGxhY2Vob2xkZXJcIj5cclxuICAgICAgPGFwcC1sb2FkZXIgKm5nSWY9XCJpc0xvYWRpbmdcIj48L2FwcC1sb2FkZXI+XHJcblxyXG4gICAgICA8dGstd29ya3NwYWNlcy1maWx0ZXJzXHJcbiAgICAgICAgW3Jlc3VsdENvdW50XT1cInRvdGFsXCJcclxuICAgICAgICBbdHlwZU9wdGlvbnNdPVwidHlwZU9wdGlvbnNcIlxyXG4gICAgICAgIFtsb2NhdGlvbk9wdGlvbnNdPVwibG9jYXRpb25PcHRpb25zXCJcclxuICAgICAgICAoc2VhcmNoQ2hhbmdlKT1cIm9uU2VhcmNoQ2hhbmdlKCRldmVudClcIlxyXG4gICAgICAgICh0eXBlQ2hhbmdlKT1cIm9uVHlwZUZpbHRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAobG9jYXRpb25DaGFuZ2UpPVwib25Mb2NhdGlvbkZpbHRlckNoYW5nZSgkZXZlbnQpXCJcclxuICAgICAgICAoYWRkV29ya3NwYWNlKT1cImFkZFdvcmtzcGFjZS5lbWl0KClcIj5cclxuICAgICAgPC90ay13b3Jrc3BhY2VzLWZpbHRlcnM+XHJcblxyXG4gICAgICA8dGstd29ya3NwYWNlcy10YWJsZVxyXG4gICAgICAgIFt3b3Jrc3BhY2VzXT1cImZpbHRlcmVkV29ya3NwYWNlc1wiXHJcbiAgICAgICAgW3RvdGFsXT1cInRvdGFsXCJcclxuICAgICAgICBbcGFnZUluZGV4XT1cInBhZ2VJbmRleFwiXHJcbiAgICAgICAgW3BhZ2VTaXplXT1cInBhZ2VTaXplXCJcclxuICAgICAgICBbcGVuZGluZ1dvcmtzcGFjZUlkc109XCJwZW5kaW5nV29ya3NwYWNlSWRzXCJcclxuICAgICAgICAob3BlbldvcmtzcGFjZSk9XCJvbk9wZW5Xb3Jrc3BhY2UoJGV2ZW50KVwiXHJcbiAgICAgICAgKGxpY2Vuc2VXaXRoSHlicmlkKT1cIm9uTW92ZVRvTVQoJGV2ZW50KVwiXHJcbiAgICAgICAgKG1pZ3JhdGVUb01UKT1cIm9uTW92ZVRvTVQoJGV2ZW50KVwiXHJcbiAgICAgICAgKGVuYWJsZVdlYmV4Q2FsbGluZyk9XCJvbkVuYWJsZVdlYmV4Q2FsbGluZygkZXZlbnQpXCJcclxuICAgICAgICAobWlncmF0ZVRvVUNNKT1cIm9uTWlncmF0ZVRvVUNNKCRldmVudClcIlxyXG4gICAgICAgIChhZGREZXZpY2UpPVwiYWRkRGV2aWNlLmVtaXQoJGV2ZW50KVwiXHJcbiAgICAgICAgKHBhZ2VDaGFuZ2UpPVwib25QYWdlQ2hhbmdlKCRldmVudClcIj5cclxuICAgICAgPC90ay13b3Jrc3BhY2VzLXRhYmxlPlxyXG4gICAgPC9uZy1jb250YWluZXI+XHJcblxyXG4gICAgPG5nLXRlbXBsYXRlICNwbGFjZWhvbGRlcj5cclxuICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZXNfX3BsYWNlaG9sZGVyXCI+VGhpcyBzZWN0aW9uIGlzbid0IGF2YWlsYWJsZSBpbiB0aGlzIHdpZGdldCB5ZXQuPC9kaXY+XHJcbiAgICA8L25nLXRlbXBsYXRlPlxyXG4gIDwvbmctY29udGFpbmVyPlxyXG5cclxuICA8bmctdGVtcGxhdGUgI2RldGFpbFZpZXc+XHJcbiAgICA8dGstd29ya3NwYWNlLWRldGFpbFxyXG4gICAgICAqbmdJZj1cInNlbGVjdGVkV29ya3NwYWNlXCJcclxuICAgICAgW3dvcmtzcGFjZV09XCJzZWxlY3RlZFdvcmtzcGFjZVwiXHJcbiAgICAgIChiYWNrKT1cIm9uQmFja1RvTGlzdCgpXCI+XHJcbiAgICA8L3RrLXdvcmtzcGFjZS1kZXRhaWw+XHJcbiAgPC9uZy10ZW1wbGF0ZT5cclxuPC9kaXY+XHJcbiJdfQ==
|
|
@@ -7,6 +7,7 @@ import { WorkspacesComponent } from './workspaces.component';
|
|
|
7
7
|
import { WorkspacesFiltersComponent } from './components/workspaces-filters/workspaces-filters.component';
|
|
8
8
|
import { WorkspacesTableComponent } from './components/workspaces-table/workspaces-table.component';
|
|
9
9
|
import { WorkspaceDetailComponent } from './components/workspace-detail/workspace-detail.component';
|
|
10
|
+
import { WorkspaceConfirmDialogComponent } from './components/workspace-confirm-dialog/workspace-confirm-dialog.component';
|
|
10
11
|
import { AppLoaderComponent } from './utils/app-loader/app-loader';
|
|
11
12
|
import * as i0 from "@angular/core";
|
|
12
13
|
export class WorkspacesModule {
|
|
@@ -16,6 +17,7 @@ WorkspacesModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", versio
|
|
|
16
17
|
WorkspacesFiltersComponent,
|
|
17
18
|
WorkspacesTableComponent,
|
|
18
19
|
WorkspaceDetailComponent,
|
|
20
|
+
WorkspaceConfirmDialogComponent,
|
|
19
21
|
AppLoaderComponent], imports: [CommonModule,
|
|
20
22
|
HttpClientModule,
|
|
21
23
|
FormsModule,
|
|
@@ -32,6 +34,7 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
32
34
|
WorkspacesFiltersComponent,
|
|
33
35
|
WorkspacesTableComponent,
|
|
34
36
|
WorkspaceDetailComponent,
|
|
37
|
+
WorkspaceConfirmDialogComponent,
|
|
35
38
|
AppLoaderComponent,
|
|
36
39
|
],
|
|
37
40
|
imports: [
|
|
@@ -45,4 +48,4 @@ i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImpo
|
|
|
45
48
|
],
|
|
46
49
|
}]
|
|
47
50
|
}] });
|
|
48
|
-
//# sourceMappingURL=data:application/json;base64,
|
|
51
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy5tb2R1bGUuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvd29ya3NwYWNlcy5tb2R1bGUudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFlBQVksRUFBRSxNQUFNLGlCQUFpQixDQUFDO0FBQy9DLE9BQU8sRUFBRSxRQUFRLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFDekMsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sc0JBQXNCLENBQUM7QUFDeEQsT0FBTyxFQUFFLFdBQVcsRUFBRSxNQUFNLGdCQUFnQixDQUFDO0FBQzdDLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSxtQkFBbUIsQ0FBQztBQUNuRCxPQUFPLEVBQUUsbUJBQW1CLEVBQUUsTUFBTSx3QkFBd0IsQ0FBQztBQUM3RCxPQUFPLEVBQUUsMEJBQTBCLEVBQUUsTUFBTSw4REFBOEQsQ0FBQztBQUMxRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsd0JBQXdCLEVBQUUsTUFBTSwwREFBMEQsQ0FBQztBQUNwRyxPQUFPLEVBQUUsK0JBQStCLEVBQUUsTUFBTSwwRUFBMEUsQ0FBQztBQUMzSCxPQUFPLEVBQUUsa0JBQWtCLEVBQUUsTUFBTSwrQkFBK0IsQ0FBQzs7QUFxQm5FLE1BQU0sT0FBTyxnQkFBZ0I7OzhHQUFoQixnQkFBZ0I7K0dBQWhCLGdCQUFnQixpQkFqQnpCLG1CQUFtQjtRQUNuQiwwQkFBMEI7UUFDMUIsd0JBQXdCO1FBQ3hCLHdCQUF3QjtRQUN4QiwrQkFBK0I7UUFDL0Isa0JBQWtCLGFBR2xCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWMsYUFHZCxtQkFBbUI7K0dBR1YsZ0JBQWdCLFlBVHpCLFlBQVk7UUFDWixnQkFBZ0I7UUFDaEIsV0FBVztRQUNYLGNBQWM7NEZBTUwsZ0JBQWdCO2tCQW5CNUIsUUFBUTttQkFBQztvQkFDUixZQUFZLEVBQUU7d0JBQ1osbUJBQW1CO3dCQUNuQiwwQkFBMEI7d0JBQzFCLHdCQUF3Qjt3QkFDeEIsd0JBQXdCO3dCQUN4QiwrQkFBK0I7d0JBQy9CLGtCQUFrQjtxQkFDbkI7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLFlBQVk7d0JBQ1osZ0JBQWdCO3dCQUNoQixXQUFXO3dCQUNYLGNBQWM7cUJBQ2Y7b0JBQ0QsT0FBTyxFQUFFO3dCQUNQLG1CQUFtQjtxQkFDcEI7aUJBQ0YiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBDb21tb25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9jb21tb24nO1xyXG5pbXBvcnQgeyBOZ01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xyXG5pbXBvcnQgeyBIdHRwQ2xpZW50TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29tbW9uL2h0dHAnO1xyXG5pbXBvcnQgeyBGb3Jtc01vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL2Zvcm1zJztcclxuaW1wb3J0IHsgTWF0ZXJpYWxNb2R1bGUgfSBmcm9tICcuL21hdGVyaWFsLm1vZHVsZSc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZXNDb21wb25lbnQgfSBmcm9tICcuL3dvcmtzcGFjZXMuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya3NwYWNlc0ZpbHRlcnNDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya3NwYWNlcy1maWx0ZXJzL3dvcmtzcGFjZXMtZmlsdGVycy5jb21wb25lbnQnO1xyXG5pbXBvcnQgeyBXb3Jrc3BhY2VzVGFibGVDb21wb25lbnQgfSBmcm9tICcuL2NvbXBvbmVudHMvd29ya3NwYWNlcy10YWJsZS93b3Jrc3BhY2VzLXRhYmxlLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IFdvcmtzcGFjZURldGFpbENvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtZGV0YWlsL3dvcmtzcGFjZS1kZXRhaWwuY29tcG9uZW50JztcclxuaW1wb3J0IHsgV29ya3NwYWNlQ29uZmlybURpYWxvZ0NvbXBvbmVudCB9IGZyb20gJy4vY29tcG9uZW50cy93b3Jrc3BhY2UtY29uZmlybS1kaWFsb2cvd29ya3NwYWNlLWNvbmZpcm0tZGlhbG9nLmNvbXBvbmVudCc7XHJcbmltcG9ydCB7IEFwcExvYWRlckNvbXBvbmVudCB9IGZyb20gJy4vdXRpbHMvYXBwLWxvYWRlci9hcHAtbG9hZGVyJztcclxuXHJcbkBOZ01vZHVsZSh7XHJcbiAgZGVjbGFyYXRpb25zOiBbXHJcbiAgICBXb3Jrc3BhY2VzQ29tcG9uZW50LFxyXG4gICAgV29ya3NwYWNlc0ZpbHRlcnNDb21wb25lbnQsXHJcbiAgICBXb3Jrc3BhY2VzVGFibGVDb21wb25lbnQsXHJcbiAgICBXb3Jrc3BhY2VEZXRhaWxDb21wb25lbnQsXHJcbiAgICBXb3Jrc3BhY2VDb25maXJtRGlhbG9nQ29tcG9uZW50LFxyXG4gICAgQXBwTG9hZGVyQ29tcG9uZW50LFxyXG4gIF0sXHJcbiAgaW1wb3J0czogW1xyXG4gICAgQ29tbW9uTW9kdWxlLFxyXG4gICAgSHR0cENsaWVudE1vZHVsZSxcclxuICAgIEZvcm1zTW9kdWxlLFxyXG4gICAgTWF0ZXJpYWxNb2R1bGUsXHJcbiAgXSxcclxuICBleHBvcnRzOiBbXHJcbiAgICBXb3Jrc3BhY2VzQ29tcG9uZW50LFxyXG4gIF0sXHJcbn0pXHJcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VzTW9kdWxlIHsgfVxyXG4iXX0=
|