@tuki-io/tuki-widgets 0.0.219-dev.8 → 0.0.219
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/di2mt/api/api.endpoints.d.ts +3 -0
- package/esm2020/di2mt/api/api.endpoints.mjs +4 -1
- package/esm2020/locations/public-api.mjs +8 -0
- package/esm2020/locations/src/app.constants.mjs +6 -0
- package/esm2020/locations/src/locations.component.mjs +215 -0
- package/esm2020/locations/src/locations.module.mjs +39 -0
- package/esm2020/locations/src/material.module.mjs +48 -0
- package/esm2020/locations/src/services/api.service.mjs +67 -0
- package/esm2020/locations/src/services/locations.service.mjs +51 -0
- package/esm2020/locations/src/types/location.mjs +2 -0
- package/esm2020/locations/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/locations/tuki-io-tuki-widgets-locations.mjs +5 -0
- package/esm2020/meetings/public-api.mjs +8 -0
- package/esm2020/meetings/src/app.constants.mjs +9 -0
- package/esm2020/meetings/src/components/live-meetings/live-meeting/live-meeting.component.mjs +107 -0
- package/esm2020/meetings/src/components/live-meetings/live-meetings.component.mjs +98 -0
- package/esm2020/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.mjs +110 -0
- package/esm2020/meetings/src/components/meeting-spaces/meeting-spaces.component.mjs +65 -0
- package/esm2020/meetings/src/material.module.mjs +76 -0
- package/esm2020/meetings/src/meetings.component.mjs +65 -0
- package/esm2020/meetings/src/meetings.module.mjs +51 -0
- package/esm2020/meetings/src/services/api.service.mjs +67 -0
- package/esm2020/meetings/src/services/live-meetings.service.mjs +178 -0
- package/esm2020/meetings/src/services/meeting-spaces.service.mjs +102 -0
- package/esm2020/meetings/src/types/live-meeting.mjs +2 -0
- package/esm2020/meetings/src/types/meeting-space.mjs +2 -0
- package/esm2020/meetings/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/meetings/tuki-io-tuki-widgets-meetings.mjs +5 -0
- package/esm2020/shared/public-api.mjs +4 -0
- package/esm2020/shared/src/ui/material.module.mjs +188 -0
- package/esm2020/shared/src/ui/shared.module.mjs +36 -0
- package/esm2020/shared/src/ui/tk-page-section/tk-page-section.component.mjs +13 -0
- package/esm2020/shared/src/ui/tk-page-section-row/tk-page-section-row.component.mjs +13 -0
- package/esm2020/shared/src/ui/ui.module.mjs +37 -0
- package/esm2020/shared/tuki-io-tuki-widgets-shared.mjs +5 -0
- package/esm2020/user-creation/src/utils/device-default-prefix.mjs +19 -2
- package/esm2020/user-creation/src/utils/device-name-dynamic-tokens.mjs +4 -0
- package/esm2020/user-creation/src/utils/parse-device-name-rule.mjs +6 -3
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.mjs +60 -13
- package/esm2020/user-creation/src/widgets/user-creation-wizard/components/user-template-step/user-template-step.component.mjs +2 -1
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.component.mjs +8 -6
- package/esm2020/user-creation/src/widgets/user-creation-wizard/user-creation-wizard.service.mjs +13 -9
- package/esm2020/user-device-manage/src/classes/simplified-user.mjs +1 -1
- package/esm2020/user-device-manage/src/user-device-manage.module.mjs +1 -4
- package/esm2020/user-manage/src/app.constants.mjs +7 -1
- package/esm2020/user-manage/src/classes/simplified-user.mjs +5 -3
- package/esm2020/user-manage/src/device-list/device-list.component.mjs +7 -4
- package/esm2020/user-manage/src/device-list/device-row/device-row.component.mjs +6 -3
- package/esm2020/user-manage/src/material.module.mjs +14 -7
- package/esm2020/user-manage/src/services/dcp-api.service.mjs +79 -0
- package/esm2020/user-manage/src/services/user.service.mjs +65 -19
- package/esm2020/user-manage/src/user-calling/user-calling.component.mjs +12 -7
- package/esm2020/user-manage/src/user-manage-widget.component.mjs +55 -20
- package/esm2020/user-manage/src/user-manage.module.mjs +10 -3
- package/esm2020/users-list/src/app.constants.mjs +2 -1
- package/esm2020/users-list/src/classes/simlified-user.mjs +1 -1
- package/esm2020/users-list/src/classes/user-list.mjs +2 -1
- package/esm2020/users-list/src/components/table-toolbar/table-toolbar.component.mjs +3 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.mjs +14 -3
- package/esm2020/users-list/src/move-user-wizard/move-user-wizard.component.mjs +5 -3
- package/esm2020/users-list/src/users-list.component.mjs +98 -15
- package/esm2020/workspaces/public-api.mjs +8 -0
- package/esm2020/workspaces/src/app.constants.mjs +15 -0
- package/esm2020/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.mjs +32 -0
- package/esm2020/workspaces/src/components/workspace-detail/workspace-detail.component.mjs +50 -0
- package/esm2020/workspaces/src/components/workspaces-filters/workspaces-filters.component.mjs +56 -0
- package/esm2020/workspaces/src/components/workspaces-table/workspaces-table.component.mjs +114 -0
- package/esm2020/workspaces/src/material.module.mjs +83 -0
- package/esm2020/workspaces/src/services/api-webex.service.mjs +14 -0
- package/esm2020/workspaces/src/services/api.service.mjs +67 -0
- package/esm2020/workspaces/src/services/workspace-detail.service.mjs +54 -0
- package/esm2020/workspaces/src/services/workspaces-migration.service.mjs +59 -0
- package/esm2020/workspaces/src/services/workspaces.service.mjs +90 -0
- package/esm2020/workspaces/src/types/workspace.mjs +4 -0
- package/esm2020/workspaces/src/utils/app-loader/app-loader.mjs +14 -0
- package/esm2020/workspaces/src/utils/device-icon.mjs +13 -0
- package/esm2020/workspaces/src/workspaces.component.mjs +295 -0
- package/esm2020/workspaces/src/workspaces.module.mjs +51 -0
- package/esm2020/workspaces/tuki-io-tuki-widgets-workspaces.mjs +5 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs +3 -0
- package/fesm2015/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs +439 -0
- package/fesm2015/tuki-io-tuki-widgets-locations.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-meetings.mjs +894 -0
- package/fesm2015/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-shared.mjs +280 -0
- package/fesm2015/tuki-io-tuki-widgets-shared.mjs.map +1 -0
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs +111 -32
- package/fesm2015/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
- package/fesm2015/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs +243 -56
- package/fesm2015/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs +119 -20
- package/fesm2015/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs +958 -0
- package/fesm2015/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs +3 -0
- package/fesm2020/tuki-io-tuki-widgets-di2mt.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs +433 -0
- package/fesm2020/tuki-io-tuki-widgets-locations.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-meetings.mjs +902 -0
- package/fesm2020/tuki-io-tuki-widgets-meetings.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-shared.mjs +280 -0
- package/fesm2020/tuki-io-tuki-widgets-shared.mjs.map +1 -0
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs +104 -28
- package/fesm2020/tuki-io-tuki-widgets-user-creation.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs +0 -13
- package/fesm2020/tuki-io-tuki-widgets-user-device-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs +239 -55
- package/fesm2020/tuki-io-tuki-widgets-user-manage.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs +118 -20
- package/fesm2020/tuki-io-tuki-widgets-users-list.mjs.map +1 -1
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs +958 -0
- package/fesm2020/tuki-io-tuki-widgets-workspaces.mjs.map +1 -0
- package/locations/index.d.ts +5 -0
- package/locations/public-api.d.ts +2 -0
- package/locations/src/app.constants.d.ts +5 -0
- package/locations/src/locations.component.d.ts +68 -0
- package/locations/src/locations.module.d.ts +12 -0
- package/locations/src/material.module.d.ts +11 -0
- package/locations/src/services/api.service.d.ts +18 -0
- package/locations/src/services/locations.service.d.ts +15 -0
- package/locations/src/types/location.d.ts +17 -0
- package/locations/src/utils/app-loader/app-loader.d.ts +6 -0
- package/meetings/index.d.ts +5 -0
- package/meetings/public-api.d.ts +2 -0
- package/meetings/src/app.constants.d.ts +8 -0
- package/meetings/src/components/live-meetings/live-meeting/live-meeting.component.d.ts +34 -0
- package/meetings/src/components/live-meetings/live-meetings.component.d.ts +43 -0
- package/meetings/src/components/meeting-spaces/meeting-space/meeting-space.component.d.ts +39 -0
- package/meetings/src/components/meeting-spaces/meeting-spaces.component.d.ts +27 -0
- package/meetings/src/material.module.d.ts +15 -0
- package/meetings/src/meetings.component.d.ts +29 -0
- package/meetings/src/meetings.module.d.ts +16 -0
- package/meetings/src/services/api.service.d.ts +18 -0
- package/meetings/src/services/live-meetings.service.d.ts +9 -0
- package/meetings/src/services/meeting-spaces.service.d.ts +16 -0
- package/meetings/src/types/live-meeting.d.ts +71 -0
- package/meetings/src/types/meeting-space.d.ts +52 -0
- package/meetings/src/utils/app-loader/app-loader.d.ts +6 -0
- package/package.json +33 -1
- package/shared/index.d.ts +5 -0
- package/shared/public-api.d.ts +3 -0
- package/shared/src/ui/material.module.d.ts +28 -0
- package/shared/src/ui/shared.module.d.ts +10 -0
- package/{user-device-manage/src/shared/tk-page-section/page-section.component.d.ts → shared/src/ui/tk-page-section/tk-page-section.component.d.ts} +1 -1
- package/shared/src/ui/tk-page-section-row/tk-page-section-row.component.d.ts +6 -0
- package/shared/src/ui/ui.module.d.ts +11 -0
- package/user-creation/src/utils/device-default-prefix.d.ts +7 -2
- package/user-creation/src/utils/device-name-dynamic-tokens.d.ts +1 -0
- package/user-creation/src/utils/parse-device-name-rule.d.ts +1 -0
- package/user-creation/src/widgets/user-creation-wizard/components/user-details-step/user-details-step.component.d.ts +2 -0
- package/user-device-manage/src/classes/simplified-user.d.ts +1 -1
- package/user-device-manage/src/user-device-manage.module.d.ts +9 -10
- package/user-manage/src/app.constants.d.ts +6 -0
- package/user-manage/src/classes/simplified-user.d.ts +11 -1
- package/user-manage/src/device-list/device-list.component.d.ts +2 -0
- package/user-manage/src/material.module.d.ts +2 -1
- package/user-manage/src/services/dcp-api.service.d.ts +21 -0
- package/user-manage/src/services/user.service.d.ts +8 -1
- package/user-manage/src/user-calling/user-calling.component.d.ts +3 -2
- package/user-manage/src/user-manage-widget.component.d.ts +10 -2
- package/user-manage/src/user-manage.module.d.ts +2 -1
- package/users-list/src/app.constants.d.ts +1 -0
- package/users-list/src/classes/simlified-user.d.ts +1 -1
- package/users-list/src/classes/user-list.d.ts +4 -0
- package/users-list/src/move-user-wizard/move-user-stepper/move-user-stepper.component.d.ts +3 -1
- package/users-list/src/move-user-wizard/move-user-wizard.component.d.ts +2 -1
- package/users-list/src/users-list.component.d.ts +6 -1
- package/workspaces/index.d.ts +5 -0
- package/workspaces/public-api.d.ts +2 -0
- package/workspaces/src/app.constants.d.ts +14 -0
- package/workspaces/src/components/workspace-confirm-dialog/workspace-confirm-dialog.component.d.ts +20 -0
- package/workspaces/src/components/workspace-detail/workspace-detail.component.d.ts +23 -0
- package/workspaces/src/components/workspaces-filters/workspaces-filters.component.d.ts +20 -0
- package/workspaces/src/components/workspaces-table/workspaces-table.component.d.ts +39 -0
- package/workspaces/src/material.module.d.ts +16 -0
- package/workspaces/src/services/api-webex.service.d.ts +6 -0
- package/workspaces/src/services/api.service.d.ts +18 -0
- package/workspaces/src/services/workspace-detail.service.d.ts +8 -0
- package/workspaces/src/services/workspaces-migration.service.d.ts +18 -0
- package/workspaces/src/services/workspaces.service.d.ts +11 -0
- package/workspaces/src/types/workspace.d.ts +161 -0
- package/workspaces/src/utils/app-loader/app-loader.d.ts +6 -0
- package/workspaces/src/utils/device-icon.d.ts +1 -0
- package/workspaces/src/workspaces.component.d.ts +71 -0
- package/workspaces/src/workspaces.module.d.ts +16 -0
- package/esm2020/user-device-manage/src/shared/tk-page-section/page-section.component.mjs +0 -13
|
@@ -0,0 +1,114 @@
|
|
|
1
|
+
import { Component, EventEmitter, Input, Output } from '@angular/core';
|
|
2
|
+
import { getDeviceIcon as resolveDeviceIcon } from '../../utils/device-icon';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common";
|
|
5
|
+
import * as i2 from "@angular/material/icon";
|
|
6
|
+
import * as i3 from "@angular/material/progress-spinner";
|
|
7
|
+
import * as i4 from "@angular/material/menu";
|
|
8
|
+
import * as i5 from "@angular/material/paginator";
|
|
9
|
+
import * as i6 from "@angular/material/tooltip";
|
|
10
|
+
export class WorkspacesTableComponent {
|
|
11
|
+
constructor() {
|
|
12
|
+
this.workspaces = [];
|
|
13
|
+
this.total = 0;
|
|
14
|
+
this.pageIndex = 0;
|
|
15
|
+
this.pageSize = 10;
|
|
16
|
+
this.pageSizeOptions = [10, 25, 50, 100];
|
|
17
|
+
this.pendingWorkspaceIds = new Set();
|
|
18
|
+
this.openWorkspace = new EventEmitter();
|
|
19
|
+
this.licenseWithHybrid = new EventEmitter();
|
|
20
|
+
this.migrateToMT = new EventEmitter();
|
|
21
|
+
this.enableWebexCalling = new EventEmitter();
|
|
22
|
+
this.migrateToUCM = new EventEmitter();
|
|
23
|
+
this.addDevice = new EventEmitter();
|
|
24
|
+
this.pageChange = new EventEmitter();
|
|
25
|
+
this.selectedIds = new Set();
|
|
26
|
+
}
|
|
27
|
+
get allSelected() {
|
|
28
|
+
return this.workspaces.length > 0 && this.selectedIds.size === this.workspaces.length;
|
|
29
|
+
}
|
|
30
|
+
get someSelected() {
|
|
31
|
+
return this.selectedIds.size > 0 && !this.allSelected;
|
|
32
|
+
}
|
|
33
|
+
toggleAll() {
|
|
34
|
+
this.selectedIds = this.allSelected ? new Set() : new Set(this.workspaces.map(workspace => workspace.id));
|
|
35
|
+
}
|
|
36
|
+
toggleRow(workspaceId) {
|
|
37
|
+
const nextSelection = new Set(this.selectedIds);
|
|
38
|
+
if (nextSelection.has(workspaceId)) {
|
|
39
|
+
nextSelection.delete(workspaceId);
|
|
40
|
+
}
|
|
41
|
+
else {
|
|
42
|
+
nextSelection.add(workspaceId);
|
|
43
|
+
}
|
|
44
|
+
this.selectedIds = nextSelection;
|
|
45
|
+
}
|
|
46
|
+
isSelected(workspaceId) {
|
|
47
|
+
return this.selectedIds.has(workspaceId);
|
|
48
|
+
}
|
|
49
|
+
onOpenWorkspace(workspace) {
|
|
50
|
+
this.openWorkspace.emit(workspace.id);
|
|
51
|
+
}
|
|
52
|
+
onAddDevice(workspace, event) {
|
|
53
|
+
event.stopPropagation();
|
|
54
|
+
this.addDevice.emit(workspace.id);
|
|
55
|
+
}
|
|
56
|
+
onPage(event) {
|
|
57
|
+
this.selectedIds = new Set();
|
|
58
|
+
this.pageChange.emit({ pageIndex: event.pageIndex, pageSize: event.pageSize });
|
|
59
|
+
}
|
|
60
|
+
getDeviceIcon(model) {
|
|
61
|
+
return resolveDeviceIcon(model);
|
|
62
|
+
}
|
|
63
|
+
isPending(workspaceId) {
|
|
64
|
+
return this.pendingWorkspaceIds.has(workspaceId);
|
|
65
|
+
}
|
|
66
|
+
isMoveToMTDisabled(workspace) {
|
|
67
|
+
if (workspace.status !== 'active') {
|
|
68
|
+
return true;
|
|
69
|
+
}
|
|
70
|
+
return !workspace.isHybrid && !!workspace.device.webexUUID;
|
|
71
|
+
}
|
|
72
|
+
isEnableWebexCallingDisabled(workspace) {
|
|
73
|
+
if (workspace.status !== 'inactive') {
|
|
74
|
+
return true;
|
|
75
|
+
}
|
|
76
|
+
return !workspace.isHybrid && !workspace.device.webexUUID;
|
|
77
|
+
}
|
|
78
|
+
isMigrateToUCMDisabled(workspace) {
|
|
79
|
+
return !workspace.device.webexUUID || workspace.status !== 'active';
|
|
80
|
+
}
|
|
81
|
+
}
|
|
82
|
+
WorkspacesTableComponent.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesTableComponent, deps: [], target: i0.ɵɵFactoryTarget.Component });
|
|
83
|
+
WorkspacesTableComponent.ɵcmp = i0.ɵɵngDeclareComponent({ minVersion: "14.0.0", version: "15.2.10", type: WorkspacesTableComponent, selector: "tk-workspaces-table", inputs: { workspaces: "workspaces", total: "total", pageIndex: "pageIndex", pageSize: "pageSize", pageSizeOptions: "pageSizeOptions", pendingWorkspaceIds: "pendingWorkspaceIds" }, outputs: { openWorkspace: "openWorkspace", licenseWithHybrid: "licenseWithHybrid", migrateToMT: "migrateToMT", enableWebexCalling: "enableWebexCalling", migrateToUCM: "migrateToUCM", addDevice: "addDevice", pageChange: "pageChange" }, ngImport: i0, template: "<div class=\"tk-workspaces-table__bulk-bar\">Select one or more workspaces for bulk actions</div>\n\n<div class=\"tk-workspaces-table__wrapper\">\n <table class=\"tk-workspaces-table__table\">\n <thead>\n <tr>\n <th class=\"tk-workspaces-table__checkbox-cell\">\n <input type=\"checkbox\" [checked]=\"allSelected\" [indeterminate]=\"someSelected\" (change)=\"toggleAll()\" />\n </th>\n <th>Name</th>\n <th>Devices</th>\n <th>Scheduling</th>\n <th>Calling</th>\n <th>Provisioning Type</th>\n <th>Status</th>\n <th class=\"tk-workspaces-table__settings-cell\">\n <mat-icon class=\"tk-workspaces-table__settings-icon\">settings</mat-icon>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let workspace of workspaces\"\n [class.tk-workspaces-table__row--selected]=\"isSelected(workspace.id)\">\n <td class=\"tk-workspaces-table__checkbox-cell\">\n <input type=\"checkbox\" [checked]=\"isSelected(workspace.id)\" (change)=\"toggleRow(workspace.id)\" />\n </td>\n <td class=\"tk-workspaces-table__name-cell\" (click)=\"onOpenWorkspace(workspace)\">\n <div class=\"tk-workspaces-table__name-wrapper\">\n <span class=\"tk-workspaces-table__name-icon\">\n <img src=\"assets/icons/device-in-room-regular.svg\" alt=\"\" />\n </span>\n <div class=\"tk-workspaces-table__name-info\">\n <a href=\"javascript:void(0)\" class=\"tk-workspaces-table__name-link\">{{ workspace.displayName }}</a>\n <div class=\"tk-workspaces-table__name-meta\">\n <span class=\"tk-workspaces-table__name-type\">{{ workspace.typeLabel }}</span>\n <span class=\"tk-workspaces-table__meta-sep\">·</span>\n <img class=\"tk-workspaces-table__meta-icon\" src=\"assets/icons/people-regular.svg\" alt=\"\" />\n <span class=\"tk-workspaces-table__name-capacity\">{{ workspace.capacity ?? 'No capacity' }}</span>\n <span class=\"tk-workspaces-table__meta-sep\">·</span>\n <!-- <mat-icon class=\"tk-workspaces-table__meta-icon\">location_on</mat-icon> -->\n <img class=\"tk-workspaces-table__meta-icon\" src=\"assets/icons/location-regular.svg\" alt=\"\" />\n <a\n *ngIf=\"workspace.location; else noLocation\"\n href=\"javascript:void(0)\"\n class=\"tk-workspaces-table__location-link\">{{ workspace.location }}</a>\n <ng-template #noLocation>\n <span class=\"tk-workspaces-table__location-empty\">No location</span>\n </ng-template>\n </div>\n </div>\n </div>\n </td>\n <td>\n <div class=\"tk-workspaces-table__devices\">\n <ng-container *ngIf=\"workspace.devices.length; else noDevices\">\n <span *ngFor=\"let device of workspace.devices\" class=\"tk-workspaces-table__device-card\" [title]=\"device.label\">\n <img\n class=\"tk-workspaces-table__device-icon\"\n [src]=\"getDeviceIcon(device.model)\"\n [alt]=\"device.label\" />\n </span>\n </ng-container>\n <!-- <ng-container *ngFor=\"let device of workspace.devices\">\n <span *ngIf=\"device && device.model else noDevice\" class=\"tk-workspaces-table__device-card\" [title]=\"device.label\">\n <img\n class=\"tk-workspaces-table__device-icon\"\n [src]=\"getDeviceIcon(device.model)\"\n [alt]=\"device.label\" />\n </span>\n </ng-container> -->\n <ng-template #noDevices>\n <button\n type=\"button\"\n class=\"tk-workspaces-table__device-add\"\n (click)=\"onAddDevice(workspace, $event)\">\n <span class=\"tk-workspaces-table__device-add-label\">\n <img\n class=\"tk-workspaces-table__device-add-icon\"\n src=\"assets/icons/multipled-devices-regular.svg\"\n alt=\"\" />\n Add device\n </span>\n </button>\n </ng-template>\n </div>\n </td>\n <td>{{ workspace.scheduling }}</td>\n <td class=\"tk-workspaces-table__calling-cell\">\n <span class=\"tk-workspaces-table__calling-content\">\n <img class=\"tk-workspaces-table__calling-icon\" src=\"assets/icons/location-regular.svg\" alt=\"\" />\n <span class=\"tk-workspaces-table__calling-text\" title=\"Cisco Webex Calling Professional Workspace\">Cisco Webex Calling Professional Workspace</span>\n </span>\n </td>\n <td>\n <div *ngIf=\"workspace.isHybrid\" class=\"tk-workspaces-table__provisioning-icons\">\n <span class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/webex.svg\"\n [matTooltip]=\"'Webex Calling'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n <span class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/di_cloud_24.svg\"\n [matTooltip]=\"'Webex Calling DI'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n </div>\n <ng-container *ngIf=\"!workspace.isHybrid\">\n <span *ngIf=\"workspace.device.cucmId != null\" class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/di_cloud_24.svg\"\n [matTooltip]=\"'Webex Calling DI'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n <span *ngIf=\"workspace.device.webexUUID != null\" class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/webex.svg\"\n [matTooltip]=\"'Webex Calling'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n </ng-container>\n </td>\n <td>\n <span class=\"tk-workspaces-table__status\">\n <span\n class=\"tk-workspaces-table__status-dot\"\n [class.tk-workspaces-table__status-dot--hybrid]=\"workspace.isHybrid\"\n [class.tk-workspaces-table__status-dot--active]=\"!workspace.isHybrid\"></span>\n {{ workspace.isHybrid ? 'Hybrid' : 'Active' }}\n </span>\n </td>\n <td class=\"tk-workspaces-table__actions-cell\">\n <mat-progress-spinner\n *ngIf=\"isPending(workspace.id)\"\n class=\"tk-workspaces-table__actions-spinner\"\n [diameter]=\"20\"\n strokeWidth=\"2\"\n mode=\"indeterminate\">\n </mat-progress-spinner>\n <button\n *ngIf=\"!isPending(workspace.id)\"\n type=\"button\"\n class=\"tk-workspaces-table__actions-button\"\n [matMenuTriggerFor]=\"rowMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #rowMenu=\"matMenu\">\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isMoveToMTDisabled(workspace)\"\n (click)=\"licenseWithHybrid.emit(workspace)\">\n License with Hybrid\n </button>\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isMoveToMTDisabled(workspace)\"\n (click)=\"migrateToMT.emit(workspace)\">\n Migrate User to MT\n </button>\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isEnableWebexCallingDisabled(workspace)\"\n (click)=\"enableWebexCalling.emit(workspace)\">\n Enable Webex Calling\n </button>\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isMigrateToUCMDisabled(workspace)\"\n (click)=\"migrateToUCM.emit(workspace)\">\n Migrate User to UCM\n </button>\n </mat-menu>\n </td>\n </tr>\n <tr *ngIf=\"!workspaces.length\">\n <td [attr.colspan]=\"8\" class=\"tk-workspaces-table__empty\">No workspaces to display.</td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<mat-paginator\n class=\"tk-workspaces-table__paginator\"\n [length]=\"total\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\">\n</mat-paginator>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2}.tk-workspaces-table__bulk-bar{margin-bottom:1rem;font-size:.875rem;color:#000000f2}.tk-workspaces-table__wrapper{overflow-x:auto}.tk-workspaces-table__paginator{border:1px solid rgba(0,0,0,.12);border-top:none;background:#fff;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}.tk-workspaces-table__table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif}.tk-workspaces-table__table th{height:39px;padding:.5rem 1.5rem .5rem .75rem;background-color:#ededed;text-align:start;font-size:.75rem;font-weight:500;color:#000000b3;word-break:break-all;max-inline-size:100%;cursor:pointer}.tk-workspaces-table__table th:hover{background-color:#dedede}.tk-workspaces-table__table td{height:49px;padding:.5rem 1.5rem .5rem .75rem;box-shadow:inset 0 -1px #0003;background-color:#fff;text-align:start;font-size:.875rem;color:#000000f2;word-break:break-all;cursor:pointer;transition:background-color .2s,box-shadow .2s}.tk-workspaces-table__table tbody tr:hover td{background:#ededed}.tk-workspaces-table__table tbody tr.tk-workspaces-table__row--selected td{background:#f0f6ff}.tk-workspaces-table__checkbox-cell{width:2.5rem;cursor:default}.tk-workspaces-table__settings-cell{width:2.5rem;text-align:center}.tk-workspaces-table__settings-icon{font-size:1.125rem;height:1.125rem;width:1.125rem;color:#00000080}.tk-workspaces-table__name-cell{min-width:14rem}.tk-workspaces-table__name-wrapper{display:flex;align-items:center;gap:.625rem}.tk-workspaces-table__name-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:50%;background:#2b2b2b;color:#fff}.tk-workspaces-table__name-icon img{height:1.125rem;width:1.125rem;filter:brightness(0) invert(1)}.tk-workspaces-table__name-info{display:flex;flex-direction:column;gap:.5rem;min-width:0}.tk-workspaces-table__name-link{color:#000000de;font-weight:500;text-decoration:none}.tk-workspaces-table__name-meta{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#0009;white-space:nowrap}.tk-workspaces-table__name-meta .tk-workspaces-table__name-type,.tk-workspaces-table__name-meta .tk-workspaces-table__name-capacity{color:#0006}.tk-workspaces-table__meta-icon{font-size:.875rem;height:.875rem;width:.875rem;color:#0006}.tk-workspaces-table__meta-sep{color:#0000004d}.tk-workspaces-table__location-link{color:#0353a8;text-decoration:none}.tk-workspaces-table__location-empty{color:#0009}.tk-workspaces-table__devices{display:flex;align-items:flex-start;gap:.625rem;padding:.5rem 0}.tk-workspaces-table__device-card{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:.5rem;border:1px solid rgba(0,0,0,.12);border-radius:.5rem;background:#fff;box-sizing:border-box;padding:12px;block-size:60px}.tk-workspaces-table__device-icon{inline-size:40px;display:inline-block;vertical-align:middle;max-inline-size:100%;block-size:auto}.tk-workspaces-table__device-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#757575;color:#fff;font-size:.6875rem;font-weight:600}.tk-workspaces-table__device-add{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.5rem;padding:.5rem 1.25rem;border:none;border-radius:.5rem;background-color:#fff;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%22186%22 height%3D%2274%22 viewBox%3D%220 0 186 74%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M1 8.51269C1 4.09442 4.58172 0.512695 9 0.512695H65C69.4183 0.512695 73 4.09442 73 8.5127V64.5127C73 68.931 69.4183 72.5127 65 72.5127H9C4.58172 72.5127 1 68.931 1 64.5127V8.51269Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M1 8.51269C1 4.09442 4.58172 0.512695 9 0.512695H65C69.4183 0.512695 73 4.09442 73 8.5127V64.5127C73 68.931 69.4183 72.5127 65 72.5127H9C4.58172 72.5127 1 68.931 1 64.5127V8.51269Z%22 stroke%3D%22url(%23paint0_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 8.51269C77 4.09442 80.5817 0.512695 85 0.512695H111C115.418 0.512695 119 4.09442 119 8.5127V26.5127C119 30.931 115.418 34.5127 111 34.5127H85C80.5817 34.5127 77 30.931 77 26.5127V8.51269Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 8.51269C77 4.09442 80.5817 0.512695 85 0.512695H111C115.418 0.512695 119 4.09442 119 8.5127V26.5127C119 30.931 115.418 34.5127 111 34.5127H85C80.5817 34.5127 77 30.931 77 26.5127V8.51269Z%22 stroke%3D%22url(%23paint1_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M123 8.51269C123 4.09442 126.582 0.512695 131 0.512695H177C181.418 0.512695 185 4.09442 185 8.5127V26.5127C185 30.931 181.418 34.5127 177 34.5127H131C126.582 34.5127 123 30.931 123 26.5127V8.51269Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M123 8.51269C123 4.09442 126.582 0.512695 131 0.512695H177C181.418 0.512695 185 4.09442 185 8.5127V26.5127C185 30.931 181.418 34.5127 177 34.5127H131C126.582 34.5127 123 30.931 123 26.5127V8.51269Z%22 stroke%3D%22url(%23paint2_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 46.5127C77 42.0944 80.5817 38.5127 85 38.5127H131C135.418 38.5127 139 42.0944 139 46.5127V64.5127C139 68.931 135.418 72.5127 131 72.5127H85C80.5817 72.5127 77 68.931 77 64.5127V46.5127Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 46.5127C77 42.0944 80.5817 38.5127 85 38.5127H131C135.418 38.5127 139 42.0944 139 46.5127V64.5127C139 68.931 135.418 72.5127 131 72.5127H85C80.5817 72.5127 77 68.931 77 64.5127V46.5127Z%22 stroke%3D%22url(%23paint3_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M143 46.5127C143 42.0944 146.582 38.5127 151 38.5127H177C181.418 38.5127 185 42.0944 185 46.5127V64.5127C185 68.931 181.418 72.5127 177 72.5127H151C146.582 72.5127 143 68.931 143 64.5127V46.5127Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M143 46.5127C143 42.0944 146.582 38.5127 151 38.5127H177C181.418 38.5127 185 42.0944 185 46.5127V64.5127C185 68.931 181.418 72.5127 177 72.5127H151C146.582 72.5127 143 68.931 143 64.5127V46.5127Z%22 stroke%3D%22url(%23paint4_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cdefs%3E%3CradialGradient id%3D%22paint0_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint1_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint2_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint3_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint4_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;background-position:center;background-size:contain;font-family:inherit;white-space:nowrap;cursor:pointer;box-sizing:border-box}.tk-workspaces-table__device-add-label{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:999px;color:#000000f2;font-size:.875rem;transition:background-color .15s}.tk-workspaces-table__device-add:hover .tk-workspaces-table__device-add-label{background-color:#ededed}.tk-workspaces-table__device-add-icon{height:1.125rem;width:1.125rem}.tk-workspaces-table__devices-empty{color:#0000004d}.tk-workspaces-table__calling-cell{max-width:14rem}.tk-workspaces-table__calling-content{display:flex;align-items:center;gap:.375rem}.tk-workspaces-table__calling-icon{flex:none;width:1rem;height:1rem;opacity:.4}.tk-workspaces-table__calling-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-workspaces-table__provisioning-icon{font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0009}.tk-workspaces-table__provisioning-icons{display:flex;align-items:center;gap:.5rem}.tk-workspaces-table__status{display:inline-flex;align-items:center;gap:.375rem;white-space:nowrap}.tk-workspaces-table__status-dot{width:.5rem;height:.5rem;border-radius:50%;background:rgba(0,0,0,.3);flex-shrink:0}.tk-workspaces-table__status-dot--active{background:#1d805f}.tk-workspaces-table__status-dot--inactive{background:#c73636}.tk-workspaces-table__status-dot--hybrid{background:#639fff}.tk-workspaces-table__actions-cell{width:2.5rem;text-align:center}.tk-workspaces-table__actions-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:.25rem;color:#00000080;cursor:pointer;border-radius:4px}.tk-workspaces-table__actions-button:hover{background:rgba(0,0,0,.06)}.tk-workspaces-table__actions-spinner{display:inline-flex;margin:0 auto}.tk-workspaces-table__empty{padding:1.5rem;text-align:center;color:#0009;cursor:default}\n"], dependencies: [{ kind: "directive", type: i1.NgForOf, selector: "[ngFor][ngForOf]", inputs: ["ngForOf", "ngForTrackBy", "ngForTemplate"] }, { kind: "directive", type: i1.NgIf, selector: "[ngIf]", inputs: ["ngIf", "ngIfThen", "ngIfElse"] }, { kind: "component", type: i2.MatIcon, selector: "mat-icon", inputs: ["color", "inline", "svgIcon", "fontSet", "fontIcon"], exportAs: ["matIcon"] }, { kind: "component", type: i3.MatProgressSpinner, selector: "mat-progress-spinner, mat-spinner", inputs: ["color", "diameter", "strokeWidth", "mode", "value"], exportAs: ["matProgressSpinner"] }, { kind: "component", type: i4.MatMenu, selector: "mat-menu", exportAs: ["matMenu"] }, { kind: "component", type: i4.MatMenuItem, selector: "[mat-menu-item]", inputs: ["disabled", "disableRipple", "role"], exportAs: ["matMenuItem"] }, { kind: "directive", type: i4.MatMenuTrigger, selector: "[mat-menu-trigger-for], [matMenuTriggerFor]", exportAs: ["matMenuTrigger"] }, { kind: "component", type: i5.MatPaginator, selector: "mat-paginator", inputs: ["disabled"], exportAs: ["matPaginator"] }, { kind: "directive", type: i6.MatTooltip, selector: "[matTooltip]", exportAs: ["matTooltip"] }] });
|
|
84
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesTableComponent, decorators: [{
|
|
85
|
+
type: Component,
|
|
86
|
+
args: [{ selector: 'tk-workspaces-table', template: "<div class=\"tk-workspaces-table__bulk-bar\">Select one or more workspaces for bulk actions</div>\n\n<div class=\"tk-workspaces-table__wrapper\">\n <table class=\"tk-workspaces-table__table\">\n <thead>\n <tr>\n <th class=\"tk-workspaces-table__checkbox-cell\">\n <input type=\"checkbox\" [checked]=\"allSelected\" [indeterminate]=\"someSelected\" (change)=\"toggleAll()\" />\n </th>\n <th>Name</th>\n <th>Devices</th>\n <th>Scheduling</th>\n <th>Calling</th>\n <th>Provisioning Type</th>\n <th>Status</th>\n <th class=\"tk-workspaces-table__settings-cell\">\n <mat-icon class=\"tk-workspaces-table__settings-icon\">settings</mat-icon>\n </th>\n </tr>\n </thead>\n <tbody>\n <tr\n *ngFor=\"let workspace of workspaces\"\n [class.tk-workspaces-table__row--selected]=\"isSelected(workspace.id)\">\n <td class=\"tk-workspaces-table__checkbox-cell\">\n <input type=\"checkbox\" [checked]=\"isSelected(workspace.id)\" (change)=\"toggleRow(workspace.id)\" />\n </td>\n <td class=\"tk-workspaces-table__name-cell\" (click)=\"onOpenWorkspace(workspace)\">\n <div class=\"tk-workspaces-table__name-wrapper\">\n <span class=\"tk-workspaces-table__name-icon\">\n <img src=\"assets/icons/device-in-room-regular.svg\" alt=\"\" />\n </span>\n <div class=\"tk-workspaces-table__name-info\">\n <a href=\"javascript:void(0)\" class=\"tk-workspaces-table__name-link\">{{ workspace.displayName }}</a>\n <div class=\"tk-workspaces-table__name-meta\">\n <span class=\"tk-workspaces-table__name-type\">{{ workspace.typeLabel }}</span>\n <span class=\"tk-workspaces-table__meta-sep\">·</span>\n <img class=\"tk-workspaces-table__meta-icon\" src=\"assets/icons/people-regular.svg\" alt=\"\" />\n <span class=\"tk-workspaces-table__name-capacity\">{{ workspace.capacity ?? 'No capacity' }}</span>\n <span class=\"tk-workspaces-table__meta-sep\">·</span>\n <!-- <mat-icon class=\"tk-workspaces-table__meta-icon\">location_on</mat-icon> -->\n <img class=\"tk-workspaces-table__meta-icon\" src=\"assets/icons/location-regular.svg\" alt=\"\" />\n <a\n *ngIf=\"workspace.location; else noLocation\"\n href=\"javascript:void(0)\"\n class=\"tk-workspaces-table__location-link\">{{ workspace.location }}</a>\n <ng-template #noLocation>\n <span class=\"tk-workspaces-table__location-empty\">No location</span>\n </ng-template>\n </div>\n </div>\n </div>\n </td>\n <td>\n <div class=\"tk-workspaces-table__devices\">\n <ng-container *ngIf=\"workspace.devices.length; else noDevices\">\n <span *ngFor=\"let device of workspace.devices\" class=\"tk-workspaces-table__device-card\" [title]=\"device.label\">\n <img\n class=\"tk-workspaces-table__device-icon\"\n [src]=\"getDeviceIcon(device.model)\"\n [alt]=\"device.label\" />\n </span>\n </ng-container>\n <!-- <ng-container *ngFor=\"let device of workspace.devices\">\n <span *ngIf=\"device && device.model else noDevice\" class=\"tk-workspaces-table__device-card\" [title]=\"device.label\">\n <img\n class=\"tk-workspaces-table__device-icon\"\n [src]=\"getDeviceIcon(device.model)\"\n [alt]=\"device.label\" />\n </span>\n </ng-container> -->\n <ng-template #noDevices>\n <button\n type=\"button\"\n class=\"tk-workspaces-table__device-add\"\n (click)=\"onAddDevice(workspace, $event)\">\n <span class=\"tk-workspaces-table__device-add-label\">\n <img\n class=\"tk-workspaces-table__device-add-icon\"\n src=\"assets/icons/multipled-devices-regular.svg\"\n alt=\"\" />\n Add device\n </span>\n </button>\n </ng-template>\n </div>\n </td>\n <td>{{ workspace.scheduling }}</td>\n <td class=\"tk-workspaces-table__calling-cell\">\n <span class=\"tk-workspaces-table__calling-content\">\n <img class=\"tk-workspaces-table__calling-icon\" src=\"assets/icons/location-regular.svg\" alt=\"\" />\n <span class=\"tk-workspaces-table__calling-text\" title=\"Cisco Webex Calling Professional Workspace\">Cisco Webex Calling Professional Workspace</span>\n </span>\n </td>\n <td>\n <div *ngIf=\"workspace.isHybrid\" class=\"tk-workspaces-table__provisioning-icons\">\n <span class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/webex.svg\"\n [matTooltip]=\"'Webex Calling'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n <span class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/di_cloud_24.svg\"\n [matTooltip]=\"'Webex Calling DI'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n </div>\n <ng-container *ngIf=\"!workspace.isHybrid\">\n <span *ngIf=\"workspace.device.cucmId != null\" class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/di_cloud_24.svg\"\n [matTooltip]=\"'Webex Calling DI'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n <span *ngIf=\"workspace.device.webexUUID != null\" class=\"icon-wrapper\"\n ><img\n src=\"assets/icons/webex.svg\"\n [matTooltip]=\"'Webex Calling'\"\n matTooltipPosition=\"right\"\n width=\"20\"\n alt=\"\"\n /></span>\n </ng-container>\n </td>\n <td>\n <span class=\"tk-workspaces-table__status\">\n <span\n class=\"tk-workspaces-table__status-dot\"\n [class.tk-workspaces-table__status-dot--hybrid]=\"workspace.isHybrid\"\n [class.tk-workspaces-table__status-dot--active]=\"!workspace.isHybrid\"></span>\n {{ workspace.isHybrid ? 'Hybrid' : 'Active' }}\n </span>\n </td>\n <td class=\"tk-workspaces-table__actions-cell\">\n <mat-progress-spinner\n *ngIf=\"isPending(workspace.id)\"\n class=\"tk-workspaces-table__actions-spinner\"\n [diameter]=\"20\"\n strokeWidth=\"2\"\n mode=\"indeterminate\">\n </mat-progress-spinner>\n <button\n *ngIf=\"!isPending(workspace.id)\"\n type=\"button\"\n class=\"tk-workspaces-table__actions-button\"\n [matMenuTriggerFor]=\"rowMenu\">\n <mat-icon>more_vert</mat-icon>\n </button>\n <mat-menu #rowMenu=\"matMenu\">\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isMoveToMTDisabled(workspace)\"\n (click)=\"licenseWithHybrid.emit(workspace)\">\n License with Hybrid\n </button>\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isMoveToMTDisabled(workspace)\"\n (click)=\"migrateToMT.emit(workspace)\">\n Migrate User to MT\n </button>\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isEnableWebexCallingDisabled(workspace)\"\n (click)=\"enableWebexCalling.emit(workspace)\">\n Enable Webex Calling\n </button>\n <button\n type=\"button\"\n mat-menu-item\n [disabled]=\"isMigrateToUCMDisabled(workspace)\"\n (click)=\"migrateToUCM.emit(workspace)\">\n Migrate User to UCM\n </button>\n </mat-menu>\n </td>\n </tr>\n <tr *ngIf=\"!workspaces.length\">\n <td [attr.colspan]=\"8\" class=\"tk-workspaces-table__empty\">No workspaces to display.</td>\n </tr>\n </tbody>\n </table>\n</div>\n\n<mat-paginator\n class=\"tk-workspaces-table__paginator\"\n [length]=\"total\"\n [pageIndex]=\"pageIndex\"\n [pageSize]=\"pageSize\"\n [pageSizeOptions]=\"pageSizeOptions\"\n (page)=\"onPage($event)\">\n</mat-paginator>\n", styles: ["@import\"https://fonts.googleapis.com/css2?family=Inter:wght@300;400&display=swap\";:host{display:block;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif;color:#000000f2}.tk-workspaces-table__bulk-bar{margin-bottom:1rem;font-size:.875rem;color:#000000f2}.tk-workspaces-table__wrapper{overflow-x:auto}.tk-workspaces-table__paginator{border:1px solid rgba(0,0,0,.12);border-top:none;background:#fff;font-family:Inter,Helvetica Neue,Helvetica,Arial,sans-serif}.tk-workspaces-table__table{width:100%;border-collapse:collapse;font-family:Inter,sans-serif}.tk-workspaces-table__table th{height:39px;padding:.5rem 1.5rem .5rem .75rem;background-color:#ededed;text-align:start;font-size:.75rem;font-weight:500;color:#000000b3;word-break:break-all;max-inline-size:100%;cursor:pointer}.tk-workspaces-table__table th:hover{background-color:#dedede}.tk-workspaces-table__table td{height:49px;padding:.5rem 1.5rem .5rem .75rem;box-shadow:inset 0 -1px #0003;background-color:#fff;text-align:start;font-size:.875rem;color:#000000f2;word-break:break-all;cursor:pointer;transition:background-color .2s,box-shadow .2s}.tk-workspaces-table__table tbody tr:hover td{background:#ededed}.tk-workspaces-table__table tbody tr.tk-workspaces-table__row--selected td{background:#f0f6ff}.tk-workspaces-table__checkbox-cell{width:2.5rem;cursor:default}.tk-workspaces-table__settings-cell{width:2.5rem;text-align:center}.tk-workspaces-table__settings-icon{font-size:1.125rem;height:1.125rem;width:1.125rem;color:#00000080}.tk-workspaces-table__name-cell{min-width:14rem}.tk-workspaces-table__name-wrapper{display:flex;align-items:center;gap:.625rem}.tk-workspaces-table__name-icon{display:inline-flex;align-items:center;justify-content:center;width:2rem;height:2rem;flex-shrink:0;border-radius:50%;background:#2b2b2b;color:#fff}.tk-workspaces-table__name-icon img{height:1.125rem;width:1.125rem;filter:brightness(0) invert(1)}.tk-workspaces-table__name-info{display:flex;flex-direction:column;gap:.5rem;min-width:0}.tk-workspaces-table__name-link{color:#000000de;font-weight:500;text-decoration:none}.tk-workspaces-table__name-meta{display:flex;align-items:center;gap:.25rem;font-size:.875rem;color:#0009;white-space:nowrap}.tk-workspaces-table__name-meta .tk-workspaces-table__name-type,.tk-workspaces-table__name-meta .tk-workspaces-table__name-capacity{color:#0006}.tk-workspaces-table__meta-icon{font-size:.875rem;height:.875rem;width:.875rem;color:#0006}.tk-workspaces-table__meta-sep{color:#0000004d}.tk-workspaces-table__location-link{color:#0353a8;text-decoration:none}.tk-workspaces-table__location-empty{color:#0009}.tk-workspaces-table__devices{display:flex;align-items:flex-start;gap:.625rem;padding:.5rem 0}.tk-workspaces-table__device-card{display:inline-flex;align-items:center;justify-content:center;flex-shrink:0;padding:.5rem;border:1px solid rgba(0,0,0,.12);border-radius:.5rem;background:#fff;box-sizing:border-box;padding:12px;block-size:60px}.tk-workspaces-table__device-icon{inline-size:40px;display:inline-block;vertical-align:middle;max-inline-size:100%;block-size:auto}.tk-workspaces-table__device-avatar{display:inline-flex;align-items:center;justify-content:center;width:1.5rem;height:1.5rem;border-radius:50%;background:#757575;color:#fff;font-size:.6875rem;font-weight:600}.tk-workspaces-table__device-add{display:inline-flex;align-items:center;justify-content:center;gap:.5rem;min-height:3.5rem;padding:.5rem 1.25rem;border:none;border-radius:.5rem;background-color:#fff;background-image:url(\"data:image/svg+xml,%3Csvg width%3D%22186%22 height%3D%2274%22 viewBox%3D%220 0 186 74%22 fill%3D%22none%22 xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%3E%3Cpath d%3D%22M1 8.51269C1 4.09442 4.58172 0.512695 9 0.512695H65C69.4183 0.512695 73 4.09442 73 8.5127V64.5127C73 68.931 69.4183 72.5127 65 72.5127H9C4.58172 72.5127 1 68.931 1 64.5127V8.51269Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M1 8.51269C1 4.09442 4.58172 0.512695 9 0.512695H65C69.4183 0.512695 73 4.09442 73 8.5127V64.5127C73 68.931 69.4183 72.5127 65 72.5127H9C4.58172 72.5127 1 68.931 1 64.5127V8.51269Z%22 stroke%3D%22url(%23paint0_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 8.51269C77 4.09442 80.5817 0.512695 85 0.512695H111C115.418 0.512695 119 4.09442 119 8.5127V26.5127C119 30.931 115.418 34.5127 111 34.5127H85C80.5817 34.5127 77 30.931 77 26.5127V8.51269Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 8.51269C77 4.09442 80.5817 0.512695 85 0.512695H111C115.418 0.512695 119 4.09442 119 8.5127V26.5127C119 30.931 115.418 34.5127 111 34.5127H85C80.5817 34.5127 77 30.931 77 26.5127V8.51269Z%22 stroke%3D%22url(%23paint1_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M123 8.51269C123 4.09442 126.582 0.512695 131 0.512695H177C181.418 0.512695 185 4.09442 185 8.5127V26.5127C185 30.931 181.418 34.5127 177 34.5127H131C126.582 34.5127 123 30.931 123 26.5127V8.51269Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M123 8.51269C123 4.09442 126.582 0.512695 131 0.512695H177C181.418 0.512695 185 4.09442 185 8.5127V26.5127C185 30.931 181.418 34.5127 177 34.5127H131C126.582 34.5127 123 30.931 123 26.5127V8.51269Z%22 stroke%3D%22url(%23paint2_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 46.5127C77 42.0944 80.5817 38.5127 85 38.5127H131C135.418 38.5127 139 42.0944 139 46.5127V64.5127C139 68.931 135.418 72.5127 131 72.5127H85C80.5817 72.5127 77 68.931 77 64.5127V46.5127Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M77 46.5127C77 42.0944 80.5817 38.5127 85 38.5127H131C135.418 38.5127 139 42.0944 139 46.5127V64.5127C139 68.931 135.418 72.5127 131 72.5127H85C80.5817 72.5127 77 68.931 77 64.5127V46.5127Z%22 stroke%3D%22url(%23paint3_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M143 46.5127C143 42.0944 146.582 38.5127 151 38.5127H177C181.418 38.5127 185 42.0944 185 46.5127V64.5127C185 68.931 181.418 72.5127 177 72.5127H151C146.582 72.5127 143 68.931 143 64.5127V46.5127Z%22 stroke%3D%22%23DEDEDE%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cpath d%3D%22M143 46.5127C143 42.0944 146.582 38.5127 151 38.5127H177C181.418 38.5127 185 42.0944 185 46.5127V64.5127C185 68.931 181.418 72.5127 177 72.5127H151C146.582 72.5127 143 68.931 143 64.5127V46.5127Z%22 stroke%3D%22url(%23paint4_radial_6222_238881)%22 stroke-dasharray%3D%224 4%22%2F%3E%3Cdefs%3E%3CradialGradient id%3D%22paint0_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint1_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint2_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint3_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3CradialGradient id%3D%22paint4_radial_6222_238881%22 cx%3D%220%22 cy%3D%220%22 r%3D%221%22 gradientUnits%3D%22userSpaceOnUse%22 gradientTransform%3D%22translate(93 36.5127) rotate(90) scale(36 92)%22%3E%3Cstop stop-color%3D%22white%22%2F%3E%3Cstop offset%3D%221%22 stop-color%3D%22white%22 stop-opacity%3D%220%22%2F%3E%3C%2FradialGradient%3E%3C%2Fdefs%3E%3C%2Fsvg%3E\");background-repeat:no-repeat;background-position:center;background-size:contain;font-family:inherit;white-space:nowrap;cursor:pointer;box-sizing:border-box}.tk-workspaces-table__device-add-label{display:inline-flex;align-items:center;gap:.5rem;padding:.375rem .75rem;border-radius:999px;color:#000000f2;font-size:.875rem;transition:background-color .15s}.tk-workspaces-table__device-add:hover .tk-workspaces-table__device-add-label{background-color:#ededed}.tk-workspaces-table__device-add-icon{height:1.125rem;width:1.125rem}.tk-workspaces-table__devices-empty{color:#0000004d}.tk-workspaces-table__calling-cell{max-width:14rem}.tk-workspaces-table__calling-content{display:flex;align-items:center;gap:.375rem}.tk-workspaces-table__calling-icon{flex:none;width:1rem;height:1rem;opacity:.4}.tk-workspaces-table__calling-text{overflow:hidden;text-overflow:ellipsis;white-space:nowrap}.tk-workspaces-table__provisioning-icon{font-size:1.125rem;height:1.125rem;width:1.125rem;color:#0009}.tk-workspaces-table__provisioning-icons{display:flex;align-items:center;gap:.5rem}.tk-workspaces-table__status{display:inline-flex;align-items:center;gap:.375rem;white-space:nowrap}.tk-workspaces-table__status-dot{width:.5rem;height:.5rem;border-radius:50%;background:rgba(0,0,0,.3);flex-shrink:0}.tk-workspaces-table__status-dot--active{background:#1d805f}.tk-workspaces-table__status-dot--inactive{background:#c73636}.tk-workspaces-table__status-dot--hybrid{background:#639fff}.tk-workspaces-table__actions-cell{width:2.5rem;text-align:center}.tk-workspaces-table__actions-button{display:inline-flex;align-items:center;justify-content:center;background:none;border:none;padding:.25rem;color:#00000080;cursor:pointer;border-radius:4px}.tk-workspaces-table__actions-button:hover{background:rgba(0,0,0,.06)}.tk-workspaces-table__actions-spinner{display:inline-flex;margin:0 auto}.tk-workspaces-table__empty{padding:1.5rem;text-align:center;color:#0009;cursor:default}\n"] }]
|
|
87
|
+
}], propDecorators: { workspaces: [{
|
|
88
|
+
type: Input
|
|
89
|
+
}], total: [{
|
|
90
|
+
type: Input
|
|
91
|
+
}], pageIndex: [{
|
|
92
|
+
type: Input
|
|
93
|
+
}], pageSize: [{
|
|
94
|
+
type: Input
|
|
95
|
+
}], pageSizeOptions: [{
|
|
96
|
+
type: Input
|
|
97
|
+
}], pendingWorkspaceIds: [{
|
|
98
|
+
type: Input
|
|
99
|
+
}], openWorkspace: [{
|
|
100
|
+
type: Output
|
|
101
|
+
}], licenseWithHybrid: [{
|
|
102
|
+
type: Output
|
|
103
|
+
}], migrateToMT: [{
|
|
104
|
+
type: Output
|
|
105
|
+
}], enableWebexCalling: [{
|
|
106
|
+
type: Output
|
|
107
|
+
}], migrateToUCM: [{
|
|
108
|
+
type: Output
|
|
109
|
+
}], addDevice: [{
|
|
110
|
+
type: Output
|
|
111
|
+
}], pageChange: [{
|
|
112
|
+
type: Output
|
|
113
|
+
}] } });
|
|
114
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy10YWJsZS5jb21wb25lbnQuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvY29tcG9uZW50cy93b3Jrc3BhY2VzLXRhYmxlL3dvcmtzcGFjZXMtdGFibGUuY29tcG9uZW50LnRzIiwiLi4vLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL2NvbXBvbmVudHMvd29ya3NwYWNlcy10YWJsZS93b3Jrc3BhY2VzLXRhYmxlLmNvbXBvbmVudC5odG1sIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxTQUFTLEVBQUUsWUFBWSxFQUFFLEtBQUssRUFBRSxNQUFNLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFHdkUsT0FBTyxFQUFFLGFBQWEsSUFBSSxpQkFBaUIsRUFBRSxNQUFNLHlCQUF5QixDQUFDOzs7Ozs7OztBQVk3RSxNQUFNLE9BQU8sd0JBQXdCO0lBTHJDO1FBTVcsZUFBVSxHQUFnQixFQUFFLENBQUM7UUFDN0IsVUFBSyxHQUFHLENBQUMsQ0FBQztRQUNWLGNBQVMsR0FBRyxDQUFDLENBQUM7UUFDZCxhQUFRLEdBQUcsRUFBRSxDQUFDO1FBQ2Qsb0JBQWUsR0FBYSxDQUFDLEVBQUUsRUFBRSxFQUFFLEVBQUUsRUFBRSxFQUFFLEdBQUcsQ0FBQyxDQUFDO1FBQzlDLHdCQUFtQixHQUFnQixJQUFJLEdBQUcsRUFBRSxDQUFDO1FBRTVDLGtCQUFhLEdBQUcsSUFBSSxZQUFZLEVBQVUsQ0FBQztRQUMzQyxzQkFBaUIsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQ2xELGdCQUFXLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FBQztRQUM1Qyx1QkFBa0IsR0FBRyxJQUFJLFlBQVksRUFBYSxDQUFDO1FBQ25ELGlCQUFZLEdBQUcsSUFBSSxZQUFZLEVBQWEsQ0FB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QUFTLENBQUMsTUFBTSxDQUFDLFNBQVMsQ0FBQztJQUM1RCxDQUFDO0lBRUQsc0JBQXNCLENBQUMsU0FBb0I7UUFDekMsT0FBTyxDQUFDLFNBQVMsQ0FBQyxNQUFNLENBQUMsU0FBUyxJQUFJLFNBQVMsQ0FBQyxNQUFNLEtBQUssUUFBUSxDQUFDO0lBQ3RFLENBQUM7O3NIQWxGVSx3QkFBd0I7MEdBQXhCLHdCQUF3QiwwZENmckMsbXhSQTJNQTs0RkQ1TGEsd0JBQXdCO2tCQUxwQyxTQUFTOytCQUNFLHFCQUFxQjs4QkFLdEIsVUFBVTtzQkFBbEIsS0FBSztnQkFDRyxLQUFLO3NCQUFiLEtBQUs7Z0JBQ0csU0FBUztzQkFBakIsS0FBSztnQkFDRyxRQUFRO3NCQUFoQixLQUFLO2dCQUNHLGVBQWU7c0JBQXZCLEtBQUs7Z0JBQ0csbUJBQW1CO3NCQUEzQixLQUFLO2dCQUVJLGFBQWE7c0JBQXRCLE1BQU07Z0JBQ0csaUJBQWlCO3NCQUExQixNQUFNO2dCQUNHLFdBQVc7c0JBQXBCLE1BQU07Z0JBQ0csa0JBQWtCO3NCQUEzQixNQUFNO2dCQUNHLFlBQVk7c0JBQXJCLE1BQU07Z0JBQ0csU0FBUztzQkFBbEIsTUFBTTtnQkFDRyxVQUFVO3NCQUFuQixNQUFNIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgQ29tcG9uZW50LCBFdmVudEVtaXR0ZXIsIElucHV0LCBPdXRwdXQgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IFBhZ2VFdmVudCB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3BhZ2luYXRvcic7XG5pbXBvcnQgeyBXb3Jrc3BhY2UgfSBmcm9tICcuLi8uLi90eXBlcy93b3Jrc3BhY2UnO1xuaW1wb3J0IHsgZ2V0RGV2aWNlSWNvbiBhcyByZXNvbHZlRGV2aWNlSWNvbiB9IGZyb20gJy4uLy4uL3V0aWxzL2RldmljZS1pY29uJztcblxuZXhwb3J0IGludGVyZmFjZSBXb3Jrc3BhY2VzUGFnZUNoYW5nZSB7XG4gIHBhZ2VJbmRleDogbnVtYmVyO1xuICBwYWdlU2l6ZTogbnVtYmVyO1xufVxuXG5AQ29tcG9uZW50KHtcbiAgc2VsZWN0b3I6ICd0ay13b3Jrc3BhY2VzLXRhYmxlJyxcbiAgdGVtcGxhdGVVcmw6ICcuL3dvcmtzcGFjZXMtdGFibGUuY29tcG9uZW50Lmh0bWwnLFxuICBzdHlsZVVybHM6IFsnLi93b3Jrc3BhY2VzLXRhYmxlLmNvbXBvbmVudC5zY3NzJ10sXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZXNUYWJsZUNvbXBvbmVudCB7XG4gIEBJbnB1dCgpIHdvcmtzcGFjZXM6IFdvcmtzcGFjZVtdID0gW107XG4gIEBJbnB1dCgpIHRvdGFsID0gMDtcbiAgQElucHV0KCkgcGFnZUluZGV4ID0gMDtcbiAgQElucHV0KCkgcGFnZVNpemUgPSAxMDtcbiAgQElucHV0KCkgcGFnZVNpemVPcHRpb25zOiBudW1iZXJbXSA9IFsxMCwgMjUsIDUwLCAxMDBdO1xuICBASW5wdXQoKSBwZW5kaW5nV29ya3NwYWNlSWRzOiBTZXQ8c3RyaW5nPiA9IG5ldyBTZXQoKTtcblxuICBAT3V0cHV0KCkgb3BlbldvcmtzcGFjZSA9IG5ldyBFdmVudEVtaXR0ZXI8c3RyaW5nPigpO1xuICBAT3V0cHV0KCkgbGljZW5zZVdpdGhIeWJyaWQgPSBuZXcgRXZlbnRFbWl0dGVyPFdvcmtzcGFjZT4oKTtcbiAgQE91dHB1dCgpIG1pZ3JhdGVUb01UID0gbmV3IEV2ZW50RW1pdHRlcjxXb3Jrc3BhY2U+KCk7XG4gIEBPdXRwdXQoKSBlbmFibGVXZWJleENhbGxpbmcgPSBuZXcgRXZlbnRFbWl0dGVyPFdvcmtzcGFjZT4oKTtcbiAgQE91dHB1dCgpIG1pZ3JhdGVUb1VDTSA9IG5ldyBFdmVudEVtaXR0ZXI8V29ya3NwYWNlPigpO1xuICBAT3V0cHV0KCkgYWRkRGV2aWNlID0gbmV3IEV2ZW50RW1pdHRlcjxzdHJpbmc+KCk7XG4gIEBPdXRwdXQoKSBwYWdlQ2hhbmdlID0gbmV3IEV2ZW50RW1pdHRlcjxXb3Jrc3BhY2VzUGFnZUNoYW5nZT4oKTtcblxuICBzZWxlY3RlZElkcyA9IG5ldyBTZXQ8c3RyaW5nPigpO1xuXG4gIGdldCBhbGxTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy53b3Jrc3BhY2VzLmxlbmd0aCA+IDAgJiYgdGhpcy5zZWxlY3RlZElkcy5zaXplID09PSB0aGlzLndvcmtzcGFjZXMubGVuZ3RoO1xuICB9XG5cbiAgZ2V0IHNvbWVTZWxlY3RlZCgpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5zZWxlY3RlZElkcy5zaXplID4gMCAmJiAhdGhpcy5hbGxTZWxlY3RlZDtcbiAgfVxuXG4gIHRvZ2dsZUFsbCgpOiB2b2lkIHtcbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gdGhpcy5hbGxTZWxlY3RlZCA/IG5ldyBTZXQoKSA6IG5ldyBTZXQodGhpcy53b3Jrc3BhY2VzLm1hcCh3b3Jrc3BhY2UgPT4gd29ya3NwYWNlLmlkKSk7XG4gIH1cblxuICB0b2dnbGVSb3cod29ya3NwYWNlSWQ6IHN0cmluZyk6IHZvaWQge1xuICAgIGNvbnN0IG5leHRTZWxlY3Rpb24gPSBuZXcgU2V0KHRoaXMuc2VsZWN0ZWRJZHMpO1xuICAgIGlmIChuZXh0U2VsZWN0aW9uLmhhcyh3b3Jrc3BhY2VJZCkpIHtcbiAgICAgIG5leHRTZWxlY3Rpb24uZGVsZXRlKHdvcmtzcGFjZUlkKTtcbiAgICB9IGVsc2Uge1xuICAgICAgbmV4dFNlbGVjdGlvbi5hZGQod29ya3NwYWNlSWQpO1xuICAgIH1cbiAgICB0aGlzLnNlbGVjdGVkSWRzID0gbmV4dFNlbGVjdGlvbjtcbiAgfVxuXG4gIGlzU2VsZWN0ZWQod29ya3NwYWNlSWQ6IHN0cmluZyk6IGJvb2xlYW4ge1xuICAgIHJldHVybiB0aGlzLnNlbGVjdGVkSWRzLmhhcyh3b3Jrc3BhY2VJZCk7XG4gIH1cblxuICBvbk9wZW5Xb3Jrc3BhY2Uod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiB2b2lkIHtcbiAgICB0aGlzLm9wZW5Xb3Jrc3BhY2UuZW1pdCh3b3Jrc3BhY2UuaWQpO1xuICB9XG5cbiAgb25BZGREZXZpY2Uod29ya3NwYWNlOiBXb3Jrc3BhY2UsIGV2ZW50OiBFdmVudCk6IHZvaWQge1xuICAgIGV2ZW50LnN0b3BQcm9wYWdhdGlvbigpO1xuICAgIHRoaXMuYWRkRGV2aWNlLmVtaXQod29ya3NwYWNlLmlkKTtcbiAgfVxuXG4gIG9uUGFnZShldmVudDogUGFnZUV2ZW50KTogdm9pZCB7XG4gICAgdGhpcy5zZWxlY3RlZElkcyA9IG5ldyBTZXQoKTtcbiAgICB0aGlzLnBhZ2VDaGFuZ2UuZW1pdCh7IHBhZ2VJbmRleDogZXZlbnQucGFnZUluZGV4LCBwYWdlU2l6ZTogZXZlbnQucGFnZVNpemUgfSk7XG4gIH1cblxuICBnZXREZXZpY2VJY29uKG1vZGVsPzogc3RyaW5nKTogc3RyaW5nIHtcbiAgICByZXR1cm4gcmVzb2x2ZURldmljZUljb24obW9kZWwpO1xuICB9XG5cbiAgaXNQZW5kaW5nKHdvcmtzcGFjZUlkOiBzdHJpbmcpOiBib29sZWFuIHtcbiAgICByZXR1cm4gdGhpcy5wZW5kaW5nV29ya3NwYWNlSWRzLmhhcyh3b3Jrc3BhY2VJZCk7XG4gIH1cblxuICBpc01vdmVUb01URGlzYWJsZWQod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiBib29sZWFuIHtcbiAgICBpZiAod29ya3NwYWNlLnN0YXR1cyAhPT0gJ2FjdGl2ZScpIHtcbiAgICAgIHJldHVybiB0cnVlO1xuICAgIH1cbiAgICByZXR1cm4gIXdvcmtzcGFjZS5pc0h5YnJpZCAmJiAhIXdvcmtzcGFjZS5kZXZpY2Uud2ViZXhVVUlEO1xuICB9XG5cbiAgaXNFbmFibGVXZWJleENhbGxpbmdEaXNhYmxlZCh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IGJvb2xlYW4ge1xuICAgIGlmICh3b3Jrc3BhY2Uuc3RhdHVzICE9PSAnaW5hY3RpdmUnKSB7XG4gICAgICByZXR1cm4gdHJ1ZTtcbiAgICB9XG4gICAgcmV0dXJuICF3b3Jrc3BhY2UuaXNIeWJyaWQgJiYgIXdvcmtzcGFjZS5kZXZpY2Uud2ViZXhVVUlEO1xuICB9XG5cbiAgaXNNaWdyYXRlVG9VQ01EaXNhYmxlZCh3b3Jrc3BhY2U6IFdvcmtzcGFjZSk6IGJvb2xlYW4ge1xuICAgIHJldHVybiAhd29ya3NwYWNlLmRldmljZS53ZWJleFVVSUQgfHwgd29ya3NwYWNlLnN0YXR1cyAhPT0gJ2FjdGl2ZSc7XG4gIH1cbn1cbiIsIjxkaXYgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19idWxrLWJhclwiPlNlbGVjdCBvbmUgb3IgbW9yZSB3b3Jrc3BhY2VzIGZvciBidWxrIGFjdGlvbnM8L2Rpdj5cblxuPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX3dyYXBwZXJcIj5cbiAgPHRhYmxlIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fdGFibGVcIj5cbiAgICA8dGhlYWQ+XG4gICAgICA8dHI+XG4gICAgICAgIDx0aCBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2NoZWNrYm94LWNlbGxcIj5cbiAgICAgICAgICA8aW5wdXQgdHlwZT1cImNoZWNrYm94XCIgW2NoZWNrZWRdPVwiYWxsU2VsZWN0ZWRcIiBbaW5kZXRlcm1pbmF0ZV09XCJzb21lU2VsZWN0ZWRcIiAoY2hhbmdlKT1cInRvZ2dsZUFsbCgpXCIgLz5cbiAgICAgICAgPC90aD5cbiAgICAgICAgPHRoPk5hbWU8L3RoPlxuICAgICAgICA8dGg+RGV2aWNlczwvdGg+XG4gICAgICAgIDx0aD5TY2hlZHVsaW5nPC90aD5cbiAgICAgICAgPHRoPkNhbGxpbmc8L3RoPlxuICAgICAgICA8dGg+UHJvdmlzaW9uaW5nIFR5cGU8L3RoPlxuICAgICAgICA8dGg+U3RhdHVzPC90aD5cbiAgICAgICAgPHRoIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fc2V0dGluZ3MtY2VsbFwiPlxuICAgICAgICAgIDxtYXQtaWNvbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX3NldHRpbmdzLWljb25cIj5zZXR0aW5nczwvbWF0LWljb24+XG4gICAgICAgIDwvdGg+XG4gICAgICA8L3RyPlxuICAgIDwvdGhlYWQ+XG4gICAgPHRib2R5PlxuICAgICAgPHRyXG4gICAgICAgICpuZ0Zvcj1cImxldCB3b3Jrc3BhY2Ugb2Ygd29ya3NwYWNlc1wiXG4gICAgICAgIFtjbGFzcy50ay13b3Jrc3BhY2VzLXRhYmxlX19yb3ctLXNlbGVjdGVkXT1cImlzU2VsZWN0ZWQod29ya3NwYWNlLmlkKVwiPlxuICAgICAgICA8dGQgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19jaGVja2JveC1jZWxsXCI+XG4gICAgICAgICAgPGlucHV0IHR5cGU9XCJjaGVja2JveFwiIFtjaGVja2VkXT1cImlzU2VsZWN0ZWQod29ya3NwYWNlLmlkKVwiIChjaGFuZ2UpPVwidG9nZ2xlUm93KHdvcmtzcGFjZS5pZClcIiAvPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19uYW1lLWNlbGxcIiAoY2xpY2spPVwib25PcGVuV29ya3NwYWNlKHdvcmtzcGFjZSlcIj5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fbmFtZS13cmFwcGVyXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX25hbWUtaWNvblwiPlxuICAgICAgICAgICAgICA8aW1nIHNyYz1cImFzc2V0cy9pY29ucy9kZXZpY2UtaW4tcm9vbS1yZWd1bGFyLnN2Z1wiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fbmFtZS1pbmZvXCI+XG4gICAgICAgICAgICAgIDxhIGhyZWY9XCJqYXZhc2NyaXB0OnZvaWQoMClcIiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX25hbWUtbGlua1wiPnt7IHdvcmtzcGFjZS5kaXNwbGF5TmFtZSB9fTwvYT5cbiAgICAgICAgICAgICAgPGRpdiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX25hbWUtbWV0YVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fbmFtZS10eXBlXCI+e3sgd29ya3NwYWNlLnR5cGVMYWJlbCB9fTwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX21ldGEtc2VwXCI+Jm1pZGRvdDs8L3NwYW4+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX21ldGEtaWNvblwiIHNyYz1cImFzc2V0cy9pY29ucy9wZW9wbGUtcmVndWxhci5zdmdcIiBhbHQ9XCJcIiAvPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fbmFtZS1jYXBhY2l0eVwiPnt7IHdvcmtzcGFjZS5jYXBhY2l0eSA/PyAnTm8gY2FwYWNpdHknIH19PC9zcGFuPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fbWV0YS1zZXBcIj4mbWlkZG90Ozwvc3Bhbj5cbiAgICAgICAgICAgICAgICA8IS0tIDxtYXQtaWNvbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX21ldGEtaWNvblwiPmxvY2F0aW9uX29uPC9tYXQtaWNvbj4gLS0+XG4gICAgICAgICAgICAgICAgPGltZyBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX21ldGEtaWNvblwiIHNyYz1cImFzc2V0cy9pY29ucy9sb2NhdGlvbi1yZWd1bGFyLnN2Z1wiIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgICAgPGFcbiAgICAgICAgICAgICAgICAgICpuZ0lmPVwid29ya3NwYWNlLmxvY2F0aW9uOyBlbHNlIG5vTG9jYXRpb25cIlxuICAgICAgICAgICAgICAgICAgaHJlZj1cImphdmFzY3JpcHQ6dm9pZCgwKVwiXG4gICAgICAgICAgICAgICAgICBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2xvY2F0aW9uLWxpbmtcIj57eyB3b3Jrc3BhY2UubG9jYXRpb24gfX08L2E+XG4gICAgICAgICAgICAgICAgPG5nLXRlbXBsYXRlICNub0xvY2F0aW9uPlxuICAgICAgICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19sb2NhdGlvbi1lbXB0eVwiPk5vIGxvY2F0aW9uPC9zcGFuPlxuICAgICAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgICAgIDwvZGl2PlxuICAgICAgICAgICAgPC9kaXY+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8ZGl2IGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fZGV2aWNlc1wiPlxuICAgICAgICAgICAgPG5nLWNvbnRhaW5lciAqbmdJZj1cIndvcmtzcGFjZS5kZXZpY2VzLmxlbmd0aDsgZWxzZSBub0RldmljZXNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nRm9yPVwibGV0IGRldmljZSBvZiB3b3Jrc3BhY2UuZGV2aWNlc1wiIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fZGV2aWNlLWNhcmRcIiBbdGl0bGVdPVwiZGV2aWNlLmxhYmVsXCI+XG4gICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19kZXZpY2UtaWNvblwiXG4gICAgICAgICAgICAgICAgICBbc3JjXT1cImdldERldmljZUljb24oZGV2aWNlLm1vZGVsKVwiXG4gICAgICAgICAgICAgICAgICBbYWx0XT1cImRldmljZS5sYWJlbFwiIC8+XG4gICAgICAgICAgICAgIDwvc3Bhbj5cbiAgICAgICAgICAgIDwvbmctY29udGFpbmVyPlxuICAgICAgICAgICAgPCEtLSA8bmctY29udGFpbmVyICpuZ0Zvcj1cImxldCBkZXZpY2Ugb2Ygd29ya3NwYWNlLmRldmljZXNcIj5cbiAgICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJkZXZpY2UgJiYgZGV2aWNlLm1vZGVsIGVsc2Ugbm9EZXZpY2VcIiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2RldmljZS1jYXJkXCIgW3RpdGxlXT1cImRldmljZS5sYWJlbFwiPlxuICAgICAgICAgICAgICAgIDxpbWdcbiAgICAgICAgICAgICAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fZGV2aWNlLWljb25cIlxuICAgICAgICAgICAgICAgICAgW3NyY109XCJnZXREZXZpY2VJY29uKGRldmljZS5tb2RlbClcIlxuICAgICAgICAgICAgICAgICAgW2FsdF09XCJkZXZpY2UubGFiZWxcIiAvPlxuICAgICAgICAgICAgICA8L3NwYW4+XG4gICAgICAgICAgICA8L25nLWNvbnRhaW5lcj4gLS0+XG4gICAgICAgICAgICA8bmctdGVtcGxhdGUgI25vRGV2aWNlcz5cbiAgICAgICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICAgIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fZGV2aWNlLWFkZFwiXG4gICAgICAgICAgICAgICAgKGNsaWNrKT1cIm9uQWRkRGV2aWNlKHdvcmtzcGFjZSwgJGV2ZW50KVwiPlxuICAgICAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fZGV2aWNlLWFkZC1sYWJlbFwiPlxuICAgICAgICAgICAgICAgICAgPGltZ1xuICAgICAgICAgICAgICAgICAgICBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2RldmljZS1hZGQtaWNvblwiXG4gICAgICAgICAgICAgICAgICAgIHNyYz1cImFzc2V0cy9pY29ucy9tdWx0aXBsZWQtZGV2aWNlcy1yZWd1bGFyLnN2Z1wiXG4gICAgICAgICAgICAgICAgICAgIGFsdD1cIlwiIC8+XG4gICAgICAgICAgICAgICAgICBBZGQgZGV2aWNlXG4gICAgICAgICAgICAgICAgPC9zcGFuPlxuICAgICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDwvbmctdGVtcGxhdGU+XG4gICAgICAgICAgPC9kaXY+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD57eyB3b3Jrc3BhY2Uuc2NoZWR1bGluZyB9fTwvdGQ+XG4gICAgICAgIDx0ZCBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2NhbGxpbmctY2VsbFwiPlxuICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fY2FsbGluZy1jb250ZW50XCI+XG4gICAgICAgICAgICA8aW1nIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fY2FsbGluZy1pY29uXCIgc3JjPVwiYXNzZXRzL2ljb25zL2xvY2F0aW9uLXJlZ3VsYXIuc3ZnXCIgYWx0PVwiXCIgLz5cbiAgICAgICAgICAgIDxzcGFuIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fY2FsbGluZy10ZXh0XCIgdGl0bGU9XCJDaXNjbyBXZWJleCBDYWxsaW5nIFByb2Zlc3Npb25hbCBXb3Jrc3BhY2VcIj5DaXNjbyBXZWJleCBDYWxsaW5nIFByb2Zlc3Npb25hbCBXb3Jrc3BhY2U8L3NwYW4+XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQ+XG4gICAgICAgICAgPGRpdiAqbmdJZj1cIndvcmtzcGFjZS5pc0h5YnJpZFwiIGNsYXNzPVwidGstd29ya3NwYWNlcy10YWJsZV9fcHJvdmlzaW9uaW5nLWljb25zXCI+XG4gICAgICAgICAgICA8c3BhbiBjbGFzcz1cImljb24td3JhcHBlclwiXG4gICAgICAgICAgICAgID48aW1nXG4gICAgICAgICAgICAgICAgc3JjPVwiYXNzZXRzL2ljb25zL3dlYmV4LnN2Z1wiXG4gICAgICAgICAgICAgICAgW21hdFRvb2x0aXBdPVwiJ1dlYmV4IENhbGxpbmcnXCJcbiAgICAgICAgICAgICAgICBtYXRUb29sdGlwUG9zaXRpb249XCJyaWdodFwiXG4gICAgICAgICAgICAgICAgd2lkdGg9XCIyMFwiXG4gICAgICAgICAgICAgICAgYWx0PVwiXCJcbiAgICAgICAgICAgIC8+PC9zcGFuPlxuICAgICAgICAgICAgPHNwYW4gY2xhc3M9XCJpY29uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICA+PGltZ1xuICAgICAgICAgICAgICAgIHNyYz1cImFzc2V0cy9pY29ucy9kaV9jbG91ZF8yNC5zdmdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidXZWJleCBDYWxsaW5nIERJJ1wiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAvPjwvc3Bhbj5cbiAgICAgICAgICA8L2Rpdj5cbiAgICAgICAgICA8bmctY29udGFpbmVyICpuZ0lmPVwiIXdvcmtzcGFjZS5pc0h5YnJpZFwiPlxuICAgICAgICAgICAgPHNwYW4gKm5nSWY9XCJ3b3Jrc3BhY2UuZGV2aWNlLmN1Y21JZCAhPSBudWxsXCIgY2xhc3M9XCJpY29uLXdyYXBwZXJcIlxuICAgICAgICAgICAgICA+PGltZ1xuICAgICAgICAgICAgICAgIHNyYz1cImFzc2V0cy9pY29ucy9kaV9jbG91ZF8yNC5zdmdcIlxuICAgICAgICAgICAgICAgIFttYXRUb29sdGlwXT1cIidXZWJleCBDYWxsaW5nIERJJ1wiXG4gICAgICAgICAgICAgICAgbWF0VG9vbHRpcFBvc2l0aW9uPVwicmlnaHRcIlxuICAgICAgICAgICAgICAgIHdpZHRoPVwiMjBcIlxuICAgICAgICAgICAgICAgIGFsdD1cIlwiXG4gICAgICAgICAgICAvPjwvc3Bhbj5cbiAgICAgICAgICAgIDxzcGFuICpuZ0lmPVwid29ya3NwYWNlLmRldmljZS53ZWJleFVVSUQgIT0gbnVsbFwiIGNsYXNzPVwiaWNvbi13cmFwcGVyXCJcbiAgICAgICAgICAgICAgPjxpbWdcbiAgICAgICAgICAgICAgICBzcmM9XCJhc3NldHMvaWNvbnMvd2ViZXguc3ZnXCJcbiAgICAgICAgICAgICAgICBbbWF0VG9vbHRpcF09XCInV2ViZXggQ2FsbGluZydcIlxuICAgICAgICAgICAgICAgIG1hdFRvb2x0aXBQb3NpdGlvbj1cInJpZ2h0XCJcbiAgICAgICAgICAgICAgICB3aWR0aD1cIjIwXCJcbiAgICAgICAgICAgICAgICBhbHQ9XCJcIlxuICAgICAgICAgICAgLz48L3NwYW4+XG4gICAgICAgICAgPC9uZy1jb250YWluZXI+XG4gICAgICAgIDwvdGQ+XG4gICAgICAgIDx0ZD5cbiAgICAgICAgICA8c3BhbiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX3N0YXR1c1wiPlxuICAgICAgICAgICAgPHNwYW5cbiAgICAgICAgICAgICAgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19zdGF0dXMtZG90XCJcbiAgICAgICAgICAgICAgW2NsYXNzLnRrLXdvcmtzcGFjZXMtdGFibGVfX3N0YXR1cy1kb3QtLWh5YnJpZF09XCJ3b3Jrc3BhY2UuaXNIeWJyaWRcIlxuICAgICAgICAgICAgICBbY2xhc3MudGstd29ya3NwYWNlcy10YWJsZV9fc3RhdHVzLWRvdC0tYWN0aXZlXT1cIiF3b3Jrc3BhY2UuaXNIeWJyaWRcIj48L3NwYW4+XG4gICAgICAgICAgICB7eyB3b3Jrc3BhY2UuaXNIeWJyaWQgPyAnSHlicmlkJyA6ICdBY3RpdmUnIH19XG4gICAgICAgICAgPC9zcGFuPlxuICAgICAgICA8L3RkPlxuICAgICAgICA8dGQgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19hY3Rpb25zLWNlbGxcIj5cbiAgICAgICAgICA8bWF0LXByb2dyZXNzLXNwaW5uZXJcbiAgICAgICAgICAgICpuZ0lmPVwiaXNQZW5kaW5nKHdvcmtzcGFjZS5pZClcIlxuICAgICAgICAgICAgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19hY3Rpb25zLXNwaW5uZXJcIlxuICAgICAgICAgICAgW2RpYW1ldGVyXT1cIjIwXCJcbiAgICAgICAgICAgIHN0cm9rZVdpZHRoPVwiMlwiXG4gICAgICAgICAgICBtb2RlPVwiaW5kZXRlcm1pbmF0ZVwiPlxuICAgICAgICAgIDwvbWF0LXByb2dyZXNzLXNwaW5uZXI+XG4gICAgICAgICAgPGJ1dHRvblxuICAgICAgICAgICAgKm5nSWY9XCIhaXNQZW5kaW5nKHdvcmtzcGFjZS5pZClcIlxuICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2FjdGlvbnMtYnV0dG9uXCJcbiAgICAgICAgICAgIFttYXRNZW51VHJpZ2dlckZvcl09XCJyb3dNZW51XCI+XG4gICAgICAgICAgICA8bWF0LWljb24+bW9yZV92ZXJ0PC9tYXQtaWNvbj5cbiAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICA8bWF0LW1lbnUgI3Jvd01lbnU9XCJtYXRNZW51XCI+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc01vdmVUb01URGlzYWJsZWQod29ya3NwYWNlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJsaWNlbnNlV2l0aEh5YnJpZC5lbWl0KHdvcmtzcGFjZSlcIj5cbiAgICAgICAgICAgICAgTGljZW5zZSB3aXRoIEh5YnJpZFxuICAgICAgICAgICAgPC9idXR0b24+XG4gICAgICAgICAgICA8YnV0dG9uXG4gICAgICAgICAgICAgIHR5cGU9XCJidXR0b25cIlxuICAgICAgICAgICAgICBtYXQtbWVudS1pdGVtXG4gICAgICAgICAgICAgIFtkaXNhYmxlZF09XCJpc01vdmVUb01URGlzYWJsZWQod29ya3NwYWNlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJtaWdyYXRlVG9NVC5lbWl0KHdvcmtzcGFjZSlcIj5cbiAgICAgICAgICAgICAgTWlncmF0ZSBVc2VyIHRvIE1UXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzRW5hYmxlV2ViZXhDYWxsaW5nRGlzYWJsZWQod29ya3NwYWNlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJlbmFibGVXZWJleENhbGxpbmcuZW1pdCh3b3Jrc3BhY2UpXCI+XG4gICAgICAgICAgICAgIEVuYWJsZSBXZWJleCBDYWxsaW5nXG4gICAgICAgICAgICA8L2J1dHRvbj5cbiAgICAgICAgICAgIDxidXR0b25cbiAgICAgICAgICAgICAgdHlwZT1cImJ1dHRvblwiXG4gICAgICAgICAgICAgIG1hdC1tZW51LWl0ZW1cbiAgICAgICAgICAgICAgW2Rpc2FibGVkXT1cImlzTWlncmF0ZVRvVUNNRGlzYWJsZWQod29ya3NwYWNlKVwiXG4gICAgICAgICAgICAgIChjbGljayk9XCJtaWdyYXRlVG9VQ00uZW1pdCh3b3Jrc3BhY2UpXCI+XG4gICAgICAgICAgICAgIE1pZ3JhdGUgVXNlciB0byBVQ01cbiAgICAgICAgICAgIDwvYnV0dG9uPlxuICAgICAgICAgIDwvbWF0LW1lbnU+XG4gICAgICAgIDwvdGQ+XG4gICAgICA8L3RyPlxuICAgICAgPHRyICpuZ0lmPVwiIXdvcmtzcGFjZXMubGVuZ3RoXCI+XG4gICAgICAgIDx0ZCBbYXR0ci5jb2xzcGFuXT1cIjhcIiBjbGFzcz1cInRrLXdvcmtzcGFjZXMtdGFibGVfX2VtcHR5XCI+Tm8gd29ya3NwYWNlcyB0byBkaXNwbGF5LjwvdGQ+XG4gICAgICA8L3RyPlxuICAgIDwvdGJvZHk+XG4gIDwvdGFibGU+XG48L2Rpdj5cblxuPG1hdC1wYWdpbmF0b3JcbiAgY2xhc3M9XCJ0ay13b3Jrc3BhY2VzLXRhYmxlX19wYWdpbmF0b3JcIlxuICBbbGVuZ3RoXT1cInRvdGFsXCJcbiAgW3BhZ2VJbmRleF09XCJwYWdlSW5kZXhcIlxuICBbcGFnZVNpemVdPVwicGFnZVNpemVcIlxuICBbcGFnZVNpemVPcHRpb25zXT1cInBhZ2VTaXplT3B0aW9uc1wiXG4gIChwYWdlKT1cIm9uUGFnZSgkZXZlbnQpXCI+XG48L21hdC1wYWdpbmF0b3I+XG4iXX0=
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import { NgModule } from '@angular/core';
|
|
2
|
+
import { MatButtonModule } from '@angular/material/button';
|
|
3
|
+
import { MatIconModule } from '@angular/material/icon';
|
|
4
|
+
import { MatTableModule } from '@angular/material/table';
|
|
5
|
+
import { MatProgressSpinnerModule } from '@angular/material/progress-spinner';
|
|
6
|
+
import { MatFormFieldModule } from '@angular/material/form-field';
|
|
7
|
+
import { MatInputModule } from '@angular/material/input';
|
|
8
|
+
import { MatMenuModule } from '@angular/material/menu';
|
|
9
|
+
import { MatPaginatorModule } from '@angular/material/paginator';
|
|
10
|
+
import { MatTooltipModule } from '@angular/material/tooltip';
|
|
11
|
+
import { MatDialogModule } from '@angular/material/dialog';
|
|
12
|
+
import * as i0 from "@angular/core";
|
|
13
|
+
export class MaterialModule {
|
|
14
|
+
}
|
|
15
|
+
MaterialModule.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, deps: [], target: i0.ɵɵFactoryTarget.NgModule });
|
|
16
|
+
MaterialModule.ɵmod = i0.ɵɵngDeclareNgModule({ minVersion: "14.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [MatButtonModule,
|
|
17
|
+
MatIconModule,
|
|
18
|
+
MatTableModule,
|
|
19
|
+
MatProgressSpinnerModule,
|
|
20
|
+
MatFormFieldModule,
|
|
21
|
+
MatInputModule,
|
|
22
|
+
MatMenuModule,
|
|
23
|
+
MatPaginatorModule,
|
|
24
|
+
MatTooltipModule,
|
|
25
|
+
MatDialogModule], exports: [MatButtonModule,
|
|
26
|
+
MatIconModule,
|
|
27
|
+
MatTableModule,
|
|
28
|
+
MatProgressSpinnerModule,
|
|
29
|
+
MatFormFieldModule,
|
|
30
|
+
MatInputModule,
|
|
31
|
+
MatMenuModule,
|
|
32
|
+
MatPaginatorModule,
|
|
33
|
+
MatTooltipModule,
|
|
34
|
+
MatDialogModule] });
|
|
35
|
+
MaterialModule.ɵinj = i0.ɵɵngDeclareInjector({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, imports: [MatButtonModule,
|
|
36
|
+
MatIconModule,
|
|
37
|
+
MatTableModule,
|
|
38
|
+
MatProgressSpinnerModule,
|
|
39
|
+
MatFormFieldModule,
|
|
40
|
+
MatInputModule,
|
|
41
|
+
MatMenuModule,
|
|
42
|
+
MatPaginatorModule,
|
|
43
|
+
MatTooltipModule,
|
|
44
|
+
MatDialogModule, MatButtonModule,
|
|
45
|
+
MatIconModule,
|
|
46
|
+
MatTableModule,
|
|
47
|
+
MatProgressSpinnerModule,
|
|
48
|
+
MatFormFieldModule,
|
|
49
|
+
MatInputModule,
|
|
50
|
+
MatMenuModule,
|
|
51
|
+
MatPaginatorModule,
|
|
52
|
+
MatTooltipModule,
|
|
53
|
+
MatDialogModule] });
|
|
54
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: MaterialModule, decorators: [{
|
|
55
|
+
type: NgModule,
|
|
56
|
+
args: [{
|
|
57
|
+
imports: [
|
|
58
|
+
MatButtonModule,
|
|
59
|
+
MatIconModule,
|
|
60
|
+
MatTableModule,
|
|
61
|
+
MatProgressSpinnerModule,
|
|
62
|
+
MatFormFieldModule,
|
|
63
|
+
MatInputModule,
|
|
64
|
+
MatMenuModule,
|
|
65
|
+
MatPaginatorModule,
|
|
66
|
+
MatTooltipModule,
|
|
67
|
+
MatDialogModule,
|
|
68
|
+
],
|
|
69
|
+
exports: [
|
|
70
|
+
MatButtonModule,
|
|
71
|
+
MatIconModule,
|
|
72
|
+
MatTableModule,
|
|
73
|
+
MatProgressSpinnerModule,
|
|
74
|
+
MatFormFieldModule,
|
|
75
|
+
MatInputModule,
|
|
76
|
+
MatMenuModule,
|
|
77
|
+
MatPaginatorModule,
|
|
78
|
+
MatTooltipModule,
|
|
79
|
+
MatDialogModule,
|
|
80
|
+
]
|
|
81
|
+
}]
|
|
82
|
+
}] });
|
|
83
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoibWF0ZXJpYWwubW9kdWxlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL21hdGVyaWFsLm1vZHVsZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsUUFBUSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQ3pDLE9BQU8sRUFBRSxlQUFlLEVBQUUsTUFBTSwwQkFBMEIsQ0FBQztBQUMzRCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGNBQWMsRUFBRSxNQUFNLHlCQUF5QixDQUFDO0FBQ3pELE9BQU8sRUFBRSx3QkFBd0IsRUFBRSxNQUFNLG9DQUFvQyxDQUFDO0FBQzlFLE9BQU8sRUFBRSxrQkFBa0IsRUFBRSxNQUFNLDhCQUE4QixDQUFDO0FBQ2xFLE9BQU8sRUFBRSxjQUFjLEVBQUUsTUFBTSx5QkFBeUIsQ0FBQztBQUN6RCxPQUFPLEVBQUUsYUFBYSxFQUFFLE1BQU0sd0JBQXdCLENBQUM7QUFDdkQsT0FBTyxFQUFFLGtCQUFrQixFQUFFLE1BQU0sNkJBQTZCLENBQUM7QUFDakUsT0FBTyxFQUFFLGdCQUFnQixFQUFFLE1BQU0sMkJBQTJCLENBQUM7QUFDN0QsT0FBTyxFQUFFLGVBQWUsRUFBRSxNQUFNLDBCQUEwQixDQUFDOztBQTRCM0QsTUFBTSxPQUFPLGNBQWM7OzRHQUFkLGNBQWM7NkdBQWQsY0FBYyxZQXhCdkIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsZUFBZSxhQUdmLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLHdCQUF3QjtRQUN4QixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGVBQWU7NkdBR04sY0FBYyxZQXhCdkIsZUFBZTtRQUNmLGFBQWE7UUFDYixjQUFjO1FBQ2Qsd0JBQXdCO1FBQ3hCLGtCQUFrQjtRQUNsQixjQUFjO1FBQ2QsYUFBYTtRQUNiLGtCQUFrQjtRQUNsQixnQkFBZ0I7UUFDaEIsZUFBZSxFQUdmLGVBQWU7UUFDZixhQUFhO1FBQ2IsY0FBYztRQUNkLHdCQUF3QjtRQUN4QixrQkFBa0I7UUFDbEIsY0FBYztRQUNkLGFBQWE7UUFDYixrQkFBa0I7UUFDbEIsZ0JBQWdCO1FBQ2hCLGVBQWU7NEZBR04sY0FBYztrQkExQjFCLFFBQVE7bUJBQUM7b0JBQ1IsT0FBTyxFQUFFO3dCQUNQLGVBQWU7d0JBQ2YsYUFBYTt3QkFDYixjQUFjO3dCQUNkLHdCQUF3Qjt3QkFDeEIsa0JBQWtCO3dCQUNsQixjQUFjO3dCQUNkLGFBQWE7d0JBQ2Isa0JBQWtCO3dCQUNsQixnQkFBZ0I7d0JBQ2hCLGVBQWU7cUJBQ2hCO29CQUNELE9BQU8sRUFBRTt3QkFDUCxlQUFlO3dCQUNmLGFBQWE7d0JBQ2IsY0FBYzt3QkFDZCx3QkFBd0I7d0JBQ3hCLGtCQUFrQjt3QkFDbEIsY0FBYzt3QkFDZCxhQUFhO3dCQUNiLGtCQUFrQjt3QkFDbEIsZ0JBQWdCO3dCQUNoQixlQUFlO3FCQUNoQjtpQkFDRiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IE5nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBNYXRCdXR0b25Nb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9idXR0b24nO1xuaW1wb3J0IHsgTWF0SWNvbk1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2ljb24nO1xuaW1wb3J0IHsgTWF0VGFibGVNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC90YWJsZSc7XG5pbXBvcnQgeyBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wcm9ncmVzcy1zcGlubmVyJztcbmltcG9ydCB7IE1hdEZvcm1GaWVsZE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL2Zvcm0tZmllbGQnO1xuaW1wb3J0IHsgTWF0SW5wdXRNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9pbnB1dCc7XG5pbXBvcnQgeyBNYXRNZW51TW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvbWVudSc7XG5pbXBvcnQgeyBNYXRQYWdpbmF0b3JNb2R1bGUgfSBmcm9tICdAYW5ndWxhci9tYXRlcmlhbC9wYWdpbmF0b3InO1xuaW1wb3J0IHsgTWF0VG9vbHRpcE1vZHVsZSB9IGZyb20gJ0Bhbmd1bGFyL21hdGVyaWFsL3Rvb2x0aXAnO1xuaW1wb3J0IHsgTWF0RGlhbG9nTW9kdWxlIH0gZnJvbSAnQGFuZ3VsYXIvbWF0ZXJpYWwvZGlhbG9nJztcblxuQE5nTW9kdWxlKHtcbiAgaW1wb3J0czogW1xuICAgIE1hdEJ1dHRvbk1vZHVsZSxcbiAgICBNYXRJY29uTW9kdWxlLFxuICAgIE1hdFRhYmxlTW9kdWxlLFxuICAgIE1hdFByb2dyZXNzU3Bpbm5lck1vZHVsZSxcbiAgICBNYXRGb3JtRmllbGRNb2R1bGUsXG4gICAgTWF0SW5wdXRNb2R1bGUsXG4gICAgTWF0TWVudU1vZHVsZSxcbiAgICBNYXRQYWdpbmF0b3JNb2R1bGUsXG4gICAgTWF0VG9vbHRpcE1vZHVsZSxcbiAgICBNYXREaWFsb2dNb2R1bGUsXG4gIF0sXG4gIGV4cG9ydHM6IFtcbiAgICBNYXRCdXR0b25Nb2R1bGUsXG4gICAgTWF0SWNvbk1vZHVsZSxcbiAgICBNYXRUYWJsZU1vZHVsZSxcbiAgICBNYXRQcm9ncmVzc1NwaW5uZXJNb2R1bGUsXG4gICAgTWF0Rm9ybUZpZWxkTW9kdWxlLFxuICAgIE1hdElucHV0TW9kdWxlLFxuICAgIE1hdE1lbnVNb2R1bGUsXG4gICAgTWF0UGFnaW5hdG9yTW9kdWxlLFxuICAgIE1hdFRvb2x0aXBNb2R1bGUsXG4gICAgTWF0RGlhbG9nTW9kdWxlLFxuICBdXG59KVxuZXhwb3J0IGNsYXNzIE1hdGVyaWFsTW9kdWxlIHsgfVxuIl19
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { APIService } from './api.service';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
export class ApiWebexService extends APIService {
|
|
5
|
+
}
|
|
6
|
+
ApiWebexService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, deps: null, target: i0.ɵɵFactoryTarget.Injectable });
|
|
7
|
+
ApiWebexService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, providedIn: 'root' });
|
|
8
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: ApiWebexService, decorators: [{
|
|
9
|
+
type: Injectable,
|
|
10
|
+
args: [{
|
|
11
|
+
providedIn: 'root',
|
|
12
|
+
}]
|
|
13
|
+
}] });
|
|
14
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLXdlYmV4LnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvc2VydmljZXMvYXBpLXdlYmV4LnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDOztBQUszQyxNQUFNLE9BQU8sZUFBZ0IsU0FBUSxVQUFVOzs2R0FBbEMsZUFBZTtpSEFBZixlQUFlLGNBRmQsTUFBTTs0RkFFUCxlQUFlO2tCQUgzQixVQUFVO21CQUFDO29CQUNWLFVBQVUsRUFBRSxNQUFNO2lCQUNuQiIsInNvdXJjZXNDb250ZW50IjpbImltcG9ydCB7IEluamVjdGFibGUgfSBmcm9tICdAYW5ndWxhci9jb3JlJztcbmltcG9ydCB7IEFQSVNlcnZpY2UgfSBmcm9tICcuL2FwaS5zZXJ2aWNlJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIEFwaVdlYmV4U2VydmljZSBleHRlbmRzIEFQSVNlcnZpY2UgeyB9XG4iXX0=
|
|
@@ -0,0 +1,67 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { HttpHeaders } from '@angular/common/http';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "@angular/common/http";
|
|
5
|
+
export class APIService {
|
|
6
|
+
constructor(httpClient) {
|
|
7
|
+
this.httpClient = httpClient;
|
|
8
|
+
}
|
|
9
|
+
fetch(url, params, cache) {
|
|
10
|
+
const headers = this.getHeaders(cache);
|
|
11
|
+
params = params || {};
|
|
12
|
+
return this.httpClient.get(this.apiUrl + url, { params: this.prepareEncodedParams(params), headers });
|
|
13
|
+
}
|
|
14
|
+
post(url, body, params = {}) {
|
|
15
|
+
body = body || null;
|
|
16
|
+
const headers = this.getHeaders();
|
|
17
|
+
return this.httpClient.post(this.apiUrl + url, body, { params: this.prepareEncodedParams(params), headers });
|
|
18
|
+
}
|
|
19
|
+
put(url, body = null, params = {}) {
|
|
20
|
+
const headers = this.getHeaders();
|
|
21
|
+
return this.httpClient.put(this.apiUrl + url, body, { headers, params: this.prepareEncodedParams(params) });
|
|
22
|
+
}
|
|
23
|
+
delete(url, params = {}) {
|
|
24
|
+
const headers = this.getHeaders();
|
|
25
|
+
return this.httpClient.delete(this.apiUrl + url, { headers, params: this.prepareEncodedParams(params) });
|
|
26
|
+
}
|
|
27
|
+
prepareEncodedParams(params) {
|
|
28
|
+
const result = {};
|
|
29
|
+
if (!params) {
|
|
30
|
+
return {};
|
|
31
|
+
}
|
|
32
|
+
for (const key of Object.keys(params)) {
|
|
33
|
+
if (params[key] !== undefined && params[key] !== null && params[key] !== '') {
|
|
34
|
+
const stringParam = params[key].toString();
|
|
35
|
+
result[key] = stringParam.includes('+') ? encodeURIComponent(stringParam) : stringParam;
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
return result;
|
|
39
|
+
}
|
|
40
|
+
getHeaders(cache) {
|
|
41
|
+
let headers = new HttpHeaders();
|
|
42
|
+
if (cache) {
|
|
43
|
+
headers = headers.append('_Cache', 'true ');
|
|
44
|
+
}
|
|
45
|
+
const token = this.token || this.getParameterByName('token');
|
|
46
|
+
headers = headers.append('Authorization', 'Bearer ' + token);
|
|
47
|
+
return headers;
|
|
48
|
+
}
|
|
49
|
+
getParameterByName(name, url = window.location.href) {
|
|
50
|
+
name = name.replace(/[\[\]]/g, '\\$&');
|
|
51
|
+
var regex = new RegExp('[?&]' + name + '(=([^&#]*)|&|#|$)'), results = regex.exec(url);
|
|
52
|
+
if (!results)
|
|
53
|
+
return null;
|
|
54
|
+
if (!results[2])
|
|
55
|
+
return '';
|
|
56
|
+
return decodeURIComponent(results[2].replace(/\+/g, ' '));
|
|
57
|
+
}
|
|
58
|
+
}
|
|
59
|
+
APIService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, deps: [{ token: i1.HttpClient }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
60
|
+
APIService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, providedIn: 'root' });
|
|
61
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: APIService, decorators: [{
|
|
62
|
+
type: Injectable,
|
|
63
|
+
args: [{
|
|
64
|
+
providedIn: 'root'
|
|
65
|
+
}]
|
|
66
|
+
}], ctorParameters: function () { return [{ type: i1.HttpClient }]; } });
|
|
67
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoiYXBpLnNlcnZpY2UuanMiLCJzb3VyY2VSb290IjoiIiwic291cmNlcyI6WyIuLi8uLi8uLi8uLi8uLi8uLi8uLi9wcm9qZWN0cy90dWtpL3dpZGdldHMvd29ya3NwYWNlcy9zcmMvc2VydmljZXMvYXBpLnNlcnZpY2UudHMiXSwibmFtZXMiOltdLCJtYXBwaW5ncyI6IkFBQUEsT0FBTyxFQUFFLFVBQVUsRUFBRSxNQUFNLGVBQWUsQ0FBQztBQUMzQyxPQUFPLEVBQWMsV0FBVyxFQUFFLE1BQU0sc0JBQXNCLENBQUM7OztBQU0vRCxNQUFNLE9BQU8sVUFBVTtJQUlyQixZQUNVLFVBQXNCO1FBQXRCLGVBQVUsR0FBVixVQUFVLENBQVk7SUFDNUIsQ0FBQztJQUVMLEtBQUssQ0FBQyxHQUFXLEVBQUUsTUFBWSxFQUFFLEtBQWU7UUFDOUMsTUFBTSxPQUFPLEdBQUcsSUFBSSxDQUFDLFVBQVUsQ0FBQyxLQUFLLENBQUMsQ0FBQztRQUN2QyxNQUFNLEdBQUcsTUFBTSxJQUFJLEVBQUUsQ0FBQztRQUN0QixPQUFPLElBQUksQ0FBQyxVQUFVLENBQUMsR0FBRyxDQUFDLElBQUksQ0FBQyxNQUFNLEdBQUcsR0FBRyxFQUFFLEVBQUUsTUFBTSxFQUFFLElBQUksQ0FBQyxvQkFBb0IsQ0FBQyxNQUFNLENBQUMsRUFBRSxPQUFPLEVBQUUsQ0FBQyxDQUFDO0lBQ3hHLENBQUM7SUFFRCxJQUFJLENBQUMsR0FBVyxFQUFFLElBQVMsRUFBRSxNQUFNLEdBQUcsRUFBRTtRQUN0QyxJQUFJLEdBQUcsSUFBSSxJQUFJLElBQUksQ0FBQztRQUNwQixNQUFNLE9BQU8sR0FBRyxJQUFJLENBQUMsVUFBVSxFQUFFLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsVUFBVSxDQUFDLElBQUksQ0FBQyxJQUFJLENBQUMsTUFBTSxHQUFHLEdBQUcsRUFBRSxJQUFJLEVBQUUsRUFBRSxNQUFNLEVBQUUsSUFBSSxDQUFDLG9CQUFvQixDQUFDLE1BQU0sQ0FBQyxFQUFFLE9BQU8sRUFBRSxDQUFDLENB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LFVBQVU7NEdBQVYsVUFBVSxjQUZULE1BQU07NEZBRVAsVUFBVTtrQkFIdEIsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBIdHRwQ2xpZW50LCBIdHRwSGVhZGVycyB9IGZyb20gJ0Bhbmd1bGFyL2NvbW1vbi9odHRwJztcbmltcG9ydCB7IE9ic2VydmFibGUgfSBmcm9tICdyeGpzJztcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCdcbn0pXG5leHBvcnQgY2xhc3MgQVBJU2VydmljZSB7XG4gIHRva2VuITogc3RyaW5nO1xuICBhcGlVcmwhOiBzdHJpbmc7XG5cbiAgY29uc3RydWN0b3IoXG4gICAgcHJpdmF0ZSBodHRwQ2xpZW50OiBIdHRwQ2xpZW50XG4gICkgeyB9XG5cbiAgZmV0Y2godXJsOiBzdHJpbmcsIHBhcmFtcz86IGFueSwgY2FjaGU/OiBib29sZWFuKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKGNhY2hlKTtcbiAgICBwYXJhbXMgPSBwYXJhbXMgfHwge307XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5nZXQodGhpcy5hcGlVcmwgKyB1cmwsIHsgcGFyYW1zOiB0aGlzLnByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtcyksIGhlYWRlcnMgfSk7XG4gIH1cblxuICBwb3N0KHVybDogc3RyaW5nLCBib2R5OiBhbnksIHBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBib2R5ID0gYm9keSB8fCBudWxsO1xuICAgIGNvbnN0IGhlYWRlcnMgPSB0aGlzLmdldEhlYWRlcnMoKTtcbiAgICByZXR1cm4gdGhpcy5odHRwQ2xpZW50LnBvc3QodGhpcy5hcGlVcmwgKyB1cmwsIGJvZHksIHsgcGFyYW1zOiB0aGlzLnByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtcyksIGhlYWRlcnMgfSk7XG4gIH1cblxuICBwdXQodXJsOiBzdHJpbmcsIGJvZHk6IGFueSA9IG51bGwsIHBhcmFtcyA9IHt9KTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCBoZWFkZXJzID0gdGhpcy5nZXRIZWFkZXJzKCk7XG4gICAgcmV0dXJuIHRoaXMuaHR0cENsaWVudC5wdXQodGhpcy5hcGlVcmwgKyB1cmwsIGJvZHksIHsgaGVhZGVycywgcGFyYW1zOiB0aGlzLnByZXBhcmVFbmNvZGVkUGFyYW1zKHBhcmFtcykgfSk7XG4gIH1cblxuICBkZWxldGUodXJsOiBzdHJpbmcsIHBhcmFtcyA9IHt9KSB7XG4gICAgY29uc3QgaGVhZGVycyA9IHRoaXMuZ2V0SGVhZGVycygpO1xuICAgIHJldHVybiB0aGlzLmh0dHBDbGllbnQuZGVsZXRlKHRoaXMuYXBpVXJsICsgdXJsLCB7IGhlYWRlcnMsIHBhcmFtczogdGhpcy5wcmVwYXJlRW5jb2RlZFBhcmFtcyhwYXJhbXMpIH0pO1xuICB9XG5cbiAgcHJpdmF0ZSBwcmVwYXJlRW5jb2RlZFBhcmFtcyhwYXJhbXM6IGFueSkge1xuICAgIGNvbnN0IHJlc3VsdDogYW55ID0ge307XG5cbiAgICBpZiAoIXBhcmFtcykge1xuICAgICAgcmV0dXJuIHt9O1xuICAgIH1cbiAgICBmb3IgKGNvbnN0IGtleSBvZiBPYmplY3Qua2V5cyhwYXJhbXMpKSB7XG4gICAgICBpZiAocGFyYW1zW2tleV0gIT09IHVuZGVmaW5lZCAmJiBwYXJhbXNba2V5XSAhPT0gbnVsbCAmJiBwYXJhbXNba2V5XSAhPT0gJycpIHtcbiAgICAgICAgY29uc3Qgc3RyaW5nUGFyYW0gPSBwYXJhbXNba2V5XS50b1N0cmluZygpO1xuICAgICAgICByZXN1bHRba2V5XSA9IHN0cmluZ1BhcmFtLmluY2x1ZGVzKCcrJykgPyBlbmNvZGVVUklDb21wb25lbnQoc3RyaW5nUGFyYW0pIDogc3RyaW5nUGFyYW07XG4gICAgICB9XG4gICAgfVxuICAgIHJldHVybiByZXN1bHQ7XG4gIH1cblxuICBwcml2YXRlIGdldEhlYWRlcnMoY2FjaGU/OiBib29sZWFuKTogSHR0cEhlYWRlcnMge1xuICAgIGxldCBoZWFkZXJzID0gbmV3IEh0dHBIZWFkZXJzKCk7XG4gICAgaWYgKGNhY2hlKSB7XG4gICAgICBoZWFkZXJzID0gaGVhZGVycy5hcHBlbmQoJ19DYWNoZScsICd0cnVlICcpO1xuICAgIH1cbiAgICBjb25zdCB0b2tlbiA9IHRoaXMudG9rZW4gfHwgdGhpcy5nZXRQYXJhbWV0ZXJCeU5hbWUoJ3Rva2VuJyk7XG4gICAgaGVhZGVycyA9IGhlYWRlcnMuYXBwZW5kKCdBdXRob3JpemF0aW9uJywgJ0JlYXJlciAnICsgdG9rZW4pO1xuICAgIHJldHVybiBoZWFkZXJzO1xuICB9XG5cbiAgcHJpdmF0ZSBnZXRQYXJhbWV0ZXJCeU5hbWUobmFtZTogYW55LCB1cmwgPSB3aW5kb3cubG9jYXRpb24uaHJlZikge1xuICAgIG5hbWUgPSBuYW1lLnJlcGxhY2UoL1tcXFtcXF1dL2csICdcXFxcJCYnKTtcbiAgICB2YXIgcmVnZXggPSBuZXcgUmVnRXhwKCdbPyZdJyArIG5hbWUgKyAnKD0oW14mI10qKXwmfCN8JCknKSxcbiAgICAgIHJlc3VsdHMgPSByZWdleC5leGVjKHVybCk7XG4gICAgaWYgKCFyZXN1bHRzKSByZXR1cm4gbnVsbDtcbiAgICBpZiAoIXJlc3VsdHNbMl0pIHJldHVybiAnJztcbiAgICByZXR1cm4gZGVjb2RlVVJJQ29tcG9uZW50KHJlc3VsdHNbMl0ucmVwbGFjZSgvXFwrL2csICcgJykpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { of } from 'rxjs';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
// No dedicated detail API exists yet, so the Overview/Calling tabs are
|
|
5
|
+
// populated with mock data derived from the already-loaded workspace record.
|
|
6
|
+
export class WorkspaceDetailService {
|
|
7
|
+
getByWorkspace(workspace) {
|
|
8
|
+
const device = workspace.device;
|
|
9
|
+
const directoryNumber = device.associatedDNs?.[0]?.directoryNumber ?? '';
|
|
10
|
+
const sipAddress = `${(device.name || workspace.displayName || 'workspace').toLowerCase()}@tukidev.rooms.webex.com`;
|
|
11
|
+
const issues = [
|
|
12
|
+
!workspace.typeLabel || workspace.typeLabel === 'No type' ? {
|
|
13
|
+
id: 'type',
|
|
14
|
+
message: 'Workspace type not set',
|
|
15
|
+
timestamp: 'Just now',
|
|
16
|
+
actionLabel: 'Assign type',
|
|
17
|
+
} : null,
|
|
18
|
+
workspace.capacity == null ? {
|
|
19
|
+
id: 'capacity',
|
|
20
|
+
message: 'Workspace capacity not set',
|
|
21
|
+
timestamp: 'Just now',
|
|
22
|
+
actionLabel: 'Set capacity',
|
|
23
|
+
} : null,
|
|
24
|
+
].filter((issue) => issue !== null);
|
|
25
|
+
const details = {
|
|
26
|
+
issues,
|
|
27
|
+
location: {
|
|
28
|
+
country: workspace.location || 'Not set',
|
|
29
|
+
address: device.location || 'Address not available',
|
|
30
|
+
},
|
|
31
|
+
calling: {
|
|
32
|
+
license: workspace.callingLicense || 'Cisco Webex Calling Professional Workspace',
|
|
33
|
+
sipAddress,
|
|
34
|
+
directoryNumber: directoryNumber || 'Not assigned',
|
|
35
|
+
routePartition: device.associatedDNs?.[0]?.routePartitionName || 'Not set',
|
|
36
|
+
callingSearchSpace: device.callingSearchSpaceName || 'Not set',
|
|
37
|
+
securityProfile: device.securityProfile || 'Not set',
|
|
38
|
+
},
|
|
39
|
+
schedulingConfigured: false,
|
|
40
|
+
plannedMaintenanceEnabled: false,
|
|
41
|
+
notes: null,
|
|
42
|
+
};
|
|
43
|
+
return of(details);
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
WorkspaceDetailService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDetailService, deps: [], target: i0.ɵɵFactoryTarget.Injectable });
|
|
47
|
+
WorkspaceDetailService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDetailService, providedIn: 'root' });
|
|
48
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspaceDetailService, decorators: [{
|
|
49
|
+
type: Injectable,
|
|
50
|
+
args: [{
|
|
51
|
+
providedIn: 'root'
|
|
52
|
+
}]
|
|
53
|
+
}] });
|
|
54
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlLWRldGFpbC5zZXJ2aWNlLmpzIiwic291cmNlUm9vdCI6IiIsInNvdXJjZXMiOlsiLi4vLi4vLi4vLi4vLi4vLi4vLi4vcHJvamVjdHMvdHVraS93aWRnZXRzL3dvcmtzcGFjZXMvc3JjL3NlcnZpY2VzL3dvcmtzcGFjZS1kZXRhaWwuc2VydmljZS50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFBQSxPQUFPLEVBQUUsVUFBVSxFQUFFLE1BQU0sZUFBZSxDQUFDO0FBQzNDLE9BQU8sRUFBYyxFQUFFLEVBQUUsTUFBTSxNQUFNLENBQUM7O0FBR3RDLHVFQUF1RTtBQUN2RSw2RUFBNkU7QUFJN0UsTUFBTSxPQUFPLHNCQUFzQjtJQUNqQyxjQUFjLENBQUMsU0FBb0I7UUFDakMsTUFBTSxNQUFNLEdBQUcsU0FBUyxDQUFDLE1BQU0sQ0FBQztRQUNoQyxNQUFNLGVBQWUsR0FBRyxNQUFNLENBQUMsYUFBYSxFQUFFLENBQUMsQ0FBQyxDQUFDLEVBQUUsZUFBZSxJQUFJLEVBQUUsQ0FBQztRQUN6RSxNQUFNLFVBQVUsR0FBRyxHQUFHLENBQUMsTUFBTSxDQUFDLElBQUksSUFBSSxTQUFTLENBQUMsV0FBVyxJQUFJLFdBQVcsQ0FBQyxDQUFDLFdBQVcsRUFBRSwwQkFBMEIsQ0FBQztRQUVwSCxNQUFNLE1BQU0sR0FBRztZQUNiLENBQUMsU0FBUyxDQUFDLFNBQVMsSUFBSSxTQUFTLENBQUMsU0FBUyxLQUFLLFNBQVMsQ0FBQyxDQUFDLENBQUM7Z0JBQzFELEVBQUUsRUFBRSxNQUFNO2dCQUNWLE9BQU8sRUFBRSx3QkFBd0I7Z0JBQ2pDLFNBQVMsRUFBRSxVQUFVO2dCQUNyQixXQUFXLEVBQUUsYUFBYTthQUMzQixDQUFDLENBQUMsQ0FBQyxJQUFJO1lBQ1IsU0FBUyxDQUFDLFFBQVEsSUFBSSxJQUFJLENBQUMsQ0FBQyxDQUFDO2dCQUMzQixFQUFFLEVBQUUsVUFBVTtnQkFDZCxPQUFPLEVBQUUsNEJBQTRCO2dCQUNyQyxTQUFTLEVBQUUsVUFBVTtnQkFDckIsV0FBVyxFQUFFLGNBQWM7YUFDNUIsQ0FBQyxDQUFDLENBQUMsSUFBSTtTQUNULENBQUMsTUFBTSxDQUFDLENBQUMsS0FBSyxFQUFzQyxFQUFFLENBQUMsS0FBSyxLQUFLLElBQUksQ0FBQyxDQUFDO1FBRXhFLE1BQU0sT0FBTyxHQUFxQjtZQUNoQyxNQUFNO1lBQ04sUUFBUSxFQUFFO2dCQUNSLE9BQU8sRUFBRSxTQUFTLENBQUMsUUFBUSxJQUFJLFNBQVM7Z0JBQ3hDLE9BQU8sRUFBRSxNQUFNLENBQUMsUUFBUSxJQUFJLHVCQUF1QjthQUNwRDtZQUNELE9BQU8sRUFBRTtnQkFDUCxPQUFPLEVBQUUsU0FBUyxDQUFDLGNBQWMsSUFBSSw0Q0FBNEM7Z0JBQ2pGLFVBQVU7Z0JBQ1YsZUFBZSxFQUFFLGVBQWUsSUFBSSxjQUFjO2dCQUNsRCxjQUFjLEVBQUUsTUFBTSxDQUFDLGFBQWEsRUFBRSxDQUFDLENBQUMsQ0FBQyxFQUFFLGtCQUFrQixJQUFJLFNBQVM7Z0JBQzFFLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxzQkFBc0IsSUFBSSxTQUFTO2dCQUM5RCxlQUFlLEVBQUUsTUFBTSxDQUFDLGVBQWUsSUFBSSxTQUFTO2FBQ3JEO1lBQ0Qsb0JBQW9CLEVBQUUsS0FBSztZQUMzQix5QkFBeUIsRUFBRSxLQUFLO1lBQ2hDLEtBQUssRUFBRSxJQUFJO1NBQ1osQ0FBQztRQUVGLE9BQU8sRUFBRSxDQUFDLE9BQU8sQ0FBQyxDQUFDO0lBQ3JCLENBQUM7O29IQXpDVSxzQkFBc0I7d0hBQXRCLHNCQUFzQixjQUZyQixNQUFNOzRGQUVQLHNCQUFzQjtrQkFIbEMsVUFBVTttQkFBQztvQkFDVixVQUFVLEVBQUUsTUFBTTtpQkFDbkIiLCJzb3VyY2VzQ29udGVudCI6WyJpbXBvcnQgeyBJbmplY3RhYmxlIH0gZnJvbSAnQGFuZ3VsYXIvY29yZSc7XG5pbXBvcnQgeyBPYnNlcnZhYmxlLCBvZiB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgV29ya3NwYWNlLCBXb3Jrc3BhY2VEZXRhaWxzIH0gZnJvbSAnLi4vdHlwZXMvd29ya3NwYWNlJztcblxuLy8gTm8gZGVkaWNhdGVkIGRldGFpbCBBUEkgZXhpc3RzIHlldCwgc28gdGhlIE92ZXJ2aWV3L0NhbGxpbmcgdGFicyBhcmVcbi8vIHBvcHVsYXRlZCB3aXRoIG1vY2sgZGF0YSBkZXJpdmVkIGZyb20gdGhlIGFscmVhZHktbG9hZGVkIHdvcmtzcGFjZSByZWNvcmQuXG5ASW5qZWN0YWJsZSh7XG4gIHByb3ZpZGVkSW46ICdyb290J1xufSlcbmV4cG9ydCBjbGFzcyBXb3Jrc3BhY2VEZXRhaWxTZXJ2aWNlIHtcbiAgZ2V0QnlXb3Jrc3BhY2Uod29ya3NwYWNlOiBXb3Jrc3BhY2UpOiBPYnNlcnZhYmxlPFdvcmtzcGFjZURldGFpbHM+IHtcbiAgICBjb25zdCBkZXZpY2UgPSB3b3Jrc3BhY2UuZGV2aWNlO1xuICAgIGNvbnN0IGRpcmVjdG9yeU51bWJlciA9IGRldmljZS5hc3NvY2lhdGVkRE5zPy5bMF0/LmRpcmVjdG9yeU51bWJlciA/PyAnJztcbiAgICBjb25zdCBzaXBBZGRyZXNzID0gYCR7KGRldmljZS5uYW1lIHx8IHdvcmtzcGFjZS5kaXNwbGF5TmFtZSB8fCAnd29ya3NwYWNlJykudG9Mb3dlckNhc2UoKX1AdHVraWRldi5yb29tcy53ZWJleC5jb21gO1xuXG4gICAgY29uc3QgaXNzdWVzID0gW1xuICAgICAgIXdvcmtzcGFjZS50eXBlTGFiZWwgfHwgd29ya3NwYWNlLnR5cGVMYWJlbCA9PT0gJ05vIHR5cGUnID8ge1xuICAgICAgICBpZDogJ3R5cGUnLFxuICAgICAgICBtZXNzYWdlOiAnV29ya3NwYWNlIHR5cGUgbm90IHNldCcsXG4gICAgICAgIHRpbWVzdGFtcDogJ0p1c3Qgbm93JyxcbiAgICAgICAgYWN0aW9uTGFiZWw6ICdBc3NpZ24gdHlwZScsXG4gICAgICB9IDogbnVsbCxcbiAgICAgIHdvcmtzcGFjZS5jYXBhY2l0eSA9PSBudWxsID8ge1xuICAgICAgICBpZDogJ2NhcGFjaXR5JyxcbiAgICAgICAgbWVzc2FnZTogJ1dvcmtzcGFjZSBjYXBhY2l0eSBub3Qgc2V0JyxcbiAgICAgICAgdGltZXN0YW1wOiAnSnVzdCBub3cnLFxuICAgICAgICBhY3Rpb25MYWJlbDogJ1NldCBjYXBhY2l0eScsXG4gICAgICB9IDogbnVsbCxcbiAgICBdLmZpbHRlcigoaXNzdWUpOiBpc3N1ZSBpcyBOb25OdWxsYWJsZTx0eXBlb2YgaXNzdWU+ID0+IGlzc3VlICE9PSBudWxsKTtcblxuICAgIGNvbnN0IGRldGFpbHM6IFdvcmtzcGFjZURldGFpbHMgPSB7XG4gICAgICBpc3N1ZXMsXG4gICAgICBsb2NhdGlvbjoge1xuICAgICAgICBjb3VudHJ5OiB3b3Jrc3BhY2UubG9jYXRpb24gfHwgJ05vdCBzZXQnLFxuICAgICAgICBhZGRyZXNzOiBkZXZpY2UubG9jYXRpb24gfHwgJ0FkZHJlc3Mgbm90IGF2YWlsYWJsZScsXG4gICAgICB9LFxuICAgICAgY2FsbGluZzoge1xuICAgICAgICBsaWNlbnNlOiB3b3Jrc3BhY2UuY2FsbGluZ0xpY2Vuc2UgfHwgJ0Npc2NvIFdlYmV4IENhbGxpbmcgUHJvZmVzc2lvbmFsIFdvcmtzcGFjZScsXG4gICAgICAgIHNpcEFkZHJlc3MsXG4gICAgICAgIGRpcmVjdG9yeU51bWJlcjogZGlyZWN0b3J5TnVtYmVyIHx8ICdOb3QgYXNzaWduZWQnLFxuICAgICAgICByb3V0ZVBhcnRpdGlvbjogZGV2aWNlLmFzc29jaWF0ZWRETnM/LlswXT8ucm91dGVQYXJ0aXRpb25OYW1lIHx8ICdOb3Qgc2V0JyxcbiAgICAgICAgY2FsbGluZ1NlYXJjaFNwYWNlOiBkZXZpY2UuY2FsbGluZ1NlYXJjaFNwYWNlTmFtZSB8fCAnTm90IHNldCcsXG4gICAgICAgIHNlY3VyaXR5UHJvZmlsZTogZGV2aWNlLnNlY3VyaXR5UHJvZmlsZSB8fCAnTm90IHNldCcsXG4gICAgICB9LFxuICAgICAgc2NoZWR1bGluZ0NvbmZpZ3VyZWQ6IGZhbHNlLFxuICAgICAgcGxhbm5lZE1haW50ZW5hbmNlRW5hYmxlZDogZmFsc2UsXG4gICAgICBub3RlczogbnVsbCxcbiAgICB9O1xuXG4gICAgcmV0dXJuIG9mKGRldGFpbHMpO1xuICB9XG59XG4iXX0=
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { Injectable } from '@angular/core';
|
|
2
|
+
import { API } from '../app.constants';
|
|
3
|
+
import * as i0 from "@angular/core";
|
|
4
|
+
import * as i1 from "./api-webex.service";
|
|
5
|
+
export class WorkspacesMigrationService {
|
|
6
|
+
constructor(apiWebexService) {
|
|
7
|
+
this.apiWebexService = apiWebexService;
|
|
8
|
+
}
|
|
9
|
+
moveToMT(customerId, device) {
|
|
10
|
+
return this.apiWebexService.post(API.MIGRATION.MOVE, this.getMoveBody(customerId, device));
|
|
11
|
+
}
|
|
12
|
+
getMigrationFormStatus(customerId, formId) {
|
|
13
|
+
const url = API.MIGRATION.MIGRATION_FORM
|
|
14
|
+
.replace(':customerId', String(customerId))
|
|
15
|
+
.replace(':formId', String(formId));
|
|
16
|
+
return this.apiWebexService.fetch(url);
|
|
17
|
+
}
|
|
18
|
+
getMigratedMigrationFormEntities(customerId, webexUUID, feature = 'PERSON') {
|
|
19
|
+
const url = API.MIGRATION.MIGRATION_FORM_ENTITIES_MIGRATED.replace(':customerId', String(customerId));
|
|
20
|
+
return this.apiWebexService.fetch(url, { webexUUID, feature });
|
|
21
|
+
}
|
|
22
|
+
triggerFirmwareUpgrade(customerId, migrationFormId, deviceMap) {
|
|
23
|
+
const url = API.MIGRATION.TRIGGER_FIRMWARE_MIGRATION
|
|
24
|
+
.replace(':migrationType', 'WEBEX')
|
|
25
|
+
.replace(':customerId', String(customerId))
|
|
26
|
+
.replace(':migrationFormId', String(migrationFormId));
|
|
27
|
+
return this.apiWebexService.post(url, deviceMap);
|
|
28
|
+
}
|
|
29
|
+
removeUcmLicense(customerId, migrationFormId, controlHubType = 'WEBEX') {
|
|
30
|
+
const url = API.MIGRATION.REMOVE_UCM_LICENSE
|
|
31
|
+
.replace(':controlHubType', controlHubType)
|
|
32
|
+
.replace(':customerId', String(customerId))
|
|
33
|
+
.replace(':migrationFormId', String(migrationFormId));
|
|
34
|
+
return this.apiWebexService.post(url, {});
|
|
35
|
+
}
|
|
36
|
+
revertMigration(customerId, personId) {
|
|
37
|
+
const url = API.MIGRATION.WEBEX_REVERT
|
|
38
|
+
.replace(':customerId', String(customerId))
|
|
39
|
+
.replace(':personId', personId);
|
|
40
|
+
return this.apiWebexService.post(url, {});
|
|
41
|
+
}
|
|
42
|
+
getMoveBody(customerId, device) {
|
|
43
|
+
return {
|
|
44
|
+
customerId,
|
|
45
|
+
entities: {
|
|
46
|
+
PERSON: [{ cucmId: device.cucmId, entityId: device.name }],
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
WorkspacesMigrationService.ɵfac = i0.ɵɵngDeclareFactory({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesMigrationService, deps: [{ token: i1.ApiWebexService }], target: i0.ɵɵFactoryTarget.Injectable });
|
|
52
|
+
WorkspacesMigrationService.ɵprov = i0.ɵɵngDeclareInjectable({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesMigrationService, providedIn: 'root' });
|
|
53
|
+
i0.ɵɵngDeclareClassMetadata({ minVersion: "12.0.0", version: "15.2.10", ngImport: i0, type: WorkspacesMigrationService, decorators: [{
|
|
54
|
+
type: Injectable,
|
|
55
|
+
args: [{
|
|
56
|
+
providedIn: 'root',
|
|
57
|
+
}]
|
|
58
|
+
}], ctorParameters: function () { return [{ type: i1.ApiWebexService }]; } });
|
|
59
|
+
//# sourceMappingURL=data:application/json;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjoid29ya3NwYWNlcy1taWdyYXRpb24uc2VydmljZS5qcyIsInNvdXJjZVJvb3QiOiIiLCJzb3VyY2VzIjpbIi4uLy4uLy4uLy4uLy4uLy4uLy4uL3Byb2plY3RzL3R1a2kvd2lkZ2V0cy93b3Jrc3BhY2VzL3NyYy9zZXJ2aWNlcy93b3Jrc3BhY2VzLW1pZ3JhdGlvbi5zZXJ2aWNlLnRzIl0sIm5hbWVzIjpbXSwibWFwcGluZ3MiOiJBQUFBLE9BQU8sRUFBRSxVQUFVLEVBQUUsTUFBTSxlQUFlLENBQUM7QUFFM0MsT0FBTyxFQUFFLEdBQUcsRUFBRSxNQUFNLGtCQUFrQixDQUFDOzs7QUFTdkMsTUFBTSxPQUFPLDBCQUEwQjtJQUNyQyxZQUFvQixlQUFnQztRQUFoQyxvQkFBZSxHQUFmLGVBQWUsQ0FBaUI7SUFBSSxDQUFDO0lBRXpELFFBQVEsQ0FBQyxVQUEyQixFQUFFLE1BQTZCO1FBQ2pFLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxDQUFDLFNBQVMsQ0FBQyxJQUFJLEVBQUUsSUFBSSxDQUFDLFdBQVcsQ0FBQyxVQUFVLEVBQUUsTUFBTSxDQUFDLENBQUMsQ0FBQztJQUM3RixDQUFDO0lBRUQsc0JBQXNCLENBQUMsVUFBMkIsRUFBRSxNQUFjO1FBQ2hFLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsY0FBYzthQUNyQyxPQUFPLENBQUMsYUFBYSxFQUFFLE1BQU0sQ0FBQyxVQUFVLENBQUMsQ0FBQzthQUMxQyxPQUFPLENBQUMsU0FBUyxFQUFFLE1BQU0sQ0FBQyxNQUFNLENBQUMsQ0FBQyxDQUFDO1FBQ3RDLE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxLQUFLLENBQUMsR0FBRyxDQUFDLENBQUM7SUFDekMsQ0FBQztJQUVELGdDQUFnQyxDQUM5QixVQUEyQixFQUMzQixTQUFpQixFQUNqQixPQUFPLEdBQUcsUUFBUTtRQUVsQixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLGdDQUFnQyxDQUFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDLENBQUM7UUFDdEcsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLEtBQUssQ0FBQyxHQUFHLEVBQUUsRUFBRSxTQUFTLEVBQUUsT0FBTyxFQUFFLENBQUMsQ0FBQztJQUNqRSxDQUFDO0lBRUQsc0JBQXNCLENBQ3BCLFVBQTJCLEVBQzNCLGVBQXVCLEVBQ3ZCLFNBQTRCO1FBRTVCLE1BQU0sR0FBRyxHQUFHLEdBQUcsQ0FBQyxTQUFTLENBQUMsMEJBQTBCO2FBQ2pELE9BQU8sQ0FBQyxnQkFBZ0IsRUFBRSxPQUFPLENBQUM7YUFDbEMsT0FBTyxDQUFDLGFBQWEsRUFBRSxNQUFNLENBQUMsVUFBVSxDQUFDLENBQUM7YUFDMUMsT0FBTyxDQUFDLGtCQUFrQixFQUFFLE1BQU0sQ0FBQyxlQUFlLENBQUMsQ0FBQyxDQUFDO1FBQ3hELE9BQU8sSUFBSSxDQUFDLGVBQWUsQ0FBQyxJQUFJLENBQUMsR0FBRyxFQUFFLFNBQVMsQ0FBQyxDQUFDO0lBQ25ELENBQUM7SUFFRCxnQkFBZ0IsQ0FDZCxVQUEyQixFQUMzQixlQUF1QixFQUN2QixjQUFjLEdBQUcsT0FBTztRQUV4QixNQUFNLEdBQUcsR0FBRyxHQUFHLENBQUMsU0FBUyxDQUFDLGtCQUFrQjthQUN6QyxPQUFPLENBQUMsaUJBQWlCLEVBQUUsY0FBYyxDQUFDO2FBQzFDLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzFDLE9BQU8sQ0FBQyxrQkFBa0IsRUFBRSxNQUFNLENBQUMsZUFBZSxDQUFDLENBQUMsQ0FBQztRQUN4RCxPQUFPLElBQUksQ0FBQyxlQUFlLENBQUMsSUFBSSxDQUFDLEdBQUcsRUFBRSxFQUFFLENBQUMsQ0FBQztJQUM1QyxDQUFDO0lBRUQsZUFBZSxDQUFDLFVBQTJCLEVBQUUsUUFBZ0I7UUFDM0QsTUFBTSxHQUFHLEdBQUcsR0FBRyxDQUFDLFNBQVMsQ0FBQyxZQUFZO2FBQ25DLE9BQU8sQ0FBQyxhQUFhLEVBQUUsTUFBTSxDQUFDLFVBQVUsQ0FBQyxDQUFDO2FBQzFDLE9BQU8sQ0FBQyxXQUFXLEVBQUUsUUFBUSxDQUFDLENBQUM7UUFDbEMsT0FBTyxJQUFJLENBQUMsZUFBZSxDQUFDLElBQUksQ0FBQyxHQUFHLEVBQUUsRUFBRSxDQUFDLENBQUM7SUFDNUMsQ0FBQztJQUVPLFdBQVcsQ0FBQyxVQUEyQixFQUFFLE1BQTZCO1FBQzVFLE9BQU87WUFDTCxVQUFVO1lBQ1YsUUFBUSxFQUFFO2dCQUNSLE1BQU0sRUFBRSxDQUFDLEVBQUUsTUFBTSxFQUFFLE1BQU0sQ0FBQyxNQUFNLEVBQUUsUUFBUSxFQUFFLE1BQU0sQ0FBQyxJQUFJLEVBQUUsQ0FBQzthQUMzRDtTQUNGLENBQUM7SUFDSixDQUFDOzt3SEE3RFUsMEJBQTBCOzRIQUExQiwwQkFBMEIsY0FGekIsTUFBTTs0RkFFUCwwQkFBMEI7a0JBSHRDLFVBQVU7bUJBQUM7b0JBQ1YsVUFBVSxFQUFFLE1BQU07aUJBQ25CIiwic291cmNlc0NvbnRlbnQiOlsiaW1wb3J0IHsgSW5qZWN0YWJsZSB9IGZyb20gJ0Bhbmd1bGFyL2NvcmUnO1xuaW1wb3J0IHsgT2JzZXJ2YWJsZSB9IGZyb20gJ3J4anMnO1xuaW1wb3J0IHsgQVBJIH0gZnJvbSAnLi4vYXBwLmNvbnN0YW50cyc7XG5pbXBvcnQgeyBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQgfSBmcm9tICcuLi90eXBlcy93b3Jrc3BhY2UnO1xuaW1wb3J0IHsgQXBpV2ViZXhTZXJ2aWNlIH0gZnJvbSAnLi9hcGktd2ViZXguc2VydmljZSc7XG5cbmV4cG9ydCB0eXBlIEZpcm13YXJlRGV2aWNlTWFwID0gUmVjb3JkPG51bWJlciwgUmVjb3JkPHN0cmluZywgc3RyaW5nW10+PjtcblxuQEluamVjdGFibGUoe1xuICBwcm92aWRlZEluOiAncm9vdCcsXG59KVxuZXhwb3J0IGNsYXNzIFdvcmtzcGFjZXNNaWdyYXRpb25TZXJ2aWNlIHtcbiAgY29uc3RydWN0b3IocHJpdmF0ZSBhcGlXZWJleFNlcnZpY2U6IEFwaVdlYmV4U2VydmljZSkgeyB9XG5cbiAgbW92ZVRvTVQoY3VzdG9tZXJJZDogc3RyaW5nIHwgbnVtYmVyLCBkZXZpY2U6IFdvcmtzcGFjZURldmljZVJlY29yZCk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QoQVBJLk1JR1JBVElPTi5NT1ZFLCB0aGlzLmdldE1vdmVCb2R5KGN1c3RvbWVySWQsIGRldmljZSkpO1xuICB9XG5cbiAgZ2V0TWlncmF0aW9uRm9ybVN0YXR1cyhjdXN0b21lcklkOiBzdHJpbmcgfCBudW1iZXIsIGZvcm1JZDogbnVtYmVyKTogT2JzZXJ2YWJsZTxhbnk+IHtcbiAgICBjb25zdCB1cmwgPSBBUEkuTUlHUkFUSU9OLk1JR1JBVElPTl9GT1JNXG4gICAgICAucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpXG4gICAgICAucmVwbGFjZSgnOmZvcm1JZCcsIFN0cmluZyhmb3JtSWQpKTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UuZmV0Y2godXJsKTtcbiAgfVxuXG4gIGdldE1pZ3JhdGVkTWlncmF0aW9uRm9ybUVudGl0aWVzKFxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICB3ZWJleFVVSUQ6IHN0cmluZyxcbiAgICBmZWF0dXJlID0gJ1BFUlNPTicsXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5NSUdSQVRJT05fRk9STV9FTlRJVElFU19NSUdSQVRFRC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSk7XG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLmZldGNoKHVybCwgeyB3ZWJleFVVSUQsIGZlYXR1cmUgfSk7XG4gIH1cblxuICB0cmlnZ2VyRmlybXdhcmVVcGdyYWRlKFxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtaWdyYXRpb25Gb3JtSWQ6IG51bWJlcixcbiAgICBkZXZpY2VNYXA6IEZpcm13YXJlRGV2aWNlTWFwLFxuICApOiBPYnNlcnZhYmxlPGFueT4ge1xuICAgIGNvbnN0IHVybCA9IEFQSS5NSUdSQVRJT04uVFJJR0dFUl9GSVJNV0FSRV9NSUdSQVRJT05cbiAgICAgIC5yZXBsYWNlKCc6bWlncmF0aW9uVHlwZScsICdXRUJFWCcpXG4gICAgICAucmVwbGFjZSgnOmN1c3RvbWVySWQnLCBTdHJpbmcoY3VzdG9tZXJJZCkpXG4gICAgICAucmVwbGFjZSgnOm1pZ3JhdGlvbkZvcm1JZCcsIFN0cmluZyhtaWdyYXRpb25Gb3JtSWQpKTtcbiAgICByZXR1cm4gdGhpcy5hcGlXZWJleFNlcnZpY2UucG9zdCh1cmwsIGRldmljZU1hcCk7XG4gIH1cblxuICByZW1vdmVVY21MaWNlbnNlKFxuICAgIGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlcixcbiAgICBtaWdyYXRpb25Gb3JtSWQ6IG51bWJlcixcbiAgICBjb250cm9sSHViVHlwZSA9ICdXRUJFWCcsXG4gICk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5SRU1PVkVfVUNNX0xJQ0VOU0VcbiAgICAgIC5yZXBsYWNlKCc6Y29udHJvbEh1YlR5cGUnLCBjb250cm9sSHViVHlwZSlcbiAgICAgIC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSlcbiAgICAgIC5yZXBsYWNlKCc6bWlncmF0aW9uRm9ybUlkJywgU3RyaW5nKG1pZ3JhdGlvbkZvcm1JZCkpO1xuICAgIHJldHVybiB0aGlzLmFwaVdlYmV4U2VydmljZS5wb3N0KHVybCwge30pO1xuICB9XG5cbiAgcmV2ZXJ0TWlncmF0aW9uKGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlciwgcGVyc29uSWQ6IHN0cmluZyk6IE9ic2VydmFibGU8YW55PiB7XG4gICAgY29uc3QgdXJsID0gQVBJLk1JR1JBVElPTi5XRUJFWF9SRVZFUlRcbiAgICAgIC5yZXBsYWNlKCc6Y3VzdG9tZXJJZCcsIFN0cmluZyhjdXN0b21lcklkKSlcbiAgICAgIC5yZXBsYWNlKCc6cGVyc29uSWQnLCBwZXJzb25JZCk7XG4gICAgcmV0dXJuIHRoaXMuYXBpV2ViZXhTZXJ2aWNlLnBvc3QodXJsLCB7fSk7XG4gIH1cblxuICBwcml2YXRlIGdldE1vdmVCb2R5KGN1c3RvbWVySWQ6IHN0cmluZyB8IG51bWJlciwgZGV2aWNlOiBXb3Jrc3BhY2VEZXZpY2VSZWNvcmQpOiBhbnkge1xuICAgIHJldHVybiB7XG4gICAgICBjdXN0b21lcklkLFxuICAgICAgZW50aXRpZXM6IHtcbiAgICAgICAgUEVSU09OOiBbeyBjdWNtSWQ6IGRldmljZS5jdWNtSWQsIGVudGl0eUlkOiBkZXZpY2UubmFtZSB9XSxcbiAgICAgIH0sXG4gICAgfTtcbiAgfVxufVxuIl19
|